С Linux клиентов не пингуется шлюз и внешние ресурсы (РЕШЕНО)

Добрый день.
Проблема такая, при подключении любого линукс клиента в локальную сеть,с машин с осью Windows таких проблем нет, причём не важно как получен адрес… статика, dhcp, dhcp wifi точки, адрес присваевается и всё ресурсы находящиеся в пределах локальной сети пингуются кроме шлюза и всего интернета. Смотрел в сторону маршрутизации, но там вроде всё норма…
Буду рад любым советам…

Основные данные:

Попытка пингануть шлюз

laptop ~ # ping 192.168.222.7
PING 192.168.222.7 (192.168.222.7) 56(84) bytes of data.
тут просто нет никаго вывода

попытка пингануть ya.ru

laptop ~ # ping ya.ru
PING ya.ru (213.180.193.3) 56(84) bytes of data.
и тут нет никаго вывода

маршруты:

laptop ~ # route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.222.7   0.0.0.0         UG    0      0        0 wlan0
127.0.0.0       127.0.0.1       255.0.0.0       UG    0      0        0 lo
192.168.222.0   0.0.0.0         255.255.255.0   U     2      0        0 wlan0

Шлюз: Debian 6+squid, правило по раздаче инета по ip адресам (ip адреса использовал правильные для клиентов).
DNS сервер: cds 11.12 i686.

Возможно я не показал какую то важную информацию, это не беда скажите мне чего не хватает и я всё покажу.

Шлюз точно нигде не блочит? dns судя по всему нормально отрабатывает и имеет доступ в инет.

Yuri Blohin wrote:

Шлюз точно нигде не блочит? dns судя по всему нормально отрабатывает и имеет доступ в инет.

Нет с шлюзом всё норм, там в инет пускает по ip, который в нужном диапазоне нахоится, к примеру на ноуте стоит windows 7 и calculate desktop kde адрес присваевается по mac в обоих случаях одинаковый, только под виндой работает интернет, а под линуксом нет… пробовал грузиться с лайв cd backtrack 5 и там таже история…
Всю голову уже сломал в чём может быть проблема…

Вы говорите шлюз - Debian + squid.
А как вы раздаете инет: маскарад локалки? прозрачная прокси? обычная прокси? другой вариант :slight_smile: ?

Если, как вы говорите “правило по раздаче инета по ip адресам”, то это режим “обычной прокси”, при котором вам необходимо настроить CLD на “работу с прокси”: Меню~~[Настройка]{style=“text-align:right;”}>Параметры системы[Сеть и связь]{style=“text-align:right;”}~~>Настройка сети->Прокси-сервер

Ко всему прочему, вам крайне необходимо узнать тут про то как заставить ходить “все остальное” через прокси

Андрей Сеник wrote:

Вы говорите шлюз - Debian + squid.
А как вы раздаете инет: маскарад локалки? прозрачная прокси? обычная прокси? другой вариант :slight_smile: ?

Если, как вы говорите “правило по раздаче инета по ip адресам”, то это режим “обычной прокси”, при котором вам необходимо настроить CLD на “работу с прокси”: Меню~~[Настройка]{style=“text-align:right;”}>Параметры системы[Сеть и связь]{style=“text-align:right;”}~~>Настройка сети->Прокси-сервер

Ко всему прочему, вам крайне необходимо узнать тут про то как заставить ходить “все остальное” через прокси

Там прозрачный прокси и поэтому никаких особых настроек со стороны клиента быть не должно…
Но я завтра попробую такой вариант.

Александр Чечин wrote:

Андрей Сеник wrote:

Вы говорите шлюз - Debian + squid.
А как вы раздаете инет: маскарад локалки? прозрачная прокси? обычная прокси? другой вариант :slight_smile: ?

Если, как вы говорите “правило по раздаче инета по ip адресам”, то это режим “обычной прокси”, при котором вам необходимо настроить CLD на “работу с прокси”: Меню~~[Настройка]{style=“text-align:right;”}>Параметры системы[Сеть и связь]{style=“text-align:right;”}~~>Настройка сети->Прокси-сервер

Ко всему прочему, вам крайне необходимо узнать тут про то как заставить ходить “все остальное” через прокси

Там прозрачный прокси и поэтому никаких особых настроек со стороны клиента быть не должно…
Но я завтра попробую такой вариант.

