iptables und bittorrent

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
Benutzeravatar
Stefanowitsch
Beiträge: 274
Registriert: 21.09.2003 22:20:05

iptables und bittorrent

Beitrag von Stefanowitsch » 18.09.2006 04:34:41

Hallo!

Ich nutze Azureus als Bittorrent-Client. Allerdings erscheint ich immer das "firewalled"-Symbol, wenn ich mit dem Bittorrent-Netzwerk verbunden bin. Auf meinem Rechner läuft iptables als Firewall.
Die Ausgabe von iptables -L sieht so aus:

Code: Alles auswählen

Chain INPUT (policy DROP)
target     prot opt source               destination         
ACCEPT     tcp  --  anywhere             anywhere            tcp dpts:6881:6889 state NEW 
DROP       tcp  --  anywhere             anywhere            tcp flags:!FIN,SYN,RST,ACK/SYN state NEW 
ACCEPT     all  --  anywhere             anywhere            
ACCEPT     all  --  anywhere             anywhere               
DROP       icmp --  anywhere             anywhere            
ACCEPT     udp  --  anywhere             anywhere            udp spt:domain 
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED 

Chain FORWARD (policy DROP)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere            
ACCEPT     all  --  anywhere             anywhere            
ACCEPT     all  --  anywhere             anywhere
Ein iptables -L -t nat bringt Folgendes:

Code: Alles auswählen

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
Wenn ich in Azareus unter Tools->NAT/Firewall Test einen Port eingebe und dann den Test starte, erhalte ich einen "NAT Error".

Hat jemand eine Idee, wie ich das zum Laufen bekommen könnte? Danke!

Benutzeravatar
Keruskerfürst
Beiträge: 47
Registriert: 05.08.2006 15:42:07

Beitrag von Keruskerfürst » 18.09.2006 07:53:52

Es ist eigentlich gar nicht nötig für Bittorrent einen Port zu öffnen.
"Amerikas Verbündete müssen bei jedem neuen Präsidenten lernen, was für die nächsten vier oder acht Jahre das Gute und das Böse ist - ein anstrengender Prozess." (Carl Friedrich von Weizsäcker)

nepos
Beiträge: 5238
Registriert: 05.01.2005 10:08:12

Beitrag von nepos » 18.09.2006 10:52:03

Wenn der Rechner mit der Firewall Pakete weiterleitet, sprich Router spielt, musst du die entsprechenden Pakete in der FORWARD-Chain einbauen.

Benutzeravatar
Stefanowitsch
Beiträge: 274
Registriert: 21.09.2003 22:20:05

Beitrag von Stefanowitsch » 18.09.2006 15:32:57

nepos hat geschrieben:Wenn der Rechner mit der Firewall Pakete weiterleitet, sprich Router spielt, musst du die entsprechenden Pakete in der FORWARD-Chain einbauen.
Und wie sieht das dann in einer Regel aus? Ich habe es mal wie unten gezeigt probiert, das Problem bleibt aber das Gleiche.

Code: Alles auswählen

$IPTABLES -A FORWARD -p tcp --dport 6881:6889 -m state -j ACCEPT

nepos
Beiträge: 5238
Registriert: 05.01.2005 10:08:12

Beitrag von nepos » 18.09.2006 15:46:24

Dann pack mal ans Ende jeder Chain eine LOG-Regel. Dann siehst du, was haengen bleibt.

Benutzeravatar
Stefanowitsch
Beiträge: 274
Registriert: 21.09.2003 22:20:05

Beitrag von Stefanowitsch » 20.09.2006 06:15:52

Ich habe nun am Ende jeder Chain eine LOG-Regel hinzugefügt. Doch leider sehe ich gar nichts :(

Code: Alles auswählen

~> iptables -L
Chain INPUT (policy DROP)
target     prot opt source               destination         
ACCEPT     tcp  --  anywhere             anywhere            tcp dpts:6881:6889 
DROP       tcp  --  anywhere             anywhere            tcp flags:!FIN,SYN,RST,ACK/SYN state NEW 
ACCEPT     all  --  anywhere             anywhere            
ACCEPT     all  --  anywhere             anywhere            
DROP       icmp --  anywhere             anywhere            
ACCEPT     udp  --  anywhere             anywhere            udp spt:domain 
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED 
LOG        all  --  anywhere             anywhere            LOG level warning prefix `Nicht rein: ' 

Chain FORWARD (policy DROP)
target     prot opt source               destination         
ACCEPT     tcp  --  anywhere             anywhere            tcp dpts:6881:6889
LOG        all  --  anywhere             anywhere            LOG level warning prefix `Nicht durch: ' 

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere            
ACCEPT     all  --  anywhere             anywhere            
ACCEPT     all  --  anywhere             anywhere            
LOG        all  --  anywhere             anywhere            LOG level warning prefix `Nicht raus: '

Code: Alles auswählen

~> grep Nicht /var/log/syslog
~>

Benutzeravatar
duploian
Beiträge: 322
Registriert: 19.08.2003 14:20:54
Wohnort: Dresden
Kontaktdaten:

Beitrag von duploian » 20.09.2006 13:36:22

Stefanowitsch hat geschrieben:Ich habe nun am Ende jeder Chain eine LOG-Regel hinzugefügt. Doch leider sehe ich gar nichts :(
Hast Du die Ports im Router freigegeben? Bei mir unter "NAT-Ports öffnen"

Benutzeravatar
chroiss
Beiträge: 332
Registriert: 29.10.2004 09:29:43
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: BREMEN (in Wellington,NZ a.D) (in OLDENBURG a.D.) (in BREMEN a.D.) (in COLOGNE a.D.)

Beitrag von chroiss » 20.09.2006 15:59:35

zunächst einmal zum verständnis :
$IPTABLES -A FORWARD -p tcp --dport 6881:6889 -m state -j ACCEPT
das -m state ruft den statematch auf. wenn ich mich nicht irre ist es so , dass wenn du keinen state angibst der eintrag so irrelevant ist.

besser wäre :

Code: Alles auswählen

$IPTABLES -A FORWARD -i $INTDEV -o $EXTDEV -p tcp -s $QUELLIP --sport 6881:6889 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -i $EXTDEV -o $INTDEV -p tcp -d $ZIELIP --dport 6881:6889 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

somit werden neue verbindungen zugelassen und deren folgepakete.

Es wird ebenfalls nötig sein, dass du die ports preroutest , da du darüber auch vorhaben wirst etwas anzubieten:

Code: Alles auswählen

$IPTABLES -t nat -A PREROUTING -i $EXTDEV -p tcp --dport 6881 -j DNAT --to-dest $ZIELIP
$IPTABLES -t nat -A PREROUTING -i $EXTDEV -p tcp --dport 6882 -j DNAT --to-dest $ZIELIP
$IPTABLES -t nat -A PREROUTING -i $EXTDEV -p tcp --dport 6883 -j DNAT --to-dest $ZIELIP
...
...
...



gruss chroiss
"The only secure computer is one that's unplugged, locked in a safe, and buried 20 feet under the ground in a secret location... and I'm not even too sure about that one"--Dennis Huges, FBI.

Antworten