iptables блокирует все, кроме http / https / ssh

У меня есть эта конфигурация iptables на моем vps, который должен запускать Wordpress. Я хочу заблокировать все входящие запросы, кроме http на порту 80, https на порту 443 и ssh на порту 22.

Chain INPUT (policy ACCEPT)
    num  target     prot opt source               destination         
    1    f2b-sshd   tcp  --  anywhere             anywhere             multiport dports ssh
    
    Chain FORWARD (policy ACCEPT)
    num  target     prot opt source               destination         
    
    Chain OUTPUT (policy ACCEPT)
    num  target     prot opt source               destination         
    
    Chain f2b-sshd (1 references)
    num  target     prot opt source               destination         
    1    REJECT     all  --  [retracted_ip]       anywhere             reject-with icmp-port-unreachable
    2    REJECT     all  --  [retracted].com     anywhere             reject-with icmp-port-unreachable
    3    RETURN     all  --  anywhere             anywhere            

Я нашел несколько команд в Интернете, но не уверен в том, могут ли они конфликтовать с fail2ban.

0
задан 9 August 2021 в 13:16
1 ответ

В целом:

Правила брандмауэра обрабатываются в порядке их установки и появления (в выводе iptables -L -v -n --line-numbers , iptables -L -v -n -t nat --line-numbers, iptables-save и/или аналогичные команды).

Создание новых правил в неправильных цепочках и/или неправильном порядке приведет к нежелательным последствиям, нарушению функциональности, безопасности и/или блокировке действительного трафика.

Имейте в виду, что низкоуровневые команды iptables для управления брандмауэром не всегда могут быть лучшим решением. Насколько я знаю, в Ubuntu предпочтительнее использовать инструментарий UFW, и он будет надежно работать вместе с fail2ban.


Fail2ban создает одну или несколько пользовательских цепочек (которые выполняют большую часть тяжелой работы для блокировки конкретных некорректно работающих IP-адресов), таких как цепочка f2b-sshd. Обычно вы позволяете fail2ban управлять записями в этих цепочках.

Кроме того, fail2ban создает правила для пользовательских цепочек, которые он создает в цепочке INPUT. Обычно эти правила должны стоять первыми в цепочке INPUT перед любыми другими созданными вами правилами.

В вашей текущей конфигурации брандмауэра, когда вы используете iptables с переключателем -A для добавления новых правил в цепочку INPUT, все должно работать.


Выполнение следующих команд добавит обычные правила для создания брандмауэра, который разрешает ssh, http и https и блокирует весь остальной входящий трафик.

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp  -m tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp  -m tcp --dport 443 -j ACCEPT
iptables -A INPUT -j REJECT --reject-with icmp-host-prohibited
0
ответ дан 9 August 2021 в 14:01

Теги

Похожие вопросы