Нет к сожаление не прокатило(
Люди есть ещё какие идеи?

Тогда расскажите подробней, каким образом организована “раздача инета”?
используется ли iptables? если да, то приведите его

iptables-save | wgetpaste

так же желателен конфиг сквида на пасту.

курили ли вы логи dmesg, messages на предмет ошибок? (быть может ядерный модуль сетевухи сбоит?)

Андрей Сеник wrote:

Тогда расскажите подробней, каким образом организована “раздача инета”?
используется ли iptables? если да, то приведите его
[…]

так же желателен конфиг сквида на пасту.

курили ли вы логи dmesg, messages на предмет ошибок? (быть может ядерный модуль сетевухи сбоит?)

Шлюз Debian squeeze с тремя сетевыми картами, в него воткнуты две линии от провайдера и локальная сеть.

Первая сеть серый ip интернет
Вторая сеть белый ip с MX записью для почты

Чтобы все ходили в инет через первую линию я настроил iproute скрипт такой:

#!/bin/sh
## Переменные:
#
## IP адреса:
IP1="192.168.48.97"        # серый IP
IP2="xxx.xxx.xxx.xxx"      # белый IP

## Интерфейсы:
IF0="eth1"                 # локальная сеть
IF1="eth0"                 # линия 1 серый IP
IF2="eth2"                 # линия 2 белый IP

## шлюзы:
P1="192.168.48.98"         # шлюз линия 1
P2="xxx.xxx.xxx.xxx"       # шлюз линия 2

## сети:
P0_NET="192.168.222.0/24"   # локальная сеть
P1_NET="192.168.48.96/30"    # сеть линия 1
P2_NET="xxx.xxx.xxx.xxx/30"   # сеть линия 2

 # Создаём две дополнительные таблици маршрутизации:
echo 1000    LINE1  >> /etc/iproute2/rt_tables
echo 1001    LINE2  >> /etc/iproute2/rt_tables

 # Обнуляем таблицы маршрутов:
ip route flush cache
ip route flush table LINE1
ip route flush table LINE2

 #  Теперь можно настраиваем таблицы маршрутизации:
ip route add $P1_NET dev $IF1 src $IP1 table LINE1
ip route add default via $P1 table LINE1
ip route add $P2_NET dev $IF2 src $IP2 table LINE2
ip route add default via $P2 table LINE2

 # Теперь нужно настроить главную таблицу маршрутизации:
ip route add $P1_NET dev $IF1 src $IP1
ip route add $P2_NET dev $IF2 src $IP2

 # Теперь задаем маршрут по умолчанию:
ip route add default via $P1

 # Зададим правила маршрутизации.
ip rule add from $IP1 table LINE1
ip rule add from $IP2 table LINE2

 # для локалки
ip route add $P0_NET     dev $IF0 table LINE1
ip route add $P2_NET     dev $IF2 table LINE1
ip route add 127.0.0.0/8 dev lo   table LINE1
ip route add $P0_NET     dev $IF0 table LINE2
ip route add $P1_NET     dev $IF1 table LINE2
ip route add 127.0.0.0/8 dev lo   table LINE2

ip route flush cache

## END

И ещё в /etc/network/interfaces строчка удаяющая второй ненужный маршрут:

up route del -net 0.0.0.0 dev eth2

Далее iptables…
Со второй линии пробрасывается 443 порт (веб морда почтовика) на почтовый сервак внутри локалки, Открыт 25 порт для MTA Postfix, 21 порт FTP, 2002 ssh, 2022 OpenVPN

вот iptables-save:

 # Generated by iptables-save v1.4.8 on Wed Sep 19 11:11:02 2012
*mangle
:PREROUTING ACCEPT [5031729:2985782557]
:INPUT ACCEPT [3989865:2419248974]
:FORWARD ACCEPT [1038184:566201005]
:OUTPUT ACCEPT [4435265:2666903571]
:POSTROUTING ACCEPT [5463653:3232543188]
-A PREROUTING -i eth0 -j TTL --ttl-set 128
-A PREROUTING -i eth2 -j TTL --ttl-set 128
COMMIT
 # Completed on Wed Sep 19 11:11:02 2012
 # Generated by iptables-save v1.4.8 on Wed Sep 19 11:11:02 2012
*filter
:INPUT DROP [5806:1341829]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]
:bad_packets - [0:0]
:bad_tcp_packets - [0:0]
:icmp_packets - [0:0]
:tcp_inbound - [0:0]
:tcp_outbound - [0:0]
:udp_inbound - [0:0]
:udp_outbound - [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -j bad_packets
-A INPUT -d 224.0.0.1/32 -j DROP
-A INPUT -s 192.168.222.0/24 -i eth1 -j ACCEPT
-A INPUT -d 192.168.222.255/32 -i eth1 -j ACCEPT
-A INPUT -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i eth2 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i eth0 -p tcp -j tcp_inbound
-A INPUT -i eth0 -p udp -j udp_inbound
-A INPUT -i eth0 -p icmp -j icmp_packets
-A INPUT -i eth2 -p tcp -j tcp_inbound
-A INPUT -i eth2 -p udp -j udp_inbound
-A INPUT -i eth2 -p icmp -j icmp_packets
-A INPUT -m pkttype --pkt-type broadcast -j DROP
-A INPUT -m limit --limit 3/min --limit-burst 3 -j LOG --log-prefix "INPUT packet died: "
-A INPUT -p udp -m udp --dport 2022 -j ACCEPT
-A INPUT -i tun0 -j ACCEPT
-A FORWARD -j bad_packets
-A FORWARD -i eth1 -p tcp -j tcp_outbound
-A FORWARD -i eth1 -p udp -j udp_outbound
-A FORWARD -i eth1 -j ACCEPT
-A FORWARD -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth2 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -d 192.168.222.5/32 -i eth2 -p tcp -m tcp --dport 443 -j ACCEPT
-A FORWARD -i tun0 -o eth1 -j ACCEPT
-A FORWARD -i eth1 -o tun0 -j ACCEPT
-A FORWARD -m limit --limit 3/min --limit-burst 3 -j LOG --log-prefix "FORWARD packet died: "
-A OUTPUT -p icmp -m state --state INVALID -j DROP
-A OUTPUT -s 127.0.0.1/32 -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
-A OUTPUT -s 192.168.222.7/32 -j ACCEPT
-A OUTPUT -o eth1 -j ACCEPT
-A OUTPUT -o eth0 -j ACCEPT
-A OUTPUT -o eth2 -j ACCEPT
-A OUTPUT -m limit --limit 3/min --limit-burst 3 -j LOG --log-prefix "OUTPUT packet died: "
-A bad_packets -s 192.168.222.0/24 -i eth0 -j LOG --log-prefix "Illegal source: "
-A bad_packets -s 192.168.222.0/24 -i eth0 -j DROP
-A bad_packets -s 192.168.222.0/24 -i eth2 -j LOG --log-prefix "Illegal source: "
-A bad_packets -s 192.168.222.0/24 -i eth2 -j DROP
-A bad_packets -m state --state INVALID -j LOG --log-prefix "Invalid packet: "
-A bad_packets -m state --state INVALID -j DROP
-A bad_packets -p tcp -j bad_tcp_packets
-A bad_packets -j RETURN
-A bad_tcp_packets -i eth1 -p tcp -j RETURN
-A bad_tcp_packets -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j LOG --log-prefix "New not syn: "
-A bad_tcp_packets -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j DROP
-A bad_tcp_packets -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE -j LOG --log-prefix "Stealth scan: "
-A bad_tcp_packets -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE -j DROP
-A bad_tcp_packets -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,SYN,RST,PSH,ACK,URG -j LOG --log-prefix "Stealth scan: "
-A bad_tcp_packets -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,SYN,RST,PSH,ACK,URG -j DROP
-A bad_tcp_packets -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,PSH,URG -j LOG --log-prefix "Stealth scan: "
-A bad_tcp_packets -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,PSH,URG -j DROP
-A bad_tcp_packets -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,SYN,RST,ACK,URG -j LOG --log-prefix "Stealth scan: "
-A bad_tcp_packets -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,SYN,RST,ACK,URG -j DROP
-A bad_tcp_packets -p tcp -m tcp --tcp-flags SYN,RST SYN,RST -j LOG --log-prefix "Stealth scan: "
-A bad_tcp_packets -p tcp -m tcp --tcp-flags SYN,RST SYN,RST -j DROP
-A bad_tcp_packets -p tcp -m tcp --tcp-flags FIN,SYN FIN,SYN -j LOG --log-prefix "Stealth scan: "
-A bad_tcp_packets -p tcp -m tcp --tcp-flags FIN,SYN FIN,SYN -j DROP
-A bad_tcp_packets -p tcp -j RETURN
-A icmp_packets -p icmp -f -j LOG --log-prefix "ICMP Fragment: "
-A icmp_packets -p icmp -f -j DROP
-A icmp_packets -p icmp -m icmp --icmp-type 8 -j LOG --log-prefix "Ping detected: "
-A icmp_packets -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A icmp_packets -p icmp -m icmp --icmp-type 8 -j DROP
-A icmp_packets -p icmp -m icmp --icmp-type 11 -j ACCEPT
-A icmp_packets -p icmp -j RETURN
-A tcp_inbound -p tcp -m tcp --dport 25 -j ACCEPT
-A tcp_inbound -p tcp -m tcp --dport 2002 -j ACCEPT
-A tcp_inbound -p tcp -m tcp --dport 21 -j ACCEPT
-A tcp_inbound -p tcp -j RETURN
-A tcp_outbound -p tcp -j ACCEPT
-A udp_inbound -p udp -m udp --dport 137 -j DROP
-A udp_inbound -p udp -m udp --dport 138 -j DROP
-A udp_inbound -p udp -m udp --dport 53 -j ACCEPT
-A udp_inbound -p udp -m udp --sport 67 --dport 68 -j ACCEPT
-A udp_inbound -p udp -m udp --dport 2022 -j ACCEPT
-A udp_inbound -p udp -j RETURN
-A udp_outbound -p udp -j ACCEPT
COMMIT
 # Completed on Wed Sep 19 11:11:02 2012
 # Generated by iptables-save v1.4.8 on Wed Sep 19 11:11:02 2012
*nat
:PREROUTING ACCEPT [113231:9533849]
:POSTROUTING ACCEPT [76:7182]
:OUTPUT ACCEPT [56880:3491897]
-A PREROUTING -i eth2 -p tcp -m tcp --dport 443 -j DNAT --to-destination 192.168.222.5:443
-A PREROUTING -d xxx.xxx.xxx.xxx/32 -i eth1 -p tcp -m tcp --dport 443 -j DNAT --to-destination 192.168.222.5:443
-A PREROUTING -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
-A POSTROUTING -o eth0 -j SNAT --to-source 192.168.48.97
-A POSTROUTING -o eth1 -j SNAT --to-source 192.168.48.97
-A POSTROUTING -o eth2 -j SNAT --to-source xxx.xxx.xxx.xxx
-A POSTROUTING -o eth1 -j SNAT --to-source xxx.xxx.xxx.xxx
COMMIT
 # Completed on Wed Sep 19 11:11:02 2012

У squid всё стандартно кроме этих строчек:

acl localnet src 192.168.222.0/24 # RFC1918 possible internal network
cache_dir ufs /var/spool/squid 1024 16 256
http_port 192.168.222.7:3128 transparent
acl apache rep_header Server ^Apache
acl vip src 192.168.222.1-192.168.222.50/32
acl less src 192.168.222.51-192.168.222.99/32
acl socnet url_regex http://vk.com/ http://vkontakte.ru/ http://www.odnoklassniki.ru/ porn sex xxx
acl lamers src 192.168.222.100-192.168.222.200/32
http_access allow manager localhost
http_access deny manager
http_access allow purge localhost
http_access deny purge
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost
http_access deny lamers
http_access deny less socnet
http_access allow vip
http_access allow localnet
http_access deny all
dns_nameservers xxx.xxx.xxx.xxx xxx.xxx.xxx.xxx
broken_vary_encoding allow apache
header_access X-Forwarded-For deny all
header_access Via deny all
header_access Cache-Control deny all

dmesg пака не смотрел… помотрю, но может ктото заметить косяк в чём то что описано выше…

Отлично.
Требует внимательного изучения. “Навскидку” очевидных косяков пока не наблюдаю.
А вы вопрос корректной работы модуля сетевухи закрыли/решили?

Андрей Сеник wrote:

Отлично.
Требует внимательного изучения. “Навскидку” очевидных косяков пока не наблюдаю.
А вы вопрос корректной работы модуля сетевухи закрыли/решили?

Нет, сегодня этим займусь…
Позже о результате здесь отпишусь.

Александр,
POSTROUTING содержит 2 SNAT’а одного и того же интерфейса:

-A POSTROUTING -o eth1 -j SNAT --to-source 192.168.48.97
-A POSTROUTING -o eth1 -j SNAT --to-source xxx.xxx.xxx.xxx

не пойму идеи…

и, вы в каждой цепочке натыкали таргет LOG, даже на ICMP, так и смотрите в лог, пускает или не пускает ping к этой машине из локалки.
да, и…

-A icmp_packets -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A icmp_packets -p icmp -m icmp --icmp-type 8 -j DROP

зачем второе?

-A FORWARD -i eth1 -p tcp -j tcp_outbound
-A FORWARD -i eth1 -p udp -j udp_outbound
-A FORWARD -i eth1 -j ACCEPT

последняя строка вставлена “ради эксперимента”?

Андрей Сеник wrote:

Александр,
POSTROUTING содержит 2 SNAT’а одного и того же интерфейса:
[…]
не пойму идеи…

и, вы в каждой цепочке натыкали таргет LOG, даже на ICMP, так и смотрите в лог, пускает или не пускает ping к этой машине из локалки.
да, и…
[…]
зачем второе?

[…]
последняя строка вставлена “ради эксперимента”?

Добрый день, извиняюсь, что долго не отвечал…
Проблема решена, оказалось я перемудрил с iptables, мой косяк!
Ещё раз извиняюсь за потраченное время.

Да, “рабочим” конфигом iptables делитесь тогда :slight_smile:

Андрей Сеник wrote:

Да, “рабочим” конфигом iptables делитесь тогда :slight_smile:

Нет проблем!!!
вот:

#!/bin/sh
#
echo "Настраиваю Firewall..."
###############################################################################
 # Локальные настройки
###############################################################################
 # SYSCTL
    SYSCTL="/sbin/sysctl -w"
 # IPTables Переменные
    IPT="/sbin/iptables"
    IPTS="/sbin/iptables-save"
    IPTR="/sbin/iptables-restore"
 # Интернет интерфейсы
    INET_IFACE1="eth0"
    INET_ADDRESS1="192.168.48.97"
    INET_IFACE2="eth2"
    INET_ADDRESS2="xxx.xxx.xxx.xxx"
 # Local Interface Information
    LOCAL_IFACE="eth1"
    LOCAL_IP="192.168.222.7"
    LOCAL_NET="192.168.222.0/24"
    LOCAL_BCAST="192.168.222.255"
 # Open VPN
    NET_VPN="10.0.0.0/255.255.255.0"
    VPN_IFACE="tun0"
    VPN_PORT="2022"
 # Localhost Interface
    LO_IFACE="lo"
    LO_IP="127.0.0.1"
###############################################################################
 # Загрузка нужных модулей
###############################################################################
echo "Подгружаю модули ядра..."
    /sbin/depmod -a
 # Обязательные модули
    /sbin/modprobe ip_tables
    /sbin/modprobe ip_conntrack
#   /sbin/modprobe iptable_filter
    /sbin/modprobe iptable_mangle
    /sbin/modprobe iptable_nat
#   /sbin/modprobe ipt_LOG
#   /sbin/modprobe ipt_limit
#   /sbin/modprobe ipt_state
### Не обязательные модули
#   /sbin/modprobe ipt_unclean
#   /sbin/modprobe multiport
#   /sbin/modprobe ipt_tcpmss
#   /sbin/modprobe ipt_mark
#   /sbin/modprobe ipt_owner
#   /sbin/modprobe ipt_REJECT
    /sbin/modprobe ipt_MASQUERADE
    /sbin/modprobe ip_conntrack_ftp
#   /sbin/modprobe ip_conntrack_irc
    /sbin/modprobe ip_nat_ftp
#   /sbin/modprobe ip_nat_irc
###############################################################################
 # Настройки параметров ядра
###############################################################################
    if [ "$SYSCTL" = "" ]
    then
        echo "1" > /proc/sys/net/ipv4/ip_forward
    else
        $SYSCTL net.ipv4.ip_forward="1"
    fi
############################################################################
 # This enables dynamic address hacking.
 # This may help if you have a dynamic IP address \(e.g. slip, ppp, dhcp\).
############################################################################
#   if [ "$SYSCTL" = "" ]
#   then
#       echo "1" > /proc/sys/net/ipv4/ip_dynaddr
#   else
#       $SYSCTL net.ipv4.ip_dynaddr="1"
#   fi
############################################################################
 # This enables SYN flood protection.
 # The SYN cookies activation allows your system to accept an unlimited
 # number of TCP connections while still trying to give reasonable
 # service during a denial of service attack.
############################################################################
    if [ "$SYSCTL" = "" ]
    then
        echo "1" > /proc/sys/net/ipv4/tcp_syncookies
    else
        $SYSCTL net.ipv4.tcp_syncookies="1"
    fi
############################################################################
 # This enables source validation by reversed path according to RFC1812.
 # In other words, did the response packet originate from the same interface
 # through which the source packet was sent?  It's recommended for single-homed
 # systems and routers on stub networks.  Since those are the configurations
 # this firewall is designed to support, I turn it on by default.
 # Turn it off if you use multiple NICs connected to the same network.
############################################################################
#   if [ "$SYSCTL" = "" ]
#   then
#       echo "1" > /proc/sys/net/ipv4/conf/all/rp_filter
#   else
#       $SYSCTL net.ipv4.conf.all.rp_filter="1"
#   fi
###########################################################################
 # This option allows a subnet to be firewalled with a single IP address.
 # It's used to build a DMZ.  Since that's not a focus of this firewall
 # script, it's not enabled by default, but is included for reference.
 # See: http://www.sjdjweis.com/linux/proxyarp/
###########################################################################
#   if [ "$SYSCTL" = "" ]
#   then
#       echo "1" > /proc/sys/net/ipv4/conf/all/proxy_arp
#   else
#       $SYSCTL net.ipv4.conf.all.proxy_arp="1"
#   fi
###########################################################################
 # The following kernel settings were suggested by Alex Weeks. Thanks!
 # This kernel parameter instructs the kernel to ignore all ICMP
 # echo requests sent to the broadcast address.  This prevents
 # a number of smurfs and similar DoS nasty attacks.
###########################################################################
    if [ "$SYSCTL" = "" ]
    then
        echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
    else
        $SYSCTL net.ipv4.icmp_echo_ignore_broadcasts="1"
    fi
###########################################################################
 # This option can be used to accept or refuse source routed
 # packets.  It is usually on by default, but is generally
 # considered a security risk.  This option turns it off.
###########################################################################
    if [ "$SYSCTL" = "" ]
    then
        echo "0" > /proc/sys/net/ipv4/conf/all/accept_source_route
    else
        $SYSCTL net.ipv4.conf.all.accept_source_route="0"
    fi
###########################################################################
 # This option can disable ICMP redirects.  ICMP redirects
 # are generally considered a security risk and shouldn't be
 # needed by most systems using this generator.
##########################################################################
#   if [ "$SYSCTL" = "" ]
#   then
#       echo "0" > /proc/sys/net/ipv4/conf/all/accept_redirects
#   else
#       $SYSCTL net.ipv4.conf.all.accept_redirects="0"
#   fi
##########################################################################
 # However, we'll ensure the secure_redirects option is on instead.
 # This option accepts only from gateways in the default gateways list.
##########################################################################
    if [ "$SYSCTL" = "" ]
    then
        echo "1" > /proc/sys/net/ipv4/conf/all/secure_redirects
    else
        $SYSCTL net.ipv4.conf.all.secure_redirects="1"
    fi
##########################################################################
 # This option logs packets from impossible addresses.
##########################################################################
#   if [ "$SYSCTL" = "" ]
#   then
#       echo "1" > /proc/sys/net/ipv4/conf/all/log_martians
#   else
#       $SYSCTL net.ipv4.conf.all.log_martians="1"
#   fi
#########################################################################
###############################################################################
 # Обнулить все настройки iptables
###############################################################################
echo "Стираю все правила ..."
 # Сбросить все стандартные политики
    $IPT -P INPUT ACCEPT
    $IPT -P FORWARD ACCEPT
    $IPT -P OUTPUT ACCEPT
    $IPT -t nat -P PREROUTING ACCEPT
    $IPT -t nat -P POSTROUTING ACCEPT
    $IPT -t nat -P OUTPUT ACCEPT
    $IPT -t mangle -P PREROUTING ACCEPT
    $IPT -t mangle -P OUTPUT ACCEPT
 # Сбросить все правила
    $IPT -F
    $IPT -t nat -F
    $IPT -t mangle -F
 # Сбросить все пользовательские цепочки
    $IPT -X
    $IPT -t nat -X
    $IPT -t mangle -X
echo "Все правила очищены!"
############################################################################################################################
echo "Настраиваю цепочку INPUT ..."
 # Разрешить внешние пинги
    $IPT -A INPUT -p ICMP -s 0/0 --icmp-type 8 -j ACCEPT
 # Сервер (NTP)
#   $IPT -A INPUT -p UDP -s 0/0 --destination-port 123 -j ACCEPT
 # DNS (UDP)
#   $IPT -A INPUT -p UDP -s 0/0 --destination-port 53 -j ACCEPT
#   $IPT -A INPUT -p UDP -s 0/0 --source-port 53 -j ACCEPT
 # OpenVPN
    $IPT -A INPUT -p UDP -s 0/0 --destination-port 2022 -j ACCEPT
 # DNS (TCP)
#   $IPT -A INPUT -p TCP -s 0/0 --destination-port 53 -j ACCEPT
 # Email Server (SMTP)
    $IPT -A INPUT -p TCP -s 0/0 --destination-port 25 -j ACCEPT
 # SSH
    $IPT -A INPUT -p TCP -s 0/0 --destination-port 2002 -j ACCEPT
 # FTP Server (Control)
    $IPT -A INPUT -p TCP -s 0/0 --destination-port 21 -j ACCEPT
 # Allow all on localhost interface
    $IPT -A INPUT -p ALL -i $LO_IFACE -j ACCEPT
 # DOCSIS compliant cable modems Drop them without logging.
    $IPT -A INPUT -p ALL -d 224.0.0.1 -j DROP
 # Правила для Приватной сети (Шлюз доступа к самой системе)
    $IPT -A INPUT -p ALL -i $LOCAL_IFACE -s $LOCAL_NET -j ACCEPT
    $IPT -A INPUT -p ALL -i $LOCAL_IFACE -d $LOCAL_BCAST -j ACCEPT
 # Правила для входящих пакетов из интернета Разрешить установленные соединения
############## eth0
    $IPT -A INPUT -p ALL -i $INET_IFACE1 -m state --state ESTABLISHED,RELATED 
        -j ACCEPT
############## eth2
    $IPT -A INPUT -p ALL -i $INET_IFACE2 -m state --state ESTABLISHED,RELATED 
        -j ACCEPT
#########################################################################################
 # OpenVPN
#########################################################################################
 # Разрешаем OpenVPN на IP-адресе для входящих подключений
    $IPT -A INPUT -p udp --dport 2022 -j ACCEPT
    $IPT -A INPUT -i $VPN_IFACE -j ACCEPT
#########################################################################################
 # Цепочка FORWARD
#########################################################################################
echo "Настраиваю цепочку FORWARD ..."
 # Разрешать запросы из интренета
############### eth0
    $IPT -A FORWARD -i $INET_IFACE1 -m state --state ESTABLISHED,RELATED 
        -j ACCEPT
############### eth2
    $IPT -A FORWARD -i $INET_IFACE2 -m state --state ESTABLISHED,RELATED 
        -j ACCEPT
 # Проброс портов активен, так что разрешено перенаправление трафика
########## порт 443
    $IPT -A FORWARD -p tcp -i $INET_IFACE2 --destination-port 443 
        --destination 192.168.222.5 -j ACCEPT
########## порт 3389
#   $IPT -A FORWARD -p tcp -i $INET_IFACE2 --destination-port 3389 
#       --destination 192.168.222.10 -j ACCEPT
########## OpenVPN
    $IPT -A FORWARD -i $VPN_IFACE -o $LOCAL_IFACE -j ACCEPT
    $IPT -A FORWARD -i $LOCAL_IFACE -o $VPN_IFACE -j ACCEPT
###############################################################################
 # Цепочка OUTPUT
###############################################################################
echo "Настраиваю цепочку OUTPUT ..."
 # Доверяет на выходе но неправильные ICMP пакеты должны быть сброшены для предотвращения использования эксплойта
    $IPT -A OUTPUT -m state -p icmp --state INVALID -j DROP
 # Localhost
    $IPT -A OUTPUT -p ALL -s $LO_IP -j ACCEPT
    $IPT -A OUTPUT -p ALL -o $LO_IFACE -j ACCEPT
 # В локальную сеть
    $IPT -A OUTPUT -p ALL -s $LOCAL_IP -j ACCEPT
    $IPT -A OUTPUT -p ALL -o $LOCAL_IFACE -j ACCEPT
 # В интернет
########### eth0
    $IPT -A OUTPUT -p ALL -o $INET_IFACE1 -j ACCEPT
########### eth2
    $IPT -A OUTPUT -p ALL -o $INET_IFACE2 -j ACCEPT
###############################################################################
 # Таблица nat
###############################################################################
echo "Подружаю правила для таблицы nat ..."
###############################################################################
echo "Настраиваю цепочку PREROUTING"
 # Цепочка PREROUTING
###############################################################################
 # Проброс портов
############## Порт 443
    $IPT -t nat -A PREROUTING -p tcp -i $INET_IFACE2 --destination-port 443 
        -j DNAT --to-destination 192.168.222.5:443
    $IPT -t nat -A PREROUTING -p tcp -i $LOCAL_IFACE --destination-port 443 
        --destination $INET_ADDRESS2 -j DNAT --to-destination 192.168.222.5:443
############## Порт 3389
#   $IPT -t nat -A PREROUTING -p tcp -i $INET_IFACE2 --destination-port 25555 
#       -j DNAT --to-destination 192.168.222.10:3389
#   $IPT -t nat -A PREROUTING -p tcp -i $LOCAL_IFACE --destination-port 25555 
#       --destination $INET_ADDRESS2 -j DNAT --to-destination 192.168.222.10:3389
 # Проброс HTTP для прозрачного прокси
    $IPT -t nat -A PREROUTING -p tcp --destination-port 80 
        -j REDIRECT --to-ports 3128
###############################################################################
echo "Настраиваю цепочку POSTROUTING"
 # Цепочка POSTROUTING
###############################################################################
 # Маскардинг
    $IPT -t nat -A POSTROUTING -o $INET_IFACE1 
        -j MASQUERADE
    $IPT -t nat -A POSTROUTING -o $INET_IFACE2 
        -j MASQUERADE
    $IPT -t nat -A POSTROUTING -s $NET_VPN -o $INET_IFACE2 
        -j MASQUERADE
###############################################################################
echo "Подружаю правила для таблицы mangle ..."
 # Таблица mangle
###############################################################################
 # Скрыть локальную сеть от провайдера
############## eth0
    $IPT -t mangle -A PREROUTING -i $INET_IFACE1 
        -j TTL --ttl-set 128
############## eth2
    $IPT -t mangle -A PREROUTING -i $INET_IFACE2 
        -j TTL --ttl-set 128
###############################################################################
 # END
###############################################################################
echo "Iptables настроен!"

wgetpaste =)

