iptables + adsl

Das Forum fĂĽr den Linux-Pinguin - auch andere Unix-Derivate (*BSD, (Open)Solaris, Apple's Darwin / MacOS X, ...) sind hier willkommen!
Forumsregeln
Das Forum fĂĽr den Linux-Pinguin - auch andere Unix-Derivate (*BSD, (Open)Solaris, Apple's Darwin / MacOS X, ...) sind hier willkommen!

iptables + adsl

Beitragvon michael » Di 02 Dez, 2003 20:06

hallo,
ich hab mir ein iptables script fĂĽr einen linux-router zusammengebastelt, kann aber keine adsl-verbindung aufbauen.
hier das script:

Code: Alles auswählen
#!/bin/sh

#local interface
INT="eth1"

#nach drauĂźen
EXT="ppp0"

#loopback
LO="lo"

#ports auf router von aussen zugänglich machen
SERVER_PORTS_TCP=""
SERVER_PORTS_UDP=""

#ports an rechner im lokalen netz zugänglich machen
DEST_HOST=""
PORTS_TCP=""
PORTS_UDP=""

#####################################################

case "$1" in
start)
echo -n "Starte Firewall (Paketfilter): "

# Alte Regeln loeschen
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
iptables -t nat -X
iptables -t mangle -X

#default policies
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP

#ip-forwarding einschalten
echo "1" > /proc/sys/net/ipv4/ip_forward

#####################
#eingehender verkehr#
#####################

#neue verbindungen verboten
iptables -A INPUT -p TCP ! --syn -m state --state NEW -j DROP

#von intern erlaubt
iptables -A INPUT -i $INT -j ACCEPT

#ueber loopback erlaubt
iptables -A INPUT -i $LO -j ACCEPT

#von aussen verboten
iptables -A INPUT -i $EXT -s 10.0.0.0/8 -j DROP
iptables -A INPUT -i $EXT -s 172.16.0.0/12 -j DROP
iptables -A INPUT -i $EXT -s 192.168.0.0/24 -j DROP

#bestehende verbindungen von aussen erlauben
iptables -A INPUT -i $EXT -m state --state ESTABLISHED,RELATED -j ACCEPT

#ports auf router von aussen
if [ "$SERVER_PORTS_TCP" != "" ]; then
   iptables -A INPUT -i $EXT -p tcp -m multiport --dport $SERVER_PORTS_TCP -j ACCEPT
fi

if [ "$SERVER_PORTS_UDP" != "" ]; then
   iptables -A INPUT -i $EXT -p udp -m multiport --dport $SERVER_PORTS_UDP -j ACCEPT
fi

############
#forwarding#
############

#wegen telekom
iptables -I FORWARD -p TCP --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

#lokal -> internet erlaubt
iptables -A FORWARD -i $INT -o $EXT -j ACCEPT

#internet -> lokal nur bestehende verbindungen
iptables -A FORWARD -i $EXT -o $INT -m state --state ESTABLISHED,RELATED -j ACCEPT

#ports auf rechner im lokalem netz
if [ "$PORTS_TCP" != "" ]; then
   iptables -A FORWARD -i $EXT -o $INT -p tcp -m multiport --dport $PORTS_TCP -d $DEST_HOST -j ACCEPT
fi

if [ "$PORTS_UDP" != "" ]; then
   iptables -A FORWARD -i $EXT -o $INT -p tcp -m multiport --dport $PORTS_UDP -d $DEST_HOST -j ACCEPT
fi

########
#output#
########

#alles erlaubt
iptables -A OUTPUT -o $INT -j ACCEPT
iptables -A OUTPUT -o $EXT -j ACCEPT
iptables -A OUTPUT -o $LO -j ACCEPT

#########
#routing#
#########

#umleiten der ports auf einen lokalen rechner
if [ "$PORTS_TCP" != "" ]; then
   iptables -t nat -A PREROUTING -i $EXT -p tcp -m multiport --dport $PORTS_TCP -j DNAT --to $DEST_HOST
fi

if [ "$PORTS_UDP" != "" ]; then
   iptables -t nat -A PREROUTING -i $EXT -p tcp -m multiport --dport $PORTS_UDP -j DNAT --to $DEST_HOST
fi

#masquerading
iptables -t nat -A POSTROUTING -o $EXT -j MASQUERADE
echo "done."
;;

stop)
echo -n "Firewall (Packetfilter) anhalten: "

#alte regeln löschen
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
iptables -t nat -X
iptables -t mangle -X

#default policies
iptables -P INPUT ACCEPT
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
echo "done."
;;

restart)
$0 start
;;

status)
iptables -L
;;

*)
echo "Usage: fwscript start|stop|restart|status"
exit 1
;;

esac


ich wĂĽsste echt keinen grund wieso das nicht funktionieren sollte....
irgendwelche ideen?

mfg,
michael[/list]
michael
Junior Board-Mitglied
Junior Board-Mitglied
 
Beiträge: 42
Registriert: Di 02 Dez, 2003 19:47

Beitragvon Klemens » Do 04 Dez, 2003 00:05

Ich nimm an, dass das Modem an eth0 hängt.
Zumindest beim ADSL muss eth0 eine pptp - Verbindung zum Modem aufbauen dürfen! Schätze da wird der Fehler liegen! Die Kommunikation zw. eth0 und Modem darf nicht behindert werden.
Ob das bei XDSL genauso ist, weiss ich nicht, aber irgendwie mĂĽssen die auch miteinander plaudern dĂĽrfen.
Klemens
Board-Mitglied
Board-Mitglied
 
