Как ограничить доступ к сети с помощью FirewallD
Как пользователь 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, мы можем сразу перейти к настройке некоторых настроек. 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
Вы также можете разрешить диапазон IP-адресов или всю подсеть, используя нотацию CIDR (бесклассовая междоменная маршрутизация). Например, чтобы разрешить всю подсеть в подсети 255.255.255.0, выполните команду.
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-адрес, для этой цели используются «насыщенные правила».
Например, чтобы заблокировать 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
На этом завершается руководство о том, как разрешить или ограничить доступ к сети с помощью FirewallD в CentOS/RHEL 8. Мы надеемся, что это руководство оказалось для вас полезным.