Как разрешить WAN-соединение через прямой порт?

У моего домашнего интернет-соединения есть статический IP-адрес (например: 123.123.123.123)

Я настроил мой маршрутизатор для переадресации порта 9000 на внутренний хост (192.168.1.101), который работает Ubuntu 14-04,

введите описание здесь

я бегу netcat прослушивание порта 9000:

$ nc -l 9000

Подключение из моей локальной сети:

На другой машине в моей локальной сети я могу telnet к этому порту:

$ telnet 192.168.1.101 9000
Trying 192.168.1.101...
Connected to 192.168.1.101.
Escape character is '^]'.
hello world

и соединение успешно

$ nc -l 9000
hello world

Подключение снаружи моей локальной сети:

Однако, если я пытаюсь подключиться через мой внешний IP-адрес, я не могу пройти:

$ telnet 123.213.123.123 9000
Trying 123.213.123.123...

Проблема с брандмауэром?

Я пытался разрешить порт 9000 на iptables (я не эксперт по iptables кстати):

$ sudo iptables -I INPUT 1 -p tcp --dport 9000 -j ACCEPT

Это моя итоговая конфигурация:

$ sudo iptables -L -n -v
Chain INPUT (policy ACCEPT 203 packets, 16977 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:9000

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 178 packets, 23749 bytes)
 pkts bytes target     prot opt in     out     source               destination         

telnet до сих пор не могу пройти.

я думаю iptables Конфиг может быть ненужным в любом случае, потому что ufw status говорит, что это неактивно:

$ sudo ufw status
Status: inactive

Сканирование портов говорит, что оно открыто:

Если я запускаю сканер портов на моем внешнем IP с nc -l 9000 при запуске он говорит, что порт открыт.

введите описание здесь

Если я бегу tcpdump Я не вижу ничего, что приходит на порт 9000, когда я пытаюсь telnet в порт. Однако, запуск сканера портов действительно обнаруживается:

18:41:34.023692 IP 198.199.98.246.49977 > my_host.9000: Flags [S], seq 3955039481, win 14600, options [mss 1400,sackOK,TS val 4051434607 ecr 0,nop,wscale 8], length 0
18:41:34.023748 IP my_host.9000 > 198.199.98.246.49977: Flags [S.], seq 3541700333, ack 3955039482, win 28960, options [mss 1460,sackOK,TS val 465840988 ecr 4051434607,nop,wscale 7], length 0
18:41:34.250110 IP 198.199.98.246.49977 > my_host.9000: Flags [.], ack 1, win 58, options [nop,nop,TS val 4051434663 ecr 465840988], length 0
18:41:34.250973 IP 198.199.98.246.49977 > my_host.9000: Flags [F.], seq 1, ack 1, win 58, options [nop,nop,TS val 4051434664 ecr 465840988], length 0
18:41:34.251035 IP my_host.9000 > 198.199.98.246.49977: Flags [F.], seq 1, ack 2, win 227, options [nop,nop,TS val 465841045 ecr 4051434664], length 0
18:41:34.477197 IP 198.199.98.246.49977 > my_host.9000: Flags [.], ack 2, win 58, options [nop,nop,TS val 4051434720 ecr 465841045], length 0

Вопросы:

Я немного растерялся относительно того, где проблема.

  • Как я могу диагностировать, где проблема?
  • Как получаются данные сканирования портов, но не мой телнет?
  • Как я могу разрешить входящие соединения?

1 ответ

Есть ли причина, по которой вы используете брандмауэр iptables и fail2ban внутри своей внутренней сети, из-за аппаратного брандмауэра?
По моему опыту, их довольно сложно настроить и диагностировать. особенно когда вы используете fail2ban, чья явная цель - сделать то, что вы пытаетесь сделать, трудным.
Например, если вы попытаетесь безуспешно попытаться подключиться к вашей машине, то определенное количество раз fail2ban будет блокировать вас. Мое предложение (если вы еще не пробовали) будет

  1. попробуйте подключиться к внутренней машине без брандмауэра iptables / fail2ban.
  2. как только вы заработаете - настройте iptables
  3. как только вы заработаете - настройте fail2ban - если вы чувствуете, что вам нужен такой уровень безопасности внутри локальной сети
Другие вопросы по тегам