Како да го конфигурирате FirewallD во RHEL, Rocky и AlmaLinux


Net-филтер како што сите знаеме дека е заштитен ѕид во Linux. Firewalld е динамичен демон за управување со заштитен ѕидови со поддршка за мрежни зони. Во претходната верзија, RHEL и CentOS, ги користевме iptables како демон за рамка за филтрирање пакети.

Во поновите верзии на дистрибуции базирани на RHEL, како што се Fedora, Rocky Linux, CentOS Stream, AlmaLinux и openSUSE - интерфејсот iptables се заменува со заштитен ѕид.

[Можеби ќе ви се допадне и: 10 корисни безбедносни огнени ѕидови со отворен код за системи на Линукс]

Се препорачува да започнете со користење на Firewalld наместо iptables бидејќи тоа може да престане во иднина. Сепак, iptables сè уште се поддржани и може да се инсталираат со командата yum. Не можеме да ги чуваме Firewalld и iptables и двете во истиот систем што може да доведе до конфликт.

Во iptables, ние порано конфигуриравме како ВЛЕЗ, ИЗЛЕЗ И НАПРЕД СИНЏИРИ, но овде во Firewalld, концептот користи зони. Стандардно, постојат различни зони достапни во заштитен ѕид, за кои ќе се дискутира во овој напис.

Основната зона кои се како јавна зона и приватна зона. За да работиме наоколу со овие зони, треба да го додадеме интерфејсот со наведената поддршка за зона и потоа можеме да ги додадеме услугите во заштитен ѕид.

Стандардно, има многу достапни услуги, една од најдобрите карактеристики на заштитниот ѕид е, тој доаѓа со претходно дефинирани услуги и можеме да ги земеме овие услуги како пример за да ги додадеме нашите услуги со едноставно копирање на истите.

Firewalld работи одлично и со IPv4, IPv6 и етернет мостови. Можеме да имаме посебно време на извршување и постојана конфигурација во заштитен ѕид.

Ајде да започнеме како да работиме со зони и да создаваме сопствени услуги и многу повозбудливо користење на заштитен ѕид во Linux.

Operating System :	Red Hat Enterprise Linux release 9.0 (Plow)
IP Address       :	192.168.0.159
Host-name	:	tecmint-rhel9

Чекор 1: Инсталирање Firewalld во системи базирани на RHEL

1. Пакетот Firewalld е стандардно инсталиран во RHEL, Fedora, Rocky Linux, CentOS Stream, AlmaLinux и openSUSE. Ако не, можете да го инсталирате користејќи ја следнава команда yum.

# yum install firewalld -y

2. Откако ќе се инсталира пакетот за заштитен ѕид, време е да се потврди дали услугата iptables работи или не, ако работи, треба да ја запрете и маскирате (повеќе да не ја користите) услугата iptables со командите подолу.

# systemctl status iptables
# systemctl stop iptables
# systemctl mask iptables

Чекор 2: Разбирање на компонентите на огнениот ѕид (зони и правила)

3. Пред да се упатите кон конфигурација на заштитен ѕид, би сакал да разговарам за секоја зона. Стандардно, има некои достапни зони. Треба да го доделиме интерфејсот на зоната. Зона ја дефинира зоната на која ѝ беше доверено или на кое беше одбиено ниво на интерфејсот за да се добие врска. Зоната може да содржи услуги и пристаништа.

