Изучите Linux

Управляйте сетевой безопасностью с помощью Firewalld с помощью командных строк

Управляйте сетевой безопасностью с помощью Firewalld с помощью командных строк

Поддержание сетевой безопасности является ключевым для системных администраторов, а настройка брандмауэра через командную строку - важный навык, которому нужно научиться. В статье будет рассказано, как управлять брандмауэром с помощью firewall-cmd в командной строке Linux.

Брандмауэр - это, по сути, программное обеспечение, которое вы можете настроить для управления входящим и исходящим сетевым трафиком. Брандмауэры могут помешать другим пользователям использовать сетевые службы в вашей системе. Большинство систем Linux поставляются с брандмауэром по умолчанию. Более ранние версии систем Linux использовали iptables в качестве демона для фильтрации пакетов. Новые версии Fedora, RHEL / CentOS, openSUSE поставляются с Firewalld в качестве демона межсетевого экрана по умолчанию. Вы также можете установить Firewalld в дистрибутивах Debian и Ubuntu.


Я рекомендую использовать Firewalld вместо iptables. Не верь мне на слово. Узнайте больше из нашего подробного руководства по доступным брандмауэрам с открытым исходным кодом для вашей системы Linux.

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

В этом руководстве будет использоваться firewall-cmd команда для управления сетевой безопасностью, и нашей тестовой средой будет Fedora Workstation 33.

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

Основы сети

Компьютеру, подключенному к сети, назначается IP-адрес, который используется для маршрутизации данных. Компьютеры также имеют порты в диапазоне 0-65535, которые действуют как точки подключения на IP-адресе. Приложения могут зарезервировать определенные порты. Веб-серверы обычно резервируют порт 80 для безопасного обмена данными по протоколу HTTP. По сути, диапазоны портов от 0 до 1024 зарезервированы для известных целей, и система.

Два основных протокола передачи данных через Интернет (TCP и UDP) используют эти порты во время сетевой связи. Хост-компьютер устанавливает соединение между исходным IP-адресом и портом (порт 80 для незащищенного HTTP) и целевым адресом и портом.

Для управления сетевой безопасностью программное обеспечение брандмауэра может разрешать или блокировать передачу данных или обмен данными на основе таких правил, как порты или IP-адреса.

Установка Firewalld

Fedora, RHEL / CentOS 7/8, openSUSE

Firewalld по умолчанию устанавливается в Fedora, RHEL / CentOS 7/8 и openSUSE. Если нет, вы можете установить его с помощью следующей команды:

# yum install firewalld -y
ИЛИ ЖЕ
#dnf install firewalld -y

Debian / Ubuntu

Системы Ubuntu по умолчанию поставляются с несложным брандмауэром. Чтобы использовать firewalld, вы должны включить репозиторий юниверсов и деактивировать несложный брандмауэр.

sudo add-apt-репозиторий вселенная
sudo apt установить firewalld

Деактивировать несложный брандмауэр:

sudo systemctl отключить ufw

Включите firewalld во время загрузки:

sudo systemctl enable -now firewalld

Убедитесь, что Firewalld запущен:

sudo firewall-cmd -state
Бег

Зоны межсетевого экрана

Firewalld упрощает настройку вашего брандмауэра, устанавливая зоны по умолчанию. Зоны - это набор правил, который удовлетворяет повседневные потребности большинства администраторов Linux. Зона межсетевого экрана может определять доверенные или запрещенные уровни для служб и портов.

Пример зон по умолчанию, определенных рабочей станцией Fedora 33

cat / usr / lib / firewalld / зоны / FedoraWorkstation.xml


Fedora Workstation
Незапрошенные входящие сетевые пакеты отклоняются с порта 1 до 1024, за исключением некоторых сетевых служб. [брандмауэр] Принимаются входящие пакеты, относящиеся к исходящим сетевым соединениям. Исходящие сетевые подключения разрешены.





Получите вашу текущую зону:
Вы можете использовать - - получить активные зоны флаг для проверки активных в настоящее время зон в вашей системе.

