Kako podesiti pametne telefone i računare. Informativni portal
  • Dom
  • vijesti
  • Podešavanje netfiltera koristeći iptables. Minimalni skup Iptables pravila za tipične zadatke

Podešavanje netfiltera koristeći iptables. Minimalni skup Iptables pravila za tipične zadatke

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 gol(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.

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. To 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 u skladu sa uvjetom 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 IPTables pravilima

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 koju treba izvršiti].

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 neispravna konfiguracija (nesvjesno) može dovesti do kvarova na mreži ili 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.

Princip podešavanja

Opća sintaksa za korištenje iptables-a je:

iptables -t<таблица> <команда> <цепочка>[soba]<условие> <действие>

<таблица>

Netfilter pravila su raspoređena u 4 tabele, od kojih svaka ima svoju svrhu (više detalja u nastavku). Zadaje se ključem -t, ali ako ovaj parametar nije specificiran, akcija će se izvršiti za zadanu tablicu - filter.

<команда>

Naredbe pokazuju kakvu radnju izvodimo na netfilteru, na primjer, kreiranje ili brisanje pravila.

<цепочка>

Svaka tabela ima lance, za svaki od kojih se kreiraju sama pravila. Na primjer, za gornju tablicu filtera, postoje tri unaprijed definirana lanca - INPUT (dolazni paketi), OUTPUT (odlazni) i FORWARD (tranzit).

[soba]

Neke naredbe zahtijevaju navođenje broja pravila, na primjer, za brisanje ili uređivanje.

<условие>

Uvjet opisuje kriterije za obradu određenog pravila.

<действие>

Pa, u stvari, šta da radimo sa paketom ako odgovara kriterijumima uslova.

* Da budemo pošteni, vrijedi napomenuti da akcijski ključ ne mora ići na kraju. Samo što se ovaj format najčešće nalazi u uputama i olakšava čitanje pravila.

Iptables ključevi i primjeri njihove upotrebe

Za rad sa tabelama (iptables -t)

Podsjećamo, sva pravila u netfilteru su raspoređena po tabelama. Da biste radili sa određenom tablicom, morate koristiti -t prekidač.

Komande

Sljedeći ključevi određuju šta radi uslužni program iptables.

Ključ Opis i primjeri
-A Dodavanje pravila na kraj liste:
iptables -A INPUT -s 192.168.0.15 -j DROP
odbiti dolaz sa 192.168.0.15.
-D Uklanjanje pravila:
iptables -D ULAZ 10
obrišite pravilo u INPUT lancu pod brojem 10.
-Ja Umetanje pravila u određeni dio liste:
iptables -I INPUT 5 -s 192.168.0.15 -j DROP
umetnite pravilo 5. na listi.
-R Zamjena pravila.
iptables -R IZLAZ 5 -s 192.168.0.15 -j PRIHVATI
zamijenite naše 5. pravilo sa zabrane na dopuštenje.
-F Brisanje pravila u lancu.
iptables -F INPUT
-Z Resetiranje statistike.
iptables -Z INPUT
-N Kreiranje lanca.
iptables -N CHAINNEW
-X Brisanje lanca.
iptables -X CHAINNEW
-P Definiranje zadanog pravila.
iptables -P INPUT DROP
-E Preimenujte lanac.
iptables -E CHAINNEW CHAINOLD

Uslovi

Ovi ključevi definiraju uvjete pravila.

Ključ Opis i primjeri
-p Mrežni protokol. Važeće opcije su TCP, UDP, ICMP ili SVE.
iptables -A INPUT -p tcp -j PRIHVATI
dozvoliti sve dolazne tcp veze.
-s Izvorna adresa - ime hosta, IP adresa ili podmreža u CIDR notaciji.
iptables -A INPUT -s 192.168.0.50 -j DROP
odbiti dolaz sa hosta 192.168.0.50
-d Adresa odredišta. Princip upotrebe je sličan prethodnom prekidaču -s.
iptables -A OUTPUT -d 192.168.0.50 -j DROP
zabrani odlaz na host 192.168.0.50
-i Mrežni adapter preko kojeg se primaju paketi (INPUT).
iptables -A INPUT -i eth2 -j DROP
zabrani dolazni za ethernet interfejs eth2.
-o Mrežni adapter iz kojeg paketi odlaze (OUTPUT).
iptables -A IZLAZ -o eth3 -j PRIHVATI
dozvoli odlaz sa ethernet interfejsa eth3.
--dport Odredišna luka.
iptables -A INPUT -p tcp --dport 80 -j PRIHVATI
dozvoli dolaz na port 80.
--sport Izvorni port.
iptables -A INPUT -p tcp --sport 1023 -j DROP
odbiti dolaz sa porta 1023.

Navedeni ključevi također podržavaju konstrukciju pomoću znaka ! ... Invertira uslov, na primjer
iptables -A INPUT -s! 192.168.0.50 -j DROP
će odbiti vezu sa svim hostovima osim 192.168.0.50.

Akcije

Radnje koje treba izvršiti na paketu koji odgovara kriterijima uvjeta. Svaka tabela ima svoj skup valjanih radnji. Navedeno pomoću ključa -j.

sto Akcija Opis
filter ACCEPT Rješava paket.
DROP Odbija paket.
REJECT Sprečava slanje poruke izvoru.
nat MASQUERADE Za odlazne pakete, zamjenjuje izvornu IP adresu adresom interfejsa sa kojeg paket odlazi.
SNAT Slično MASQUERADE, ali specificirajući specifično mrežno sučelje, čija adresa će se koristiti za lažiranje.
DNAT Prijevara adresa za dolazne pakete.
REDIRECT Preusmjerava zahtjev na drugi port na istom sistemu.
mangle TOS Modifikacija TOS polja (prioritet saobraćaja).
DSCP DSCP promjena (također prioritet saobraćaja).
TTL Promijenite TTL (životni vijek paketa).
HL Slično TTL-u, ali za IPv6.
MARK Označavanje paketa. Koristi se za naknadno filtriranje ili oblikovanje.
CONNMARK Označavanje priključka.
TCPMSS Promjena MTU vrijednosti.

Primjeri najčešće korištenih iptables naredbi

Uobičajene komande