Выкладываю конечный вариант и реально работающий конфиг:

#!/bin/sh
###############################################################################
 # Переменные
echo "Назначаю переменные"
###############################################################################
 # SYSCTL
    SYSCTL="/sbin/sysctl -w"
 # IPTables Переменные
    IPT="/sbin/iptables"
    IPTS="/sbin/iptables-save"
    IPTR="/sbin/iptables-restore"
 # Интернет интерфейсы
    INET_IFACE1="eth0"
    INET_ADDRESS1="192.168.48.97"
    INET_IFACE2="eth2"
    INET_ADDRESS2="xxx.xxx.xxx.xxx"
 # Local Interface Information
    LOCAL_IFACE="eth1"
    LOCAL_IP="192.168.222.7"
    LOCAL_NET="192.168.222.0/24"
    LOCAL_BCAST="192.168.222.255"
 # Open VPN
    NET_VPN="10.0.0.0/255.255.255.0"
    VPN_IFACE="tun0"
    VPN_PORT="2022"
 # Пробрасываемые порты
 # Веб-морда почтового
 # сервака
    MAILSRV="192.168.222.5"
    MAILPORT="443"
 # RDP
#   RDPSRV="192.168.222.10"
#   RDPPORT="3389"
 # Localhost Interface
    LO_IFACE="lo"
    LO_IP="127.0.0.1"
