Как да конфигурирате и управлявате защитната стена (firewall) на CentOS 8?

28.07.2020 112 0

Защитната стена (firewall) е начин за наблюдение и филтриране на мрежовия трафик. Както входящ, така и изходящ.

Тази статия е за напреднали потребители, които вече знаят какво представлява.

CentOS 8 има софтуер за защитна стена (firewall), наречен firewalld. Ще видим как работи, как да го конфигурираме и как да го управляваме.

Firewalld

Firewalld е решение за защитна стена (firewall), което е вградено в различни Linux дистрибуции (CentOS, RHEL, Fedora, SUSE, OpenSUSE и други). Това е динамично управлявана защитна стена, която може да задава ограничения за различни мрежи и интерфейси. Поддържа IPv4, IPv6, bridge и ipset.

Това, което е страхотно е, че има D-Bus интерфейс за услуги, приложения и потребители. Използвайки го, промените могат да се извършват динамично, без да е необходимо рестартиране.

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

Когато използвате средата за тестване, тя действително влиза в сила, но не се запазва за постоянно.

Когато сте сигурни в промените, за да ги направите постоянни, ползвайте командата:

firewall-cmd --runtime-to-permanent

Има лесен за използване интерфейс, в който можете да дефинирате услуги, портове, протоколи, модули и други.

Firewalld работи с предварително зададени зони с различни набори от правила. Можете да използвате тези зони, които вече съществуват, или да добавите персонализирани зони за вашите нужди.

Firewalld зони

Какво представляват зоните на firewalld? Те са набор от правила, предварително дефинирани, които имат нива на доверие за мрежите, към които сте свързани. Можете да зададете ръчно мрежови интерфейси и източници на определена зона.

Ето списъка на зоните по подразбиране на Firewalld:
• Drop – най-ограничителната. Тя премахва всички входящи връзки и оставя само изходящите.
• Block – Много подобна на Drop, но тук получавате съобщение „icmp-host-prohibited“ за IPv4 и „icmp6-adm- prohibited“ за IPv6.
• Public – Public е ненадежден, така че всички компютри в мрежата са блокирани, освен ако не разрешите връзките.
• External – External (Външна) е, когато използвате компютъра си като гейтуей или рутер. Можете да ограничите входящите връзки само на разрешени от вас.
• Internal – отново системата ви се използва като рутер или гейтуей, но този път за вътрешна мрежа. Останалите системи са предимно надеждни и отново са позволени само входящите връзки.
• Dmz – за устройства в демилитаризирана зона. Разрешени са само избрани входящи връзки.
• Work – за работни машини. Компютрите в мрежата са с доверие. Отново, само избран входящ трафик е разрешен.
• Home – за устройства у дома. Нивото на доверие е високо. Разрешените входящи връзки все още са ограничени само до избрани.
• Trusted – всички устройства и връзки са надеждни.

Как да активирате Firewalld?

За да можете да го използвате, трябва да сте потребител с root или с привилегии sudo.

Firewalld трябва да бъде предварително инсталиран на вашия CentOS 8, но ако липсва, можете да го инсталирате с тази команда:

$ sudo dnf install firewalld

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

$ sudo systemctl enable firewalld -now

И накрая, за да проверите дали работи:

$ sudo firewall-cmd --state

Конфигурирайте и управлявайте защитната стена на CentOS 8

По подразбиране е зададена Public зоната. За да се уверите дали това е така, можете да използвате следната команда:

$ sudo firewall-cmd --get-default-zone

За да видите пълния списък на всички зони, използвайте тази:

$ sudo firewall-cmd --get-zones

За да промените на друга зона, вземете името на зоната, която искате, от предишната команда, и използвайте следното:

$ sudo firewall-cmd --set-default-zone=ИМЕ НА НОВА ЗОНА ТУК

За да проверите всички активни зони и мрежови интерфейси, които им съответстват, използвайте тази команда:

$ sudo firewall-cmd --get-active-zones

За да промените основното поведение на зоната (нейното поведение по подразбиране за входящ трафик), можете да използвате едно от следните default, ACCEPT, REJECT и DROP.

Да видим пример с ACCEPT:

$ sudo firewall-cmd --zone=public --set-target=ACCEPT

Можете лесно да зададете интерфейси на определени зони. Първо уточняваме зоната, в този случай тя ще бъде Home, след това използваме модификатора за промяна на интерфейса и уточняваме интерфейса. Вижте примера със зона Home и eth1 интерфейс:

$ sudo firewall-cmd --zone=home --change-interface=eth1

За да видите всички правила и услуги за конкретна зона (Public зона в примера):

$ sudo firewall-cmd --list-all --zone=public

Можете също да използвате следното, за да видите услугите на зоната по подразбиране:

$ sudo firewall-cmd --get-services

За да добавите HTTP услуга използвайте:

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

Отваряне на порт 80/tcp:

$ sudo firewall-cmd --zone=public --add-port=80/tcp

Ако искате да го направите постоянен, трябва да добавите “–permanent” след “–cmd“.

Източници:
https://www.centos.org/
https://firewalld.org/
https://linuxize.com/post/how-to-configure-and-manage-firewall-on-centos-8/
https://linuxize.com/post/create-a-sudo-user-on-centos/
https://www.digitalocean.com/community/tutorials/how-to-set-up-a-firewall-using-firewalld-on-centos-8

Вашият коментар

Вашият имейл адрес няма да бъде публикуван.