Centos 7 bandari wazi. Sheria chaguo-msingi za ngome. Kubadilisha eneo la kiolesura kwa msingi wa kudumu

Ili kulinda seva kutoka vitisho vya nje kwanza inakuja kati firewall, ambayo huchuja trafiki inayoingia na kutoka. Katika makala hii nataka kujadili kuanzisha iptables, kesi maalum ya firewall kwenye CentOS, na pia kuzungumza juu ya kufunga na kuzima. Mwongozo wangu hautakuwa kamili; nitazingatia tu vipengele ambavyo ninaona kuwa muhimu zaidi na ambavyo mimi mwenyewe hutumia katika kazi yangu.

Iptables sasa ndio kiwango cha ukweli katika kisasa usambazaji wa linux. Siwezi hata kukumbuka moja kwa moja ni nini kingine kinachotumika kama ngome. Kwa hivyo msimamizi yeyote wa Linux lazima ashughulikie kusanidi hii firewall.

Kuna miunganisho tofauti kwenye ngome hii ambayo hutumiwa kwa usanidi "rahisi" zaidi. Ubuntu ina ufw, kwa centos - firewall, siwajui wengine. Binafsi, sioni urahisi wowote katika kutumia zana hizi. Nimezoea kusanidi firewall ya Linux kwa njia ya kizamani, kama nilivyojifunza mwanzoni mwa kazi yangu. Nadhani hii ndiyo njia rahisi na rahisi zaidi, ambayo nitashiriki nawe. Kiini chake kinatokana na ukweli kwamba hati imeundwa na sheria za firewall. Hati hii inaweza kuhaririwa kwa urahisi ili kukidhi mahitaji yako na kuhamishwa kutoka kwa seva hadi seva.

Inalemaza firewall

Tayari nimegusia suala la kulemaza firewall katika mada juu ya . Kwanza kabisa, wacha tuzima firewalld, ambayo iko katika centos 7 kwa chaguo-msingi mara baada ya usakinishaji:

# systemctl simamisha firewalld

Sasa hebu tuiondoe kutoka kwa uanzishaji ili isiwashe tena baada ya kuwasha upya:

# systemctl zima firewalld

Baada ya hayo, mipangilio ya firewall kwenye seva inakuwa wazi kabisa. Unaweza kutazama sheria za iptables na amri:

Inaweka iptables

Kwa kweli, tayari tunayo firewall kwenye seva yetu na inafanya kazi, hakuna sheria, kila kitu kiko wazi. Tutahitaji kufunga huduma za ziada udhibiti, bila ambayo haiwezekani kusanidi iptables. Kwa mfano, haitawezekana kuanzisha upya firewall:

# systemctl anzisha upya iptables.service Imeshindwa kutoa simu ya mbinu: Unit iptables.service imeshindwa kupakia: Hakuna faili au saraka kama hiyo.

Au hutaweza kuiongeza kwenye autorun:

# systemctl wezesha iptables.service Imeshindwa kutoa nambari ya simu: Hakuna faili au saraka kama hiyo

Ili kuepuka makosa hayo, tutaweka kifurushi kinachohitajika na huduma:

# yum -y kusakinisha iptables-huduma

Sasa unaweza kuongeza iptables ili kuanza na kuendesha:

# systemctl wezesha iptables.service # systemctl anzisha iptables.service

Kuweka firewall

Ninatumia hati kudhibiti sheria za firewall. Hebu tuunde:

# mceedit /etc/iptables.sh

Ifuatayo tutaijaza na sheria zinazohitajika. Nitachanganua sehemu zote muhimu za hati, na Nitatoa kwa ukamilifu katika fomu faili ya maandishi mwishoni mwa makala. Sheria zinafanywa kwa namna ya picha ili kuzuia kunakili na kubandika. Hii inaweza kusababisha makosa katika uendeshaji wa sheria, ambazo mimi mwenyewe nilikutana nazo wakati wa kuandaa makala.

Tutazingatia hali ambapo seva ni lango la mtandao kwa mtandao wa ndani.

Kwanza kabisa, hebu tuweke vigezo vyote ambavyo tutatumia kwenye hati. Hii sio lazima, lakini inashauriwa kwa sababu ni rahisi kuhamisha mipangilio kutoka kwa seva hadi seva. Itatosha kupeana tena vigeuzo.

Kabla ya kutumia sheria mpya, tunafuta minyororo yote:

Tunazuia trafiki yote ambayo hailingani na sheria yoyote:

Ruhusu trafiki yote ya ndani na ndani:

Tunaruhusu ping:

Ikiwa hauitaji hii, basi usiongeze sheria za kuruhusu icmp.

Tunafungua ufikiaji wa mtandao kwa seva yenyewe:

Ikiwa unataka kufungua miunganisho yote ya seva inayoingia, basi ongeza sheria ifuatayo:

Sasa hebu tuongeze ulinzi dhidi ya kawaida zaidi mashambulizi ya mtandao. Kwanza, wacha tutupe pakiti zote ambazo hazina hadhi:

Kuzuia pakiti batili:

Kujikinga na mashambulizi ya mafuriko:

Ikiwa hutaweka vizuizi vya ufikiaji kutoka kwa mtandao wa ndani, basi tunaruhusu kila mtu kufikia Mtandao:

Ifuatayo, tunakataza ufikiaji kutoka kwa Mtandao hadi mtandao wa ndani:

Ili mtandao wetu wa ndani utumie Mtandao, tunawezesha nat:

Ili usipoteze ufikiaji wa seva, baada ya kutumia sheria, tunaruhusu miunganisho kupitia ssh:

Na mwisho tunaandika sheria ili zitumike baada ya kuanza tena:

Tumekusanya usanidi rahisi ambao unazuia miunganisho yote inayoingia isipokuwa ssh na inaruhusu ufikiaji kutoka kwa mtandao wa ndani hadi Mtandao. Wakati huo huo, tulijilinda kutokana na mashambulizi ya mtandao.

Hifadhi hati, ifanye itekelezwe na uendeshe:

# chmod 0740 /etc/iptables.sh # /etc/iptables.sh

Wacha tupitie sheria na tuangalie ikiwa sheria zote ziko:

# iptables -L -v -n

Tafadhali kumbuka kuwa unahitaji tu kutumia sheria ikiwa una ufikiaji wa koni ya seva. Ikiwa kuna hitilafu katika mipangilio, unaweza kupoteza ufikiaji. Hakikisha kwamba katika hali ya dharura unaweza kuzima firewall na kurekebisha mipangilio.

Kufungua bandari

Sasa hebu tupanue usanidi wetu kidogo na tufungue ndani bandari za iptables kwa baadhi ya huduma. Wacha tuseme tuna seva ya wavuti inayoendesha na tunahitaji kufungua ufikiaji wake kutoka kwa Mtandao. Ongeza sheria za trafiki ya wavuti:

Ruhusa imeongezwa kwa miunganisho inayoingia kwenye bandari 80 na 443, ambazo hutumiwa na seva ya wavuti katika kazi yako.

Ikiwa umesakinisha seva ya barua, basi unahitaji kuruhusu miunganisho inayoingia kwake kwenye bandari zote zilizotumiwa:

Kwa operesheni sahihi Seva za DNS zinahitaji kufunguliwa bandari ya UDP 53

Usambazaji wa bandari

Hebu fikiria hali wakati ni muhimu kusambaza bandari kutoka kwa interface ya nje hadi kwenye kompyuta fulani kwenye mtandao wa ndani. Wacha tuseme unahitaji kupata ufikiaji wa rdp kwa kompyuta 10.1.3.50 kutoka kwa Mtandao. Tunasambaza bandari ya TCP 3389:

Ikiwa hutaki kuangaza nje bandari maarufu, basi unaweza kuelekeza kutoka kwa bandari isiyo ya kawaida hadi bandari ya rdp kompyuta lengwa:

Ukisambaza lango kutoka nje hadi mtandao wa ndani, hakikisha unatoa maoni juu ya sheria inayozuia ufikiaji kutoka kwa mtandao wa nje hadi wa ndani. Katika mfano wangu sheria hii ni: $IPT -A FORWARD -i $WAN -o $LAN1 -j REJECT

Au kabla ya sheria hii, tengeneza sheria ya kuruhusu ufikiaji wa nje kwa huduma ya ndani, kwa mfano kama hii:

$IPT -A MBELE -i $WAN -d 10.1.3.50 -p tcp -m tcp --dport 3389 -j KUBALI

Kuwezesha kumbukumbu

Wakati wa kusanidi, ni muhimu kuwezesha kumbukumbu kufuatilia vifurushi vilivyozuiwa na kujua kwa nini ufikiaji huduma muhimu, ambayo tunaonekana kuwa tayari tumegundua. Ninatuma pakiti zote zilizozuiwa kutenganisha minyororo (block_in, block_out, block_fw) inayolingana na mwelekeo wa trafiki na alama kila mwelekeo kwenye magogo. Hii inafanya iwe rahisi kufanya mazungumzo. Ongeza sheria zifuatazo mwisho wa hati, kabla ya kuhifadhi mipangilio:

Unaweza kufuatilia vifurushi vyote vilivyozuiwa kwenye faili ya /var/log/messages.

Baada ya kumaliza kusanidi, toa maoni kwa mistari hii na uzime ukataji miti. Kwa hakika inafaa kufanya hivyo, kwani magogo hukua haraka sana. Binafsi sioni maana yoyote ya vitendo katika kuhifadhi habari kama hizi.

Jinsi ya kulemaza iptables

Ikiwa utaamua ghafla kuwa hauitaji tena firewall, unaweza kuizima kama ifuatavyo.

# systemctl acha iptables.service

Amri hii inasimamisha firewall. Na ifuatayo inaiondoa kutoka kwa kuanza:

# systemctl zima iptables.service

Kwa kuzima ngome, tuliruhusu miunganisho yote.

Hitimisho

Kama ilivyoahidiwa, ninachapisha hati iliyokamilika na seti ya msingi ya sheria ambazo tumezingatia

Ningependa kusema tena kwamba ni lini kuanzisha iptables unahitaji kuwa makini sana. Usianzishe biashara hii ikiwa huna ufikiaji wa kiweko cha seva. Hata wakati wa kuandika nakala hii, nilipoteza ufikiaji wa seva kwa sababu ya kosa la ujinga katika sheria. Kosa hili liliibuka kwa sababu ya kunakili na upotezaji wa dashi mbili - ilibadilishwa na moja.

Unaweza kufikiria ikiwa ilikuwa seva ya mbali? Mtu niliyemfahamu alinikaribia kwa njia hii na kuniuliza niweke firewall kwenye seva ya wavuti. Msimamizi wa awali alimlazimisha kufika eneo la mashine mara 2 na kuweka upya mipangilio ya skrini iliyosanidiwa vibaya, ambayo hatimaye ilisababisha kusitishwa kwa ushirikiano. Ilikuwa ni muda mrefu uliopita, lakini nakumbuka tukio hilo. Sasa karibu watoa huduma wote wa upangishaji hutoa ufikiaji wa KVM wa mbali kwa ada au bila malipo. Ni bora kutunza hii mapema.

Video

Kozi ya mtandaoni "Msimamizi wa Linux"

Ikiwa una nia ya kujifunza jinsi ya kujenga na kudumisha mifumo inayopatikana na ya kuaminika, ninapendekeza ujue. kozi ya mtandaoni "Msimamizi wa Linux" katika OTUS. Kozi sio ya wanaoanza; kwa kiingilio unahitaji maarifa ya msingi kwenye mitandao na Ufungaji wa Linux kwa mashine ya mtandaoni. Mafunzo hayo huchukua muda wa miezi 5, baada ya hapo wahitimu wa kozi waliofaulu wataweza kufanyiwa mahojiano na washirika. Jijaribu kwenye jaribio la kiingilio na uone programu kwa maelezo zaidi.

Nakala hii itaelezea jinsi ya kuweka mfumo mpya kazi salama. Hii ni kweli hasa kwa wale ambao watakaribisha kitu kwenye mashine yao wenyewe au ufikiaji wazi wa kompyuta kutoka nje. Kwa hiyo, hebu tuanze.

SELinux

SELinux ni utekelezaji wa mfumo wa udhibiti wa ufikiaji wa kulazimishwa ambao unaweza kufanya kazi sambamba na mfumo wa udhibiti wa ufikiaji uliochaguliwa. Chombo muhimu sana kwa kubadilika na urekebishaji mzuri usalama. Watu wengi wanafikiri kwamba inapaswa kuzimwa mara moja na haitumiwi kabisa. Katika makala hii hatutazingatia usanidi wake. Wacha tuzima SELinux kwa muda; kuna nyenzo za kutosha juu ya kuisanidi kwa nakala tofauti.

Faili ya usanidi iko katika /etc/sysconfig/selinux. Fungua na hariri ya maandishi na uhariri mstari:

#nano /etc/sysconfig/selinux SELINUX = Utekelezaji Umezimwa

Hii itabadilisha hali ya uendeshaji ya SELinux kuwa "lemaza". Ili kutumia mpangilio unahitaji kuwasha upya kwa amri:

#systemctl anzisha upya

Firewall

Firewall hutoa utendakazi wa ngome-mtandao unaodhibitiwa kwa usaidizi kwa maeneo ya mtandao yaliyoundwa ili kufafanua kiwango cha uaminifu kwa muunganisho wa mtandao au kiolesura. Ina msaada wa kusanidi IPv4, IPv6 na madaraja ya mtandao, na pia hutenganisha wakati wa kukimbia na chaguzi za usanidi. Firewalld pia ina kiolesura cha kuongeza sheria za ngome moja kwa moja kutoka kwa huduma na programu.

Kwa chaguo-msingi, Firewalld imewashwa na milango yote inachukuliwa kuwa imefungwa. Ikiwa unahitaji kufungua bandari yoyote, tumia amri:

#firewall-cmd --permanent --zone=public --add-port=80/tcp

KATIKA kwa kesi hii 80 ni nambari ya bandari inayohitaji kufunguliwa (badala ya ile unayohitaji). Lango zitaendelea kufunguliwa hadi utakapozifunga wewe mwenyewe au hadi uzime Firewalld. Firewalld imezimwa kwa amri:

#systemctl stop firewalld #systemctl zima firewalld

#firewall-cmd --permanent --zone=public --add-port=12345/tcp

Vile vile lazima vifanyike kwa kila bandari ambayo unapanga kuweka wazi. Ikiwa bandari haitatumiwa tena na wewe katika siku zijazo, ni bora kuifunga kwa amri:

#firewall-cmd --permanent --zone=public --remove-port=12345/tcp

Fail2piga marufuku

Fail2piga marufuku ni mfumo wa kulinda seva dhidi ya mashambulizi ya nguvu ya kikatili (password brute force attack). Kanuni ya operesheni ni kwamba ikiwa ndani ya muda fulani kulikuwa na majaribio ya idhini isiyofanikiwa, basi anwani ya IP ambayo majaribio ya idhini yalifanywa imeingizwa kwenye orodha ya marufuku. Mfumo huu lazima tu, kwa sababu bila hiyo, seva yako inaweza kupatikana. Fail2ban inafuatilia bandari maalum, kwa mfano SSH - 22 (kawaida, inashauriwa kuibadilisha kuwa yako mwenyewe). Fail2ban imesanidiwa kupitia faili ya usanidi. Yafuatayo ni maagizo ya jinsi ya kusakinisha na kusanidi Fail2ban.

Kwanza unahitaji kuunganisha hazina ya EPEL, kifurushi cha Fail2ban kiko hapo. Tunafanya hivyo kwa amri:

#rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm

#yum install fail2ban

Baada ya usakinishaji, tunasanidi Fail2ban. Faili ya usanidi iko hapa - /etc/fail2ban/jail.conf, lakini kama ilivyoelezwa kwenye maoni mwanzoni, faili hili Inapendekezwa kutobadilika, badala yake unahitaji kuunda nakala ya ndani /etc/fail2ban/jail.local. Na katika siku zijazo, hariri usanidi ndani yake.

#cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local #nano /etc/fail2ban/jail.local

Faili ya usanidi ina sehemu nyingi, hebu kwanza tuzingatie . Sehemu hii ina mipangilio chaguo-msingi ikiwa Fail2ban imesanidiwa kufanya kazi huduma mbalimbali na hakuna sheria kwao, basi vigezo vitachukuliwa kutoka hapa. Hapa kuna mfano wa mipangilio:

Ignoreip = 127.0.0.1/8 192.168.1.10/24 bantime = 900 findtime = 600 maxretry = 6

kupuuza- inamaanisha ni anwani gani za IP zitapuuzwa wakati wa kufuatilia. Tunaonyesha mwenyeji hapa, na pia, ikitenganishwa na nafasi, unaweza kutaja anwani za ziada za IP, kwa mfano, anwani ya kompyuta yako nyingine kwenye mtandao wa ndani, ambao unafanya kazi kila wakati. Unaweza pia kutaja anwani za IP za nje, lakini katika kesi hii usalama umepunguzwa.

bantime- wakati ambapo anwani maalum ya IP itajumuishwa kwenye orodha ya marufuku. Muda unaonyeshwa kwa sekunde. Kwa marufuku ya kudumu, inatosha kuonyesha nambari yoyote mbaya.

wakati wa kupata- wakati ambapo, baada ya jaribio lisilo sahihi la idhini, anwani hii ya IP itafuatiliwa. Iwapo wakati wa kutafuta majaribio ya uidhinishaji ambayo hayakufanikiwa yatafanywa, anwani ya IP itajumuishwa kwenye orodha ya marufuku.

maxretry - kiasi cha juu majaribio ya uidhinishaji yasiyo sahihi wakati wa kupata. Wakati thamani hii ya kizingiti imefikiwa, anwani ya IP itaongezwa kwenye orodha ya marufuku.

Ifuatayo, nenda chini na upate sehemu hiyo JELA, inaeleza ni huduma na bandari zipi zinahitaji kufuatiliwa, na nini cha kufanya nazo ikiwa ulinzi umeanzishwa. Pia katika kila sehemu unaweza kufafanua vigezo vyako mwenyewe bantime, findtime, maxretry, na ikiwa hazijaainishwa, basi vigezo vinachukuliwa kutoka kwa sehemu hiyo. . Tunatafuta sehemu zinazotuvutia na kuzihariri, tutaweka ufuatiliaji wa huduma ya SSH. Ili kufanya hivyo, nenda kwenye sehemu , ongeza mstari kwake "wezeshwa = kweli", na ubadilishe bandari kuwa ile tuliyokabidhi hapo awali:

Imewashwa = bandari ya kweli = 12345 action = iptables-multiport logpath = %(sshd_log)s

Zindua huduma ya fail2ban na uiongeze kwenye kuanza:

#systemctl anza kushindwa2ban #systemctl wezesha fail2ban

Hii inahitimisha usanidi wa msingi wa usalama. Sasa unaweza kufungua ufikiaji wa seva kwa usalama kupitia SSH. Ikiwa mshambuliaji yeyote atajaribu kutumia nguvu ya kikatili kupata ufikiaji wa seva yako kupitia SSH, basi hakuna kitakachomfanyia kazi - anwani yake ya IP itazuiwa. Bandari zingine zote zinalindwa kwa kutumia firewall.

Agosti 15, 2014 12:57 pm Maoni 12,380 | Hakuna maoni

Unapoingia kwanza kwenye seva mpya ya kibinafsi ya kibinafsi, unahitaji kufanya hatua kadhaa ambazo zitaongeza usalama wake. Mwongozo huu utakuonyesha jinsi ya kuunda mtumiaji mpya, kumpa haki zinazofaa, na kusanidi SSH.

1: Ingia kama mtumiaji wa mizizi

Mara tu ukiwa na anwani yako ya IP na nywila ya mizizi, ingia kwenye seva kama mtumiaji mkuu (mzizi). Ili kufanya hivyo, tumia amri (Badilisha IP iliyotengwa na anwani yako ya IP):

ssh [barua pepe imelindwa]

terminal itarudisha kitu kama:

Ukweli wa mwenyeji "111.22.33.444 (111.22.33.444)" hauwezi kuthibitishwa.
Alama za vidole muhimu za ECDSA ni 79:95:46:1a:ab:37:11:8e:86:54:36:38:bb:3c:fa:c0.
Je, una uhakika unataka kuendelea kuunganisha (ndiyo/hapana)?

Chagua ndiyo na uweke nenosiri lako la mizizi.

Kumbuka: Kutumia akaunti ya mizizi mara kwa mara haipendekezi; Mwongozo huu utakusaidia kuunda mtumiaji mwingine kwa kazi ya kudumu.

2: Badilisha nenosiri lako

Washa wakati huu Nenosiri la mizizi hutumiwa, limewekwa na chaguo-msingi na kupokea baada ya kusajili seva. Kitu cha kwanza cha kufanya ni badala yake na nenosiri lako mwenyewe.

Inapokuja kwa manenosiri uliyoweka, CentOS ni mwangalifu sana. Kwa hiyo, baada ya kuingia nenosiri jipya, taarifa ya BAD PASSWORD inaweza kuonekana. Unaweza kuweka nenosiri ngumu zaidi, au kupuuza ujumbe: kwa kweli, CentOS itakubali hata moja ambayo ni rahisi sana au nenosiri fupi, ingawa itapendekeza kutumia mchanganyiko ngumu zaidi.

3: Unda mtumiaji mpya

Baada ya kuingia kwenye seva na kubadilisha nenosiri la mizizi, unahitaji kuingia kwenye VPS kama mzizi tena. Sehemu hii itaonyesha jinsi ya kuunda mtumiaji mpya na kuweka nenosiri kwa ajili yake.

Kwa hivyo, tengeneza mtumiaji mpya; Ili kufanya hivyo, tumia amri ifuatayo (badilisha onyesho na jina lako la mtumiaji):

onyesho la mtumiaji

Sasa unda nenosiri la mtumiaji huyu (tena, badilisha onyesho kwa jina la mtumiaji uliyeunda hivi punde):

onyesho la passwd

4: Mapendeleo ya mizizi

Kwa sasa, haki zote za msimamizi ni za mtumiaji wa mizizi. Ili uweze kutumia akaunti mpya kabisa, unahitaji kuhamisha haki zote za mizizi kwa mtumiaji mpya (onyesho).

Ili kufanya kazi na marupurupu ya mizizi, unahitaji kuanza amri na sudo. Maneno haya yanafaa kwa sababu mbili: 1) inalinda mfumo kutokana na makosa ya uharibifu yaliyofanywa na mtumiaji; 2) huhifadhi zote zilizozinduliwa kutoka amri za sudo kwenye /var/log/secure faili, ambayo unaweza kutazama baadaye.

Sasa unahitaji kubadilisha mipangilio yako ya sudo; kwa matumizi haya mhariri wa maandishi CentOS chaguo-msingi, ambayo inaitwa vi:

Pata sehemu ya vipimo vya upendeleo wa Mtumiaji, ambayo inaonekana kama hii:

# Vipimo vya upendeleo wa mtumiaji
mizizi YOTE=(ZOTE) ZOTE

Baada ya mstari na marupurupu ya mizizi, ingiza mstari unaofuata ambayo itahamisha marupurupu yote kwa mtumiaji mpya (kuanza kuandika vi, bonyeza i):

demo WOTE=(WOTE) WOTE

Ili kumaliza kuingiza maandishi, bonyeza Esc; kisha chapa:, wq, Ingiza ili kuhifadhi na kufunga faili.

5: Sanidi SSH (si lazima)

Sasa tunahitaji kulinda seva. Hii sehemu ya ziada itakuambia jinsi ya kulinda seva yako kwa kutatiza utaratibu wa uidhinishaji.

Fungua faili ya usanidi:

sudo vi /etc/ssh/sshd_config

Tafuta sehemu zifuatazo na ufanye mabadiliko ipasavyo:

Bandari 25000
Nambari ya PermitRootLogin

Bandari: Ingawa lango chaguo-msingi ni 22, unaweza kuibadilisha hadi nambari yoyote kati ya 1025 hadi 65536. Mwongozo huu unatumia mlango wa SSHD 25000. Tafadhali kumbuka: nambari mpya Bandari lazima ikumbukwe / iandikwe chini, kwani itahitajika kuingia kwenye seva kupitia SSH.

PermitRootLogin:Badilisha ndiyo kuwa hapana ili kuzima kuingia kwa mizizi. Sasa unaweza kuingia kwenye seva kwa kutumia mtumiaji mpya pekee.

Ili SSH hiyo itumie tu mtumiaji maalum, ongeza mstari huu chini ya hati (badilisha onyesho na jina lako la mtumiaji):

Onyesho la RuhusuWatumiaji

Kisha hifadhi mabadiliko yako na ufunge faili.

Anzisha tenaSSH

Ili kuamilisha mabadiliko yaliyofanywa, anzisha tena huduma ya SSHD:

sudo systemctl pakia tena sshd.service

Ili kujaribu mipangilio mipya (usitoke kwenye akaunti ya mizizi bado), fungua terminal na uingie kwenye seva kama mtumiaji mpya (kumbuka kuingiza anwani sahihi ya IP na bandari):

ssh -p 25000 demo @111.22.33.444

Arifa inapaswa kuonekana:

Tutakuonyesha usanidi wa hatua kwa hatua Firewall firewall katika CentOS 7

Firewall ni nini? Hii ni ngome kamili ambayo inapatikana kwa chaguo-msingi katika CentOS 7. Tutakuonyesha jinsi ya kuisanidi kwenye seva na pia kutambulisha zana ya firewall-cmd.

1. Je, ni dhana gani za msingi za firewall?

Kanda

Firewalld ina uwezo wa kudhibiti vikundi vya sheria kupitia kanda. Ni seti ya maagizo ya kudhibiti trafiki kulingana na uaminifu katika mitandao. Eneo linaweza kupewa kiolesura cha mtandao ili kudhibiti tabia ya ngome. Hii inaweza kuwa muhimu kwa sababu kompyuta za mkononi zinaweza kuunganishwa mara nyingi mitandao mbalimbali. Kompyuta inaweza kutumia kanda kubadilisha seti zao za sheria kulingana na mazingira yao. Kwa mfano, ukiunganisha kwenye Wi-Fi katika mkahawa, huenda ukahitaji kutumia miongozo kali zaidi. Lakini nyumbani sheria zinaweza kuwa mwaminifu zaidi.

Firewall ina kanda zifuatazo:

Kushuka kuna kiwango cha chini cha uaminifu kwenye mtandao. Katika kesi hii, viunganisho vinavyotoka tu vinasaidiwa, na trafiki inayoingia kuweka upya bila majibu;

Kizuizi kinatofautiana na kushuka kwa kuwa wakati ombi linaloingia limetupwa, ujumbe wa icmp-host-prohibited au icmp6-adm-prohibited hutolewa;

Eneo la umma ni mtandao wa umma ambao unaauni maombi yanayoingia kwa misingi ya mtu binafsi. Hata hivyo, hawezi kuaminiwa;

Nje ni eneo mitandao ya nje, inayounga mkono NAT kuiga kwa faragha mtandao wa ndani. Hata hivyo, inaweza kupatikana;

Upande wa nyuma wa nje ni wa ndani. Kompyuta katika ukanda huu zinaweza kuaminiwa, hivyo huduma za ziada zitapatikana;

Ukanda wa dmz unahitajika kwa kompyuta zilizotengwa ambazo hazina ufikiaji wa mtandao mwingine. Katika kesi hii, utaweza kusanidi miunganisho iliyochaguliwa inayoingia;

Eneo mtandao wa kazi- hii ni kazi. Ndani yake unaweza kuamini mazingira, lakini sio viunganisho vyote vinavyoingia vinasaidiwa, lakini ni wale tu waliofafanuliwa na mtumiaji;

Katika ukanda unaoaminika, unaweza kuamini kompyuta zote kwenye mtandao.

Sheria za kuokoa

Katika Firewalld ni ya muda au ya kudumu. Inatokea kwamba sheria inabadilika au inaonekana katika seti inayoathiri tabia ya firewall. Mabadiliko yatapotea baada ya kuwasha upya, kwa hivyo unahitaji kuyahifadhi. Amri za firewall-cmd hutumia bendera ya -permanent kudumisha sheria. Baada ya hayo utaweza kuzitumia msingi wa kudumu.

2. Jinsi ya kuwezesha Firewalld?

Inafaa kuanza na kuzindua ndani usuli programu za daemon. Faili ya kitengo cha mfumo inaitwa firewalld.service. Ili kuwezesha programu ya daemon, unahitaji kuandika kwenye mstari wa amri:

Sudo systemctl anzisha firewalld.service

Tunahitaji kuhakikisha kuwa huduma imeanza. Kwa hili utahitaji:

Firewall-cmd --state inaendeshwa

Firewall imeanza na inafanya kazi kulingana na maagizo ya msingi. Kumbuka kwamba huduma imewezeshwa, lakini haitaanza moja kwa moja na seva. Ili kufanya hivyo, utahitaji kusanidi autorun. Kwa kuongeza, fanya seti ya sheria ili usizuiwe kwenye seva yako mwenyewe.

3. Sheria chaguo-msingi za ngome

Ninawezaje kuzitazama?

Ili kutazama eneo chaguo-msingi, chapa:

Firewall-cmd --get-default-zone public

Tunaona kwamba Firewalld haikupokea maagizo kuhusu maeneo mengine. Umma hutumiwa kwa chaguo-msingi na ndio eneo pekee linalotumika, kwa sababu hakuna kiolesura kilichofungwa kwa zingine. Ikiwa unataka kuona orodha ya zote zinazopatikana kanda za kikoa, kisha taja kwenye koni:

Firewall-cmd --get-active-zones violesura vya umma: eth0 eth1

Tunaona miingiliano miwili ya mtandao iliyofungwa kwa eneo la umma. Wanafanya kazi kulingana na sheria zilizoainishwa kwa ukanda huu. Unaweza kuona sheria za msingi kwa kufanya:

Firewall-cmd --list-all public (chaguo-msingi, amilifu) interfaces: eth0 eth1 vyanzo: huduma: dhcpv6-teja ssh bandari: masquerade: hakuna bandari-mbele: icmp-blocks: sheria tajiri:

Hebu tufanye muhtasari:

Kanda chaguo-msingi na pekee inayotumika ni ya umma;

Njia mbili za kuingiliana zimepewa ukanda huu: eth0 na eth1;

Umma unaauni usimamizi wa SSH wa mbali pamoja na mgawo wa anwani ya IP ya DHSP.

Kanda zingine za firewall

Wacha tuone ni maeneo gani mengine ambayo firewall ina. Ili kuona orodha ya zote zinazopatikana, andika kwenye koni:

Unaweza pia kupata vigezo kwa kila eneo maalum kwa kuongeza -zone= bendera:

Firewall-cmd --zone=nyumbani --orodhesha-miingiliano yote ya nyumbani: vyanzo: huduma: dhcpv6-mteja wa ipp-client mdns bandari za ssh za mteja wa samba: kinyago: hakuna bandari za mbele: icmp-blocks: sheria tajiri:

Ikiwa unahitaji kuorodhesha ufafanuzi wa kanda zote zinazopatikana, tumia chaguo la --list-all-zones. Wacha tutume pato kwa paja ili iwe rahisi kutazama matokeo:

Firewall-cmd --orodhesha-kanda-zote | kidogo

4. Jinsi ya kusanidi kanda za interface?

Violesura vyote vya mtandao hapo awali vinahusishwa na eneo chaguo-msingi.

Kubadilisha eneo la kiolesura kwa kipindi kimoja tu

Kwa kusudi hili, tutahitaji chaguzi mbili: --change-interface= na --zone=. Ili kuhamisha hadi eneo la eth0 la nyumbani, piga:

Sudo firewall-cmd --zone=home --change-interface=eth0 mafanikio

Tafadhali kumbuka kuwa hii inaweza kuathiri utendakazi huduma fulani. Kwa mfano, SSH inasaidiwa katika ukanda wa nyumbani, i.e. miunganisho haitawekwa upya. Walakini, hii inaweza kutokea katika maeneo mengine, ambayo itasababisha kuzuia ufikiaji wa seva yako mwenyewe. Tunahitaji kuhakikisha kuwa kiolesura kimefungwa kwa eneo jipya. Andika kwenye mstari wa amri:

Wakati ngome imewashwa upya, kiolesura kitajifunga tena kwa eneo chaguo-msingi.

Sudo systemctl anzisha upya firewalld.service firewall-cmd --get-active-zones miingiliano ya umma: eth0 eth1

Kubadilisha eneo la kiolesura kwa msingi wa kudumu

Baada ya kuanzisha upya ngome, kiolesura kitawekwa tena kwa eneo chaguo-msingi ikiwa hakuna eneo lingine lililobainishwa katika mipangilio ya kiolesura. Mipangilio katika CentOS iko katika faili za umbizo la ifcfg-interface katika saraka ya /etc/sysconfig/network-scripts. Ili kufafanua eneo la kiolesura, unahitaji kufungua faili yake ya usanidi:

Sudo nano /etc/sysconfig/network-scripts/ifcfg-eth0

Wacha tuongeze ZONE= kutofautisha hadi mwisho wa faili. Wacha tuweke ukanda mwingine kama thamani:

DNS1=2001:4860:4860::8844 DNS2=2001:4860:4860::8888 DNS3=8.8.8.8 ZONE=nyumbani

Sasa hebu tuhifadhi mabadiliko, baada ya hapo faili inaweza kufungwa. Ili kusasisha mipangilio, utahitaji kuanzisha upya huduma ya mtandao, pamoja na firewall:

Sudo systemctl anzisha upya network.service sudo systemctl anzisha upya firewalld.service

Baada ya hayo, kiolesura cha eth0 kitapewa eneo la nyumbani.

Firewall-cmd --get-active-zones miingiliano ya nyumbani: miingiliano ya umma eth0: eth1

Kuweka Maeneo Chaguomsingi

Ukanda mwingine chaguo-msingi unaweza pia kuwekwa. Chaguo la --set-default-zone= litatusaidia na hili, kwani linaunganisha violesura vyote vya mtandao kwa ukanda mwingine.

Sudo firewall-cmd --set-default-zone=miingiliano ya nyumbani: eth0 eth1

5. Jinsi ya kufanya sheria kwa ajili ya maombi?

Kuongeza kwa eneo la huduma

Hii ni rahisi kufanya kwenye bandari inayotumiwa na firewall. Ili kuona huduma zote zinazopatikana, chapa kwenye mstari wa amri:

Firewall-cmd --get-services RH-Satellite-6 amanda-client bacula bacula-client dhcp dhcpv6 dhcpv6-client dns ftp upatikanaji wa juu http https imaps ipp ipp-client ipsec kerberos kpasswd ldap ldaps libvirt mbvirt mbvirt mbvirt wbt mysql nfs ntp openvpn pmcd pmproxy pmwebapi pmwebapis pop3s postgresql proksi-dhcp radius rpc-bind samba samba-mteja smtp ssh telnet tftp tftp-mteja usambazaji-mteja vnc-server wbem

Kumbuka kwamba faili za .xml katika saraka ya /usr/lib/firewalld/services huhifadhi taarifa zote kuhusu kila huduma. Maelezo kuhusu SSH yanaweza kupatikana katika /usr/lib/firewalld/services/ssh.xml. Wanaonekana kama hii:

Ili kuwezesha usaidizi wa huduma katika kanda, unahitaji -add-service= bendera, lakini -zone chaguo ni muhimu kwa kubainisha eneo lengwa. Tafadhali kumbuka kuwa mabadiliko kama haya yatatumika kwa kipindi kimoja pekee. Ikiwa unahitaji kuhifadhi mabadiliko kwa matumizi ya baadaye, tumia -bendera ya kudumu. Hebu tuone jinsi inavyofanya kazi. Wacha tuanzishe seva ya wavuti ili iweze kuhudumia trafiki ya HTTP. Wacha tuwashe usaidizi kwa kipindi kimoja katika eneo la umma. Andika kwenye console:

Sudo firewall-cmd --zone=public --add-service=http