Судо брандмауэр-cmd --get-активные-зоны
[sudo] пароль для tuts:
FedoraWorkstation
интерфейсы: wlp3s0
libvirt
интерфейсы: virbr0

Зона по умолчанию на Fedora Workstation 33 в зоне FedoraWorkstation

Получить зону по умолчанию и все определенные зоны:

sudo firewall-cmd --get-default-zone
[sudo] пароль для tuts:
FedoraWorkstation
[tuts @ fosslinux ~] $ sudo firewall-cmd --get-зоны
FedoraServer Fedora Workstation block dmz drop external home internal libvirt nm-shared public trust work

Перечислить услуги:

Вы можете получить услуги, к которым брандмауэр разрешает доступ другим системам, используя  - -листинговые услуги флаг.

[tuts @ fosslinux ~] $ sudo firewall-cmd --list-services
dhcpv6-client mdns samba-client ssh

В Fedora Linux 33 брандмауэр разрешает доступ к четырем службам (dhcpv6-client mdns samba-client ssh) с хорошо известными номерами портов.

Список настроек порта брандмауэра:
Вы можете использовать - -список портов флаг, чтобы увидеть другие настройки порта в любой зоне.

tuts @ fosslinux ~] $ sudo firewall-cmd --list-ports --zone = FedoraWorkstation
[sudo] пароль для tuts:
1025-65535 / UDP 1025-65535 / TCP

Мы указали зону для проверки с помощью опции - -zone = FedoraWorkstaion.

Управление зонами, портами и услугами

Конфигурации брандмауэра могут быть настроены как на время выполнения, так и на постоянные. Все действия firewall-cmd сохраняются только до перезагрузки компьютера или брандмауэра. Вы должны создать постоянные настройки с флагом -постоянный.

Создать зону

Чтобы создать зону, вы должны использовать - -новая зона флаг.
Пример:
Создайте новую постоянную зону под названием fosscorp:

[tuts @ fosslinux ~] $ sudo firewall-cmd --new-zone fosscorp --permanent
[sudo] пароль для tuts:
успех

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

[tuts @ fosslinux ~] $ sudo firewall-cmd --reload

Добавьте службу ssh в зону fosscorp, чтобы вы могли получить к ней удаленный доступ:

[tuts @ fosslinux ~] $ sudo firewall-cmd --zone fosscorp --add-service ssh --permanent
[sudo] пароль для tuts:
успех

Убедитесь, что ваша новая зона fosscorp активна:

[tuts @ fosslinux ~] $ sudo firewall-cmd --get-зоны
FedoraServer FedoraWorkstation block dmz drop external фосскорп домашняя внутренняя libvirt nm-shared общедоступная доверенная работа

Ваша новая зона fosscorp теперь активна и отклоняет все входящие соединения, кроме трафика SSH.

Использовать - -изменить интерфейс флаг, чтобы сделать зону fosscorp активной и зоной по умолчанию для сетевого интерфейса (wlp3s0), который вы хотите защитить:

[tuts @ fosslinux ~] $ sudo firewall-cmd --change-interface wlp3s0 \
> --zone fosscorp --permanent
Интерфейс находится под контролем [брандмауэра] NetworkManager, для зоны установлено значение 'fosscorp'.
успех

Если вы хотите установить fosscorp в качестве основной зоны по умолчанию, выполните следующую команду:

[tuts @ fosslinux ~] $ sudo firewall-cmd --set-default fosscorp
успех

Просмотрите зоны, назначенные в настоящее время каждому интерфейсу, с помощью - -получить активные зоны флаг:

[tuts @ fosslinux ~] $ sudo firewall-cmd --get-active-zone
фосскорп
интерфейсы: wlp3s0

Добавить и удалить службы:

Быстрый способ разрешить трафик через ваш брандмауэр - добавить предопределенную службу.

Список доступных предопределенных служб:

