Временно запретить весь входящий трафик с помощью firewalld

Временно запретить весь входящий трафик с помощью firewalld

Я ищу эквивалент ufw default denyдля firewalld; идея в том, что после того, как я войду через SSH на свой новый сервер, я хочу заблокировать все входящие новые соединения, чтобы у меня было время обновить и защитить систему. Я использую CentOS7 с firewalld.

решение1

Из этого следует, чтосообщение о сбое серверачто ограничение движения на этом более высоком уровнетребует «богатых» правил.

Чтобы реализовать расширенное правило, которое применяется в зоне по умолчанию и отбрасывает любой трафик IPv4:

firewall-cmd --zone=$(firewall-cmd --get-default-zone) \
  --add-rich-rule='rule family=ipv4 source address=0.0.0.0/0 drop'

Это эмулирует ufw default denyповедение; чтобы вместо этого отправить сообщение отклонения ICMP, измените на drop. rejectВышеуказанное правило относится только к IPv4; для IPv6 используйте:

firewall-cmd --zone=$(firewall-cmd --get-default-zone) \
  --add-rich-rule='rule family=ipv6 source address=::/0 drop'

После расследования выяснилось, что это добавляет запись в iptables, котораяпосле"accept RELATED and ESTABLISHED" соединения, поэтому это не нарушит ваш существующий сеанс ssh. В моем тестировании результирующая "цепочка" iptables выглядит так (для зоны по умолчанию 'public'):

INPUT -> INPUT_ZONES -> IN_public -> IN_public_deny

Если вы ожидаете перезагрузку в рамках обновлений, то добавьте флаг --permanent.

Если вы не ожидаете перезагрузки в рамках обновлений, то вы можете использовать флаг --timeout, который принимает такие значения, как 5s, 10m, или 15hдля "5 секунд", "10 минут" или "15 часов" соответственно. Такое правило будет удалено по истечении этого периода ожидания.

Если вы хотите удалить добавленное правило, просто выполните то же самое, firewall-cmdчто и раньше, но заменив --add-rich-ruleна --remove-rich-rule; для примера IPv4:

firewall-cmd --zone=$(firewall-cmd --get-default-zone) \
  --remove-rich-rule='rule family=ipv4 source address=0.0.0.0/0 accept'

Ссылка:http://www.firewalld.org/documentation/man-pages/firewalld.richlanguage.html

Связанный контент