Доброе время суток!
Имеется шлюз с Centos 6.4. На котором стоит Squid.
Правила iptables:#!/bin/bash
ip_tables="/sbin/iptables"
lan="eth1"
rtelecom="eth0"
spark="eth2"$ip_tables -F -t filter #Очищаем все таблицы
$ip_tables -F -t nat
$ip_tables -F -t mangle$ip_tables -X # Удаляем все пользовательские цепочки
$ip_tables -P INPUT DROP # поликика по умолчанию
$ip_tables -P OUTPUT ACCEPT
$ip_tables -P FORWARD DROP
$ip_tables -A INPUT -i lo -p all -j ACCEPT
$ip_tables -A OUTPUT -o lo -p all -j ACCEPT
$ip_tables -A INPUT -i tun+ -j ACCEPT
$ip_tables -A FORWARD -i tun+ -j ACCEPT
$ip_tables -A INPUT -i tap+ -j ACCEPT
$ip_tables -A FORWARD -i tap+ -j ACCEPT
$ip_tables -A INPUT -i br+ -j ACCEPT
$ip_tables -A FORWARD -i br+ -j ACCEPT
$ip_tables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
$ip_tables -A INPUT -p tcp -i $lan --dport 22 -m state --state NEW -j ACCEPT #ssh
$ip_tables -A INPUT -p tcp -i $lan --dport 3131 -m state --state NEW -j ACCEPT #squid
$ip_tables -A INPUT -p udp --dport 53 -m state --state NEW -j ACCEPT #dns
$ip_tables -A INPUT -p tcp --dport 53 -m state --state NEW -j ACCEPT
$ip_tables -A INPUT -p udp --dport 67 -m state --state NEW -j ACCEPT #dhcp
$ip_tables -A INPUT -p udp --dport 1194 -m state --state NEW -j ACCEPT #openVPN
$ip_tables -A INPUT -p tcp --dport 1194 -m state --state NEW -j ACCEPT
$ip_tables -A INPUT -p icmp -j ACCEPT$ip_tables -A OUTPUT -p all -j ACCEPT
$ip_tables -A FORWARD -m state --state ESTABLISHED -j ACCEPT
$ip_tables -A FORWARD -p tcp -i $lan -s 192.168.100.0/22 --dport 25 -m state --state NEW -j ACCEPT
$ip_tables -A FORWARD -p tcp -i $lan -s 192.168.100.0/22 --dport 110 -m state --state NEW -j ACCEPT
$ip_tables -A FORWARD -p udp -i $lan -s 192.168.100.0/22 --dport 4433 -m state --state NEW -j ACCEPT
$ip_tables -A FORWARD -p udp -i $lan -s 192.168.100.0/22 --dport 7500 -m state --state NEW -j ACCEPT
$ip_tables -A FORWARD -p udp -i $lan -s 192.168.100.0/22 --dport 53 -m state --state NEW -j ACCEPT
$ip_tables -A FORWARD -p tcp -i $lan -s 192.168.100.0/22 --dport 53 -m state --state NEW -j ACCEPT
$ip_tables -A FORWARD -p tcp -i $lan -s 192.168.100.0/22 --dport 23 -m state --state NEW -j ACCEPT
$ip_tables -A FORWARD -p icmp -m state --state NEW -j ACCEPT$ip_tables -t nat -A POSTROUTING -s 192.168.100.0/22 -j MASQUERADE
Проблема в следующем, на клиентских машинах браузер работает даже без указания прокси. Как эту проблему можно решить?
> $ip_tables -t nat -A POSTROUTING -s 192.168.100.0/22 -j MASQUERADE
> Проблема в следующем, на клиентских машинах браузер работает даже без указания прокси.
> Как эту проблему можно решить?Доброе.
последнее правило делает NAT для всей 100.0/22 сети. Или убрать, или заменить на нужное
> Проблема в следующем, на клиентских машинах браузер работает даже без указания прокси.
> Как эту проблему можно решить?так форвард на 80, 443-й порт у вас не запрещен. В конце цепочки FORWARD сделайте reject всего что не разрешено выше.
>> Проблема в следующем, на клиентских машинах браузер работает даже без указания прокси.
>> Как эту проблему можно решить?
> так форвард на 80, 443-й порт у вас не запрещен.вообще то у ТС политика по дефолту DROP и явного разрешения на 80/443 нет
> В конце цепочки FORWARD сделайте reject всего что не разрешено выше.
более правильно сделать политику по умолчанию DROP
> вообще то у ТС политика по дефолту DROP и явного разрешения на 80/443 нетда, вижу, просмотрел
Клиенты точно приходят с lan, а не с tun или tap?
Покажите #iptables -nL FORWARD
>[оверквотинг удален]
> $ip_tables -A FORWARD -p udp -i $lan -s 192.168.100.0/22 --dport 53 -m
> state --state NEW -j ACCEPT
> $ip_tables -A FORWARD -p tcp -i $lan -s 192.168.100.0/22 --dport 53 -m
> state --state NEW -j ACCEPT
> $ip_tables -A FORWARD -p tcp -i $lan -s 192.168.100.0/22 --dport 23 -m
> state --state NEW -j ACCEPT
> $ip_tables -A FORWARD -p icmp -m state --state NEW -j ACCEPT
> $ip_tables -t nat -A POSTROUTING -s 192.168.100.0/22 -j MASQUERADE
> Проблема в следующем, на клиентских машинах браузер работает даже без указания прокси.
> Как эту проблему можно решить?Вроде ничего не увидел криминального, но все равно, как разберетесь, прочтите документацию по управлению правилами iptables в дистрах основанных на RedHat.
Есть команда service iptables (restart|start|stop|reload|save)
также есть файл /etc/sysconfig/iptables.config в котором можно включить необходимые опции. Ну и пользоваться именно через команду service
Если же Ваш скрипт запускается через rc.local, то могу сказать что это большая дыра.
> Если же Ваш скрипт запускается через rc.local, то могу сказать что это
> большая дыра.С этого места можно поподробнее? А то мужики-то и не знали про "дыру".
Вдогонку. А "команда" service в RH-дистрибутивах всего лишь шелл-скрипт, используемый в качестве фронтэнда для запуска скриптов служб в директории /etc/init.d. Не более того.