iptables-script will ssh nicht freigeben

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
padarasa
Beiträge: 281
Registriert: 11.12.2004 13:17:10
Wohnort: Friedberg (Hessen)

iptables-script will ssh nicht freigeben

Beitrag von padarasa » 17.07.2005 22:31:48

Mein script:

Code: Alles auswählen

#!/bin/bash

# Interface-name (Device der aktuellen Verbindung, z.B. ppp0)
DEV_INET=eth0

# Das Device auf LAN-Seite
DEV_LAN=eth0

# Loopback Device. Hat jeder. Finger weg!
DEV_LOOP=lo
IP_LOOP=127.0.0.1

# Kürzel für alle IP-Adressen
ANY=0.0.0.0/0

# Das aktuelle Datum und die Uhrzeit
DATE=$(date)

# Vollen Pfad von iptables
IPTABLES=/sbin/iptables

echo "Lade Module..."
# Benoetigte Module laden
modprobe ip_tables &> /dev/null
modprobe ip_conntrack &> /dev/null
modprobe ip_conntrack_ftp &> /dev/null
modprobe ipt_state &> /dev/null
#modprobe iptable_nat &> /dev/null
modprobe ipt_REJECT &> /dev/null
#modprobe ipt_MASQUERADE  &> /dev/null

echo "Loesche alte Regeln..."
# Alle alten Regeln löschen, anschließend die Default-Policy setzen
$IPTABLES -F
$IPTABLES -X
$IPTABLES -F -t filter
$IPTABLES -F -t nat
$IPTABLES -F -t mangle
$IPTABLES -t filter -X
$IPTABLES -t nat -X
#$IPTABLES -t mangle -X

# Wenn keine andere Regel greift, alles verwerfen
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT DROP

# icmp handling - ICMP-Pakete werden erlaubt, bis auf type 5 (redirect)
$IPTABLES -N icmp_allow
$IPTABLES -N icmp_reject
$IPTABLES -A INPUT -p icmp --icmp-type ! 5 -j icmp_allow
$IPTABLES -A icmp_allow -j ACCEPT

# Verbindungen zum loopback-Device - Das ist NOTWENDIG
$IPTABLES -N lo_accept
$IPTABLES -A INPUT       -i $DEV_LOOP -m state --state NEW -j lo_accept
$IPTABLES -A INPUT       -i $DEV_LOOP -m state --state ESTABLISHED,RELATED -j lo_accept
$IPTABLES -A OUTPUT      -o $DEV_LOOP -m state --state NEW -j lo_accept
$IPTABLES -A OUTPUT      -o $DEV_LOOP -m state --state ESTABLISHED,RELATED -j lo_accept
$IPTABLES -A lo_accept   -j ACCEPT

# Pings vom Gateway erlauben
$IPTABLES -N icmp_gate
$IPTABLES -A OUTPUT    -p icmp -j icmp_gate
$IPTABLES -A icmp_gate -j ACCEPT

# DNS erlauben
$IPTABLES -N dns_gate
$IPTABLES -A OUTPUT -p udp -o $DEV_INET --dport 53 -m state --state NEW -j dns_gate
$IPTABLES -A OUTPUT -p udp -o $DEV_INET --dport 53 -m state --state ESTABLISHED,RELATED -j dns_gate
$IPTABLES -A dns_gate -j ACCEPT

echo "SSH..."
# ssh
$IPTABLES -N ssh_gate
$IPTABLES -A OUTPUT -p tcp --dport 22 -m state --state NEW -j ssh_gate
$IPTABLES -A OUTPUT -p tcp --dport 22 -m state --state ESTABLISHED,RELATED -j ssh_gate
$IPTABLES -A INPUT -p tcp  --dport 22 -m state --state NEW -j ssh_gate
$IPTABLES -A INPUT -p tcp  --dport 22 -m state --state ESTABLISHED,RELATED -j ssh_gate
$IPTABLES -A ssh_gate -j ACCEPT

#rest kommt weg
$IPTABLES -A INPUT   -j REJECT
$IPTABLES -A OUTPUT  -j REJECT
Ich schaff es einfach nicht, auf diesen PC von außer per ssh zu connecten?

Benutzeravatar
DynaBlaster
Beiträge: 958
Registriert: 25.03.2004 18:18:57
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: DF0://dynablaster.adf

Beitrag von DynaBlaster » 17.07.2005 22:43:07

Änder mal das hier:

Code: Alles auswählen

$IPTABLES -A OUTPUT -p tcp --dport 22 -m state --state NEW -j ssh_gate
$IPTABLES -A OUTPUT -p tcp --dport 22 -m state --state ESTABLISHED,RELATED -j ssh_gate
in:

Code: Alles auswählen