###############################################################################
 # Загрузка нужных модулей
echo "Подгружаю модули для ядра ..."
###############################################################################
    /sbin/depmod -a
 # Обязательные модули
    /sbin/modprobe ip_tables
    /sbin/modprobe ip_conntrack
    /sbin/modprobe iptable_filter
    /sbin/modprobe iptable_mangle
    /sbin/modprobe iptable_nat
#   /sbin/modprobe ipt_LOG
#   /sbin/modprobe ipt_limit
    /sbin/modprobe ipt_state
### Не обязательные модули
#   /sbin/modprobe ipt_unclean
#   /sbin/modprobe multiport
#   /sbin/modprobe ipt_tcpmss
#   /sbin/modprobe ipt_mark
#   /sbin/modprobe ipt_owner
#   /sbin/modprobe ipt_REJECT
    /sbin/modprobe ipt_MASQUERADE
    /sbin/modprobe ip_conntrack_ftp
#   /sbin/modprobe ip_conntrack_irc
    /sbin/modprobe ip_nat_ftp
#   /sbin/modprobe ip_nat_irc
###############################################################################
 # Настройки параметров ядра
echo "Настраиваю ядро ..."
###############################################################################
    if [ "$SYSCTL" = "" ]
    then
        echo "1" > /proc/sys/net/ipv4/ip_forward
    else
        $SYSCTL net.ipv4.ip_forward="1"
    fi