Pogledajte pravila sa njihovim brojevima:

iptables -L --brojevi-linija

Za svaku tabelu morate posebno pogledati pravila:

iptables -t nat -L --brojevi-linija

Uklonite sva pravila:

Postavite zadana pravila:

iptables -P INPUT DROP

iptables -P IZLAZ DROP

* u ovim primjerima, prema zadanim postavkama, za sve dolazne (INPUT) i odlazne (OUTPUT) pakete, pravilo odbijanja (DROP) će raditi.

Dozvoli sve

Metoda 1. Dodavanjem pravila:

iptables -I INPUT 1 -j PRIHVATI

iptables -I IZLAZ 1 -j PRIHVATI

iptables -I PROSLJEDI 1 -j PRIHVATI

* ove tri komande će kreirati pravila koja dozvoljavaju sve dolazne, odlazne i tranzitne pakete.

Metoda 2. Čišćenjem pravila:

* ovdje prvo uklanjamo sva pravila (-F), a zatim postavljamo zadanu politiku - dozvoli ulazni, odlazni i tranzitni (-S).

Metoda 3. Onemogućavanje usluge (zgodno je onemogućiti zaštitni zid na neko vrijeme radi dijagnosticiranja problema):

usluga iptables stop

Rad sa pravilima

Dodajte pravilo na kraj liste:

iptables -A INPUT -p tcp --dport 25 -j PRIHVATI

iptables -A INPUT -p tcp -s! 192.168.0.25 --dport 993 -i eth0 -j PRIHVATI

Dodajte raspon portova:

iptables -A INPUT -p tcp --dport 3000: 4000 -j PRIHVATI

* u ovom slučaju od 3000 do 4000.

Umetni pravilo:

iptables -I PROSLJEDI 15 -p udp -d 8.8.8.8 --dport 53 -i eth1 -j PRIHVATI

Blokirajte određenu IP adresu sa porta 25:

iptables -I INPUT 1 -s 1.1.1.1 -p tcp --dport 25 -j DROP

Port forwarding

Postoje dva načina za konfiguraciju.

1. Pravila PREPROUTIRANJE + POSTROUTIRANJE:

iptables -t nat -A PREUSMIRANJE -p tcp -m tcp -d 19.8.232.80 --dport 22 -j DNAT --do odredišta 192.168.1.15:2222

iptables -t nat -A POSTROUTING -p tcp -m tcp -s 192.168.1.15 --sport 2222 -j SNAT --to-source 19.8.232.80:22

* gdje 19.8.232.80 - adresu na kojoj slušamo zahtjeve za povezivanje; 22 - port za prosleđivanje; 192.168.1.15 - internu IP adresu na koju prenosimo sve zahtjeve; 2222 - interni port.

2. Pravila PREUSMIRANJA + PROSLJEĐIVANJA:

iptables -t nat -A PREUSMIRANJE -p tcp -i eth1 --dport 22 -j DNAT --do odredišta 192.168.1.15:2222

iptables -A NAPRED -p tcp -d 192.168.1.15 --dport 22 -m stanje --stanje NOVO, USPOSTAVLJENO, POVEZANO -j PRIHVATI

Iptables je prvenstveno odgovoran za filtriranje paketa. Ručno konfiguriranje iptablesa prilično je zastrašujući zadatak. Ne očekujte da ćete shvatiti ovaj snimak. Na sreću, postoji mnogo alata koji vam mogu pomoći ako još niste shvatili iptables, a hitno morate osigurati sistem: fwbuilder, firestarter, guarddog, arno firewall - u stvari, ovo je GUI za iptables. Nedvosmislen odgovor je da boljeg nema. Na vama je da odaberete. Međutim, današnji članak posvećen je upravo iptables-u i podijeljen je u dva dijela: teoriju i praksu. Najnestrpljiviji mogu odmah da urade praktični dio, iako se ovaj pristup ne preporučuje.

Pažnja! Sve radnje sa iptables se izvode u ime privilegovanog korisnika!

Teorija

Format zapisa iptables iptables [-t tablica] [naredba] [akcija] Primjer: iptables -t filter -A INPUT ACCEPT

Akcije

  • ACCEPT - Prihvati paket
  • DROP - Ispustite paket
  • DNAT - Pretvori odredišnu adresu
  • SNAT - Promjena odlazne IP adrese u zaglavlju paketa
  • LOG - Zabilježite pakete i događaje
  • MARK - Stavite oznaku na paket
  • MASQUERADE - Promjena odlazne IP adrese u zaglavlju paketa (za razliku od SNAT-a - rad sa dinamičkim IP-om)
  • RED - Stavite paket u red za obradu
  • REDIRECT - Preusmjeravanje paketa / toka na drugi port
  • ODBACI - Ispustite paket + obavijestite udaljeni sistem o tome. da je njen paket odbijen
  • POVRATAK - Zaustavite kretanje paketa duž trenutnog lanca i vratite se u lanac poziva

Komande

  • -A - Dodajte pravilo u lanac
  • -D - Uklonite pravilo iz lanca
  • -R - Zamijenite jedno pravilo drugim
  • -I - Ubaci novo pravilo
  • -L - Navedite postojeća pravila
  • -F - Resetuj pravila
  • -Z - Nuliranje brojača u navedenom lancu
  • -N - Kreira novi lanac sa datim imenom
  • -X - Izbrišite lanac
  • -P - Postavite zadanu politiku za odabrani lanac
  • -E - Preimenujte prilagođeni lanac

Kriteriji (opći)

  • -p - Odredite tip protokola
  • -s je izvorna IP adresa paketa
  • -d - IP adresa primaoca paketa
  • -j - Navedite radnju za pravilo
  • -i - Interfejs sa kojeg je primljen paket
  • -o - Navedite ime izlaznog sučelja
  • -f - Proširi pravilo na sve fragmente paketa

TCP kriterijumi:

  • –Tcp-flags – Odredite masku paketa i zastavice

UDP kriterijumi:

  • –Sport - Port sa kojeg je paket poslan
  • –Dport - Port na koji je paket adresiran

Više u man iptables

Vježbajte

Pregled trenutne konfiguracije

