Как пользователь Linux, вы можете разрешить или запретить сетевой доступ к некоторым службам или IP-адресам с помощью брандмауэра firewalld, который является встроенным в CentOS / RHEL 8 и большинства дистрибутивов на основе RHEL, таких как Fedora.
Брандмауэр firewalld использует утилиту командной строки firewall-cmd для настройки правил брандмауэра.
Прежде чем мы сможем выполнить какие-либо настройки, давайте сначала включим службу firewalld с помощью утилиты systemctl, как показано ниже:
$ sudo systemctl enable firewalld
После включения вы можете запустить службу firewalld, выполнив:
$ sudo systemctl start firewalld
Вы можете проверить состояние firewalld, выполнив команду:
$ sudo systemctl status firewalld
Настройка правил Firewalld
Теперь, когда у нас запущен firewalld, мы можем перейти к настройке некоторых параметров.
Firewalld позволяет добавлять и блокировать порты, использовать черный список, а также IP-адреса в белом списке, чтобы обеспечить доступ к серверу.
После того, как вы выполнили какие-либо настройки, всегда перезагружайте брандмауэр, чтобы новые правила вступили в силу.
Добавление портов TCP / UDP
Чтобы добавить порт, скажем, порт 443 для HTTPS, используйте синтаксис, показанные ниже.
Обратите внимание, что вы должны указать, является ли порт портом TCP или UDP после номера порта:
$ sudo firewall-cmd --add-port=22/tcp --permanent
Аналогично, чтобы добавить порт UDP, укажите параметр UDP, как показано ниже:
$ sudo firewall-cmd --add-port=53/udp --permanent
Флаг –permanent гарантирует, что правила сохраняются даже после перезагрузки.
Блокировка портов TCP / UDP
Чтобы заблокировать порт TCP, например, порт 22, выполните команду.
$ sudo firewall-cmd --remove-port=22/tcp --permanent
Точно так же блокировка порта UDP настраивается по тому же синтаксису:
$ sudo firewall-cmd --remove-port=53/udp --permanent
Разрешить службу
Сетевые службы определены в файле /etc/services.
Чтобы разрешить службу, такую как https, выполните команду:
$ sudo firewall-cmd --add-service=https
Блокировка службы
Чтобы заблокировать службу, например FTP, выполните:
$ sudo firewall-cmd --remove-service=https
Белый список IP-адресов
Чтобы разрешить один IP-адрес на брандмауэре, выполните команду:
$ sudo firewall-cmd --permanent --add-source=192.168.2.50
$ sudo firewall-cmd --permanent --add-source=192.168.2.0/24
Удаление IP-адресов из белого списка
Если вы хотите удалить из белого списка IP-адрес на брандмауэре, используйте флаг –remove-source, как показано ниже:
$ sudo firewall-cmd --permanent --remove-source=192.168.2.50
Для всей подсети выполните:
$ sudo firewall-cmd --permanent --remove-source=192.168.2.50/24
Блокировка IP-адреса
До сих пор мы разобрали, как добавлять и удалять порты и службы, а также вносить в белый список и удалять IP-адреса из белого списка.
Чтобы заблокировать IP-адрес, используются «rich rules».
Например, чтобы заблокировать IP 192.168.2.50, выполните команду:
$ sudo firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='192.168.2.50' reject"
Чтобы заблокировать всю подсеть, запустите:
$ sudo firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='192.168.2.0/24' reject"
Сохранение правил брандмауэра
Если вы внесли какие-либо изменения в правила брандмауэра, вам нужно выполнить следующую команду, чтобы изменения вступили в силу немедленно:
$ sudo firewall-cmd --reload
Просмотр правил брандмауэра
Чтобы просмотреть все правила брандмауэра, выполните команду:
$ sudo firewall-cmd --list-all