Mfululizo wa RHCSA: Muhimu za Ngome na Udhibiti wa Trafiki wa Mtandao Kwa Kutumia FirewallD na Iptables - Sehemu ya 11


Kwa maneno rahisi, ngome ni mfumo wa usalama unaodhibiti trafiki inayoingia na kutoka katika mtandao kulingana na seti ya sheria zilizoainishwa awali (kama vile pakiti lengwa/chanzo au aina ya trafiki, kwa mfano).

Katika makala haya tutapitia misingi ya firewalld, daemon ya kawaida ya firewall katika Red Hat Enterprise Linux 7, na huduma ya iptables, huduma ya urithi ya firewall ya Linux, ambayo wasimamizi wengi wa mfumo na mtandao wanaifahamu vyema, na ambayo inapatikana pia. katika RHEL 7.

Ulinganisho kati ya FirewallD na Iptables

Chini ya kofia, huduma ya firewalld na iptables huzungumza na mfumo wa kichungi cha netfilter kwenye kernel kupitia kiolesura kimoja, haishangazi, amri ya iptables. Hata hivyo, kinyume na huduma ya iptables, firewalld inaweza kubadilisha mipangilio wakati wa uendeshaji wa kawaida wa mfumo bila miunganisho iliyopo kupotea.

Firewalld inapaswa kusakinishwa kwa chaguo-msingi katika mfumo wako wa RHEL, ingawa inaweza kuwa haifanyi kazi. Unaweza kuthibitisha kwa amri zifuatazo (firewall-config ni zana ya usanidi wa kiolesura cha mtumiaji):

# yum info firewalld firewall-config

na,

# systemctl status -l firewalld.service

Kwa upande mwingine, huduma ya iptables haijajumuishwa na chaguo-msingi, lakini inaweza kusanikishwa kupitia.

# yum update && yum install iptables-services

Daemons zote mbili zinaweza kuanzishwa na kuwezeshwa kuanza kwenye buti na amri za kawaida za systemd:

# systemctl start firewalld.service | iptables-service.service
# systemctl enable firewalld.service | iptables-service.service

Soma Pia: Amri Muhimu za Kusimamia Huduma za Mfumo

Kuhusu faili za usanidi, huduma ya iptables hutumia /etc/sysconfig/iptables (ambayo haitakuwepo ikiwa kifurushi hakijasakinishwa kwenye mfumo wako). Kwenye sanduku la RHEL 7 linalotumika kama nodi ya nguzo, faili hii inaonekana kama ifuatavyo:

Ingawa firewalld huhifadhi usanidi wake katika saraka mbili, /usr/lib/firewalld na /etc/firewalld:

# ls /usr/lib/firewalld /etc/firewalld

Tutachunguza faili hizi za usanidi zaidi baadaye katika makala hii, baada ya kuongeza sheria chache hapa na pale. Kufikia sasa itatosha kukukumbusha kuwa unaweza kupata habari zaidi kuhusu zana zote mbili kila wakati.

# man firewalld.conf
# man firewall-cmd
# man iptables

Zaidi ya hayo, kumbuka kuangalia Kupitia Amri Muhimu na Hati za Mfumo - Sehemu ya 1 ya mfululizo wa sasa, ambapo nilielezea vyanzo kadhaa ambapo unaweza kupata taarifa kuhusu vifurushi vilivyosakinishwa kwenye mfumo wako wa RHEL 7.

Kutumia Iptables Kudhibiti Trafiki ya Mtandao

Unaweza kutaka kurejelea Sanidi Iptables Firewall - Sehemu ya 8 ya mfululizo wa Linux Foundation Certified Engineer (LFCE) ili kuonyesha upya kumbukumbu yako kuhusu iptables za ndani kabla ya kuendelea zaidi. Kwa hivyo, tutaweza kuruka moja kwa moja kwenye mifano.

Milango ya TCP 80 na 443 ni milango chaguomsingi inayotumiwa na seva ya wavuti ya Apache kushughulikia trafiki ya kawaida ya (HTTP) na salama (HTTPS). Unaweza kuruhusu trafiki ya wavuti inayoingia na kutoka kupitia bandari zote mbili kwenye kiolesura cha enp0s3 kama ifuatavyo:

# iptables -A INPUT -i enp0s3 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
# iptables -A OUTPUT -o enp0s3 -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
# iptables -A INPUT -i enp0s3 -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT
# iptables -A OUTPUT -o enp0s3 -p tcp --sport 443 -m state --state ESTABLISHED -j ACCEPT

Kunaweza kuwa na wakati unahitaji kuzuia aina zote (au baadhi) za trafiki kutoka kwa mtandao maalum, sema 192.168.1.0/24 kwa mfano:

# iptables -I INPUT -s 192.168.1.0/24 -j DROP

itaondoa vifurushi vyote kutoka kwa mtandao wa 192.168.1.0/24, wakati,

# iptables -A INPUT -s 192.168.1.0/24 --dport 22 -j ACCEPT

