Frage zu iptables

Rund um die Sicherheit des Systems und die Applikationen
sfeni
Posts: 341
Joined: 2002-08-15 11:35
Location: Schwabenland
 

Frage zu iptables

Post by sfeni »

Sorry, dieser Thread handelt sich nich um 1und1 rooties, wenns nicht in dieses forum gehört einfach in off-topic. danke

Ich habe nun Debian als Router eingerichtet und folgendes Skript mit iptables gebaut:

Code: Select all

#!/bin/sh

#
# firewall
#

IPTABLES=/sbin/iptables
EXTIF="ppp0"
INTIF="eth0"

/sbin/modprobe ip_tables
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_conntrack_irc
/sbin/modprobe iptable_nat
/sbin/modprobe ip_nat_ftp

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

$IPTABLES -P INPUT ACCEPT
$IPTABLES -F INPUT

$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -F OUTPUT

$IPTABLES -P FORWARD DROP
$IPTABLES -F FORWARD

$IPTABLES -t nat -F

$IPTABLES -A FORWARD -i $EXTIF -o $INTIF -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -i $INTIF -o $EXTIF -j ACCEPT
$IPTABLES -A FORWARD -j LOG

$IPTABLES -t nat -A POSTROUTING -o $EXTIF -j MASQUERADE
Und ein paar Zusatzinfos:

Code: Select all

sfeni:~# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy DROP)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere           state RELATED,ESTABLISHED
ACCEPT     all  --  anywhere             anywhere
LOG        all  --  anywhere             anywhere           LOG level warning

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
sfeni:~# iptables -L -t nat
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination
MASQUERADE  all  --  anywhere             anywhere

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
sfeni:~#
Wie kann ich nun das so einrichten, dass die Ports von außen nicht offen sind? Ich kann momentan auf alle offenen Ports von außen zugreifen und das will ich net, bzw. ich möchte nur bestimmte ports freigeben können.
captaincrunch
Userprojekt
Userprojekt
Posts: 7066
Joined: 2002-10-09 14:30
Location: Dorsten
Contact:
 

Re: Frage zu iptables

Post by captaincrunch »

Ganz dicht :

Code: Select all

iptables -A INPUT -i $EXTIF -j DROP
DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
sfeni
Posts: 341
Joined: 2002-08-15 11:35
Location: Schwabenland
 

Re: Frage zu iptables

Post by sfeni »

Ich habe noch einen bind auf dem router laufen, der alle anfragen forwardet. und wenn ich nun alles blocke funzt der nicht mehr. :-(
wie kann ich das nun einstellen?
adjustman
Posts: 1132
Joined: 2003-03-26 23:29
Location: SA
 

Re: Frage zu iptables

Post by adjustman »

CaptainCrunch wrote:Ganz dicht :

Code: Select all

iptables -A INPUT -i $EXTIF -j DROP
:lol: :lol:
cu aM
sfeni
Posts: 341
Joined: 2002-08-15 11:35
Location: Schwabenland
 

Re: Frage zu iptables

Post by sfeni »

*delete*
hab alles wieder gelöscht, was ich hier gepostet habe...

Code: Select all

$IPTABLES -A INPUT  -p udp -i $EXTIF --sport 53 --dport 1024:65535 -j ACCEPT
$IPTABLES -A INPUT -i $EXTIF -j DROP
so funktioniert es ;-)
captaincrunch
Userprojekt
Userprojekt
Posts: 7066
Joined: 2002-10-09 14:30
Location: Dorsten
Contact:
 

Re: Frage zu iptables

Post by captaincrunch »

Dafür :

Code: Select all

$IPTABLES -A INPUT  -p udp -i $EXTIF --sport 53 --dport 1024:65535 
-j ACCEPT
gibt's die State-Table, die auf magische Weise unter IPTables auch mit NS-UDP ziemlich gut funktioniert ... ;)
DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
sfeni
Posts: 341
Joined: 2002-08-15 11:35
Location: Schwabenland
 

