iptables

Iptables pro začátečníky

Iptables pro začátečníky
Iptables je v zásadě hlavní brána firewall používaná pro systémy Linux, existují alternativy jako nftables, ale Iptables zůstává hlavní, je velmi flexibilní přijímáním přímých příkazů od uživatele, můžete podle potřeby načíst a uvolnit pravidla, abyste zvýšili zásady brány firewall přesnost.

Ve skutečnosti ani nemusíte znát syntaxi Iptable, abyste ji mohli používat, máte grafické nástroje, jako je Firewall Builder, díky nimž je proces učení zbytečný, ale pokud si přejete zvýšit znalosti správy Linuxu, Iptables je prvním krokem k tomu, abyste se naučili, jak prakticky spravovat zabezpečení pod Linuxem a dokonce usnadnit správu bezpečnostních zařízení CISCO nebo Fortigate apod.

Iptables vám v zásadě umožňuje dát systému pokyn, aby přijal, odmítl nebo předal připojení v závislosti na zvolených parametrech, například přesměrovat všechna připojení na X port na jinou IP adresu, zablokovat všechna připojení pocházející z konkrétní IP, rozsahu IP nebo přijímat všechna připojení pocházející z povolených IP adres mezi mnoha dalšími funkcemi.

V tomto tutoriálu se naučíme, jak chránit webový server, jak předávat připojení k interním IP adresám z naší LAN a jak nabízet konkrétní služby pouze na bílé adresy IP.

Instalace Iptables

Chcete-li nainstalovat iptables na systémy Debian / Ubuntu, stačí spustit „apt update && apt install iptables“ jako root nebo s „sudo“ jako předponou jako na následujícím obrázku.

Otevření portů HTTP a HTTPS

Nejprve přidáme všechny zásady ACCEPT počínaje webovým serverem.

iptables -A VSTUP -p tcp --dport 80 -j PŘIJMOUT
iptables -A VSTUP -p tcp --dport 443 -j PŘIJMOUT

Chcete-li zobrazit přidaná pravidla, spusťte příkaz „iptables -L“

Kde:

Iptables = volá program
-A = přidá pravidlo
VSTUP = příchozí provoz
-p = protokol
-ddport = cílový port
-j = uveďte „cíl“, cílem je druh politiky: ACCEPT, DROP, QUEUE nebo RETURN.

Potom na ukázce výše uvedeného obrázku říkáme Iptables, aby přidali pravidlo pro příchozí provoz prostřednictvím protokolu TCP a portů 80 a 443, které mají být přijaty.

Můžeme změnit příkaz tak, aby přijímal připojení pouze z konkrétní IP adresy přidáním parametru „-s„:

iptables -A VSTUP -s 127.0.0.1 -p tcp --dport 80 -j PŘIJMOUT

Kde:

s = zdroj
Iptables -L = vypíše všechna načtená pravidla iptables
Iptables -L -v = to samé s výřečností.

Náš firewall můžeme také otestovat pomocí nmap:

Jak vidíme, port 80 je otevřený jak podle „iptables -L“, tak podle Nmap.

Poznámka: Další informace o využití Nmapu si můžete přečíst v našem výukovém programu

Ochrana vašeho serveru

# Otevřete služby HTTP a HTTPS.
iptables -A VSTUP -p tcp --dport 80 -j PŘIJMOUT
iptables -A VSTUP -p tcp --dport 443 -j PŘIJMOUT
# Otevřete službu portu SSH
iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW, ESTABLISHED -j PŘIJMOUT

Kde jsou nové parametry:

-m = znamená „shodu“ a používá se k volání rozšíření Iptable jako conntrack, které není součástí základních funkcí iptable.

Conntrack = Umožňuje sledovat informace o připojení, jako jsou konkrétní adresy, nebo v tomto případě stav připojení. Toto musí být používáno opatrně, protože mnoho pravidel na obranu serverů před některými útoky používá conntrack, zatímco jeho použití je omezeno hardwarem a toto omezení lze použít k přetížení zdrojů serveru.

-ctstate = určuje stav pravidla, které se má shodovat, možné stavy jsou: NOVÝ, ZALOŽENÝ, SOUVISEJÍCÍ a NEPLATNÝ.

# Chraňte svou službu SSH před útoky hrubou silou povolením pouze konkrétní adresy IP
pro přístup k iptables -A INPUT -p tcp -s X.X.X.X --dport 22-m Conntrack --ctstate NOVINKA,
ZAVEDENO -j PŘIJMOUT
# Chraňte svou službu SSH před útoky hrubou silou omezením pokusů o připojení
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 PŘIJMOUT
Iptables -A 22-ochrana -j DROP

Kde:
V první literatuře naše pravidlo říká „-m conntrack -ctstate NOVINKA “ což znamená, že pokud je připojení nové, přejděte na pravidlo „22-test“.

Druhý řádek říká pakety síťová maska ​​255.255.255.255 je pojmenováno jako PŘIPOJENÍ .

Třetí řádek říká, zda a PŘIPOJENÍ se zdá více než 3krát během 30 sekund brána firewall pokračuje v používání řetězu 22-ochrana. Čtvrtý řádek říká, jestli PŘIPOJENÍ se nezdálo více než třikrát do 30 sekund, může být přijato.
Pátý řádek, který patří do 22-ochrana řetěz říká, aby upadl PŘIPOJENÍ pokud se objeví více než 3krát do 30 sekund.

Nyní na konec, odmítneme všechna nepřijatá připojení a povolíme veškerý odchozí provoz:

iptables -P VÝSTUP PŘIJÍMÁ
iptables -P INPUT DROP

Kde -P znamená řetězec cíle, pamatujte, že cílem je politika, PŘIJMOUT, DROP, QUEUE nebo RETURN. V tomto případě říkáme, že výchozí zásadou pro odchozí provoz je přijetí a výchozí zásadou pro příchozí provoz je odmítnutí, pokud jsme v předchozích pravidlech neurčili něco jiného. Jedná se o velmi základní bránu firewall, která neobsahuje pravidla pro mnoho útoků, pro účely učení a nikoli pro produkci, na konci článku připojuji bránu firewall, kterou jsem použil pro produkci na serveru, má komentáře vysvětlující každé pravidlo.

PŘEDÁVÁNÍ PŘIPOJENÍ KE SPECIFICKÉMU PŘÍSTAVU NA KONKRÉTNÍ IP ADRESU

To je velmi užitečné také pro uživatele stolních počítačů, kteří chtějí načíst připojení prostřednictvím konkrétního zařízení, může to být užitečné i pro hráče, obvykle to děláme z nastavení routeru, ale předpokládejme, že na směrovacím zařízení běží Iptables.

iptables -A PREROUTING -t nat -p tcp -d X.X.X.X --dport 8080 -j DNAT - do cíle
Y.Y.Y.Y: 80
iptables -A POSTROUTING -t nat -p tcp -j SNAT --to-source X.X.X.X

Výše uvedená pravidla vyvolávají NAT (Network Address Translation) pro specifikaci připojení přes protokol TCP na adresu X.X.X.X a port 8080 budou přesměrovány na adresu Y.Y.Y.Y, port 80. Druhé pravidlo určuje, že odpovědi musí být odeslány na zdrojovou adresu (X.X.X.X). Tato pravidla můžeme použít k povolení přístupu k IP kameře, k online hraní s externími sítěmi atd.

Tento výukový program měl seznámit začátečníky s Iptables a vysvětluje pouze omezený počet základních funkcí. Níže můžete vidět ukázku dobře naplánovaného firewallu, který byl použit pro produkční server, obsahuje některá pravidla, která jsme již viděli, složitější pravidla, která mimo jiné zabraňují útokům DDoS.
Další výukový program bude o čichání v lokálních sítích, ale v dalším kurzu vysvětlím některá pravidla použitá pro bránu firewall níže.  Děkujeme, že jste sledovali LinuxHint.com, sledujte nás pro budoucí aktualizace Iptables a Linux obecně.

Bonus: Ukázka produkčního firewallu

