Vsi operacijski sistemi, ki temeljijo na jedru Linuxa, imajo vgrajen požarni zid, ki spremlja in filtrira vhodni in izhodni promet na podlagi pravil, ki jih določi uporabnik ali platforma. V distribuciji CentOS 7 privzeto ta funkcija opravlja pripomoček iptables , ki deluje v vgrajenem požarnem zidu netfilterja. Včasih mora skrbnik sistema ali upravitelj omrežja prilagoditi delovanje te komponente s pisanjem ustreznih pravil. V današnjem članku bi radi govorili o osnovah konfiguracije iptablesa v omenjenem OS.
Vsebina
Orodje je na voljo za delo takoj po končani namestitvi CentOS 7, poleg tega pa boste morali namestiti tudi nekatere storitve, o katerih bomo razpravljali kasneje. V tej platformi je še eno vgrajeno orodje, ki izvaja funkcijo požarnega zidu FirewallD. Da bi se izognili konfliktom med nadaljnjim delom, priporočamo, da to komponento onemogočite. Za podrobnejša navodila o tej temi si oglejte našo drugo gradivo na naslednji povezavi.
Več podrobnosti: Onemogoči požarni zid v CentOS 7
Kot veste, lahko sistem uporablja IPv4 in IPv6. Danes se bomo osredotočili na primer IPv4, če pa želite konfigurirati drug protokol, boste morali uporabiti ip6tables namesto ukaza iptables v ukazni mizi .
Najprej dodajte dodatne komponente uporabnega orodja, ki so danes obravnavane v sistemu. Pomagali bodo pri postavljanju pravil in drugih parametrov. Nalaganje poteka iz uradnega skladišča, zato ne traja veliko časa.
sudo yum install iptables-services
je odgovoren za namestitev sudo yum install iptables-services
. Vnesite ga in pritisnite tipko Enter . sudo iptables --version
. Zdaj je operacijski sistem popolnoma pripravljen na nadaljnjo konfiguracijo požarnega zidu prek pripomočka iptables . Ponujamo vam, da se seznanite s konfiguracijo predmetov, začenši z upravljanjem storitev.
Upravljanje načina delovanja iptables je potrebno v primerih, ko morate preveriti učinek določenih pravil ali preprosto znova zagnati komponento. To naredite z vgrajenimi ukazi.
sudo service iptables stop
in pritisnite tipko Enter, da zaustavite storitve. sudo service iptables start
. Takšen ponovni zagon, zagon ali zaustavitev pripomočka je na voljo kadarkoli, ne pozabite pa, da vrnete samo vrnjeno vrednost, ko je ta v povpraševanju.
Kot smo že omenili, se požarni zid upravlja z ročnim ali samodejnim dodajanjem pravil. Nekatere dodatne aplikacije lahko na primer dostopajo do orodja s spreminjanjem določenih pravilnikov. Vendar pa se večina teh dejanj še vedno izvaja ročno. Seznam vseh trenutnih pravil je na voljo preko ukaza sudo iptables -L
.
V prikazanem rezultatu bodo prikazane informacije o treh verigah: »INPUT« , »OUTPUT« in »FORWARD« - vhodni, izhodni in terminski promet.
Stanje vseh verig lahko določite tako, da vtipkate sudo iptables -S
.
Če vam pravila, ki jih vidite, ne ustrezajo, jih preprosto odstranite. Celoten seznam je izbrisan tako: sudo iptables -F
. Po aktivaciji bodo pravila popolnoma izbrisana za vsa tri vezja.
Če je potrebno vplivati samo na politike iz ene verige, se vrstici doda dodatni argument:
sudo iptables -F INPUT
sudo iptables -F OUTPUT
sudo iptables -F FORWARD
Odsotnost vseh pravil pomeni, da nastavitve filtriranja prometa ne veljajo za nobeno od strank. Nato sistemski skrbnik že postavi nove parametre z isto konzolo, ukazom in različnimi argumenti.
Vsako vezje je konfigurirano posebej za sprejem ali blokiranje prometa. Z nastavitvijo določene vrednosti lahko zagotovite, da bo na primer ves vhodni promet blokiran. Če želite to narediti, mora biti ukaz sudo iptables --policy INPUT DROP
, kjer je INPUT ime vezja, in DROP je vrednost ponastavitve.
Točno isti parametri so nastavljeni za druge tokokroge, na primer, sudo iptables --policy OUTPUT DROP
. Če je potrebno nastaviti vrednost za sprejem prometa, se DROP spremeni v ACCEPT in sudo iptables --policy INPUT ACCEPT
.
Kot veste, vse omrežne aplikacije in procesi delujejo prek določenih vrat. Z blokiranjem ali omogočanjem določenih naslovov lahko nadzorujete dostop do vseh omrežnih ciljev. Analizirajmo posredovanje vrat z uporabo primera 80 . V "Terminalu" bo dovolj, da vnesete ukaz sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
, kjer je -A dodatek novega pravila, INPUT je indikacija vezja, -P je definicija protokola, v tem primeru TCP, in -dport je ciljno pristanišče.
Enak ukaz velja za vrata 22 , ki jih uporablja storitev SSH: sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
.
Če želite blokirati podana vrata, se uporabi niz točno iste vrste, samo na koncu se ACCEPT spremeni v DROP . Rezultat je, na primer, sudo iptables -A INPUT -p tcp --dport 2450 -j DROP
.
Vsa ta pravila so shranjena v konfiguracijski datoteki in si jih lahko ogledate kadarkoli. Ne pozabite, da se to izvede preko sudo iptables -L
. Če je treba IP naslov omrežja rešiti skupaj z vrati, se vrstica nekoliko spremeni - po dodanem TPC-ju in naslovu. sudo iptables -A INPUT -p tcp -s 12.12.12.12/32 --dport 22 -j ACCEPT
, kjer je 12.12.12.12/32 zahtevani naslov IP.
Blokiranje poteka po istem načelu in na koncu spremeni vrednost ACCEPT na DROP . Potem se izkaže, na primer, sudo iptables -A INPUT -p tcp -s 12.12.12.0/24 --dport 22 -j DROP
.
ICMP (Internet Control Message Protocol) je protokol, ki je del TCP / IP in se uporablja za pošiljanje sporočil o napakah in izrednih razmerah pri delu s prometom. Če na primer zahtevani strežnik ni na voljo, to orodje opravlja storitvene funkcije. Orodje iptables vam omogoča blokiranje prek požarnega zidu in to lahko storite z ukazom sudo iptables -A OUTPUT -p icmp --icmp-type 8 -j DROP
. Blokiralo bo zahteve vaših in vaših strežnikov.
Dohodne zahteve so blokirane nekoliko drugače. Nato morate vnesti sudo iptables -I INPUT -p icmp --icmp-type 8 -j DROP
. Po aktiviranju teh pravil se strežnik ne bo odzval na zahteve za ping.
Včasih so strežniki predmet DDoS napadov ali drugih nepooblaščenih dejanj vsiljivcev. Ustrezna konfiguracija požarnega zidu vam bo omogočila, da se zaščitite pred tovrstnimi hekerji. Za začetek priporočamo, da določite ta pravila:
iptables -A INPUT -p tcp --dport 80 -m limit --limit 20/minute --limit-burst 100 -j ACCEPT
, kjer --limit 20 / minute je omejitev pogostosti pozitivnih rezultatov. Mersko enoto lahko določite sami, na primer /second, /minute, /hour, /day
. --limit-burst number - omejitev števila paketov, ki jih želite prenesti. Vse vrednosti so določene individualno glede na nastavitve skrbnika. sudo iptables -N block-scan
. sudo iptables -A block-scan -p tcp —tcp-flags SYN,ACK,FIN,RST -m limit —limit 1/s -j RETURN
. sudo iptables -A block-scan -j DROP
. Izraz block-scan v teh primerih je ime uporabljenega vezja. Danes prikazane nastavitve so samo osnova dela v orodju za upravljanje požarnega zidu. V uradni dokumentaciji pripomočka boste našli opis vseh razpoložljivih argumentov in možnosti ter lahko konfigurirate požarni zid posebej za vaše zahteve. Zgoraj so bili upoštevani standardni varnostni predpisi, ki se najpogosteje uporabljajo in so v večini primerov zahtevani.