Šajā rokasgrāmatā tiks apspriests, kā konfigurēt un izmantot iptables kārtulas Ubuntu sistēmā, lai aizsargātu jūsu tīklu. Neatkarīgi no tā, vai esat iesācējs Linux lietotājs vai pieredzējis sistēmas administrators, no šīs rokasgrāmatas vienā vai otrā veidā uzzināsiet kaut ko noderīgu par iptables.
Iptables ir iepriekš instalēti Ubuntu un lielākajā daļā Debian balstīto izplatījumu. Ubuntu arī iesaiņo GUFW ugunsmūri, grafisku alternatīvu, kuru varat izmantot darbam ar iptables.
PIEZĪME: Lai izmantotu un konfigurētu iptables, jūsu sistēmā būs nepieciešamas sudo privilēģijas. Jūs varat uzzināt vairāk par sudo, izmantojot šo apmācību.
Tagad, kad jūs zināt, kas ir Iptables, ienirsim tieši tajā!
Kā izmantot iptables, lai pārvaldītu IPv4 trafiku?
Lai izmantotu Iptables IPv4 tīkla un trafika pārvaldībai, jums jāsaprot sekojošais:
Komanda Iptables
Programma Iptables piedāvā iespēju izvēli, kas ļauj pielāgot un pielāgot jūsu iptables kārtulas. Apspriedīsim dažus no šiem parametriem un redzēsim, ko viņi dara.
PIEZĪME: Varat konfigurēt noteikumu kopumu, kas pārvalda noteiktu apakškopu, kas pazīstama kā iptables ķēdes.
Iptables parametri
Pirms sākam kārtot un konfigurēt iptables kārtulas, vispirms mums jāizprot iptables pamati, piemēram, vispārējā sintakse un noklusējuma argumenti.
Apsveriet tālāk norādīto komandu:
sudo iptables-I INPUT -s 192.168. lpp.0.24 -j piliensIepriekš minētā komanda liek iptables izveidot kārtulu ķēdē. Noteikums nomet visas paketes no IP adreses 192.168. lpp.0.24.
Pārbaudīsim komandu pa rindai, lai to labāk saprastu.
- Pirmā komanda iptables izsauc iptables komandrindas utilītu.
- Nākamais ir -I arguments, ko izmanto ievietošanai. Ievietošanas arguments pievieno kārtulu iptables ķēdes sākumā un tādējādi tiek piešķirta augstāka prioritāte. Lai pievienotu kārtulu pie konkrēta ķēdes numura, izmantojiet argumentu -I, kam seko skaitlis, kurā kārtulai jāpiešķir.
- Arguments -s palīdz norādīt avotu. Tādējādi mēs izmantojam argumentu -s, kam seko IP adrese.
- Parametrs -j ar iptables norāda lēcienu uz noteiktu mērķi. Šī opcija nosaka darbību, kuru Iptables veiks, tiklīdz būs atbilstoša pakete. Pēc noklusējuma Iptables piedāvā četrus galvenos mērķus, tostarp: ACCEPT, DROP, LOG un REJECT.
Programma Iptables piedāvā virkni parametru, kurus varat izmantot dažādu noteikumu konfigurēšanai. Dažādi parametri, kurus varat izmantot, lai konfigurētu iptables kārtulas, ietver:
Iptables kārtulas parametrs | Apraksts |
---|---|
-s avots | Norādiet avotu, kas var būt adrese, resursdatora nosaukums vai tīkla nosaukums. |
-p -protokols | Norāda savienojuma protokolu; piemēram, TCP, UDP utt. |
-d -mērķis | Norāda galamērķi, kas var būt adrese, tīkla nosaukums vai resursdatora nosaukums. |
-j -lēkt | Iestata darbību, kuru iptables veic pēc paketes atrašanas. |
-o-out-interfeiss | Iestata interfeisu, caur kuru iptable nosūta paketi. |
-i-saskarnē | Iestata interfeisu, ko izmanto tīkla pakešu izveidei. |
-c -set-skaitītāji | Ļauj administratoram iestatīt baitu un pakešu skaitītājus noteiktai kārtulai. |
-g -goto ķēde | Parametrs norāda, ka pēc atgriešanās apstrāde jāturpina lietotāja iestatītajā ķēdē. |
-f-fragments | Liek iptables lietot kārtulu tikai sadrumstaloto pakešu otrajam un nākamajiem fragmentiem. |
Iptables opcijas
Komanda iptables atbalsta plašas iespējas. Daži no tiem ir šādi:
Opcija | Apraksts |
---|---|
-A -pievienot | Norādītās ķēdes beigās pievieno kārtulu |
-D -dzēst | Noņem noteikumu no norādītās ķēdes |
-F -skalošana | Noņem visus noteikumus pa vienam |
-L-saraksts | Parāda visus noteikumus norādītajā ķēdē |
-Es -ievietoju | Ievieto kārtulu norādītajā ķēdē (nodota kā skaitlis, ja nav norādīts skaitlis; kārtula tiek pievienota augšpusē) |
-C -pārbaudiet | Vaicājumi par kārtulas atbilstību; prasība noteiktā noteikumā |
-v -verboze | Parāda sīkāku informāciju, ja to lieto ar parametru -L |
-N -jaunā ķēde | Pievieno jaunu lietotāja definētu ķēdi |
-X -dzēst-ķēdi | Noņem noteiktu lietotāja definētu ķēdi |
Iptables tabulas
Linux kodolā ir noklusējuma tabulas, kurās ievietots saistītu noteikumu kopums. Šīm noklusējuma tabulām ir noklusējuma ķēžu kopa, taču lietotāji var pielāgot kārtulas, pievienojot lietotāja definētas kārtulas.
PIEZĪME: Noklusējuma tabulas būs ļoti atkarīgas no jūsu kodola konfigurācijas un instalētajiem moduļiem.
Šeit ir noklusējuma iptables tabulas:
1: filtru tabulas
Filtrēšanas tabula ir noklusējuma tabula, kas satur tīkla pakešu filtrēšanai izmantotās ķēdes. Dažas no šīs tabulas noklusējuma ķēdēm ietver:
Ķēde | Apraksts |
---|---|
Ievade | Iptables izmanto šo ķēdi visām sistēmā ienākošajām paketēm, t.e., paketes, kas nonāk vietējā tīkla kontaktligzdās. |
Rezultāts | Iptables izmanto izejas ķēdi lokāli ģenerētām paketēm, t.e., pakešu iziešana no sistēmas. |
Uz priekšu | Šī ķēde ir tā, ko Iptables izmanto paketēm, kas tiek maršrutētas vai pārsūtītas caur sistēmu. |
2: NAT tabulas
NAT vai tīkla adrešu tabula ir maršrutēšanas ierīce, ko izmanto, lai modificētu avota un mērķa IP adreses tīkla paketē. NAT tabulas galvenais izmantojums ir divu privātā adrešu diapazona tīklu savienošana ar publisko tīklu.
NAT tika izstrādāts, lai atbalstītu reālu IP adrešu maskēšanu, ļaujot privātajiem IP adrešu diapazoniem sasniegt ārējo tīklu. Tas palīdz aizsargāt detalizētu informāciju par iekšējiem tīkliem no atklāšanas publiskajos tīklos.
NAT tabula tiek izmantota, kad pakete izveido jaunu savienojumu.
Iptables ir noklusējuma tabula NAT adresēšanai. Šajā tabulā ir trīs galvenās ķēdes:
Ķēde | Apraksts |
---|---|
PREROUTING | Ļauj modificēt pakešu informāciju pirms ienākšanas ķēdē INPUT, ko izmanto ienākošajām paketēm |
IZVADE | Rezervēts vietēji izveidotām paketēm, t.e., pirms notiek tīkla maršrutēšana |
POSTROTĒŠANA | Ļauj modificēt izejošās paketes - paketes, kas atstāj OUTPUT ķēdi |
Zemāk redzamā diagramma parāda šī procesa augsta līmeņa pārskatu.
Izmantojiet zemāk esošo komandu, lai skatītu NAT maršrutēšanas tabulas.
iptables -t nat -n -v -L3: Mangle tabulas
Mangle tabula galvenokārt tiek izmantota pakešu īpašai pārveidošanai. Vienkārši sakot, to izmanto, lai modificētu tīkla paketes IP galvenes. Pakešu modifikācija var ietvert pakešu TTL vērtības mainīšanu, derīgu tīkla apiņu maiņu pakešām utt.
Tabulā ir šādas noklusējuma ķēdes:
Ķēde | Apraksts |
---|---|
PREROUTING | Rezervēts ienākošajām paketēm |
POSTROTĒŠANA | Izmanto izejošajām paketēm |
IEVADE | Izmanto paketēm, kas nonāk tieši serverī |
IZVADE | Izmanto vietējām paketēm |
Uz priekšu | Rezervēts paketēm, kas tiek virzītas caur sistēmu |
4: Neapstrādātie galdi
Neapstrādāta tabulas galvenais mērķis ir konfigurēt izņēmumus paketēm, kuras nav paredzēts apstrādāt izsekošanas sistēmā. Neapstrādāta tabula paketēm iestata NOTRACK atzīmi, liekot savienojuma izsekošanas funkcijai paketi ignorēt.
Conntrack ir Linux kodola tīkla funkcija, kas ļauj Linux kodolam izsekot visiem tīkla savienojumiem, ļaujot kodolam identificēt tīkla plūsmu veidojošās paketes.
Neapstrādātajā tabulā ir divas galvenās ķēdes:
Ķēde | Apraksts |
---|---|
PREROUTING | Rezervēts paketēm, kuras saņem tīkla saskarnes |
IZVADE | Rezervēts vietējo procesu aizsāktām paketēm |
5: drošības tabula
Šīs tabulas primārais lietojums ir iekšējā drošības uzlabošanas Linux (SELinux) drošības mehānisma iestatīšana, kas atzīmē paketes. Drošības zīmi var lietot katram savienojumam vai pakešai.
To izmanto obligātās piekļuves kontroles kārtulām, un tā ir otrā tabula, kurai piekļūst pēc filtru tabulas. Tas piedāvā šādas noklusējuma ķēdes:
Ķēde | Apraksts |
---|---|
IEVADE | Rezervēts ienākošajām paketēm sistēmā |
IZVADE | Izmanto lokāli izveidotām paketēm |
PIRMS | Izmanto paketēm, kas tiek virzītas caur sistēmu |
Apskatījuši noklusējuma Iptables, ejam soli tālāk un apspriedīsim, kā strādāt ar iptables noteikumiem.
Kā strādāt ar iptables noteikumiem?
Iptables kārtulas tiek piemērotas augošā secībā. Tas nozīmē, ka vispirms tiek piemērots pirmais noteiktas kopas noteikums, pēc tam otrais, pēc tam trešais utt., Līdz pēdējam.
Šīs funkcijas dēļ iptables neļauj jums pievienot kārtulas kopai, izmantojot parametru -A; Lai pievienotu saraksta augšdaļai, jums jāizmanto -I, kam seko skaitlis vai tas jāiztukšo.
Parāda Iptables
Lai skatītu savus iptables, izmantojiet komandu iptables -L -v IPv4 un ip6tables -L -v IPv6.
Noteikumu ievietošana
Lai likumus ievietotu komplektā, tie jānovieto precīzā secībā, ievērojot tās pašas ķēdes izmantotos noteikumus. Jūs varat apskatīt savu iptables kārtulu sarakstu ar komandu, kā aprakstīts iepriekš:
sudo iptables -L -vPiemēram, lai ievietotu kārtulu, kas atļauj ienākošos savienojumus ar 9001 portu, izmantojot TCP, mums jānorāda kārtulas numurs INPUT ķēdei, ievērojot tīmekļa trafika noteikumus.
sudo iptables -I IEVADU 1 -p TCP --port 9001 -m stāvoklis --valsts JAUNS -j ACCEPTKad esat apskatījis pašreizējos iptables, jums vajadzētu redzēt jauno kārtulu komplektā.
sudo iptables -L -v
Noteikumu aizstāšana
Aizvietošanas funkcionalitāte darbojas līdzīgi kā ievietošanai, tomēr tā izmanto komandu iptables -R. Piemēram, lai modificētu iepriekš minēto kārtulu un iestatītu porta 9001 noraidīšanu, mēs:
sudo iptables -R INPUT 1 -p TCP --port 9001 -m stāvoklis --valsts JAUNS -j REJECTNoteikuma dzēšana
Lai izdzēstu kārtulu, mēs nododam kārtulas numuru. Piemēram, lai izdzēstu iepriekš minēto kārtulu, mēs varam norādīt:
sudo iptables -D INPUT 1Lielākajā daļā Linux distros iptables nav tukši ne IPv4, ne IPv6. Tādējādi, ja neesat pievienojis nevienu jaunu kārtulu, iegūsiet līdzīgu izvadi kā parādīts zemāk. Tas ir riskanti, jo tas nozīmē, ka sistēma atļauj visu ienākošo, izejošo un maršrutēto trafiku.
Apskatīsim, kā konfigurēt iptables:
Kā konfigurēt iptables?
Ir daudz veidu, kā konfigurēt iptables kārtulas. Šajā sadaļā ir izmantoti piemēri, lai parādītu, kā iestatīt kārtulas, izmantojot IP adreses un porti.
Satiksmes bloķēšana un atļaušana ostās
Varat izmantot noteiktu portu, lai bloķētu vai atļautu visu trafiku tīkla saskarnē. Apsveriet šādus piemērus:
sudo iptables -A INPUT -j ACCEPT -p TCP - galamērķa ports 1001 -i wlan0Iepriekš minētās komandas pieļauj trafiku 1001. porta TCP wlan0 saskarnē.
sudo iptables -A INPUT -j DROP -p TCP - mērķa ports 1001 -i wlan0Šī komanda veic pretējo iepriekšminētajai komandai, jo tā bloķē visu trafiku wlan0 portā 1001.
Šeit ir rūpīga komandas pārbaude:
- Pirmais arguments (-A) pievieno jaunu kārtulu tabulas ķēdes beigās.
- INPUT arguments pievieno tabulai norādīto kārtulu.
- DROP arguments nosaka veicamo darbību attiecīgi kā ACCEPT un DROP. Tas nozīmē, ka, tiklīdz pakete tiek saskaņota, tā tiek nomesta.
- -p norāda protokolu, piemēram, TCP, un ļauj pārvarēt datplūsmu uz citiem protokoliem.
- -galamērķa osta nosaka likumu pieņemt vai atmest visu 1001. ostai paredzēto datplūsmu.
- -i
liek iptables lietot kārtulu trafikam, kas nāk uz wlan0 saskarnes.
PIEZĪME: Iptables nesaprot tīkla saskarnes aizstājvārdus. Tādējādi sistēmā, kurā ir vairāk nekā viens virtuālais interfeiss, galamērķa adrese būs jānosaka manuāli un skaidri.
Piemēram:
sudo iptables -A INPUT -j DROP -p TCP - galamērķa ports 1001 -i wlan0 -d 192.168. lpp.0.24IP adrešu iekļaušana baltajā sarakstā un melnajā sarakstā
Izmantojot iptables, varat izveidot ugunsmūra kārtulas. Viens piemērs ir apturēt visu datplūsmu un atļaut tīkla trafiku tikai no izteiktām IP adresēm.
Piemērs:
iptables -A INPUT -m stāvoklis -valsts, kas izveidota, SAISTĪTA -j ACCEPTiptables -A INPUT -i lo -m komentārs - komentārs "Atļaut atgriezeniskos savienojumus" -j ACCEPT
iptables -A INPUT -p icmp -m komentārs - komentārs “Atļaut Ping darboties kā paredzēts” -j
PIEŅEMT
iptables -A IEVADE -s 192.168. lpp.0.1/24 -j PIEŅEMTiptables -A IEVADE -s 192.168. lpp.0.0 -j PIEŅEMT
iptables -P INPUT DROP
iptables -P FORWARD DROP
Pirmajā rindā ir noteikts noteikums, lai atļautu visas 192 avota IP adreses.168. lpp.0.1/24 apakštīkls. Varat arī izmantot CIDR vai atsevišķas IP adreses. Šajā komandā mēs iestatījām likumu atļaut visu trafiku, kas saistīts ar esošajiem savienojumiem. Pēdējās komandās mēs iestatījām INPUT un FORWARD politiku, lai visus nomestu.
IPt6 izmantošana iptables
Komanda Iptables darbojas tikai ar IPv4. Lai IPv6 izmantotu iptables, jums jāizmanto komanda ip6tables. Ip6tables izmanto neapstrādātas, filtrēšanas, drošības un mangle tabulas. IP6tables vispārējā sintakse ir līdzīga iptables, un tā atbalsta arī atbilstošas iptables opcijas, piemēram, pievienot, dzēst utt.
Apsveriet iespēju uzzināt vairāk par ip6tables rokasgrāmatas lapām.
Tīkla drošības iptables kārtulu kopu piemērs
Piemērotu ugunsmūra noteikumu izveide galvenokārt būs atkarīga no sistēmā darbojošā pakalpojuma un izmantotajām ostām. Tomēr šeit ir daži tīkla konfigurācijas pamatnoteikumi, kurus varat izmantot, lai aizsargātu jūsu sistēmu:
1. Atļaut Loopback interfeisa trafiku un noraidīt visu loopback, kas nāk no citām saskarnēm
iptables -A INPUT -i lo -j ACCEPT (Varat arī izmantot ip6tables)iptables -IEVADE ! -i lo -s 127.0.0.0 -j REJECT (piemērojami arī ip6tabulas)
2: noraidīt visus ping pieprasījumus
iptables -A INPUT -p icmp -m state --state NEW --icmp-type 8 -j REJECT3: Atļaut SSH savienojumus
iptables -A INPUT -p tcp --port 22 -m stāvoklis --state NEW -j ACCEPTŠie ir komandu piemēri, kurus varat izmantot, lai aizsargātu jūsu sistēmu. Tomēr konfigurācija būs ļoti atkarīga no tā, kam vai kam vēlaties piekļūt dažādiem pakalpojumiem.
UZMANĪBU: Ja vēlaties pilnībā atspējot IPv6, pārliecinieties, ka atsaucat līniju, jo tas palēninās atjaunināšanas procesu:
prioritāte :: ffff: 0: 0/96 100 atrodama mapē / etc / gai.konf .
Tas ir tāpēc, ka APT pakotņu pārvaldnieks atrisina IPv6 spoguļa domēnu, pateicoties apt-get atjauninājumam.
Kā izvietot iptables kārtulas?
Lai izvietotu savus iptables Ubuntu vai citās Debian balstītās sistēmās, vispirms izveidojiet divus failus (ip4 un ip6) attiecīgajām IP adresēm.
Jebkurā failā pievienojiet kārtulas, kuras vēlaties ieviest attiecīgajos failos - IPv4 kārtulas IP4 failam un IPv6 kārtulas IP6 failam.
Tālāk mums ir jāimportē kārtulas, izmantojot komandu:
sudo iptables-atjaunot < /tmp/ip4 (replace filename for IPv6)Pēc tam varat pārbaudīt, vai noteikumi ir piemēroti, izmantojot komandu:
sudo iptables -L -vĀtrs iptables pastāvīgs ceļvedis
Ubuntu un izplatītie Debian balstītie izplatījumi ir aprīkoti ar iptables-persistent paketi, kas ļauj viegli piemērot ugunsmūra noteikumus pēc pārstartēšanas. Pakotne nodrošina failus, kurus varat izmantot, lai iestatītu noteikumus IPv4 vai IPv6, un tos var automātiski lietot pēc sāknēšanas.
Ugunsmūra kārtulas var izmantot arī, izmantojot UFW vai GUFW. Apsveriet šo apmācību, lai uzzinātu, kā izmantot UFW.
Kā instalēt iptables-persistent?
Pārliecinieties, vai jūsu sistēmā ir instalēts iptables-persistent. Izmantojiet dpkg, lai pārbaudītu, vai pakotne ir instalēta.
Ja nē, izmantojiet šādu komandu:
sudo apt-get install iptables-persistent
Divreiz tiks parādīts aicinājums saglabāt gan pašreizējos IPv4, gan IPv6 noteikumus. Noklikšķiniet uz Jā, lai saglabātu abus noteikumus.
Noklikšķiniet uz jā, lai saglabātu IPv6.
Kad instalēšana ir pabeigta, pārbaudiet, vai jums ir iptables apakšdirektorijs, kā parādīts zemāk esošajā attēlā.
Tagad jūs varat izmantot noteikumus.v4 un noteikumi.v6, lai pievienotu iptables kārtulas, un iptables-persistent tos automātiski lietos. Faili ir vienkārši teksta faili, kurus varat viegli rediģēt, izmantojot jebkuru izvēlēto teksta redaktoru.
Secinājums
Šajā apmācībā mēs esam apskatījuši iptables pamatus. Sākot ar darbu ar iptables, pamata komandām, noklusējuma iptables tabulām un parametriem.
No tā, ko esat iemācījies, jums vajadzētu būt iespējai izmantot iptables, lai izveidotu ugunsmūra kārtulas, kas palīdz aizsargāt jūsu sistēmu.