Usitumie -zone= chaguo ikiwa unaongeza huduma kwenye eneo chaguo-msingi. Wacha tuangalie ikiwa kila kitu kilifanya kazi:

Firewall-cmd --zone=public --list-services dhcpv6-client http ssh

Sasa tunahitaji kupima firewall na huduma yenyewe. Ikiwa utaona kuwa kila kitu kiko sawa, unaweza kubadilisha kwa usalama seti ya kudumu ya sheria. Ili kuongeza sheria ya usaidizi kwa huduma mpya, unahitaji kutaja kwenye koni:

Sudo firewall-cmd --zone=public --permanent --add-service=http

Ikiwa unahitaji kuona orodha nzima ya sheria ambazo zinatumika kwa msingi unaoendelea, basi:

Sudo firewall-cmd --zone=public --permanent --list-services dhcpv6-client http ssh

Kwa hivyo, eneo la umma litasaidia bandari 80 na HTTP. Ikiwa seva yako ina uwezo wa kuhudumia trafiki ya SSL/TLS, unaweza kuongeza huduma ya HTTPS:

Sudo firewall-cmd --zone=public --add-service=https sudo firewall-cmd --zone=public --permanent --add-service=https

6. Je, ikiwa huduma haipatikani?

Kwa chaguo-msingi, Firewall inajumuisha huduma nyingi maarufu. Lakini hutokea kwamba programu zinahitaji huduma nyingine ambazo hazijumuishwa kwenye firewall. Tatizo hili inaweza kutatuliwa kwa njia kadhaa.

Njia #1: Kufafanua huduma

Kuongeza bandari kwenye eneo ni rahisi sana. Walakini, ikiwa kuna programu nyingi, itakuwa ngumu kuelewa ni bandari gani inayotumia nini. Katika hali kama hiyo suluhisho nzuri kutakuwa na ufafanuzi wa huduma badala ya bandari. Kimsingi, huduma ni kundi la bandari ambazo zimepewa jina na maelezo. Kwa msaada wao, itakuwa rahisi kusimamia mipangilio. Lakini huduma ni ngumu zaidi kuliko bandari.

Wacha tuanze kwa kunakili hati iliyopo kutoka kwa /usr/lib/firewalld/services folda, ambayo firewall inachukua mipangilio isiyo ya kawaida katika /etc/firewalld/services. Hebu kunakili ufafanuzi wa huduma SSH kuitumia kama mfano wa ufafanuzi wa huduma ya masharti. Usisahau kwamba jina la hati lazima lilingane na jina la huduma, na pia liwe na kiendelezi cha faili cha .xml. Andika kwenye console:

Sudo cp /usr/lib/firewalld/services/service.xml /etc/firewalld/services/example.xml

Sasa unahitaji kufanya mabadiliko kwenye faili iliyokusanywa:

Sudo nano /etc/firewalld/services/example.xml

Ndani yake kuna ufafanuzi wa SSH:

SSH Secure Shell (SSH) ni itifaki ya kuingia na kutekeleza amri kwenye mashine za mbali. Inatoa mawasiliano salama yaliyosimbwa. Ikiwa unapanga kufikia mashine yako ukiwa mbali kupitia SSH kupitia kiolesura chenye ngome, washa chaguo hili. Unahitaji kifurushi cha openssh-server kilichosakinishwa ili chaguo hili liwe muhimu.

Sasa hebu tuhifadhi mabadiliko na tufunge faili. Baada ya hayo, utahitaji kuanzisha upya firewall kwa kutumia:

Sudo firewall-cmd --reload

Yetu itaonekana kwenye orodha ya huduma zinazopatikana:

Firewall-cmd --get-services RH-Satellite-6 amanda-client bacula bacula-client dhcp dhcpv6 dhcpv6-mteja dns mfano ftp upatikanaji wa juu http https imaps ipp ipp-client ipsec kerberos kpasswd ldap ldaps-tluds mbvirt mbvirt -wbt mysql nfs ntp openvpn pmcd pmproxy pmwebapi pmwebapis pop3s postgresql proksi-dhcp radius rpc-bind samba samba-mteja smtp ssh telnet tftp tftp-mteja maambukizi-mteja vnc-seva

Njia ya 2: Kuunda bandari

Hebu tufungue bandari ya maombi katika ukanda wa firewall unaohitajika na uelezee, pamoja na itifaki. Hebu fikiria hali ambapo unahitaji kuongeza programu kwa kutumia itifaki ya TCP na bandari 5000 kwenye eneo la umma Ili kuamilisha usaidizi wa programu kwa kipindi kimoja, utahitaji -add-port= chaguo. Kwa kuongeza, lazima uonyeshe itifaki ya tcp au udp:

Sudo firewall-cmd --zone=public --add-port=5000/tcp

Wacha tuhakikishe kuwa kila kitu kilifanya kazi:

Firewall-cmd --list-ports 5000/tcp

Kwa kuongeza, inawezekana kutaja bandari mbalimbali kwa kutumia dashi. Kwa mfano, ikiwa programu hutumia bandari 4990-4999, basi unaweza kuziongeza kwenye eneo la umma kwa:

Sudo firewall-cmd --zone=public --add-port=4990-4999/udp

Ikiwa kila kitu kitafanya kazi vizuri, ongeza maagizo kwenye mipangilio ya firewall:

Sudo firewall-cmd --zone=public --permanent --add-port=5000/tcp sudo firewall-cmd --zone=public --permanent --add-port=4990-4999/udp sudo firewall-cmd -- zone=public --permanent --list-ports mafanikio mafanikio 4990-4999/udp 5000/tcp

7. Jinsi ya kuunda kanda?

Firewall ina uwezo wa kutoa maeneo mbalimbali yaliyofafanuliwa, ambayo kawaida yanatosha kufanya kazi, lakini wakati mwingine unahitaji kuunda eneo lako maalum. Kwa mfano, Seva ya DNS unahitaji eneo la kibinafsi laDNS, na eneo la wavuti ya umma kwa seva ya wavuti. Baada ya kuunda kanda, unahitaji kuiongeza kwenye mipangilio yako ya ngome. Wacha tuunde wavuti ya umma na maeneo ya kibinafsi yaDNS kwa kuandika kwenye koni:

Sudo firewall-cmd --permanent --new-zone=publicweb sudo firewall-cmd --permanent --new-zone=privateDNS

Wacha tuangalie ikiwa kila kitu kilifanya kazi:

Sudo firewall-cmd --permanent --get-zones zuia dmz dondosha nyumba ya ndani ya kibinafsiDNS kazi inayoaminika ya umma ya wavuti

Firewall-cmd --get-zones block dmz dondosha kazi ya ndani ya nyumba inayoaminika ya umma

Hata hivyo, maeneo mapya hayatapatikana katika kipindi cha sasa:

Firewall-cmd --get-zones block dmz dondosha kazi ya ndani ya nyumba inayoaminika ya umma

Wacha tuwashe tena ngome ili kupata ufikiaji wa maeneo mapya:

Sudo firewall-cmd --reload firewall-cmd --get-zones zuia dmz dondosha nyumba ya nje ya ndani ya kibinafsiDNS kazi ya kuaminika ya mtandao wa umma

Sasa itawezekana kwa kanda mpya kufafanua bandari na huduma. Wacha tuseme kuna haja ya kuongeza SSH, HTTP na HTTPS kwenye eneo la wavuti:

