brauche Hilfe bei meinem Iptables script:-/

Post Reply
Message
Author
simon_23

brauche Hilfe bei meinem Iptables script:-/

#1 Post by simon_23 »

Hallo, ich habe mir vor kurzem den Artikel "Firewall selbst entwickeln" von HJB durchgelesen und da ich auch dabei bin mir einen Paketfilter zurechtzuschustern habe ich mir gedacht ich probiere einfach mal aus was HJB da bescheibt!
Ein wenig Programmierkenntnisse habe ich auch - alölerdings nicht mit shellscripten sondern eher mit Java :-/

Ich habe die Iptables regeln ein wenig an meine gegebenheiten angepasst, also kein weiterleiten von paketen, und das Interface von ippp0 auf ppp0 gesetzt (Da ich grad ein Modem benutze.).

wenn ich den Paketfilter starte bekomme ich immer folgende Meldung :
____
Starting IP Filtering...Warning:weird character in interface'{INTERFACE}' (No aliases, :m ! or *).
Warning weird character in interface '{INTERFACE}' (No aliases, :m ! or *).
done.
___

Klar, ich dachte mir da ist wohl irgendwas mit dem Interface.....nur als ich nichts gefunden habe habe ich mich schon gefragt was es denn sein kann :-)

Warscheinlich nen newbie Fehler, wär wirklcih nett wenn Ihr mir einen Wink mit dem Zaunpfahl geben könntet :-)

Hier noch mein Script (Ich habe wie HJB auch 2 Scripte erstellt - hier das mit den iptables Regeln)

vielen Dank schonmal im Vorraus

_______________ipfilter_util_______________________

INTERFACE="ppp0"
IPTABLES="/sbin/iptables"



Stop()
{
Flush ACCEPT
}

Close()
{
Flush DROP
}


Flush()
{
${IPTABLES} -P INPUT $1
${IPTABLES} -P OUTPUT $1
${IPTABLES} -F
${IPTABLES} -F INPUT
${IPTABLES} -F OUTPUT
${IPTABLES} -X destroy > /dev/null 2>&1
${IPTABLES} -X in_private > /dev/null 2>&1
${IPTABLES} -X out_private > /dev/null 2>&1

}

Start()
{
Close
CreateBucket
EgressFilter

InOutTCP 22 # SSH
OutTCP http 80 https 8080
OutTCP ftp smtp pop3
OutFTP

#Firewall ICMP . ICMP is useful so allow any by defult
${IPTABLES} -A INPUT -j ACCEPT -p icmp
${IPTABLES} -A OUTPUT -j ACCEPT -p icmp

${IPTABLES} -A INPUT -j destroy
${IPTABLES} -A OUTPUT -j destroy
}

CreateBucket()
{
${IPTABLES} -N destroy

#These rules are only for logging.
${IPTABLES} -A destroy -j LOG --log-level notice -m limit
${IPTABLES} -A destroy -j DROP
}

EgressFilter()
{
#Dont let private addresses in
${IPTABLES} -N in_private
${IPTABLES} -F in_private
${IPTABLES} -A in_private -j destroy -s 127.0.0.0/8
${IPTABLES} -A in_private -j destroy -s 10.0.0.0/8
${IPTABLES} -A in_private -j destroy -s 172.16.0.0/12
${IPTABLES} -A in_private -j destroy -s 192.168.0.0/16
${IPTABLES} -A in_private -j destroy -s 224.0.0.0/4
${IPTABLES} -A in_private -j destroy -s 240.0.0.0/4

#dont let private addresses escape
#Also darf der Server keine Pakete an die folgenden Adressen senden
#weil sie ja im Internet nicht existieren dürfen und der Server somit
#mit gefälschten adressen kommuniziert !?

${IPTABLES} -N out_private
${IPTABLES} -F out_private
${IPTABLES} -A out_private -j destroy -d 127.0.0.0/8
${IPTABLES} -A out_private -j destroy -d 10.0.0.0/8
${IPTABLES} -A out_private -j destroy -d 172.16.0.0/12
${IPTABLES} -A out_private -j destroy -d 192.168.0.0/16
${IPTABLES} -A out_private -j destroy -d 224.0.0.0/4
${IPTABLES} -A out_private -j destroy -d 240.0.0.0/4

#Alle Pakete der INPUT und OUTPUT Chains werden erfasst
${IPTABLES} -A INPUT -j in_private -i {INTERFACE}
${IPTABLES} -A OUTPUT -j out_private -o {INTERFACE}
}

