OVH Community, your new community space.

Problem mit iptables


derpascal
18.07.09, 15:41
Ok, fehler gefunden:

Code:
# Standardpolicies: Alles Veboten
###########################################
$IPTABLES -P INPUT   DROP
$IPTABLES -P OUTPUT  DROP
$IPTABLES -P FORWARD DROP
einfach ans Ende des Scriptes gesetzt. Dadurch das ich es immer am anfang des Scriptes habe werden kurzzeitig alle Verbindungen gesperrt bis die weiteren Regeln ausgeführt wurde. Jedoch ohne iscsi wurden keine weiteren Regeln ausgeführt da kein Zugriff mehr auf iptables bestand.

Für die, die es Interessiert poste ich nochmal mein funktionierendes Minimalscript für RPS.

Code:
#! /bin/sh
# Letzte Änderung: am 20090718 um 14:56 Uhr

# Variablen
########################################################################################
IPTABLES=/sbin/iptables

# Flushen
########################################################################################
$IPTABLES -F
$IPTABLES -X
$IPTABLES -t nat    -F
$IPTABLES -t mangle -F

# Loopback darf alles
########################################################################################
$IPTABLES -A INPUT  -i lo -j ACCEPT
$IPTABLES -A OUTPUT -o lo -j ACCEPT

# ICMP erlauben von drin und draussen fuer alle
########################################################################################
$IPTABLES -A INPUT  -p ICMP -j ACCEPT
$IPTABLES -A OUTPUT -p ICMP -j ACCEPT

# Das braucht der server:
########################################################################################
$IPTABLES -A OUTPUT -p udp --dport 53 -j ACCEPT                                    # DNS
$IPTABLES -A OUTPUT -p tcp --dport 53 -j ACCEPT                                    # DNS
$IPTABLES -A OUTPUT -p tcp --dport 3260 -d 91.121.191.110 -o eth0 -j ACCEPT
                                                # ovh iscsi filter (iscsi58.rps.ovh.net)
$IPTABLES -A INPUT  -p tcp --sport 3260 -s 91.121.191.110 -i eth0 -j ACCEPT   
                                                # ovh iscsi filter (iscsi58.rps.ovh.net)

# SSH SERVER
########################################################################################
PORT=22
$IPTABLES -A INPUT  -p tcp --dport $PORT -j ACCEPT
$IPTABLES -A OUTPUT -p tcp --sport $PORT -j ACCEPT

# Fuer den Router antworten zulassen 
########################################################################################
$IPTABLES -A INPUT  -m state --state ESTABLISHED,RELATED -j ACCEPT

# Neue Verbindungen, die nicht selber initiert worden sind, von aussen abwehren
########################################################################################
# $IPTABLES -A INPUT  -m state --state NEW,INVALID -j DROP

# Standardpolicies: Alles Veboten
########################################################################################
$IPTABLES -P INPUT   DROP
$IPTABLES -P OUTPUT  DROP
$IPTABLES -P FORWARD DROP
Ich bedanke mich für die Hilfe.

thinkz
18.07.09, 12:35
fang doch mit ein paar Regeln an und nicht gleich das komplette Ding von oben
nach und nach neue dazu dann sieht man schnell wo der Fehler steckt

derpascal
18.07.09, 11:26
Moin,

:~# netstat -aptu|grep iscsi|awk '{print $5}'
iscsi58.rps.ovh.ne:3260

Also ist der richtige filter.

Zitat Zitat von Stefan_
probier es mal mit:
/sbin/iptables -A INPUT -i eth0 --source iscsi58.rps.ovh.net -j ACCEPT
/sbin/iptables -A OUTPUT -o eth0 --source iscsi58.rps.ovh.net -j ACCEPT
Ich habe ein kleines Verständnisproblem mit der zweiten Zeile. Wenn ich sage, dass bei ausgehenden Verbindungen (-A OUTPUT), auf eth0 (-o eth0) die Quelle das isci ist (--source iscsi58.rps.ovh.net), dann bin ich doch "iscsi58.rps.ovh.net", was natürlich kein Sinn ergeben würde. Heißt es nicht bei Output dann " --destination"? Oder bin ich jetzt voll daneben?


ich habe es mit

