Kako postaviti pametne telefone i računala. Informativni portal
  • Dom
  • vijesti
  • Postavljanje netfiltera pomoću iptablesa. Minimalni skup Iptables pravila za tipične zadatke

Postavljanje netfiltera pomoću iptablesa. Minimalni skup Iptables pravila za tipične zadatke

Glavni zadatak vatrozida(vatrozid) filtriranje i obrada paketa koji prolaze kroz mrežu. Kada analizira ulazni paket, vatrozid odlučuje o sudbini ovog paketa: baci paket ( PAD), prihvatite paket ( PRIHVATITI) ili učinite nešto drugo s njim.

V Linux vatrozid je modul kernela koji se zove netfilter i skup je kukica za rad s mrežnim stogom. Sučelje za izmjenu pravila po kojima vatrozid obrađuje pakete je pomoćni program iptables za IPv4 i uslužni program ip6tables za IPv6.

Sav posao filtriranja prometa obavlja jezgra sustava. Iptables nije demon i ne stvara nove procese na sustavu. Uključite ili isključite iptables samo šalje signal kernelu. Visoka brzina filtriranja postiže se analizom samo zaglavlja paketa.

Na glavne značajke iptables odnositi se:

  • filtriranje prometa na temelju adresa pošiljatelja i primatelja paketa, brojeva portova;
  • preusmjeravanje paketa prema određenim parametrima;
  • organizacija pristupa mreži (SNAT);
  • prosljeđivanje portova 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 najprije dolazi do mrežnog uređaja, nakon čega ga vozač presreće i prenosi u kernel. Nakon toga, paket se prolazi kroz niz tablica i tek tada se prenosi lokalnoj aplikaciji ili preusmjerava na drugi sustav, ako se radi o tranzitnom paketu.

V iptables koriste se tri vrste tablica:

  1. komadati- koristi se za promjenu zaglavlja paketa;
  2. nat- koristi se za prevođenje mrežnih adresa;
  3. filtar- za filtriranje prometa;

Mangle stol

Glavna svrha stola komadati- izmjena zaglavlja paketa. U ovoj tablici mogu se izvršiti sljedeće radnje:

  • postavljanje bita Vrsta usluge;
  • postavljanje polja Time To Live;
  • postavljanje oznake na paket koji se može provjeriti u drugim pravilima;

Lanci u stolu komadati:

  • PREUSMIRANJE- koristi se za izmjene paketa na ulazu u iptables, prije odluke o usmjeravanju;
  • POSTROUTIRANJE- koristi se za izmjene paketa na izlazu iz iptablesa, nakon odluke o usmjeravanju;
  • ULAZNI- koristi se za izmjene paketa prije nego što se prebace u lokalnu aplikaciju;
  • IZLAZ- koristi se za modificiranje paketa koji dolaze iz aplikacije unutar iptablesa;
  • NAPRIJED- koristi se za izmjene tranzitnih paketa;

Nat stol

Tablica se koristi za prevođenje mrežnih adresa i kada se naiđe na paket za uspostavljanje nove veze. U ovoj tablici mogu se 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;
  • MASKRADA- koristi se u iste svrhe kao SNAT ali vam omogućuje rad s dinamičkim IP adresama;

Lanci u ovoj tablici:

  • PREUSMIRANJE- koristi se za izmjene paketa na ulazu u iptables;
  • IZLAZ- koristi se za prevođenje adresa u paketima prije daljnjeg usmjeravanja;
  • POSTROUTIRANJE- koristi se za pretvaranje paketa prije slanja u mrežu;

Tablica filtera

Tablica se koristi za filtriranje paketa. U ovoj tablici postoje tri lanca:

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

Paket koji prolazi kroz ove lance može biti podvrgnut radnjama: PRIHVATITI, PAD, ODBITI, LOG.

Ukratko, paket koji stiže prolazi kroz lanac pravila. Svako pravilo sadrži stanje i Svrha(akcijski). Ako paket zadovoljava uvjet, tada se šalje na cilj, inače se sljedeće pravilo u lancu primjenjuje na paket. Ako paket ne zadovoljava nijedan od uvjeta u lancu, tada se na njega primjenjuje zadana radnja.

Lanac stol
filtar nat komadati
ULAZNI + +
NAPRIJED + +
IZLAZ + + +
PREUSMIRANJE + +
POSTROUTIRANJE + +

Iptables uslužni program

Instalacija 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 uslugom sudo iptables start

Pravila spremanja

# 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-vraćanje< firewall-config

Svako pravilo u iptables je zasebna 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 tablica - specificira naziv tablice za koju će se kreirati pravilo;
  • naredba - naredba koja definira radnju iptables- dodajte pravilo, izbrišite pravilo itd.;
  • match - postavlja kriterije testiranja prema kojima se utvrđuje da li paket podliježe pravilu ili ne;
  • cilj / skok - koju radnju treba izvesti kada je kriterij ispunjen;

Iptables naredbe:

  • -A - dodajte pravilo u lanac, pravilo će biti dodano na kraj lanca;
  • -D - ukloniti pravilo iz lanca;
  • -R - zamijeniti jedno pravilo drugim;
  • -I - ubaciti novo pravilo u lanac;
  • -L - prikaz popisa pravila u navedenom lancu;
  • -F - briše sva pravila u navedenom lancu;
  • -Z - resetirati sve brojače u navedenom lancu;
  • -N - stvoriti novi lanac s navedenim imenom;
  • -X - izbrisati lanac;
  • -P - postavlja zadanu politiku za lanac;
  • -E - preimenovati korisnički lanac;

Primjeri naredbi za Iptables

Paketi se mogu filtrirati prema sljedećim parametrima:

Izvor paketa

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

Iptables -A INPUT -s 192.168.1.95 -j DROP

Možete koristiti naziv domene za određivanje adrese 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

Također možete koristiti negaciju (znak!). Na primjer, svi paketi s hosta koji nisu 192.168.1.96 bit će izbrisani:

Iptables - ULAZ! -s 192.168.1.96 -j DOP

Dopusti protok prometa 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-prefix "IP_SPOOF A:" iptables -A INPUT -i eth1 -s 10.0.0.0/8 -j DROP

Adresa odredišta

Da biste to učinili, 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 s izvorom paketa, možete koristiti adrese za mreže i nazive domena. Poricanje također djeluje.

Protokol

Opcija -p označava protokol. Može se koristiti sve, icmp, tcp, udp ili broj protokola (od / itd. / protokoli).

Dopusti dolazne eho zahtjeve

Iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT

Izvorni port

Dopusti sve odlazne pakete s porta 80:

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

Blokiraj 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 raspon portova

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

Odredišna luka

Dopusti HTTP veze

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

Omogućuje primanje podataka s DHCP poslužitelja

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

  • Daljinski iskorištavanje programskih 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 strojni resursi. U prvom slučaju, tok paketa zauzima cijelu propusnost i ne daje napadnutom stroju mogućnost obrade legitimnih zahtjeva. U drugom, resursi stroja su zarobljeni korištenjem višestrukih i vrlo čestih poziva bilo kojoj usluzi koja izvodi složenu operaciju koja zahtijeva puno resursa. To može biti, na primjer, dugi poziv jednoj od aktivnih komponenti (skripte) web poslužitelja. Poslužitelj troši sve resurse stroja na obradu zahtjeva napadača, a korisnici moraju čekati. Poplava može biti različita: ICMP poplava, SYN poplava, UDP poplava i HTTP poplava

Prikupljanje informacija o mrežnim vezama

Pregledajte otvorene veze

Netstat -ntu | awk "(ispis 5 dolara)" | rez -d: -f1 | sortirati | jedinstven -c | sortirati -n

Broj priključaka 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 propusnosti i stvaranja opterećenja na mrežnom stogu kroz monotono slanje ICMP ECHO zahtjeva (ping). Lako se otkriva analizom prometnog toka u oba smjera: tijekom ICMP napada poplave, oni su gotovo identični. Gotovo bezbolan način apsolutne zaštite temelji se na onemogućavanju odgovora na ICMP ECHO zahtjeve:

Sysctl net.ipv4.icmp_echo_ignore_all = 1

Ili korištenjem iptabels:

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

SYN poplava. Jedan od uobičajenih načina ne samo da se začepi komunikacijski kanal, već i da se mrežni stog operativnog sustava dovede u stanje u kojem više ne može prihvaćati nove zahtjeve za povezivanje. Na temelju pokušaja inicijalizacije velikog broja istodobnih TCP veza slanjem SYN paketa s nepostojećom povratnom adresom. Nakon nekoliko pokušaja slanja paketa ACK odgovora na nedostupnu adresu, većina operativnih sustava će staviti u red čekanja neusklađenu vezu. I tek nakon n-tog pokušaja veza se zatvara. Budući da je protok ACK paketa vrlo velik, ubrzo je red pun i kernel odbija pokušati otvoriti novu vezu. Najpametniji DoS botovi također analiziraju sustav prije početka napada kako bi poslali zahtjeve samo na otvorene vitalne portove. Lako je prepoznati takav napad: samo se pokušajte povezati s jednom od usluga.

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

Povijest stvaranja

Prije IPTables na Linuxu koristio je IPFW vatrozid, posuđen od BSD-a. Zatim, s 2.4 Linux kernelom, došao je s vatrozidom Netfilter i uslužnim programom IPTables za upravljanje njime. U metodologiji njezina rada svi aspekti su sačuvani i funkcionalno neznatno prošireni.

Struktura i struktura IPTables

Kada paket uđe u vatrozid, prolazi kroz nekoliko provjera. To može biti kontrolni zbroj ili bilo koja druga analiza na razini kernela. Zatim je red da se prođe kroz lanac PREPROUTIRANJA. Zatim se provjerava prema čemu dolazi do preusmjeravanja na sljedeći lanac. Ako paket nema adresu, kao na primjer u TCP-u, tada se usmjerava na lanac FORWARD. U slučajevima kada postoji određena adresa, slijedi INPUT lanac, a zatim demoni ili usluge 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 tablica. Njihova imena se mogu ponavljati, ali to ni na koji način ne utječe na rad, jer nisu međusobno povezani.

Tablice pak sadrže nekoliko pravila. Zapravo, pravilo je određeni uvjet koji mora ispunjavati paket koji se provjerava. Ovisno o ishodu, na paketu se izvodi određena radnja.

Dakle, prolazeći kroz sve faze mreže, paket uzastopno posjećuje sve lance i u svakom se provjerava usklađenost s uvjetom određenog pravila. Ako tablicu ne generira korisnik, tada se izvodi zadana radnja, u osnovi, to je ACCEPT, što vam omogućuje da nastavite dalje, ili DROP, što zaustavlja paket.

Prethodno postavljeni lanci dolaze u sljedećim kategorijama:

  • PREUSMIRANJE... Početna obrada svih dolaznih paketa.
  • ULAZNI... To uključuje one pakete koji se šalju izravno na lokalno računalo.
  • NAPRIJED... Koristi se za "tranzitne pakete" koji slijede tablicu usmjeravanja.
  • IZLAZ... Koristi se za odlazne pakete.
  • POSTROUTIRANJE... Posljednja faza u prolasku svih lanaca odlaznim paketom.

Osim 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. Uslužni program IPTables koristi se za pregled i upravljanje pravilima IPTables. Svako pojedinačno pravilo je linija sa skupom uvjeta za pakete, kao i radnje na njima, ovisno o ishodu.

Format naredbe izgleda ovako: iptables [-t naziv tablice koja se obrađuje] naredba koja se poziva [kriteriji] [radnja koja se treba izvesti].

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

Naredbe za stvaranje i pregled IPTables pravila

  • Dodati (-A). Kada koristite naredbu, određujete lanac i tablicu u koju želite dodati potrebno pravilo. Vrijednost tima je što to čini na dnu cijele liste.
  • Izbriši (-D). Kao što naziv implicira, uklanja pravilo. Kao parametre možete odrediti i puno ime i brojeve koji su im dodijeljeni.
  • Preimenuj lanac (-E). Mijenja naziv lanca. Naredba specificira stari naziv, a zatim novi naziv.
  • Ispiranje (-F). Brisanje apsolutno svih pravila određene tablice.
  • Umetnite (-I). Ova naredba umeće traženo pravilo na mjesto označeno brojem.
  • Popis (- L). Pregled pravila iptablesa. Ako nije navedena tablica, koristit će se zadani filtar.
  • Politika (-P). Koristi se zadana politika za navedeni lanac.
  • Zamijenite (-R). Mijenja pravilo pod navedenim brojem u traženo.
  • Izbriši lanac (-X). Ova naredba briše sve stvorene lance. Ostat će samo one unaprijed instalirane.
  • Nula (-Z). Poništit će brojače prenesenih podataka u navedenom lancu.

Malo o parametrima odabira paketa

Ugrubo se mogu podijeliti u tri vrste:

  • Opći kriteriji... Mogu se odrediti za bilo koja pravila. Ne zahtijevaju povezivanje posebnih proširenja i modula, a također ne ovise o tome koji će se protokol koristiti.
  • Nisu opći kriteriji. Oni su dostupni prema općim kriterijima.
  • Eksplicitan. Da biste koristili ovu vrstu, morate spojiti posebne dodatke za netfilter. Osim toga, naredba mora koristiti prekidač -m.

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

  • Protokol (-p). Označava protokol.
  • Izvor (-i). 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.
  • U-sučelje (-i). Određuje ulazno sučelje paketa. Uglavnom se koristi za NAT ili na sustavima s više sučelja.
  • Izlazno sučelje (-o). Odlazno sučelje.

Nekoliko primjera

Za pregled IPTables nat pravila? trebate koristiti naredbu - "iptables -L -t nat". Provjerite opći status vatrozida - "iptables -L -n -v". Osim toga, ova naredba vam omogućuje da vidite pravila IPTables koja su dostupna u cijelom sustavu. Umetnite pravilo na određeno mjesto u tablici, na primjer, između prvog i drugog retka - "iptables -I INPUT 2 -s 202.54.1.2 -j DROP". Zatim pogledajte je li dodan - "iptables -L INPUT -n --line-numbers".

Za blokiranje određene adrese, na primjer 12.12.12.12 - "iptables -A INPUT -s 12.12.12.12 -j DROP".

Referenca za Iptables - "man iptables". Ako trebate informacije o određenoj naredbi - "iptables -j DROP -h".

Konačno

Koristite IPTables naredbe s oprezom, jer netočna konfiguracija (nesvjesno) može dovesti do kvarova na mreži ili potpunog kvara. Stoga je vrijedno prije konfiguriranja detaljno proučiti priručnike i upute. U pravim rukama, IPTables se može pretvoriti u pouzdanog zaštitnika mrežnih veza. Administratori sustava aktivno koriste uslužni program za stvaranje veza izoliranih od neovlaštenog pristupa.

Princip postavljanja

Opća sintaksa za korištenje iptables je:

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

<таблица>

Netfilter pravila su raspoređena u 4 tablice, od kojih svaka ima svoju svrhu (više detalja u nastavku). Zadaje se tipkom -t, ali ako ovaj parametar nije naveden, radnja će se izvršiti za zadanu tablicu - filter.

<команда>

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

<цепочка>

Svaka tablica 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 (prolaz).

[soba]

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

<условие>

Uvjet opisuje kriterije za obradu određenog pravila.

<действие>

Pa, zapravo, što ćemo s paketom ako odgovara kriterijima uvjeta.

* 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 s tablicama (iptables -t)

Podsjetimo, sva pravila u netfilteru su raspoređena po tablicama. Za rad s određenom tablicom, morate koristiti -t prekidač.

Naredbe

Sljedeće tipke određuju što radi uslužni program iptables.

Ključ Opis i primjeri
-A Dodavanje pravila na kraj popisa:
iptables -A INPUT -s 192.168.0.15 -j DROP
odbiti dolazne s 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 popisa:
iptables -I INPUT 5 -s 192.168.0.15 -j DROP
umetnite pravilo 5. na popisu.
-R Zamjena pravila.
iptables -R IZLAZ 5 -s 192.168.0.15 -j PRIHVATI
zamijeniti naše 5. pravilo sa zabranjujućeg na dopuštenje.
-F Brisanje pravila u lancu.
iptables -F ULAZ
-Z Resetiranje statistike.
iptables -Z ULAZ
-N Stvaranje lanca.
iptables -N LANACNOV
-X Brisanje lanca.
iptables -X CHAINNEW
-P Definiranje zadanog pravila.
iptables -P INPUT DROP
-E Preimenujte lanac.
iptables -E LANACNOVI LANAC

Uvjeti

Ovi ključevi definiraju uvjete pravila.

Ključ Opis i primjeri
-str Mrežni protokol. Važeće opcije su TCP, UDP, ICMP ili SVE.
iptables -A ULAZ -p tcp -j PRIHVATI
dopustiti sve dolazne tcp veze.
-s Izvorna adresa - ime hosta, IP adresa ili podmreža u CIDR zapisu.
iptables -A INPUT -s 192.168.0.50 -j DROP
zabrani dolaz s hosta 192.168.0.50
-d Adresa odredišta. Princip korištenja sličan je prethodnom prekidaču -s.
iptables -A IZLAZ -d 192.168.0.50 -j DROP
uskrati 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 sučelje eth2.
-o Mrežni adapter s kojeg paketi odlaze (OUTPUT).
iptables -A IZLAZ -o eth3 -j PRIHVATI
dopustiti odlaz s ethernet sučelja eth3.
--dport Odredišna luka.
iptables -A INPUT -p tcp --dport 80 -j PRIHVATI
dopustiti dolaz na port 80.
--sport Izvorni port.
iptables -A INPUT -p tcp --sport 1023 -j DROP
odbiti dolaz iz luke 1023.

Navedene tipke također podržavaju konstrukciju pomoću znaka ! ... Invertira uvjet, na primjer
iptables -A ULAZ -s! 192.168.0.50 -j DOP
će odbiti vezu svim hostovima osim 192.168.0.50.

Radnje

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

stol Akcijski Opis
filtar PRIHVATITI Rješava paket.
PAD Odbija paket.
ODBITI Sprječava slanje poruke izvoru.
nat MASKRADA Za odlazne pakete, zamjenjuje izvornu IP adresu adresom sučelja s kojeg paket odlazi.
SNAT Slično MASQUERADE, ali specificira specifično mrežno sučelje, čija će se adresa koristiti za lažiranje.
DNAT Prijevara adresa za dolazne pakete.
PREUSMIRAJ Preusmjerava zahtjev na drugi port na istom sustavu.
komadati TOS Promjena polja TOS (prioritet prometa).
DSCP Promjena DSCP-a (također određivanje prioriteta prometa).
TTL Promijenite TTL (životni vijek paketa).
HL Slično TTL-u, ali za IPv6.
OCJENA 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 naredbe

Pogledajte pravila s njihovim brojevima:

iptables -L --brojevi redaka

Za svaku tablicu morate zasebno pogledati pravila:

iptables -t nat -L --brojevi redaka

Ukloni sva pravila:

Postavite zadana pravila:

iptables -P INPUT DROP

iptables -P IZLAZNI DROP

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

Dopusti sve

Metoda 1. Dodavanjem pravila:

iptables -I INPUT 1 -j PRIHVATI

iptables -I IZLAZ 1 -j PRIHVATI

iptables -PROSLJEĐUJEM 1 -j PRIHVAĆAM

* ove tri naredbe će stvoriti pravila koja dopuštaju sve dolazne, odlazne i tranzitne pakete.

Metoda 2. Čišćenjem pravila:

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

Metoda 3. Onemogućavanje usluge (prikladno je onemogućiti vatrozid na neko vrijeme za dijagnosticiranje problema):

usluga iptables stop

Rad s pravilima

Dodajte pravilo na kraj popisa:

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

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

Dodaj 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 iz porta 25:

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

Prosljeđivanje luka

Postoje dva načina za konfiguraciju.

1. Pravila PREUSMIRANJE + POSTROUTIRANJE:

iptables -t nat -A PREUSmjeravanje -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 - luka za prosljeđivanje; 192.168.1.15 - internu IP adresu na koju prenosimo sve zahtjeve; 2222 - unutarnji priključak.

2. Pravila PREUSMIRANJA + PROSLJEĐIVANJA:

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

iptables -A NAPRIJED -p tcp -d 192.168.1.15 --dport 22 -m stanje --stanje NOVO, UTVRĐENO, 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. Srećom, postoji mnogo alata koji vam mogu pomoći ako još niste shvatili iptables, a hitno morate osigurati sustav: fwbuilder, firestarter, guarddog, arno firewall - zapravo, ovo je GUI za iptables. Nedvosmislen je odgovor da boljeg nema. Na vama je da odaberete. Međutim, današnji je članak posvećen upravo iptablesima i podijeljen je u dva dijela: teoriju i praksu. Oni najnestrpljiviji mogu odmah odraditi praktični dio, iako se ovakav pristup ne preporučuje.

Pažnja! Sve radnje s iptablesom izvode se u ime privilegiranog korisnika!

Teorija

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

Radnje

  • ACCEPT - Prihvati paket
  • DROP - Ispustiti 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 s dinamičkim IP-om)
  • RED - Stavite paket u red za obradu
  • REDIRECT - Preusmjeravanje paketa/streama na drugi port
  • ODBACI - Ispustite paket + obavijestite udaljeni sustav o tome. da je njezin paket odbijen
  • POVRATAK - Zaustavite kretanje paketa duž trenutnog lanca i vratite se u lanac poziva

Naredbe

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

Kriteriji (općenito)

  • -p - Odredite vrstu protokola
  • -s je izvorna IP adresa paketa
  • -d - IP adresa primatelja paketa
  • -j - Navedite radnju za pravilo
  • -i - Sučelje s kojeg je primljen paket
  • -o - Odredite naziv izlaznog sučelja
  • -f - Proširi pravilo na sve fragmente paketa

TCP kriteriji:

  • –Tcp-flags – Odredite masku paketa i zastavice

UDP kriteriji:

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

Više u man iptables

Praksa

Pregled trenutne konfiguracije

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

Ako vidite nešto takvo, onda vaš vatrozid još nije konfiguriran i dopušta sve. Popravimo situaciju.

Postavljanje zadane politike

  • iptables -P INPUT DROP - blokira dolazne pakete
  • iptables -P OUTPUT ACCEPT - dopustiti odlazne pakete
  • iptables -P FORWARD DROP - obrada paketa koji su došli na poslužitelj s drugog stroja i čekaju daljnje prosljeđivanje. U primjeru je blokiran. U tom slučaju morat ćete dodati pravila za pouzdane strojeve.

Budući da su dolazni INPUT paketi blokirani, napišimo pravilo:

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

To će omogućiti primanje paketa s prethodno uspostavljene veze i prihvaćanje novih paketa generiranih ovom vezom.

Ili određivanje vrste protokola:

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

Sada lokalno sučelje:

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

  • NOVO - podaci koji započinju novu vezu.
  • ESTABLISHED - paket koji dolazi iz već uspostavljene veze.
  • POVEZANO - novi podatkovni paket, ali generiran starom uspostavljenom vezom
  • NEVALJANO - 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 sustava:

U direktoriju /etc/init.d stvorite 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 datoteku iptables 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 bilo kojem trenutku možete provjeriti jesu li vaša pravila učitana jednostavnim unosom iptables-save iz root-a

Za archlinux, spremanje iptables pravila vrši se naredbom:

$ sudo rc.d spremite iptables

Mala početna skripta (pravila, iptables faq) za desktop ili jednostavan poslužitelj. U ovom slučaju, primjeri rada s priključcima jednog ili drugog softvera koji se izvodi na vašem računalu. Sigurnosne mjere moraju se poštovati na svakom računalu. Mit da je Linux sigurniji nije istinit, sve ovisi o nespretnim rukama administratora. Postoje dobro zaštićeni Windows sustavi, kao i Linux sustavi koji su otvoreni gotovo svima. 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 prvu.

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š malo pravila, nema različitih VPN-ova itd., ako želite, dodajte.

