iptable

Iptable za početnike

Iptable za početnike
Iptables je u osnovi glavni vatrozid koji se koristi za Linux sustave, postoje alternative poput nftables, ali Iptables ostaje glavna, vrlo je fleksibilan prihvaćajući izravne naredbe od korisnika, možete učitati i istovariti pravila po potrebi kako biste povećali politike svog vatrozida točnost.

Zapravo čak ne trebate znati sintaksu Iptable-a da biste je koristili, imate grafičke alate poput Firewall Builder-a koji postupak učenja mogu učiniti nepotrebnim, ali ako je želja za povećanjem znanja o administraciji Linuxa, Iptables je prvi korak da naučite kako praktično administrirati sigurnost pod Linuxom i čak olakšati upravljanje sigurnosnim uređajima CISCO ili Fortigate i sličnim.

Iptables vam u osnovi omogućuje da uputite svoj sustav da prihvati, odbije ili proslijedi vezu, ovisno o odabranim parametrima, na primjer da preusmjeri sve veze na X port na drugu IP adresu, da blokira sve veze koje dolaze iz određenog IP, IP raspona ili na prihvati sve veze koje dolaze s IP adresa s dopuštenih, među mnogim drugim funkcijama.

U ovom uputstvu naučit ćemo kako zaštititi web poslužitelj, kako proslijediti veze na interne IP adrese s našeg LAN-a i kako ponuditi određene usluge samo na IP adrese s bijele liste.

Instaliranje Iptables

Da biste instalirali iptables na sisteme Debian / Ubuntu, samo pokrenite "apt update && apt install iptables" kao root ili s "sudo" kao prefiksom kao na sljedećoj slici.

Otvaranje HTTP i HTTPS priključaka

Prije svega dopustimo dodavanje svih ACCEPT pravila počevši od web poslužitelja.

iptables -A ULAZ -p tcp --dport 80 -j PRIHVATI
iptables -A ULAZ -p tcp --dport 443 -j PRIHVATI

Da biste vidjeli dodana naša pravila, pokrenite “iptables -L”

Gdje:

Iptables = poziva program
-A = dodaje pravilo
ULAZNI = dolazni promet
-str = protokol
-ddport = odredišna luka
-j = navedite "cilj", cilj je vrsta politike: PRIHVATI, DROP, QUEUE ili RETURN.

Zatim na uzorku gornje slike poručujemo Iptablesu da doda pravilo za dolazni promet putem TCP protokola i pristaništa 80 i 443 koje treba prihvatiti.

Naredbu možemo prihvatiti da prihvati vezu samo s određene IP dodavanjem parametra “-s”:

iptables -A ULAZI -s 127.0.0.1 -p tcp --dport 80 -j PRIHVATI

Gdje:

s = izvor
Iptables -L = navodi sva učitana pravila iptables
Iptables -L -v = isto i s glagološkom riječi.

Svoj vatrozid također možemo testirati s nmap:

Kao što vidimo, port 80 je otvoren i prema "iptables -L" i prema Nmap.

Napomena: Za više informacija o upotrebi Nmapa možete pročitati naš vodič o tome

Zaštita vašeg poslužitelja

# Otvorite HTTP i HTTPS usluge.
iptables -A ULAZ -p tcp --dport 80 -j PRIHVATI
iptables -A ULAZ -p tcp --dport 443 -j PRIHVATI
# Otvori uslugu luke SSH
iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NOVO, USTANOVLJENO -j PRIHVATI

Gdje su novi parametri:

-m = znači "podudaranje" i koristi se za pozivanje Iptable-ovih proširenja poput conntrack koji nije dio osnovnih funkcija iptable-a.

conntrack = Omogućuje praćenje podataka o vezama poput određenih adresa ili u ovom slučaju stanja veze. To se mora pažljivo koristiti, jer mnoga pravila za obranu poslužitelja od nekih napada koriste conntrack dok je njegova upotreba ograničena hardverom, a takva ograničenja mogu se koristiti za preopterećenje resursa poslužitelja.

-ctstate = određuje podudarno stanje pravila, moguća stanja su: NOVO, USTANOVLJENO, POVEZANO I NEVALJEDNO.

# Zaštitite svoju SSH uslugu od napada grubom silom dopuštanjem samo određene IP adrese
za pristup iptables -A INPUT -p tcp -s X.x.x.X --dport 22-m conntrack --ctstate NOVO,
USTANOVLJENO -j PRIHVATITI
# Zaštitite svoju SSH uslugu od napada grubom silom ograničavajući pokušaje povezivanja
Iptables -A INPUT -p tcp -m tcp --dport 22 -m conntrack --ctstate NOVO -j 22-test
Iptables -A 22-test -m nedavni --ime VEZE - set --maska ​​255.255.255.255 --izvor
Iptables -A 22-test -m nedavni --ime POVEZAVE --rcheck --maska ​​255.255.255.255
--rsource --sekunde 30 --hitcount 3 -j 22-zaštita
Iptables -A 22-test -j PRIHVATI
Iptables -A 22-zaštita -j DROP

