Kako podesiti pametne telefone i računare. Informativni portal
  • Dom
  • Greške
  • Osnovni koncepti iptablesa u Linuxu. Postavljanje netfiltera sa iptables

Osnovni koncepti iptablesa u Linuxu. Postavljanje netfiltera sa iptables

Glavni zadatak firewall(firewall) filtriranje i obrada paketa koji prolaze kroz mrežu. Kada analizira ulazni paket, zaštitni zid odlučuje o sudbini ovog paketa: baci paket ( DROP), prihvatite paket ( ACCEPT) ili uradite nešto drugo s njim.

V Linux firewall je modul kernela koji se zove netfilter i predstavlja skup kukica za rad sa mrežnim stekom. Interfejs za modifikaciju pravila po kojima firewall obrađuje pakete je pomoćni program iptables za IPv4 i uslužni program ip6tables za IPv6.

Sav posao filtriranja saobraćaja obavlja jezgro sistema. Iptables nije demon i ne kreira nove procese na sistemu. Uključite ili isključite iptables to samo šalje signal kernelu. Visoka brzina filtriranja postiže se analizom samo zaglavlja paketa.

Na glavne karakteristike iptables vezati:

  • filtriranje saobraćaja na osnovu adresa pošiljaoca i primaoca paketa, brojeva portova;
  • preusmjeravanje paketa prema određenim parametrima;
  • organizacija pristupa mreži (SNAT);
  • prosljeđivanje portova iz globalne mreže u lokalnu mrežu (DNAT);
  • ograničavanje broja priključaka;
  • postavljanje prometnih kvota;
  • izvršavanje pravila prema rasporedu;

Razmotrimo glavni proces rada iptables(izvor slike rigacci.org).

Dolazni paket prvo stiže do mrežnog uređaja, nakon čega ga drajver presreće i prenosi kernelu. Nakon toga, paket se propušta kroz veći broj tabela i tek tada se prenosi lokalnoj aplikaciji ili preusmjerava na drugi sistem, ako se radi o tranzitnom paketu.

V iptables koriste se tri vrste tablica:

  1. mangle- koristi se za izmjene zaglavlja paketa;
  2. nat- koristi se za prevođenje mrežnih adresa;
  3. filter- za filtriranje saobraćaja;

Mangle table

Glavna svrha stola mangle- unošenje promjena u zaglavlje paketa. U ovoj tabeli se mogu izvršiti sljedeće radnje:

  • postavljanje bita Type of Service;
  • postavljanje polja Time To Live;
  • postavljanje etikete na paket koji se može provjeriti u drugim pravilima;

Lanci u stolu mangle:

  • PRERAUTIRANJE- koristi se za izmjene paketa na ulazu u iptables, prije odluke o rutiranju;
  • POSTROUTING- koristi se za izmjenu paketa na izlazu iz iptablesa, nakon odluke o rutiranju;
  • INPUT- koristi se za izmjene paketa prije nego što se prebace u lokalnu aplikaciju;
  • IZLAZ- koristi se za modifikaciju paketa koji dolaze iz aplikacije unutar iptablesa;
  • NAPRIJED- koristi se za izmjene tranzitnih paketa;

Nat table

Tabela se koristi za translaciju mrežnih adresa i kada se naiđe na paket za uspostavljanje nove veze. U ovoj tabeli se mogu izvršiti sljedeće radnje:

  • DNAT (prevod mrežne adrese odredišta)- konverzija odredišne ​​adrese u zaglavlju paketa;
  • SNAT (prevod izvorne mrežne adrese)- promjena izvorne adrese paketa;
  • MASQUERADE- koristi se u iste svrhe kao SNAT ali vam omogućava rad sa dinamičkim IP adresama;

Lanci u ovoj tabeli:

  • PRERAUTIRANJE- koristi se za izmjene paketa na ulazu u iptables;
  • IZLAZ- koristi se za prevođenje adresa u paketima prije daljeg rutiranja;
  • POSTROUTING- koristi se za pretvaranje paketa prije slanja u mrežu;

Tabela filtera

Tabela se koristi za filtriranje paketa. U ovoj tabeli postoje tri lanca:

  1. INPUT- lanac za dolazne pakete;
  2. NAPRIJED- lanac za prosleđene (tranzitne) pakete;
  3. IZLAZ- lanac za odlazne pakete;

Paket koji prolazi kroz ove lance može biti podložan radnjama: ACCEPT, DROP, REJECT, LOG.

Da rezimiramo, paket koji stiže prolazi kroz lanac pravila. Svako pravilo sadrži stanje i svrha(akcija). Ako paket zadovoljava uslov, onda se šalje do cilja, u suprotnom se na paket primjenjuje sljedeće pravilo u lancu. Ako paket ne zadovoljava nijedan od uslova u lancu, tada se na njega primjenjuje zadana akcija.

Lanac sto
filter nat mangle
INPUT + +
NAPRIJED + +
IZLAZ + + +
PRERAUTIRANJE + +
POSTROUTING + +

Iptables uslužni program

Instaliranje iptablesa

# za Arch Linux yaourt -S iptables # Za Ubuntu sudo apt-get install iptables

Pokretanje iptablesa

# pod Arch Linuxom sudo systemctl omogući iptables sudo systemctl start iptables # Pod Ubuntu sudo servisom iptables start

Pravila čuvanja

# za Arch Linux sudo sh -c "iptables-save> /etc/iptables/iptables.rules" # za Ubuntu sudo sh -c "iptables-save> /etc/iptables.rules"

Vraćanje pravila iz datoteke

Iptables-restore< firewall-config

Svako pravilo unutra iptables je posebna linija formirana prema određenim pravilima i koja sadrži kriterije i radnje. Općenito, pravilo ima sljedeći format:

Iptables [-t tablica] naredba

  • t table - specificira ime tabele za koju će se kreirati pravilo;
  • naredba - naredba koja definira akciju iptables- dodati pravilo, izbrisati pravilo itd.;
  • podudaranje - postavlja kriterijume testiranja po kojima se utvrđuje da li paket podleže pravilu ili ne;
  • cilj/skok - koja radnja treba biti izvedena kada je kriterij ispunjen;

Iptables komande:

  • -A - dodajte pravilo u lanac, pravilo će biti dodato na kraj lanca;
  • -D - ukloniti pravilo iz lanca;
  • -R - zamijeniti jedno pravilo drugim;
  • -I - ubaciti novo pravilo u lanac;
  • -L - prikazuje listu pravila u navedenom lancu;
  • -F - briše sva pravila u navedenom lancu;
  • -Z - resetujte sve brojače u navedenom lancu;
  • -N - kreirati novi lanac sa navedenim imenom;
  • -X - brisanje lanca;
  • -P - postavlja zadanu politiku za lanac;
  • -E - preimenovati korisnički lanac;

Primjeri Iptables komandi

Paketi se mogu filtrirati prema sljedećim parametrima:

Izvor paketa

Opcija -s se koristi za filtriranje prema izvoru. Na primjer, zabranit ćemo sve dolazne pakete sa hosta 192.168.1.95:

Iptables -A INPUT -s 192.168.1.95 -j DROP

Možete koristiti ime domene da odredite adresu hosta:

Iptables -A INPUT -s test.host.net -j DROP

Također možete odrediti cjelinu za mrežu:

Iptables -A INPUT -s 192.168.1.0/24 -j DROP

Možete koristiti i negaciju (znak!). Na primjer, svi paketi sa hosta koji nisu 192.168.1.96 bit će izbrisani:

Iptables - ULAZ! -s 192.168.1.96 -j DROP

Dozvolite prometu da teče na lokalnom hostu:

Iptables -A INPUT 1 -i lo -j PRIHVATI

Zapisivanje pokušaja lažiranja s prefiksom "IP_SPOOF A:" i prekid veze

Iptables -A INPUT -i eth1 -s 10.0.0.0/8 -j LOG --log-prefiks "IP_SPOOF A:" iptables -A INPUT -i eth1 -s 10.0.0.0/8 -j DROP

Adresa odredišta

Da biste to učinili, trebate koristiti opciju -d. Na primjer, zabranit ćemo sve odlazne pakete hostu 192.168.1.95:

Iptables -A OUTPUT -d 192.168.156.156 -j DROP

Zabrani pristup resursu

Iptables -A IZLAZ -d vk.com -j ODBACI

Kao iu slučaju sa izvorom paketa, možete koristiti adrese za mreže i imena domena. Poricanje također djeluje.

Protokol

Opcija -p označava protokol. Može biti korišteno sve, icmp, tcp, udp ili broj protokola (od / etc / protokoli).

Dozvolite dolazne eho zahtjeve

Iptables -A INPUT -p icmp --icmp-tip echo-request -j PRIHVATI

Izvorni port

Dozvoli sve odlazne pakete sa porta 80:

Iptables -A INPUT -p tcp --sport 80 -j PRIHVATI

Blokirajte sve dolazne zahtjeve na portu 80:

Iptables -A INPUT -p tcp --dport 80 -j DROP

Da biste naveli port, morate navesti protokol (tcp ili udp). Može se koristiti negacija.

Otvoreni opseg portova

Iptables -A INPUT -m stanje --stanje NOVO -m tcp -p tcp --dport 7000: 7010 -j PRIHVATI

Odredišna luka

Dozvolite HTTP veze

Iptables -A INPUT -p tcp --dport 80 -j PRIHVATI iptables -A INPUT -p tcp -i eth0 --dport 22 -j PRIHVATI

Omogućavanje primanja podataka sa DHCP servera

Iptables -A INPUT -p UDP --dport 68 --sport 67 -j PRIHVATI

  • Daljinski iskorištavanje softverskih grešaka kako bi se učinio neoperativnim;
  • Poplava- slanje ogromnog broja besmislenih paketa na adresu žrtve. Cilj poplave može biti komunikacijski kanal ili resursi stroja. U prvom slučaju, tok paketa zauzima cijelu propusnost i ne daje napadnutoj mašini mogućnost da obrađuje legitimne zahtjeve. U drugom, resursi mašine su zarobljeni korišćenjem višestrukih i vrlo čestih poziva bilo kojoj usluzi koja izvodi složenu operaciju koja zahteva mnogo resursa. To može biti, na primjer, dug poziv jednoj od aktivnih komponenti (skripte) web servera. Server troši sve resurse mašine na obradu zahteva napadača, a korisnici moraju da čekaju. Poplava može biti različita: ICMP poplava, SYN poplava, UDP poplava i HTTP poplava

Prikupljanje informacija o mrežnim vezama

Pogledajte otvorene veze

Netstat -ntu | awk "(print $5)" | rez -d: -f1 | sortiraj | uniq -c | sortirati -n

Broj konekcija na port 80

Netstat -na | grep ": 80 \" | wc -l

Dump TCP veze (na koju domenu zahtjevi najčešće idu)

Tcpdump -npi eth0 port domena

SYN poplave se mogu provjeriti prebrojavanjem broja poluotvorenih TCP veza

Netstat -na | grep ": 80" | grep SYN_RCVD

Zaštita od različitih vrsta poplava.

ICMP poplava. Vrlo primitivna metoda začepljenja propusnog opsega i stvaranja opterećenja na mrežnom stogu kroz monotono slanje ICMP ECHO zahtjeva (ping). Lako se detektuje analizom saobraćajnog toka u oba smjera: tokom ICMP napada poplave, oni su gotovo identični. Gotovo bezbolan način apsolutne zaštite zasniva se na onemogućavanju odgovora na ICMP ECHO zahtjeve:

Sysctl net.ipv4.icmp_echo_ignore_all = 1

Ili koristeći iptabels:

Iptables -A INPUT -p icmp -j DROP --icmp-tip 8

SYN flood. Jedan od uobičajenih načina ne samo da se začepi komunikacijski kanal, već i da se mrežni stog operativnog sistema dovede u stanje u kojem više ne može prihvatiti nove zahtjeve za povezivanje. Zasnovano na pokušaju inicijalizacije velikog broja istovremenih TCP veza slanjem SYN paketa s nepostojećom povratnom adresom. Nakon nekoliko pokušaja slanja paketa ACK odgovora na nedostupnu adresu, većina operativnih sistema će staviti neusklađenu vezu u red čekanja. I tek nakon n-tog pokušaja veza se zatvara. Pošto je protok ACK paketa veoma velik, ubrzo je red pun i kernel odbija da pokuša da otvori novu vezu. Najpametniji DoS botovi također analiziraju sistem prije početka napada kako bi poslali zahtjeve samo na otvorene vitalne portove. Lako je prepoznati takav napad: samo pokušajte da se povežete na jednu od usluga.

