Например, компьютер за маршрутизатором NAT использует Skype. Skype использует порт 4000 для отправки пакетов на сервер, чтобы установить косвенные соединения с другими клиентами Skype.

Так как Skype отправил пакет на сервер первым, сервер , очевидно , может посылать пакеты обратно к маршрутизатору , который использует NAT.

Мой вопрос, учитывая, что маршрутизатор использует NAT, разрешено ли серверу отправлять пакеты на любые открытые / переадресованные порты, которые есть у NAT, или только на порт 4000?

Я знаю, что серверы Skype не являются вредоносными, это был только пример

2 ответа2

0

Для входящего трафика, инициированного другими: злонамеренный хост всегда может отправлять данные на любой порт вашего маршрутизатора (сканирование портов). Если порт не переадресован, ваш маршрутизатор может решить, отбрасывать ли незапрошенный пакет или вежливо ответить, что соединение недопустимо. Если порт был перенаправлен, он достигнет конечного хоста за маршрутизатором.

Для исходящего трафика, инициируемого вашим хостом: не существует правила, по которому исходный порт вы должны использовать для связи с сервером ретрансляции Skype. Кроме того, на вашем конечном хосте Skype может использовать TCP 4000, но NAT может фактически использовать другой порт для отправки сообщения, скажем, порт A. Сервер Skype видит только порт A, а не порт 4000. Если сервер Skype отвечает на порт, отличный от A, то применяется ситуация, описанная в разделе "Для входящего трафика". Если сервер Skype отвечает обратно на порт A, NAT направляет его обратно на ваш хост, отправляя на порт 4000.

Чтобы уточнить: NAT (Network Address Translator) является вашим маршрутизатором. И не путайте часть "Для входящего трафика" как ответ сети на ваш хост. Фактически это означает, что внешний сервер является первым, кто обращается к вашему хосту, чтобы установить соединение.

0

Простой ответ: «он может только отправлять пакеты (клиенту за маршрутизатором NAT) на порт, который отправил пакет». Это в значительной степени, но не совсем правильно, хотя.

Ответ зависит от способа настройки IPTables, рассматриваемого порта и используемых модулей. Простые устройства nat позволяют отображать трафик только на тот же порт, с которого он поступил, однако не все устройства настолько просты. В Linux и других ОС вы получаете "Stateful firewall", где обычно используются "установленные и связанные" порты, а также различные модули, которые проверяют состояния соединения - например, если сделан исходящий FTP-запрос (порт 21), маршрутизатор может также откройте порт 20 для данных, если загружен модуль FTP. FTP также может открывать другие порты, и злонамеренный сервер может сделать это для доступа к произвольному порту с высоким номером. Некоторые распространенные модули отслеживания, которые могут использоваться, включают FTP, SIP, Netbios, PPTP, gre, tftp, h323, irc. Существует ошибка CVE-2014-8160, которая может разрешить произвольный обход межсетевого экрана при использовании отслеживания соединения при определенных условиях - возможно, так, как вы думаете.

Для злонамеренного сервера было бы довольно трудно открыть другие порты, но, возможно, не будет невозможным. Конечно, вам понадобится что-то уязвимое при прослушивании на других портах - и (в Linux) вы можете снизить этот риск, обеспечив соблюдение правил отслеживания соединений после правил, запрещающих общий доступ к этим портам.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .