Võrguliikluse haldamine on üks raskemaid töid, millega süsteemiadministraatorid peavad tegelema. Ta peab tulemüüri konfigureerida selliselt, et see vastaks süsteemi ja kasutajate nõuetele nii sissetulevate kui ka väljaminevate ühenduste osas, jätmata süsteemi rünnakute suhtes haavatavaks.
See on koht, kus iptables
tuleb kasuks. Iptables on Linuxi käsurea tulemüür, mis võimaldab süsteemiadministraatoritel hallata sissetulevat ja väljaminevat liiklust konfigureeritavate tabelireeglite komplekti kaudu.
Iptables kasutab tabelite komplekti, mis sisaldavad ahelaid, mis sisaldavad sisseehitatud või kasutaja määratud reegleid. Tänu neile saab süsteemiadministraator oma süsteemi võrguliiklust korralikult filtreerida.
Iptablesi juhendi järgi on praegu kolme tüüpi tabeleid:
FILTER
- see on vaiketabel, mis sisaldab sisseehitatud ahelaid: NAT
- tabel, mida vaadatakse, kui pakett üritab uut ühendust luua. Sellel on sisseehitatud järgmine: MANGLE
- seda tabelit kasutatakse pakettide muutmiseks. Kuni kerneli versioonini 2.4 sellel tabelil oli ainult kaks ahelat, kuid neid on nüüd 5: Selles artiklis näete mõningaid kasulikke käske, mis aitavad teil Linuxi kasti tulemüüri iptables kaudu hallata. Selle artikli eesmärgil alustan lihtsamate käskudega ja lähen lõpuni keerukamate juurde.
Esiteks peaksite teadma, kuidas hallata iptablesi teenust erinevates Linuxi distributsioonides. See on üsna lihtne:
Cent/RHEL 7 ja Fedora 22+ # systemctl käivitage iptables. # systemctl peata iptables. # systemctl taaskäivitage iptables.
Cent/RHEL 6/5 ja Fedora kohta # /etc/init.d/iptables start # /etc/init.d/iptables stop. # /etc/init.d/iptables taaskäivitage.
Kui soovite oma olemasolevaid reegleid kontrollida, kasutage järgmist käsku:
# iptables -L -n -v.
See peaks tagastama väljundi, mis sarnaneb järgmisega:
Ahela sisend (poliitika ACCEPT 1129K paketti, 415 miljonit baiti) pk baiti sihtmärk prot opt in out source source 0 0 ACCEPT tcp - lxcbr0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt: 53 0 0 ACCEPT udp - lxcbr0 * 0.0.0.0/0 0.0.0.0/0 udp dpt: 53 0 0 ACCEPT tcp - lxcbr0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt: 67 0 0 ACCEPT udp - lxcbr0 * 0.0.0.0/0 0.0.0.0/0 udp dpt: 67
Ahel EDASI (poliitika ACCEPT 0 paketti, 0 baiti) pk baiti sihtmärk prot opt in out allika sihtkoht 0 0 ACCEPT all - * lxcbr0 0.0.0.0/0 0.0.0.0/0 0 0 ACCEPT all - lxcbr0 * 0.0.0.0/ 0 0,0,0,0/0
Keti väljund (poliitika ACCEPT 354K paketti, 185 miljonit baiti) pk baiti sihtmärk prot opt in out source source
Kui eelistate konkreetse tabeli reegleid kontrollida, võite kasutada -t
valik, millele järgneb tabel, mida soovite kontrollida. Näiteks reeglite kontrollimiseks jaotises NAT
tabelit, saate kasutada:
# iptables -t nat -L -v -n.
Kui leiate IP -aadressilt ebatavalise või kuritahtliku tegevuse, saate selle IP -aadressi blokeerida järgmise reegliga.
# iptables -A INPUT -s xxx.xxx.xxx.xxx -j DROP.
Kus peate muutma "xxx.xxx.xxx.xxx"
tegeliku IP -aadressiga. Olge selle käsu täitmisel väga ettevaatlik, kuna võite kogemata oma IP -aadressi blokeerida. -A
suvand lisab reegli valitud ahela lõppu.
Juhul, kui soovite ainult blokeerida TCP liiklust sellelt IP -aadressilt, saate kasutada -lk
suvand, mis määrab protokolli. Nii näeb käsk välja selline:
# iptables -A INPUT -p tcp -s xxx.xxx.xxx.xxx -j DROP.
Kui olete otsustanud, et te ei soovi enam konkreetse IP -aadressi päringuid blokeerida, saate blokeerimisreegli kustutada järgmise käsuga:
# iptables -D INPUT -s xxx.xxx.xxx.xxx -j DROP.
-D
valik kustutab valitud ahelast ühe või mitu reeglit. Kui eelistate kasutada pikemat valikut, saate seda kasutada -kustutada
.
Mõnikord võiksite blokeerida teatud porti sissetulevad või väljaminevad ühendused. See on hea turvameede ja tulemüüri seadistamisel peaksite sellele tõsiselt mõtlema.
Väljuvate ühenduste blokeerimiseks teatud pordis kasutage järgmist.
# iptables -A VÄLJUND -p tcp --port xxx -j DROP.
Sissetulevate ühenduste lubamiseks kasutage järgmist.
# iptables -A INPUT -p tcp --port xxx -j ACCEPT.
Mõlemad näited muutuvad "xxx"
tegeliku sadamaga, mida soovite lubada. Kui soovite blokeerida UDP liikluse asemel TCP, lihtsalt muuta "tcp"
koos "udp"
ülaltoodud iptable'i reeglis.
Kasutades saate lubada korraga mitu porti mitmeport, allpool leiate sellise reegli nii sissetulevate kui ka väljaminevate ühenduste jaoks:
# iptables -A INPUT -p tcp -m multiport --port 22,80,443 -j ACCEPT. # iptables -A OUTPUT -p tcp -m multiport --sport 22,80,443 -j ACCEPT.
Võib -olla soovite piirata teatud ühendused teatud pordis antud võrguga. Oletame, et soovite lubada väljuvad ühendused pordis 22
võrku 192.168.100.0/24
.
Seda saate teha selle käsuga:
# iptables -A VÄLJUND -p tcp -d 192.168.100.0/24 --port 22 -j ACCEPT.
Mõnele tööandjale meeldib juurdepääs blokeerida Facebook oma töötajatele. Allpool on näide, kuidas Facebooki liiklust blokeerida.
Märge: Kui olete süsteemiadministraator ja peate neid reegleid rakendama, pidage meeles, et teie kolleegid võivad teiega rääkimise lõpetada :)
Esmalt leidke Facebooki kasutatavad IP -aadressid:
# hosti facebook.com facebook.com aadress on 66.220.156.68.
# whois 66.220.156.68 | grep CIDR. CIDR: 66.220.144.0/20.
Seejärel saate selle Facebooki võrgu blokeerida:
# iptables -A VÄLJUND -p tcp -d 66.220.144.0/20 -j DROP.
Pidage meeles, et Facebooki kasutatav IP -aadresside vahemik võib teie riigis erineda.
Mõnikord võiksite ühe teenuse liikluse suunata teise sadamasse. Seda saate saavutada järgmise käsuga:
# iptables -t nat -A PREROUTING -i eth0 -p tcp --port 25 -j REDIRECT -porti 2525.
Ülaltoodud käsk edastab kogu sissetuleva liikluse võrguliidesesse eth0
, sadamast 25
sadamasse 2525
. Võite muuta pordid vajalikega.
Mõnikord võivad IP -aadressid nõuda liiga palju ühendusi teie veebisaidi veebiportidega. See võib põhjustada mitmeid probleeme ja selliste probleemide vältimiseks võite kasutada järgmist reeglit.
# iptables -A INPUT -p tcp --port 80 -m limit -limit 100/min -limit -burst 200 -j ACCEPT.
Ülaltoodud käsk piirab sissetulevaid ühendusi minutist kuni 100
ja seab piiripurske 200
. Piiranguid ja piiranguid saate muuta vastavalt oma erinõuetele.
Mõnele süsteemihaldurile meeldib turvalisuse tõttu sissetulevad pingitaotlused blokeerida. Kuigi oht pole nii suur, on hea teada, kuidas selline taotlus blokeerida:
# iptables -A INPUT -p icmp -i eth0 -j DROP.
Loopback juurdepääs (juurdepääs 127.0.0.1
) on oluline ja peaksite selle alati aktiivseks jätma:
# iptables -A INPUT -i lo -j ACCEPT. # iptables -A VÄLJUND -o lo -j ACCEPT.
Kui soovite kaotatud pakette võrguliidesesse logida eth0
, saate kasutada järgmist käsku:
# iptables -A INPUT -i eth0 -j LOG --log -prefiks "IPtable kukutas paketid:"
Pärast seda saate väärtust muuta "-logi eesliide"
millegagi teie valikul. Sõnumid on sisse logitud /var/log/messages
ja saate neid otsida järgmiselt:
# grep "IPtable kukutas paketid:"/var/log/messages.
Saate blokeerida juurdepääsu oma süsteemile teatud MAC -aadressilt, kasutades järgmist.
# iptables -A INPUT -m mac --mac -source 00: 00: 00: 00: 00: 00 -j DROP.
Loomulikult peate muutma "00:00:00:00:00:00"
tegeliku MAC -aadressiga, mille soovite blokeerida.
Kui te ei soovi, et antud pordi ühest IP -aadressist luuakse liiga palju samaaegset ühendust, võite kasutada järgmist käsku:
# iptables -A INPUT -p tcp --syn --port 22 -m connlimit --connlimit -above 3 -j REJECT.
Ülaltoodud käsk lubab mitte rohkem kui 3
ühendused kliendi kohta. Loomulikult saate muuta pordi numbrit, et see vastaks erinevatele teenustele. Samuti --piirang-eespool
tuleks muuta vastavalt teie vajadustele.
Kui olete oma iptable'i reeglid määratlenud, soovite aeg -ajalt otsida ja võib -olla peate neid muutma. Lihtne viis oma reeglite piires otsida on kasutada järgmist.
# iptables -L $ tabel -v -n | grep $ string.
Ülaltoodud näites peate muutma $ tabel
tegeliku tabeliga, kust soovite otsida ja $ string
tegeliku stringiga, mille jaoks te otsite.
Siin on näide:
# iptables -L INPUT -v -n | grep 192.168.0.100.
Iptablesiga saate määratleda oma keti ja salvestada sellesse kohandatud reegleid. Keti määratlemiseks kasutage:
# iptables -N kohandatud filter.
Nüüd saate kontrollida, kas teie uus filter on olemas:
# iptables -L.
Ahela sisend (eeskirjade aktsepteerimine) sihtmärk prot opt allika sihtkoht.
Ahel EDASI (poliitika VÕTA) sihtmärk prot opt allika sihtkoht
Ahela väljund (eeskirjade aktsepteerimine) sihtmärk prot opt allika sihtkoht
Kett kohandatud filter(0 viidet) sihtmärk prot opt allika sihtkoht
Kui soovite oma tulemüüri ahelaid loputada, saate kasutada järgmist.
# iptables -F.
Konkreetse tabeli ketid saate loputada järgmiselt:
# iptables -t nat -F.
Saate muuta "nat"
tegeliku tabeliga, milliseid kette soovite loputada.
Kui soovite oma tulemüüri reeglid salvestada, võite kasutada iptables-save
käsk. Reeglite faili salvestamiseks ja salvestamiseks võite kasutada järgmist.
# iptables-save> ~/iptables.rules.
Teie otsustada, kuhu faili salvestate ja kuidas seda nimetate.
Kui soovite taastada iptable'i reeglite loendi, saate seda kasutada iptables-restore
. Käsk näeb välja selline:
# iptables-restoreMuidugi võib reeglifaili tee olla erinev.
21. Seadistage IPtable'i reeglid PCI ühilduvuse jaoks
Mõnel süsteemiadministraatoril võib olla vaja konfigureerida oma serverid PCI -ühilduvaks. Erinevate PCI -vastavusmüüjate nõuded on palju, kuid levinumaid on vähe.
Paljudel juhtudel peab teil olema mitu IP -aadressi. Saidi IP -aadressi jaoks peate järgima järgmisi reegleid. Olge allolevate reeglite kasutamisel eriti ettevaatlik ja kasutage neid ainult siis, kui olete kindel, mida teete:
# iptables -I INPUT -d SITE -p tcp -m multiport --port 21,25,110,143,465,587,993,995 -j DROP.Kui kasutate cPaneli või sarnast juhtpaneeli, peate võib -olla blokeerima ka selle pordid. Siin on näide:
# iptables -I in_sg -d DEDI_IP -p tcp -m multiport --dports 2082,2083,2095,2096,2525,2086,2087 -j DROP.Märge: Veendumaks, et vastate oma PCI tarnija nõuetele, kontrollige hoolikalt nende aruannet ja rakendage nõutud reegleid. Mõnel juhul peate võib -olla blokeerima UDP -liikluse ka teatud sadamates.
22. Luba loodud ja seotud ühendused
Kuna võrguliiklus on sissetuleva ja väljamineva vahel eraldi, soovite lubada väljakujunenud ja sellega seotud sissetulevat liiklust. Sissetulevate ühenduste puhul tehke seda järgmiselt:
# iptables -A INPUT -m conntrack -osariik on loodud, seotud -j ACCEPT.Väljuvaks kasutamiseks:
# iptables -A VÄLJUND -m conntrack -riik OSALDATUD -j ACCEPT.23. Viska kehtetud paketid IPtabelisse
Mõni võrgupakett võib olla kehtetuks märgitud. Mõned inimesed võivad eelistada nende pakettide logimist, teised aga loobuda. Pakettide kehtetuks tunnistamiseks võite kasutada järgmist.
# iptables -A INPUT -m conntrack -riik INVALID -j DROP24. Blokeeri ühendus võrguliideses
Mõnel süsteemil võib olla rohkem kui üks võrguliides. Saate piirata juurdepääsu sellele võrguliidesele või blokeerida ühendused teatud IP -aadressilt.
Näiteks:
# iptables -A INPUT -i eth0 -s xxx.xxx.xxx.xxx -j DROP.Muuda "Xxx.xxx.xxx.xxx" tegeliku IP -aadressiga (või võrguga), mille soovite blokeerida.
25. Keelake väljaminevad kirjad IPTable'i kaudu
Kui teie süsteem ei peaks e -kirju saatma, saate SMTP -portide väljuvad pordid blokeerida. Näiteks saate seda kasutada:
# iptables -A VÄLJUND -p tcp --port 25,465,587 -j REJECT.Järeldus
Iptables on võimas tulemüür, millest saate hõlpsalt kasu. Iga süsteemiadministraatori jaoks on ülioluline õppida vähemalt iptable'i põhitõed. Kui soovite leida üksikasjalikumat teavet iptablesi ja selle valikute kohta, soovitame tungivalt lugeda selle kasutusjuhendit:
# mehe iptables.Kui arvate, et peaksime sellesse loendisse rohkem käske lisama, jagage neid meiega, esitades need allolevasse kommentaaride sektsiooni.