Буду признателен за помощь в настройке firewalld, пожалуйста. Вот немного предыстории. Все, что я хочу сделать, это запретить любой доступ, кроме IP-адресов из белого списка, к веб-приложению, работающему на https.
Я много гуглил. узнал много вещей, но пока ничего не помогло. Вот что я сделал:
Я могу сказать, что firewalld работает
# systemctl status firewalld
firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded
(/usr/lib/systemd/system/firewalld.service; enabled) Active: active
(running)
также с
# firewall-cmd –state
running
У меня зоны по умолчанию
# firewall-cmd --get-zones
block dmz drop external home internal public trusted work
Мои активные зоны включают:
# firewall-cmd --get-active-zones
public
sources: 192.72.0.193 192.72.0.0/22 94.27.256.190
Моя зона по умолчанию - публичная:
# firewall-cmd --get-default-zone
public
Подробности публики:
public (default)
interfaces:
sources: 192.72.0.193 192.72.0.0/22 94.27.256.190
services: http https ssh
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
Насколько я понимаю, приведенная выше конфигурация для общедоступной зоны будет ограничивать предоставление только запросов с любого из указанных IP-адресов. Однако, когда я пытаюсь получить доступ https://www.example.com с IP-адреса, не указанного в списке, это позволяет.
один вариант - удалить сервис: https из зоны
firewall-cmd --zone=public --remove-service=https
а затем используйте так называемые расширенные правила, чтобы указать, какие источники [IP-адреса] могут получить доступ к какой службе [например, http и https], например:
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="x.x.x.0/24" service name="https" log prefix="https" level="info" accept'
может потребоваться перезагрузка, хотя