############################################################################
 # This enables SYN flood protection. The SYN cookies activation allows your system to accept an unlimited 
 # number of TCP connections while still trying to give reasonable service during a denial of service attack.
############################################################################
    if [ "$SYSCTL" = "" ]
    then
        echo "1" > /proc/sys/net/ipv4/tcp_syncookies
    else
        $SYSCTL net.ipv4.tcp_syncookies="1"
    fi
###########################################################################
 # The following kernel settings were suggested by Alex Weeks. Thanks! This kernel parameter instructs the 
 # kernel to ignore all ICMP echo requests sent to the broadcast address.  This prevents a number of smurfs 
 # and similar DoS nasty attacks.
###########################################################################
    if [ "$SYSCTL" = "" ]
    then
        echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
    else
        $SYSCTL net.ipv4.icmp_echo_ignore_broadcasts="1"
    fi
###########################################################################
 # This option can be used to accept or refuse source routed packets.  It is usually on by default, but is 
 # generally considered a security risk.  This option turns it off.
###########################################################################
    if [ "$SYSCTL" = "" ]
    then
        echo "0" > /proc/sys/net/ipv4/conf/all/accept_source_route
    else
        $SYSCTL net.ipv4.conf.all.accept_source_route="0"
    fi
###########################################################################
 # This option can disable ICMP redirects.  ICMP redirects are generally considered a security risk and 
 # shouldn't be needed by most systems using this generator.