Beiträge: 104
Registriert: Do 26 Jun, 2003 00:17

Beitragvon michael » Do 04 Dez, 2003 10:59

ja, das seh ich auch in den logfiles, logischerweise werden pakete die über eth0 laufen verworfen, aber dann müsst ich doch eth0 (an dem das modem hängt) freigeben....

wie machen das dann alle anderen (guten firewallscripts)? da muss man zwei interfaces angeben (intern und extern), wobei das externe z.B. ppp0 ist....dort geht das ja auch....

ich habe mein firewallscript auch schon erst nach verbindungsaufbau ausgeführt (denn nach verbindungsaufbau gibt es dann ppp0 ja tatsächlich), dann wird die verbindung abgebrochen.....wieso?

mfg
michael
Junior Board-Mitglied
Junior Board-Mitglied
 
Beiträge: 42
Registriert: Di 02 Dez, 2003 19:47

Beitragvon Klemens » Do 04 Dez, 2003 11:13

Bei der SuSEfirewall2 z.B. gibt man eth0 ebenfalls als internes Interface an und damit frei.

Gibt es irgendeinen Grund eth0 eine Einschränkung zu geben?

Warum:
Du kannst ja in der Natur auch nicht einen Tunnel zuschĂĽtten und dann meinen, Du kommst mit der Eisenbahn durch! Die Verbindung zwischen Modem und eth0 ist eine normale Netzwerkverbindung - die wird genauso wie die Verbindung ĂĽber pptp oder eth1 von iptables mitbestimmt!

Entweder gibst eth0 ganz frei, oder schau einmal auf www.poptop.org . Dort steht genau, was man bei pptp freigeben muss (irgendein Port und -p gre .. mehr ist es nicht)
Klemens
Board-Mitglied
Board-Mitglied
 
Beiträge: 104
Registriert: Do 26 Jun, 2003 00:17

Beitragvon michael » Do 04 Dez, 2003 11:18

aber wenn ich eth0 ganz freigebe, dann kann man doch auch von auĂźen ĂĽber eth0 rein, oder?

mfg
michael
Junior Board-Mitglied
Junior Board-Mitglied
 
Beiträge: 42
Registriert: Di 02 Dez, 2003 19:47

Beitragvon Klemens » Do 04 Dez, 2003 11:53

michael hat geschrieben:aber wenn ich eth0 ganz freigebe, dann kann man doch auch von auĂźen ĂĽber eth0 rein, oder?
mfg


Kannst Du (oder wer anderer) verraten, wie ein Angreifer das machens soll? Ăśbers Internet mit dem Internetprotokoll auf eine Karte mit der IP 10.0.0.x zugreifen??? :oops:
Da denk ich mir das ist über pptp und einer regulären Portverbindung einfacher! Auf gut deutsch: Die Sicherheitslücke besteht durch die Internetverbindung selbst. Und diese Lücke wirst ja wohl kaum schliessen wollen :wink:

Über das interne Netzwerk wäre das durchaus möglich, wenn eine physikalische Verbindung (z.B. über Switch) besteht. Falls da eine Gefahr besteht, dann gib halt nur das Notwendige für pptp frei. Wenn Du keinen pptpd laufen hast, wird sich auch kaum jemand auf den entsprechenden Port verbinden können. Wenn doch: Finde heraus, wer das ist und übergib ihn die Netzwerkadministration: Der versteht dann nämlich was von der Sache!
Klemens
Board-Mitglied
Board-Mitglied
 
Beiträge: 104
Registriert: Do 26 Jun, 2003 00:17

Beitragvon michael » Do 04 Dez, 2003 15:14

dankeschön, jetzt gehts...

ich hab fĂĽr eth0 tcp port 1723 und fĂĽr gre (47) freigegeben....

gibts eigentlich ein deutsches tutorial fĂĽr iptables?

mfg
michael
Junior Board-Mitglied
Junior Board-Mitglied
 
Beiträge: 42
Registriert: Di 02 Dez, 2003 19:47

Beitragvon Klemens » Do 04 Dez, 2003 15:20

ja, den Port wuĂźte ich nicht auswendig ..

Schau einmal - gibt eine erste IMHO gut verständliche Einführung in iptables:

http://www.pl-forum.de/t_netzwerk/iptables.html
Klemens
Board-Mitglied
Board-Mitglied
 
Beiträge: 104
Registriert: Do 26 Jun, 2003 00:17

Beitragvon michael » Do 04 Dez, 2003 15:26

die kenn ich , danke....

ich hätte eher etwas tiefergreifendes gesucht, sowie designrichtlinien, usw....


mfg
michael
Junior Board-Mitglied
Junior Board-Mitglied
 
Beiträge: 42
Registriert: Di 02 Dez, 2003 19:47

Beitragvon Klemens » Do 04 Dez, 2003 17:47

Klemens
Board-Mitglied
Board-Mitglied
 
Beiträge: 104
Registriert: Do 26 Jun, 2003 00:17


ZurĂĽck zu LINUX & UNIX-DERIVATE

Wer ist online?

Mitglieder in diesem Forum: DotNetDotCom [Crawler] und 35 Gäste