Ove se retke 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 online, posebno je dodana prijava. 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 što uzeti iz članka o TCP optimizaciji.

Kako ukloniti pravilo u iptables

Objavio Alexey Uboženko

Nekoliko puta sam se susreo s činjenicom da čak i ljudi koji općenito nisu glupi čine apsolutno neoprostive greške. Na primjer, otvaraju port na kojem se izvodi baza podataka za cijeli Internet.

Blog o administraciji sustava. Članci o Linuxu, Windowsu, NetApp pohrani i virtualizaciji.

To je često slučaj za DevOps početnike koji su cijeli život kodirali, a sada njihove odgovornosti uključuju i postavljanje poslužitelja. Na internetu postoje dobri vodiči o osnovnom postavljanju vatrozida u Linuxu i drugim * nixima, ali često su to listovi za mnoge zaslone. Dakle, nadamo se da će nekome ovaj sažetiji vodič biti koristan.

Važno! Vrlo je lako zabunom ispaliti automobil na način da u njega više nećete ući. To se posebno odnosi na hosting u oblaku. Na primjer, ako u AWS-u zatvorite sve portove od 1024 do 65536, iz nekog razloga stroj se zatvara nakon ponovnog pokretanja. općenito sve lukama. Ako hostirate u oblacima, najbolje je konfigurirati svoj vatrozid putem hostiranog web sučelja.

Kratka napomena o terminologiji. Vatrozid ugrađen u jezgru Linuxa naziva se Netfilter, a iptables je uslužni program za upravljanje ovim vatrozidom. Mnogi ljudi pogrešno misle da se vatrozid zove iptables. Ovo nije istina. Rekavši nešto poput "filtriram pakete s iptablesima", pokazujete drugima da ste nepismeni.

Općenito, koji se zadaci mogu riješiti pomoću Netfiltera:

  • Dopustiti/zabraniti dolazni promet na određene portove koristeći specifične protokole (IPv4 / IPv6, TCP / UDP) s određenih adresa (IP, MAC) ili podmreža;
  • Sve je isto za odlazni promet;
  • Možete, na primjer, potpuno zanemariti sve ICMP pakete;
  • Konfiguriranje NAT-a, pogledajte post o instalaciji i konfiguraciji OpenVPN-a;
  • Čuo sam da pravi gurui znaju 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 uslužni program iptables isprva činio iznimno nezgodnim u usporedbi s 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, stoga budite strpljivi. Pogledajmo glavne naredbe.

Prikaži sva pravila:

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

Ja osobno također imam Docker lanac na svom autu. Po prvi put, prva dva možete zamisliti kao sav dolazni i odlazni promet, odnosno, i privremeno zaboraviti na ostatak. Velike su šanse da vam nikada neće trebati.

Ukloni sva pravila:

Lanac promjene pravila (zadano ponašanje):

iptables -P INPUT DROP
iptables -P ULAZ PRIHVATI

Zabrani pristup s 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 ULAZ! -s 123.45.67.89 -j ISPUSTI

Brisanje pravila po broju u lancu:

iptables -D ULAZ 1

Uklanjanje pravila na temelju 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 s 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 mreže split 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 saznati koji portovi slušaju na stroju i zatvoriti dodatne. Idemo do auta i kažemo:

Primjer izlaza:

Aktivne internetske veze (samo poslužitelji)
Proto Recv-Q Send-Q Lokalna adresa Strana adresa Država PID / naziv 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:* SLUŠAJ 1789 / epmd
tcp 0 0 0.0.0.0:22 0.0.0.0:* SLUŠAJ 797 / sshd
tcp 0 0 127.0.0.1:5432 0.0.0.0:* SLUŠAJ 990 / postgres

Nginx i SSHd pretražuju internet, to je u redu. PostgreSQL sluša samo lokalno sučelje, tako da ni s njim nema problema. Ali epmd strši (možete ga provjeriti telnetom s drugog stroja), 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 proširenje za više priključaka za određivanje raspona portova.

Provjeravamo da li sve radi. Ako je u redu, spremite pravila:

iptables-save> /etc/iptables.rules

Da biste preuzeli pravila pri pokretanju sustava, 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 provjerena da radi na Ubuntu 14.04 LTS.

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

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

Kako konfigurirate vatrozide na svojim poslužiteljima?

Oznake: Linux, Sigurnost, Mreže.

Uslužni program naredbenog retka iptables koristi se za konfiguriranje netfilter vatrozida ugrađenog u sustav temeljen na jezgri Linuxa.

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

Princip postavljanja

Opća sintaksa za korištenje iptables je:

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

<таблица>

Netfilter pravila su raspoređena u 4 tablice, od kojih svaka ima svoju svrhu (više detalja u nastavku). Zadaje se tipkom -t, ali ako ovaj parametar nije naveden, radnja će se izvršiti za zadanu tablicu - filter.

<команда>

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

<цепочка>

Svaka tablica 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 (prolaz).

[soba]

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

<условие>

Uvjet opisuje kriterije za obradu određenog pravila.

<действие>

Pa, zapravo, što ćemo s paketom ako odgovara kriterijima uvjeta.

* 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 s tablicama (iptables -t)

Podsjetimo, sva pravila u netfilteru su raspoređena po tablicama. Za rad s određenom tablicom, morate koristiti -t prekidač.

Naredbe

Sljedeće tipke određuju što radi uslužni program iptables.

Ključ Opis i primjeri
-A Dodavanje pravila na kraj popisa:
iptables -A INPUT -s 192.168.0.15 -j DROP
odbiti dolazne s 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 popisa:
iptables -I INPUT 5 -s 192.168.0.15 -j DROP
umetnite pravilo 5. na popisu.
-R Zamjena pravila.
iptables -R IZLAZ 5 -s 192.168.0.15 -j PRIHVATI
zamijeniti naše 5. pravilo sa zabranjujućeg na dopuštenje.
-F Brisanje pravila u lancu.
iptables -F ULAZ
-Z Resetiranje statistike.
iptables -Z ULAZ
-N Stvaranje lanca.
iptables -N LANACNOV
-X Brisanje lanca.
iptables -X CHAINNEW
-P Definiranje zadanog pravila.
iptables -P INPUT DROP
-E Preimenujte lanac.
iptables -E LANACNOVI LANAC

