Коллективный разум, помогай! Второй день бьюсь((((
Значит имеем: Ubuntu Server 9.10, SQUID 2.7 непрозрачный, программу банк-клиент (чёрт бы её побрал).
Задача: заставить банк-клиент работать.
Показания к применению: через прокси работать не хочет, не будет и вообще. Нужно НАТить.
Лечение: Имеем такую вот схемку iptables - скрипт rc.local
echo 1 > /proc/sys/net/ipv4/ip_forward
#Настройка файрволла под Ваши задачи.
iptables -P INPUT DROP
#iptables -P OUTPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
# Пропускаем обратную петлю
iptables -A INPUT -d 127.0.0.1 -j ACCEPT
# Пропускаем пакеты уже установленных соединений
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
# Пропускаем сквид
#iptables -A OUTPUT -m owner --uid-owner squid -j ACCEPT
# Пускаем локалку
iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT
# Пускаем меня :-)
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# Поднимаем nat
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source $_WAN_IP
# Выпускаем пользователей по одному, тех кому нужен прямой доступ к каким-то там портам
#iptables -A FORWARD -s <ip адрес пользователя> -p <протокол> --dport <номер порта> -j ACCEPT
iptables -A FORWARD -s 192.168.1.0/24 -p tcp -m multiport --dport 110,25,443,995 -j ACCEPT
#Все.
exit 0
Далее по аналогии с почтовыми портами пытаемся выпустить банк-клиент наружу:
iptables -A FORWARD -s 192.168.1.6 -d $_BANK_IP1 -p tcp --dport 1024 -j ACCEPT
iptables -A FORWARD -s 192.168.1.6 -d $_BANK_IP2 -p tcp --dport 1024 -j ACCEPT
iptables -A FORWARD -s 192.168.1.6 -d $_BANK_IP1 -p udp --dport 87 -j ACCEPT
iptables -A FORWARD -s 192.168.1.6 -d $_BANK_IP2 -p udp --dport 87 -j ACCEPT
А так же (банк говорит: "НАДО!"...) пропускаем входящие пакеты:
iptables -A INPUT -p tcp --dport 1024 -j ACCEPT
iptables -A INPUT -p udp --dport 87 -j ACCEPT
и MAPим их внутрь сети:
iptables -t nat -A PREROUTING -p tcp -s $_BANK_IP1 -d $_WAN_IP --dport 1024 -j DNAT --to-destination 192.168.1.6:1024
iptables -t nat -A PREROUTING -p tcp -s $_BANK_IP2 -d $_WAN_IP --dport 1024 -j DNAT --to-destination 192.168.1.6:1024
ptables -A FORWARD -i eth0 -d 192.168.1.6 -p tcp --dport 1024 -j ACCEPT
iptables -t nat -A PREROUTING -p udp -s $_BANK_IP1 -d $_WAN_IP --dport 87 -j DNAT --to-destination 192.168.1.6:87
iptables -t nat -A PREROUTING -p udp -s $_BANK_IP2 -d $_WAN_IP --dport 87 -j DNAT --to-destination 192.168.1.6:87
iptables -A FORWARD -i eth0 -d 192.168.1.6 -p udp --dport 87 -j ACCEPT
Идём проверять... Не работает(((
Диагноз: Либо я заработался, либо ещё не всё догоняю, но в упор не вижу причину, по которой не работает, уже второй день. ((( В общем, взгляните свежим взглядом и посоветуйте чего-нибудь, пожалуйста.