Ključni koncepti u iptables-u su:

    Pravilo - sastoji se od kriterijuma, akcije i brojača. Ako paket odgovara kriteriju, na njega se primjenjuje akcija i broji. Kriterijum može ili ne mora postojati - tada se implicitno pretpostavlja kriterijum "svi paketi". Također nije potrebno specificirati akciju - u nedostatku radnje, pravilo će raditi samo kao brojač. Pravila za svaki lanac se aktiviraju redoslijedom kojim se pojavljuju, tako da je redoslijed važan.

    • Kriterijum je logički izraz koji analizira svojstva paketa i/ili veze i određuje da li se ovaj paket podudara sa trenutnim pravilom. Kriterijumi su povezani logičkim "I".

      Akcija - opis radnje koju treba izvršiti s paketom i/ili vezom ako spadaju u okvir ovog pravila. Radnje će biti detaljnije opisane u nastavku.

      Brojač je komponenta pravila koja daje obračun za broj paketa koji potpadaju pod kriterij ovog pravila. Brojač takođe uzima u obzir ukupni volumen takvih paketa u bajtovima.

    Lanac je uređeni 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, u zavisnosti od toga da li je namenjen samom hostu, generisan od njega, ili je prolazan, mora proći kroz dodeljeni skup osnovnih lanaca različitih tabela. Osim toga, osnovni lanac se razlikuje od korisničkog lanca po tome što ima „podrazumevanu politiku“. Ova akcija se odnosi na one pakete koji nisu obrađeni drugim pravilima ovog lanca i lancima pozvanim iz njega. Imena osnovnog lanca su uvijek velika (PREROUTING, INPUT, FORWARD, OUTPUT, POSTROUTING).

      Prilagođeni lanac - Lanac koji je kreirao korisnik. Može se koristiti samo unutar vlastite tablice. Preporučuje se da ne koristite imena velikim slovima za takve nizove kako biste izbjegli zabunu s osnovnim nizovima i inline akcijama.

    Stol je skup osnovnih i prilagođenih lanaca, ujedinjenih zajedničkom funkcionalnom namjenom. Imena tabela (kao i modula kriterijuma) pišu se malim slovima, jer u principu ne mogu biti u sukobu sa imenima korisničkih lanaca. Prilikom pozivanja naredbe iptables, tabela je navedena u formatu -t table_name. Ako nije eksplicitno navedeno, koristi se tablica filtera.

Parsing:

# Filter pravila za ispis tablice$ sudo iptables-save -c -t filter # Tabela filtera * filter # INPUT, FORWARD, OUTPUT lanci, njihove politike i brojači: PRIHVAĆANJE ULAZA [19302: 9473669]: PRIHVAĆANJE PROSLJEDE [0: 0]: PRIHVAĆANJE IZLAZA [5462736: 4247599532] # Pravilo: "" - brojač pravila, "-A INPUT" - lanac, "-i em1 -p tcp -m tcp --dport 22" - kriterijumi, "-j ACCEPT" - akcija[17: 1020] -A INPUT -i em1 -p tcp -m tcp --dport 22 -j PRIHVATI UPOZORENJE

Arhitektura

U netfilter sistemu, paketi se prolaze kroz lance. Lanac je uređena lista pravila, a svako pravilo može sadržavati kriterije i akciju ili prijelaz. Kada paket prođe kroz lanac, netfilter sistem zauzvrat provjerava da li paket ispunjava sve kriterije sljedećeg pravila, i ako je tako, onda izvodi akciju (ako nema kriterija u pravilu, tada se radnja izvodi za svi paketi koji prolaze kroz pravilo). Postoji mnogo opcija za moguće kriterijume. Na primjer, paket odgovara kriteriju –izvor 192.168.1.1 ako zaglavlje paketa pokazuje da je pošiljatelj 192.168.1.1. Najjednostavniji tip skoka, –jump, jednostavno skače paket na početak drugog lanca. Također možete odrediti akciju koristeći –jump. Standardne akcije dostupne u svim lancima su ACCEPT (preskoči), DROP (brisanje), QUEUE (pošalji na analizu eksternom programu) i RETURN (povratak na analizu u prethodni lanac). Na primjer, komande

Iptables -A INPUT --izvor 192.168.1.1 --skok PRIHVATI iptables -A INPUT --skok na drugi_lanac

znači "dodajte sljedeća pravila na kraj INPUT lanca: pustite pakete sa 192.168.1.1 da prođu, a sve što ostaje je poslati na analizu u lanac other_chain."

Lanci

Postoji 5 tipova standardnih lanaca ugrađenih u sistem:

    PRERAUTIRANJE - za početnu obradu dolaznih paketa.

    INPUT - za dolazne pakete adresirane direktno na lokalni proces (klijent ili server).

    PROSLJEĐIVANJE - za dolazne pakete preusmjerene napolje (imajte na umu da proslijeđeni paketi prvo prolaze kroz lanac PREDUZEĆA, zatim PROSLJEĐIVANJE i POSTROUTANJE).

    IZLAZ - za pakete generisane od strane lokalnih procesa.

    POSTROUTING - za doradu odlaznih paketa.

Također možete kreirati i uništiti vlastite lance koristeći iptables uslužni program.

Stolovi

Lanci su organizovani u 4 tabele:

    Raw - pregledan prije nego što se paket pošalje sistemu definicije stanja. Retko se koristi, na primer, za označavanje paketa koje NE bi trebalo da obrađuje državni sistem. Da biste to učinili, radnja NOTRACK navedena je u pravilu. Sadrži PREROUTING i OUTPUT lance.

    Mangle - sadrži pravila za modifikaciju (obično zaglavlja) IP paketa. Podržava akcije TTL (Vrijeme za život), TOS (Vrsta usluge) i MARK (za promjenu TTL i TOS polja, i za promjenu markera paketa), između ostalog. Rijetko je potrebno i može biti opasno. Sadrži svih pet standardnih lanaca.

    Nat - Traži samo pakete koji stvaraju novu vezu (prema sistemu stanja). Podržava akcije DNAT, SNAT, MASQUERADE, REDIRECT. Sadrži lance PREROUTING, OUTPUT i POSTROUTING.

    Filter - glavna tabela, koja se podrazumevano koristi ako ime tabele nije navedeno. Sadrži INPUT, FORWARD i OUTPUT lance.

Lanci sa istim imenom, ali u različitim tabelama su potpuno nezavisni objekti. Na primjer, sirovo PREROUTING i mangle PREROUTING obično sadrže drugačiji skup pravila; paketi prvo prolaze kroz sirovi lanac PREROUTING, a zatim kroz PREROUTING mangle.

države

U sistemu netfilter, svaki paket koji prolazi kroz mehanizam za detekciju stanja može imati jedno od četiri moguća stanja:

    NOVO - paket otvara novu sesiju. Klasičan primjer je TCP paket sa SYN zastavicom.

    ESTABLISHED - Paket je dio postojeće sesije.

    POVEZANO - paket otvara novu sesiju povezanu sa već otvorenom sesijom. Na primjer, tokom pasivne FTP sesije, klijent se povezuje na port 21 servera, server kaže klijentu broj drugog, nasumično odabranog porta, a zatim se klijent povezuje na drugi port radi prijenosa datoteka. U ovom slučaju, druga sesija (prijenos datoteka na drugi port) je povezana s već postojećom sesijom (originalna veza s portom 21).

    NEVAŽEĆI - svi ostali paketi.

