Mājas lapa » » Iesācēja ceļvedis iptables, Linux ugunsmūris

    Iesācēja ceļvedis iptables, Linux ugunsmūris

    Iptables ir ārkārtīgi elastīga ugunsmūra lietderība, kas veidota Linux operētājsistēmām. Vai jūs esat iesācējs Linux geek vai sistēmas administrators, iespējams, ka iptables jums var būt ļoti noderīga. Lasiet, kā parādīsim, kā konfigurēt vispopulārāko Linux ugunsmūri.

    Fotoattēls ezioman.

    Par iptables

    iptables ir komandrindas ugunsmūra lietderība, kas izmanto politikas ķēdes, lai atļautu vai bloķētu datplūsmu. Ja savienojums mēģina izveidot sistēmu jūsu sistēmā, iptables meklē sarakstu, lai tas atbilstu. Ja tas netiek atrasts, tas tiek izmantots noklusējuma darbībai.

    iptables gandrīz vienmēr nāk uz iepriekš instalētu jebkuru Linux izplatīšanu. Lai to atjauninātu / instalētu, vienkārši ielādējiet iptables pakotni:

    sudo apt-get instalēt iptables

    Ir GUI alternatīvas iptables, piemēram, Firestarter, bet iptables nav īsti tik grūti, kad jums ir dažas komandas uz leju. Vēlaties būt ļoti uzmanīgiem, konfigurējot iptables noteikumus, it īpaši, ja esat SSH'd serverī, jo viena nepareiza komanda var neatgriezeniski bloķēt jūs, līdz tas ir manuāli fiksēts fiziskajā iekārtā..

    Ķēdes veidi

    iptables izmanto trīs dažādas ķēdes: ievadi, priekšu un izeju.

    Ievade - Šo ķēdi izmanto, lai kontrolētu ienākošo savienojumu darbību. Piemēram, ja lietotājs mēģina SSH savā datorā / serverī, iptables mēģinās saskaņot IP adresi un portu ar ievades ķēdes noteikumu.

    Pārsūtīt - Šo ķēdi izmanto ienākošajiem savienojumiem, kas faktiski netiek piegādāti lokāli. Padomājiet par maršrutētāju - dati vienmēr tiek nosūtīti uz to, bet reti faktiski paredzēti maršrutētājam; dati ir tikai nosūtīti uz savu mērķi. Ja vien jūs nedrīkstat veikt sava veida maršrutēšanu, NATing vai kaut ko citu sistēmā, kas prasa pārsūtīšanu, jūs pat neizmantosiet šo ķēdi.

    Ir viens drošs veids, kā pārbaudīt, vai jūsu sistēma izmanto / vajag priekšu ķēdi.

    iptables -L -v

    Iepriekš redzamais ekrānuzņēmums ir no servera, kas darbojas dažas nedēļas un kurā nav ierobežojumu ienākošajiem vai izejošajiem savienojumiem. Kā redzat, ievades ķēde ir apstrādājusi 11GB pakešu un izejas ķēde ir apstrādājusi 17GB. Savukārt uz priekšu vērstā ķēde nav vajadzīga, lai apstrādātu vienu paketi. Tas ir tāpēc, ka serveris nedara nekādu pāradresāciju vai tiek izmantots kā caurlaides ierīce.

    Izeja - Šo ķēdi izmanto izejošajiem savienojumiem. Piemēram, ja jūs mēģināt ping howtogeek.com, iptables pārbaudīs savu izejas ķēdi, lai redzētu, kādi noteikumi attiecas uz ping un howtogeek.com, pirms pieņemat lēmumu liegt vai liegt savienojuma mēģinājumu.

    Brīdinājums

    Lai gan ārējā uzņēmēja pingēšana šķiet kaut kas, kas būtu nepieciešams tikai izejas ķēdes šķērsošanai, paturiet prātā, ka, lai atgrieztu datus, tiks izmantota arī ievades ķēde. Izmantojot iptables, lai bloķētu jūsu sistēmu, atcerieties, ka daudziem protokoliem būs nepieciešama divvirzienu komunikācija, tāpēc gan ieejas, gan izejas ķēdes būs jākonfigurē pareizi. SSH ir kopīgs protokols, ko cilvēki aizmirst atļaut abās ķēdēs.

    Politikas ķēdes noklusējuma uzvedība

    Pirms dodaties un konfigurējot konkrētus noteikumus, jūs vēlaties izlemt, ko vēlaties, lai trīs ķēžu noklusējuma uzvedība būtu. Citiem vārdiem sakot, ko jūs vēlaties iptables darīt, ja savienojums neatbilst esošajiem noteikumiem?

    Lai redzētu, kādas jūsu politikas ķēdes pašlaik ir konfigurētas, lai veiktu nesaskaņotu datplūsmu, palaidiet iptables -L komandu.

    Kā redzat, mēs izmantojām arī grep komandu, lai sniegtu mums tīrāku produkciju. Šajā ekrānā mūsu ķēdes pašlaik saprot, ka tās pieņems satiksmi.

    Vairāk reizes nekā jūs vēlaties, lai jūsu sistēma pieņems savienojumus pēc noklusējuma. Ja vien iepriekš neesat mainījis politikas ķēdes noteikumus, šis iestatījums jau ir jākonfigurē. Katrā ziņā, šeit ir komanda, lai pēc noklusējuma akceptētu savienojumus:

    iptables - policy INPUT ACCEPT
    iptables - policy OUTPUT ACCEPT
    iptables - polisē FORWARD ACCEPT

    Pēc noklusējuma pieņemšanas noteikuma, jūs varat izmantot iptables, lai liegtu konkrētas IP adreses vai portu numurus, vienlaikus turpinot pieņemt visus pārējos savienojumus. Mēs nokļūsim pie šīm komandām minūtē.

    Ja jūs drīzāk liegtu visus savienojumus un manuāli norādītu, kurus no tiem vēlaties atļaut savienot, jums jāmaina jūsu ķēžu noklusējuma politika, lai samazinātu. To darot, iespējams, būtu noderīgi tikai tādiem serveriem, kuros ir sensitīva informācija, un tikai tad, ja tām ir vienādas IP adreses.

    iptables - policy INPUT DROP
    iptables - policy OUTPUT DROP
    iptables - polise FORWARD DROP

    Savienojuma specifiskās atbildes

    Konfigurējot jūsu noklusējuma ķēdes politiku, varat sākt pievienot noteikumus iptables, lai tā zinātu, ko darīt, kad tā saskaras ar savienojumu no konkrētas IP adreses vai ostas. Šajā rokasgrāmatā mēs aplūkosim trīs visvienkāršākās un biežāk izmantotās atbildes.

    Pieņemt - Ļaujiet savienojumu.

    Drop - Atvienojiet savienojumu, rīkojieties kā tas nekad nav noticis. Tas ir labākais, ja nevēlaties, lai avots saprastu jūsu sistēmas pastāvēšanu.

    Noraidīt - Neļaujiet savienojumu, bet nosūtiet atpakaļ kļūdu. Tas ir labākais, ja nevēlaties, lai kāds konkrēts avots tiktu savienots ar jūsu sistēmu, bet jūs vēlaties, lai viņi zinātu, ka jūsu ugunsmūris tos bloķējis.

    Labākais veids, kā parādīt atšķirību starp šiem trim noteikumiem, ir parādīt, kā izskatās, kad dators mēģina pingēt Linux mašīnu ar iptables, kas konfigurēti katram no šiem iestatījumiem.

    Iespējot savienojumu:

    Savienojuma atcelšana:

    Savienojuma noraidīšana:

    Konkrētu savienojumu atļaušana vai bloķēšana

    Konfigurējot jūsu politikas ķēdes, tagad varat konfigurēt iptables, lai atļautu vai bloķētu konkrētas adreses, adrešu diapazonu un ostas. Šajos piemēros mēs izveidosim savienojumus ar DROP, bet jūs varat tos pārslēgt PIEŅEMTIES vai REJECT, atkarībā no jūsu vajadzībām un jūsu politikas ķēdes konfigurēšanas.

    Piezīme. Šajos piemēros mēs izmantosim iptables -A pievienot noteikumus esošajai ķēdei. iptables sākas tā saraksta augšdaļā un iet cauri katram noteikumam, līdz tas konstatē, ka tas atbilst. Ja jums ir nepieciešams ievietot noteikumu virs cita, varat izmantot iptables -I [ķēde] [numurs] lai norādītu numuru, kas tai jābūt sarakstā.

    Savienojumi no vienas IP adreses

    Šis piemērs parāda, kā bloķēt visus savienojumus no IP adreses 10.10.10.10.

    iptables -A INPUT -s 10.10.10.10 -j DROP

    Savienojumi no dažādām IP adresēm

    Šis piemērs parāda, kā bloķēt visas IP adreses 10.10.10.0/24 tīkla diapazonā. Lai norādītu IP adrešu diapazonu, varat izmantot tīkla maska ​​vai standarta slīpsvītras piezīmi.

    iptables -A INPUT -s 10.10.10.0/24 -j DROP

    vai

    iptables -A INPUT -s 10.10.10.0/255.255.255.0 -j DROP

    Savienojumi ar konkrētu portu

    Šis piemērs parāda, kā bloķēt SSH savienojumus no 10.10.10.10.

    iptables -A INPUT -p tcp - dp ssh -s 10.10.10.10 -j DROP

    “Ssh” var aizstāt ar jebkuru protokolu vai porta numuru. The -p tcp daļa no koda iptables norāda, kāda veida savienojums ir protokols. Ja jūs bloķējāt protokolu, kas izmanto UDP, nevis TCP -p udp tā vietā būtu nepieciešams.

    Šis piemērs parāda, kā bloķēt SSH savienojumus no jebkuras IP adreses.

    iptables -A INPUT -p tcp - dsp -j DROP

    Savienojuma valstis

    Kā jau iepriekš minēts, daudziem protokoliem būs nepieciešama divvirzienu komunikācija. Piemēram, ja vēlaties atļaut SSH savienojumus ar savu sistēmu, ievades un izejas ķēdēm būs vajadzīgs tiem pievienots noteikums. Bet, kas notiks, ja vēlaties tikai SSH ienākt jūsu sistēmā? Ja izejas ķēdei nepievienosiet noteikumu, arī tiek atļauts izejošos SSH mēģinājumus?

    Tas ir, kad savienojuma valstis ierodas, kas dod jums iespēju, kas nepieciešama, lai atļautu divvirzienu saziņu, bet tikai ļauj izveidot vienvirziena savienojumus. Aplūkojiet šo piemēru, kur ir pieļaujami SSH savienojumi no 10.10.10.10, bet SSH savienojumi līdz 10.10.10.10 nav. Tomēr sistēmai ir atļauts nosūtīt atpakaļ informāciju pa SSH, kamēr sesija jau ir izveidota, kas padara iespējamu SSH komunikāciju starp šiem diviem saimniekiem..

    iptables -A INPUT -p tcp - ds ss s 10.10.10.10 -m stāvoklis - valsts NEW, UZŅĒMĒJS -j ACCEPT

    iptables -A OUTPUT -p tcp - transports 22 -d 10.10.10.10 -m stāvoklis - valsts UZŅĒMĒJS -j ACCEPT

    Saglabājot izmaiņas

    Izmaiņas, ko veicat iptables noteikumos, tiks atceltas nākamajā reizē, kad iptables pakalpojums tiks restartēts, ja vien neizpildīsit komandu, lai saglabātu izmaiņas. Šī komanda var atšķirties atkarībā no jūsu izplatīšanas:

    Ubuntu:

    sudo / sbin / iptables-save

    Red Hat / CentOS:

    / sbin / service iptables saglabājiet

    Or

    /etc/init.d/iptables saglabāt

    Citas komandas

    Uzskaitiet pašlaik konfigurētos iptables noteikumus:

    iptables -L

    Pievienojot -v opcija sniegs jums pakešu un baitu informāciju un pievienos -n uzskaitīs visu skaitliski. Citiem vārdiem sakot - saimnieku nosaukumi, protokoli un tīkli ir uzskaitīti kā numuri.

    Lai notīrītu visus pašlaik konfigurētos noteikumus, varat izdot skalošanas komandu.

    iptables -F