iptables

Iptables pre začiatočníkov

Iptables pre začiatočníkov
Iptables je v podstate hlavný firewall používaný pre systémy Linux, existujú alternatívy ako nftables, ale Iptables zostáva hlavným, je veľmi flexibilný pri prijímaní priamych príkazov od používateľa, podľa potreby môžete načítať a vykladať pravidlá, aby ste zvýšili zásady svojho firewallu presnosť.

V skutočnosti na to, aby ste ju mohli používať, nemusíte poznať ani syntax Iptable, máte grafické nástroje ako Firewall Builder, vďaka ktorým je proces učenia zbytočný, ale ak si chcete zvýšiť znalosti o správe Linuxu, Iptables je prvým krokom k tomu, ako sa prakticky naučiť spravovať zabezpečenie v systéme Linux a dokonca uľahčovať správu bezpečnostných zariadení CISCO alebo Fortigate a podobne.

Iptables vám v zásade umožňuje dať systému pokyn, aby prijal, odmietol alebo preposlal pripojenie v závislosti na zvolených parametroch, napríklad presmeroval všetky pripojenia na port X na inú adresu IP, zablokoval všetky pripojenia pochádzajúce z konkrétnej adresy IP, rozsahu adries IP alebo akceptovať všetky pripojenia pochádzajúce z adries IP na bielom zozname okrem mnohých ďalších funkcií.

V tomto výučbe sa dozvieme, ako chrániť webový server, ako presmerovať pripojenie na interné adresy IP z našej siete LAN a ako ponúkať konkrétne služby iba na adresy IP, ktoré sú na bielom zozname.

Inštalácia Iptables

Ak chcete nainštalovať iptables na systémy Debian / Ubuntu, stačí spustiť program „apt update && apt install iptables“ ako root alebo s predponou „sudo“ ako na nasledujúcom obrázku.

Otváranie portov HTTP a HTTPS

Najskôr si dovoľte pridať všetky politiky PRIJAŤ počnúc webovým serverom.

iptables -A VSTUP -p tcp --dport 80 -j AKCEPTOVAŤ
iptables -A VSTUP -p tcp --dport 443 -j AKCEPTOVAŤ

Ak chcete vidieť pridané pravidlá, spustite príkaz „iptables -L“

Kde:

Iptables = zavolá program
-A = pridáva pravidlo
VSTUP = prichádzajúci prenos
-p = protokol
-ddport = cieľový port
-j = uveďte „cieľ“, cieľom je druh politiky: ACCEPT, DROP, QUEUE alebo RETURN.

Potom na vzorke obrázka vyššie hovoríme Iptables, aby pridali pravidlo pre prichádzajúci prenos cez protokol TCP a porty 80 a 443, ktoré majú byť akceptované.

Príkaz na prijatie spojenia môžeme zmeniť iba z konkrétnej IP adresy pridaním parametra „-s”:

iptables -A VSTUPY -s 127.0.0.1 -p tcp --dport 80 -j AKCEPTOVAŤ

Kde:

s = zdroj
Iptables -L = vypíše všetky načítané pravidlá iptables
Iptables -L -v = to isté s výrečnosťou.

Náš firewall môžeme tiež otestovať pomocou nmap:

Ako vidíme, port 80 je otvorený podľa „iptables -L“ aj Nmap.

Poznámka: Viac informácií o použití Nmapu si môžete prečítať v našom výučbe

Chráni váš server

# Otvorte služby HTTP a HTTPS.
iptables -A VSTUP -p tcp --dport 80 -j AKCEPTOVAŤ
iptables -A VSTUP -p tcp --dport 443 -j AKCEPTOVAŤ
# Otvorte službu portu SSH
iptables -A VSTUP -p tcp --dport 22 -m dohľad --ctstate NOVÝ, ZALOŽENÝ -j AKCEPTOVAŤ

Kde sú nové parametre:

-m = znamená „zhodu“ a používa sa na volanie rozšírení Iptable ako conntrack, ktoré nie sú súčasťou základných funkcií iptable.

conntrack = Umožňuje sledovať informácie o pripojeniach, ako sú konkrétne adresy, alebo v tomto prípade stav pripojenia. Toto je potrebné používať opatrne, pretože veľa pravidiel na obranu serverov pred útokmi používa kontrolu, zatiaľ čo jej použitie je obmedzené hardvérom a takéto obmedzenie je možné použiť na preťaženie serverových zdrojov.

-ctstate = určuje stav pravidla, ktoré sa má zhodovať, možné stavy sú: NOVÝ, ZOSTAVENÝ, SÚVISIACE a NEPLATNÝ.

# Chráňte svoju službu SSH pred útokmi hrubou silou povolením iba konkrétnej adresy IP
pre prístup k iptables -A INPUT -p tcp -s X.X.X.X --dport 22-m do vzdialenosti --ctstate NOVINKA,
ZALOŽENÉ -j AKCEPTOVAŤ
# Chráňte svoju službu SSH pred útokmi hrubou silou obmedzením pokusov o pripojenie
Iptables -A INPUT -p tcp -m tcp --dport 22 -m conntrack --ctstate NEW -j 22-test
Iptables -A 22-test -m recent --name CONNECTIONS --set --mask 255.255.255.255 --zdroj
Iptables -A 22-test -m recent --name CONNECTIONS --rcheck --mask 255.255.255.255
--rsource --seconds 30 --hitcount 3 -j 22-ochrana
Iptables -A 22-test -j ACCEPT
Iptables -A 22-ochrana -j DROP

