PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Firewall (iptables)



iriqi
25.01.2005, 13:45
hallo leute,

hab da ein kleines problem....

ich möchte eine firewall konfigurieren (iptables)
ich hab ein iptables script geschriiben!

es soll folgende kriterien erfüllen...

von innen nach aussen alles verboten ausser
#SMTP
#DNS
#DNS
#POP3
#NNTP
#HTTPS
und von aussen nach innen ist alles verboten.
der ganze unerlaubte verkehr soll geloggt werden.

ich weis nicht ob mein script diesen kriterien entspricht??? und funktionieren tut es auch nicht!

eth1 geht zum windows 2000 pc
eth0 geht ins internet

also meine frage wäre, ob mir jemand sagen könnt was an meinem script falsch ist? und was ich ändern sollte damit es funktioniert!
ich bin für alle antworten sehr dankbar!

das ist mein script:

iptables -Z
iptables -X
iptables -F

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

iptables -P FORWARD DROP
iptables -P OUTPUT DROP
iptables -P INPUT DROP

iptables -A OUTPUT -p tcp --sport 1024: --dport 80 -j ACCEPT #HTTP
iptables -A INPUT -p tcp --sport 80 --dport 1024: ! --syn -j ACCEPT #HTTP

iptables -A OUTPUT -p tcp --sport 1024: --dport 25 -j ACCEPT #SMTP
iptables -A OUTPUT -p udp --sport 1024: --dport 53 -j ACCEPT #DNS
iptables -A OUTPUT -p tcp --sport 1024: --dport 53 -j ACCEPT #DNS
iptables -A OUTPUT -p tcp --sport 1024: --dport 110 -j ACCEPT #POP3
iptables -A OUTPUT -p tcp --sport 1024: --dport 119 -j ACCEPT #NNTP
iptables -A OUTPUT -p tcp --sport 1024: --dport 443 -j ACCEPT #HTTPS

iptables -A INPUT -j LOG
iptables -A OUTPUT -j LOG

iptables -A INPUT -j DROP
iptables -A OUTPUT -p tcp -j REJECT --reject-with tcp-reset
iptables -A OUTPUT -j DROP

iptables -A FORWARD -o eth0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT #abgehende pakete
iptables -A FORWARD -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT #ankommende pakete

iptables -A FORWARD -j LOG

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

gruss iriqi 8)

khs
25.01.2005, 14:34
ich weis nicht ob mein script diesen kriterien entspricht??? und funktionieren tut es auch nicht!
[...]
also meine frage wäre, ob mir jemand sagen könnt was an meinem script falsch ist? und was ich ändern sollte damit es funktioniert!


Was funktioniert denn nicht? Genauere Infos waeren nett: gibt es Rueckmeldungen beim Aufruf? Welche? Siehst du alle tables und Eintraege mit iptables -nL? Welche Netzwerkfunktionen gehen, welche nicht (ping lokal, ping router, ping netz)? Was erscheint im Logfile/dmesg?

Beim ueberfliegen des Scripts haben mich keine Fehler angesprungen (das muss aber nicht viel heissen... ;)).
Deshalb waere, wie gesagt, interessant, was genau nicht geht.

-khs

iriqi
25.01.2005, 15:20
hallo

ok was geht und was geht nicht!

also zuerst mal gibt es keine rückmeldungen und ja ich sehe alle tables und eintraege mit iptables -nL!
ping eth1 vom windows 2000 pc geht! aber ping ins internet geht nicht ?(

gruss iriqi 8)

h2owasser
25.01.2005, 17:17
hallo

ok was geht und was geht nicht!

also zuerst mal gibt es keine rückmeldungen und ja ich sehe alle tables und eintraege mit iptables -nL!
ping eth1 vom windows 2000 pc geht! aber ping ins internet geht nicht ?(

gruss iriqi 8)

Hmm, das finde ich jetzt gerade aber auch merkwürdig. Vielleicht Droppe erstmal alles. (Dann sollte selbst Ping nicht mehr gehen.) Und erlaube dann Schritt für Schritt mehr und teste.
(außerdem bin ich ich mir gerade nicht sicher ob du port 1024 verwenden kannst, da user doch auf alles port > 1024 verbinden dürfen. Naja, das kommt erst später)

HangLoose
25.01.2005, 18:58
moin

die OUTPUT chain ist nur für pakete zuständig, die vom rechner kommen auf dem das iptables script läuft. für die pakete, die von deinem win 2000 rechner kommen, ist die FORWARD chain zuständig.

ich hab leider nicht die zeit dein script jetzt auseinander zu pflücken, aber ich werde mal eins von meinen scripten anhängen, möglicherweise wird ja dann einiges klarer.


Gruß HL

iriqi
26.01.2005, 10:19
danke für das script!
aber es zeigt mir immer einen fehler wenn ich das hier eingebe...

$ipt -A FORWARD -i $int -o $ext -m state --state NEW -p TCP --sport $p_high -d $ns --dport domain -j ACCEPT

immer den gleichen fehler "-d" wieso??? kann ich das nich irgendwie hinschreiben ohne "-d" zieladresse?

oder hier auch!!!
$ipt -A FORWARD -i $int -o $ext -m state --state NEW -p TCP --sport $p_high --dport http -j ACCEPT


das "$p_high" was bedeutet das? kann ich das nicht weglassen irgendwie?

gruss iriqi 8)

NiceDay
26.01.2005, 12:20
danke für das script!
aber es zeigt mir immer einen fehler wenn ich das hier eingebe...

$ipt -A FORWARD -i $int -o $ext -m state --state NEW -p TCP --sport $p_high -d $ns --dport domain -j ACCEPT

immer den gleichen fehler "-d" wieso??? kann ich das nich irgendwie hinschreiben ohne "-d" zieladresse?

oder hier auch!!!
$ipt -A FORWARD -i $int -o $ext -m state --state NEW -p TCP --sport $p_high --dport http -j ACCEPT


das "$p_high" was bedeutet das? kann ich das nicht weglassen irgendwie?

gruss iriqi 8)
Alle Wörter mit $ beginnend sind Variablen, die anderer Stelle festegelegt werden/ worden sind.

iriqi
26.01.2005, 13:02
noch eine frage!

wie speicher ich das script jez ab? und vorallem wo?
damit es nach jedem start automatisch auch startet!!!

gruss iriqi

NiceDay
26.01.2005, 16:10
-> http://www.unixboard.de/vb3/showpost.php?p=89917&postcount=3

HangLoose
26.01.2005, 17:59
moin,

läuft das script denn jetzt?


Gruß HL

iriqi
27.01.2005, 07:02
guten morgen...

also ich danke euch für eure hilfe..

ja es läuft jez!

gruss iriqi