Uvjeti

Ovi ključevi definiraju uvjete pravila.

Ključ Opis i primjeri
-str Mrežni protokol. Važeće opcije su TCP, UDP, ICMP ili SVE.
iptables -A ULAZ -p tcp -j PRIHVATI
dopustiti sve dolazne tcp veze.
-s Izvorna adresa - ime hosta, IP adresa ili podmreža u CIDR zapisu.
iptables -A INPUT -s 192.168.0.50 -j DROP
zabrani dolaz s hosta 192.168.0.50
-d Adresa odredišta. Princip korištenja sličan je prethodnom prekidaču -s.
iptables -A IZLAZ -d 192.168.0.50 -j DROP
uskrati 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 sučelje eth2.
-o Mrežni adapter s kojeg paketi odlaze (OUTPUT).
iptables -A IZLAZ -o eth3 -j PRIHVATI
dopustiti odlaz s ethernet sučelja eth3.
—Dport Odredišna luka.
iptables -A INPUT -p tcp -dport 80 -j PRIHVATI
dopustiti dolaz na port 80.
-Sport Izvorni port.
iptables -A INPUT -p tcp -sport 1023 -j DROP
odbiti dolaz iz luke 1023.

Navedene tipke također podržavaju konstrukciju pomoću znaka ! .

Postavljanje netfiltera s iptables

Invertira uvjet, na primjer
iptables -A ULAZ -s! 192.168.0.50 -j DOP
će odbiti vezu svim hostovima osim 192.168.0.50.

Radnje

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

stol Akcijski Opis
filtar PRIHVATITI Rješava paket.
PAD Odbija paket.
ODBITI Sprječava slanje poruke izvoru.
nat MASKRADA Za odlazne pakete, zamjenjuje izvornu IP adresu adresom sučelja s kojeg paket odlazi.
SNAT Slično MASQUERADE, ali specificira specifično mrežno sučelje, čija će se adresa koristiti za lažiranje.
DNAT Prijevara adresa za dolazne pakete.
PREUSMIRAJ Preusmjerava zahtjev na drugi port na istom sustavu.
komadati TOS Promjena polja TOS (prioritet prometa).
DSCP Promjena DSCP-a (također određivanje prioriteta prometa).
TTL Promijenite TTL (životni vijek paketa).
HL Slično TTL-u, ali za IPv6.
OCJENA 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 naredbe

Pogledajte pravila s njihovim brojevima:

iptables -L —brojevi redaka

Za svaku tablicu morate zasebno pogledati pravila:

iptables -t nat -L --brojevi redaka

Ukloni sva pravila:

Postavite zadana pravila:

iptables -P INPUT DROP

iptables -P IZLAZNI DROP

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

Dopusti sve

Metoda 1. Dodavanjem pravila:

iptables -I INPUT 1 -j PRIHVATI

iptables -I IZLAZ 1 -j PRIHVATI

iptables -PROSLJEĐUJEM 1 -j PRIHVAĆAM

* ove tri naredbe će stvoriti pravila koja dopuštaju sve dolazne, odlazne i tranzitne pakete.

Metoda 2. Čišćenjem pravila:

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

Metoda 3. Onemogućavanje usluge (prikladno je onemogućiti vatrozid na neko vrijeme za dijagnosticiranje problema):

Rad s pravilima

Dodajte pravilo na kraj popisa:

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

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

Dodaj 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

Prosljeđivanje luka

Postoje dva načina za konfiguraciju.

1. Pravila PREUSMIRANJE + POSTROUTIRANJE:

iptables -t nat -A PREUSmjeravanje -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 —prema izvoru 19.8.232.80:22

* gdje 19.8.232.80 - adresu na kojoj slušamo zahtjeve za povezivanje; 22 - luka za prosljeđivanje; 192.168.1.15 2222 - unutarnji priključak.

2. Pravila PREUSMIRANJA + PROSLJEĐIVANJA:

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

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

* gdje eth1- mrežno sučelje na kojem slušamo zahtjeve; 22 - luka za prosljeđivanje; 192.168.1.15 - internu IP adresu na koju prenosimo sve zahtjeve; 2222 - unutarnji priključak.

Pokretanje postavljanja

Dopusti SSH:

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

Postavili smo politiku zabrane dolaznih i dopuštajući sve odlazne:

iptables -P IZLAZ PRIHVATI

Napravite pravilo da apt-get radi ispravno:

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

Dopusti ICMP (za ping naredbu):

iptables -A ULAZ -p icmp -j PRIHVATI

Pravila spremanja (trajna)

Prema zadanim postavkama, sva pravila prestaju raditi nakon ponovnog pokretanja mreže ili računala. Postoji nekoliko načina za konfiguriranje pravila za očuvanje pravila nakon ponovnog pokretanja.

Metoda 1.iptables-save

Pravila spremamo u datoteku:

iptables-save> /etc/iptables.rules

Otvorite mrežne postavke:

vi / etc / mreža / sučelja

i dodajte redak:

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

Metoda 2.iptables-persistent

Instalirajte iptables-persistent paket:

apt install iptables-persistent

Za spremanje pravila unesite naredbu:

usluga iptables-trajno spremanje

Metoda 3.service iptables

Radi na starijim verzijama Linuxa:

Metoda 4.iptables.init

Radi na CentOS-u:

/usr/libexec/iptables/iptables.init spremanje

Ubuntu i CentOS

Na modernim Ubuntu i CentOS operativnim sustavima prema zadanim postavkama nema iptablesa.

Morate ga instalirati ili koristiti novije uslužne programe.

Na CentOS-u

Firewall-cmd se koristi kao standardni program za upravljanje vatrozidom. Za više pojedinosti 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 zaustaviti vatrozid

