Назад | Перейти на главную страницу

natting ftp-сервер внутри локальной сети с портом шлюза 1965

Я хочу перенаправить доступ на моем шлюзе (внутренний ip: 192.168.4.4) с внешнего порта 1965 на FTP-сервер внутри моей локальной сети (192.168.4.2)

Другими словами, кто-то, получающий доступ по FTP к моему шлюз: 1965 будет перенаправлен на 192.168.4.2:21

Раньше я делал это со старыми ядрами Linux, и это сработало.

Похоже, что с версии ядра 4.9 все изменилось, и я не могу обновить свой скрипт iptables.

IP-переадресация и nf conntracking включены:

net.ipv4.ip_forward = 1
net.netfilter.nf_conntrack_helper = 1

и загружены необходимые модули:

nf_nat_ftp             16384  0
nf_conntrack_ftp       20480  3 nf_nat_ftp
nf_nat                 24576  5 xt_nat,nf_nat_redirect,nf_nat_ftp,nf_nat_masquerade_ipv4,nf_nat_ipv4
nf_conntrack           94208  9 nf_conntrack_ftp,nf_conntrack_ipv4,xt_helper,nf_nat_ftp,xt_CT,nf_nat_masquerade_ipv4,xt_conntrack,nf_nat_ipv4,nf_nat

iptable_raw            16384  1
iptable_nat            16384  1
nf_nat_ipv4            16384  1 iptable_nat
iptable_filter         16384  1
ip_tables              28672  3 iptable_filter,iptable_raw,iptable_nat

моя конфигурация iptables (сгенерированная iptables-save, со счетчиками)

Я в основном изменил сырой которые не были нужны в ядрах 4.1 для маскировки FTP.

Я понял, что теперь нужно использовать CT helper.

Для удобства чтения я вырезал все правила ведения журнала и все, что не было связано с ftp (samba, ssh,…)

сырой

ПЕРЕДАЧА [21:1052] -A PREROUTING -p tcp -m tcp --dport 21 -j CT --helper ftp [20:1128] -A PREROUTING -p tcp -m tcp --dport 1965 -j CT --helper ftp

нац

ПЕРЕДАЧА [20:1128] -A PREROUTING -i wan -p tcp -m tcp --dport 1965 -j DNAT --to-destination 192.168.4.2:21

РАЗМЕЩЕНИЕ [0:0] -A POSTROUTING -s 192.168.0.0/16 -o wan -j MASQUERADE [22:1248] -A POSTROUTING -d 192.168.4.2/32 -j SNAT --to-source 192.168.4.4

фильтр

ВВОД [564393:501714526] -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT [0:0] -A INPUT -m helper --helper ftp -j ACCEPT [0:0] -A INPUT -p tcp -m tcp --dport 1965 -j ACCEPT [0:0] -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

ВПЕРЕД [0:0] -A FORWARD -p tcp -m tcp --sport 20 --dport 1965 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT [20:1128] -A FORWARD -d 192.168.4.2/32 -i wan -p tcp -m tcp --dport 21 -j ACCEPT [0:0] -A FORWARD -p tcp -m tcp --dport 21 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT [0:0] -A FORWARD -p tcp -m tcp --sport 20 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT


Спасибо за чтение.