Re: Frage zu iptables

Post by sfeni »

"State-Table" ? Was ist das?
captaincrunch
Userprojekt
Userprojekt
Posts: 7066
Joined: 2002-10-09 14:30
Location: Dorsten
Contact:
 

Re: Frage zu iptables

Post by captaincrunch »

"State-Table" ? Was ist das?
Das, was du oben mit dem "-m state --state ESTABLISHED,RELATED" erreichen wolltest ... ;)

Genauer : http://iptables-tutorial.frozentux.net/ ... ATEMACHINE
DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
sfeni
Posts: 341
Joined: 2002-08-15 11:35
Location: Schwabenland
 

Re: Frage zu iptables

Post by sfeni »

aso, ok.
verstehe das zwar nicht ganz, aber naja. wird schon passen.

wenn du kurz zeit hast, dann kannst du ja mal 1 oder 2 worte darüber verlieren, was man damit eigentlich genau erreicht. die regeln stammen nämlich nur teilweise von mir. :?

EDIT:
established: auch eingehenden traffic erlauben, wenn die verbindung von intern aufgebaut wurde
related: wenn diese verbindung zusätzliche verbindungen aufbaut, wie z.B. bei ftp, bei dem es eine control- und eine data-verbindung gibt, dann eingehenden traffic erlauben
könnte man das so beschreiben?
captaincrunch
Userprojekt
Userprojekt
Posts: 7066
Joined: 2002-10-09 14:30
Location: Dorsten
Contact:
 

Re: Frage zu iptables

Post by captaincrunch »

wenn du kurz zeit hast, dann kannst du ja mal 1 oder 2 worte darüber verlieren, was man damit eigentlich genau erreicht.
Kurz beschreiben ist gut ... ;)
established: auch eingehenden traffic erlauben, wenn die verbindung von intern aufgebaut wurde
related: wenn diese verbindung zusätzliche verbindungen aufbaut, wie z.B. bei ftp, bei dem es eine control- und eine data-verbindung gibt, dann eingehenden traffic erlauben
könnte man das so beschreiben?
Jau, besser hätte ich's auch nicht sagen können. Nur gut, dass ich dein Edit noch früh genug gesehen hatte ... ;)
DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
sfeni
Posts: 341
Joined: 2002-08-15 11:35
Location: Schwabenland
 

Re: Frage zu iptables

Post by sfeni »

Hehe, sonst hättest du wohl das ganze auch versucht zu beschreiben. :-)

Worauf du wahrscheinlich raus wolltest ist das, oder?

Code: Select all

$IPTABLES -A INPUT  -p udp -i $EXTIF --sport 53 --dport 1024:65535 -m state --state ESTABLISHED,RELATED -j ACCEPT
captaincrunch
Userprojekt
Userprojekt
Posts: 7066
Joined: 2002-10-09 14:30
Location: Dorsten
Contact:
 

Re: Frage zu iptables

Post by captaincrunch »

Nicht ganz. Dadurch, dass die Verbindung dann in den State-Tables steht, kannst du auf die Definition der Source und Destionation-Ports verzichten, und schaffst dir so zusätzliche Sicherheit, weil du nicht alles freigeben musst.

Bei mir würd's wahrscheinlich so aussehen :

Code: Select all

$IPTABLES -A INPUT  -p udp -i $EXTIF -m state --state ESTABLISHED,RELATED -j ACCEPT
DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
sfeni
Posts: 341
Joined: 2002-08-15 11:35
Location: Schwabenland
 

Re: Frage zu iptables

Post by sfeni »

ok, werde ich testen. danke schön

"hier wird man immer geholfen" 8)
sfeni
Posts: 341
Joined: 2002-08-15 11:35
Location: Schwabenland
 

Re: Frage zu iptables

Post by sfeni »

Das ganze sieht nun so aus.
Bis jetzt funktioniert auch alles...

