Вопрос или проблема
Я только что установил новую виртуальную машину с Ubuntu 24.04. Я хочу защитить ее с помощью iptables, поэтому установил два правила:
iptables -A INPUT -i any -p tcp –dport 22 -j ACCEPT
iptables -A INPUT -i any -j DROP
Если я подключаюсь к виртуальной машине по telnet на порт 22, все в порядке.
Если я подключаюсь к виртуальной машине по telnet на порт 8888, я получаю сброс!!! Почему?
На порту 8888 никто не слушает, поэтому я выполнил nc -l -p 8888 на виртуальной машине
и затем …
telnet 192.168.10.111 8888
Попытка подключения к 192.168.10.111…
Подключено к 192.168.10.111.
Символ для выхода – ‘^]’.
В чем проблема?
Я уничтожил и заново создал виртуальную машину, чтобы убедиться в своем результате, и столкнулся с тем же поведением …
Ответ или решение
Проблема, с которой вы столкнулись, связана с особым поведением вашего сетевого интерфейса и правилами iptables
. Давайте разберемся с вашими правилами и поведением, которое вы наблюдаете.
Вы установили следующие правила iptables:
iptables -A INPUT -i any -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -i any -j DROP
Первое правило позволяет входящий трафик на TCP-порт 22, который используется для SSH. Второе правило отказывает во всех остальных входящих соединениях. Это, в принципе, корректно с точки зрения обеспечения безопасности, так как вы хотите разрешить только доступ к порту 22.
Однако, когда вы открываете порт 8888 с помощью nc -l -p 8888
, и пытаетесь к нему подключиться, важно отметить следующее:
-
Когда вы коннектетесь к порту 8888, iptables применяет ваше второе правило и блокирует это соединение, так как вы не разрешили трафик на этот порт.
-
Чтобы увидеть успешное соединение на порту 8888, необходимо разрешить этот порт в iptables. То есть, вам нужно добавить еще одно правило, подобное тому, что вы добавили для порта 22. Например:
iptables -A INPUT -i any -p tcp --dport 8888 -j ACCEPT
-
После добавления этого правила iptables будет отпускать трафик, направленный на порт 8888, и вы сможете подключаться к вашему
nc
. -
Также важно учесть, что если вы хотите, чтобы ваша конфигурация сохранялась после перезагрузки, следует сохранить ваши правила:
iptables-save > /etc/iptables/rules.v4
Таким образом, чтобы решить вашу проблему, добавьте правило для порта 8888 или любого другого порта, который вы хотите открыть, заменив "8888" на необходимый порт. Если вы продолжите сталкиваться с проблемами, убедитесь, что на вашей виртуальной машине нет других сервисов или настроек, блокирующих трафик, таких как UFW (Uncomplicated Firewall), который может конфликтовать с вашими правилами iptables.
Надеюсь, это поможет вам наладить корректную работу с iptables на вашей Ubuntu 24.04!