Linux-da hyzmatlara uzakdan girmegi üpjün etmek üçin Iptables firewall-y nädip gurmaly - 8-nji bölüm


Linux gaznasynyň kepillendiriş programmasy bilen tanyşdyrmak

1-nji bölümden - Bu LFCE ( Linux Foundation Sertifikatly Inerener ) seriýaly Iptables hakda, diwar diwarynyň nämedigini esasy düşündiriş berendigimizi ýatladarsyňyz: dolandyrmagyň mehanizmi tora girýän we çykýan paketler. Dolandyrmak diýmek bilen aslynda:

  1. Käbir paketleriň ulgamymyza girmegine ýa-da çykmagyna rugsat bermek ýa-da öňüni almak.
  2. Beýleki paketleri toruň bir nokadyndan beýlekisine ugratmak.

öňünden kesgitlenen ölçeglere esaslanýar.

Bu makalada esasy paket süzgüçini nädip amala aşyrmalydygyny we gorag diwaryny iptables bilen nädip sazlamalydygyny, firewall üçin ulanylýan ýerli ýadro moduly bolan netfilteriň öň tarapy.

Gorag diwarynyň giň mowzukdygyny we bu makalanyň bu barada bilmeli zatlaryň hemmesine düşünmek üçin giňişleýin gollanma däl-de, eýsem bu mowzugy has çuňňur öwrenmek üçin başlangyç nokatdygyny ýadyňyzdan çykarmaň. Şeýle-de bolsa, Linux-da gorag diwarynyň käbir ulanylyş ýagdaýlaryny öwrenenimizde, bu seriýanyň 10-njy bölümi -da täzeden gözden geçireris.

Gorag diwaryny ýolagçy uçarlarynyň gije-gündiziň dowamynda gelip, gidýän halkara howa menzili diýip pikir edip bilersiňiz. Bir adamyň pasportynyň güýji ýa-da gelip çykan ýurdy ýaly birnäçe şertlere esaslanyp, belli bir ýurda girmegine ýa-da gitmegine rugsat berilmezligi mümkin.

Şol bir wagtyň özünde, howa menziliniň işgärleri adamlara zerur bolan halatynda howa menziliniň bir ýerinden beýlekisine geçmegi tabşyryp bilerler, mysal üçin gümrük hyzmatlaryndan geçmeli bolanda.

Bu gollanmanyň galan döwründe howa menziliniň meňzeşligini tapyp bileris. Dowam edenimizde aşakdaky gatnaşyklary ýadyňyzdan çykarmaň:

  1. Adamlar=Paketler
  2. Firewall=Aeroport
  3. # 1 ýurt=Tor # 1
  4. 22urt=Tor # 2
  5. Howa menziliniň işgärleri tarapyndan ýerine ýetirilýän düzgünler=gorag diwary düzgünleri

Iptables - esaslar

Pes derejede, zynjyrlar ýa-da sözlemler boýunça toparlanan düzgünlere esaslanýan paketler bilen näme etmelidigini\ karar berýär . Bu zynjyrlar, bukjanyň kesgitlän kriteriýalaryna laýyk gelende haýsy çäreleri görmelidigini kesgitleýär.

“Iptables” tarapyndan edilen ilkinji çäre, paket bilen näme etmelidigiňizi kesgitlemekden ybarat bolar:

  1. Kabul ediň (torymyza girsin)?
  2. Ony ret ediň (biziň ulgamymyza girmeginiň öňüni alyň)?
  3. Iberiň (başga bir zynjyra)?

Bu guralyň näme üçin iptables diýilýändigi bilen gyzyklanýan bolsaňyz, bu zynjyrlaryň tablisalarda tertipleşdirilendigi sebäpli, süzgüç tablisasy iň gowy bilinýän we şol üç sany esasy zynjyry bilen paket süzgüçini amala aşyrmak üçin ulanylýar:

1. Giriş zynjyry ýerli programmalar üçin niýetlenen tora girýän paketleri dolandyrýar.

2. OUTPUT zynjyry daşardan iberilmeli ýerli ulgamda dörän paketleri seljermek üçin ulanylýar.

3. FORWARD zynjyry başga bir ýere ugrukdyrylmaly paketleri gaýtadan işleýär (marşrutizator ýaly).

Bu zynjyrlaryň her biri üçin paketler zynjyryň haýsydyr bir düzgünine laýyk gelmeýän bolsa, öňünden näme edilmelidigini kesgitleýän bir syýasat bar. Her zynjyr üçin döredilen düzgünleri we deslapky syýasaty aşakdaky buýrugy işledip görüp bilersiňiz:

# iptables -L

Bar bolan syýasatlar aşakdakylar:

  1. KABUL ED paketiň üstünden geçmäge mümkinçilik berýär. Zynjyryň düzgünlerine laýyk gelmeýän islendik paket tora girýär.
  2. DROP pack paketini ýuwaşlyk bilen taşlaýar. Zynjyryň haýsydyr bir düzgünine laýyk gelmeýän islendik paketiň tora girmeginiň öňüni alýar.
  3. REJECT pack paketden ýüz öwürýär we habarly habar berýär. Bu, esasanam, esasy syýasat hökmünde işlemeýär. Munuň ýerine, paket süzgüç düzgünlerini doldurmak üçin niýetlenendir.

Haýsy syýasaty durmuşa geçirjekdigiňizi kesgitlemek meselesine gezek gelende, ýokarda düşündirilişi ýaly her çemeleşmäniň peýdasy we zyýany göz öňünde tutuň - bir ölçegli laýyklygyň ýokdugyna üns beriň! - ähli çözgüt.

Gorag diwaryna düzgün goşmak üçin iptables buýrugyny aşakdaky ýaly ulanyň:

# iptables -A chain_name criteria -j target

nirede,

  1. -A Goşmak diýmekdir (häzirki düzgüni zynjyryň ujuna goşuň).
  2. zynjyr_name INPUT, OUTPUT ýa-da FORWARD.
  3. maksat bu ýagdaýda ulanyljak hereket ýa-da syýasat (ACCEPT, REJECT ýa-da DROP).
  4. ölçegler paketleriň gözden geçirilmeli şertler toplumydyr. Aşakdaky baýdaklaryň iň bolmanda birinden (has ähtimal) ybaratdyr. Wertikal çyzyk bilen bölünen ýaýlaryň içindäki opsiýalar biri-birine deňdir. Galanlary goşmaça wyklýuçatelleri aňladýar:

[--protocol | -p] protocol: specifies the protocol involved in a rule.
[--source-port | -sport] port:[port]: defines the port (or range of ports) where the packet originated.
[--destination-port | -dport] port:[port]: defines the port (or range of ports) to which the packet is destined.
[--source | -s] address[/mask]: represents the source address or network/mask.
[--destination | -d] address[/mask]: represents the destination address or network/mask.
[--state] state (preceded by -m state): manage packets depending on whether they are part of a state connection, where state can be NEW, ESTABLISHED, RELATED, or INVALID.
[--in-interface | -i] interface: specifies the input interface of the packet.
[--out-interface | -o] interface: the output interface.
[--jump | -j] target: what to do when the packet matches the rule.

Geliň, ilkinji ikisi üçin aşakdaky synag gurşawyny ulanyp, 3 sany nusgawy mysalda ýelimläliň:

Firewall: Debian Wheezy 7.5 
Hostname: dev2.gabrielcanepa.com
IP Address: 192.168.0.15
Source: CentOS 7 
Hostname: dev1.gabrielcanepa.com
IP Address: 192.168.0.17

Bu soňky mysal üçin

NFSv4 server and firewall: Debian Wheezy 7.5 
Hostname: debian
IP Address: 192.168.0.10
Source: Debian Wheezy 7.5 
Hostname: dev2.gabrielcanepa.com
IP Address: 192.168.0.15

Ilki bilen gorag diwarymyza giriş nokatlary üçin DROP syýasatyny kesgitläris. Icagny, icmp paketleri ýuwaşlyk bilen taşlanar.

# ping -c 3 192.168.0.15
# iptables -A INPUT --protocol icmp --in-interface eth0 -j DROP

REJECT bölegine geçmezden ozal, paketlerimiziň bu täze düzgün bilen synag ediljekdigine göz ýetirmek üçin INPUT zynjyryndan ähli düzgünleri çykararys:

# iptables -F INPUT
# iptables -A INPUT --protocol icmp --in-interface eth0 -j REJECT
# ping -c 3 192.168.0.15

Çykýan traffigi dolandyrýan wagtymyz OUTPUT zynjyry bilen iş salyşarys:

# iptables -A OUTPUT --protocol tcp --destination-port 22 --out-interface eth0 --jump REJECT

Her dürli traffik üçin 2049 we 111 portlaryny ýapmak üçin NFSv4 serwerinde/firewall-da aşakdaky buýruklary işlediň:

# iptables -F
# iptables -A INPUT -i eth0 -s 0/0 -p tcp --dport 2049 -j REJECT
# iptables -A INPUT -i eth0 -s 0/0 -p tcp --dport 111 -j REJECT

Indi şol portlary açalyň we nämeleriň bolýandygyny göreliň.

# iptables -A INPUT -i eth0 -s 0/0 -p tcp --dport 111 -j ACCEPT
# iptables -A INPUT -i eth0 -s 0/0 -p tcp --dport 2049 -j ACCEPT

Görşüňiz ýaly, traffigi açanymyzdan soň NFSv4 paýyny gurup bildik.

Öňki mysallarda Giriş we OUTPUT zynjyrlaryna düzgünleri nädip goşmalydygyny görkezdik. Olary öňünden kesgitlenen ýerde goýmak islesek, ýerine -I (baş harp i) wyklýuçatelini ulanmalydyrys.

Düzgünleriň biri-birine baha beriljekdigini we DROP ýa-da ACCEPT syýasaty gabat gelende baha bermegiň saklanjakdygyny (ýa-da bökjekdigini) ýadyňyzdan çykarmaly dälsiňiz. Şol sebäpli düzgünleri zerur bolanda zynjyr sanawynda ýokary ýa-da aşak süýşürmek zerurlygy ýüze çykyp biler.

Muny görkezmek üçin ownuk bir mysal ulanarys:

Aşakdaky düzgüni goýalyň,

# iptables -I INPUT 2 -p tcp --dport 80 -j ACCEPT

2-nji pozisiýada) INPUT zynjyrynda (şeýlelik bilen öňki # 2-ni # 3-e geçirýär)

Aboveokardaky gurnamany ulanyp, trafik 2049 portuny barlamazdan ozal 80 portuna gönükdirilendigini ýa-da ýokdugyny barlar.

Ativea-da bolmasa, bir düzgüni pozup, galan düzgünleriň nyşanyny REJECT edip üýtgedip bilersiňiz ( -R wyklýuçatelini ulanyp):

# iptables -D INPUT 1
# iptables -nL -v --line-numbers
# iptables -R INPUT 2 -i eth0 -s 0/0 -p tcp --dport 2049 -j REJECT
# iptables -R INPUT 1 -p tcp --dport 80 -j REJECT

Iň soňkusy, ýöne iň bolmanda, gorag diwarynyň düzgünleriniň yzygiderli bolmagy üçin olary bir faýlda ýatda saklamaly we ýüklenenden soň awtomatiki usulda dikeltmeli bolarsyňyz (islän usulyňyzy ýa-da başga birini ulanyp) paýlamak üçin elýeterlidir).

Gorag diwarynyň düzgünlerini tygşytlamak:

# iptables-save > /etc/iptables/rules.v4		[On Ubuntu]
# iptables-save > /etc/sysconfig/iptables		[On CentOS / OpenSUSE]

Düzgünleri dikeltmek:

# iptables-restore < /etc/iptables/rules.v4		[On Ubuntu]
# iptables-restore < /etc/sysconfig/iptables		[On CentOS / OpenSUSE]

Bu ýerde, ýokarda görkezilişi ýaly deslapky ýerine derek iptables.dump atly bir faýl ulanyp, şuňa meňzeş prosedurany (el bilen diwar gorag düzgünlerini tygşytlamak we dikeltmek) görüp bileris.

# iptables-save > iptables.dump

Bu üýtgeşmeleri aýakgaplaryň arasynda dowam etdirmek üçin:

Ubuntu : /etc/iptables/rules.v4 faýlynda saklanylýan düzgünleri ýüklän iptables-dowamly paketini guruň.

# apt-get install iptables-persistent

CentOS : /etc/sysconfig/iptables-config faýlyna aşakdaky 2 setiri goşuň.

IPTABLES_SAVE_ON_STOP="yes"
IPTABLES_SAVE_ON_RESTART="yes"

OpenSUSE : /etc/sysconfig/SuSEfirewall2 daky portlara, protokollara, salgylara we ş.m.

Has giňişleýin maglumat üçin gaty düşündirişli faýlyň özüne serediň.

Netije

Bu makalada getirilen mysallar, iptables-iň ähli jaňlaryny we jyňňyrdatmalaryny öz içine almasa-da, gelýän ýa-da çykýan traffigi nädip işletmelidigini we öçürmelidigini görkezmek maksady bilen hyzmat edýär.

Gorag diwary muşdaklary bolanlar üçin bu LFCE seriýasynyň 10-njy bölümi has anyk programmalar bilen bu mowzugy täzeden gözden geçirjekdigimizi ýadyňyzdan çykarmaň.

Soraglaryňyz ýa-da teswirleriňiz bar bolsa maňa habar beriň.