systemctl onemogućiti firewalld

Omogućavamo i pokrećemo iptables:

systemctl omogući iptables

U Ubuntu

Ufw se sada koristi za upravljanje vatrozidom.

Za rad s iptablesom, instalirajte sljedeći paket:

apt-get install iptables-persistent

Onemogući ufw:

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

Je li vam ovaj vodič bio od pomoći?

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

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

Svaka veza s internetom ne samo da omogućuje spajanje na razne poslužitelje i stranice, već stvara i potencijalnu opasnost od prodora u naše računalo izvana. Ovu opasnost ne treba zanemariti jer je većina pokušaja neovlaštenog pristupa računalima korisnika s interneta danas dio dobro organiziranog kriminalnog poslovanja. Nakon uspješnog kompromitiranja vašeg sustava, pokušat će upotrijebiti vaše računalo ili za slanje neželjene pošte, ili za organiziranje DoS napada na druga računala, ili za bilo koje druge podle svrhe. Zanemarivanje ove opasnosti, u najboljem slučaju, povećat će vaše troškove prometa i usporiti rad vašeg računala, au najgorem slučaju može vas nesvjesno uključiti u kriminalne aktivnosti cyber grupa.

Situaciju pogoršava činjenica da su u nekim (još uvijek) raširenim operativnim sustavima mnogi portovi prema zadanim postavkama ostavljeni otvoreni, što omogućuje napadaču da se s interneta poveže s korisnikom, a da ovaj nije svjestan.

Kako biste spriječili neovlašteno povezivanje izvana i filtrirali dolazni/odlazni promet u operativnom sustavu, treba koristiti poseban program - vatrozida(engleski vatrozid), također poznat kao vatrozida i vatrozida... Ispod je jednostavan primjer postavljanja vatrozida u besplatnom operativnom sustavu. Debian GNU / Linux 4.0.

Upotreba vatrozida postaje posebno relevantna ako imate više računala, ali kućnu ili uredsku mrežučija računala idu na internet.

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

Postoji iskušenje (podgrijano nepismenim preporukama, kao, na primjer, u uputama za moj ADSL modem) da spojite modem izravno na prekidač, a zatim spojite na prekidač svi računala lokalne mreže. U ovom slučaju, modem dinamički izdaje lokalne IP adrese preko prekidača, ali ispada da svako računalo ostaje samo s internetom! Ni modem ni prekidač ne mogu postati prepreka zlobniku. Napadač može skenirati svi na ovaj način organizirana računala lokalne mreže.

Logično i sigurno rješenje je stvaranje prepreka između modema i lokalne mreže - u obliku zasebnog računala s konfiguriranim "vatrozidom" (firewall) na njemu. Ovo računalo ima dva sučelja - jedno "gleda" na Internet (tj. fizički je spojeno na modem), drugo je usmjereno na lokalnu mrežu (i fizički je spojeno na prekidač na koji su i ostala računala povezan). Budući da je naše računalo s vatrozidom sada čvorna točka za druga računala za pristup Internetu, također se naziva pristupnika(engleski pristupnik).

S takvom organizacijom lokalne mreže vjerojatnost hakiranja značajno je smanjena - napadač "vidi" samo pristupnik s interneta, a na gateway je instaliran vatrozid i nije ga lako hakirati.

Postavljanje iptablesa na Linux za lutke

Računala lokalne mreže mogu surfati Internetom i ostati relativno sigurna.

Konfiguriranje vatrozida pomoću konfiguratora arno-iptables-firewall

Za organizaciju vatrozida GNU / Linux program se koristi iptables, koji se u pravilu odmah instalira prilikom instaliranja većine distribucija. V Debian GNU / Linux to 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 područja administracije sustava. Stoga je za konfiguriranje pravila po kojima će vatrozid raditi, bolje koristiti poseban konfigurator... V Debian GNU / Linux Ovaj program arno-iptables-firewall... Kada se pokrene, postavlja niz pitanja, na temelju kojih generira pravila za funkcioniranje vatrozida. iptables.

U konzolu upisujemo s pravima superkorisnika:

#aptitude instaliraj arno-iptables-firewall

Na početku instalacije, program će pitati želimo li stvarno s njim konfigurirati firewall. iptables:

Najprije treba navesti vanjsko sučelje – „gledanje“ na Internet, tj. spojen na modem. Postavke sučelja definirane su u konfiguracijskoj datoteci / etc / mreža / sučelja... Na primjer, može izgledati ovako:

# Ovo je lo sučelje - pokazuje na sam naš stroj. auto lo iface lo inet loopback adresa 127.0.0.1 netmask 255.0.0.0 # Ovo je eth0 sučelje, koje je spojeno na Internet (ADSL modem) # Njegova je posebnost u tome što mu ISP dodjeljuje IP adresu dinamički, # tako opcija dhcp auto eth0 je postavljena iface eth0 inet dhcp # Ovo je sučelje koje je okrenuto prema lokalnoj mreži # Adresa lokalne mreže bit će 192.168.2.0/24 # Iz sigurnosnih razloga u lokalnoj mreži, pristupnik 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 emitiranja u ovom slučaju bit će 192.168.2.255 auto eth1 iface eth1 inet statična adresa 192.168.2.1 .255.255.252 net525 .

Dakle, gledajući postavke / etc / mreža / sučelja, konfiguratoru vatrozida ukazujemo da je naše vanjsko sučelje eth0:

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

Sljedeće je pitanje koje će usluge s našeg računala pružati vanjskim korisnicima interneta. Nemamo ga! Ne bavimo se profesionalnim web hostingom i ne namjeravamo širiti informacije izvana. Ostavljamo redak prazan.

Zatim dolazi pitanje hoćemo li pružati bilo kakvu uslugu preko UDP-a. Također ne - i također ostavite redak prazan!

Treba li nas pingirati iz vanjskog svijeta (tj. provjeriti postoji li veza s računalom na kojem je instaliran firewall)? U našem slučaju, ovo je sasvim prihvatljivo:

Time se dovršava konfiguracija za pojedinačno računalo koje nije LAN pristupnik. Ako računalo namjeravamo koristiti kao pristupnik, moramo odgovoriti na još nekoliko pitanja. Označavamo sučelje s kojim je pristupnik okrenut lokalnoj mreži - u našem slučaju jest eth1 kao što je vidljivo iz / etc / mreža / sučelja(inače, za "usamljeno" računalo ostavite ovo polje praznim):

Na pitanje treba li dopustiti NAT prijevod, t.j. preusmjeravajući promet 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 u vanjske mreže? Sva računala lokalne mreže imaju pravo pristupa Internetu; ponovno 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 vatrozida od strane konfiguratora:

Nakon toga, ako je sve prošlo dobro, prikazuje se poruka slična onoj ispod. Sada će se pojaviti pri svakom pokretanju računala pristupnika i obavještavati o uspješnom pokretanju vatrozida:

Arno je iptables firewall skripte v1.8.8c -------------------------- razum provjere prošlo ... U redu Otkriven iptables modul ...

Učitavanje dodatnih IPTABLES modula: Svi IPTABLES moduli su učitani! Konfiguriranje /proc /…. postavke: Omogućavanje zaštite od lažiranja s rp_filter Omogućavanje SYN-flood zaštite putem SYN-kolačića Onemogućavanje zapisivanja marsovaca Onemogućavanje prihvaćanja ICMP-redirect poruka Postavljanje maks. količina istodobnih veza do 16384 Omogućivanje zaštite od izvornih preusmjerenih paketa Postavljanje zadanih vremenskih ograničenja conntrack Omogućavanje smanjenja mogućnosti DoS-a Postavka Zadani TTL = 64 Onemogućavanje ECN-a (Ekplicitna obavijest o zagušenju) Omogućavanje podrške za dinamičke IP-ove Ispiranje tablice ruta / postupak / postavljanje dovršeno. .. Pravila za ispiranje u tablici filtera Postavljanje zadanih (sigurnih) pravila Upotreba "info" na razini dnevnika za syslogd Postavljanje pravila vatrozida: ——————————————————————— —— - Prihvaćanje paketa s lokalnog uređaja za povratnu petlju Omogućavanje postavljanja maksimalne veličine paketa putem MSS-a Omogućavanje mangling TOS-a Omogućeno Zapisivanje skrivenih skeniranja (nmap sonde itd.) Omogućeno Zapisivanje paketa s lošim TCP-zastavicama. omogućeno Zapisivanje pristupa s rezerviranih 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 Postavljanje politike INPUT za vanjsku mrežu (INET): Ena bling podrška za DHCP dodijeljen IP na vanjskim sučeljima: eth0 Omogućeno bilježenje izričito blokiranih hostova Omogućeno evidentiranje odbijenih lokalnih izlaznih veza Paketi se NEĆE provjeravati za privatne izvorne adrese Omogućavanje cijelom svijetu slanje ICMP-zahtjeva (ping) Zapisivanje omogućeno ispuštenih paketa ICMP-zahtjeva (ping) Omogućeno zapisivanje ispuštenih drugih ICMP paketa Omogućeno Zapisivanje mogućih skrivenih skeniranja Omogućeno Zapisivanje (drugih) pokušaja povezivanja na PRIVILEGIRANI TCP port Omogućeno Zapisivanje (ostalih) pokušaja povezivanja na PRIVILEGIRANI UDP port Omogućeno Zapisivanje ( ostalo) pokušaji povezivanja s NEPRIVILEGIRANIM TCP portovima omogućeno Zapisivanje (ostalih) pokušaja povezivanja na NEPRIVILEGIRANI UDP portovi omogućeno Zapisivanje drugih IP protokola (ne TCP / UDP / ICMP) pokušaji povezivanja omogućeno Zapisivanje ICMP poplave omogućeno Primjena INET politike na vanjski (INET) sučelje: eth0 (bez specificirane vanjske podmreže) Postavljanje politike INPUT za interna (LAN) sučelja: eth1 Dopuštanje ICMP zahtjeva (ping) A omogućavanje svih (ostalih) protokola Postavljanje politike FORWARD za interno (LAN) sučelje(a): eth1 Zapisivanje odbijenih LAN-> INET FORWARD veza omogućeno Postavljanje LAN-> INET politike: Dopuštanje ICMP-zahtjeva (ping) Dopuštanje svih (ostalo) ) protokoli Omogućavanje maskiranja (NAT) preko vanjskog sučelja (s): eth0 Dodavanje (internih) hosta: 192. 168.2.0 / 24 Sigurnost je PROVIĐENA za vanjska sučelja (sučelja) u lancu PROSLJEĐIVANJA 16. siječnja 23:53:12 Primijenjena su sva pravila vatrozida.

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

# dpkg-reconfigure arno-iptables-firewall

To će eliminirati povremenu pogrešku koja bi se mogla pojaviti pri odgovaranju na pitanja konfiguratora tijekom prvog iskustva s njim. Ako ni to ne pomogne, možete pokušati ručno ispraviti konfiguracijsku datoteku programa. arno-iptables-firewall, naime: /etc/arno-iptables-firewall/firewall.conf... Možda bi bilo korisno posjetiti početnu stranicu kreatora ovog programa na http://rocky.eld.leidenuniv.nl/. Sadrži vrlo informativan priručnik za rad s programom, zanimljiva FAQ i, osim toga, informacije o novim verzijama programa.

Napomena 2. Ne zaboravi to nitko vatrozid ne može dati 100% jamstvo sigurnosti računala 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 milosrđe Božje. "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 vjerojatno biste ga trebali pročitati i povezani članak o Stateful firewall-u.

Ali pre kernel 2.6.39 (koji uključuje i možete ga koristiti za stavljanje na popis dopuštenih IP-a ako imate više od 10 za stavljanje na popis dopuštenih (gdje 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 dopustiti samo IP, bez državljanstva

vjerojatnije je da ćete naići na probleme s ovim i predlažem korištenje stanja kako biste olakšali svoj život. Na primjer, ne rješava se i sigurno će uzrokovati probleme za određene aplikacije.

Vrhunski povezani članci