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!
- 1204 megtekintés
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?
- A hozzászóláshoz be kell jelentkezni
az ip_forward be van allit. Tulajdonkeppen semmi nem megy se web, se ping, mintha alna a halo. A maszkolas biztosan jo, mert azt kiprobaltam onaloan is. Biztosan valami altalanos bibi lehet, mert szo szerint all minden. A Router geprol, persze latom a Netet. (ping megy kifele)
- A hozzászóláshoz be kell jelentkezni
A kliensekrol a router gepet latod-e?
- A hozzászóláshoz be kell jelentkezni
sajna azt sem.
- A hozzászóláshoz be kell jelentkezni
Akkor lod le a tuzfalat es ellenorizd le a halozati beallitasokat a kliens gepeken. Ha megy a ping a router gepre akkor inditsad el a tuzfalat es nezd meg megint.
- A hozzászóláshoz be kell jelentkezni
Ezt mar megtettem. A tuzfal nelkul + meg a maszkolas. Minden megy jol. Mindenki lat mindent. Megy a NET is. Ebbol kovetkeztettem, arra, hogy valamilyen iptables beallitasom rossz.
- A hozzászóláshoz be kell jelentkezni
##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)?
- A hozzászóláshoz be kell jelentkezni
bevallom ezt a sort volt, hogy ki is kommentesztem, de a helyzet nem valtozott.
- A hozzászóláshoz be kell jelentkezni
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.
- A hozzászóláshoz be kell jelentkezni
ezt reszletezned kerlek! Szerinted mit kellen irnom?
- A hozzászóláshoz be kell jelentkezni
SZVSZ 192.168.1.0/24 kellene. (A 192.168.0.0/24 se igazan stimmel fentebb.)
- A hozzászóláshoz be kell jelentkezni
A belső háló tartományát (gondolom 192.168.1.0/24). Hiszen nem az interfészről jövő csomagokra, hanem az az mögötti kliensekre akarsz szabályokat írni a FORWARD láncban. Azok pedig nem az interfész címével mint forrás címmel küldik a csomagjaikat.
- A hozzászóláshoz be kell jelentkezni
Sziasztok!
beallitottam a
BELSOHALO=192.168.1.0/24 -et.
Sajna igy is ugyanaz a helyzet.
- A hozzászóláshoz be kell jelentkezni
És hogyan törölted ki a régi szabályokat a kernelből?
- A hozzászóláshoz be kell jelentkezni
A fenti scriptet ujra futattam, mivel ez torli a korabbi beallitasokat
- A hozzászóláshoz be kell jelentkezni
Mivel, hogyan teszteled a működést?
A FORWARD láncban az utolsó általános DROP szabály elé tehetnél
egy naplózó szabályt, hogy a kernel logban lehessen látni, mit dob el a rendszer.
Az FTP biztosan nem működik, mert az nf_nat_ftp modult nem töltöd be.
- A hozzászóláshoz be kell jelentkezni
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
- A hozzászóláshoz be kell jelentkezni
nincs semmi hibauzenet a script siman lefut. Utanna ellenorzom is iptables -L-el es minden a helyen van. Tehat a scriptben nincs hiba.
A linux debian woody 2.4.18
Az ftp koveto modul van betoltve.
ip_conntrack_ftp
- A hozzászóláshoz be kell jelentkezni
Konkrétan a az ipt_state modulra gondolok, az be van-e töltve...
De ha hiba nincs, akkor gondolom bevan.
"Paraszolvencia: Olyan védelmi pénz, amit magadtól adsz" Litkai Gergely
- A hozzászóláshoz be kell jelentkezni
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!
- A hozzászóláshoz be kell jelentkezni
ez is megvan. Sajna igy sem megy.
Esetleg nincs valakinek egy kesz scrpitje ami hasonlo halozaton biztosan megy. Ha vegre lenn egy scriptem ami mukodne abbol el tudnek indulni.
- A hozzászóláshoz be kell jelentkezni
http://easyfwgen.morizot.net/gen/
Csinálj egyet magadnak :-)
--
A nyúl egy igazi jellem. Ott ül a fűben, de akkor sem szívja!
- A hozzászóláshoz be kell jelentkezni
##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 .... :)
- A hozzászóláshoz be kell jelentkezni
Ezzel csak kinyitna a routeret a belso halozat fele. A nem a routernek szant csomagok a FORWARD-on erkeznek.
- A hozzászóláshoz be kell jelentkezni
Ez is biztos jó neked... Bár a linuxvilágban megjelent cikk örömére gondoltam nekiállok és átírom perl alapúra, konfig fájlokkal, de nincs nagy kedvem megcsinálni, szóval majd valamikor meglesz gondolom :P
- A hozzászóláshoz be kell jelentkezni