##########################################################################
#   if [ "$SYSCTL" = "" ] then
#       echo "0" > /proc/sys/net/ipv4/conf/all/accept_redirects else $SYSCTL 
#   net.ipv4.conf.all.accept_redirects="0" fi
##########################################################################
 # However, we'll ensure the secure_redirects option is on instead. This option accepts only from gateways in 
 # the default gateways list.
##########################################################################
    if [ "$SYSCTL" = "" ]
    then
        echo "1" > /proc/sys/net/ipv4/conf/all/secure_redirects
    else
        $SYSCTL net.ipv4.conf.all.secure_redirects="1"
    fi
###############################################################################
 # Обнулить все настройки iptables
echo "Стираю все правила ..."
###############################################################################
 # Сбросить все стандартные политики
    $IPT -P INPUT ACCEPT
    $IPT -P FORWARD ACCEPT
    $IPT -P OUTPUT ACCEPT
    $IPT -t nat -P PREROUTING ACCEPT
    $IPT -t nat -P POSTROUTING ACCEPT
    $IPT -t nat -P OUTPUT ACCEPT
    $IPT -t mangle -P PREROUTING ACCEPT
    $IPT -t mangle -P OUTPUT ACCEPT
 # Сбросить все правила
    $IPT -F
    $IPT -t nat -F
    $IPT -t mangle -F
 # Сбросить все пользовательские цепочки
    $IPT -X
    $IPT -t nat -X
    $IPT -t mangle -X 