$ sudo iptables -L Chain INPUT (policy ACCEPT) ciljni prot opt ​​izvor odredište Lanac FORWARD (policy ACCEPT) cilj prot opt ​​izvor odredište Chain OUTPUT (policy ACCEPT) cilj prot opt ​​izvor odredište

Ako vidite tako nešto, onda vaš zaštitni zid još nije konfigurisan i dozvoljava sve. Hajde da popravimo situaciju.

Postavljanje zadane politike

  • iptables -P INPUT DROP - blokira dolazne pakete
  • iptables -P OUTPUT ACCEPT - dozvoljava odlazne pakete
  • iptables -P FORWARD DROP - obrada paketa koji su došli do servera sa druge mašine i čekaju dalje prosleđivanje. U primjeru je blokiran. U ovom slučaju, morat ćete dodati pravila za pouzdane mašine.

Pošto su ulazni INPUT paketi blokirani, napišimo pravilo:

$ sudo iptables -A ULAZ -m stanje --stanje POVEZANO, UTVRĐENO -j PRIHVATI

Ovo će omogućiti primanje paketa iz prethodno uspostavljene veze i prihvatanje novih paketa generiranih ovom vezom.

Ili navođenje tipa protokola:

$ sudo iptables -A ULAZ -p TCP -m stanje --stanje UTVRĐENO, POVEZANO -j PRIHVATI $ sudo iptables -A ULAZ -p UDP -m stanje --stanje UTVRĐENO, POVEZANO -j PRIHVATI

Sada lokalni interfejs:

$ sudo iptables -A INPUT -i lo -j PRIHVATI

  • NOVO - podaci koji započinju novu vezu.
  • ESTABLISHED - paket koji dolazi sa već uspostavljene veze.
  • POVEZANO - novi paket podataka, ali generisan starom uspostavljenom vezom
  • INVALID - tako razumljivo

$ sudo iptables-save> /etc/iptables.up.rules

Omogućite ova pravila:

$ sudo iptables-restore< /etc/iptables.up.rules

I vidi razliku:

$ sudo iptables-L

Pokretanje iptablesa pri pokretanju sistema:

U direktoriju /etc/init.d kreirajte datoteku pod nazivom iptables

$ sudo dodirnite /etc/init.d/iptables

U njemu propisujemo sljedeće:

#! / bin / sh / sbin / iptables-restore< /etc/iptables.up.rules

Učinimo iptables datoteku izvršnom:

$ sudo chmod + x /etc/init.d/iptables

Dodajte ga u automatsko pokretanje

$ sudo update-rc.d -n iptables zadane postavke

Pokretanje iptablesa na mrežnoj vezi:

$ sudo echo "#! / sbin / iptables-restore"> /etc/network/if-up.d/iptables.up.rules $ sudo iptables-save >> /etc/network/if-up.d/iptables. up.rules $ sudo chmod + x /etc/network/if-up.d/iptables.up.rules

Bilješka: u svakom trenutku možete provjeriti da li su vaša pravila učitana jednostavnim unosom iptables-save iz root-a

Za archlinux, čuvanje iptables pravila se radi naredbom:

$ sudo rc.d sačuvajte iptables

Mala početna skripta (pravila, iptables faq) za desktop ili jednostavan server. U ovom slučaju, primjeri rada s portovima jednog ili drugog softvera koji radi na vašem računalu. Sigurnosne mjere se moraju poštovati na svakom računaru. Mit da je Linux sigurniji nije tačan, sve ovisi o nespretnim rukama administratora. Postoje dobro zaštićeni Windows sistemi, kao i Linux sistemi koji su otvoreni za skoro svakoga. Stoga biste ipak trebali malo razmisliti o mrežnoj zaštiti vašeg računala. U nastavku su dodana neka pravila za iptables koja bi vam mogla dobro doći na početku.

Konkretno zamijenjen $ IPT sa /sbin/iptables, ako nekome treba samo jedno pravilo da ništa ne mijenja - samo kopiraj i izvrši. Naravno, ovdje je još uvijek malo pravila, nema različitih VPN-ova itd., ako želite, dodajte.

Ove linije se mogu u potpunosti kopirati u bilo koju skriptu i samo je izvršiti. Za obične slučajeve to je sasvim dovoljno. Ako bilo koja aplikacija ne može biti na mreži, posebno je dodano logovanje. Samo otvorite tail -f / var / log / syslog (ili vaš ako nije Ubuntu) i gledajte! Ako imate pitanja, dodajte ih u raspravu, zajedno ćemo ih riješiti.

PS Osim ovih pravila, razmislite o tome šta da uzmete iz članka o TCP optimizaciji.

Kako ukloniti pravilo u iptables

Objavio Alexey Uboženko

Nekoliko puta sam se susreo sa činjenicom da čak i ljudi koji uopšte nisu glupi prave apsolutno neoprostive greške. Na primjer, otvaraju port na kojem se pokreće baza podataka za cijeli Internet.

Blog sistemske administracije. Članci o Linuxu, Windowsu, NetApp skladištenju i virtuelizaciji.

Ovo je često slučaj za DevOps početnike koji su cijeli život kodirali, a sada njihove odgovornosti uključuju i postavljanje servera. Na mreži postoje dobri vodiči o osnovnom postavljanju zaštitnog zida u Linuxu i drugim * nix-ima, ali često su to listovi za mnoge ekrane. Dakle, nadamo se da će nekome biti od koristi ovaj sažetiji vodič.

Bitan! Vrlo je lako greškom ispaliti automobil na način da više nećete ući u njega. Ovo posebno važi za hosting u oblaku. Na primjer, ako u AWS-u zatvorite sve portove od 1024 do 65536, iz nekog razloga mašina se zatvara nakon ponovnog pokretanja. generalno sve luke. Ako hostujete u oblacima, najbolje je da konfigurišete svoj zaštitni zid preko hostovanog veb interfejsa.

Kratka napomena o terminologiji. Firewall ugrađen u Linux kernel zove se Netfilter, a iptables je uslužni program za upravljanje ovim firewall-om. Mnogi ljudi pogrešno misle da se zaštitni zid zove iptables. Ovo nije istina. Reći nešto poput "filtriram pakete pomoću iptables" pokazuje drugima da ste nepismeni.

