Repeater-zone.ru

ПК Репитер
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Настройка firewalld CentOS 7 с примерами команд

Настройка firewalld CentOS 7 с примерами команд

Centos 7, в отличие от CentOS 6, в базе идет с новым брандмауэром — firewalld. Его можно отключить и заменить на старый добрый iptables, но если к этому нет прямых предпосылок, то лучше привыкать к чему-то новому, а не упираться в старое. Это не значит, что Windows 10 лучше Windows 7, а Windows XP лучше Windows 7 😉 Хороший пример на эту тему — selinux. Если вначале почти все (и я тоже) его отключали и даже немного ругали, то теперь почти никто это не советует, только если есть уверенность, что так надо. Напротив, многие уже привыкли (или привыкают) пользоваться semanage. Не будем и мы сразу отключать firewalld, а попробуем, как он на вкус.

Firewalld — это не принципиально иной брандмауэр. Это другая надстройка над netfilter, поэтому если вы обладаете опытом работы с iptables, то помучившись немного вы спокойно начнете пользоваться новым инструментом.

Основные концепции Firewalld

FirewallD использует понятия зон и сервисов вместо цепочки и правил iptables. На основе зон и служб, которые вы настраиваете, вы можете контролировать, какой трафик разрешен или запрещен в систему и из нее.

FirewallD можно настроить и управлять с помощью firewall-cmd утилиты командной строки.

Firewalld Zones

Зоны — это предопределенные наборы правил, определяющие, какой трафик должен быть разрешен в зависимости от уровня доверия в сетях, к которым подключен ваш компьютер. Вы можете назначить сетевые интерфейсы и источники для зоны.

Ниже приведены зоны, предоставленные FirewallD, упорядоченные в соответствии с уровнем доверия зоны от ненадежного до доверенного:

  • drop: все входящие соединения сбрасываются без какого-либо уведомления. Разрешены только исходящие соединения.
  • block: все входящие соединения отклоняются с icmp-host-prohibited сообщением для IPv4 и icmp6-adm-prohibited для IPv6n. Разрешены только исходящие соединения.
  • public: для использования в ненадежных общественных местах. Вы не доверяете другим компьютерам в сети, но можете разрешить выбранные входящие подключения.
  • external: для использования во внешних сетях с включенным маскированием NAT, когда ваша система выступает в качестве шлюза или маршрутизатора. Разрешены только выбранные входящие соединения.
  • internal: для использования во внутренних сетях, когда ваша система выступает в качестве шлюза или маршрутизатора. Другие системы в сети, как правило, доверяют. Разрешены только выбранные входящие соединения.
  • dmz : используется для компьютеров, расположенных в демилитаризованной зоне, которые имеют ограниченный доступ к остальной части вашей сети. Разрешены только выбранные входящие соединения.
  • work: Используется для работы машин. Другие компьютеры в сети, как правило, являются доверенными. Разрешены только выбранные входящие соединения.
  • home : Используется для домашних машин. Другие компьютеры в сети, как правило, являются доверенными. Разрешены только выбранные входящие соединения.
  • trusted: все сетевые подключения принимаются. Доверяйте всем компьютерам в сети.
Читать еще:  Работа с циклическими ссылками в Excel

Услуги брандмауэра

Службы Firewalld — это предопределенные правила, которые применяются внутри зоны и определяют необходимые параметры, чтобы разрешить входящий трафик для определенной службы.

Firewalld Runtime и постоянные настройки

Firewalld использует два отдельных набора конфигурации, среду выполнения и постоянную конфигурацию.

Конфигурация времени выполнения является фактической рабочей конфигурацией, и она не является постоянной при перезагрузке. Когда служба Firewalld запускается, она загружает постоянную конфигурацию, которая становится конфигурацией времени выполнения.

По умолчанию при внесении изменений в конфигурацию Firewalld с помощью firewall-cmd утилиты эти изменения применяются к конфигурации времени выполнения. Чтобы сделать изменения постоянными, вам нужно использовать —permanent опцию.

Как отключить firewall CentOS 7

В CentOS тоже используется firewall iptables, но для удобства его настройки разработчики Red Hat создали оболочку firewalld. Она тоже работает через командную строку, но имеет более простые и понятные команды. Сначала посмотрим текущие правила iptables:

Большинство этих правил добавлены с помощью firewalld. Чтобы их убрать, не обязательно сейчас всё удалять. Просто остановите службу firewalld:

systemctl stop firewalld

Теперь в iptables будут только правила по умолчанию, которые всё разрешают:

После перезагрузки компьютера всё вернётся на свои места, чтобы этого не произошло, надо убрать сервис из автозагрузки:

systemctl disable firewalld

Также можно полностью скрыть сервис, чтобы другие скрипты не смогли его запустить:

systemctl mask firewalld

Чтобы вернуть на место брандмауэр CentOS, используйте три команды:

systemctl unmask firewalld
systemctl enable firewalld
systemctl start firewalld

Или же вы можете вовсе его не использовать после отключения, а использовать вместо него iptables.

Сложные правила

Для отдельного ПК или небольших сетей базовых возможностей вполне хватает, для настройки сложных правил в firewalld изначально предлагался так называемый direct-синтаксис, чуть позже появился собственный язык Rich Language. В первом варианте достаточно знать синтаксис iptables, рекомендуется использовать в крайнем случае, так как правила не сохраняются после перезагрузки.

Читать еще:  Как удалить hi.ru из браузера Mozilla Firefox

Синтаксис direct правила такой:

Добавляем правило, разрешающее соединение по 25-му порту:

Пробросим соединение по 22-му на другой сервер:

Rich Language позволяет записывать сложные правила в более удобном для понимания виде. В правиле можно указывать любые параметры, характеризующие пакет: источник, назначение, сервис, порт, протокол, маскарадинг, журналирование, аудит и действие. Например, разрешим подсети соединяться по HTTP и добавляем аудит:

Большой плюс Rich Language в том, что все параметры можно описать в XML в файле зоны. Формат файла очень простой и повторяет названия параметров:

Настройка файрвола — дело привычки. Часто удобнее вбить команду, которой пользуешься уже не один год, чем осваивать новую утилиту. Поэтому иногда все-таки хочется вернуть классический инструмент. Это не проблема. Iptables в CentOS 7 не ставится, поэтому его нужно вернуть:

Чтобы не настраивать все повторно, лучше сохранить текущие правила, сгенерированные firewalld.

Останавливаем firewalld и запускаем iptables:

Проверяем текущие правила:

Запрещаем автозапуск firewalld при загрузке ОС:

5. Отключите нежелательные сервисы в CentOS 7

После установки CentOS 7 рекомендуется перечислить, какие службы работают в системе, выполнив указанные выше команды, отключить и удалить их, чтобы уменьшить векторы атак на вашу систему.

Например, демон Postfix установлен и включен по умолчанию в CentOS 7. Если вашей системе не требуется запуск почтового сервера, лучше всего остановить, отключить и удалить службу postfix, выполнив следующие команды.

# systemctl stop postfix
# systemctl disable postfix
# yum remove postfix

В дополнение к командам netstat, ss, lsof или systemctl вы также можете запускать команды ps, top или pstree, чтобы обнаружить и определить, какие нежелательные службы работают в вашей системе, а также отключить или удалить их.

По умолчанию утилита pstree не установлена ​​в CentOS 7. Для ее установки выполните следующую команду.

Читать еще:  Драйвера для Acer Aspire V3-551G

Включение логов

Во время настройки полезно включить логи, чтобы мониторить заблокированные пакеты и выяснять, почему отсутствует доступ к необходимым сервисам, которые мы вроде бы уже открыли. Я отправляю все заблокированные пакеты в отдельные цепочки (block_in, block_out, block_fw), соответствующие направлению трафика и маркирую в логах каждое направление. Так удобнее делать разбор полетов. Добавляем следующие правила в самый конец скрипта, перед сохранением настроек:

Все заблокированные пакеты вы сможете отследить в файле /var/log/messages.

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

Использование sealert

В дополнение к aureport вы можете использовать хороший инструмент безопасности Linux, который называется sealert . Установить его можно так:

Теперь у нас есть средство, которое будет выдавать оповещения из файла /var/log/audit/audit.log и даст нам дополнительные сведения о проблемах, выявленных SELinux.

Использовать его можно так:

Самое интересное тут то, что в оповещениях можно найти советы о том, как решать соответствующие проблемы.

голоса
Рейтинг статьи
Ссылка на основную публикацию
ВсеИнструменты
Adblock
detector