###############################################################################
 # НАСТРОЙКА ПРАВИЛ
echo "Добавляю правила Брандмауера"
###############################################################################
 # Таблица filter
 # Цепочка INPUT
echo "--Таблица filter--"
echo "-----Цепочка INPUT"
###############################################################################
 # настройка политик
    $IPT -P INPUT DROP
    $IPT -P OUTPUT DROP
    $IPT -P FORWARD DROP
 # Настройки фильтра при сканировании
    $IPT -A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK RST -j DROP
    $IPT -A INPUT -p tcp -m tcp --tcp-flags FIN,ACK FIN -j DROP
    $IPT -A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,SYN,RST,PSH,ACK,URG -j DROP
    $IPT -A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE -j DROP
    $IPT -A INPUT -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j DROP
 # localhost
        $IPT -A INPUT -p ALL -i $LO_IFACE -j ACCEPT
 # DOCSIS compliant cable modems Drop them without logging.
    $IPT -A INPUT -p ALL -d 224.0.0.1 -j DROP
 # Сбросить netbios
        $IPT -A INPUT -p UDP -s 0/0 --destination-port 137 -j DROP
        $IPT -A INPUT -p UDP -s 0/0 --destination-port 138 -j DROP
 # DNS
#   $IPT -A INPUT -p udp --sport 53 -j ACCEPT
#   $IPT -A INPUT -p tcp --sport 53 -j ACCEPT
#   $IPT -A INPUT -p udp --dport 53 -j ACCEPT
 # Разрешить ssh
    $IPT -A INPUT -p tcp --dport 2002 -j ACCEPT
    $IPT -A OUTPUT -p tcp --sport 2002 -j ACCEPT
 # Postfix
    $IPT -A INPUT -p tcp --dport 25 -j ACCEPT
        $IPT -A OUTPUT -p tcp --sport 25 -j ACCEPT
#   $IPT -A INPUT -i $INET_IFACE2 -p tcp --dport 25 -j ACCEPT
 # FTP
    $IPT -A INPUT -p tcp --dport 21 -j ACCEPT
        $IPT -A OUTPUT -p tcp --sport 21 -j ACCEPT
#   $IPT -A INPUT -i $INET_IFACE2 -p tcp --dport 21 -j ACCEPT
 # VPN
    $IPT -A INPUT -p udp --dport 2022 -j ACCEPT
    $IPT -A INPUT -i $VPN_IFACE -j ACCEPT
 # ICMP
    $IPT -A INPUT -m state -p icmp --state INVALID -j DROP
    $IPT -A INPUT -p icmp --icmp-type any -j ACCEPT
#
 # eth0
    $IPT -A INPUT -p ALL -i $INET_IFACE1 -m state --state ESTABLISHED,RELATED 
                -j ACCEPT
 # eth2
    $IPT -A INPUT -p ALL -i $INET_IFACE2 -m state --state ESTABLISHED,RELATED 
                -j ACCEPT
 # Rules for the private network (accessing gateway system itself)
    $IPT -A INPUT -p ALL -i $LOCAL_IFACE -s $LOCAL_NET -j ACCEPT
    $IPT -A INPUT -p ALL -i $LOCAL_IFACE -d $LOCAL_BCAST -j ACCEPT