Općenito, koji se zadaci mogu riješiti pomoću Netfilter-a:

  • Dozvoli / zabrani dolazni saobraćaj na određene portove koristeći specifične protokole (IPv4 / IPv6, TCP / UDP) sa određenih adresa (IP, MAC) ili podmreža;
  • Sve je isto za odlazni saobraćaj;
  • Možete, na primjer, potpuno zanemariti sve ICMP pakete;
  • Konfigurisanje NAT-a, pogledajte post o instalaciji i konfigurisanju OpenVPN-a;
  • Čuo sam da pravi gurui mogu postaviti zaštitu od DDoS-a i grube sile, ograničiti pristup mreži određenim aplikacijama, korisnicima ili grupama i raditi druge lude stvari;

Imajte na umu da mi se iptables uslužni program u početku činio izuzetno nezgodnim u poređenju sa ipfw-om u FreeBSD-u. Srećom, nakon nekog vremena rada s njim, sve ove mnoge zastavice poput -A, -D, -j i druge postaju poznate, pa budite strpljivi. Pogledajmo glavne komande.

Prikaži sva pravila:

Možda ćete primijetiti da Netfilter ima neku vrstu "lanaca" - barem INPUT, OUTPUT i FORWARD.

Ja lično također imam Docker lanac na svom autu. Po prvi put, prva dva možete zamisliti kao sav dolazni i odlazni saobraćaj, respektivno, a na ostatak privremeno zaboravite. Velike su šanse da vam nikada neće trebati.

Uklonite sva pravila:

Lanac promjene politike (zadano ponašanje):

iptables -P INPUT DROP
iptables -P ULAZ PRIHVATI

Zabrani pristup sa hosta/podmreže:

iptables -A INPUT -s 123.45.67.89 -j DROP
iptables -A INPUT -s 123.45.0.0/16-j DROP

Također možete koristiti nazive domena:

iptables -A INPUT -s primjer.com -j DROP

Zabrana odlaznih veza:

iptables -A OUTPUT -d 123.45.67.89 -j DROP

Negativi se mogu koristiti u pravilima:

iptables -A INPUT! -s 123.45.67.89 -j DROP

Brisanje pravila po broju u lancu:

iptables -D ULAZ 1

Uklanjanje pravila na osnovu onoga što radi:

iptables -D INPUT -s 123.45.67.89 -j DROP

Opcija -p označava protokol. Možete koristiti sve, icmp, tcp, udp ili broj protokola iz / etc / protokola. Oznaka -sport označava port sa kojeg je paket poslan, a -dport označava odredišni port:

iptables -A INPUT -p tcp -sport80-j PRIHVATI
iptables -A INPUT -p tcp -dport80-j PRIHVATI

Umetnite pravilo na početak lanca:

iptables -I INPUT ...

Ili možete odrediti određenu poziciju:

iptables-save> /etc/iptables.rules

Pravila vraćanja:

iptables-restore

Pogledajmo sada nekoliko praktičnih primjera. Ovo je, na primjer, emulacija split mreže u testu koji provjerava ponašanje aplikacije koja koristi Akka Cluster:

pokrenite (čvor1, s "iptables -A INPUT -s $ node2 -j DROP")
pokrenite (čvor1, s "iptables -A INPUT -s $ node3 -j DROP")
pokrenite (čvor1, s "iptables -A OUTPUT -d $ node2 -j DROP")
pokrenite (čvor1, s "iptables -A OUTPUT -d $ node3 -j DROP")

Oporavak je potpuno isti, osim što je -A zastavica zamijenjena zastavicom -D.

Još jedan primjer. Potrebno je otkriti koji portovi slušaju na mašini i zatvoriti dodatne. Idemo do auta i kažemo:

Primjer izlaza:

Aktivne internetske veze (samo serveri)
Proto Recv-Q Send-Q Lokalna adresa Strana adresa Država PID / ime programa
tcp 0 0 0.0.0.0:80 0.0.0.0:* SLUŠAJ 3210 / nginx
tcp 0 0 0.0.0.0:4369 0.0.0.0:* LISTEN 1789 / epmd
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 797 / sshd
tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN 990 / postgres

Nginx i SSHd pretražuju internet, to je u redu. PostgreSQL sluša samo lokalni interfejs, tako da ni sa njim nema problema. Ali epmd strši (možete ga provjeriti telnetom sa druge mašine), a ovo nije dobro. Možete zatvoriti samo port 4369. Kako to učiniti je prikazano iznad. Ili možete otići još dalje i zabraniti sve veze izvana na port 81 i starije:

iptables -A INPUT -m multiport \
-p tcp —dports81: 65535! -s 127.0.0.0/8-j DROP

Ovo koristi ekstenziju za više portova za određivanje raspona portova.

Provjeravamo da li sve radi. Ako je u redu, sačuvajte pravila:

iptables-save> /etc/iptables.rules

Da biste preuzeli pravila pri pokretanju sistema, kreirajte novu datoteku /etc/network/if-pre-up.d/iptables:

iptables-restoreizlaz0

... a mi kažemo:

chmod + x /etc/network/if-pre-up.d/iptables

Ova metoda je potvrđena da radi na Ubuntu 14.04 LTS.

Debian bi također trebao raditi. Opis alternativnog načina vraćanja pravila zaštitnog zida pri pokretanju sistema možete pronaći u već spomenutom članku o OpenVPN-u.

Dodatni resursi za one koji žele saznati više o Netfilteru:

Kako konfigurirate firewall na svojim serverima?

Tagovi: Linux, Sigurnost, Mreže.

Uslužni program komandne linije iptables se koristi za konfigurisanje netfilter firewall ugrađenog u sistem baziran na jezgru Linuxa.

Ovaj priručnik je pogodan kako za lutke koji žele razumjeti aspekte mrežne sigurnosti, tako i za iskusne stručnjake kao varalicu.

Princip podešavanja

Opća sintaksa za korištenje iptables-a je:

iptables -t<таблица> <команда> <цепочка>[soba]<условие> <действие>

<таблица>

Netfilter pravila su raspoređena u 4 tabele, od kojih svaka ima svoju svrhu (više detalja u nastavku). Zadaje se ključem -t, ali ako ovaj parametar nije specificiran, akcija će se izvršiti za zadanu tablicu - filter.

