Firewalld: как настроить в CentOS

Firewalld — это программа для управления брандмауэром в операционной системе Linux. Она помогает обеспечивать безопасность сети: контролирует и фильтрует трафик.

В статье разбираем, как выполняется настройка Firewall в CentOS, дистрибутиве Linux.

Назначение брандмауэра

Брандмауэр (или фаервол) — система сетевой безопасности, которая контролирует и фильтрует трафик в соответствии с заранее определенным набором правил. Это промежуточная система между интернетом и устройством.

Ядро Linux содержит подсистему netfilter, которая используется для обработки сетевого трафика. Netfilter отслеживает сетевые пакеты и решает, что дальше с ними делать: пропустить, блокировать или даже изменить адрес, чтобы помочь пакетам правильно дойти до своего места назначения.

Брандмауэр в Linux

Брандмауэр в Linux использует подсистему ядра netfilter, которая позволяет фильтровать входящие, исходящие и пересылаемые пакеты сетевых данных. Существуют два инструмента для подключения к подсистеме netfilter: iptables и firewalld.

  • iptables — утилита командной строки, которая используется для управления брандмауэром в операционной системе Linux. iptables предоставляет полный контроль над правилами брандмауэра, но у новичком могут возникнуть сложности с ее настройкой из-за деталей конфигурации правил.
  • firewalld — это более современный и удобный способ управления брандмауэром Linux. Программное средство firewalld предоставляет высокоуровневый интерфейс для добавления и удаления правил, что делает его очень удобным для администраторов. Firewalld является стандартным инструментом для управления брандмауэром во многих современных дистрибутивах Linux, таких как Fedora и CentOS.

В этой статье мы рассмотрим, как настроить брандмауэр с помощью firewalld в дистрибутиве CentOS.

Для управления firewalld мы будем использовать консольную утилиту firewall-cmd.

Синтаксис и опции firewall-cmd

Команда firewall-cmd используется для управления брандмауэром firewalld в Linux. Вот основной синтаксис этой команды:

firewall-cmd опции

Синтаксис для управления зонами:

firewall-cmd --конфигурация --zone=зона опции

Если вы хотите сохранить изменения после перезагрузки, вместо --конфигурация укажите --permanent. При этом если вы ничего не укажите, изменения будут действовать только до перезагрузки.

--zone=зона: указывается зона, к которой применяется команда, например, --zone=public.

Часто используемые опции:

--permanent: изменения применяются к постоянным настройкам брандмауэра, которые сохраняются между перезагрузками. Без этой опции изменения применяются только временно и не сохраняются после перезагрузки.

--reload: перезапускает файрвол и применяет все изменения.

--get-default-zone: выводит текущую зону по умолчанию.

--set-default-zone: устанавливает зону по умолчанию.

--get-zones: выводит все доступные зоны.

--new-zone: создает новую зону.

--delete-zone: удаляет зону.

--list-all: вывести подробную информацию о текущих настройках зоны.

--add-service=<имя_службы>: разрешить доступ к определенной сетевой службе (например, --add-service=http).

--remove-service=<имя_службы>: удалить разрешение на доступ к сетевой службе.

--add-port=<порт>/<протокол>: разрешить доступ к определенному порту и протоколу (например, --add-port=80/tcp).

--remove-port=<порт>/<протокол>: удалить разрешение на доступ к порту и протоколу.

--list-services: вывести список всех доступных служб.

--list-ports: вывести список всех открытых портов.

--query-service: позволяет проверить, разрешен ли доступ к определенному сервису.

--query-port: показывает, разрешен ли доступ к определенному порту и протоколу.

Примеры использования firewall-cmd:

Добавление разрешения на доступ к веб-серверу (HTTP) и сохранение изменений:

firewall-cmd --permanent --zone=public --add-service=http

Удаление разрешения на доступ к порту 8080:

firewall-cmd --permanent --zone=public --remove-port=8080/tcp

Вывод списка всех доступных служб:

firewall-cmd --list-services

Чтобы перезапустить брандмауэр и применить изменения, используйте команду firewall-cmd --reload.

Настройка Firewall в CentOS

Установка и включение

Firewalld установлен по умолчанию в CentOS 7, но если его нет в вашей системе, вы можете установить пакет, набрав:

sudo yum install firewalld

Проверить статус брандмауэра с помощью:

sudo firewall-cmd --state

Если вы только что установили или никогда раньше не активировали Firewall, команда выведет not running. Если брандмауэр включен, вы увидите running.

Чтобы активировать службу firewalld, введите:

sudo systemctl start firewalld

sudo systemctl enable firewalld

Настройка

Добавьте сервисы, которые вы хотите разрешить через Firewall. Например, чтобы разрешить HTTP и SSH, выполните:

sudo firewall-cmd --zone=public --add-service=http --permanent

sudo firewall-cmd --zone=public --add-service=https --permanent

sudo firewall-cmd --zone=public --add-service=ssh --permanent

Если вы хотите разрешить доступ к конкретному порту, используйте следующую команду (замените "8080" на тот номер порта, доступ к которому вы разрешаете):

sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent

Удалите ненужные сервисы или порты (если необходимо):

sudo firewall-cmd --zone=public --remove-service=<имя_службы> --permanent

sudo firewall-cmd --zone=public --remove-port=<порт>/<протокол> --permanent

После внесения изменений перезагрузите firewalld:

sudo firewall-cmd --reload

Проверьте текущие правила Firewall:

sudo firewall-cmd --list-all

Это основные настройки firewalld в CentOS. Вы можете адаптировать эти команды в соответствии с вашими потребностями: разрешать входящие соединения, необходимые для правильного функционирования вашей системы, ограничивая при этом ненужные.

Для размещения высоконагруженных проектов с большим количеством трафика заказывайте в RU-CENTER VDS-хостинг с поддержкой ОС CentOS. Преимущества VDS-хостинга RU-CENTER:

  • Дата-центр находится в России
  • Надежные SSD-диски
  • Круглосуточный мониторинг
  • Высокий аптайм и бесперебойная работа сайтов
  • Круглосуточная техническая поддержка

Всё ещё остались вопросы?