Glavni zadatak vatrozid(firewall) filtriranje i obrada paketa koji prolaze kroz mrežu. Prilikom analize ulaznog paketa, vatrozid donosi odluku o sudbini ovog paketa: odbaci paket ( PAD), prihvati paket ( PRIHVATITI) ili učiniti nešto drugo s njim.
U Linux Vatrozid je modul kernela koji se zove netfilter i skup je spojnica za rad s mrežnim stogom. Sučelje za izmjenu pravila prema kojima vatrozid obrađuje pakete je pomoćni program iptables za IPv4 i uslužni program ip6tables za IPv6.
Sav posao filtriranja prometa obavlja jezgra sustava. Iptables nije demon i ne stvara nove procese u sustavu. Uključite ili isključite iptables samo šalje signal kernelu. Veća brzina filtriranja postiže se analizom samo zaglavlja paketa.
Na glavne karakteristike iptables odnositi se:
- filtriranje prometa na temelju adresa pošiljatelja i primatelja paketa, brojeva portova;
- preusmjeravanje paketa prema određenim parametrima;
- organizacija pristupa mreži (SNAT);
- prosljeđivanje portova s globalne mreže na lokalnu mrežu (DNAT);
- ograničavanje broja veza;
- postavljanje prometnih kvota;
- izvršavanje pravila prema rasporedu;
Pogledajmo glavni proces rada iptables(izvor slike rigacci.org).
Dolazni paket prvo pogađa mrežni uređaj, nakon čega ga presreće upravljački program i šalje jezgri. Nakon toga se paket prolazi kroz niz tablica i tek tada se prebacuje u lokalnu aplikaciju ili preusmjerava na drugi sustav ako se radi o tranzitnom paketu.
U iptables Koriste se tri vrste tablica:
- komadati– koristi se za izmjene u zaglavlju paketa;
- nat– koristi se za prevođenje mrežnih adresa;
- filtar– za filtriranje prometa;
stol mangle
Glavna svrha stola komadati- mijenjanje zaglavlja paketa. U ovoj tablici mogu se izvršiti sljedeće radnje:
- postavljanje bita tipa usluge;
- postavljanje polja Time To Live;
- postavljanje oznake na paketu koja se može provjeriti u drugim pravilima;
Lanci u stolu komadati:
- PRETHODNO RUTIRANJE- koristi se za izmjene paketa na ulazu u iptables, prije donošenja odluke o usmjeravanju;
- POSTRUTIRANJE- koristi se za izmjene paketa koji napuštaju iptables, nakon donošenja odluke o usmjeravanju;
- ULAZNI- koristi se za izmjene paketa prije prijenosa u lokalnu aplikaciju;
- IZLAZ- koristi se za izmjene paketa koji dolaze iz aplikacije unutar iptables;
- NAPRIJED- koristi se za izmjene tranzitnih paketa;
Nat stol
Tablica se koristi za prevođenje mrežne adrese i kada se naiđe na paket koji uspostavlja novu vezu. U ovoj tablici mogu se izvršiti sljedeće radnje:
- DNAT (Prijevod odredišne mrežne adrese)– prijevod odredišne adrese u zaglavlju paketa;
- SNAT (prijevod izvorne mrežne adrese)– mijenjanje adrese izvora paketa;
- MAŠKARE– koristi se u iste svrhe kao SNAT, ali vam omogućuje rad s dinamičkim IP adresama;
Lanci u ovoj tabeli:
- PRETHODNO RUTIRANJE– koristi se za izmjene paketa koji ulaze u iptables;
- IZLAZ– koristi se za pretvaranje adresa u paketima prije daljnjeg usmjeravanja;
- POSTRUTIRANJE– koristi se za transformaciju paketa prije slanja u mrežu;
Stolni filter
Tablica se koristi za filtriranje paketa. U ovoj tablici postoje tri lanca:
- ULAZNI– lanac za dolazne pakete;
- NAPRIJED– lanac za proslijeđene (tranzitne) pakete;
- IZLAZ– lanac za odlazne pakete;
Paket koji prolazi kroz te lance može biti podložan sljedećim radnjama: PRIHVATITI, PAD, ODBITI, LOG.
Ukratko, pristigli paket prolazi kroz lanac pravila. Svako pravilo sadrži stanje I cilj(akcijski). Ako paket zadovoljava uvjet, tada se prenosi do cilja, inače se na paket primjenjuje sljedeće pravilo u lancu. Ako paket ne zadovoljava niti jedan uvjet u lancu, na njega se primjenjuje zadana radnja.
Lanac | Stol | ||
---|---|---|---|
filtar | nat | komadati | |
ULAZNI | + | + | |
NAPRIJED | + | + | |
IZLAZ | + | + | + |
PRETHODNO RUTIRANJE | + | + | |
POSTRUTIRANJE | + | + |
uslužni program iptables
Instalacija iptables
# na Arch Linux yaourt -S iptables # na Ubuntu sudo apt-get install iptables
Pokretanje iptables
# pod Arch Linux sudo systemctl omogućiti iptables sudo systemctl start iptables # pod Ubuntu sudo servis iptables start
Pravila spremanja
# pod Arch Linuxom sudo sh -c "iptables-save > /etc/iptables/iptables.rules" # pod Ubuntu sudo sh -c "iptables-save > /etc/iptables.rules"
Vraćanje pravila iz datoteke
Iptables-vraćanje< firewall-config
Svako pravilo u iptables- ovo je zasebna linija, formirana prema određenim pravilima i sadrži kriterije i radnje. Općenito, pravilo ima sljedeći format:
Naredba Iptables [-t table].
- t tablica - određuje naziv tablice za koju će se pravilo kreirati;
- naredba - naredba koja definira radnju iptables- dodati pravilo, izbrisati pravilo itd.;
- podudaranje - specificira kriterije provjere koji određuju je li paket podložan pravilu ili ne;
- meta/skok - koju akciju treba izvesti kada je kriterij zadovoljen;
iptables naredbe:
- -A - dodavanje pravila u lanac, pravilo će biti dodano na kraj lanca;
- -D - ukloniti pravilo iz lanca;
- -R - zamijeniti jedno pravilo drugim;
- -I - umetnuti novo pravilo u lanac;
- -L - prikazati popis pravila u zadanom lancu;
- -F - poništi sva pravila u zadanom lancu;
- -Z - poništava sve brojače u zadanom lancu;
- -N - stvoriti novi lanac sa zadanim imenom;
- -X - brisanje lanca;
- -P - postavlja zadanu politiku za lanac;
- -E - preimenujte korisnički lanac;
Primjeri iptables naredbi
Paketi se mogu filtrirati prema sljedećim parametrima:
Izvor paketa
Za filtriranje prema izvoru koristite opciju -s. Na primjer, zabranimo sve dolazne pakete iz čvora 192.168.1.95:
Iptables -A INPUT -s 192.168.1.95 -j DROP
Možete koristiti naziv domene za navođenje adrese hosta:
Iptables -A INPUT -s test.host.net -j DROP
Također možete navesti cijelu mrežu:
Iptables -A INPUT -s 192.168.1.0/24 -j DROP
Također možete koristiti negaciju (znak!). Na primjer, svi paketi s hostova koji nisu 192.168.1.96 bit će uništeni:
Iptables - ULAZ! -s 192.168.1.96 -j KAP
Dopuštamo protok prometa kroz localhost:
Iptables -A INPUT 1 -i lo -j ACCEPT
Bilježimo pokušaje prijevare s prefiksom “IP_SPOOF A:” i prekidamo vezu
Iptables -A INPUT -i eth1 -s 10.0.0.0/8 -j LOG --log-prefix "IP_SPOOF A: " iptables -A INPUT -i eth1 -s 10.0.0.0/8 -j DROP
Adresa odredišta
Da biste to učinili morate koristiti opciju -d. Na primjer, zabranimo sve odlazne pakete prema hostu 192.168.1.95:
Iptables -A IZLAZ -d 192.168.156.156 -j DROP
Zabrani pristup resursu
Iptables -A OUTPUT -d vk.com -j REJECT
Kao i kod izvora paketa, možete koristiti mrežne adrese i nazive domena. Poricanje također djeluje.
Protokol
Opcija -p navodi protokol. Može se koristiti sve, icmp, tcp, udp ili broj protokola (od /etc/protocols).
Dopuštanje dolaznih eho zahtjeva
Iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
Izvorna luka
Dopusti sve odlazne pakete s porta 80:
Iptables -A INPUT -p tcp --sport 80 -j ACCEPT
Blokiraj sve dolazne zahtjeve na portu 80:
Iptables -A INPUT -p tcp --dport 80 -j DROP
Za navođenje porta morate navesti protokol (tcp ili udp). Možete koristiti negaciju.
Otvoreni raspon priključaka
Iptables -A INPUT -m stanje --stanje NOVO -m tcp -p tcp --dport 7000:7010 -j PRIHVATA
Odredišna luka
Dopusti veze putem HTTP-a
Iptables -A ULAZ -p tcp --dport 80 -j PRIHVATA iptables -A ULAZ -p tcp -i eth0 --dport 22 -j PRIHVATA
Dopusti primanje podataka s DHCP poslužitelja
Iptables -A INPUT -p UDP --dport 68 --sport 67 -j ACCEPT
- Daljinski iskorištavanje softverskih grešaka kako bi ga učinili neoperativnim;
- Poplava- slanje ogromnog broja besmislenih paketa na adresu žrtve. Meta poplave može biti komunikacijski kanal ili strojni resursi. U prvom slučaju tok paketa zauzima cijelu propusnost i ne dopušta napadnutom stroju da obradi legitimne zahtjeve. U drugom slučaju, resursi stroja se preuzimaju kroz ponovljene i vrlo česte pozive nekom servisu koji izvodi složenu operaciju koja zahtijeva velike resurse. To može biti, na primjer, dugotrajni poziv jednoj od aktivnih komponenti (skripta) web poslužitelja. Poslužitelj troši sve resurse stroja na obradu zahtjeva napadača, a korisnici moraju čekati. Postoje različiti floodovi: ICMP flood, SYN flood, UDP flood i HTTP flood
Prikupljanje informacija o mrežnim vezama
Pogledajte otvorene veze
Netstat -ntu | awk "(ispiši $5)" | izrezati -d: -f1 | sortirati | jedinstven -c | sortirati -n
Broj veza na port 80
Netstat -na | grep ":80\ " | wc -l
Dump TCP veze (na koju se domenu najčešće šalju zahtjevi)
Tcpdump -npi eth0 domena priključka
SYN flood se može provjeriti brojanjem poluotvorenih TCP veza
Netstat -na | grep ":80 " | grep SYN_RCVD
Zaštita od različitih vrsta poplava.
ICMP poplava. Vrlo primitivna metoda začepljenja propusnosti i stvaranja opterećenja na mrežnom stogu monotonim slanjem ICMP ECHO zahtjeva (ping). Lako se detektira analizom toka prometa u oba smjera: tijekom ICMP napada poplavom gotovo su identični. Gotovo bezbolna metoda apsolutne zaštite temelji se na onemogućavanju odgovora na ICMP ECHO zahtjeve:
Sysctl net.ipv4.icmp_echo_ignore_all=1
Ili pomoću iptabels:
Iptables -A INPUT -p icmp -j DROP --icmp-type 8
SYN poplava. Jedan od uobičajenih načina ne samo začepljenja komunikacijskog kanala, već i stavljanja mrežnog skupa operativnog sustava u stanje u kojem više ne može prihvaćati nove zahtjeve za povezivanje. Na temelju pokušaja inicijalizacije velikog broja istodobnih TCP veza slanjem SYN paketa s nepostojećom povratnom adresom. Nakon nekoliko pokušaja slanja ACK paketa odgovora na nedostupnu adresu, većina operativnih sustava stavlja neuspostavljenu vezu u red čekanja. I tek nakon n-tog pokušaja veza se prekida. Budući da je protok ACK paketa vrlo velik, red čekanja ubrzo postaje pun, a kernel odbija pokušaje otvaranja nove veze. Najpametniji DoS botovi također analiziraju sustav prije pokretanja napada kako bi poslali zahtjeve samo za otvaranje vitalnih portova. Lako je prepoznati takav napad: samo se pokušajte spojiti na jednu od usluga.
Ključni koncepti iptables su:
Kriteriji - logički izraz koji analizira svojstva paketa i/ili veze i određuje je li određeni paket podložan trenutnom pravilu. Kriteriji su povezani logičkim "I".
Akcija - opis akcije koju je potrebno izvršiti s paketom i/ili vezom ako spadaju u opseg ovog pravila. Radnje će biti detaljnije opisane u nastavku.
Brojač je komponenta pravila koja osigurava obračun broja paketa koji potpadaju pod kriterije određenog pravila. Brojač također uzima u obzir ukupnu količinu takvih paketa u bajtovima.
Osnovni lanac je lanac kreiran prema zadanim postavkama kada se tablica inicijalizira. Svaki paket, ovisno o tome je li namijenjen samom hostu, generiran od njega ili je tranzitni, mora proći kroz skup osnovnih lanaca raznih tablica koje su mu dodijeljene. Osim toga, osnovni lanac se razlikuje od korisničkog lanca u prisutnosti "zadane politike". Ova se radnja odnosi na one pakete koji nisu obrađeni drugim pravilima u ovom lancu i lancima koji su iz njega pozvani. Nazivi baznih lanaca uvijek se pišu velikim slovima (PREROUTING, INPUT, FORWARD, OUTPUT, POSTROOUTING).
Korisnički lanac - lanac koji je stvorio korisnik. Može se koristiti samo unutar vlastite tablice. Preporučljivo je ne koristiti imena velikim slovima za takve lance kako biste izbjegli zabunu s osnovnim lancima i ugrađenim radnjama.
Pravilo – sastoji se od kriterija, radnje i kontra. Ako paket zadovoljava kriterije, nad njim se poduzima akcija i on se ubraja u brojač. Možda ne postoji kriterij - tada se implicitno pretpostavlja kriterij "svi paketi". Također nije potrebno navesti radnju - u nedostatku akcije, pravilo će raditi samo kao brojač. Pravila za svaki lanac pokreću se redoslijedom kojim se pojavljuju, stoga je redoslijed važan.
Lanac je uređen niz pravila. Lanci se mogu podijeliti na prilagođene i osnovne.
Tablica je skup osnovnih i korisničkih lanaca objedinjenih zajedničkom funkcionalnom svrhom. Imena tablica (kao i kriterijskih modula) pišu se malim slovima jer u načelu ne mogu biti u sukobu s nazivima korisničkih lanaca. Prilikom pozivanja naredbe iptables, tablica se navodi u formatu -t table_name. Ako nije izričito navedeno, koristi se tablica filtera.
Raščlanjivanje:
# Pravila tablice ispisa filtera$ sudo iptables-save -c -t filter # Filtar tablice * filter # INPUT, FORWARD, OUTPUT lanci, njihove politike i brojači:PRIHVAĆANJE ULAZA [ 19302 :9473669 ] :PRIHVATANJE NAPRIJED [ 0 :0 ] :PRIHVATANJE IZLAZA [ 5462736 :4247599532 ] # Pravilo: "" - brojač pravila, "-A INPUT" - lanac, "-i em1 -p tcp -m tcp --dport 22" - kriteriji, "-j ACCEPT" - akcija[ 17 :1020 ] -A INPUT -i em1 -p tcp -m tcp --dport 22 -j PRIHVATI PREDAJUArhitektura
U sustavu netfilter paketi se prosljeđuju kroz lance. Lanac je uređeni popis pravila, a svako pravilo može sadržavati kriterije i radnju ili prijelaz. Kada paket prolazi kroz lanac, netfilter sustav provjerava jedan po jedan ispunjava li paket sve kriterije sljedećeg pravila, i ako je tako, izvršava akciju (ako nema kriterija u pravilu, tada se izvršava akcija za sve pakete koji prolaze kroz pravilo). Puno je mogućih kriterija. Na primjer, paket odgovara kriteriju –source 192.168.1.1 ako zaglavlje paketa pokazuje da je izvor 192.168.1.1. Najjednostavniji tip skoka, –jump, jednostavno prosljeđuje paket na početak drugog lanca. Također možete navesti radnju koristeći –jump. Standardne akcije dostupne u svim lancima su ACCEPT (preskoči), DROP (brisanje), QUEUE (slanje vanjskom programu na analizu) i RETURN (povratak na prethodni lanac na analizu). Na primjer, naredbe
Iptables -A INPUT --source 192.168.1.1 --jump ACCEPT iptables -A INPUT --jump other_chain
znači "dodajte sljedeća pravila na kraj INPUT lanca: preskočite pakete s 192.168.1.1 i pošaljite sve što preostane za analizu u other_lanac."
Lanci
Postoji 5 vrsta standardnih lanaca ugrađenih u sustav:
PREROUTING - za početnu obradu dolaznih paketa.
INPUT - za dolazne pakete adresirane izravno na lokalni proces (klijent ili poslužitelj).
FORWARD - za dolazne pakete proslijeđene na izlaz (imajte na umu da proslijeđeni paketi prvo prolaze kroz PREROUTING lanac, zatim FORWARD i POSTROUTING).
IZLAZ - za pakete koje generiraju lokalni procesi.
POSTROUTING - za konačnu obradu odlaznih paketa.
Također možete stvarati i uništavati vlastite lance pomoću uslužnog programa iptables.
Stolovi
Lanci su organizirani u 4 tablice:
Neobrađeno - pregledava se prije slanja paketa sustavu za otkrivanje stanja. Rijetko se koristi, na primjer za označavanje paketa koje NE treba obraditi sustav za otkrivanje stanja. Da biste to učinili, pravilo navodi radnju NOTRACK. Sadrži PREROUTING i OUTPUT lance.
Mangle - sadrži pravila za modificiranje (obično zaglavlja) IP paketa. Između ostalog, podržava TTL (Time to live), TOS (Type of Service) i MARK radnje (za promjenu polja TTL i TOS te za promjenu markera paketa). Rijetko je potrebno i može biti opasno. Sadrži svih pet standardnih lanaca.
Nat - Gleda samo pakete koji stvaraju novu vezu (prema sustavu detekcije stanja). Podržava akcije DNAT, SNAT, MASQUERADE, REDIRECT. Sadrži lance PREROUTING, OUTPUT i POSTROUTING.
Filter - glavna tablica, koristi se prema zadanim postavkama ako naziv tablice nije naveden. Sadrži lance INPUT, FORWARD i OUTPUT.
Lanci s istim imenom, ali u različitim tablicama, potpuno su neovisni objekti. Na primjer, neobrađeni PREROUTING i mangle PREROUTING obično sadrže različit skup pravila; paketi prvo prolaze kroz neobrađeni PREROUTING lanac, a zatim kroz mangle PREROUTING lanac.
Države
U sustavu netfilter svaki paket koji prolazi kroz mehanizam stanja može imati jedno od četiri moguća stanja:
NOVO - paket otvara novu sesiju. Klasičan primjer je TCP paket sa zastavom SYN.
ESTABLISHED - Paket je dio već postojeće sesije.
POVEZANO - Paket otvara novu sesiju povezanu s već otvorenom sesijom. Na primjer, tijekom pasivne FTP sesije, klijent se spaja na port 21 poslužitelja, poslužitelj govori klijentu broj drugog, nasumično odabranog porta, nakon čega se klijent spaja na drugi port za prijenos datoteka. U ovom slučaju, druga sesija (prijenos datoteke na drugom priključku) povezana je s već postojećom sesijom (izvorna veza na priključak 21).
NEVAŽEĆI - svi ostali paketi.
Dijagram prolaza stolova i lanaca
Pojednostavljeni dijagram prolaza stolova i lanaca:
Detaljni dijagram:
Osnovna konfiguracija
Dolje je primjer osnovne statičke konfiguracije iptables. Prilikom spremanja i učitavanja takve konfiguracije morate uzeti u obzir mogućnost njezinih promjena s drugih usluga, na primjer Fail2ban. Dodatno, kada koristite IPv6 adresiranje, konfiguracija za IPv6 treba biti obavljena neovisno o IPv4.
IPv4
sudo iptables-saveNapravite skriptu s dumpom iptables pravila:
sudo nano / etc/ network/ if-up.d/ iptables-rulesKopirajte sljedeći kod:
#!/sbin/iptables-restore -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -m conntrack -- ctstate RELATED,ESTABLISHED -j ACCEPT -A FORWARD -p icmp -j ACCEPT -A FORWARD -j REJECT --reject-with icmp-host-prohibited #-A OUTPUT -p icmp -j ACCEPT #-A OUTPUT -o lo - j PRIHVATITI #-A OUTPUT -j REJECT --reject-with icmp-host-prohibited POČINITIDopunjavamo potrebnim pravilima uzimajući u obzir iptables-save.
sudo chmod +x / etc/ network/ if-up.d/ iptables-rules sudo / etc/ network/ if-up.d/ iptables-rulesIPv6
Pogledajte trenutnu konfiguraciju:
sudo ip6tables-saveNapravite skriptu s dumpom pravila ip6tables:
sudo nano / etc/ network/ if-up.d/ ip6tables-rulesKopirajte sljedeći kod:
#!/sbin/ip6tables-restore # Tablica filtera i njeni lanci* filter:INPUT ACCEPT [ 0 :0 ] :FORWARD ACCEPT [ 0 :0 ] :OUTPUT ACCEPT [ 0 :0 ] # Dopusti povezane i uspostavljene veze-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT # Dopusti servisnom icmp prometu-A ULAZ -p ipv6-icmp -j PRIHVAT # Dopustite pouzdani promet prema sučelju povratne petlje-A INPUT -i lo -j ACCEPT # Ovdje se mogu umetnuti dodatna pravila za lanac INPUT # Onemogući sve ostalo za INPUT-A INPUT -j REJECT --reject-with icmp6-adm-prohibited # Redoslijed i značenje pravila za FORWARD i OUTPUT lance slično je INPUT-u-A PROSLJED -m conntrack --ctstate RELATED,ESTABLISHED -j PRIHVAT -A PROSLIJED -p ipv6-icmp -j PRIHVAT -A PROSLIJED -j ODBIJA --odbaci-s icmp6-adm-prohibited # Filtriranje lanca OUTPUT se strogo ne preporučuje #-A OUTPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT #-A IZLAZ -p ipv6-icmp -j PRIHVAT#-A IZLAZ -o lo -j PRIHVATITI #-A OUTPUT -j REJECT --reject-with icmp6-adm-prohibited POČINITIDopunjavamo potrebnim pravilima uzimajući u obzir ip6tables-save.
Spremi i zatvori: Ctrl + O, Enter, Ctrl + X
Učinite skriptu izvršnom i učitajte pravila iptables:
sudo chmod +x / etc/ network/ if-up.d/ ip6tables-rules sudo / etc/ network/ if-up.d/ ip6tables-rulesDodatna pravila
Ispod su neka relativno često korištena pravila. INPUT/OUTPUT lanci se koriste za filtriranje lokalnog prometa. Za tranzitni promet morate koristiti lanac NAPRIJED.
Udaljeni pristup
# remote.ssh -A INPUT -p tcp -m conntrack --ctstate NOVO -m tcp --dport 22 -j ACCEPT # remote.rdp -A INPUT -p tcp -m conntrack --ctstate NOVO -m tcp --dport 3389 -j PRIHVATA # remote.vnc -A ULAZ -p tcp -m conntrack --ctstate NOVO -m tcp --dport 5900 -j PRIHVATA
Web i datotečne usluge
# web.http, web.https -A INPUT -p tcp -m conntrack --ctstate NOVO -m multiport -A INPUT -p tcp -m conntrack --ctstate NOVO -m tcp --dport 21 -j PRIHVAĆA
Pošta i trenutne poruke
# mail.pop3, mail.pop3s -A INPUT -p tcp -m conntrack --ctstate NOVO -m multiport --dports 110,995 -j ACCEPT # mail.imap, mail.imaps -A INPUT -p tcp -m conntrack -- ctstate NOVO -m multiport --dports 143 ,993 -j ACCEPT # mail.smtp, mail.smtps -A INPUT -p tcp -m conntrack --ctstate NOVO -m multiport --dports 25 ,465 -j ACCEPT # im. xmpp -A INPUT -p tcp -m conntrack --ctstate NOVO -m multiport --dports 5222 ,5223 -j ACCEPT # im.icq.oscar -A INPUT -p tcp -m conntrack --ctstate NOVO -m tcp -- dport 5190 -j PRIHVATITI
Mrežne usluge
# network.openvpn.vpn -A ULAZ -p udp -m conntrack --ctstate NOVO -m udp --dport 1194 -j PRIHVATA # network.squid.proxy -A ULAZ -p udp -m conntrack --ctstate NOVO -m udp --dport 3128 -j PRIHVATA # network.dns -A ULAZ -p tcp -m conntrack --ctstate NOVO -m tcp --dport 53 -j PRIHVATA -A ULAZ -p udp -m conntrack --ctstate NOVO -m udp --dport 53 -j PRIHVATA # network.ntp -A ULAZ -p udp -m conntrack --ctstate NOVO -A ULAZ -p udp -m conntrack --ctstate NOVO -m udp --dport 69 -j PRIHVATA # network.dhserver.dhcp.discover-request-A INPUT -p udp -m conntrack --ctstate NOVO -m udp --sport 68 --dport 67 -j PRIHVATA # network.dhclient.dhcp.discover-request #-A IZLAZ -p udp -m conntrack --ctstate NOVO -m udp --sport 68 --dport 67 -j PRIHVATA # network.dhserver.dhcp.offer-ack #-A IZLAZ -p udp -m conntrack --ctstate NOVO -m udp --sport 67 --dport 68 -j PRIHVATA
Testiranje i otklanjanje pogrešaka
Pogledajte trenutnu konfiguraciju za IPv4 i IPv6:
sudo iptables-save sudo ip6tables-saveSječa drva
Trasiranje
Kernel moduli
Pogledajte učitane module:
lsmod | grep -E "^ip|^nf" | vrstaZa učitavanje dodatnih modula prikladno je koristiti automatsko dovršavanje: 2x Tab
sudo modprobe nf sudo modprobe modules-load.dSvako računalo spojeno na mrežu je u potencijalnoj opasnosti. Na mreži postoji mnogo prijetnji, od programa koji će na bilo koji način pokušati prodrijeti u sustav, do hakera koji žele doći do računala koje im treba. A softver instaliran na vašem računalu može sadržavati nepoznate i neispravljene ranjivosti, koje mogu postati sigurnosna rupa.
Ako ovo nije previše relevantno za kućna računala, jer su povezana s mrežom putem usmjerivača i NAT-a koji ih skrivaju od vanjske mreže, onda je za poslužitelje ovo relevantnije nego ikad. Operativni sustav Linux ima vrlo fleksibilan i pouzdan iptables firewall ugrađen u kernel.
Upravo uz pomoć ovog programa sustav se štiti od vanjskih upada, preusmjeravanja portova i mnogih drugih radnji s prometom. Ali nedostatak mu je što ga je malo teško postaviti. Ovaj članak govori o postavljanju iptables za lutke. Nadam se da ćete nakon ovoga moći s pouzdanjem koristiti osnovne mogućnosti iptablesa.
Podsustav iptables i Netfilter već je neko vrijeme ugrađen u Linux kernel. Sve mrežne pakete koji prolaze kroz računalo, koje računalo šalje ili su namijenjeni računalu usmjerava kernel kroz filter iptables. Tamo se ti paketi mogu provjeriti i zatim za svaku provjeru, ako je prošla, izvrši se radnja navedena u njoj. Na primjer, paket se prosljeđuje jezgri kako bi se poslao ciljnom programu ili se odbacuje.
Vrste paketa
Svi paketi su podijeljeni u tri vrste: dolazni, odlazni i prolazni. Dolazni su oni koji su poslani ovom računalu, odlazni su oni poslani s ovog računala na mrežu. A prolazni paketi su paketi koje jednostavno treba proslijediti dalje, na primjer ako vaše računalo djeluje kao usmjerivač.
Sukladno tome, u filtru iptables, svi paketi su podijeljeni u tri slična lanca:
- Ulazni- obrađuje dolazne pakete i veze. Na primjer, ako se bilo koji vanjski korisnik pokuša spojiti na vaše računalo putem ssh-a ili vam bilo koja web stranica pošalje svoj sadržaj na zahtjev preglednika. Svi ovi paketi će završiti u ovom lancu;
- naprijed- ovaj lanac služi za prolazne veze. Ovo uključuje pakete koji se šalju na vaše računalo, ali nisu za njega namijenjeni, oni se jednostavno šalju preko mreže na svoje odredište. Kao što sam već rekao, to se opaža na usmjerivačima ili, na primjer, ako vaše računalo distribuira wifi;
- izlaz- Ovaj lanac se koristi za odlazne pakete i veze. Ovo uključuje pakete koji su stvoreni kada ste pokušali pingati web mjesto ili kada pokrenete preglednik i pokušate otvoriti bilo koje mjesto.
Ali ako mislite da možete jednostavno potpuno zatvoriti lanac unosa kako biste povećali sigurnost, onda se jako varate. Kada mreža radi, koriste se i ulazni i izlazni lanac. Na primjer, pokušavate pingati, podaci se šalju kroz izlaz, ali odgovor dolazi kroz ulaz. Ista stvar se događa prilikom pregledavanja web stranica i drugih radnji. Ali lanac prema naprijed možda se uopće neće koristiti ako vaše računalo nije usmjerivač. Stoga se konfiguriranje iptables mora obaviti vrlo pažljivo.
Pravila i akcije
Prije nego što prijeđete na stvaranje popisa pravila iptables, morate razmotriti kako funkcioniraju i što su. Za svaku vrstu paketa možete postaviti skup pravila koja će se redom provjeravati radi usklađenosti s paketom, a ako se paket podudara, na njega će se primijeniti radnja navedena u pravilu. Pravila tvore lanac, pa se ulaz, izlaz i naprijed nazivaju lancima, lancima pravila. Može postojati nekoliko radnji:
- PRIHVATITI- dopustiti paketu da prođe dalje duž lanca pravila;
- PAD- izbrisati paket;
- ODBITI- odbiti paket, pošiljatelju će biti poslana poruka da je paket odbijen;
- LOG- napraviti zapis o paketu u log datoteku;
- RED- poslati paket u korisničku aplikaciju.
Pravila mogu provjeriti sva podudaranja, na primjer, prema IP-u, prema portu primatelja ili pošiljatelja, zaglavlja paketa i još mnogo toga. Ako paket ne odgovara nijednom od pravila, tada se na njega primjenjuje zadana radnja, obično PRIHVAĆANJE.
Kad smo shvatili pravila, možemo se vratiti na lance. Osim gore navedenih, postoje dva dodatna niza pravila:
- prethodno usmjeravanje- paket ulazi u ovaj lanac prije nego što ga obradi iptables, sustav još ne zna gdje će biti poslan, na ulaz, izlaz ili naprijed;
- postriranje- svi prolazni paketi koji su već prošli prosljeđujući lanac idu ovdje.
Ali to nije sve. Imamo i iptables tablice, s kojima se također želimo pozabaviti.
ipatables tablice
Iznad lanaca pravila u iptables postoji još jedna razina apstrakcije, a to su tablice. U sustavu postoji nekoliko tablica i sve imaju standardni skup ulaznih, naprijed i izlaznih lanaca. Tablice su dizajnirane za izvođenje raznih radnji na paketima, kao što su modifikacija ili filtriranje. Ovo sada nije toliko važno za vas i bit će dovoljno znati da se filtriranje paketa iptables provodi u tablici filtera. No pogledat ćemo ih sve:
- sirovo- dizajniran za rad sa sirovim paketima prije nego što su obrađeni;
- komadati- namijenjeno modificiranju paketa;
- nat- pruža nat funkcionalnost ako želite koristiti svoje računalo kao usmjerivač;
- filtar- glavna tablica za filtriranje paketa, koja se koristi prema zadanim postavkama.
Skoro sve s teorijom, sada pogledajmo uslužni program iptables naredbenog retka, uz pomoć kojeg se upravlja iptables sustavom.
Iptables uslužni program
Podsustav iptables i netfilter ugrađeni su u kernel, ali skup uslužnih programa za upravljanje svim tim ne dolazi uvijek sa sustavom. Da biste instalirali uslužni program na Ubuntu, upišite:
sudo apt instalirajte iptables
A na distribucijama koje se temelje na Fedori, instalacija iptables se radi malo drugačije:
sudo yum instalirajte iptables
Nakon što je instalacija iptables dovršena, možete prijeći na konfiguraciju, ali pogledajmo prvo sintaksu uslužnog programa. Obično naredba ima sljedeći opći oblik:
-t tablica akcijski lanac Dodatne mogućnosti
Sada pogledajmo parametre iptables, tablica određuje tablicu s kojom se radi, ovaj parametar se može izostaviti, radnja je željena radnja, kao što je stvaranje ili brisanje pravila, a dodatni parametri opisuju radnju i pravilo koje treba izvršiti.
Ostaje razmotriti glavne radnje koje vam iptables omogućuje:
- -A- dodati pravilo u lanac;
- -S- provjerite sva pravila;
- -D- izbrisati pravilo;
- -ja- umetnite pravilo sa željenim brojem;
- -L- prikaz svih pravila u trenutnom lancu;
- -S- prikaz svih pravila;
- -F- jasno sva pravila;
- -N- stvoriti lanac;
- -X- izbrisati lanac;
- -P- postavite zadanu radnju.
Dodatne opcije za pravila:
- -str- odredite protokol, jedan od tcp, udp, udplite, icmp, icmpv6, esp, ah, sctp,
mh; - -s- navedite IP adresu uređaja koji šalje paket;
- -d- navesti IP adresu primatelja;
- -i- ulazno mrežno sučelje;
- -o- izlazno mrežno sučelje;
- -j- odaberite radnju ako se pravilo podudara.
Sada možete prijeći na primjere kako je iptables konfiguriran.
Primjeri konfiguracije Iptables
Pogledat ćemo nekoliko osnovnih primjera kako biste mogli potvrditi ono što ste pročitali iznad.
Popis pravila
Prvo pogledajmo kako vidjeti pravila iptables, za to je dovoljna opcija -L:
Također možete odrediti željeni lanac za prikaz pravila samo za njega:
iptables -L ULAZ
Pravila čišćenja
Ne možete jednostavno onemogućiti iptables zaustavljanjem usluge ažuriranja pravila iptables putem systemd-a ili čak uklanjanjem skupa uslužnih programa za konfiguraciju. Podsustav radi na razini kernela i ne ovisi o tome što ste tamo instalirali. Stoga, ako učinite nešto pogrešno, morat ćete raščistiti pravila. Da biste to učinili, pokrenite:
Ili samo za određeni lanac:
sudo iptables -F unos
Dopustite mi da vas podsjetim da se sve ove radnje izvode za zadanu tablicu - filter.
Zadana pravila
Kao što sam već rekao, ako niti jedno pravilo ne odgovara paketu, na njega se primjenjuje zadana radnja. Može se odrediti pomoću opcije -p:
sudo iptables -p INPUT ACCEPT
$ sudo iptables -p PRIHVAĆANJE IZLAZA
$ sudo iptables -p NAPRIJED DROP
U ovom primjeru dopuštamo INPUT i OUTPUT lance, ali onemogućujemo NAPRIJED.
Blokiranje paketa
Za blokiranje paketa možemo koristiti akciju DROP; možemo filtrirati pakete koje je potrebno blokirati prema mnogim kriterijima, na primjer, protokol, IP adresa, mrežna maska, port i još mnogo toga.
Ovako će izgledati naredba koja vam omogućuje dodavanje pravila iptables za blokiranje svih dolaznih paketa od 10.10.10.10:
sudo iptables -A INPUT -s 10.10.10.10 -j DROP
A sada odlazni paketi na istu adresu:
Blokiranje IP raspona vrši se na sličan način. Da biste to učinili, morate koristiti mrežnu masku 10.10.10.0/24. Ovo će biti sve adrese počevši od 10.10.10.0 do 10.10.10.255:
sudo iptables -A INPUT -s 10.10.10.0/24 -j DROP
Ili proširena verzija maske:
sudo iptables -A INPUT -s 10.10.10.0/255.255.255.0 -j DROP
Također možete blokirati sve dolazne ssh veze:
sudo iptables -A INPUT -p tcp --dport ssh -s 10.10.10.10 -j DROP
Kao što vidite, dodavanje iptables pravila je vrlo jednostavno.
Brisanje pravila
Brisanje iptables pravila radi se na isti način kao i kreiranje novih, samo umjesto opcije A morate koristiti opciju D. Prvo pogledajte popis pravila:
Na primjer, ovako možete izbrisati pravilo iptables koje je kreirano drugo:
sudo iptables -A OUTPUT -s 10.10.10.10 -j DROP
Također možete potpuno očistiti iptables pokretanjem naredbe s -F opcijom:
IPTables je uslužni program koji se koristi za upravljanje vatrozidom u Linuxu. To je moćan i praktičan alat za neželjene veze. Cijeli proces sadržan je u pravilima iptables, koja se mogu uređivati i pregledavati. Detaljnije informacije navedene su u članku.
Povijest stvaranja
Prije IPTables na Linuxu koristio je IPFW vatrozid, posuđen iz BSD-a. Zatim je s verzijom 2.4 Linux kernela počeo dolaziti s vatrozidom Netfilter i uslužnim programom IPTables za upravljanje njime. U metodologiji rada sačuvani su svi aspekti i malo funkcionalno prošireni.
Struktura i dizajn IPTables
Nakon ulaska u vatrozid, paket prolazi nekoliko provjera. To može biti kontrolni zbroj ili bilo koja druga analiza na razini jezgre. Tada je vrijeme da prođete kroz lanac PREROUTING. Zatim se provjerava u skladu s kojim se događa preusmjeravanje na sljedeći lanac. Ako paket nema adresu, kao, na primjer, u TCP-u, tada se šalje u FORWARD lanac. U slučajevima kada postoji određena adresa, slijedi lanac INPUT, a zatim do onih demona ili servisa za koje je namijenjen. Odgovor od njih također mora proći kroz nekoliko lanaca, na primjer OUTPUT. Posljednja karika u ovom procesu je lanac POSTROUTING.
Sada malo o lancima. Svaki od njih sadrži nekoliko tablica. Njihova se imena mogu ponavljati, ali to ni na koji način ne utječe na rad jer nisu međusobno povezani.
Tablice pak sadrže nekoliko pravila. U biti, pravilo je određeni uvjet koji paket koji se provjerava mora zadovoljiti. Ovisno o ishodu, na paketu se izvodi određena radnja.
Dakle, prolazeći kroz sve faze mreže, paket sekvencijalno posjećuje sve lance iu svakom se provjerava usklađenost s uvjetima određenog pravila. Ako tablicu nije izradio korisnik, izvodi se zadana radnja, u osnovi PRIHVAĆANJE, što vam omogućuje nastavak kretanja naprijed, ili DROP, koje zaustavlja paket.
Unaprijed postavljeni lanci dolaze u sljedeće kategorije:
- PRETHODNO RUTIRANJE. Početna obrada svih dolaznih paketa.
- ULAZNI. Ovo uključuje one pakete koji se šalju izravno na lokalno računalo.
- NAPRIJED. Koristi se za "tranzitne pakete" koji slijede tablicu usmjeravanja.
- IZLAZ. Koristi se za odlazne pakete.
- POSTRUTIRANJE. Posljednja faza u prolazu odlaznog paketa kroz sve lance.
Osim ugrađenih lanaca, korisnici mogu izraditi ili izbrisati vlastite.
Pregledajte pravila IPTables i upravljajte njima
Kao što je ranije spomenuto, svi lanci sadrže određene uvjete za pakete. Uslužni program IPTables koristi se za pregled i upravljanje pravilima IPTables. Svako pojedino pravilo je linija sa skupom uvjeta za pakete, kao i akcije na njima, ovisno o ishodu.
Format naredbe izgleda ovako: iptables [-t naziv tablice koja se obrađuje] naredba pod nazivom [kriteriji] [izvršena radnja].
Sve što je sadržano u može se izostaviti. Ako je ovo parametar koji specificira tablicu, koristit će se filtar. Da biste koristili određeno ime, morate dodati prekidač -t. Pozvana naredba omogućuje vam da pokrenete potrebnu radnju, na primjer, dodavanje IPTables pravila ili njegovo uklanjanje. “Kriterije” označavaju parametre po kojima će se vršiti odabir. I u "radnji" postoji radnja koju treba izvršiti ako je uvjet ispunjen.
Naredbe za kreiranje i pregled IPTables pravila
- Dodati(-A). Prilikom korištenja naredbe određujete lanac i tablicu u koju želite dodati traženo pravilo. Vrijednost tima je u tome što to čini na kraju liste.
- Brisanje (-D). Kao što naziv sugerira, briše pravilo. Kao parametre možete navesti i puno ime i brojeve koji su im dodijeljeni.
- Preimenuj-lanac (-E). Mijenja naziv lanca. Naredba navodi staro ime, a zatim novo ime.
- Ispiranje (-F). Brisanje apsolutno svih pravila određene tablice.
- Umetni (-I). Ova naredba umeće potrebno pravilo na mjesto označeno brojem.
- Popis(-L). Pogledajte Iptables pravila. Ako nije navedena tablica, koristit će se zadani filtar.
- Politika (-P). Koristi se zadana politika za navedeni lanac.
- Zamijeni (-R). Mijenja pravilo pod navedenim brojem u potrebno.
- Brisanje-lanac (-X). Ova naredba briše sve stvorene lance. Ostat će samo oni unaprijed instalirani.
- Nula (-Z). Resetira brojače prenesenih podataka u navedenom lancu.
Malo o parametrima odabira paketa
Mogu se podijeliti u tri vrste:
- Opći kriteriji. Mogu se specificirati za bilo koje pravilo. Ne zahtijevaju spajanje posebnih proširenja i modula, a također ne ovise o tome koji će se protokol koristiti.
- Ne opći kriteriji. Oni postaju dostupni korištenjem općih kriterija.
- Eksplicitan. Da biste koristili ovu vrstu, morate spojiti posebne dodatke za netfilter. Osim toga, u naredbi morate koristiti prekidač -m.
Vrijedno je govoriti malo o parametrima koji se često susreću prilikom analize paketa:
- Protokol (-p). Označava protokol.
- Izvor(i). Ovaj parametar određuje IP adresu izvora s kojeg je paket došao. Može se odrediti na nekoliko načina. Određeni host, adresa ili cijela podmreža.
- Odredište (-d). Odredišna adresa paketa. Kao i prethodni, može se opisati na nekoliko načina.
- U-sučelje (-i). Određuje dolazno sučelje paketa. Uglavnom se koristi za NAT ili na sustavima s više sučelja.
- Izlazno sučelje (-o). Odlazno sučelje.
Nekoliko primjera
Da biste vidjeli nat pravila IPTables? trebate koristiti naredbu - “iptables -L -t nat”. Saznajte opći status vatrozida - “iptables -L -n -v”. Osim toga, ova vam naredba omogućuje pregled IPTables pravila dostupnih u cijelom sustavu. Umetnite pravilo na određeno mjesto u tablici, na primjer, između prvog i drugog retka - “iptables -I INPUT 2 -s 202.54.1.2 -j DROP”. Zatim pogledajte je li dodan - “iptables -L INPUT -n --line-numbers”.
Za blokiranje određene adrese, na primjer, 12.12.12.12 - “iptables -A INPUT -s 12.12.12.12 -j DROP”.
Pomoć za iptables - “man iptables”. Ako trebate informacije o određenoj naredbi, koristite “iptables -j DROP -h”.
Konačno
IPTables naredbe morate koristiti s oprezom, budući da neispravna konfiguracija (iz neznanja) može dovesti do kvara mreže ili potpunog kvara. Stoga je vrijedno detaljno proučiti priručnike i upute prije konfiguracije. U vještim rukama IPTables se može pretvoriti u pouzdanog zaštitnika mrežnih veza. Administratori sustava aktivno koriste uslužni program za stvaranje veza izoliranih od neovlaštenog pristupa.
U ovom članku ćemo vam reći kako konfigurirati iptables na Linuxu. Naučit ćete što je to i zašto trebate konfigurirati ovu funkciju. Postavljanje iptables na Linuxu je prilično jednostavan.
Postavljanje iptables na Linuxu: Što je iptables?
Iptables je uslužni program vatrozida naredbenog retka koji koristi ulančana pravila za dopuštanje ili blokiranje prometa. Kada se veza pokuša uspostaviti na vašem sustavu, iptables traži pravilo na svom popisu koje mu odgovara. Ako ga ne pronađe, pribjegava zadanoj radnji.
Iptables gotovo uvijek dolazi unaprijed instaliran na bilo kojoj distribuciji Linuxa. Da biste ga ažurirali/instalirali, jednostavno preuzmite paket iptables:
sudo apt-get instalirajte iptables
Postoje GUI alternative za iptables kao što je Firestarter, ali iptables nije tako kompliciran ako samo pokrenete nekoliko naredbi. Budite izuzetno oprezni kada postavljate pravila iptables, posebno ako koristite SSH'd na poslužitelju, jer vas jedna pogrešna naredba može zaključati na duže vrijeme dok se ručno ne prenese na fizički stroj.
Postavljanje iptables na Linuxu za lutke
Usput, o tome smo već razgovarali prije. Možda će vam i ovo biti zanimljivo. Poveznicu možete pronaći gore.
Postavljanje iptables na Linuxu, kao što smo rekli gore, prilično je jednostavno. Ali prije nego počnete postavljati, morate se upoznati s općim konceptima opcije.
Vrste sklopova
Iptables koristi tri različita kruga: ulaz, prosljeđivanje i izlaz.
Ulazni- Ovaj lanac se koristi za kontrolu ponašanja dolaznih veza. Na primjer, ako korisnik pokuša pristupiti SSH-om vašem računalu/poslužitelju, iptables će pokušati uskladiti IP adresu i port s pravilom u lancu unosa.
Naprijed- Ovaj se lanac koristi za dolazne veze koje se zapravo ne isporučuju lokalno. Razmislite o usmjerivaču - podaci se uvijek šalju njemu, ali rijetko su zapravo namijenjeni samom usmjerivaču; Podaci se jednostavno preusmjeravaju na odredišnu stranicu. Osim ako ne radite bilo kakvo usmjeravanje, NAT ili bilo što drugo na vašem sustavu što zahtijeva prosljeđivanje, nećete čak ni koristiti ovaj lanac.
Postoji jedan pouzdan način da provjerite koristi li vaš sustav ili treba lanac naprijed.
Ova snimka zaslona prikazuje poslužitelj koji radi nekoliko tjedana i nema ograničenja na dolazne ili odlazne veze. Kao što vidite, ulazni lanac obradio je 11 GB paketa, a izlazni 17 GB. S druge strane, ulančavanje prema naprijed ne treba obraditi jedan paket. To je zato što poslužitelj ne obavlja nikakvo prosljeđivanje ili se ne koristi kao end-to-end uređaj.
Izlaz - Ovaj lanac se koristi za odlazne veze. Na primjer, ako pokušate pingati stranicu linuxinsider, iptables će provjeriti njen izlazni lanac da vidi koja se pravila primjenjuju na ping i linuxinsider prije nego što odluči hoće li dopustiti ili odbiti pokušaj povezivanja.
Upozorenje
Iako provjera vanjskog hosta izgleda kao nešto što treba proći samo kroz izlazni lanac, imajte na umu da će se ulazni lanac također koristiti za vraćanje podataka. Kada koristite iptables za zaključavanje vašeg sustava, zapamtite da mnogi protokoli zahtijevaju dvosmjernu komunikaciju, tako da i ulazni i izlazni lanac moraju biti ispravno konfigurirani. SSH je uobičajeni protokol koji ljudi zaboravljaju omogućiti na oba lanca.
Zadano ponašanje pravila
Prije nego počnete konfigurirati određena pravila, morate odlučiti kakvo želite da bude zadano ponašanje ova tri lanca. Drugim riječima, što želite da iptables učini ako veza ne odgovara nijednom postojećem pravilu?
Da vidite koji su lanci pravila konfigurirani za rukovanje neusklađenim prometom, pokrenite naredbu iptables -L.
Kao što vidite, koristili smo i naredbu grep da bismo dobili čišći rezultat. Na ovoj snimci zaslona naši su lanci trenutačno konfigurirani za prihvaćanje prometa.
Više puta želite da vaš sustav prihvaća veze prema zadanim postavkama. Osim ako niste prethodno promijenili pravila lanca pravila, ova postavka bi već trebala biti konfigurirana. U svakom slučaju, ovdje je naredba za prihvaćanje zadanih veza:
iptables --policy INPUT ACCEPT
iptables --policy OUTPUT ACCEPT
iptables --policy NAPRIJED PRIHVAT
Prema zadanim postavkama, u pravilu prihvaćanja, možete koristiti iptables za odbijanje određenih IP adresa ili brojeva portova dok nastavljate prihvaćati sve druge veze. Doći ćemo do tih naredbi za minutu.
Ako biste radije odbili sve veze i ručno odredili kojima želite dopustiti povezivanje, morate promijeniti zadanu politiku svojih sklopova da odbijaju. Ovo će vjerojatno biti korisno samo za poslužitelje koji sadrže osjetljive informacije i na koje će se uvijek povezivati samo iste IP adrese.
iptables --policy INPUT DROP
iptables --policy OUTPUT DROP
iptables --policy FORWARD DROP
Odgovori na vezu
S konfiguriranim zadanim pravilima ulančavanja, možete početi dodavati pravila u iptables tako da zna što učiniti kada naiđe na vezu s određenom IP adresom ili priključkom. U ovom ćemo vodiču pogledati tri najčešća i često korištena "odgovora".
Prihvatiti— dopustiti vezu.
Pad- Prekini vezu, ponašaj se kao da se nije dogodilo. Ovo je najbolje ako ne želite da izvor shvati da vaš sustav postoji.
Odbiti— odbiti vezu, ali poslati poruku o pogrešci. Ovo je najbolje ako ne želite da se određeni izvor povezuje s vašim sustavom, ali želite da oni znaju da ih je vaš vatrozid blokirao.
Najbolji način da pokažete razliku između ova tri pravila je da pokažete kako izgleda kada PC pokuša pingati Linux stroj s iptables konfiguriranim za svaku od ovih opcija.
Dozvola za povezivanje:
Uklanjanje veze:
Odbijanje veze:
Mrežna maska ili karakteristika za označavanje niza IP adresa.
Postavljanje iptables na Linuxu: Metode povezivanja
Ako govorimo o temi "Postavljanje iptables na Linuxu", tada moramo razgovarati o metodama povezivanja.
Dopustite ili blokirajte određene veze
S konfiguriranim pravilima, možete konfigurirati iptables da dopuste ili blokiraju određene adrese, raspone adresa i portove. U ovim primjerima ćemo postaviti veze na DROP, ali ih možete prebaciti na ACCEPT ili REJECT, ovisno o vašim potrebama i načinu na koji ste konfigurirali svoje lance pravila.
Bilješka. U ovim primjerima koristit ćemo iptables -A za dodavanje pravila postojećem lancu. Iptables počinje na vrhu popisa i prolazi kroz svako pravilo dok ne pronađe ono koje mu odgovara. Ako trebate umetnuti pravilo iznad drugog, možete koristiti iptables -I da odredite broj koji bi trebao biti na popisu.
Veze s iste 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 mrežnom rasponu 10.10.10.0/24. Možete koristiti mrežnu masku ili standardnu kosu crtu da odredite raspon IP adresa.
iptables -A INPUT -s 10.10.10.0/24 -j DROP
iptables -A INPUT -s 10.10.10.0/255.255.255.0 -j DROP
Veze na određeni priključak
Ovaj primjer pokazuje kako blokirati SSH veze od 10.10.10.10.
iptables -A INPUT -p tcp --dport ssh -s 10.10.10.10 -j DROP
Možete zamijeniti "ssh" bilo kojim protokolom ili brojem porta. -p tcp dio koda govori iptables koji protokol koristi veza. Ako ste blokirali protokol koji koristi UDP, a ne TCP, tada će umjesto toga biti potreban -p udp.
Ovaj primjer pokazuje kako blokirati SSH veze s bilo koje IP adrese.
iptables -A INPUT -p tcp --dport ssh -j DROP
Stanja veze
Kao što smo ranije spomenuli, mnogi protokoli zahtijevaju dvosmjernu komunikaciju. Na primjer, ako želite dopustiti SSH veze sa svojim sustavom, ulaznim i izlaznim krugovima će trebati dodati pravilo. No, što ako želite da se SSH prijava u vaš sustav dopusti? Ne bi li dodavanje pravila u izlazni lanac također rezultiralo odlaznim SSH pokušajima?
Ovdje dolaze stanja veze, koja vam daju opciju dopuštanja dvosmjerne komunikacije, ali dopuštaju samo jednosmjerne veze. Pogledajte ovaj primjer gdje su SSH veze OD 10.10.10.10 dopuštene, ali SSH veze DO 10.10.10.10 nisu. Međutim, sustavu je dopušteno slanje povratnih informacija putem SSH-a dok je sesija već uspostavljena, što omogućuje SSH komunikaciju između dva računala.
iptables -A INPUT -p tcp --dport ssh -s 10.10.10.10 -m stanje --stanje NOVO, ESTABLISHED -j PRIHVATLJIV
iptables -A OUTPUT -p tcp --sport 22 -d 10.10.10.10 -m stanje --stanje ESTABLISHED -j ACCEPT
Spremanje promjena
Promjene koje napravite u pravilima iptables bit će odbačene sljedeći put kada se usluga iptables ponovno pokrene osim ako ne izdate naredbu za spremanje promjena. Ova se naredba može razlikovati ovisno o vašoj distribuciji:
sudo /sbin/iptables-save
Red Hat/CentOS:
/sbin/service iptables spremanje
/etc/init.d/iptables spremiti
Ostale naredbe
Popis trenutno konfiguriranih pravila za iptables:
Dodavanje opcije -v dat će vam podatke o paketu i bajtu, a dodavanje -n sadržavat će sve numeričke vrijednosti. Drugim riječima, nazivi hostova, protokoli i mreže navedeni su kao brojevi.
Za brisanje svih trenutno konfiguriranih pravila, možete pokrenuti naredbu flush.
Prijevod s izvrsnog engleskog izvora HowToGeek.
Ako još uvijek imate pitanja o temi "Postavljanje iptables na Linuxu za lutke", možete ih napisati u obrascu za komentare na našoj web stranici.
Ako pronađete grešku, označite dio teksta i kliknite Ctrl+Enter.