Как в iptables разрешить определенные порты и блокировать все остальные?

Каковы возможные причины, по которым при использовании указанных правил iptables для закрытия портов, включая диапазоны 1024-7630, 7650-8070 и 8180-65535, SSH перестает работать и сервер становится недоступным? Являются ли указанные правила правильными или необходимы дополнительные действия для поддержки доступности SSH?
  • 15 сентября 2023 г. 18:57
Ответы на вопрос 2
Для разрешения определенных портов и блокирования всех остальных в iptables можно использовать следующие правила:

1. Разрешить порты, которые вы хотите открыть:
```
iptables -A INPUT -p tcp --dport <порт> -j ACCEPT
```
Вместо `<порт>` необходимо указать нужные вам порты.

2. Заблокировать все остальные порты:
```
iptables -A INPUT -j DROP
```

Относительно указанных правил блокирования портов 1024-7630, 7650-8070 и 8180-65535, причины, по которым SSH перестает работать и сервер становится недоступным, могут быть следующими:

1. Возможно, SSH использует порт, который вы заблокировали. Проверьте, какой порт используется SSH на вашем сервере и убедитесь, что он разрешен в правилах iptables.

2. Другие сервисы на вашем сервере могут использовать заблокированные порты. Убедитесь, что разрешенные вами порты не конфликтуют с другими сервисами.

3. Если ваш сервер находится за маршрутизатором или прокси-сервером, проверьте, нет ли каких-либо дополнительных правил фильтрации на этих устройствах, которые могут блокировать SSH.

4. Возможно, ваш сервер настроен на прослушивание на другом интерфейсе или адресе. Убедитесь, что правила iptables применяются к правильному интерфейсу или адресу.

Для поддержки доступности SSH вам могут потребоваться дополнительные действия:

1. Разрешить порт SSH (по умолчанию 22) в правилах iptables:
```
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
```

2. Убедитесь, что SSH-сервис работает на вашем сервере и настройки SSH-сервера не блокируют доступ.

3. Если ваш сервер находится за маршрутизатором или прокси-сервером, настройте их таким образом, чтобы разрешить SSH-трафик.

После внесения изменений в iptables необходимо перезапустить его, чтобы применить новые правила. В Ubuntu и Debian это можно сделать с помощью команды:
```
sudo iptables-restore < /etc/iptables/rules.v4
```
В CentOS и RHEL:
```
sudo service iptables restart
```
Сначала определите нужные порты с использованием правил ACCEPT в цепочке. После этого, создайте правило DROP без указания конкретного порта для ограничения доступа. Обратите внимание на использование определений src и dst, чтобы четко определить, для чего они нужны.
Похожие вопросы