<команда>

Naredbe pokazuju kakvu radnju izvodimo na netfilteru, na primjer, kreiranje ili brisanje pravila.

<цепочка>

Svaka tabela ima lance, za svaki od kojih se kreiraju sama pravila. Na primjer, za gornju tablicu filtera, postoje tri unaprijed definirana lanca - INPUT (dolazni paketi), OUTPUT (odlazni) i FORWARD (tranzit).

[soba]

Neke naredbe zahtijevaju navođenje broja pravila, na primjer, za brisanje ili uređivanje.

<условие>

Uvjet opisuje kriterije za obradu određenog pravila.

<действие>

Pa, u stvari, šta da radimo sa paketom ako odgovara kriterijumima uslova.

* Da budemo pošteni, vrijedi napomenuti da akcijski ključ ne mora ići na kraju. Samo što se ovaj format najčešće nalazi u uputama i olakšava čitanje pravila.

Iptables ključevi i primjeri njihove upotrebe

Za rad sa tabelama (iptables -t)

Podsjećamo, sva pravila u netfilteru su raspoređena po tabelama. Da biste radili sa određenom tablicom, morate koristiti -t prekidač.

Komande

Sljedeći ključevi određuju šta radi uslužni program iptables.

Ključ Opis i primjeri
-A Dodavanje pravila na kraj liste:
iptables -A INPUT -s 192.168.0.15 -j DROP
odbiti dolaz sa 192.168.0.15.
-D Uklanjanje pravila:
iptables -D ULAZ 10
obrišite pravilo u INPUT lancu pod brojem 10.
-Ja Umetanje pravila u određeni dio liste:
iptables -I INPUT 5 -s 192.168.0.15 -j DROP
umetnite pravilo 5. na listi.
-R Zamjena pravila.
iptables -R IZLAZ 5 -s 192.168.0.15 -j PRIHVATI
zamijenite naše 5. pravilo sa zabrane na dopuštenje.
-F Brisanje pravila u lancu.
iptables -F INPUT
-Z Resetiranje statistike.
iptables -Z INPUT
-N Kreiranje lanca.
iptables -N CHAINNEW
-X Brisanje lanca.
iptables -X CHAINNEW
-P Definiranje zadanog pravila.
iptables -P INPUT DROP
-E Preimenujte lanac.
iptables -E CHAINNEW CHAINOLD

Uslovi

Ovi ključevi definiraju uvjete pravila.

Ključ Opis i primjeri
-p Mrežni protokol. Važeće opcije su TCP, UDP, ICMP ili SVE.
iptables -A INPUT -p tcp -j PRIHVATI
dozvoliti sve dolazne tcp veze.
-s Izvorna adresa - ime hosta, IP adresa ili podmreža u CIDR notaciji.
iptables -A INPUT -s 192.168.0.50 -j DROP
odbiti dolaz sa hosta 192.168.0.50
-d Adresa odredišta. Princip upotrebe je sličan prethodnom prekidaču -s.
iptables -A OUTPUT -d 192.168.0.50 -j DROP
zabrani odlaz na host 192.168.0.50
-i Mrežni adapter preko kojeg se primaju paketi (INPUT).
iptables -A INPUT -i eth2 -j DROP
zabrani dolazni za ethernet interfejs eth2.
-o Mrežni adapter iz kojeg paketi odlaze (OUTPUT).
iptables -A IZLAZ -o eth3 -j PRIHVATI
dozvoli odlaz sa ethernet interfejsa eth3.
—Dport Odredišna luka.
iptables -A INPUT -p tcp -dport 80 -j PRIHVATI
dozvoli dolaz na port 80.
—Sport Izvorni port.
iptables -A INPUT -p tcp -sport 1023 -j DROP
odbiti dolaz sa porta 1023.

Navedeni ključevi također podržavaju konstrukciju pomoću znaka ! .

Postavljanje netfiltera sa iptables

Invertira uslov, na primjer
iptables -A INPUT -s! 192.168.0.50 -j DROP
će odbiti vezu sa svim hostovima osim 192.168.0.50.

Akcije

Radnje koje treba izvršiti na paketu koji odgovara kriterijima uvjeta. Svaka tabela ima svoj skup valjanih radnji. Navedeno pomoću ključa -j.

sto Akcija Opis
filter ACCEPT Rješava paket.
DROP Odbija paket.
REJECT Sprečava slanje poruke izvoru.
nat MASQUERADE Za odlazne pakete, zamjenjuje izvornu IP adresu adresom interfejsa sa kojeg paket odlazi.
SNAT Slično MASQUERADE, ali specificirajući specifično mrežno sučelje, čija adresa će se koristiti za lažiranje.
DNAT Prijevara adresa za dolazne pakete.
REDIRECT Preusmjerava zahtjev na drugi port na istom sistemu.
mangle TOS Modifikacija TOS polja (prioritet saobraćaja).
DSCP DSCP promjena (također prioritet saobraćaja).
TTL Promijenite TTL (životni vijek paketa).
HL Slično TTL-u, ali za IPv6.
MARK Označavanje paketa. Koristi se za naknadno filtriranje ili oblikovanje.
CONNMARK Označavanje priključka.
TCPMSS Promjena MTU vrijednosti.

Primjeri najčešće korištenih iptables naredbi

Uobičajene komande

Pogledajte pravila sa njihovim brojevima:

iptables -L —brojevi redova

Za svaku tabelu morate posebno pogledati pravila:

iptables -t nat -L --brojevi-linija

Uklonite sva pravila:

Postavite zadana pravila:

iptables -P INPUT DROP

iptables -P IZLAZ DROP

* u ovim primjerima, prema zadanim postavkama, za sve dolazne (INPUT) i odlazne (OUTPUT) pakete, pravilo odbijanja (DROP) će raditi.

Dozvoli sve

Metoda 1. Dodavanjem pravila:

iptables -I INPUT 1 -j PRIHVATI

iptables -I IZLAZ 1 -j PRIHVATI

iptables -I PROSLJEDI 1 -j PRIHVATI

* ove tri komande će kreirati pravila koja dozvoljavaju sve dolazne, odlazne i tranzitne pakete.