iptables -F
# ---- Povolit ochranu před chybnými chybovými zprávami
povolit / proc / sys / net / ipv4 / icmp_ignore_bogus_error_responses
# ---- Zapněte filtrování obrácené cesty. Bezpečnější, ale narušuje asymetrické směrování a / nebo IPSEC
povolit / proc / sys / net / ipv4 / conf / * / rp_filter
# ---- Nepřijímejte zdrojové směrované pakety. Směrování zdroje je zřídka používáno pro legitimní
účely zakázat / proc / sys / net / ipv4 / conf / * / accept_source_route
# ---- Zakažte přijetí přesměrování ICMP, které lze použít ke změně vašich směrovacích tabulek
deaktivovat / proc / sys / net / ipv4 / conf / * / accept_redirects
# ---- Protože nepřijímáme přesměrování, neposílejte ani přesměrované zprávy
deaktivovat / proc / sys / net / ipv4 / conf / * / send_redirects
# ---- Ignorovat pakety s nemožnými adresami
deaktivovat / proc / sys / net / ipv4 / conf / * / log_martians
# ---- Chraňte před zalomením pořadových čísel a pomozte měření doby zpáteční cesty
povolit / proc / sys / net / ipv4 / tcp_timestamps
# ---- Pomoc proti syn-Flood útokům DoS nebo DDoS pomocí konkrétních možností počátečního
Sekvenční čísla TCP umožňují / proc / sys / net / ipv4 / tcp_syncookies
# ---- Použijte Selective ACK, kterým lze označit, že konkrétní pakety chybí
deaktivovat / 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
# Nyní můžeme začít přidávat vybrané služby do našeho filtru brány firewall. První taková věc
je rozhraní localhost iptables -A INPUT -i lo -j ACCEPT
# Řekli jsme firewallu, aby vzal všechny příchozí pakety s příznaky tcp ŽÁDNÝ a jednoduše je DROP.
iptables -A VSTUP -p tcp ! -m conntrack --ctstate NOVINKA -j DROP
# Říkáme iptables, aby přidaly (-A) pravidlo do příchozího (INPUT) - SSH funguje na portu 50683
místo toho 22.
iptables -A INPUT -p tcp -m tcp --dport 50683 -j PŘIJMOUT
iptables -A INPUT -p tcp -m tcp -s specific ip --dport 50683 -j PŘIJMOUT
iptables -A INPUT -p tcp -m tcp -s specifické ip --dport 50683 -j PŘIJMOUT
iptables -A INPUT -p tcp -m tcp -s specific ip --dport 50683 -j PŘIJMOUT
iptables -A INPUT -p tcp --dport 50683 -m conntrack --ctstate NEW -m recent --set
--jméno SSH -j PŘIJMOUT
iptables -A INPUT -p tcp --date 50683 -m recent --update --seconds 60 --hitcount 4
--rttl --name SSH -j LOG --log-prefix "SSH_brute_force"
iptables -A INPUT -p tcp --date 50683 -m recent --update --seconds 60 --hitcount 4
--rttl --name SSH -j DROP
iptables -A INPUT -p tcp --dport 50683 -m conntrack --ctstate NEW -m recent --set
--jméno SSH
iptables -A INPUT -p tcp --dport 50683 -m conntrack --ctstate NEW -j SSH_WHITELIST
iptables -A INPUT -p tcp --dport 50683 -m conntrack --ctstate NEW -m recent --update
--sekundy 60 --hitcount 4 --rttl --name SSH -j ULOG --ulog-prefix SSH_bru
iptables -A INPUT -p tcp --dport 50683 -m conntrack --ctstate NEW -m recent --update
--sekundy 60 --hitcount 4 --rttl --name SSH -j DROP
#Nyní povoluji IMAP a SMTP.
-INPUT -p tcp --dport 25 -j PŘIJMOUT
# Umožňuje připojení pop a pop
-INPUT -p tcp --dport 110 -j PŘIJMOUT
-VSTUP -p tcp --dport 995 -j PŘIJMOUT
############# IMAP & IMAPS #############
-A INPUT -p tcp --dport 143 -j PŘIJMOUT
-A INPUT -p tcp --dport 993 -j ACCEPT
############ MYSQL ######################
iptables -A INPUT -i eth0 -p tcp -m tcp --dport 3306 -j PŘIJMOUT
########## R1soft CDP System #################
iptables -A INPUT -p tcp -m tcp -s specific ip --dport 1167 -j PŘIJMOUT
################ odchozí #####################
iptables -I INPUT -m conntrack --ctstate ESTABLISHED, RELATED -j ACCEPT
### Povolit probíhající, blokovat příchozí není definováno ###
iptables -P VÝSTUP PŘIJÍMÁ
iptables -P INPUT DROP
iptables -L -n
iptables-save | tričko / etc / iptables.test.pravidla
iptables-restore < /etc/iptables.test.rules
# služba iptables se restartuje
Hry Nainstalujte si nejnovější Dolphin Emulator pro Gamecube a Wii na Linuxu
Nainstalujte si nejnovější Dolphin Emulator pro Gamecube a Wii na Linuxu
Emulátor Dolphin vám umožní hrát vybrané hry Gamecube a Wii na osobních počítačích se systémem Linux (PC). Jako volně dostupný herní emulátor s otevř...
Hry Jak používat GameConqueror Cheat Engine v Linuxu
Jak používat GameConqueror Cheat Engine v Linuxu
Tento článek popisuje průvodce používáním cheatovacího modulu GameConqueror v systému Linux. Mnoho uživatelů, kteří hrají hry v systému Windows, často...
Hry Nejlepší emulátory herních konzolí pro Linux
Nejlepší emulátory herních konzolí pro Linux
Tento článek uvádí seznam populárního softwaru pro emulaci herních konzolí, který je k dispozici pro Linux. Emulace je vrstva softwarové kompatibility...