itaruhusu trafiki inayoingia tu kupitia bandari 22.

Ikiwa unatumia kisanduku chako cha RHEL 7 sio tu kama ngome ya programu, lakini pia kama ile inayotegemea maunzi, ili ikae kati ya mitandao miwili tofauti, usambazaji wa IP lazima uwe umewezeshwa kwenye mfumo wako. Ikiwa sivyo, unahitaji kuhariri /etc/sysctl.conf na kuweka thamani ya net.ipv4.ip_forward kuwa 1, kama ifuatavyo:

net.ipv4.ip_forward = 1

kisha uhifadhi mabadiliko, funga kihariri chako cha maandishi na mwishowe endesha amri ifuatayo ili kutumia mabadiliko:

# sysctl -p /etc/sysctl.conf

Kwa mfano, unaweza kuwa na kichapishi kilichosakinishwa kwenye kisanduku cha ndani chenye IP 192.168.0.10, huku huduma ya CUPS ikisikiliza kwenye mlango 631 (kwenye seva ya kuchapisha na kwenye ngome yako). Ili kusambaza maombi ya kuchapisha kutoka kwa wateja walio upande mwingine wa ngome, unapaswa kuongeza sheria zifuatazo za iptables:

# iptables -t nat -A PREROUTING -i enp0s3 -p tcp --dport 631 -j DNAT --to 192.168.0.10:631

Tafadhali kumbuka kuwa iptables husoma sheria zake kwa kufuatana, kwa hivyo hakikisha kwamba sera chaguo-msingi au sheria za baadaye hazibatili zile zilizoainishwa katika mifano iliyo hapo juu.

Kuanza na FirewallD

Moja ya mabadiliko yaliyoletwa na firewalld ni kanda. Dhana hii inaruhusu kutenganisha mitandao katika kanda tofauti kiwango cha uaminifu ambacho mtumiaji ameamua kuweka kwenye vifaa na trafiki ndani ya mtandao huo.

Ili kuorodhesha kanda zinazotumika:

# firewall-cmd --get-active-zones

Katika mfano ulio hapa chini, eneo la umma linatumika, na kiolesura cha enp0s3 kimepewa kiotomatiki. Ili kutazama habari zote kuhusu eneo fulani:

# firewall-cmd --zone=public --list-all

Kwa kuwa unaweza kusoma zaidi kuhusu kanda katika mwongozo wa Usalama wa RHEL 7, tutaorodhesha tu baadhi ya mifano mahususi hapa.

Ili kupata orodha ya huduma zinazotumika, tumia.

# firewall-cmd --get-services

Ili kuruhusu trafiki ya wavuti ya http na https kupitia ngome, itatumika mara moja na kwenye buti zinazofuata:

# firewall-cmd --zone=MyZone --add-service=http
# firewall-cmd --zone=MyZone --permanent --add-service=http
# firewall-cmd --zone=MyZone --add-service=https
# firewall-cmd --zone=MyZone --permanent --add-service=https
# firewall-cmd --reload

Ikiwa msimbo>–zone umeachwa, eneo chaguo-msingi (unaweza kuangalia na firewall-cmd –get-default-zone) inatumika.

Kuondoa sheria, badilisha neno ongeza na ondoa katika amri zilizo hapo juu.

Kwanza kabisa, unahitaji kujua ikiwa kujificha kumewezeshwa kwa eneo linalohitajika:

# firewall-cmd --zone=MyZone --query-masquerade

Katika picha iliyo hapa chini, tunaweza kuona kwamba kujificha kunawezeshwa kwa ukanda wa nje, lakini sio kwa umma:

Unaweza kuwezesha kujificha kwa umma:

# firewall-cmd --zone=public --add-masquerade

au tumia kujifanya kwa nje. Hivi ndivyo tungefanya ili kuiga Mfano wa 3 na firewalld:

# firewall-cmd --zone=external --add-forward-port=port=631:proto=tcp:toport=631:toaddr=192.168.0.10

Na usisahau kupakia upya firewall.

Unaweza kupata mifano zaidi kwenye Sehemu ya 9 ya mfululizo wa RHCSA, ambapo tulieleza jinsi ya kuruhusu au kuzima bandari ambazo kwa kawaida hutumiwa na seva ya wavuti na seva ya ftp, na jinsi ya kubadilisha sheria inayolingana wakati mlango msingi wa huduma hizo. zinabadilishwa. Kwa kuongeza, unaweza kutaka kurejelea firewalld wiki kwa mifano zaidi.

Soma Pia: Mifano Muhimu ya FirewallD ya Kusanidi Firewall katika RHEL 7

Hitimisho

Katika makala hii tumeelezea nini firewall ni, ni huduma gani zinazopatikana kutekeleza moja katika RHEL 7, na kutoa mifano michache ambayo inaweza kukusaidia kuanza na kazi hii. Ikiwa una maoni yoyote, mapendekezo, au maswali, jisikie huru kutufahamisha kwa kutumia fomu iliyo hapa chini. Asante!