Metoda 2. Čišćenjem pravila:

* ovdje prvo uklanjamo sva pravila (-F), a zatim postavljamo zadanu politiku - dozvoli ulazni, odlazni i tranzitni (-S).

Metoda 3. Onemogućavanje usluge (zgodno je onemogućiti zaštitni zid na neko vrijeme radi dijagnosticiranja problema):

Rad sa pravilima

Dodajte pravilo na kraj liste:

iptables -A INPUT -p tcp -dport 25 -j PRIHVATI

iptables -A INPUT -p tcp -s! 192.168.0.25 —dport 993 -i eth0 -j PRIHVATI

Dodajte raspon portova:

iptables -A INPUT -p tcp -dport 3000: 4000 -j PRIHVATI

* u ovom slučaju od 3000 do 4000.

Umetni pravilo:

iptables -I PROSLJEDI 15 -p udp -d 8.8.8.8 -dport 53 -i eth1 -j PRIHVATI

Port forwarding

Postoje dva načina za konfiguraciju.

1. Pravila PREPROUTIRANJE + POSTROUTIRANJE:

iptables -t nat -A PREUSMIRANJE -p tcp -m tcp -d 19.8.232.80 —dport 22 -j DNAT —do odredišta 192.168.1.15:2222

iptables -t nat -A POSTROUTING -p tcp -m tcp -s 192.168.1.15 —sport 2222 -j SNAT —za izvor 19.8.232.80:22

* gdje 19.8.232.80 - adresu na kojoj slušamo zahtjeve za povezivanje; 22 - port za prosleđivanje; 192.168.1.15 2222 - interni port.

2. Pravila PREUSMIRANJA + PROSLJEĐIVANJA:

iptables -t nat -A PREUSMIRANJE -p tcp -i eth1 —dport 22 -j DNAT —do odredišta 192.168.1.15:2222

iptables -A NAPRED -p tcp -d 192.168.1.15 —dport 22 -m stanje —stanje NOVO, UTVRĐENO, POVEZANO -j PRIHVATI

* gdje eth1- mrežni interfejs na kojem slušamo zahtjeve; 22 - port za prosleđivanje; 192.168.1.15 - internu IP adresu na koju prenosimo sve zahtjeve; 2222 - interni port.

Pokretanje podešavanja

Dozvoli SSH:

iptables -A INPUT -p tcp -dport 22 -j PRIHVATI

Postavili smo politiku zabrane dolaznih i dopuštamo sve odlazne:

iptables -P IZLAZ PRIHVAT

Kreirajte pravilo da apt-get radi ispravno:

iptables -A INPUT -p tcp —sport 80 -m stanje —stanje ESTABLISHED -j PRIHVATI

Dozvoli ICMP (za ping komandu):

iptables -A INPUT -p icmp -j PRIHVATI

Pravila čuvanja (trajna)

Podrazumevano, sva pravila prestaju da rade nakon ponovnog pokretanja mreže ili računara. Postoji nekoliko načina za konfiguriranje pravila kako bi se pravila sačuvala nakon ponovnog pokretanja.

Metoda 1.iptables-save

Pravila spremamo u fajl:

iptables-save> /etc/iptables.rules

Otvorite mrežne postavke:

vi / etc / mreža / sučelja

i dodajte red:

pre-up iptables-restore< /etc/iptables.rules

Metoda 2.iptables-persistent

Instalirajte iptables-persistent paket:

apt install iptables-persistent

Da sačuvate pravila, unesite naredbu:

service iptables-persistent save

Metoda 3.service iptables

Radi na starijim verzijama Linuxa:

Metoda 4.iptables.init

Radi na CentOS-u:

/usr/libexec/iptables/iptables.init sačuvati

Ubuntu i CentOS

Na modernim Ubuntu i CentOS operativnim sistemima podrazumevano ne postoji iptables.

Morate ga instalirati ili koristiti novije uslužne programe.

Na CentOS-u

Firewall-cmd se koristi kao standardni program za upravljanje zaštitnim zidom. Za više detalja, pročitajte upute Kako konfigurirati firewalld u CentOS-u.

Ako trebate koristiti iptables, instalirajte uslužni paket:

yum install iptables-services

Onemogući firewalld:

systemctl stop firewalld

systemctl onemogući firewalld

Omogućavamo i pokrećemo iptables:

systemctl omogući iptables

U Ubuntu

Ufw se sada koristi za upravljanje firewall-om.

Za rad sa iptablesom, instalirajte sljedeći paket:

apt-get install iptables-persistent

Onemogući ufw:

# Umrežavanje # Sigurnost # UNIX # Ubuntu # Linux

Da li vam je ovaj vodič bio od pomoći?

IZA POŽARNOG ZIDA:
FIREWALL (FIREWALL) I INTERNET GATEWAY
DEBIAN GNU / LINUX 4.0 ETCH

Praktični vodič za organiziranje sigurnog pristupa Internetu
sa zasebnog računala i iz lokalne mreže u Debian GNU / Linux 4.0 Etch
Malo teorije

Svaka konekcija na Internet ne samo da omogućava povezivanje na različite servere i sajtove, već stvara i potencijalnu opasnost od prodora u naš računar izvana. Ovu opasnost ne treba zanemariti, jer je većina pokušaja neovlaštenog pristupa računarima korisnika sa interneta danas dio dobro organiziranog kriminalnog poslovanja. Nakon uspješnog kompromitiranja vašeg sistema, oni će pokušati da iskoriste vaš računar ili za slanje neželjene pošte, ili za organiziranje DoS napada na druge računare, ili za bilo koje druge podle svrhe. Zanemarivanje ove opasnosti u najboljem slučaju će povećati vaše troškove saobraćaja i usporiti performanse vašeg računara; u najgorem slučaju, može vas nesvjesno uključiti u kriminalne aktivnosti sajber grupa.

Situaciju otežava činjenica da su u nekim (još uvijek) raširenim operativnim sistemima mnogi portovi po defaultu ostavljeni otvoreni, što omogućava napadaču da se poveže s interneta na korisnika a da ovaj nije svjestan.