Kde:
V prvej línii hovorí naše pravidlo „-m conntrack -ctstate NOVÉ ” čo znamená, že ak je pripojenie nové, prejdite na pravidlo „22-test“.

Druhý riadok hovorí, že sieťová maska ​​paketov je 255.255.255.255 je pomenovaných ako SPOJENIA .

Tretí riadok hovorí, ak a SPOJENIA sa zdá viac ako 3 krát do 30 sekúnd, firewall pokračuje v nanášaní reťaze 22-ochrana. Štvrtý riadok hovorí, či SPOJENIA sa nezdalo, že je to viac ako 3 krát do 30 sekúnd, to môže byť akceptované.
Piaty riadok, ktorý patrí do 22-ochrana reťaz hovorí, že padnúť SPOJENIA ak sa objavia viac ako 3 krát do 30 sekúnd.

Teraz to na záver umožníme odmietnuť všetky neakceptované pripojenia a povolme všetku odchádzajúcu komunikáciu:

iptables -P PRIJATIE VÝSTUPU
iptables -P INPUT DROP

Kde -P znamená reťazec cieľa, nezabudnite, že cieľom je politika, ACCEPT, DROP, QUEUE alebo RETURN. V tomto prípade hovoríme, že predvolená politika pre odchádzajúcu komunikáciu je prijať a predvolená politika pre prichádzajúcu komunikáciu je odmietnuť, pokiaľ sme v predchádzajúcich pravidlách neurčili niečo iné. Toto je veľmi jednoduchý firewall, ktorý neobsahuje pravidlá pre mnoho útokov, na účely učenia a nie na produkciu. Na konci článku pripojím firewall, ktorý som použil na produkciu na serveri, má komentáre vysvetľujúce každé pravidlo.

ODOSLANIE PRIPOJENIA NA ŠPECIFICKÝ PRÍSTAV NA KONKRÉTNU IP ADRESU

To je veľmi užitočné aj pre používateľov počítačov, ktorí chcú naformátovať pripojenie prostredníctvom konkrétneho zariadenia, môže to byť užitočné aj pre hráčov, zvyčajne to robíme z nastavení smerovača, ale predpokladajme, že na smerovacom zariadení je spustený Iptables.

iptables -A PREPRACOVANIE -t nat -p tcp -d X.X.X.X --dport 8080 -j DNAT - do cieľa
Y.Y.Y.Y: 80
iptables -A POSTROUTING -t nat -p tcp -j SNAT - k zdroju X.X.X.X

Vyššie uvedené pravidlá volajú na NAT (preklad sieťových adries), aby špecifikovali spojenia cez protokol TCP, na adresu X.X.X.X a port 8080 budú presmerované na adresu Y.Y.Y.Y, port 80. Druhé pravidlo určuje, že odpovede sa musia posielať na zdrojovú adresu (X.X.X.X). Tieto pravidlá môžeme použiť na povolenie prístupu k IP kamere, na hranie online hier s externými sieťami atď.

Tento tutoriál bol určený na zoznámenie začiatočníkov s Iptables a vysvetľuje iba obmedzený počet základných funkcií. Ďalej môžete vidieť ukážku dobre naplánovaného firewallu použitého pre produkčný server. Zahŕňa niektoré z pravidiel, ktoré sme už videli, aj zložitejšie pravidlá, ktoré okrem iného bránia útokom DDoS.
Nasledujúci tutoriál bude o sniffovaní v lokálnych sieťach, ale v ďalšom tutoriále vysvetlím niektoré z pravidiel aplikovaných na firewall nižšie.  Ďakujeme, že ste sledovali LinuxHint.com, sledujte nás kvôli ďalším aktualizáciám na Iptables a Linux všeobecne.

Bonus: Ukážka produkčného firewallu

