Iptables es annak megertese

Fórumok

Sziasztok!
Napok ota probalkozok egy olyan iptables configot talalni a neten, ami mukodik a sajat halozatomon es vegre tanulhatok belole. Talaltam egyet, ami ugy ereztem ertheto es vilagos, de azt hiszem beletorott a bicskam.
Adott egy linux mely router funkciokat latna el. eth0-an bejon a NET. eth1-en van a belso haolzat. eth1=192.168.1.2. A belso gepekrol szeretnek netet hasznalni es iptables-sel a leheto legbiztonsagosabb forgalmat elerni. (Ja a rendszer debian woody)
Belinkelem a configot es valaki segitsen mi lehet vele a gond, mert semmi nem mukszik.
Elore is koszi a faradozast.
A config a kovetkezo:
#!/bin/sh

#megadjuk a valtozokat
IPT=/sbin/iptables
MODPR=/sbin/modprobe
BELSOHALO=192.168.1.2

##toroljuk a regi policyket
$IPT -F
$IPT -X
$IPT -Z
$IPT -t nat -F

##beallitjuk az alap policyt
##mindent tiltunk, amit kulon nem engedelyezunk
$IPT -P INPUT DROP
$IPT -P OUTPUT DROP
$IPT -P FORWARD DROP

##ftp koveto modul, ez majd behuzza a tobbit is, ami kell
$MODPR ip_conntrack_ftp

##nem akarjuk, hogy kulso gepek, belso IP cimeket hamisitsanak
echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter

##loopback-en johet minden
$IPT -A INPUT -i lo -j ACCEPT

##ha nincs beallitva a syn bit, akkor eldobjuk
$IPT -A INPUT -p tcp ! --syn -m state --state NEW -j DROP

##jovahagyott, tolunk indult csomag johet
$IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

##SSH johet
$IPT -A INPUT -p tcp --dport ssh -j ACCEPT

##igaz, hogy be van allitva a forrascimhitelesites, de
##azert biztosra megyunk
#$IPT -A INPUT -i eth0 -s 192.168.0.0/24 -j REJECT

#$IPT -A INPUT -i eth0 -s 172.16.0.0/24 -j REJECT

#$IPT -A INPUT -i eth0 -s 10.0.0.0/24 -j REJECT

##minden mast eldobunk
$IPT -A INPUT -j DROP

##KIMENO FORGALOM

##loopback mehet
$IPT -A OUTPUT -o lo -j ACCEPT

##jovahagyott csomag mehet
$IPT -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

##DNS keres kell kifele
$IPT -A OUTPUT -p udp --dport 53 -m state --state NEW -j ACCEPT

$IPT -A OUTPUT -p tcp --dport 53 -m state --state NEW -j ACCEPT

##mehet a web
$IPT -A OUTPUT -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT

##mehet a https is
$IPT -A OUTPUT -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT

##mehet az ssh
$IPT -A OUTPUT -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT

##mehet az ftp
$IPT -A OUTPUT -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT

##mehet a levelezes
$IPT -A OUTPUT -p tcp --dport 25 -m state --state NEW,ESTABLISHED -j ACCEPT

$IPT -A OUTPUT -p tcp --dport 110 -m state --state NEW,ESTABLISHED -j ACCEPT

##kifele meno pingre szukseg lehet
$IPT -A OUTPUT -p icmp -j ACCEPT --icmp-type echo-request

##minden mast eldobunk
$IPT -A OUTPUT -j DROP

##ATMENO FROGALOM
##jovahagyott csomag mehet
$IPT -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

##ha nincs beallitva a syn bit, akkor eldobjuk
$IPT -A FORWARD -p tcp ! --syn -m state --state NEW -j DROP

##Mehet a DNS, de szurunk meg csatolora is.
##bar be van kapcsolva a forrascim hitelesites, azert nem akarjuk, hogy
##belso IP-t haisitva valaki atmasszon a rueteren
$IPT -A FORWARD -p udp -s $BELSOHALO -i eth1 -m state --state NEW,RELATED --dport 53 -j ACCEPT

$IPT -A FORWARD -p tcp -s $BELSOHALO -i eth1 -m state --state NEW,RELATED --dport 53 -j ACCEPT

##mehet a web
$IPT -A FORWARD -p tcp -s $BELSOHALO -i eth1 -m state --state NEW --dport 80 -j ACCEPT

##mehet a https
$IPT -A FORWARD -p tcp -s $BELSOHALO -i eth1 -m state --state NEW --dport 443 -j ACCEPT

##mehet az ssh
$IPT -A FORWARD -p tcp -s $BELSOHALO -i eth1 -m state --state NEW,ESTABLISHED --dport 22 -j ACCEPT

##mehet az ftp
$IPT -A FORWARD -p tcp -s $BELSOHALO -i eth1 -m state --state NEW,ESTABLISHED --dport 21 -j ACCEPT

##mehet a levelezes
$IPT -A FORWARD -p tcp -s $BELSOHALO -i eth1 -m state --state NEW,ESTABLISHED --dport 25 -j ACCEPT

$IPT -A FORWARD -p tcp -s $BELSOHALO -i eth1 -m state --state NEW,ESTABLISHED --dport 110 -j ACCEPT

##mehet a ping
$IPT -A FORWARD -p icmp -s $BELSOHALO -i eth1 -j ACCEPT --icmp-type echo-request

##minden mast eldobunk
$IPT -A FORWARD -j DROP

##MASQUERADE bejegyzes

$IPT -t nat -A POSTROUTING -o eth0 -j MASQUERADE

hat ennyi!

Hozzászólások

Igy elso ranezesre nem latom hogy engedelyezted volna a natolast. Debianon nem tudom pontosan de valahol a /proc/sys/net/ipv4/ korul kel legyen egy ip_forward allomany aminek a tartalmat at kel irni 1-re. Enelkul a belso halorol nem fogja a forgalmat atengedni.

Azonkivul mondjal valami konkretumot. Mi nem megy? Mivel probalkoztal?

##ha nincs beallitva a syn bit, akkor eldobjuk
$IPT -A INPUT -p tcp ! --syn -m state --state NEW -j DROP

miért?

És ha esetleg egy sorral lejjebb állítanád be (a related, established után)?

Ha az eth1 IP címe a 192.168.1.2, akkor a BELSOHALO változó nyilvánvalóan teljesen rossz - és ezért nem megy semmi.

Van hibaüzenet, ha a scrpitet indítod?
Milyen kernel? szerk: (saját vagy "gyári"?)
Milyen modulok vannak betöltve?

Elsőre ezek jutottak eszembe...

"Paraszolvencia: Olyan védelmi pénz, amit magadtól adsz" Litkai Gergely

echo "1" > /proc/sys/net/ipv4/ip_forward

A belsőháló pedig /24 ahogy már írták többen is.

--
A nyúl egy igazi jellem. Ott ül a fűben, de akkor sem szívja!

##minden mast eldobunk
$IPT -A INPUT -j DROP

Ezzel itt gond lehet, előtte nincs olyan szabály, ami megengedné a belső hálóról a csatlakozást a routerhez. Pl. ilyesmi kellene:
iptables -A INPUT -i eth1 -j ACCEPT
ez a sor jól jönne a fenti sor elé.
___________________________________________________________________
Lógnak a pálmafán a kókuszok .... :)