/sbin/iptables -A INPUT -i eth0 --source iscsi58.rps.ovh.net -j ACCEPT
/sbin/iptables -A OUTPUT -o eth0 --source iscsi58.rps.ovh.net -j ACCEPT

und

/sbin/iptables -A INPUT -i eth0 --source iscsi58.rps.ovh.net -j ACCEPT
/sbin/iptables -A OUTPUT -o eth0 --destination iscsi58.rps.ovh.net -j ACCEPT

ausprobiert. Aber selbe Ergebniss. Sobald ich das Script ausführe ist nichts mehr erreichbar und der Ping schlägt auch sofort fehl.

Wenn ich mich über iptables vom iscsi trenne, ist dann mein Server sofort nicht mehr via Ping erreichbar?

@ AliEn: Jip, war erlaubt. Aber nur für UDP. Habe es jetzt auch für TCP freigegeben. Hat nichts gebracht.

Ich bin verwirrt. Habe ich noch was vergessen?

ALiEn
17.07.09, 13:48
DNS erlaubt? - 53

Stefan
17.07.09, 12:38
Mit netstat -aptu|grep iscsi|awk '{print $5}' kannst du direkt schauen, auf welchem Filer du bist, dies sollte mit dem Manager v3 übereinstimmen.

probier es mal mit:
/sbin/iptables -A INPUT -i eth0 --source iscsi58.rps.ovh.net -j ACCEPT
/sbin/iptables -A OUTPUT -o eth0 --source iscsi58.rps.ovh.net -j ACCEPT

Am besten auch erstmal "klein" anfangen und nach und nach die Regeln erweitern -> leichtere Fehlersuche.

Stefan

derpascal
16.07.09, 17:13
Moin,

ich habe auf meinem RPS folgendes Script für IPTABLES geschrieben. Jedoch wenn ich das Script ausführe ist mein Server nicht mehr erreichbar. Auch nicht per ping. Ich muss dann den Server per Manager neustarte.

Code:
#! /bin/sh
# Letzte Änderung: am 20090716 um 14:01 Uhr

# Variablen
########################################################################################
IPTABLES=/sbin/iptables

# Flushen
########################################################################################
$IPTABLES -F
$IPTABLES -X
$IPTABLES -t nat -F
$IPTABLES -t mangle -F

# Standardpolicies: Alles Veboten
########################################################################################
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT DROP
$IPTABLES -P FORWARD DROP

# Loopback darf alles
########################################################################################
$IPTABLES -A INPUT   -i lo -j ACCEPT
$IPTABLES -A OUTPUT  -o lo -j ACCEPT

# ICMP erlauben von drin und draussen zum Router und von drin nach draussen
########################################################################################
$IPTABLES -A INPUT   -p ICMP -j ACCEPT
$IPTABLES -A OUTPUT  -p ICMP -j ACCEPT

# Das braucht der server:
########################################################################################
$IPTABLES -A OUTPUT  -p udp --dport 53      -j ACCEPT                              # DNS
$IPTABLES -A OUTPUT  -p tcp --dport 80      -j ACCEPT                             # HTTP
$IPTABLES -A OUTPUT  -d mir1.ovh.net        -j ACCEPT                 # ovh updateserver
$IPTABLES -A OUTPUT  -d iscsi58.rps.ovh.net -j ACCEPT                 # ovh iscsi filter
$IPTABLES -A INPUT   -s iscsi58.rps.ovh.net -j ACCEPT                 # ovh iscsi filter

# SSH SERVER
########################################################################################
PORT=22
$IPTABLES -A INPUT   -p tcp --dport $PORT  -j ACCEPT
$IPTABLES -A OUTPUT  -p tcp --sport $PORT  -j ACCEPT

# Antworten zulassen fuer internes Netz und Router
########################################################################################
$IPTABLES -A INPUT   -m state --state ESTABLISHED,RELATED -j ACCEPT

# Neue Verbindungen, die nicht selber initiert worden sind, von aussen abwehren
########################################################################################
$IPTABLES -A INPUT   -m state --state NEW,INVALID -j DROP
Was habe ich vergessen/ falsch gemacht, dass mein Server nicht mehr erreichbar ist. Im Manager steht "iSCSI Server: iscsi58.rps.ovh.net".

Bitte helft mir.