iptables -F
# ---- Povoliť ochranu pred zlými chybovými správami
povoliť / proc / sys / net / ipv4 / icmp_ignore_bogus_error_responses
# ---- Zapnite filtrovanie spätnej cesty. Bezpečnejšie, ale porušuje asymetrické smerovanie a / alebo IPSEC
povoliť / proc / sys / net / ipv4 / conf / * / rp_filter
# ---- Neprijímajte zdrojovo smerované pakety. Smerovanie zdroja sa zriedka používa na legitímne účely
účely deaktivovať / proc / sys / net / ipv4 / conf / * / accept_source_route
# ---- Zakážte akceptovanie presmerovania ICMP, ktoré sa dá použiť na zmenu vašich smerovacích tabuliek
deaktivovať / proc / sys / net / ipv4 / conf / * / accept_redirects
# ---- Pretože neakceptujeme presmerovania, neposielajte ani správy s presmerovaním
deaktivovať / proc / sys / net / ipv4 / conf / * / send_redirects
# ---- Ignorujte pakety s nemožnými adresami
vypnúť / proc / sys / net / ipv4 / conf / * / log_martians
# ---- Chráňte pred zalomením poradových čísel a pomôžte merať čas spiatočky
povoliť / proc / sys / net / ipv4 / tcp_timestamps
# ---- Pomoc proti synchronizovaným útokom DoS alebo DDoS pomocou konkrétnych počiatočných možností
Poradové čísla TCP umožňujú / proc / sys / net / ipv4 / tcp_syncookies
# ---- Použite výberové ACK, ktorým sa dá označiť, že chýbajú konkrétne pakety
vypnúť / 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
# Teraz môžeme začať pridávať vybrané služby do nášho filtra brány firewall. Prvá taká vec
je rozhranie localhost iptables -A VSTUP -i lo -j AKCEPTOVAŤ
# Povedali sme firewallu, aby vzal všetky prichádzajúce pakety s príznakmi tcp ŽIADNE a DROP ich iba.
iptables -A VSTUP -p tcp ! -m kontrola - nový štát -j KAPKA
#Poznáme iptables, aby pridali (-A) pravidlo do prichádzajúceho (INPUT) - SSH funguje na porte 50683
namiesto toho 22.
iptables -A INPUT -p tcp -m tcp --dport 50683 -j ACCEPT
iptables -A INPUT -p tcp -m tcp -s špecifické ip --dport 50683 -j ACCEPT
iptables -A INPUT -p tcp -m tcp -s špecifické ip --dport 50683 -j ACCEPT
iptables -A INPUT -p tcp -m tcp -s špecifické ip --dport 50683 -j ACCEPT
iptables -A INPUT -p tcp --dport 50683 -m Conntrack --ctstate NEW -m nedávny --set
--meno SSH -j ACCEPT
iptables -A INPUT -p tcp --dat 50683 -m nedávne --update --sekundy 60 --zisk 4
--rttl --name SSH -j LOG --log-prefix "SSH_brute_force"
iptables -A INPUT -p tcp --data 50683 -m nedávne --update --seconds 60 --hitcount 4
--rttl --name SSH -j DROP
iptables -A INPUT -p tcp --dport 50683 -m Conntrack --ctstate NEW -m nedávny --set
--meno SSH
iptables -A VSTUP -p tcp --dport 50683 -m dohľad --ctstate NOVINKA -j SSH_WHITELIST
iptables -A INPUT -p tcp --dport 50683 -m dohľad --ctstate NOVÝ -m nedávny --update
--sekundy 60 --hitcount 4 --rttl --name SSH -j ULOG --ulog-prefix SSH_bru
iptables -A INPUT -p tcp --dport 50683 -m dohľad --ctstate NOVÝ -m nedávny --update
--sekundy 60 --hitcount 4 --rttl --name SSH -j DROP
#Teraz povoľujem IMAP a SMTP.
-VSTUP -p tcp --dport 25 -j AKCEPTOVAŤ
# Umožňuje pop-up pripojenie
-A INPUT -p tcp --dport 110 -j ACCEPT
-A INPUT -p tcp --dport 995 -j AKCEPTOVAŤ
############ IMAP & IMAPS #############
-VSTUP -p tcp --dport 143 -j AKCEPTOVAŤ
-A INPUT -p tcp --dport 993 -j AKCEPTOVAŤ
########### MYSQL ######################
iptables -A INPUT -i eth0 -p tcp -m tcp --dport 3306 -j ACCEPT
########## R1soft CDP System #################
iptables -A INPUT -p tcp -m tcp -s špecifické ip --dport 1167 -j ACCEPT
############### vychádzajúce ###################
iptables -I INPUT -m conntrack --ctstate ESTABLISHED, RELATED -j ACCEPT
### Povoliť prebiehajúce, blokovať prichádzajúce nedefinované ###
iptables -P PRIJATIE VÝSTUPU
iptables -P INPUT DROP
iptables -L -n
iptables-save | tričko / etc / iptables.test.pravidlá
iptables-restore < /etc/iptables.test.rules
# služba iptables sa reštartuje
Hry Battle For Wesnoth 1.13.6 Vývoj uvoľnený
Battle For Wesnoth 1.13.6 Vývoj uvoľnený
Battle For Wesnoth 1.13.6 vydané minulý mesiac, je šiestym vývojovým vydaním v 1.13.séria x a prináša množstvo vylepšení, najmä používateľského rozhra...
Hry Ako nainštalovať League Of Legends na Ubuntu 14.04
Ako nainštalovať League Of Legends na Ubuntu 14.04
Ak ste fanúšikom League of Legends, potom je to pre vás príležitosť otestovať spustenie League of Legends. Upozorňujeme, že program PlayOnLinux podpor...
Hry Nainštalujte si najnovšiu strategickú hru OpenRA na Ubuntu Linux
Nainštalujte si najnovšiu strategickú hru OpenRA na Ubuntu Linux
OpenRA je herný engine Libre / Free Real Time Strategy, ktorý obnovuje rané hry z Westwoodu, ako napríklad klasické Command & Conquer: Red Alert. Dist...