Code: Select all

#!/bin/sh

#
# firewall
#

IPTABLES=/sbin/iptables
EXTIF="ppp0"
INTIF="eth0"

/sbin/modprobe ip_tables
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_conntrack_irc
/sbin/modprobe iptable_nat
/sbin/modprobe ip_nat_ftp

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

$IPTABLES -P INPUT ACCEPT
$IPTABLES -F INPUT

$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -F OUTPUT

$IPTABLES -P FORWARD DROP
$IPTABLES -F FORWARD

$IPTABLES -t nat -F

$IPTABLES -A FORWARD -i $EXTIF -o $INTIF -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -i $INTIF -o $EXTIF -j ACCEPT
$IPTABLES -A FORWARD -j LOG

$IPTABLES -t nat -A POSTROUTING -o $EXTIF -j MASQUERADE

$IPTABLES -A INPUT -p tcp -i $EXTIF -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -p udp -i $EXTIF -m state --state ESTABLISHED,RELATED -j ACCEPT

$IPTABLES -A INPUT -i $EXTIF -j DROP
Noch irgendwelche Verbesserungen?
captaincrunch
Userprojekt
Userprojekt
Posts: 7066
Joined: 2002-10-09 14:30
Location: Dorsten
Contact:
 

Re: Frage zu iptables

Post by captaincrunch »

Ja : Mach mal aus

Code: Select all

$IPTABLES -A INPUT -i $EXTIF -j DROP
ein

Code: Select all

$IPTABLES -A INPUT -i $EXTIF -j REJECT
DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
sfeni
Posts: 341
Joined: 2002-08-15 11:35
Location: Schwabenland
 

Re: Frage zu iptables

Post by sfeni »

ok, habs umgestellt.
wo liegt da der unterschied?
captaincrunch
Userprojekt
Userprojekt
Posts: 7066
Joined: 2002-10-09 14:30
Location: Dorsten
Contact:
 

Re: Frage zu iptables

Post by captaincrunch »

Ganz einfach : durch REJECT beendet der TCP-Stack die Verbindung durch ein RST, dem Client wird also mitgeteilt, dass die Verbindung nicht mehr besteht.
Beim DROP bekommt der Client keine Rückmeldung, und schickt munter weiter.
DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
sfeni
Posts: 341
Joined: 2002-08-15 11:35
Location: Schwabenland
 

Re: Frage zu iptables

Post by sfeni »

cool, das problem hatte ich heute auch schon bei einem test.
wollte mit telnet mal testen ob ich auf einen port komme und der hat ewig gebraucht bis er sagt keine verbindung, aber nun bricht er sofort ab.
danke

noch irgendwas zu verbessern?
captaincrunch
Userprojekt
Userprojekt
Posts: 7066
Joined: 2002-10-09 14:30
Location: Dorsten
Contact:
 

Re: Frage zu iptables

Post by captaincrunch »

Ja :

Code: Select all

$IPTABLES -P INPUT ACCEPT
sollte ein

Code: Select all

$IPTABLES -P INPUT DROP
sein ... ;)
DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
sfeni
Posts: 341
Joined: 2002-08-15 11:35
Location: Schwabenland
 

Re: Frage zu iptables

Post by sfeni »

danach funzt gar nichts mehr :-(
außerdem löscht der alle regeln eh wieder ;-)

Code: Select all

$IPTABLES -F INPUT
[/code]
rootmaster
Posts: 483
Joined: 2002-04-28 13:30
Location: Hannover
 

Re: Frage zu iptables

Post by rootmaster »

die INPUT-chain muss beim inneren interface des gateways für pakete aus dem intranet auf ACCEPT stehen ;)

"back to the roots"
Cahn's Axiom:

When all else fails, read the instructions
sfeni
Posts: 341
Joined: 2002-08-15 11:35
Location: Schwabenland
 

Re: Frage zu iptables

Post by sfeni »

