Здравствуйте.
Имеется ряд рабочих станций, с которых запрещён доступ в интернет.
Сайт компании находится на внешнем хостинге. Доступ к нему реализован правилом:
iptables -t nat -I POSTROUTING -m iprange --src-range 192.168.1.10-192.168.1.20 -d 195.184.xxx.xxx -j SNAT --to-source 195.184.yyy.yyy
Где 195.184.xxx.xxx - адрес веб-сервера, 195.184.yyy.yyy - адрес шлюза ЛВС.
На сайте расположены счетчики, типа mail.ru, rambler.ru, ...
А у них целые пулы адресов.
Вопрос. Как мне сделатьтак, чтобы пользователи ЛВС могли быстро открывать сайт компании? Чтобы не было задержки при соединении сайта с адресами счетчиков. Другими словами как мне узнать диапазон IP для каждого счетчика и прописать в iptables? Или как динамически можно преобразовать имя в ip для создания правила на лету?
Всем заранее спасибо.
> Имеется ряд рабочих станций, с которых запрещён доступ в интернет.
> Сайт компании находится на внешнем хостинге. Доступ к нему реализован правилом:
> iptables -t nat -I POSTROUTING -m iprange --src-range 192.168.1.10-192.168.1.20 -d 195.184.xxx.xxx
> -j SNAT --to-source 195.184.yyy.yyy
> Чтобы не было задержки при соединенииПредлагаю
-t filter -I FORWARD -p tcp -m iprange --src-range 192.168.1.10-192.168.1.20 \! -d 195.184.xxx.xxx -j REJECT --reject-with tcp-reset
>[оверквотинг удален]
> -j SNAT --to-source 195.184.yyy.yyy
> Где 195.184.xxx.xxx - адрес веб-сервера, 195.184.yyy.yyy - адрес шлюза ЛВС.
> На сайте расположены счетчики, типа mail.ru, rambler.ru, ...
> А у них целые пулы адресов.
> Вопрос. Как мне сделатьтак, чтобы пользователи ЛВС могли быстро открывать сайт компании?
> Чтобы не было задержки при соединении сайта с адресами счетчиков. Другими
> словами как мне узнать диапазон IP для каждого счетчика и прописать
> в iptables? Или как динамически можно преобразовать имя в ip для
> создания правила на лету?
> Всем заранее спасибо.я бы сделал что то подобное в отдельной цепочке переход в которую в которую по фильтру -m iprange --src-range 192.168.1.10-192.168.1.20 а в цепочке:
iptables -A check -d {локалка} -j RETURN
iptables -A check -d 195.184.xxx.xxx -j RETURN
iptables -A check -p tcp -j REJECT --reject-with tcp-reset
ОК.
Я тоже подумал про отдельную цепочку. Спасибо. Буду пробовать.>[оверквотинг удален]
>> Чтобы не было задержки при соединении сайта с адресами счетчиков. Другими
>> словами как мне узнать диапазон IP для каждого счетчика и прописать
>> в iptables? Или как динамически можно преобразовать имя в ip для
>> создания правила на лету?
>> Всем заранее спасибо.
> я бы сделал что то подобное в отдельной цепочке переход в которую
> в которую по фильтру -m iprange --src-range 192.168.1.10-192.168.1.20 а в цепочке:
> iptables -A check -d {локалка} -j RETURN
> iptables -A check -d 195.184.xxx.xxx -j RETURN
> iptables -A check -p tcp -j REJECT --reject-with tcp-reset
> я бы сделал что то подобное в отдельной цепочке переход в которую
> в которую по фильтру -m iprange --src-range 192.168.1.10-192.168.1.20 а в цепочке:
> iptables -A check -d {локалка} -j RETURNВата. В плоской сети трафик локалки не будет проходить через рутер.
Указаний и намеков, что там много подсеток - нет. Правило - не нужно. Отдельные цепочки только ухудшат читаемость правил iptables.
> Сайт компании находится на внешнем хостинге. Доступ к нему реализован правилом:
> iptables -t nat -I POSTROUTING -m iprange --src-range 192.168.1.10-192.168.1.20 -d 195.184.xxx.xxx
> -j SNAT --to-source 195.184.yyy.yyynat.POSTROUTING не предназначен для фильтрования.
Правильно делать так:iptables -t nat -I POSTROUTING -s 192.168.0.0/16 -o ethX -j SNAT --to-source 195.184.yyy.yyy
Т.е. для всего трафика, выходящего через интерфейс провайдера делать нат.
В противном случае, трафик всё равно выходит в сторону провайдера, но с серым адресом отправителя - т.е. тупо засоряет каналы.а уже в таблице filter - фильтровать:
#разрешить нужное:
iptables -t filter -I FORWARD -m iprange --src-range 192.168.1.10-192.168.1.20 -d 195.184.xxx.xxx -j ACCEPT#запретить всё остальное, tcp - отдельно.
iptables -t filter -A FORWARD -s 192.168.0.0/16 -p tcp -j REJECT --reject-with tcp-reset
iptables -t filter -A FORWARD -s 192.168.0.0/16 -j REJECT --reject-with icmp-net-unreachableИ никаких отдельных цепочек не надо, не засоряйте список, не лишайте его понятности.