Доброго времени суток.
Есть две тачки с debian и WS. На WS стоит IIS с кучей сайтов, все они сейчас смотрят в интернет, нужно спрятать их за тачку с debian.
Debian тачка имеет два сетевых интерфейса:
eth0 22.22.22.22 - интернет
eth1 192.168.1.100 - локалка
WS:
eth0 33.33.33.33
eth1 192.168.1.200
Локалка общая, тачки друг друга пингуют по локалке.
Я делаю так:
iptables -F
iptables -t nat -F
iptables -A INPUT -i eth1 -j ACCEPT
iptables -A INPUT -i eth0 -p icmp -j ACCEPT
iptables -A INPUT -p tcp -m conntrack --ctstate NEW -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -j DROP
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 9090 -j ACCEPT # хочу через этот порт пустить трафик
#Пакеты с нужного адреса заворачиваем на компьютер
iptables -t nat -A PREROUTING -s 22.22.22.22 --sport 8172 -i eth0 -j DNAT --to-destination 196.168.1.200 --dport 9090
#Разрешаем эти пакеты
iptables -t filter -A FORWARD -s 22.22.22.22 -d 192.168.1.200 -j ACCEPT
#Получаем интернет в локалке
#iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to-source 22.22.22.22
#Прописываем путь пакета с debian до WS
iptables -t nat -A POSTROUTING -d 192.168.1.200 --sport 9090 -s 192.168.1.0/24 -j SNAT --to-source 192.168.1.100 --dport 9090
#Меняем адрес источника на поддельный
iptables -t nat -A POSTROUTING -s 22.22.22.22 -j SNAT --to-source 192.168.1.150
#Добавляем новый адрес роутеру XX - любое незанятое в локалке число
ip addr add 192.168.1.150/24 dev eth1
#где .150 - не занятый локальный адрес
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
Но что-то идёт не так.
Если что текст перепечатывал, чтоб ещё раз продумать, могут быть очепятки, но при выполнении скрипта ошибок не выдаёт.