Овде, ќе ги опишеме сите зони достапни во Firewalld.

  • Drop Zone: сите дојдовни пакети се отфрлаат ако користиме зона за паѓање. Ова е исто како што го користиме за додавање iptables -j drop. Ако го користиме правилото за паѓање, значи дека нема одговор, ќе бидат достапни само појдовните мрежни врски.
  • Блок зона: Блок зоната ќе одбие дека дојдовните мрежни врски се отфрлени со icmp-host-prohibited. Ќе бидат дозволени само воспоставени врски во рамките на серверот.
  • Јавна зона: За да ги прифатиме избраните врски, можеме да дефинираме правила во јавната зона. Ова само ќе дозволи конкретната порта да се отвори на нашиот сервер, другите врски ќе бидат исфрлени.
  • Надворешна зона: оваа зона ќе дејствува како опциите на рутерот со овозможено маскирање, другите врски ќе бидат исфрлени и нема да прифаќаат, а ќе бидат дозволени само одредени врски.
  • DMZ зона: ако треба да дозволиме пристап до некои од услугите на јавноста, можете да го дефинирате во зоната DMZ. И ова ја има карактеристиката да се прифаќаат само избрани дојдовни врски.
  • Работна зона: во оваа зона, можеме да дефинираме само внатрешни мрежи, односно сообраќајот на приватни мрежи е дозволен.
  • Домашна зона: оваа зона е специјално користена во домашните области, можеме да ја користиме оваа зона за да им веруваме на другите компјутери на мрежите за да не му наштетат на вашиот компјутер како во секоја зона. И ова ги дозволува само избраните дојдовни врски.
  • Внатрешна зона: оваа е слична на работната зона со избрани дозволени врски.
  • Доверлива зона: ако ја поставиме доверливата зона, целиот сообраќај е прифатен.

Сега имате подобра идеја за зоните, сега ајде да ги дознаеме достапните зони и стандардните зони и да ги наведеме сите зони користејќи ги следните команди.

# firewall-cmd --get-zones
# firewall-cmd --get-default-zone
# firewall-cmd --list-all-zones

Забелешка: Излезот од горната команда нема да се вклопи во една страница бидејќи ќе ги наведе сите зони како блок, dmz, капка, надворешна, домашна, внатрешна, јавна, доверлива и работа. Ако зоните имаат некои богати правила, овозможените услуги или пристаништа исто така ќе бидат наведени со тие соодветни информации за зоната.

Чекор 3: Поставување на стандардна зона на заштитен ѕид

4. Ако сакате да ја поставите стандардната зона како внатрешна, надворешна, капка, работна или која било друга зона, можете да ја користите командата подолу за да ја поставите стандардната зона. Овде ја користиме „внатрешната“ зона како стандардна.

# firewall-cmd --set-default-zone=internal

5. Откако ќе ја поставите зоната, потврдете ја стандардната зона користејќи ја командата подолу.

# firewall-cmd --get-default-zone

6. Овде, нашиот интерфејс е enp0s3, ако треба да ја провериме зоната во која е ограничен интерфејсот, можеме да ја користиме командата подолу.

# firewall-cmd --get-zone-of-interface=enp0s3

7. Друга интересна карактеристика на заштитен ѕид е „icmptype“ е еден од типовите icmp поддржани од заштитен ѕид. За да го добиете списокот на поддржани типови icmp, можеме да ја користиме командата подолу.

# firewall-cmd --get-icmptypes

Чекор 4: Создавање сопствени услуги во Firewalld

8. Услугите се збир на правила со порти и опции што ги користи Firewalld. Услугите што се овозможени, автоматски ќе се вчитаат кога услугата Firewalld е вклучена и работи.

Стандардно, многу услуги се достапни, за да ја добиете листата на сите достапни услуги, користете ја следнава команда.

# firewall-cmd --get-services

9. За да ја добиете листата на сите стандардни достапни услуги, одете во следниот директориум, тука ќе ја добиете листата на услуги.

# cd /usr/lib/firewalld/services/

10. За да креирате сопствена услуга, треба да ја дефинирате на следната локација. На пример, овде сакам да додадам услуга за RTMP порта 1935, прво направете копија од која било од услугите.

# cd /etc/firewalld/services/
# cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/

И потоа, одете до локацијата каде што е копирана нашата услужна датотека, потоа преименувајте ја датотеката „ssh.xml“ во „rtmp.xml“ како што е прикажано на сликата подолу.

# cd /etc/firewalld/services/
# mv ssh.xml rtmp.xml
# ls -l rtmp.xml

