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