Dijagram obilaska stolova i lanaca

Pojednostavljeni dijagram obilaska tablica i lanaca:

Detaljan dijagram:

Osnovna konfiguracija

Ispod je primjer osnovne statičke iptables konfiguracije. Prilikom pohranjivanja i učitavanja takve konfiguracije, morate uzeti u obzir mogućnost izmjene istih iz drugih servisa, na primjer Fail2ban. Osim toga, kada se koristi IPv6 adresiranje, konfiguracija za IPv6 se mora izvesti neovisno o IPv4.

IPv4

sudo iptables-save

Kreirajte skriptu sa dumpom iptables pravila:

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

Kopirajte sljedeći kod:

#! / sbin / iptables-restore -A INPUT -p icmp -j PRIHVATI -A ULAZ -i lo -j PRIHVATI -A INPUT -j REJECT --odbiti-sa icmp-host-zabranjeno -A NASLJED -m conntrack - ctstate POVEZANO, UTVRĐENO -j PRIHVATI -A PROSLJEDI -p icmp -j PRIHVATI -A PROSLJEDI -j ODBACI --odbiti-sa icmp-host-zabranjeno # -A IZLAZ -p icmp -j PRIHVATI # -A IZLAZ -o lo - j ACCEPT # -A IZLAZ -j ODBIJA --odbaci-sa icmp-host-zabranjeno COMMIT

Dodamo potrebna pravila, 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

Pregled trenutne konfiguracije:

sudo ip6tables-save

Kreirajte skriptu sa dumpom pravila ip6tables:

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

Kopirajte sljedeći kod:

#! / sbin / ip6tables-restore # Tabela filtera i njeni lanci* filter: PRIHVATI ULAZ [0: 0]: PRIHVATI NASLJED [0: 0]: PRIHVATI IZLAZ [0: 0] # Dozvoli povezane i uspostavljene veze-A INPUT -m conntrack --ctstate POVEZANO, UTVRĐENO -j PRIHVATI # Dozvoli icmp saobraćaj usluge-A ULAZ -p ipv6-icmp -j PRIHVATI # Dozvoli pouzdani promet na sučelje povratne petlje-A ULAZ -i lo -j PRIHVATI # Ovdje možete umetnuti dodatna pravila za INPUT lanac # Zabrani sve ostalo za INPUT-A ULAZ -j ODBACI --odbaciti-sa icmp6-adm-zabranjeno # Redoslijed i značenje pravila za FORWARD i OUTPUT lance isti su kao i za INPUT-A NAPRIJED -m conntrack --ctstate VEZANO, UTVRĐENO -j PRIHVATI -A NASLJEDI -p ipv6-icmp -j PRIHVATI -A NASLJEDITI -j ODBITI --odbiti-sa icmp6-adm-zabranjeno # Strogo se ne preporučuje filtriranje OUTPUT lanca # -A IZLAZ -m conntrack --ctstate POVEZAN, UTVRĐEN -j PRIHVATI # -A IZLAZ -p ipv6-icmp -j PRIHVATI# -A IZLAZ -o lo -j PRIHVATI # -A IZLAZ -j ODBIJA --odbaci-sa icmp6-adm-zabranjeno COMMIT

Dodamo potrebna pravila, uzimajući u obzir ip6tables-save.

Sačuvajte i zatvorite: Ctrl + O, Enter, Ctrl + X

Činimo skriptu izvršnom i učitavamo iptables pravila:

sudo chmod + x / etc / network / if-up.d / ip6tables-rules sudo / etc / network / if-up.d / ip6tables-rules

Dodatna pravila

Ispod su neka od najčešće korištenih pravila. INPUT/OUTPUT lanci se koriste za filtriranje lokalnog prometa. Za tranzitni saobraćaj morate koristiti lanac FORWARD.

Daljinski 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 ACCEPT # remote.vnc -A INPUT -p tcp -m conntrack --ctstate NOVO -m tcp --dport 5900 -j PRIHVATI

Web i usluge datoteka

# 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 PRIHVATI

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 NOVI -m multiport --dports 143, 993 -j ACCEPT # mail.smtp, mail.smtps -A INPUT -p tcp -m conntrack --ctstate NOVI -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 PRIHVATI

Mrežne usluge

# network.openvpn.vpn -A INPUT -p udp -m conntrack --ctstate NOVO -m udp --dport 1194 -j ACCEPT # network.squid.proxy -A INPUT -p udp -m conntrack --ctstate NOVO -m udp --dport 3128 -j PRIHVATI # network.dns -A INPUT -p tcp -m conntrack --ctstate NOVO -m tcp --dport 53 -j PRIHVATI -A INPUT -p udp -m conntrack --ctstate NOVO -m udp --dport 53 -j ACCEPT # network.ntp -A INPUT -p udp -m conntrack --ctstate NOVO -A INPUT -p udp -m conntrack --ctstate NOVO -m udp --dport 69 -j PRIHVATI # network.dhserver.dhcp.discover-request-A INPUT -p udp -m conntrack --ctstate NOVO -m udp --sport 68 --dport 67 -j PRIHVATI # network.dhclient.dhcp.discover-request # -A IZLAZ -p udp -m conntrack --ctstate NOVO -m udp --sport 68 --dport 67 -j PRIHVATI # network.dhserver.dhcp.offer-ack # -A IZLAZ -p udp -m conntrack --ctstate NOVO -m udp --sport 67 --dport 68 -j PRIHVATI

Testiranje i otklanjanje grešaka

Pregled trenutne konfiguracije za IPv4 i IPv6:

sudo iptables-save sudo ip6tables-save

Logging

Tracing

Kernel moduli

Pogledajte učitane module:

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

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

sudo modprobe nf sudo modprobe modules-load.d

Svaki računar spojen na mrežu je u potencijalnoj opasnosti. Na mreži postoji mnogo prijetnji, od programa koji će pokušati prodrijeti u sistem na bilo koji način do hakera koji žele pristupiti računaru koji im je potreban. A softver instaliran na računaru može sadržavati još nepoznate i nezakrpljene ranjivosti, što može postati sigurnosna rupa.

Ako za kućne računare to nije previše relevantno, jer su povezani na mrežu preko rutera i NAT-a, koji ih skrivaju od vanjske mreže, onda je za servere relevantnije nego ikad. Linux operativni sistem ima vrlo fleksibilan i pouzdan iptables firewall ugrađen u kernel.

Uz pomoć ovog programa sistem je zaštićen od vanjskih upada, prosljeđivanja portova, kao i mnogih drugih radnji sa prometom. Ali njegova mana je što ga je malo teško postaviti. Ovaj članak će pokriti postavljanje iptablesa za lutke. Nadam se da nakon toga možete pouzdano koristiti osnovne mogućnosti iptablesa.

Podsistem iptables i Netfilter ugrađeni su u Linux kernel već neko vrijeme. Sve mrežne pakete koji prolaze kroz računar, šalju ih računar ili su namenjeni računaru, kernel usmerava kroz iptables filter. Tamo su ovi paketi podložni provjerama i onda se za svaku provjeru, ako je prošla, izvodi navedena radnja. Na primjer, paket se prosljeđuje kernelu kako bi se poslao ciljnom programu ili odbacio.

Vrste paketa

Svi paketi su podijeljeni u tri tipa: dolazni, odlazni i prolazni. Inbox su oni koji su poslani na ovaj računar, a odlazni su oni koji su poslani sa ovog računara na mrežu. A oni koji prolaze su paketi koji se samo moraju dalje proslijediti, na primjer, ako vaš računar djeluje kao ruter.

Shodno tome, u filteru iptables, svi paketi su podijeljeni u tri slična lanca:

  • Input- obrađuje dolazne pakete i veze. Na primjer, ako se neki eksterni korisnik pokuša povezati s vašim računalom putem ssh-a ili vam bilo koja web stranica pošalje svoj sadržaj na zahtjev pretraživača. Svi ovi paketi će završiti u ovom lancu;
  • naprijed- ovaj lanac se koristi za prolazne veze. To uključuje pakete koji se šalju na vaš računar, ali nisu namijenjeni za njega, već se jednostavno prosljeđuju preko mreže do svog odredišta. Kao što sam rekao, to se primećuje na ruterima ili, na primer, ako vaš računar distribuira wifi;
  • izlaz- ovaj lanac se koristi za odlazne pakete i veze. Ovo uključuje pakete koji su generisani kada pokušate da pingujete web lokaciju ili kada pokrenete pretraživač i pokušate da otvorite bilo koju lokaciju.

Ali ako mislite da možete potpuno zatvoriti ulazni lanac kako biste povećali sigurnost, onda ste u velikoj zabludi. Mreža koristi i ulazne i izlazne lance. Na primjer, pokušate pingovati, podaci se šalju kroz izlaz, ali odgovor dolazi kroz ulaz. Isto se dešava prilikom pregledavanja stranica i drugih aktivnosti. Ali prednji lanac se možda uopšte neće koristiti ako vaš računar nije ruter. Dakle, iptables konfiguracija mora biti obavljena vrlo pažljivo.

Pravila i radnje

Prije nego što pređete na kreiranje liste iptables pravila, morate razmotriti kako funkcionišu i šta su. Za svaki tip paketa možete postaviti skup pravila koja će se redom provjeravati za usklađenost s paketom, a ako se paket podudara, onda na njega primijeniti radnju specificiranu u pravilu. Pravila formiraju lanac, pa se ulaz, izlaz i prosljeđivanje nazivaju lanci ili lanci pravila. Može biti nekoliko radnji:

  • ACCEPT- dozvoliti da paket prođe dalje duž lanca pravila;
  • DROP- izvadite paket;
  • REJECT- odbiti paket, pošiljaocu će biti poslata poruka da je paket odbijen;
  • LOG- napraviti zapis o paketu u log fajlu;
  • QUEUE- pošaljite paket prilagođenoj aplikaciji.

Pravila mogu provjeriti sva podudaranja, na primjer, prema IP-u, prema portu primaoca ili pošiljaoca, zaglavlja paketa i još mnogo toga. Ako paket ne odgovara nijednom od pravila, tada se na njega primjenjuje zadana akcija, obično ACCEPT.

Kada shvatimo pravila, možemo se vratiti lancima. Pored gore navedenih, postoje dva dodatna lanca pravila:

  • prerouting- paket ulazi u ovaj lanac prije nego što ga obradi iptables, sistem još ne zna gdje će biti poslat, za unos, izlaz ili prosljeđivanje;
  • postrouting- svi prolazni paketi koji su već prošli lanac naprijed su uključeni ovdje.

Ali to nije sve. Imamo i iptables tabele, sa kojima je takođe poželjno razumjeti.

Ipatables

Postoji još jedan nivo apstrakcije iznad lanaca pravila u iptables, a to su tabele. U sistemu postoji nekoliko tabela i sve imaju standardni skup ulaznih, prosleđih i izlaznih lanaca. Tabele se koriste za izvođenje različitih radnji na paketima, na primjer, za modifikaciju ili filtriranje. Sada ovo nije toliko važno za vas i biće dovoljno da znate da se filtriranje iptables paketa vrši u tabeli filtera. Ali mi ćemo ih sve pokriti:

  • sirovo- dizajnirani za rad sa sirovim vrećama, dok još nisu obrađene;
  • mangle- namijenjeni za modificiranje paketa;
  • nat- Omogućava nat da radi ako želite da koristite svoj računar kao ruter;
  • filter- glavna tabela za filtriranje paketa, koja se podrazumevano koristi.

Uz gotovo sve u teoriji, sada pogledajmo iptables uslužni program komandne linije, koji se koristi za upravljanje sistemom iptables.

Iptables uslužni program

Podsistem iptables i netfilter ugrađeni su u kernel, ali skup uslužnih programa za upravljanje svim tim nije uvijek isporučen sa sistemom. Da biste instalirali uslužni program na Ubuntu, otkucajte:

sudo apt install iptables

Na distribucijama zasnovanim na Fedora-i, instalacija iptablesa je malo drugačija:

sudo yum install iptables

Kada je instalacija iptables završena, možete prijeći na konfiguraciju, ali hajde da prvo pogledamo sintaksu uslužnog programa. Obično komanda izgleda ovako:

-t lanac radnji stola Dodatne opcije

Sada pogledajmo iptables parametre, tabela označava tablicu s kojom se radi, ovaj parametar se može izostaviti, radnja je željena radnja, na primjer, kreiranje ili brisanje pravila, a dodatni parametri opisuju radnju i pravilo koje treba izvršiti.

Ostaje razmotriti glavne radnje koje vam iptables omogućava da izvršite:

  • -A- dodati pravilo u lanac;
  • -WITH- provjeriti sva pravila;
  • -D- ukloniti pravilo;
  • -Ja- ubaciti pravilo sa traženim brojem;
  • -L- prikazati sva pravila u trenutnom lancu;
  • -S- prikazati sva pravila;
  • -F- očistiti sva pravila;
  • -N- kreirati lanac;
  • -X- izbrisati lanac;
  • -P- postavite zadanu akciju.

