If-Koubou

Vodič za početnike za iptables, Linux Firewall

Vodič za početnike za iptables, Linux Firewall (Kako da)

Iptables je izuzetno fleksibilan vatrozid koji je izgrađen za Linux operativne sustave. Bilo da ste početnik Linux geek ili administrator sustava, postoji vjerojatno neki način da iptables može biti velika upotreba za vas. Pročitajte kako vam pokažemo kako konfigurirati najsvestraniji Linux vatrozid.

Fotografija tvrtke ezioman.

O iptablesu

iptables je uslužni program vatrozida naredbenog retka koji koristi lance pravila kako bi dopustio ili blokirao promet. Kada se veza pokuša uspostaviti na vašem sustavu, iptables traži pravilo na popisu kako bi se podudarala s njim. Ako ga ne pronađe, pribavlja zadanu radnju.

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

sudo apt-get instalirajte iptables

Postoje GUI alternative iptables poput Firestarter, ali iptables nije stvarno toliko teško nakon što imate nekoliko naredbi dolje. Želite biti izuzetno oprezni prilikom konfiguriranja pravila iptables, osobito ako ste SSH'd na poslužitelju, jer jedna pogrešna naredba može vas trajno zaključati sve dok se ne ručno fiksira na fizičkom stroju.

Vrste lanaca

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

Ulazni - Ovaj lanac koristi se za kontrolu ponašanja za dolazne veze. Na primjer, ako korisnik pokuša SSH u vaš PC / poslužitelj, iptables će pokušati podudarati IP adresu i priključak s pravilom u ulaznom lancu.

Naprijed - Ovaj lanac koristi se za dolazne veze koje se zapravo ne isporučuju lokalno. Razmislite o usmjerivaču - podaci se uvijek šalju na njega, ali rijetko zapravo su predviđeni za sam router; podaci se upućuju samo na cilj. Ako ne radite neku vrstu usmjeravanja, NATinga ili nešto drugo na vašem sustavu koji zahtijeva prosljeđivanje, nećete ni koristiti ovaj lanac.

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

iptables -L -v

Gornji snimak zaslona poslužitelja koji traje nekoliko tjedana i nema ograničenja na dolazne ili odlazne veze. Kao što vidite, ulazni lanac obrađuje 11 GB paketa, a izlazni lanac obrađuje 17 GB. Naprijed lanac, s druge strane, nije trebao obraditi jedan paket. To je zato što poslužitelj ne radi bilo kakvu prosljeđivanje ili se koristi kao prolazni uređaj.

Izlaz - Ovaj lanac koristi se za odlazne veze. Na primjer, ako pokušate pingati howtogeek.com, iptables će provjeriti svoj izlazni lanac kako bi vidio koja su pravila vezana za ping i howtogeek.com prije donošenja odluke o dopuštenju ili odbijanju pokušaja spajanja.

Upozorenje

Iako pinging vanjski domaćin izgleda kao nešto što bi samo trebalo proći kroz izlazni lanac, imajte na umu da će za vraćanje podataka ulazni lanac također biti korišten. Kada koristite iptables za zaključavanje vašeg sustava, imajte na umu da će mnogi protokoli zahtijevati dvosmjernu komunikaciju, tako da će ulazni i izlazni lanci morati biti ispravno konfigurirani. SSH je zajednički protokol koji ljudi zaboravljaju dopustiti na oba lanca.

Ponašanje zadanog lanca pravila

Prije nego što odete i konfigurirate određena pravila, odlučite odlučiti što želite da zadani ponašanje tri lanca bude. Drugim riječima, što želite učiniti iptables ako veza ne podudara s nekim postojećim pravilima?

Da biste vidjeli koji su vaši lanci pravila trenutačno konfigurirani za neusporediv promet, pokrenite iptables -L naredba.

Kao što možete vidjeti, koristili smo i grep naredbu kako bismo dobili čišći izlaz. U tom snimku zaslona trenutačno su naši lancovi prihvaćali promet.

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

iptables --policy INPUT PRIHVATITE
iptables --policy OUTPUT PRIHVATITE
iptables --policy PRETHODNI PRIHVAT

Ako propustite pravilo prihvaćanja, tada možete koristiti iptables da biste poništili određene IP adrese ili brojeve porta, a nastavili prihvaćati sve ostale veze. Doći ćemo do tih naredbi za minutu.