$IPTABLES -A OUTPUT -p tcp --sport 22 -m state --state NEW -j ssh_gate
$IPTABLES -A OUTPUT -p tcp --sport 22 -m state --state ESTABLISHED,RELATED -j ssh_gate

Benutzeravatar
Savar
Beiträge: 7174
Registriert: 30.07.2004 09:28:58
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von Savar » 17.07.2005 22:43:47

kommst du von dem Rechner überhaupt raus? denn du lässt Verbindungen nach draußen ja gar nicht zu?!!!
MODVOICE/MYVOICE
Debianforum Verhaltensregeln
Log Dateien? -> NoPaste

padarasa
Beiträge: 281
Registriert: 11.12.2004 13:17:10
Wohnort: Friedberg (Hessen)

Beitrag von padarasa » 17.07.2005 22:51:58

Code: Alles auswählen

$IPTABLES -A OUTPUT -p tcp --sport 22 -m state --state NEW -j ssh_gate
$IPTABLES -A OUTPUT -p tcp --sport 22 -m state --state ESTABLISHED,RELATED -j ssh_gate
Ändert leider nichts.
Savar hat geschrieben:kommst du von dem Rechner überhaupt raus? denn du lässt Verbindungen nach draußen ja gar nicht zu?!!!
Nicht, bin ich blind?

Benutzeravatar
Savar
Beiträge: 7174
Registriert: 30.07.2004 09:28:58
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von Savar » 17.07.2005 22:58:35

nee.. denn du darfst ja gar nicht raus (oder zeig mir wo das steht)

was bringt dir:

Code: Alles auswählen

$IPTABLES -A OUTPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
MODVOICE/MYVOICE
Debianforum Verhaltensregeln
Log Dateien? -> NoPaste

padarasa
Beiträge: 281
Registriert: 11.12.2004 13:17:10
Wohnort: Friedberg (Hessen)

Beitrag von padarasa » 17.07.2005 23:01:53

Savar hat geschrieben:nee.. denn du darfst ja gar nicht raus (oder zeig mir wo das steht)

was bringt dir:

Code: Alles auswählen

$IPTABLES -A OUTPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
Ich möchte später den Traffic der einzelnen chains einsehen können, das obige würde mir das verhauen.

Was ist mit

Code: Alles auswählen

$IPTABLES -A OUTPUT -p tcp --dport 22 -m state --state NEW -j ssh_gate
$IPTABLES -A OUTPUT -p tcp --dport 22 -m state --state ESTABLISHED,RELATED -j ssh_gate 

Benutzeravatar
Savar
Beiträge: 7174
Registriert: 30.07.2004 09:28:58
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von Savar » 17.07.2005 23:09:02

wenn du dich von außen auf den Rechner connecten willst, dann kommst du NIE mit dem QuellPort 22 rein (das ist nur der Zielport) und wenn du bloss Verbindung nach außen auf den Port 22 zulässt, bringt das gar nichts...


und wegen deinen chains:

Code: Alles auswählen

$IPTABLES -A OUTPUT -p tcp -m state --state ESTABLISHED,RELATED -j ssh_gate
MODVOICE/MYVOICE
Debianforum Verhaltensregeln
Log Dateien? -> NoPaste

padarasa
Beiträge: 281
Registriert: 11.12.2004 13:17:10
Wohnort: Friedberg (Hessen)

Beitrag von padarasa » 17.07.2005 23:12:11

Savar hat geschrieben:wenn du dich von außen auf den Rechner connecten willst, dann kommst du NIE mit dem QuellPort 22 rein (das ist nur der Zielport) und wenn du bloss Verbindung nach außen auf den Port 22 zulässt, bringt das gar nichts...


und wegen deinen chains:

Code: Alles auswählen

$IPTABLES -A OUTPUT -p tcp -m state --state ESTABLISHED,RELATED -j ssh_gate
ok danke, aber das obige würde doch alles in die ssh_gate chain packen, oder? Also z.B. wenn ich eine chain für ftp schreibe, haut das script mir doch den Traffic in die ssh_gate-chain rein?

Benutzeravatar
Savar
Beiträge: 7174
Registriert: 30.07.2004 09:28:58
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von Savar » 17.07.2005 23:14:31

dann mach das, was dynablaster vorgeschlagen hatte:

Code: Alles auswählen

$IPTABLES -A OUTPUT -p tcp --sport 22 -m state --state ESTABLISHED,RELATED -j ssh_gate
aber ob das auf jeden Fall funktioniert
MODVOICE/MYVOICE
Debianforum Verhaltensregeln
Log Dateien? -> NoPaste

padarasa
Beiträge: 281
Registriert: 11.12.2004 13:17:10
Wohnort: Friedberg (Hessen)

Beitrag von padarasa » 17.07.2005 23:18:18