Dodatne opcije za pravila:

  • -p- specificirajte protokol, jedan od tcp, udp, udplite, icmp, icmpv6, esp, ah, sctp,
    mh;
  • -s- navedite ip adresu uređaja koji šalje paket;
  • -d- navedite ip adresu primaoca;
  • -i- ulazni mrežni interfejs;
  • -o- odlazni mrežni interfejs;
  • -j- odaberite radnju ako se pravilo podudara.

Sada možete nastaviti s pregledom primjera kako je iptables konfiguriran.

Primjeri konfiguracije za Iptables

Preći ćemo na nekoliko osnovnih primjera kako biste mogli konsolidirati ono što ste pročitali iznad.

Lista pravila

Prvo, da vidimo kako se vrši traženje pravila iptablesa, za ovo je dovoljna opcija -L:

Također možete odrediti željeni lanac za prikaz pravila samo za njega:

iptables -L INPUT

Pravila kliringa

Ne možete jednostavno onemogućiti iptables tako što ćete zaustaviti uslugu ažuriranja iptables pravila preko systemd-a ili čak ukloniti skup uslužnih programa za konfiguraciju. Podsistem radi na nivou kernela i ne zavisi od toga šta ste tamo instalirali. Stoga, ako učinite nešto pogrešno, morat ćete očistiti pravila. Da biste to učinili, pokrenite:

Ili samo za određeni lanac:

sudo iptables -F Unos

Da vas podsjetim da se sve ove radnje izvode za zadanu tablicu - filter.

Zadana pravila

Kao što sam već rekao, ako nijedno pravilo nije prikladno za paket, onda se na njega primjenjuje zadana akcija. Može se postaviti pomoću opcije -p:

sudo iptables -p PRIHVATI ULAZ
$ sudo iptables -p PRIHVATI IZLAZ
$ sudo iptables -p PROSLJEDITI DROP

U ovom primjeru dozvoljavamo INPUT i OUTPUT lance, ali ne dozvoljavamo FORWARD.

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ćava da dodate iptables pravilo 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:

Zaključavanje IP opsega se vrši na sličan način. Da biste to učinili, trebate koristiti mrežnu masku 10.10.10.0/24. Ovo će biti sve adrese 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.

Uklanjanje pravila

Brisanje iptables pravila se izvodi na isti način kao i kreiranje novih, samo umjesto opcije A potrebno je koristiti opciju D. Prvo pogledajte listu pravila:

Na primjer, ovako možete izbrisati iptables pravilo koje je kreirano drugi put:

sudo iptables -A OUTPUT -s 10.10.10.10 -j DROP

Također možete potpuno izbrisati iptables tako što ćete pokrenuti naredbu s opcijom -F:

IPTables je uslužni program koji se koristi za upravljanje zaštitnim zidovima u Linuxu. To je moćan i praktičan alat za neželjene veze. Cijeli proces je umotan u iptables pravila, koja se mogu uređivati ​​i pregledavati. Za više informacija pogledajte članak.

Istorija stvaranja

Prije IPTables na Linuxu koristio je IPFW firewall, pozajmljen od BSD-a. Zatim, sa 2.4 Linux kernelom, došao je sa zaštitnim zidom Netfilter i uslužnim programom IPTables za upravljanje njime. U metodologiji njenog rada svi aspekti su sačuvani i funkcionalno neznatno prošireni.

Struktura i struktura IPTables

Kada paket uđe u zaštitni zid, prolazi kroz nekoliko provjera. Ovo može biti kontrolni zbroj ili bilo koja druga analiza na nivou kernela. Zatim je red da se prođe kroz lanac PREPROUTIRANJA. Zatim se provjerava na osnovu čega dolazi do preusmjeravanja na sljedeći lanac. Ako paket nema adresu, kao što je, na primjer, u TCP-u, onda se usmjerava na lanac FORWARD. U slučajevima kada postoji određena adresa, slijedi INPUT lanac, a zatim demoni ili servisi za koje je namijenjen. Njihov odgovor također mora proći kroz nekoliko lanaca, na primjer OUTPUT. Konačna karika u ovom procesu je lanac POSTROUTING.

Sada malo o lancima. Svaki od njih sadrži nekoliko tabela. Njihova imena se mogu ponavljati, ali to ni na koji način ne utiče na rad, jer nisu međusobno povezani.

Tabele pak sadrže nekoliko pravila. U stvari, pravilo je određeni uslov koji mora biti ispunjen paketom koji se provjerava. U zavisnosti od ishoda, određena radnja se izvodi na paketu.

Dakle, prolazeći kroz sve faze mreže, paket uzastopno posjećuje sve lance i u svakom se provjerava da li je usklađen sa uslovom određenog pravila. Ako tabelu ne generiše korisnik, tada se izvršava podrazumevana radnja, u osnovi, to je ACCEPT, što vam omogućava da nastavite dalje, ili DROP, što zaustavlja paket.

Unaprijed postavljeni lanci dolaze u sljedećim kategorijama:

  • PRERAUTIRANJE... Početna obrada svih dolaznih paketa.
  • INPUT... Ovo uključuje one pakete koji se šalju direktno na lokalni računar.
  • NAPRIJED... Koristi se za "tranzitne pakete" koji prate tabelu rutiranja.
  • IZLAZ... Koristi se za odlazne pakete.
  • POSTROUTING... Posljednja faza u prolasku svih lanaca odlaznim paketom.

Pored ugrađenih lanaca, korisnici mogu kreirati ili brisati svoje.

Pregled i upravljanje pravilima IPTables

Kao što je ranije spomenuto, svi lanci sadrže određene uvjete za pakete. IPTables uslužni program se koristi za pregled i upravljanje IPTables pravilima. Svako pojedinačno pravilo je linija sa skupom uslova za pakete, kao i radnje na njima, u zavisnosti od ishoda.

Format komande izgleda ovako: iptables [-t ime tabele koja se obrađuje] naredba koja se poziva [kriterijum] [akcija koja se izvodi].

Sve što je sadržano u može se izostaviti. Ako je ovo parametar koji specificira tablicu, tada će se koristiti filter. Da biste koristili određeno ime, morate dodati prekidač -t. Pozvana naredba vam omogućava da pozovete potrebnu radnju, na primjer, dodate ili uklonite pravilo IPTables. "Kriterijumi" određuju parametre prema kojima će se vršiti selekcija. A u "akciju" se primjenjuje radnja, koja se mora izvršiti ako je uvjet ispunjen.

