Назад | Перейти на главную страницу

Как мне заставить firewalld ограничить доступ ко всем IP-адресам, кроме указанных?

Буду признателен за помощь в настройке firewalld, пожалуйста. Вот немного предыстории. Все, что я хочу сделать, это запретить любой доступ, кроме IP-адресов из белого списка, к веб-приложению, работающему на https.

Я много гуглил. узнал много вещей, но пока ничего не помогло. Вот что я сделал:

  1. Я могу сказать, что 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
  1. У меня зоны по умолчанию

    # firewall-cmd --get-zones
    block dmz drop external home internal public trusted work
    
  2. Мои активные зоны включают:

    # firewall-cmd --get-active-zones
    public
    sources: 192.72.0.193 192.72.0.0/22 94.27.256.190
    
  3. Моя зона по умолчанию - публичная:

    # firewall-cmd --get-default-zone
    public
    
  4. Подробности публики:

    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'

может потребоваться перезагрузка, хотя