stimmt, da hätte ich wohl mitdenken müssen...
werds dann mal ausprobieren.
sfeni
Posts: 341
Joined: 2002-08-15 11:35
Location: Schwabenland
 

Re: Frage zu iptables

Post by sfeni »

Wie kann ich dem ganzen denn noch eine Log-File geben in der alles mitgeloggt wird?
sfeni
Posts: 341
Joined: 2002-08-15 11:35
Location: Schwabenland
 

Re: Frage zu iptables

Post by sfeni »

ich habe nun ein kleines, bzw. teilweise großes, problem:
wieso brauchen manche seiten sehr sehr lange zu laden oder funktionieren gar nicht?

mit der suse standard-iptables konfiguration ging das wunderbar, aber nun mit dem selbstgebauten skript geht das nicht mehr so gut.
sfeni
Posts: 341
Joined: 2002-08-15 11:35
Location: Schwabenland
 

Re: Frage zu iptables

Post by sfeni »

nachdem dies nun funktioniert, habe ich mal wieder eine frage...
wieso erreiche ich hiermit meinen vnc server auf meinem rechner im netzwerk von außen nicht?

Code: Select all

#!/bin/sh

#
# firewall
#

IPTABLES=/sbin/iptables
EXTIF="ppp0"
INTIF="eth0"

case "$1" in

start)
/sbin/modprobe ip_tables
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_conntrack_irc
/sbin/modprobe iptable_nat
/sbin/modprobe ip_nat_ftp

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

$IPTABLES -P INPUT ACCEPT
$IPTABLES -F INPUT

$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -F OUTPUT

$IPTABLES -P FORWARD DROP
$IPTABLES -F FORWARD

$IPTABLES -t nat -F

$IPTABLES -A FORWARD -i $EXTIF -o $INTIF -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -i $INTIF -o $EXTIF -j ACCEPT
$IPTABLES -A FORWARD -j LOG

$IPTABLES -t nat -A PREROUTING -p tcp -i $EXTIF --dport 5500 -j DNAT --to 10.0.0.2:5500
$IPTABLES -t nat -A PREROUTING -p tcp -i $EXTIF --dport 5800 -j DNAT --to 10.0.0.2:5800
$IPTABLES -t nat -A PREROUTING -p tcp -i $EXTIF --dport 5900 -j DNAT --to 10.0.0.2:5900
$IPTABLES -t nat -A POSTROUTING -o $EXTIF -j MASQUERADE

$IPTABLES -A INPUT -p tcp -i $EXTIF -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -p udp -i $EXTIF -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -p tcp -i $EXTIF --dport 21 --syn -j ACCEPT
$IPTABLES -A INPUT -p tcp -i $EXTIF --dport 22 --syn -j ACCEPT
$IPTABLES -A INPUT -p tcp -i $EXTIF --dport 3306 --syn -j ACCEPT
$IPTABLES -A INPUT -p tcp -i $EXTIF --dport 4661 --syn -j ACCEPT
$IPTABLES -A INPUT -p tcp -i $EXTIF --dport 4662 --syn -j ACCEPT
$IPTABLES -A INPUT -p udp -i $EXTIF --dport 4665 -j ACCEPT
$IPTABLES -A INPUT -p tcp -i $EXTIF --dport 5500 --syn -j ACCEPT
$IPTABLES -A INPUT -p tcp -i $EXTIF --dport 5800 --syn -j ACCEPT
$IPTABLES -A INPUT -p tcp -i $EXTIF --dport 5900 --syn -j ACCEPT
$IPTABLES -A INPUT -i $EXTIF -j REJECT
;;

restart)
$0 stop && $0 start
;;

stop)
$IPTABLES -F INPUT
$IPTABLES -F OUTPUT
$IPTABLES -F FORWARD
$IPTABLES -F -t nat
;;
esac
EDIT:
Wie kann ich dem ganzen denn noch eine Log-File geben in der alles mitgeloggt wird?
Post Reply