################################################################################
 # Цепочка OUTPUT
echo "-----Цепочка OUTPUT"
################################################################################
 # localhost
        $IPT -A OUTPUT -p ALL -s $LO_IP -j ACCEPT
        $IPT -A OUTPUT -p ALL -o $LO_IFACE -j ACCEPT
 # Доверяет на выходе но неправильные ICMP пакеты должны
 # быть сброшены для предотвращения использования эксплойта
    $IPT -A OUTPUT -m state -p icmp --state INVALID -j DROP
    $IPT -A OUTPUT -p icmp --icmp-type any -j ACCEPT
 # To internal network
        $IPT -A OUTPUT -p ALL -s $LOCAL_IP -j ACCEPT
        $IPT -A OUTPUT -p ALL -o $LOCAL_IFACE -j ACCEPT
 # To internet
        $IPT -A OUTPUT -p ALL -o $INET_IFACE1 -j ACCEPT
        $IPT -A OUTPUT -p ALL -o $INET_IFACE2 -j ACCEPT
#
    $IPT -A OUTPUT -p ALL -m state --state RELATED,ESTABLISHED -j ACCEPT
################################################################################
 # Цепочка FORWARD
echo "-----Цепочка FORWARD"
################################################################################
 # icmp
    $IPT -A FORWARD -m state -p icmp --state INVALID -j DROP
#   $IPT -A FORWARD -p icmp -j ACCEPT
 # http
    $IPT -A FORWARD -p ALL -j ACCEPT
 # Разрешить запрос в интернет из локальной сети
    $IPT -A FORWARD -m state -p icmp --state INVALID -j DROP
    $IPT -A FORWARD -p tcp -i $LOCAL_IFACE -j ACCEPT
 # Deal with responses from the internet
    $IPT -A FORWARD -i $INET_IFACE1 -m state --state ESTABLISHED,RELATED 
        -j ACCEPT
    $IPT -A FORWARD -i $INET_IFACE2 -m state --state ESTABLISHED,RELATED 
        -j ACCEPT
 # OpenVPN
    $IPT -A FORWARD -i $VPN_IFACE -o $LOCAL_IFACE -j ACCEPT
    $IPT -A FORWARD -i $LOCAL_IFACE -o $VPN_IFACE -j ACCEPT
 # Пророс порта 443
    $IPT -A FORWARD -p tcp -i $INET_IFACE2 --destination-port $MAILPORT 
        --destination $MAILSRV -j ACCEPT
 # Пророс порта 3389
#   $IPT -A FORWARD -p tcp -i $INET_IFACE2 --destination-port $RDPPORT 
#       --destination $RDPSRV -j ACCEPT
################################################################################
 # Таблица nat
 # Цепочка PREROUTING
echo "--Таблица nat--"
echo "-----Цепочка PREROUTING"
################################################################################
 # Пророс порта 443
    $IPT -t nat -A PREROUTING -p tcp --dst $INET_ADDRESS2 --dport $MAILPORT 
                -j DNAT --to-destination $MAILSRV:$MAILPORT
    $IPT -t nat -A PREROUTING -p tcp -i $LOCAL_IFACE --destination-port $MAILPORT 
        --destination $INET_ADDRESS2 -j DNAT --to-destination $MAILSRV:$MAILPORT
 # Пророс порта 3389
#   $IPT -t nat -A PREROUTING -p tcp --dst $INET_ADDRESS2 --dport $RDPPORT 
#       -j DNAT --to-destination $RDPSRV
#
#   $IPT -t nat -A PREROUTING -p tcp -i $LOCAL_IFACE --destination-port $RDPPORT 
#       --destination $INET_ADDRESS2 -j DNAT --to-destination $RDP:$RDPPORT
 # Redirect HTTP for a transparent proxy
    $IPT -t nat -A PREROUTING -p tcp --destination-port 80 
                -j REDIRECT --to-ports 3128
################################################################################
 # Цепочка PREROUTING
echo "-----Цепочка POSTROUTING"
################################################################################
 # Пророс порта 443
    $IPT -t nat -A POSTROUTING -p tcp --dst $MAILSRV --dport $MAILPORT 
        -j SNAT --to-source $INET_ADDRESS2
 # Пророс порта 3389
#   $IPT -t nat -A POSTROUTING -p tcp --dst $RDPSRV --dport $RDPPORT 
#       -j SNAT --to-source $INET_ADDRESS2
 # Маскардинг
#   $IPT -t nat -A POSTROUTING -o $INET_IFACE1 -j MASQUERADE
#   $IPT -t nat -A POSTROUTING -o $INET_IFACE2 -j MASQUERADE
    $IPT -t nat -A POSTROUTING -s $NET_VPN -o $INET_IFACE2 -j MASQUERADE
 # Маршрутизация с подменой адреса
 # eth0
    $IPT -t nat -A POSTROUTING -o $INET_IFACE1 
         -j SNAT --to-source $INET_ADDRESS1
    $IPT -t nat -A POSTROUTING -o $LOCAL_IFACE 
        -j SNAT --to-source $INET_ADDRESS1
 # eth2
    $IPT -t nat -A POSTROUTING -o $INET_IFACE2 
        -j SNAT --to-source $INET_ADDRESS2
    $IPT -t nat -A POSTROUTING -o $LOCAL_IFACE 
        -j SNAT --to-source $INET_ADDRESS2
################################################################################
 # Таблица mangle
 # Цепочка OUTPUT
echo "--Таблица mangle--"
echo "-----Цепочка OUTPUT"
################################################################################
 # Set the TTL
    $IPT -t mangle -A OUTPUT -o $INET_IFACE1 
        -j TTL --ttl-set 128
    $IPT -t mangle -A OUTPUT -o $INET_IFACE2 
        -j TTL --ttl-set 128
################################################################################
 # END
echo "Настройка Брандмауера завершена!"
################################################################################

Все хорошо.
Только… wgetpaste =)