Naredbe za kreiranje i pregled IPTables pravila

  • Dodati (-A). Kada koristite naredbu, specificirate lanac i tablicu u koju želite dodati potrebno pravilo. Vrijednost tima je što to radi na dnu cijele liste.
  • Izbriši (-D). Kao što naziv govori, uklanja pravilo. Kao parametre, možete navesti i puno ime i brojeve koji su im dodijeljeni.
  • Preimenuj lanac (-E). Mijenja naziv lanca. Naredba specificira staro ime, a zatim novo ime.
  • Ispiranje (-F). Brisanje apsolutno svih pravila određene tabele.
  • Umetnite (-I). Ova komanda ubacuje traženo pravilo na mjesto označeno brojem.
  • Lista (- L). Pregled iptables pravila. Ako nije navedena tabela, tada će se koristiti zadani filter.
  • Politika (-P). Koristi se zadana politika za navedeni lanac.
  • Zamijenite (-R). Mijenja pravilo pod navedenim brojem u traženo.
  • Obriši lanac (-X). Ova naredba briše sve kreirane lance. Ostat će samo unaprijed instalirani.
  • Nula (-Z). Poništiće brojače prenesenih podataka u navedenom lancu.

Malo o parametrima odabira paketa

Oni se mogu grubo podijeliti u tri tipa:

  • Opšti kriterijumi... Mogu se specificirati za bilo koja pravila. Ne zahtijevaju povezivanje posebnih ekstenzija i modula, a također ne ovise o tome koji će se protokol koristiti.
  • Nisu opšti kriterijumi. Oni su dostupni prema općim kriterijima.
  • Eksplicitno. Da biste koristili ovaj tip, potrebno je da povežete posebne dodatke za netfilter. Osim toga, naredba mora koristiti -m prekidač.

Vrijedi popričati malo o parametrima koji se često susreću u analizi paketa:

  • Protokol (-p). Označava protokol.
  • Izvor (-s). Ovaj parametar definira IP adresu izvora iz kojeg je paket došao. Može se specificirati na nekoliko načina. Određeni host, adresa ili cijela podmreža.
  • Odredište (-d). Odredišna adresa paketa. Također, kao i prethodni, može se opisati na nekoliko načina.
  • Interfejs (-i). Određuje ulazni interfejs paketa. Uglavnom se koristi za NAT ili na sistemima sa više interfejsa.
  • Izlazni interfejs (-o). Odlazni interfejs.

Nekoliko primjera

Da vidite IPTables nat pravila? trebate koristiti naredbu - "iptables -L -t nat". Provjerite opći status zaštitnog zida - "iptables -L -n -v". Osim toga, ova komanda vam omogućava da vidite pravila IPTables koja su dostupna u cijelom sistemu. Umetnite pravilo na određeno mjesto u tabeli, na primjer, između prvog i drugog reda - "iptables -I INPUT 2 -s 202.54.1.2 -j DROP". Zatim pogledajte da li je dodat - "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".

Iptables referenca - "man iptables". Ako su vam potrebne informacije o određenoj komandi - "iptables -j DROP -h".

Konačno

Koristite IPTables komande sa oprezom, jer pogrešna konfiguracija (nesvjesno) može dovesti do kvarova na mreži ili njenog potpunog kvara. Stoga je vrijedno detaljno proučiti priručnike i upute prije konfiguracije. U pravim rukama, IPTables se može pretvoriti u pouzdanog zaštitnika mrežnih veza. Administratori sistema aktivno koriste uslužni program za kreiranje veza izolovanih od neovlašćenog pristupa.

U ovom članku ćemo vam pokazati kako postaviti iptables na Linux. Naučit ćete što je to i zašto trebate konfigurirati ovu funkciju. Postavljanje iptablesa na Linux je prilično jednostavan.

Konfiguriranje iptables-a na Linuxu: Što je iptables?

Iptables je uslužni program zaštitnog zida komandne linije koji koristi politiku ulančavanja da dozvoli ili blokira promet. Kada se veza pokuša uspostaviti na vašem sistemu, iptables traži pravilo na svojoj listi koje će mu odgovarati. Ako ga ne pronađe, pribjegava zadanoj radnji.

Iptables gotovo uvijek dolazi unaprijed instaliran na bilo kojoj Linux distribuciji. Da ga ažurirate/instalirate, samo preuzmite iptables paket:

sudo apt-get install iptables

Postoje GUI alternative za iptables kao što je Firestarter, ali iptables nije tako težak ako pokrenete samo nekoliko komandi. Budite izuzetno oprezni kada postavljate iptables pravila, posebno ako koristite SSH'd na serveru, jer vas jedna pogrešna naredba može blokirati na duže vrijeme dok se ručno ne popravi na fizičkoj mašini.

Postavljanje iptablesa na Linux za lutke

Inače, o tome smo već pričali. Možda će i vas zanimati. Link se može naći iznad.

Postavljanje iptablesa na Linux, kao što smo rekli gore, prilično je jednostavno. Ali prije nego što počnete s konfiguracijom, morate se upoznati s općim konceptima opcije.

Vrste lanaca

Iptables koristi tri različita lanca: ulaz, prosljeđivanje i izlaz.

Input- Ovaj lanac se koristi za kontrolu ponašanja dolaznih veza. Na primjer, ako korisnik pokuša instalirati SSH na vašem računalu/serveru, iptables će pokušati uskladiti IP adresu i port s pravilom u lancu unosa.

Naprijed- ovaj lanac se koristi za dolazne veze koje se zapravo ne isporučuju lokalno. Zamislite ruter - podaci se uvijek šalju na njega, ali rijetko su zapravo namijenjeni samom ruteru; Podaci se jednostavno preusmjeravaju na odredišnu stranicu. Osim ako ne radite bilo kakvo rutiranje, NAT ili bilo šta na vašem sistemu što zahtijeva prosljeđivanje, nećete ni koristiti ovaj lanac.

Postoji jedan pouzdan način da provjerite da li vaš sistem koristi ili mu je potreban direktni lanac.

Ovaj snimak ekrana je za server koji radi nekoliko sedmica i nema ograničenja dolazne ili odlazne veze. Kao što vidite, ulazni lanac je obradio 11 GB paketa, a izlazni lanac 17 GB. S druge strane, pravi lanac ne mora obraditi niti jedan paket. To je zato što server 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 linuxinsider stranicu, iptables će provjeriti njen izlazni lanac da vidi koja se pravila primjenjuju na ping i linuxinsider prije nego odluči hoće li dozvoliti ili odbiti pokušaj povezivanja.

Upozorenje