tuts @ fosslinux ~] $ sudo firewall-cmd --get-services
[sudo] пароль для tuts:
RH-Satellite-6 amanda-client amanda-k5-client amqp amqps apcupsd audit bacula bacula-client bb bgp bitcoin bitcoin-rpc
bitcoin-testnet bitcoin-testnet-rpc bittorrent-lsd ceph ceph-mon cfengine cockpit condor-collector ctdb dhcp dhcpv6 dhcpv6-client
[…]

Разблокировать предопределенную услугу

Вы можете разрешить трафик HTTPS (или любую другую предопределенную службу) через брандмауэр, используя - -дополнительная услуга флаг.

[tuts @ fosslinux ~] $ sudo firewall-cmd --add-service https --permanent
успех
[tuts @ fosslinux ~] $ sudo firewall-cmd --reload

Вы также можете удалить службу с помощью - -удаление службы флаг:

[tuts @ fosslinux ~] $ sudo firewall-cmd --remove-service https --permanent
успех
[tuts @ fosslinux ~] $ sudo firewall-cmd --reload

Добавить и удалить порты

Вы также можете добавить номер порта и прототип напрямую с помощью флага -add-port. Добавление номера порта напрямую может пригодиться, когда предопределенная служба не существует.

Пример:
Вы можете добавить нестандартные порт 1717 для SSH в вашу настраиваемую зону, используя следующую команду:

[tuts @ fosslinux ~] $ sudo firewall-cmd --add-port 1717 / tcp --permanent
[sudo] пароль для tuts:
успех
[tuts @ fosslinux ~] $ sudo firewall-cmd -reload

Удалите порт с помощью параметра флага -remove-port:

[tuts @ fosslinux ~] $ sudo firewall-cmd --remove-port 1717 / tcp --permanent
успех
[tuts @ fosslinux ~] $ sudo firewall-cmd -reload

Вы также можете указать зону для добавления или удаления порта, добавив флаг -zone в команду:
Добавьте порт 1718 для TCP-соединения в зону FedoraWorstation:

[tuts @ fosslinux ~] $ sudo firewall-cmd --zone = FedoraWorkstation --permanent --add-port = 1718 / tcp
успех
[tuts @ fosslinux ~] $ sudo firewall-cmd --reload
успех

Подтвердите, вступили ли изменения в силу:

[tuts @ fosslinux ~] $ sudo firewall-cmd --list-all
FedoraWorkstation (активная)
цель: по умолчанию
icmp-block-инверсия: нет
интерфейсы: wlp3s0
источники:
услуги: dhcpv6-client mdns samba-client ssh
порты: 1025-65535 / UDP 1025-65535 / TCP 1718 / tcp
протоколы:
маскарад: нет
форвард-порты:
исходные порты:
icmp-блоки:
богатые правила:

Примечание: под портами мы добавили номер порта 1718 разрешить TCP-трафик.

Вы можете удалить порт 1718 / TCP выполнив следующую команду:

[tuts @ fosslinux ~] $ sudo firewall-cmd --zone = FedoraWorkstation --permanent --remove-port = 1718 / tcp
успех
[tuts @ fosslinux ~] $ sudo firewall-cmd --reload
успех

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

Резюме

Firewalld - отличная утилита для управления сетевой безопасностью. Лучший способ повысить свои навыки системного администратора - это получить практический опыт. Я настоятельно рекомендую установить Fedora на вашу любимую виртуальную машину (ВМ) или в Boxes, чтобы поэкспериментировать со всеми доступными функциями firewall-cmd. Вы можете узнать больше о функциях firewall-cmd на официальной домашней странице Firewalld.

Лучшие приложения для сопоставления геймпадов для Linux
Если вам нравится играть в игры на Linux с помощью геймпада вместо стандартной системы ввода с клавиатуры и мыши, для вас есть несколько полезных прил...
Полезные инструменты для геймеров Linux
Если вам нравится играть в игры на Linux, скорее всего, вы использовали приложения и утилиты, такие как Wine, Lutris и OBS Studio, для улучшения игров...
Игры HD Remastered для Linux, ранее не выпускавшиеся для Linux
Многие разработчики и издатели игр придумывают HD-ремастеры старых игр, чтобы продлить жизнь франшизы, порадовать фанатов, требующих совместимости с с...