Početna » kako da » Vodič za početnike za iptables, Linux vatrozid

    Vodič za početnike za iptables, Linux vatrozid

    Iptables je iznimno fleksibilan vatrozidni program izgrađen za Linux operativne sustave. Bilo da ste početnik Linux geek ili administrator sustava, vjerojatno postoji način na koji vam iptables može biti od velike koristi. Čitajte dalje dok vam pokazujemo kako konfigurirati najsvestraniji Linux vatrozid.

    Fotografija od ezioman.

    O iptablesu

    iptables je vatrozidni alat za naredbeni redak koji koristi lanac pravila za dopuštanje ili blokiranje prometa. Kada se veza pokuša uspostaviti na vašem sustavu, iptables traži pravilo na popisu koji odgovara njemu. Ako ga ne pronađe, upotrebljava zadanu radnju.

    iptables gotovo uvijek dolazi unaprijed instaliran na bilo kojoj Linux distribuciji. Da biste je ažurirali / instalirali, samo dohvatite iptables paket:

    sudo apt-get install iptables

    Postoje GUI alternative za iptables kao Firestarter, ali iptables nije baš toliko težak kada imate nekoliko naredbi prema dolje. Želite biti izuzetno oprezni pri konfiguriranju iptables pravila, osobito ako ste SSH-ovali na poslužitelju, jer vas jedna pogrešna naredba može trajno zaključati dok se ne ručno popravi na fizičkom računalu.

    Vrste lanaca

    iptables koristi tri različita lanca: ulaz, naprijed i izlaz.

    Ulazni - Taj se lanac koristi za kontrolu ponašanja dolaznih veza. Na primjer, ako korisnik pokuša SSH na vaše računalo / poslužitelj, iptables će pokušati uskladiti IP adresu i priključak s pravilom u ulaznom lancu.

    Naprijed - Ovaj se lanac koristi za dolazne veze koje se zapravo ne isporučuju lokalno. Razmislite o usmjerivaču - podaci se uvijek šalju u njega, ali rijetko su zapravo namijenjeni samom usmjerivaču; podaci su samo proslijeđeni na cilj. Osim ako radite neku vrstu usmjeravanja, NATing ili nešto drugo na vašem sustavu koji zahtijeva prosljeđivanje, nećete ni koristiti taj lanac.

    Postoji jedan siguran način da provjerite koristi li vaš sustav lanac naprijed ili ne.

    iptables -L -v

    Slika zaslona iznad je poslužitelja koji je pokrenut nekoliko tjedana i nema ograničenja na dolazne ili odlazne veze. Kao što možete vidjeti, ulazni lanac je obradio 11GB paketa, a izlazni lanac je obradio 17GB. Lanac prema naprijed, s druge strane, nije potreban za obradu jednog paketa. To je zato što poslužitelj ne radi nikakvo prosljeđivanje ili se koristi kao prolazni uređaj.

    Izlaz - Ovaj lanac se koristi za odlazne veze. Na primjer, ako pokušate ping howtogeek.com, iptables će provjeriti svoj izlazni lanac kako bi provjerio pravila koja se odnose na ping i howtogeek.com prije donošenja odluke o dopuštanju ili odbijanju pokušaja povezivanja.

    Oprez

    Iako se pinging vanjskog računala čini kao nešto što bi samo trebalo preći izlazni lanac, imajte na umu da će se za vraćanje podataka koristiti i ulazni lanac. Kada koristite iptables za zaključavanje vašeg sustava, zapamtite da će mnogo protokola zahtijevati dvosmjernu komunikaciju, tako da će i ulazni i izlazni lanci morati biti pravilno konfigurirani. SSH je uobičajeni protokol koji ljudi zaboravljaju na oba lanca.

    Uobičajeno ponašanje lanca pravila

    Prije nego što uđete i konfigurirate određena pravila, trebate odlučiti što želite da bude zadano ponašanje triju lanaca. Drugim riječima, što želite da iptables radi ako se veza ne podudara s postojećim pravilima?

    Da biste vidjeli što su vaši lanci pravila trenutačno konfigurirani s neprikladnim prometom, pokrenite iptables -L naredba.

    Kao što možete vidjeti, koristili smo i naredbu grep kako bismo dobili čišći izlaz. Na toj snimci zaslona naši su lanci trenutno shvaćeni da prihvaćaju promet.

    Više puta nego što ne želite da sustav prihvaća veze prema zadanim postavkama. Ako prethodno niste promijenili pravila lanca pravila, ta bi se postavka već trebala konfigurirati. U svakom slučaju, ovdje je naredba za prihvaćanje veza prema zadanim postavkama:

    iptables --policy INPUT ACCEPT
    iptables --politički OUTPUT ACCEPT
    iptables --politički FORWARD ACCEPT

    Ako se postavi na pravilo prihvaćanja, tada možete koristiti iptables da biste odbili određene IP adrese ili brojeve portova, a da pritom nastavite prihvaćati sve ostale veze. Doći ćemo do tih naredbi za minutu.

    Ako biste radije odbili sve veze i ručno odredili koje želite omogućiti povezivanje, trebali biste promijeniti zadano pravilo svojih lanaca da ispadne. Ako to učinite, vjerojatno će biti korisno samo za poslužitelje koji sadrže osjetljive informacije, a samo oni koji imaju istu IP adresu povezuju se s njima.

    iptables --policy INPUT DROP
    iptables --politi OUTPUT DROP
    iptables --policy FORWARD DROP

    Odgovori vezani uz vezu

    S konfiguriranim zadanim lančanim pravilima, možete početi dodavati pravila na iptables tako da zna što treba učiniti kada naiđe na vezu s određene IP adrese ili porta. U ovom vodiču pregledat ćemo tri najosnovnija i najčešće korištena "odgovora".

    Prihvatiti - Dopustite vezu.

    Pad - Spusti vezu, ponašaj se kao da se nikada nije dogodilo. To je najbolje ako ne želite da izvor shvati da vaš sustav postoji.

    Odbiti - Ne dopustite vezu, ali vratite pogrešku. To je najbolje ako ne želite da se određeni izvor poveže s vašim sustavom, ali želite da znaju da ih je vaš vatrozid blokirao.

    Najbolji način za prikaz razlike između ova tri pravila je pokazati kako izgleda kada računalo pokuša pingati Linux stroj s iptables konfiguriranom za svaku od tih postavki.

    Omogućavanje veze:

    Povlačenje veze:

    Odbijanje veze:

    Dopuštanje ili blokiranje određenih veza

    S konfiguriranim lancima pravila sada možete konfigurirati iptables za dopuštanje ili blokiranje određenih adresa, raspona adresa i portova. U tim primjerima postavit ćemo veze na PAD, ali ih možete prebaciti na PRIHVATITI ili ODBITI, ovisno o vašim potrebama i načinu na koji ste konfigurirali svoje lance pravila.

    Napomena: u ovim ćemo primjerima koristiti iptables -A za dodavanje pravila postojećem lancu. iptables počinje na vrhu popisa i prolazi kroz svako pravilo dok ne pronađe onaj koji odgovara. Ako trebate umetnuti pravilo iznad drugog, možete ga koristiti iptables -I [lanac] [broj] da biste odredili broj koji bi trebao biti na popisu.

    Veze s jedne IP adrese

    Ovaj primjer pokazuje kako blokirati sve veze s IP adrese 10.10.10.10.

    iptables -A INPUT -s 10.10.10.10 -j DROP

    Veze s niza IP adresa

    Ovaj primjer pokazuje kako blokirati sve IP adrese u području mreže od 10.10.10.0/24. Za određivanje raspona IP adresa možete upotrijebiti netmasku ili standardnu ​​oznaku za obrezivanje.

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

    ili

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

    Veze s određenim portom

    Ovaj primjer pokazuje kako blokirati SSH veze od 10.10.10.10.

    iptables-ULAZ -p tcp --dport ssh -s 10.10.10.10 -j DROP

    "Ssh" možete zamijeniti bilo kojim protokolom ili brojem porta. -p tcp dio koda govori iptablesu koja vrsta veze koristi protokol. Ako ste blokirali protokol koji koristi UDP radije nego TCP, onda -p udp bilo bi potrebno umjesto toga.

    Ovaj primjer pokazuje kako blokirati SSH veze s bilo koje IP adrese.

    iptables-ULAZ -p tcp -dport ssh -j DROP

    Stanja veze

    Kao što smo već spomenuli, mnoge će protokole zahtijevati dvosmjernu komunikaciju. Na primjer, ako želite dopustiti SSH veze s vašim sustavom, ulazni i izlazni lanci će im trebati dodano pravilo. Ali, što ako želite da vam se dopusti SSH koji dolazi u vaš sustav? Neće li dodati pravilo u izlazni lanac također će dopustiti izlazne SSH pokušaje?

    To je mjesto u kojem dolazi do stanja povezivanja, što vam daje mogućnost da trebate omogućiti dvosmjernu komunikaciju, ali dopuštaju uspostavljanje jednosmjernih veza. Pogledajte ovaj primjer, gdje su dopuštene SSH veze OD 10.10.10.10, ali SSH veze TO 10.10.10.10 nisu. Međutim, sustavu je dopušteno slati informacije preko SSH-a sve dok je sesija već uspostavljena, što omogućuje SSH komunikaciju između ova dva hosta.

    iptables -A INPUT -p tcp --dport ssh -s 10.10.10.10 -m stanje - stanje NOVO, USPOSTAVLJENO -j ACCEPT

    iptables -A OUTPUT -p tcp --sport 22 -d 10.10.10.10 -m stanje - stanje ESTABLISHED -j ACCEPT

    Spremanje promjena

    Promjene koje napravite na svojim iptables pravilima bit će ukinute sljedeći put kada se usluga iptables ponovno pokrene, osim ako ne izvršite naredbu za spremanje promjena. Ova se naredba može razlikovati ovisno o vašoj distribuciji:

    Ubuntu:

    sudo / sbin / iptables-save

    Red Hat / CentOS:

    / sbin / service iptables spremi

    Ili

    /etc/init.d/iptables spremite

    Ostale naredbe

    Navedite trenutno konfigurirana pravila iptables:

    iptables -L

    Dodavanje -v Opcija će vam dati informacije o paketu i bajtu i dodati -n će popisati sve numerički. Drugim riječima - nazivi hostova, protokoli i mreže navedeni su kao brojevi.

    Da biste izbrisali sva trenutno konfigurirana pravila, možete izdati naredbu flush.

    iptables -F