LINUX.ORG.RU
ФорумAdmin

Прозрачный прокси — настройка iptables


0

0

Всем привет!

В сети стоит сервер NAT, на нем же установлен squid. Чтобы не заморачиваться с настройкой proxy на клиентах, я тупо сделал так:

iptables -t nat -A PREROUTING -i eth1 -s 192.168.3.0/24 -p tcp --dport 80 -j REDIRECT --to-port 3128

И есть одна проблема: на этом же сервере стоит httpd (apache), который теперь не может различать внутренних пользователей (все запросы приходят как будто с адреса самого сервера), а хочется там настроить различные права доступа по IP.

Что можно добавить в настройках iptables, чтобы запросы на сам сервер (192.168.3.1) не перенаправлялись в squid?


>Что можно добавить в настройках iptables, чтобы запросы на сам сервер (192.168.3.1) не перенаправлялись в squid?

добавить -d \! 192.168.3.1 в вышеприведённое правило

Nao ★★★★★
()

Перед правилом с REDIRECT добавить правло

iptables -t nat -I PREROUTING -i eth1 -d 192.168.3.1 -p tcp --dport 80 -j ACCEPT

или переписать правило с REDIRECT так:

iptables -t nat -A PREROUTING -i eth1 -s 192.168.3.0/24 -p tcp --dport 80 -d '!' 192.168.3.1 -j REDIRECT --to-port 3128

(восклицателный знак означает инверсию условия, кавычки, так как он спецсимвол в bash).

P.S. >а хочется там настроить различные права доступа по IP.

Squid вроде сообщате в заголовке http-протокола с какого адреса был исходный запрос.

mky ★★★★★
()

$IPTABLES -t nat -A PREROUTING -i eth0 -p tcp --dst ! 192.168.0.254 --dport 80 -j DNAT --to-destination 192.168.0.254:3128

я у себя делал так

bsw_m
()
Ответ на: комментарий от mky

> iptables -t nat -A PREROUTING -i eth1 -s 192.168.3.0/24 -p tcp --dport 80 -d '!' 192.168.3.1 -j REDIRECT --to-port 3128

спасибо, так и сделал!

А еще заметил такую вещь -- http-запросы с самого сервера на squid не направляются, как их тоже туда зароутить?

KA6AH
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.