InOutTCP()
{
InTCP $*
OutTCP $*
}

InTCP()
{
for i in $*
do
${IPTABLES} -A INPUT -j ACCEPT -i ${INTERFACE} -p tcp --dport $i -m state --state NEW,ESTABLISHED,RELATED
${IPTABLES} -A OUTPUT -j ACCEPT -o ${INTERFACE} -p tcp --sport $i -m state --state ESTABLISHED,RELATED
done
}


OutTCP()
{
for i in $*
do
${IPTABLES} -A OUTPUT -j ACCEPT -o ${INTERFACE} -p tcp --sport 1024: --dport $i -m state --state NEW,ESTABLISHED,RELATED
${IPTABLES} -A INPUT -j ACCEPT -i ${INTERFACE} -p tcp --sport $i -m state --state ESTABLISHED,RELATED
done
}

OutFTP()
{
InOutTCP ftp-data
${IPTABLES} -A INPUT -j ACCEPT -i ${INTERFACE} -p tcp --sport ftp-data -m state --state NEW,ESTABLISHED,RELATED
}

_______________________________________

simon_23

dachte ich hätte die url mitgepostet :-(

#2 Post by simon_23 »

Also, HJB's Anleitung habe ich von hier:

http://www.pl-berichte.de/t_netzwerk/pr ... enbau.html

simon_23

User avatar
Hans Solo
prolinux-forum-admin
Posts: 601
Joined: 20. Apr 2004 12:19
Location: AT
Contact:

#3 Post by Hans Solo »

hi

wenn ich das richtig sehe fehlen in diesem absatzt

#Alle Pakete der INPUT und OUTPUT Chains werden erfasst
${IPTABLES} -A INPUT -j in_private -i {INTERFACE}
${IPTABLES} -A OUTPUT -j out_private -o {INTERFACE}


die Dollar ($) vor dem {INTERFACE}

mfg
arno
[root@host]# cd /pub
[root@host]# more beer

simon_23

oh ja!

#4 Post by simon_23 »

ich hab wohl den wald vor lauter bäumen nicht gesehen :-)

'viele Grüße simon_23

simon_23

kann keine Verbindungen aufbauen :-(

#5 Post by simon_23 »

Hallo kann mir noch jemand sagen warum ich jetzt keine Verbindungen aufbauen kann?

eine bereits bestandene ssh Verbindung lief ohne Probleme weiter! Nur im www surfen konnte ich nicht mehr!

wäre echt cool wenn mir noch jemand einen Tipp geben könnte!

simon_23

Hans2

#6 Post by Hans2 »

hi

weill du masquerading nicht eingeschaltet hast

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -A POSTROUTING -t nat -s 192.168.2.0/24 -j MASQUERADE

ip anpassen dann müsste es funktionieren


mfg
arno

simon_23

masquerading bei workstation?

#7 Post by simon_23 »

Hi, ich dachte ich brauche masquerading nur wenn ich einen Router / Gateway mit paketfilter betreibe!?

Ich sitze aber (lokal) direkt vor meiner workstation :-)

und es haperte ja auch nur beim www (glaube ich),
ssh klappte ja weiterhin!

werde das mal ausprobieren
bis später simon_23

Hans2

#8 Post by Hans2 »

hi

von welcher richtung aus funktioniert den das ssh?
von aussen rein oder von innen raus?

mfg

simon_23

das ssh...

#9 Post by simon_23 »

...funktioniert wenn ich perr ssh auf einen Server zugreife - also von innen herraus.

simon_23

Post Reply