Gdje:
U prvom tekstu naše pravilo kaže „-m conntrack -ctstate NOVO ” što znači da je veza nova, prijeđite na pravilo "22-test".

Drugi redak kaže paketi mrežne maske 255.255.255.255 su imenovani kao VEZE .

Treći redak kaže ako a VEZE čini se preko 3 puta u roku od 30 sekundi vatrozid nastavlja primjenjivati ​​lanac 22-zaštita. Četvrti redak kaže ako VEZE nije izgledalo više od 3 puta u roku od 30 sekundi može se prihvatiti.
Peti redak, koji pripada 22-zaštita lanac kaže da padne VEZE ako se čini preko 3 puta u roku od 30 sekundi.

Sada da završimo, odbijemo sve neprihvaćene veze i dopustimo sav odlazni promet:

iptables -P IZLAZNI PRIHVAT
iptables -P INPUT DROP

Gdje -P znači ciljni lanac, sjetite se da je cilj politika, PRIHVATI, DROP, QUEUE ili RETURN. U ovom slučaju kažemo da je zadana politika za odlazni promet prihvaćanje, a zadana politika za dolazni promet odbijanje, osim ako u prethodnim pravilima nismo naveli nešto drugo. Ovo je vrlo osnovni vatrozid koji ne uključuje pravila za mnoge napade, u svrhu učenja, a ne za proizvodnju, na kraju članka prilažem vatrozid koji sam koristio za izradu na poslužitelju, sadrži komentare koji objašnjavaju svako pravilo.

Prosljeđivanje veze na određeni priključak na određenu IP adresu

Ovo je vrlo korisno i za korisnike stolnih računala koji žele preusmjeriti vezu putem određenog uređaja, može biti korisno čak i igračima, obično to radimo u postavkama usmjerivača, ali pretpostavimo da uređaj za usmjeravanje izvodi Iptables.

iptables -A PRETVARANJE -t nat -p tcp -d X.x.x.X --dport 8080 -j DNAT --na odredište
Y.Y.Y.Y: 80
iptables -A POSTROUTING -t nat -p tcp -j SNAT --to-source X.x.x.x

Gornja pravila pozivaju se na NAT (Prijevod mrežne adrese) da bi odredili veze putem protokola TCP na adresu X.x.x.X i priključak 8080 bit će preusmjereni na adresu Y.Y.Y.Y, priključak 80. Drugo pravilo navodi da se odgovori moraju poslati na izvornu adresu (X.x.x.X). Ova pravila možemo koristiti za dopuštanje pristupa IP kameri, za omogućavanje mrežnih igara s vanjskim mrežama itd.

Ovaj je vodič namijenjen upoznavanju početnika s Iptablesom i objašnjava samo ograničeni broj osnovnih funkcija. Ispod možete vidjeti uzorak dobro planiranog vatrozida koji je korišten za produkcijski poslužitelj, on uključuje od nekih pravila koja smo već vidjeli do složenijih pravila za sprečavanje DDoS napada, između ostalog.
Sljedeći tutorial bit će o njuškanju unutar lokalnih mreža, ali u sljedećem tutorialu objasnit ću neka pravila koja se primjenjuju na vatrozid u nastavku.  Hvala vam što pratite LinuxHint.com, nastavite nas pratiti za buduća ažuriranja o Iptablesima i Linuxu općenito.

Bonus: Uzorak proizvodnog vatrozida