Savar hat geschrieben:dann mach das, was dynablaster vorgeschlagen hatte:

Code: Alles auswählen

$IPTABLES -A OUTPUT -p tcp --sport 22 -m state --state ESTABLISHED,RELATED -j ssh_gate
aber ob das auf jeden Fall funktioniert
Das hatte ich schon ausprobiert, die Folge ist, dass ich wieder nicht connecten kann. Ist doch zum Haare ausreißen...

Benutzeravatar
Savar
Beiträge: 7174
Registriert: 30.07.2004 09:28:58
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von Savar » 17.07.2005 23:31:12

versuch doch mal testweise

Code: Alles auswählen

$IPTABLES -A OUTPUT -p tcp -m state --state ESTABLISHED,RELATED -j ssh_gate
zu benutzen und zu schauen ob es damit geht.. und warum hast du eigentlich DEV_INET und DEV_LAN? ist doch bei dir ein und dasselbe
MODVOICE/MYVOICE
Debianforum Verhaltensregeln
Log Dateien? -> NoPaste

Benutzeravatar
Teddybear
Beiträge: 3163
Registriert: 07.05.2005 13:52:55
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Altomünster
Kontaktdaten:

Beitrag von Teddybear » 17.07.2005 23:43:02

hallo,

mal ne kleine frage.... bin kein IPTABLES Fachmann....
aber... wieso ist immer von OUTPUT die frage.... sollte nicht ein INPUT zugelassen werden???

Laut meinen Englischkenntnissen heisst Output soviel wie nach aussen
und Input nach drinnen... wie wäre es wenn es:

# ssh
$IPTABLES -N ssh_gate
$IPTABLES -A OUTPUT -p tcp --dport 22 -m state --state NEW -j ssh_gate
$IPTABLES -A OUTPUT -p tcp --dport 22 -m state --state ESTABLISHED,RELATED -j ssh_gate
$IPTABLES -A INPUT -p tcp --sport 22 -m state --state NEW -j ssh_gate
$IPTABLES -A INPUT -p tcp --sport 22 -m state --state ESTABLISHED,RELATED -j ssh_gate
$IPTABLES -A ssh_gate -j ACCEPT

heisst????
Denn OUTPUT geht auf den DPORT
und INPUT kommt vom SPORT
oder nicht????

PS: nicht erschlagen wenn das absoluter müll ist :-)

Greetz Sascha

Benutzeravatar
Savar
Beiträge: 7174
Registriert: 30.07.2004 09:28:58
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von Savar » 18.07.2005 00:03:58

so.. ich hol schon mal den Hammer raus ;-) ..

nein du hast zwar recht, aber ganz am Anfang steht drin das er den "INPUT" zulässt.. nur muss er ja auch die Antworten von seinem SSH Server an den Client über "OUTPUT" zulassen.. und das war nicht der Fall.. und wenn es richtung "OUTPUT" geht, dann ist der SPORT == 22 und DPORT == der_port_woher_die_Anfrage_kam

/edit: "ganz am Anfang" == erste Nachricht in diesem Thema
MODVOICE/MYVOICE
Debianforum Verhaltensregeln
Log Dateien? -> NoPaste

Benutzeravatar
Teddybear
Beiträge: 3163
Registriert: 07.05.2005 13:52:55
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Altomünster
Kontaktdaten:

Beitrag von Teddybear » 18.07.2005 00:09:35

hi,

OK, OK.... ich geh schon in de Ecke...:-))

Aber mal blöde gefragt, läuft denn der sshd?? :-)
kannst du deinen rechner local per ssh connecten??

greetz Sascha

padarasa
Beiträge: 281
Registriert: 11.12.2004 13:17:10
Wohnort: Friedberg (Hessen)

Beitrag von padarasa » 18.07.2005 00:21:22

Teddybear hat geschrieben: Aber mal blöde gefragt, läuft denn der sshd?? :-)
kannst du deinen rechner local per ssh connecten??
Ohne script gehts.

Benutzeravatar
Teddybear
Beiträge: 3163
Registriert: 07.05.2005 13:52:55
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Altomünster
Kontaktdaten:

Beitrag von Teddybear » 18.07.2005 00:30:57

hi,

habe grad unter google was gefunden... wie wärs mit:
iptables -A INPUT -p tcp --dport 22 -j ACCEPT

iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT

vieleicht geht es dann??

Benutzeravatar
Savar
Beiträge: 7174
Registriert: 30.07.2004 09:28:58
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von Savar » 18.07.2005 00:34:08

ist vom Prinzip her nichts anderes.. aber versuch es doch einfach?! ..Probieren geht über studieren..
MODVOICE/MYVOICE
Debianforum Verhaltensregeln
Log Dateien? -> NoPaste

Antworten