Ubuntu 24.04 – проблемы с правилами iptables

Вопрос или проблема

Я только что установил новую виртуальную машину с 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, и пытаетесь к нему подключиться, важно отметить следующее:

  1. Когда вы коннектетесь к порту 8888, iptables применяет ваше второе правило и блокирует это соединение, так как вы не разрешили трафик на этот порт.

  2. Чтобы увидеть успешное соединение на порту 8888, необходимо разрешить этот порт в iptables. То есть, вам нужно добавить еще одно правило, подобное тому, что вы добавили для порта 22. Например:

iptables -A INPUT -i any -p tcp --dport 8888 -j ACCEPT
  1. После добавления этого правила iptables будет отпускать трафик, направленный на порт 8888, и вы сможете подключаться к вашему nc.

  2. Также важно учесть, что если вы хотите, чтобы ваша конфигурация сохранялась после перезагрузки, следует сохранить ваши правила:

iptables-save > /etc/iptables/rules.v4

Таким образом, чтобы решить вашу проблему, добавьте правило для порта 8888 или любого другого порта, который вы хотите открыть, заменив "8888" на необходимый порт. Если вы продолжите сталкиваться с проблемами, убедитесь, что на вашей виртуальной машине нет других сервисов или настроек, блокирующих трафик, таких как UFW (Uncomplicated Firewall), который может конфликтовать с вашими правилами iptables.

Надеюсь, это поможет вам наладить корректную работу с iptables на вашей Ubuntu 24.04!

Оцените материал
Добавить комментарий

Капча загружается...