iptables -F
# ---- Omogući zaštitu od loše poruke
omogućiti / proc / sys / net / ipv4 / icmp_ignore_bogus_error_responses
# ---- Uključi filtriranje obrnutog puta. Sigurnije, ali razbija asimetrično usmjeravanje i / ili IPSEC
omogućiti / proc / sys / net / ipv4 / conf / * / rp_filter
# ---- Ne prihvaćajte izvorno usmjerene pakete. Usmjeravanje izvora rijetko se koristi za legitimno
svrhe onemogućiti / proc / sys / net / ipv4 / conf / * / accept_source_route
# ---- Onemogućite prihvaćanje ICMP-a za preusmjeravanje koje se može koristiti za izmjenu tablica usmjeravanja
onemogućiti / proc / sys / net / ipv4 / conf / * / accept_redirects
# ---- Kako ne prihvaćamo preusmjeravanja, nemojte ni slati preusmjeravajuće poruke
onemogućiti / proc / sys / net / ipv4 / conf / * / send_redirects
# ---- Zanemari pakete s nemogućim adresama
onemogućiti / proc / sys / net / ipv4 / conf / * / log_martians
# ---- Zaštitite od rednih brojeva umotavanja i pomozite u mjerenju vremena povratnog putovanja
omogućiti / proc / sys / net / ipv4 / tcp_timestamps
# ---- Pomoć protiv syn-poplave DoS ili DDoS napada korištenjem određenih izbora početnog slova
TCP brojevi sekvenci omogućuju / proc / sys / net / ipv4 / tcp_syncookies
# ---- Koristite selektivni ACK koji se može upotrijebiti da označi da nedostaju određeni paketi
onemogućiti / proc / sys / net / ipv4 / tcp_sack
modprobe nf_conntrack_ipv4
modprobe nf_nat
# modprobe nf_conntrack_ipv6
# modprobe nf_conntrack_amanda
# modprobe nf_nat_amanda
modprobe nf_conntrack_h323
modprobe nf_nat_h323
modprobe nf_conntrack_ftp
modprobe nf_nat_ftp
# modprobe nf_conntrack_netbios_ns
# modprobe nf_conntrack_irc
# modprobe nf_nat_irc
# modprobe nf_conntrack_proto_dccp
# modprobe nf_nat_proto_dccp
modprobe nf_conntrack_netlink
# modprobe nf_conntrack_pptp
# modprobe nf_nat_pptp
# modprobe nf_conntrack_proto_udplite
# modprobe nf_nat_proto_udplite
# modprobe nf_conntrack_proto_gre
# modprobe nf_nat_proto_gre
# modprobe nf_conntrack_proto_sctp
# modprobe nf_nat_proto_sctp
# modprobe nf_conntrack_sane
modprobe nf_conntrack_sip
modprobe nf_nat_sip
# modprobe nf_conntrack_tftp
# modprobe nf_nat_tftp
# modprobe nf_nat_snmp_basic
# Sad možemo početi dodavati odabrane usluge u naš filtar vatrozida. Prva takva stvar
je sučelje localhost iptables -A INPUT -i lo -j ACCEPT
# Rekli smo vatrozidu da uzima sve dolazne pakete s tcp zastavicama NONE i samo ih DOPUSTI.
iptables -A ULAZ -p tcp ! -m conntrack --ctstate NOVO -j DROP
# Kažemo iptablesu da doda (-A) pravilo na dolazni (INPUT) - SSH radi na portu 50683
umjesto 22.
iptables -A ULAZ -p tcp -m tcp --dport 50683 -j PRIHVATI
iptables -A INPUT -p tcp -m tcp -s specific ip --dport 50683 -j PRIHVATI
iptables -A INPUT -p tcp -m tcp -s specific ip --dport 50683 -j PRIHVATI
iptables -A INPUT -p tcp -m tcp -s specific ip --dport 50683 -j PRIHVATI
iptables -A ULAZ -p tcp --dport 50683 -m conntrack --ctstate NOVO -m nedavno --set
--ime SSH -j PRIHVATI
iptables -A INPUT -p tcp --dport 50683 -m nedavni --ažuriran --sekunde 60 --hitcount 4
--rttl --name SSH -j LOG - prefiks dnevnika "SSH_brute_force"
iptables -A INPUT -p tcp --dport 50683 -m nedavni --ažuriran --sekunde 60 --hitcount 4
--rttl --ime SSH -j DROP
iptables -A ULAZ -p tcp --dport 50683 -m conntrack --ctstate NOVO -m nedavno --set
--naziv SSH
iptables -A INPUT -p tcp --dport 50683 -m conntrack --ctstate NOVO -j SSH_WHITELIST
iptables -A INPUT -p tcp --dport 50683 -m conntrack --ctstate NOVO -m nedavno - ažurirano
--sekundi 60 --hitcount 4 --rttl --ime SSH -j ULOG --ulog-prefiks SSH_bru
iptables -A INPUT -p tcp --dport 50683 -m conntrack --ctstate NOVO -m nedavno - ažurirano
--sekunde 60 --hitcount 4 --rttl --name SSH -j DROP
# Sad dopuštam imap i smtp.
-ULAZ -p tcp --dport 25 -j PRIHVATI
# Omogućuje pop i pop veze
-ULAZ -p tcp --dport 110 -j PRIHVATI
-ULAZ -p tcp --dport 995 -j PRIHVATI
############ IMAP i IMAPS ############
-ULAZ -p tcp --dport 143 -j PRIHVATI
-ULAZ -p tcp --dport 993 -j PRIHVATI
########### MYSQL ####################
iptables -A ULAZ -i eth0 -p tcp -m tcp --dport 3306 -j PRIHVATI
########## R1soft CDP sustav ################
iptables -A INPUT -p tcp -m tcp -s specific ip --dport 1167 -j ACCEPT
############### out out ####################
iptables -I INPUT -m conntrack --ctstate USTANOVLJEN, POVEZAN -j PRIHVAĆAJ
### Dopusti kontinuirano, blokiraj dolazno nije definirano ###
iptables -P IZLAZNI PRIHVAT
iptables -P INPUT DROP
iptables -L -n
iptables-save | tee / etc / iptables.test.pravila
iptables-Restore < /etc/iptables.test.rules
#service iptables restart
Kako razviti igru ​​na Linuxu
Prije deset godina malo je Linux korisnika predviđalo da će njihov omiljeni operativni sustav jednog dana biti popularna platforma za igranje komercij...
Luke komercijalnih igara s otvorenim kodom
Besplatne igre s otvorenim kodom i više platformi mogu se koristiti za igranje starih, kao i nekih prilično nedavnih naslova igara. U ovom će se člank...
Najbolje igre naredbenog retka za Linux
Naredbeni redak nije samo vaš najveći saveznik pri korištenju Linuxa - on također može biti izvor zabave jer ga možete koristiti za igranje mnogih zab...