Da biste spriječili neovlašteno povezivanje izvana i filtrirali dolazni/odlazni promet u operativnom sistemu, treba koristiti poseban program - firewall(engleski firewall), poznat i kao firewall i firewall... Ispod je jednostavan primjer postavljanja zaštitnog zida u besplatnom operativnom sistemu. Debian GNU / Linux 4.0.

Upotreba zaštitnog zida postaje posebno relevantna ako imate više od jednog računara, ali kućnu ili kancelarijsku mrežučiji računari idu na mrežu.

Čak i mala lokalna mreža mora biti pravilno organizirana. Recimo da imate pristupnu tačku velike brzine Internetu (na primjer, ADSL modem) sa Ethernet (tj. mrežnim) sučeljem.

Postoji iskušenje (podgrijano nepismenim preporukama, kao, na primjer, u uputama za moj ADSL modem) da spojite modem direktno na switch, a zatim spojite na switch sve računara lokalne mreže. U ovom slučaju, modem dinamički izdaje lokalne IP adrese preko prekidača, ali ispada da je svaki računar ostavljen sam s internetom! Ni modem ni komutator ne mogu postati prepreka loše volje. Napadač može skenirati sve računara lokalne mreže organizovane na ovaj način.

Logično i sigurno rješenje je stvaranje barijera između modema i lokalne mreže - u obliku zasebnog računara na kojem je konfigurisan "firewall" (firewall). Ovaj računar ima dva interfejsa - jedan "gleda" na Internet (tj. fizički je povezan sa modemom), drugi je usmeren na lokalnu mrežu (i fizički je povezan sa prekidačem na koji su i ostali računari povezan). Pošto je naš računar sa zaštitnim zidom sada čvorna tačka za druge računare za pristup Internetu, on se takođe naziva gateway(engleski pristupnik).

S takvom organizacijom lokalne mreže vjerovatnoća hakovanja je značajno smanjena - napadač "vidi" samo gateway sa Interneta, a na gatewayu je instaliran firewall i nije ga lako hakirati.

Postavljanje iptablesa na Linux za lutke

Računari lokalne mreže mogu surfati Internetom i ostati relativno sigurni.

Konfiguriranje firewall-a korištenjem arno-iptables-firewall konfiguratora

Za organizaciju firewall-a GNU / Linux program se koristi iptables, koji se po pravilu odmah instalira prilikom instaliranja većine distribucija. V Debian GNU / Linux ovo možete provjeriti pokretanjem s administratorskim pravima sposobnost... Ako je potrebno, instalirajte iptables.

Međutim, ručna konfiguracija iptables je netrivijalan zadatak i mogu ga obavljati samo stručnjaci iz oblasti sistemske administracije. Stoga je za konfiguriranje pravila po kojima će firewall raditi, bolje koristiti specijalni konfigurator... V Debian GNU / Linux Ovaj program arno-iptables-firewall... Kada se pokrene, postavlja niz pitanja, na osnovu kojih generiše pravila za funkcionisanje firewall-a. iptables.

Upisujemo u konzolu sa pravima superkorisnika:

#aptitude instaliraj arno-iptables-firewall

Na početku instalacije, program će pitati da li zaista želimo da konfigurišemo firewall sa njim. iptables:

Prvo, potrebno je navesti eksterno sučelje – „gledanje“ na Internet, tj. spojen na modem. Postavke interfejsa su definisane u konfiguracionoj datoteci / etc / mreža / sučelja... Na primjer, to može izgledati ovako:

# Ovo je lo interfejs - pokazuje na samu našu mašinu. auto lo iface lo inet loopback adresa 127.0.0.1 netmask 255.0.0.0 # Ovo je eth0 interfejs, koji je povezan na Internet (ADSL modem) # Njegova posebnost je u tome što mu IP adresu dodeljuje ISP dinamički, # tako da dhcp auto eth0 opcija je postavljena iface eth0 inet dhcp # Ovo je sučelje koje je okrenuto prema lokalnoj mreži # Adresa lokalne mreže će biti 192.168.2.0/24 # Iz sigurnosnih razloga u lokalnoj mreži, gateway ima statičku IP adresu - 192.168.2.1, # stoga je postavljena statička opcija # Mrežna maska ​​- 255.255.255.0 # Adresa mrežnog emitovanja u ovom slučaju će biti 192.168.2.255 auto eth1 iface eth1 inet statična adresa 192.168.2.1 net 192.168.2.1 net 192.168.2.1 net.525.525.52.

Dakle, gledajući postavke / etc / mreža / sučelja, ukazujemo konfiguratoru zaštitnog zida da je naš vanjski interfejs eth0:

Na pitanje da li nam provajder daje IP adresu dinamički(koristeći DHCP), odgovaramo potvrdno:

Sljedeće pitanje je koje usluge će se pružati sa našeg računara vanjskim korisnicima interneta. Nemamo ga! Ne bavimo se profesionalnim web hostingom i ne namjeravamo distribuirati informacije van. Ostavljamo red prazan.

Zatim dolazi pitanje da li ćemo pružati bilo kakve usluge preko UDP-a. Također ne - i također ostavite prazan red!

Da li nas treba pingovati iz vanjskog svijeta (tj. provjeriti postoji li veza sa računarom na kojem je instaliran firewall)? U našem slučaju, ovo je sasvim prihvatljivo:

Ovim se završava konfiguracija za pojedinačni računar koji nije LAN gateway. Ako namjeravamo koristiti računar kao gateway, moramo odgovoriti na još nekoliko pitanja. Označavamo sučelje s kojim je gateway okrenut prema lokalnoj mreži - u našem slučaju jeste eth1 kao što je vidljivo iz / etc / mreža / sučelja(u suprotnom, za "usamljeni" računar ostavite ovo polje praznim):

Na pitanje da li dozvoliti NAT prevod, tj. preusmjeravanje prometa s Interneta preko gatewaya na lokalnu mrežu i obrnuto, odgovaramo s "da" - ovo je jedan od naših glavnih zadataka u ovom slučaju:

Tada se postavlja pitanje: koji segment lokalne mreže može biti primljen putem prosljeđivanja na eksterne mreže? Svi računari lokalne mreže imaju pravo pristupa Internetu; ponovo postavite vrijednost 192.168.2.0/24

