Először is tegyük helyre az előző bejegyzésben tisztázottakat (a szkript eleje):
#!/bin/sh
# Home standalone gép.
# A lánc kiürítése.
iptables -F
# Alap policy
# Mindent tiltunk, amit külön nem engedélyezünk.
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
Csak még egy kérdés: IPTABLES vagy iptables? Azt olvastam, hogy az IPTABLES az alap és ha plusz szabályokat definiálunk akkor kell használni az iptables változatot, hogy ne keveredjen össze.Több helyen láttam azt is, hogy a sort $
"Ha van már létező szabály a gépen, amit nem te csináltál, akkor egyszer jöhet parancssorból:
$iptables -X
$iptables -Z
De mivel nincs (legalább is ezt feltételezük kiindulásnak), ez is felesleges. :-)És akkor, ahogy ígértem:
INPUT
Első lépésként tegyük ide a minimál verziót elemenként, azután lehet ezt még cizellálni.
# INPUT szabályok.
# loopback engedélyezése.
iptables -A INPUT -i lo -j ACCEPT
# Engedélyezzük befelé, ami tőlünk származik.
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Invalid sync bites csomagok kiszórása.
iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
# ssh engedélyezése - majd ha kell. Most még nekem nem kell.
# iptables -A INPUT -p tcp --dport ssh -j ACCEPT
# A hamis IP címeket kiszűrjük.
iptables -A INPUT -i eth0 -s 192.168.0.0/16 -j DROP
iptables -A INPUT -i eth0 -s 172.16.0.0/12 -j DROP
iptables -A INPUT -i eth0 -s 10.0.0.0/8 -j DROP
Lehet, hogy az -i eth0 rész felesleges, hiszen egy (1) hálózati kártya esetén mi is lehetne?A loggolás egy külön kérdés. Mit érdemes logolni (ezzel csatlakozom a következő kiegészítéshez is)?
Az eredeti mintában ezt a három sort ez követte:
# ami jönne, azt loggoljuk:
$ IPTABLES -A INPUT -j LOG --log-prefix "nem kellene bejonni"
Ha jól értem a logikáját a dolognak (és persze alapul véve a következő kiegészítést is), ha előbb eldobom utána nincs mit logolni. Tehát ez inkább az aktuális sor elé kellene annak megfelelően átírva.# Kiegészítés paranoidoknak (by mavo)
iptables -A INPUT -s 255.0.0.0/8 -j LOG --log-prefix "invalid source IP "
iptables -A INPUT -s 255.0.0.0/8 -j DROP
iptables -A INPUT -s 0.0.0.0/8 -j LOG --log-prefix "invalid source IP "
iptables -A INPUT -s 0.0.0.0/8 -j DROP
# Pingelés letiltása
iptables -A INPUT -s 192.168.1.0/24 -p icmp -j DROP
iptables -A INPUT -i eth0 -p icmp -j DROP
Két változat ugyanarra, már megint. Ha jól értem az első a forrás oldaláról vizsgálja a pinget, a másik pedig az interface felől (?)# iptables -h ide vonatkozó része:
Options:
--source -s [!] address[/mask]
source specification
--in-interface -i [!] input name[+]
network interface name ([+] for wildcard)
És a végére még ez a sor volt bebiggyesztve: # Igaz, hogy az alap szabály drop, de azért biztosra megyünk:
IPTABLES -A INPUT -j DROP
Úgy érzem, hogy ez túlbiztosítás, hiszen az elején már gondoskodtunk róla:iptables -P INPUT DROP
Első nekifutásra ennyi.SP
Utolsó kommentek