Sudo firewall-cmd --zone=publicweb --add-service=ssh sudo firewall-cmd --zone=publicweb --add-service=http sudo firewall-cmd --zone=publicweb --add-service=https firewall- cmd --zone=publicweb --list-all publicweb interfaces: sources: services: http https ssh ports: masquerade: hakuna bandari-mbele: icmp-blocks: sheria tajiri:

Kwa kuongeza, unaweza kuongeza DNS kwenye eneo la kibinafsi laDNS kwa kutumia:

Sudo firewall-cmd --zone=privateDNS --add-service=dns firewall-cmd --zone=privateDNS --list-all privateDNS interfaces: sources: services: dns ports: masquerade: no forward-ports: icmp-blocks: sheria tajiri:

Baada ya hayo, unaweza kugawa miingiliano ya mtandao kwa maeneo mapya kwa usalama:

Sudo firewall-cmd --zone=publicweb --change-interface=eth0 sudo firewall-cmd --zone=privateDNS --change-interface=eth1

Angalia ikiwa mipangilio inafanya kazi. Ikiwa kila kitu kiko sawa, waongeze kwa sheria za kudumu:

Sudo firewall-cmd --zone=publicweb --permanent --add-service=ssh sudo firewall-cmd --zone=publicweb --permanent --add-service=http sudo firewall-cmd --zone=publicweb --permanent --add-service=https sudo firewall-cmd --zone=privateDNS --permanent --add-service=dns

Sasa hebu tuendelee kusanidi violesura vya mtandao. Hii ni muhimu ili kutekeleza uunganisho wa moja kwa moja Kwa eneo linalohitajika. Wacha tuseme unahitaji kujifunga kwa publicweb eth0, basi:

Sudo nano /etc/sysconfig/network-scripts/ifcfg-eth0 . . . IPV6_AUTOCONF=hakuna DNS1=2001:4860:4860::8844 DNS2=2001:4860:4860::8888 DNS3=8.8.8.8 ZONE=mtandao wa umma

Wacha pia tufunge eht1 kwa privateDNS kwa kutumia:

Sudo nano /etc/sysconfig/network-scripts/ifcfg-eth1 . . . NETMASK=255.255.0.0 DEFOUTE="hapana" NM_CONTROLLED="ndiyo" ZONE=privateDNS

Ili mabadiliko yaanze kutumika, utahitaji kuanzisha upya ngome na huduma za mtandao:

Sudo systemctl anzisha upya mtandao sudo systemctl anzisha upya firewalld

Unahitaji kuangalia maeneo ili kuhakikisha kuwa huduma zimesajiliwa:

Firewall-cmd --get-active-zones miingiliano ya faragha yaDNS: miingiliano ya mtandao wa umma eth1: eth0

Sasa tunahitaji kuangalia ikiwa zinafanya kazi:

Firewall-cmd --zone=publicweb --list-services http htpps ssh firewall-cmd --zone=privateDNS --list-services dns

Kama tunavyoona, maeneo ya watumiaji yako tayari kwa kazi. Yoyote kati yao inaweza kupewa kama chaguo-msingi. Kwa mfano:

Sudo firewall-cmd --set-default-zone=publicweb

8. Ninawezaje kufanya ngome ianze kiotomatiki?

Baada ya kuangalia sheria na mipangilio yote, tutasanidi autorun kwa kutumia:

Sudo systemctl kuwezesha firewalld

Hii itafanya iwezekanavyo kuwezesha firewall mara baada ya kuanzisha seva.

Kama hitimisho, inafaa kuzingatia kuwa firewall ya Firewall ni sawa chombo rahisi kwa suala la mipangilio. Na unaweza kubadilisha sera ya uendeshaji wake kwa kutumia kanda.

Centos 7, tofauti na CentOS 6, inakuja na ngome mpya kwenye hifadhidata - firewalld. Inaweza kuzimwa na kubadilishwa na iptables nzuri za zamani, lakini ikiwa hakuna mahitaji ya moja kwa moja kwa hili, basi ni bora kuzoea kitu kipya badala ya kutegemea zamani. Hii haimaanishi Windows 10 bora kuliko Windows 7, na Windows XP ni bora kuliko Windows 7;) Mfano mzuri juu ya mada hii - selinux. Ikiwa mwanzoni karibu kila mtu (pamoja na mimi) aliizima na hata kukemea kidogo, sasa karibu hakuna mtu anayeshauri, tu ikiwa wana hakika kuwa ni muhimu. Kinyume chake, wengi tayari wamezoea (au wanazoea) kutumia semanage. Hatutazima firewall mara moja, lakini hebu tujaribu jinsi inavyopendeza.

Firewalld sio firewall tofauti kimsingi. Hii ni nyongeza nyingine kwenye netfilter, kwa hivyo ikiwa una uzoefu na iptables, basi baada ya shida kidogo unaweza kuanza kutumia zana mpya kwa urahisi.

Kuanzisha na kusimamisha firewalld

Wacha tuangalie ikiwa firewalld inafanya kazi:

# systemctl hali firewalld

Kutakuwa na habari zaidi hapa. Ili kusema kwa ufupi ndio (inafanya kazi) au hapana, unaweza kufanya hivi:

# firewall-cmd --state
Kimbia

Sawa, inafanya kazi.

Kusimamisha firewall:

# systemctl simamisha firewalld

Marufuku ya kuanza kiotomatiki:

# systemctl zima firewalld

Anza firewall:

# systemctl anzisha firewalld

Kuwezesha kuanzisha otomatiki:

# systemctl wezesha firewalld

Kanda za Firewall

Firewalld hutumia sana dhana ya eneo. Orodha ya kanda zote halali kwa chaguo-msingi:

# firewall-cmd --get-zones
block dmz tone nje ya nyumba ya ndani ya kazi inayoaminika ya umma

Kusudi la kanda (kwa masharti, bila shaka):

  • kushuka - pakiti zote zinazoingia hutupwa (tone) bila majibu. Miunganisho inayotoka tu ndiyo inaruhusiwa.
  • kuzuia - miunganisho inayoingia imekataliwa (imekataliwa) na majibu ya icmp-host-marufuku (au icmp6-adm-marufuku). Miunganisho iliyoanzishwa na mfumo pekee ndiyo inaruhusiwa.
  • umma - ukanda chaguo-msingi. Kutoka kwa jina ni wazi kuwa eneo hili linalenga kufanya kazi ndani mitandao ya umma. Hatuamini mtandao huu na tunaruhusu miunganisho fulani inayoingia pekee.
  • nje - eneo la interface ya nje ya router (kinachojulikana kujifanya). Miunganisho inayoingia tu tunayofafanua ndiyo inayoruhusiwa.
  • dmz - eneo la DMZ, miunganisho fulani tu inayoingia inaruhusiwa.
  • kazi - eneo la mtandao wa kazi. Bado hatuamini mtu yeyote, lakini sio kama hapo awali :) Miunganisho fulani tu inayoingia inaruhusiwa.
  • nyumbani - eneo la nyumbani. Tunaamini mazingira, lakini miunganisho fulani tu inayoingia inaruhusiwa
  • ndani - eneo la ndani. Tunaamini mazingira, lakini miunganisho fulani tu inayoingia inaruhusiwa
  • kuaminiwa - kila kitu kinaruhusiwa.

Orodha ya kanda zote zinazotumika:

# firewall-cmd --get-active-zones
umma
miingiliano: enp1s0

Ndio, eneo la umma ambalo limeunganishwa kiolesura cha mtandao enp1so. Ifuatayo tutaongeza kwenye eneo la umma bandari mpya, ambayo sshd itaning'inia.

Kujua jina la kiolesura cha mtandao (kwa mfano, enp1s0), unaweza kujua ni eneo gani ni la:

# firewall-cmd --get-zone-of-interface=enp1s0
umma

Unaweza kujua ni miingiliano gani ni ya ukanda maalum:

# firewall-cmd --zone=public --list-interfaces
enp1s0

Mfano: kuruhusu ssh kwenye bandari isiyo ya kawaida

Wacha turuhusu ufikiaji wa seva kupitia ssh kwenye bandari 2234/tcp, na sio 22/tcp, kama ilivyo chaguo msingi. Njiani, wacha tuguse kidogo kwenye selinux.

Kwanza, hebu tuone kile kinachoruhusiwa kwa ujumla kwenye seva yetu:

# firewall-cmd --permanent --orodha-yote
umma (chaguo-msingi)
violesura:
vyanzo:
huduma: ssh dhcpv6-mteja
kinyago: hapana
bandari za mbele:
icmp-blocks:
sheria tajiri:

Situmii ipv6 bado, kwa hivyo nitaondoa moja inayolingana mara moja. sheria kutoka kwa firewall:

# firewall-cmd --permanent --zone=public --remove-service=dhcpv6-client

Wacha tuiruhusu kabisa (ili isipotee baada ya kuwasha tena) unganisho kwenye bandari 2234/tcp (tutapachika sshd juu yake):

# firewall-cmd --permanent --zone=public --add-port=2234/tcp

Wacha tupakie tena sheria:

# firewall-cmd --pakia upya

Hebu tuangalie:

# firewall-cmd --zone=public --list-ports
2234/tcp

Sawa, bandari imefunguliwa. Kuhariri usanidi wa sshd:

# nano /etc/ssh/sshd_config
...
bandari 2234
...

# systemctl anzisha tena sshd.service

Lakini SELinux, ambayo kwa matumaini haujaizima, haitakuruhusu kuunganishwa kwa ssh kwenye bandari isiyo ya kawaida (bandari 2234/tcp ya sshd sio ya kawaida). Unaweza kuruka hatua hii na uangalie jinsi ulinzi wa SELinux unavyofanya kazi, au unaweza kusanidi kila kitu mara moja:

# yum hutoa semanage
# yum install policycoreutils-python
# semanage port -a -t ssh_port_t -p tcp 2234

Sasa kila kitu kiko sawa. Tunaangalia muunganisho wa ssh kwenye bandari mpya. Ikiwa kila kitu kiko sawa, funga ufikiaji wa bandari 22:

# firewall-cmd --permanent --zone=public --remove-service=ssh
# firewall-cmd --pakia upya

Hebu tuone kilichotokea:

# firewall-cmd --orodhesha-yote
umma (chaguo-msingi, hai)
violesura:
vyanzo:
huduma:
bandari: 2234/tcp
kinyago: hapana
bandari za mbele:
icmp-blocks:
sheria tajiri:

Ni hayo tu.

Amri mbalimbali muhimu:

Washa hali ya kuzuia kwa pakiti zote zinazotoka na zinazoingia:

# firewall-cmd --hofu-imewashwa

Zima hali ya kuzuia kwa pakiti zote zinazotoka na zinazoingia:

# firewall-cmd --panic-off

Jua ikiwa hali ya kuzuia kwa pakiti zote zinazotoka na zinazoingia imewashwa:

# firewall-cmd --query-panic

Pakia upya sheria za firewall bila kupoteza miunganisho ya sasa:

# firewall-cmd --pakia upya

Pakia upya sheria za firewall na uweke upya miunganisho ya sasa(inapendekezwa tu ikiwa kuna shida):

# firewall-cmd --kamilisha-pakia upya

Ongeza kiolesura cha mtandao kwenye eneo:

# firewall-cmd --zone=public --add-interface=em1

Ongeza kiolesura cha mtandao kwenye eneo (itahifadhiwa baada ya kuwasha upya ngome):

# firewall-cmd --zone=public --permanent --add-interface=em1

Unaweza kubainisha katika usanidi wa ifcfg-enp1s0 ni eneo gani kiolesura hiki ni cha. Ili kufanya hivyo, ongeza ZONE=work kwenye faili /etc/sysconfig/network-scripts/ifcfg-enp1s0. Ikiwa kigezo cha ZONE hakijabainishwa, eneo chaguo-msingi litawekwa (parameta ya DefaultZone katika faili ya /etc/firewalld/firewalld.conf.

Ruhusu safu ya mlango:

# firewall-cmd --zone=public --add-port=5059-5061/udp

Kinyago (kinyago, aka nat, aka...):

Angalia hali:

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

Washa:

# firewall-cmd --zone=external --ongeza-masquerade

Ikumbukwe hapa kwamba unaweza kuwezesha kinyago kwa eneo la umma, kwa mfano.

Elekeza tena ujumbe unaoingia kwenye bandari 22 hadi kwa mwenyeji mwingine:

# firewall-cmd --zone=external --add-forward-port=port=22:proto=tcp:toaddr=192.168.1.23

Elekeza upya jumbe zinazoingia kwenye mlango wa 22 hadi kwa seva pangishi nyingine kwa kubadilisha mlango lengwa (kutoka 22 hadi 192.168.1.23:2055):

# firewall-cmd --zone=nje /
--add-forward-port=port=22:proto=tcp:toport=2055:toaddr=192.168.1.23

Nitaishia hapa, kwa sababu... kunaweza kuwa na idadi isiyo na kikomo ya mifano. Nitaongeza tu kwamba mimi binafsi sijaunda maoni yangu kikamilifu kuhusu uvumbuzi wa firewall, kwa sababu... Inachukua muda mrefu kuzoea syntax, na ikiwa kuna OS Linux tofauti katika zoo yako, basi katika nafasi ya kwanza kunaweza kuwa na matatizo na tabia. Lakini ujuzi wa firewalld utapanua upeo wako—mara nyingi zaidi, inafaa kujitahidi.

Sitaki firewall! Nirudishie iptables zangu za zamani!

Ikiwa bado unataka kurudi zamani na ubadilishe firewalld na iptables, basi sio ngumu kabisa kufanya:

Hapa si mahali pa wanaoanza:

# systemctl zima firewalld
# systemctl simamisha firewalld

Weka iptables nzuri za zamani:

# yum kusakinisha iptables-huduma

Fungua firewall:

# systemctl anza iptables
# systemctl anza ip6tables

Anzisha kiotomatiki wakati umewashwa:

# systemctl wezesha iptables
# systemctl wezesha ip6tables

Kuokoa sheria za iptables baada ya kuwasha upya:

# /sbin/iptables-save > /etc/sysconfig/iptables
# /sbin/ip6tables-save > /etc/sysconfig/ip6tables

Au njia ya zamani:

# iptables za huduma huhifadhi

Sheria za sasa ziko kwenye faili:
/etc/sysconfig/iptables
/etc/sysconfig/ip6tables

Kuanzisha upya iptables (kwa mfano, baada ya kufanya mabadiliko yoyote):

# systemctl anzisha upya iptables.service