Konačno, potvrđujemo našu želju za lansiranjem iptables bez dodatne provjere s naše strane automatski generiranih pravila zaštitnog zida od strane konfiguratora:

Nakon toga, ako je sve prošlo kako treba, prikazuje se poruka slična onoj ispod. Sada će se pojaviti pri svakom pokretanju gateway računara i obavještavati o uspješnom pokretanju zaštitnog zida:

Arno je Iptables Firewall Script v1.8.8c -------------------------- Sanity provjere prošlo ... OK Otkriven iptables modul ...

Učitavanje dodatnih IPTABLES modula: Svi IPTABLES moduli su učitani! Konfiguriranje /proc /…. postavke: Omogućavanje anti-spoof-a sa rp_filter Omogućavanje SYN-flood zaštite preko SYN-kolačića Onemogućavanje evidentiranja marsovaca Onemogućavanje prihvatanja ICMP-redirect poruka Postavljanje maks. količina istovremenih konekcija do 16384 Omogućavanje zaštite od izvornih rutiranih paketa Podešavanje zadanih vremenskih ograničenja conntrack Omogućavanje smanjenja mogućnosti DoS-a. Podešavanje Default TTL = 64 Onemogućavanje ECN-a (Explicit Congestion Notification) Omogućavanje podrške za dinamičku IP adresu. .. Pravila za ispiranje u tabeli filtera Postavljanje zadanih (sigurnih) politika Upotreba "info" na nivou dnevnika za syslogd Postavljanje pravila zaštitnog zida: ——————————————————————— —— - Prihvatanje paketa sa lokalnog loopback uređaja Omogućavanje postavljanja maksimalne veličine paketa putem MSS-a Omogućavanje mangling TOS-a Omogućeno evidentiranje skrivenih skeniranja (nmap sonde itd.) Omogućeno Evidentiranje paketa sa lošim TCP-zastavicama. omogućeno Evidentiranje pristupa sa rezervisanih adresa omogućeno Postavljanje pravila protiv lažiranja Čitanje prilagođenih IPTABLES pravila iz / etc / arno-iptables-firewall / custom-rules Učitavanje (korisničkih) dodataka Podešavanje politike INPUT za eksternu mrežu (INET): Ena bling podrška za DHCP dodijeljen IP na vanjskim sučeljima: eth0 Omogućeno evidentiranje eksplicitno blokiranih hostova Omogućeno evidentiranje odbijenih lokalnih izlaznih veza. odbačenih ICMP-zahtjeva (ping) paketa omogućeno. Omogućeno evidentiranje ispuštenih drugih ICMP paketa. Omogućeno evidentiranje mogućih skrivenih skeniranja. Omogućeno evidentiranje (drugih) pokušaja povezivanja na PRIVILEGIRANI TCP portovi. ostalo) pokušaji povezivanja sa NEPRIVILEGIRANIM TCP portovima omogućeno. Omogućeno evidentiranje (drugih) pokušaja povezivanja na NEPRIVILEGIRANI UDP portovi. Omogućeno evidentiranje drugih IP protokola (ne TCP / UDP / ICMP) pokušaja povezivanja Omogućeno evidentiranje ICMP poplava Primjena INET politike na eksterni (INET) interfejs: eth0 (bez specificirane eksterne podmreže) Postavljanje politike INPUT za interni (LAN) interfejs(e): eth1 Omogućavanje ICMP-zahtjeva (ping) A omogućavanje svih (ostalih) protokola Postavljanje politike FORWARD za interni (LAN) interfejs(e): eth1 Evidentiranje odbijenih LAN-> INET FORWARD veza omogućeno Postavljanje LAN-> INET politike: Dozvoljavanje ICMP-zahtjeva (ping) Dozvoljavanje svih (ostalo) ) protokoli Omogućavanje maskiranja (NAT) preko eksternog interfejsa: eth0 Dodavanje (internog) hosta: 192. 168.2.0 / 24 Sigurnost je SIGURAN za eksterni interfejs(e) u lancu FORWARD 16. januar 23:53:12 Primijenjena su sva pravila zaštitnog zida.

Napomena 1. U većini slučajeva, uspješno pokretanje firewall-a događa se nakon prve komunikacije s konfiguratorom. Ako nešto ne radi, toplo se preporučuje da ponovite konfiguraciju ponovnim pokretanjem konfiguratora s pravima superkorisnika:

# dpkg-reconfigure arno-iptables-firewall

Ovo će eliminisati povremenu grešku koja bi mogla nastati pri odgovaranju na pitanja konfiguratora tokom prvog iskustva sa njim. Ako ni ovo ne pomogne, možete pokušati ručno ispraviti konfiguracijsku datoteku programa. arno-iptables-firewall, odnosno: /etc/arno-iptables-firewall/firewall.conf... Možda bi bilo od pomoći da posjetite početnu stranicu kreatora ovog programa na http://rocky.eld.leidenuniv.nl/. Sadrži vrlo informativan priručnik za rad sa programom, zanimljiva FAQ i, osim toga, informacije o novim verzijama programa.

Napomena 2. Ne zaboravite to niko zaštitni zid ne može dati 100% garanciju sigurnosti računara na Internetu. Međutim, ne možete zanemariti zaštitu vatrozida. Moramo učiniti sve što je u našoj moći da se tada oslonimo na milost Božju. "Ako Gospod ne sačuva grad, uzalud je stražar"(Ps. 126:1).

Izvor članka

Davno sam napisao post na blogu o osnovnim Iptables pravilima za radnog korisnika i vjerovatno biste ga trebali pročitati i srodni članak o Stateful firewall-u.

Ali pre kernela 2.6.39 (koji uključuje i možete ga koristiti za stavljanje na belu listu ako imate više od 10 za belu listu (gde je 10 proizvoljno)).

Postavljanje iptablesa za lutke

Prvo stanje ručke za koje znamo da želimo prihvatiti ili ukloniti, i sučelja.

Ako samo želite dozvoliti samo IP, bez državljanstva

veća je vjerovatnoća da ćete naići na probleme s ovim i predlažem da koristite državu da biste olakšali svoj život. Na primjer, ne rješava i sigurno će uzrokovati probleme za određene aplikacije.

Top srodni članci