Перейти к содержанию

Firewalld

Материал из Antidote'z wiki

Описание

Firewalld - это динамически управляемый брандмауэр с поддержкой зон сети/брандмауэра, которые определяют уровень доверия сетевых подключений или интерфейсов. Он поддерживает настройки брандмауэра IPv4, IPv6, мосты Ethernet и наборы IP-адресов. Существует разделение параметров среды выполнения и постоянной конфигурации. Он также предоставляет интерфейс для служб или приложений, позволяющий напрямую добавлять правила брандмауэра.

Создание сервиса

  1. Создать новый сервис (перманентно)
    sudo firewall-cmd --permanent --new-service=myapp
    
  2. Задать короткое имя и описание (необязательно, но полезно)
    sudo firewall-cmd --permanent --service=myapp --set-short="MyApp service" 
    sudo firewall-cmd --permanent --service=myapp --set-description="Custom app: TCP 12345, UDP 12346"
    
  3. Добавить необходимые порты/протоколы/ICMP
    sudo firewall-cmd --permanent --service=myapp --add-port=12345/tcp
    sudo firewall-cmd --permanent --service=myapp --add-port=12346/udp
    
  4. Перечитать конфигурацию firewalld
    sudo firewall-cmd --reload
    
  5. Включить сервис в нужной зоне (например, public)
    sudo firewall-cmd --zone=public --add-service=myapp --permanent
    
  6. Проверка
    sudo firewall-cmd --info-service=myapp
    sudo firewall-cmd --zone=public --list-services
    

Блокирование IP адресов

С помощью ipset

  1. Создать набор (например, blacklist)
    sudo firewall-cmd --permanent --new-ipset=blacklist --type=hash:ip
    
  2. Добавить IP в набор
    sudo firewall-cmd --permanent --ipset=blacklist --add-entry=1.2.3.4
    
  3. Применить правило для ipset (DROP трафика)
    sudo firewall-cmd --permanent --add-rich-rule="rule source ipset=blacklist drop"
    
  4. Перезагрузить правила
    sudo firewall-cmd --reload
    
  5. Проверка
  • Какие IP в списке:
    sudo firewall-cmd --info-ipset=blacklist
    
  • Какие rich-rules активны:
    sudo firewall-cmd --list-rich-rules
    

С помощью rich rules

  • Добавление IPv4 адреса:
    sudo firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='X.X.X.X' drop"
    

Возможные варианты действия с пакетом: drop - просто молча отбросить пакет reject - пакет отклоняется, клиенту отправляется ICMP/TCP сообщение (например icmp-host-prohibited)