iptables

Kā kontrolēt tīkla trafiku, izmantojot iptables?

Kā kontrolēt tīkla trafiku, izmantojot iptables?
“… A lietotāja telpas Unix utilīta, kas ļauj sistēmas administratoriem konfigurēt kodola tīkla filtra moduļa ieviestās IP pakešu filtrēšanas kārtulas.” Iptables darbojas kā ugunsmūris, izmantojot pakešu filtrēšanas kārtulas, pamatojoties uz dažādiem kritērijiem, piemēram, IP adresi, portu un protokoliem.

Š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 piliens

Iepriekš 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.

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 -L

3: 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 -v

Piemē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 ACCEPT

Kad 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 REJECT

Noteikuma 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 1

Lielā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 wlan0

Iepriekš 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:

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.24

IP 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 ACCEPT
iptables -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ŅEMT
iptables -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 REJECT

3: 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.

Kā palielināt FPS Linux?
FPS apzīmē Kadri sekundē. FPS uzdevums ir izmērīt kadru ātrumu video atskaņošanā vai spēļu izrādēs. Vienkāršos vārdos nepārtrauktu pilnekrāna attēlu s...
Populārākās Oculus App Lab spēles
Ja esat Oculus austiņu īpašnieks, jums ir jāsazinās par sānu ielādi. Sānu ielāde ir process, kurā austiņās tiek instalēts saturs, kas nav veikals. Sid...
10 labākās spēles, kuras spēlēt Ubuntu
Windows platforma ir bijusi viena no dominējošajām spēļu platformām, jo ​​mūsdienās tiek attīstīts milzīgs spēļu skaits, lai atbalstītu Windows. Vai k...