Kako postaviti pametne telefone i računala. Informativni portal
  • Dom
  • Greške
  • Osnovni koncepti iptables u Linuxu. Postavljanje netfiltera pomoću iptables

Osnovni koncepti iptables u Linuxu. Postavljanje netfiltera pomoću iptables

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:

  1. komadati– koristi se za izmjene u zaglavlju paketa;
  2. nat– koristi se za prevođenje mrežnih adresa;
  3. 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:

  1. ULAZNI– lanac za dolazne pakete;
  2. NAPRIJED– lanac za proslijeđene (tranzitne) pakete;
  3. 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:

    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.

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

    Lanac je uređen niz pravila. Lanci se mogu podijeliti na prilagođene i osnovne.

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

    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 PREDAJU

Arhitektura

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-save

Napravite skriptu s dumpom iptables pravila:

sudo nano / etc/ network/ if-up.d/ iptables-rules

Kopirajte 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ČINITI

Dopunjavamo 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-rules

IPv6

Pogledajte trenutnu konfiguraciju:

sudo ip6tables-save

Napravite skriptu s dumpom pravila ip6tables:

sudo nano / etc/ network/ if-up.d/ ip6tables-rules

Kopirajte 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ČINITI

Dopunjavamo 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-rules

Dodatna 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-save

Sječa drva

Trasiranje

Kernel moduli

Pogledajte učitane module:

lsmod | grep -E "^ip|^nf" | vrsta

Za učitavanje dodatnih modula prikladno je koristiti automatsko dovršavanje: 2x Tab

sudo modprobe nf sudo modprobe modules-load.d

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

Najbolji članci na temu