Доброго времени суток господа.
Хочу вновь задать уже «заезжанный вопрос», да простят меня модераторы чёткого (пошагового) алгоритма действий с объёяснениями не нашёл.
Ситуация такая:
имеем проксисервер (squid+sams) раздающий инет в локалку (eth1 -192.168.1.1) порт 3128. На eth0 (11.22.33.44) приходит инет от провайдера. Всё у всех работает, трафик учитывается... Но есть одна машина на которой стоит банк-клиент её адрес 192.168.1.20 работающий через порт 3904. Всем понятно что через прокси не работает. Если машину подключить к инету минуя прокси банк-клиент пашет.
В описанной ситуации я так понимаю встает вопрос проброса (перенаправленя) портов. Для этого необходимо указать правила iptables. Скажу сразу в этом я не спец но не большое изучение темы провёл и всё же в голове каша. Предлагаю провести пошаговое решение проблемы дабы занющие посетители сего ресурса подсказали необходимый набор правил без отсылания в мануалам по iptables.
запросил существующие наборы правил:
root@alex-desktop:~# iptables -L -n -v -t nat
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Как видно их нет.
далее подменяем ip приёмника на внутренний ip:
sudo iptables -t nat -A PREROUTING -p tcp -d 11.22.33.44 --dport 3904 -j DNAT --to-destination 192.168.1.20:3904
видел и другой вариант:
sudo iptables -t nat -A PREROUTING -d 192.168.1.20 -p tcp -m tcp --dport 3904 -j DNAT --to-destination 11.22.33.44:3904
Какой из вариантов правельный?
- далее подменяем ip отправителя на внешний:
sudo iptables -t nat -A POSTROUTING -p tcp --dst 192.168.1.20 --dport 3904 -j SNAT --to-source 11.22.33.44
так же видел и другой вариант:
sudo iptables -t nat -A POSTROUTING -d 11.22.33.44 -p tcp -m tcp --dport 3904 -j SNAT --to-source 192.168.1.20
Какой из вариантов правельный?
- Так же ещё в одном посте увидел что надо указывать ещё два правила, хотя есть мнение что это не обязательно:
-A FORWARD -d 11.22.33.44 -p tcp -m tcp --dport 30583 -j LOG
-A FORWARD -d 11.22.33.44 -p tcp -m tcp --dport 30583 -j ACCEPT
Ещё вопрос что перед -A FORWARD тут указывается.
Затем включаем маршрутизацию:
sudo echo 1 > /proc/sys/net/ipv4/ip_forward
Вопрос: какие из правил верные а какие нет? Если можно знатоки укажите последовательность правил.