Iako vanjska provjera valjanosti hosta izgleda kao nešto što samo treba proći 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 sistema, zapamtite da mnogi protokoli zahtijevaju dvosmjernu komunikaciju, tako da i uzvodni i nizvodni lanci moraju biti ispravno konfigurirani. SSH je opći protokol koji ljudi zaboravljaju dozvoliti na oba lanca.

Zadano ponašanje politike

Prije nego počnete postavljati određena pravila, morate odlučiti šta želite da podrazumevano ponašanje ove tri mreže radi. Drugim riječima, šta želite da iptables radi ako veza ne odgovara nijednom od postojećih pravila?

Da vidite koji su lanci politika konfigurirani za rukovanje neusklađenim prometom, pokrenite naredbu iptables -L.

Kao što vidite, koristili smo i naredbu grep da dobijemo čišći rezultat. Na ovom snimku ekrana, naši lanci su trenutno konfigurirani da primaju promet.

Više vremena nego ne, želite da vaš sistem podrazumevano prihvata veze. Ako prethodno niste promijenili pravila ulančavanja politika, ova postavka bi već trebala biti konfigurirana. U svakom slučaju, evo naredbe za prihvatanje zadanih veza:

iptables --policy INPUT PRIHVATI
iptables --policy IZLAZ PRIHVATI
iptables --policy PRIHVATI NASLJED

Prema zadanim postavkama, u pravilu prihvatanja, možete koristiti iptables da odbijete određene IP adrese ili brojeve portova dok nastavljate da prihvatate sve druge veze. Doći ćemo do tih timova za minut.

Ako biste radije odbili sve veze i ručno odredili koje želite dopustiti povezivanje, morate promijeniti zadanu politiku kola da odbijete. Ovo će vjerovatno biti korisno samo za servere koji sadrže osjetljive informacije i samo će se iste IP adrese povezivati ​​na njih.

iptables --policy INPUT DROP
iptables --policy IZLAZ DROP
iptables --policy PROSLJEDI DROP

Odgovori na vezu

Sa postavljenim zadanim politikama lanca, možete početi da dodajete pravila u iptables da biste znali šta treba učiniti kada naiđe na vezu sa određenom IP adresom ili portom. U ovom vodiču ćemo pokriti tri najčešća i najčešće korištena "odgovora".

Prihvati- dozvoliti vezu.

Drop- Prekini vezu, ponašaj se kao da se to nikada nije dogodilo. Ovo je najbolje ako ne želite da izvor zna da vaš sistem postoji.

Odbiti- odbiti vezu, ali poslati poruku o grešci. Ovo je najbolje ako ne želite da se određeni izvor poveže na vaš sistem, ali želite da oni znaju da ih je vaš zaštitni zid blokirao.

Najbolji način da pokažete razliku između ova tri pravila je da pokažete kako to izgleda kada PC pokuša pingati Linux mašinu koristeći iptables konfigurisane za svaki od ovih parametara.

Dozvola za povezivanje:

Uklanjanje veze:

Odbijanje veze:

Mrežna maska ​​ili karakteristika za označavanje raspona IP adresa.

Konfiguriranje iptablesa na Linuxu: Metode povezivanja

Ako govorimo o "Konfiguraciji iptables na Linuxu", onda morate razgovarati o metodama povezivanja.

Dozvolite ili blokirajte određene veze
Sa konfigurisanim politikama, možete konfigurisati iptables da dozvoli ili blokira određene adrese, opsege adresa i portove. U ovim primjerima ćemo uspostaviti DROP veze, ali ih možete prebaciti na PRIHVATI ili ODBITI, ovisno o vašim potrebama i načinu na koji postavljate svoje lance politika.

Bilješka. U ovim primjerima koristit ćemo iptables -A za dodavanje pravila postojećem lancu. Iptables počinje na vrhu liste 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 navedete broj koji će biti naveden.

Veze sa jedne IP adrese

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

iptables -A INPUT -s 10.10.10.10 -j DROP

Veze sa niza IP adresa

Ovaj primjer pokazuje kako blokirati sve IP adrese u opsegu mreže 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 port

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 brojem protokola ili porta. -p tcp dio koda govori iptables-u koju vezu koristi protokol. Ako ste blokirali protokol koji koristi UDP, a ne TCP, tada je potreban -p udp.

Ovaj primjer pokazuje kako blokirati SSH veze sa 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 da dozvolite SSH konekcije na vaš sistem, uzvodna i nizvodna kola će im trebati dodati pravilo. Ali, šta ako želite da se SSH prijavljivanje na vaš sistem dozvoli? Da li bi dodavanje pravila rezultiralo pokušajima odlaznog lanca i odlaznog SSH-a?

Ovdje dolaze stanja veze, koja vam daju mogućnost da dozvolite dvosmjernu komunikaciju, ali dozvoljavaju samo jednosmjerne veze. Pogledajte ovaj primjer gdje su OD 10.10.10.10 SSH veze dozvoljene, ali DO 10.10.10.10 SSH veze nisu. Međutim, sistemu je dozvoljeno slanje povratnih informacija preko SSH-a sve dok je sesija već uspostavljena, čineći SSH komunikaciju mogućom između dva hosta.

iptables -A ULAZ -p tcp --dport ssh -s 10.10.10.10 -m stanje --stanje NOVO, UTVRĐENO -j PRIHVATI

iptables -A IZLAZ -p tcp --sport 22 -d 10.10.10.10 -m stanje --stanje USPOSTAVLJENO -j PRIHVATI

Pohranjivanje promjena

Promjene koje napravite u iptables pravilima bit će vraćene unatrag sljedeći put kada se usluga iptables ponovo pokrene osim ako ne pokrenete naredbu za spremanje promjena. Ova naredba se može razlikovati ovisno o vašoj distribuciji:

sudo / sbin / iptables-save

Red Hat / CentOS:

/ sbin / service iptables save

/etc/init.d/iptables sačuvati

Druge komande

Lista trenutno konfiguriranih iptables pravila:

Dodavanje opcije -v će vam dati informacije o paketima i bajtovima, dok će dodavanje -n sadržavati sve numeričke vrijednosti. Drugim riječima, imena domaćina, protokoli i mreže su navedeni kao brojevi.

Da obrišete sva trenutno konfigurirana pravila, možete izdati naredbu flush.

Prevod sa odličnog engleskog izvora HowToGeek.

Ako i dalje imate pitanja na temu "Konfiguriranje iptablesa na Linuxu za lutke", možete ih napisati u obrascu za komentare na našoj web stranici.

Ako pronađete grešku, odaberite dio teksta i pritisnite Ctrl + Enter.

Top srodni članci