it-swarm-eu.dev

iptables: povolit určité ips a blokovat všechna ostatní připojení

Jak mohu povolit určité ips a blokovat všechna další spojení v iptables?

27
David

Napsal jsem příspěvek na blogu o základních pravidlech Iptables pro uživatele desktop už dávno a pravděpodobně byste si ho měli přečíst, a jeho související článek o Stateful firewall design . Ale před jádrem 2.6.39 (které zahrnuje ipset a možná budete chtít použít pro whitelisting IP, pokud máte více než 10 na whitelist (kde 10 je libovolných)).

Nejprve zvládneme stav, který víme, že chceme přijmout nebo upustit, a rozhraní.

iptables -P FORWARD DROP # we aren't a router
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -s 192.168.1.1 -j ACCEPT
iptables -P INPUT DROP # Drop everything we don't accept

Pokud chcete pouze povolit pouze pomocí IP, bez stavu

iptables -A INPUT -s 192.168.1.1 -j ACCEPT
iptables -A OUTPUT -d 192.168.1.1 -j ACCEPT
iptables -P INPUT DROP
iptables -P OUTPUT DROP

pravděpodobně se s tím setkáte s problémy a já vám doporučuji použít stát, aby vám usnadnil život. Například nepovolení -i lo a -o lo určitě způsobí problémy pro určité aplikace.

29
xenoterracide

Zde je příklad (netestovaný!), Který blokuje pouze příchozí připojení. Připojení přes rozhraní zpětné smyčky pocházející z 192.168.3.x, ICMP nebo k portu SSH jsou povoleny. Všechna další spojení jsou odmítnuta.

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p icmp -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -s 192.168.3.0/24 -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -j REJECT

Níže uvedené pravidlo povolí pouze vaši IP a zablokuje všechny ostatní IP adresy přes port 22 nebo ssh. Před odpojením vyzkoušejte nový terminál.

iptables -I INPUT -p tcp ! -s yourIPaddress --dport 22 -j DROP
7
Ishtiyaque Noori

Zde je plný pracovní příklad.
Aplikace také funguje (znovu: můj komentář o tom, že se nezačne spouštět)

https://github.com/skironDotNet/linux-allow-only-single-ip

0
Pawel Cioch