Ako biste radije poništili sve veze i ručno odredili one koje želite omogućiti za povezivanje, trebali biste promijeniti propuštenu pravila svojih lancera. To će vjerojatno biti korisno samo za poslužitelje koji sadrže osjetljive podatke i samo se s njima povezuju iste IP adrese.

iptables --policy INPUT DROP
iptables --policy OUTPUT DROP
iptables --policy PRETHODNI DROP

Odgovori specifični za vezu

S vašim zadanim postavkama lanca konfiguriran, možete početi dodavati pravila za iptables tako da zna što učiniti kada naiđe na vezu od ili na određenu IP adresu ili priključak. U ovom vodiču idemo na tri najosnovnija i najčešće korištena "odgovora".

Prihvatiti - Dopusti vezu.

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

Odbiti - Ne dopuštajte vezu, ali vratite pogrešku. To je najbolje ako ne želite da se neki izvor poveže s vašim sustavom, ali želite da znaju da vam je vatrozid blokirao.

Najbolji način da se pokaže razlika između ova tri pravila je pokazati kako izgleda kada PC pokuša pingati Linux stroj s iptables konfiguriranim za svaku od tih postavki.

Dopuštanje veze:

Ispuštanje veze:

Odbijanje veze:

Dopuštanje ili blokiranje specifičnih veza

Pomoću konfiguracije lanaca pravila sada možete konfigurirati iptables da biste dopustili ili blokirali određene adrese, raspone adresa i priključke. U tim ćemo primjerima postaviti veze PAD, ali ih možete prebaciti PRIHVATITI ili ODBITI, ovisno o vašim potrebama i kako ste konfigurirali lanac pravila.

Napomena: U ovim primjerima koristit ćemo iptables -A dodati 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 upotrijebiti iptables -I [chain] [broj] da biste odredili broj koji bi trebao biti na popisu.

Povezivanje 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

Povezivanje s nizom IP adresa

Ovaj primjer pokazuje kako blokirati sve IP adrese u rasponu mreže 10.10.10.0/24. Možete koristiti mrežnu masku ili standardnu ​​zapletnu oznaku kako biste odredili raspon IP adresa.

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

Povezivanje s određenim priključkom

Ovaj primjer pokazuje kako blokirati SSH veze od 10.10.10.10.

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

Možete zamijeniti "ssh" s bilo kojim protokolom ili brojem porta. -p tcp dio koda govori iptablesu kakvu vezu protokol koristi. Ako ste blokirali protokol koji koristi UDP umjesto TCP, tada -p udp umjesto toga.

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

iptables -A INPUT -p tcp --port ssh -j DROP

Države veze

Kao što smo ranije spomenuli, puno protokola zahtijeva dvosmjernu komunikaciju. Na primjer, ako želite omogućiti SSH veze na vaš sustav, ulazni i izlazni lanci trebaju dodati pravilo. Ali, što ako samo želite da SSH koji ulazi u svoj sustav bude dopušten? Neće li dodati pravilo izlaznog lanca također dopustiti izlazne SSH pokušaja?

Tamo dolaze države veze, koje vam pružaju mogućnost da trebate dopustiti dvosmjernu komunikaciju, ali dopuštaju samo uspostavljanje veza. Pogledajte ovaj primjer, gdje su SSH veze OD 10.10.10.10 dopuštene, ali SSH veze NE 10.10.10.10 nisu. Međutim, sustavu je dozvoljeno slanje natrag informacija preko SSH sve dok je sjednica već uspostavljena, što omogućuje SSH komunikaciju između ta dva domaćina.

iptables -A INPUT -p tcp --port ssh -s 10.10.10.10 -m stanje - status NEW, ESTABLISHED -j ACCEPT

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

Spremanje promjena

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

Ubuntu:

sudo / sbin / iptables-save

Red Hat / CentOS:

/ sbin / service iptables spasiti

Ili

/etc/init.d/iptables spasiti

Ostale naredbe

Popis trenutno konfiguriranih pravila za iptables:

iptables -L

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

Da biste izbrisali sva trenutačno konfigurirana pravila, možete izdati naredbu za ispiranje.

iptables -F