11. Потоа отворете ја и уредете ја датотеката како Заглавие, Опис, протокол и број на порта, кои треба да ги користиме за услугата RTMP како што е прикажано на сликата подолу.

12. За да ги активирате овие промени, рестартирајте ја услугата заштитен ѕид или повторно вчитајте ги поставките.

# firewall-cmd --reload

13. За да потврдите дали услугата е додадена или не, извршете ја командата подолу за да добиете список на достапни услуги.

# firewall-cmd --get-services

Чекор 5: Доделување услуги на зони на заштитен ѕид

14. Овде ќе видиме како да управуваме со заштитниот ѕид користејќи ја командата firewall-cmd. За да ја знаете моменталната состојба на заштитниот ѕид и сите активни зони, напишете ја следнава команда.

# firewall-cmd --state
# firewall-cmd --get-active-zones

15. За да ја добиете јавната зона за интерфејс enp0s3, ова е стандардниот интерфејс, кој е дефиниран во датотеката /etc/firewalld/firewalld.conf како DefaultZone= јавно.

Да ги наведете сите достапни услуги во оваа стандардна интерфејсна зона.

# firewall-cmd --get-service

Чекор 6: Додавање услуги во зони на заштитниот ѕид

16. Во горните примери видовме како да креираме сопствени услуги со креирање на услугата rtmp, овде ќе видиме како да ја додадеме услугата rtmp во зоната исто така.

# firewall-cmd --add-service=rtmp

17. За да ја отстраните додадената зона, напишете.

# firewall-cmd --zone=public --remove-service=rtmp

Горенаведениот чекор беше само привремен период. За да биде постојан, треба да ја извршиме командата подолу со опција –трајно.

# firewall-cmd --add-service=rtmp --permanent
# firewall-cmd --reload

18. Дефинирајте правила за опсегот на мрежен извор и отворете која било од портите. На пример, ако сакате да отворите мрежен опсег, кажете „192.168.0.0/24“ и портата „1935“ користете ги следните команди.

# firewall-cmd --permanent --add-source=192.168.0.0/24
# firewall-cmd --permanent --add-port=1935/tcp

Погрижете се повторно да ја вчитате услугата за заштитен ѕид откако ќе додадете или отстраните какви било услуги или порти.

# firewall-cmd --reload 
# firewall-cmd --list-all

Чекор 7: Додавање правила на Firewalld Rich за мрежен опсег

19. Ако сакам да ги дозволам услугите како http, https, vnc-сервер и PostgreSQL, ги користам следните правила. Прво, додадете го правилото и направете го трајно и повторно вчитајте ги правилата и проверете го статусот.

# firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="http" accept' 
# firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="http" accept' --permanent

# firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="https" accept'
# firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="https" accept' --permanent

# firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="vnc-server" accept'
# firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="vnc-server" accept' --permanent

# firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="postgresql" accept'
# firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="postgresql" accept' --permanent

Сега, мрежниот опсег 192.168.0.0/24 може да ја користи горната услуга од мојот сервер. Опцијата –трајно може да се користи во секое правило, но ние мора да го дефинираме правилото и да провериме кај клиентот пристап, а потоа да го направиме постојан.

20. Откако ќе ги додадете горенаведените правила, не заборавајте повторно да ги вчитате правилата за заштитен ѕид и да ги наведете правилата користејќи:

# firewall-cmd --reload
# firewall-cmd --list-all

За да дознаете повеќе за Firewalld.

# man firewalld

Тоа е сè, видовме како да поставиме мрежен филтер користејќи Firewalld во дистрибуции базирани на RHEL како што се Fedora, Rocky Linux, CentOS Stream, AlmaLinux и openSUSE.

Нето-филтерот е рамка за заштитен ѕид за секоја дистрибуција на Linux. Назад во секое издание на RHEL и CentOS, користевме iptables, но во поновите верзии, тие го воведоа Firewalld. Полесно е да се разбере и користи заштитен ѕид. Се надевам дека уживавте во пишувањето.