Научете 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 или инструмента за конфигуриране на GUI-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 инсталирате firewalld -y
ИЛИ
#dnf инсталирайте firewalld -y

Debian / Ubuntu

Системите на Ubuntu се доставят с неусложнена защитна стена по подразбиране. За да използвате защитната стена, трябва да активирате хранилището на вселената и да деактивирате неусложнената защитна стена.

sudo add-apt-repository universe
sudo apt инсталирайте firewalld

Деактивиране на неусложнена защитна стена:

sudo systemctl деактивира ufw

Активиране на защитната стена по време на зареждане:

sudo systemctl enable -now firewalld

Проверете дали Firewalld работи:

sudo firewall-cmd -state
бягане

Зони на защитната стена

Firewalld улеснява конфигурирането на вашата защитна стена, като създава зони по подразбиране. Зоните са набор от правила, които отговарят на ежедневните нужди на повечето администратори на Linux. Зона на защитната стена може да дефинира доверени или отказани нива за услуги и портове.

Пример за зони по подразбиране, дефинирани от работна станция Fedora 33

cat / usr / lib / firewalld / zone / FedoraWorkstation.xml


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





Вземете текущата си зона:
Можете да използвате - - get-active-зони флаг, за да проверите активните в момента зони във вашата система.

sudo firewall-cmd --get-active-зона
[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-zone
FedoraServer Fedora Workstation block dmz drop external home internal libvirt nm-shared public trusted work

Списък на услугите:

Можете да получите услугите, които защитната стена позволява на други системи за достъп чрез  - -списък-услуги флаг.

[tuts @ fosslinux ~] $ sudo firewall-cmd --list-services
dhcpv6-клиент mdns samba-клиент 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.

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

Конфигурациите на защитната стена могат да бъдат конфигурирани като време за изпълнение или като постоянни. Всички действия на cmd на защитната стена продължават само докато компютърът или защитната стена се рестартират. Трябва да създадете постоянни настройки с флага -permanent.

Създайте зона

За да създадете зона, трябва да използвате - -нова зона флаг.
Пример:
Създайте нова постоянна зона, наречена 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-zone
FedoraServer FedoraWorkstation block dmz drop external fosscorp начало вътрешен libvirt nm-споделено обществено доверено произведение

Вашата нова зона fosscorp вече е активна и отхвърля всички входящи връзки с изключение на SSH трафика.

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

[tuts @ fosslinux ~] $ sudo firewall-cmd --change-interface wlp3s0 \
> --zone fosscorp --постоянен
Интерфейсът е под контрола [защитна стена] на NetworkManager, задавайки зона на „fosscorp“.
успех

Ако искате да зададете fosscorp като основна и основна зона, изпълнете следната команда:

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

Прегледайте зоните, присвоени в момента на всеки интерфейс, като използвате - -get-active-зони флаг:

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

Добавяне и премахване на услуги:

Един бърз начин да разрешите трафик през вашата защитна стена е да добавите предварително дефинирана услуга.

Списък на наличните предварително дефинирани услуги:

tuts @ fosslinux ~] $ sudo firewall-cmd --get-services
[sudo] парола за Tuts:
RH-Satellite-6 amanda-client amanda-k5-client amqp amqps apcupsd одит 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 flag:

[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-клиент mdns samba-клиент 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 във вашата любима виртуална машина (VM) или в Boxes, за да експериментирате с всички налични функции на cmd firewall. Можете да научите повече функции на firewall-cmd от официалната начална страница на Firewalld.

Битка за Уеснот 1.13.6 Разработка освободена
Битка за Уеснот 1.13.6, издаден миналия месец, е шестата версия за разработка в 1.13.x серия и предоставя редица подобрения, най-вече на потребителски...
Как да инсталирате League Of Legends на Ubuntu 14.04
Ако сте фен на League of Legends, това е възможност за вас да тествате League of Legends. Имайте предвид, че LOL се поддържа на PlayOnLinux, ако сте п...
Инсталирайте най-новата стратегия за игра OpenRA на Ubuntu Linux
OpenRA е Libre / Free Real Time стратегия за игра, която пресъздава ранните игри на Westwood като класическата Command & Conquer: Red Alert. Разпредел...