Я пытаюсь создать функцию NAT, чтобы одновременно выполнять 2 задачи.
- Пользователи из публичной сети могут получить доступ к FTP-серверу.
- Пользователи в локальной сети могут используйте тот же адрес WAN 203.X.X.X для доступа к FTP-серверу
network topology
[---] win10 PC
\ / [ - ] 10.0.0.4
[wireless router]------------- [ _ ]
WAN:203.x.x.x _______
LAN gateway:10.0.0.138 / / laptop **linux FTP server**
/______/ iptables **NAT running here**
\ \ wlan0:10.0.0.113
\_______\ port:20,21
passive:6000:7000
Теперь FTP-сервер доступен только через LAN. ftp://10.0.0.113 Я хочу перенаправить порт на локальный FTP-сервер, в этом случае любой пользователь сможет использовать WAN-адрес 203.x.x.x для входа на FTP-сервер. Я использую Windows 10 для проведения теста, который находится в той же локальной сети.
*nat
:PREROUTING ACCEPT [280:86644]
:INPUT ACCEPT [79:4030]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A PREROUTING -j LOG
-A PREROUTING -d 203.213.238.12/32 -p tcp -m tcp --dport 21 -j DNAT --to-destination 10.0.0.113:21
-A PREROUTING -d 203.213.238.12/32 -p tcp -m tcp --dport 20 -j DNAT --to-destination 10.0.0.113
-A PREROUTING -d 203.213.238.12/32 -p tcp -m tcp --dport 6000:7000 -j DNAT --to-destination 10.0.0.113
-A OUTPUT -j LOG
-A OUTPUT -d 203.213.238.12/32 -p tcp -m tcp --dport 21 -j DNAT --to-destination 10.0.0.113:21
-A OUTPUT -d 203.213.238.12/32 -p tcp -m tcp --dport 20 -j DNAT --to-destination 10.0.0.113
-A OUTPUT -d 203.213.238.12/32 -p tcp -m tcp --dport 6000:7000 -j DNAT --to-destination 10.0.0.113
-A POSTROUTING -j LOG
-A POSTROUTING -d 10.0.0.113/32 -o wlan0 -p tcp -m tcp --dport 21 -j SNAT --to-source 10.0.0.138:21
-A POSTROUTING -d 10.0.0.113/32 -o wlan0 -p tcp -m tcp --dport 20 -j SNAT --to-source 10.0.0.138
-A POSTROUTING -d 10.0.0.113/32 -o wlan0 -p tcp -m tcp --dport 6000:7000 -j SNAT --to-source 10.0.0.138
COMMIT
# Completed on Thu Mar 2 19:40:51 2017
# Generated by iptables-save v1.4.21 on Thu Mar 2 19:40:51 2017
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [412:52590]
-A INPUT -i wlan0 -j ACCEPT
-A FORWARD -o wlan0 -j ACCEPT
-A FORWARD -i wlan0 -j ACCEPT
COMMIT
Не знаю, что пропустил, или в конфигурации есть логические ошибки. любая помощь будет присвоена.
Переадресация портов настроена на маршрутизаторе и позволяет отправлять весь трафик, который поступает в этот интерфейс на заданный порт, на определенный адрес (и порт). Обычно это делается на домашних маршрутизаторах для перенаправления трафика с публичной стороны маршрутизатора на частную.
Для перенаправления внутреннего трафика вам может потребоваться настроить оператор пересылки на внутреннем интерфейсе маршрутизатора или рассмотреть возможность использования внутреннего сетевого адреса целевого сервера или использования полного доменного имени сервера во внутренней сети и разрешения внутреннего DNS-сервера. перевод.
Приведенный вами пример iptables мог бы работать, если бы это была конфигурация маршрутизатора.