Я пытаюсь настроить сетевой брандмауэр, и у меня возникают проблемы, потому что меня продолжают выгнать из SSH из-за ошибок. Вот что у меня сейчас есть:

# Custom Rules
iptables -F
iptables -X
iptables -P FORWARD DROP
iptables -N mc
iptables -A mc --src 123.456.789.1 -j ACCEPT
iptables -A mc --src 123.456.789.2 -j ACCEPT
iptables -A mc --src 50.50.50.50 -j ACCEPT
iptables -A mc -i lo -j ACCEPT
iptables -A mc -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A mc -m state --state INVALID -j DROP
iptables -A mc -j DROP

# Server Rules (Main Server)
iptables -A INPUT -p tcp --match multiport --dports 64000:64321 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --sport 53 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -p udp -m udp --sport 53 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth0 -p icmp --source proxy.ovh.net -j ACCEPT
iptables -A INPUT -i eth0 -p icmp --source proxy.p19.ovh.net -j ACCEPT
iptables -A INPUT -i eth0 -p icmp --source proxy.rbx.ovh.net -j ACCEPT
iptables -A INPUT -i eth0 -p icmp --source proxy.rbx2.ovh.net -j ACCEPT
iptables -A INPUT -i eth0 -p icmp --source ping.ovh.net -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 22 --source cache.ovh.net -j ACCEPT
iptables -A INPUT -p tcp --dport 3306 -j mc
iptables -A INPUT -p tcp -m multiport ! --dports 20,21,22,80,443,9987,20117,25565 -j mc
iptables -A INPUT -j DROP

В принципе:

  • Разрешить доступ к портам 64000:64321
  • Разрешить доступ по TCP (из sport 53) к портам 1024:65535
  • Разрешить доступ по UDP (из спорта 53) к портам 1024:65535
  • Разрешить доступ с помощью пинг-запросов ICMP из вышеперечисленных источников
  • Разрешить доступ к порту 3306, используя правила mc
  • Фильтрация доступа из портов 20,21,22,80,443,9987,20117,25565 через правила mc
  • Запретить любой другой ввод

1 ответ1

0

Прежде всего «Отфильтруйте доступ из портов 20,21,22,80,443,9987,20117,25565 через правила mc» с этим правилом:
iptables -A INPUT -p tcp -m multiport ! --dports 20,21,22,80,443,9987,20117,25565 -j mc
не будет работать из-за восклицательного знака. Ваше правило работает для каждого порта, кроме 20,21,22,80,443,9987,20117,25565 . Если вы хотите «фильтровать доступ через порты 20,21,22,80,443,9987,20117,25565 через правила mc», вы должны использовать:
iptables -A INPUT -p tcp -m multiport --dports 20,21,22,80,443,9987,20117,25565 -j mc

На данный момент в вашей конфигурации вы разрешаете ssh доступ только для одного адреса источника cache.ovh.net - в ваших основных правилах INPUT . Для соединений с другими портами у вас есть правило:
iptables -A mc -m state --state RELATED,ESTABLISHED -j ACCEPT что позволяет работать связанным и установленным соединениям. Я думаю, что соединения с адресами источника от ваших пользовательских правил mc должны работать нормально, но для вашего основного правила INPUT вы должны добавить что-то вроде этого:
iptables -A INPUT -i eth0 -p tcp --dport 22 --source cache.ovh.net -m state --state RELATED,ESTABLISHED -j ACCEPT
сразу после этой строки:
iptables -A INPUT -i eth0 -p tcp --dport 22 --source cache.ovh.net -j ACCEPT

Также вам следует проверить настройки DNS. ping.ovh.net разрешает правильный IP-адрес?

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