# [SOLVED] IPTABLES-Fragen, BitTorrent Azureus.

## ChrisJumper

Hallo!

Ich hab heute mal wieder mit meiner Firewall rumgespielt und bin auf Probleme gestoßen. ;)

Zum einen Funktionierte Azureus erst nachdem ich die OUTPUT Policies auf ACCEPT setzte. Aber damit möchte ich nicht lange Leben. Vielleicht wisst ihr was noch fehlt?

```
echo -e "        - Allowing access for Azureus"

$IPTABLES -I INPUT 1 -i $EXTIF --protocol tcp --tcp-flags SYN,RST,ACK SYN --dport $AZUREUS -m state --state NEW -j ACCEPT

$IPTABLES -I OUTPUT 1 -o $EXTIF --protocol tcp --tcp-flags SYN,RST,ACK SYN --sport $AZUREUS -m state --state NEW -j ACCEPT

$IPTABLES -I INPUT 1 -i $EXTIF --protocol udp --dport $AZUREUS -m state --state NEW -j ACCEPT

$IPTABLES -I OUTPUT 1 -o $EXTIF --protocol udp --sport $AZUREUS -m state --state NEW -j ACCEPT

echo -e "        - Allowing access for Bittorent"

$IPTABLES -I INPUT 2 -i $EXTIF --protocol tcp -m ipp2p --bit -j ACCEPT

$IPTABLES -I OUTPUT 2 -o $EXTIF --protocol tcp -m ipp2p --bit -j ACCEPT

$IPTABLES -I INPUT 2 -i $EXTIF --protocol udp -m ipp2p --bit -j ACCEPT

$IPTABLES -I OUTPUT 2 -o $EXTIF --protocol udp -m ipp2p --bit -j ACCEPT

```

Den unteren Teil habe ich hinzugefügt nachdem ich herausgefunden habe das der BitTorrent-Handshake von meiner vorherigen Firewallconfig (Ohne ipp2p!) Blockiert wurde.

Um dies zu verhindern habe ich extra das ipt_ipp2p-Modul installiert. Der Handshake kommt mit diesen Regeln trotzdem nicht zustande, wird aber wenigstens initialisiert. Es ist mir nicht ersichtlich in welcher Phase er abgebrochen wird. Das Ergebnis sind nach kurzer Zeit auftretende Retransmit-Meldungen. Bei wem läuft es, dessen OUTPUT-Policie ebenfalls gefiltert wird (default, DROP)?

Frage zur Sicherheit:

Mein Rechner läuft auch als NAT-Router für PCs aus meinem LAN. Das Filtern des Outputs habe ich aus einem NAT-iptables-Howto übernommen. Laut meinen Erinnerungen filtert Linux (==iptables, !paketfilter) Pakete je Interface Über die Input,Output und Forward -Chain. Will jetzt ein Paket über eth1->eth0->Router-zum-internet durchläuft ein solches Pakte doch die Ketten:

INPUT-eht1-OUTPUT--->INPUT-eth0-OUTPUT---->Router

und beim Forward lediglich:

PREROUTING-eth1-FORWARD-eth0-POSTROUTING

oder werden die INPUT/OUTPUT-Regeln auch fürs forwarding benutzt?

Wenn NAT-Pakete nicht durch die I/O-Chains laufen macht es doch wenig Sinn die OUTPUT-Pakete zu Filtern?!

Ist das dann nicht ziemlich Paranoide? Oder hindern diese Regeln jemanden "hinreichend gut" daran evtl. mein System zu kompromittieren?

Zwei Fragen zum Schluss:

1. Verwendet ihr Portknocking um eure SSH-Verbindung aufzubauen?

2. Loggt ihr Pakete die Eure Firewall Verwirft? Bzw. Blockt? Mein letzter Versuch iptables zum schreiben zu bringen war nicht erfolgreich. Doch langsam lerne ich die Flags intuitiv Lesen/verwenden.

Mfg ChrisLast edited by ChrisJumper on Fri Oct 19, 2007 11:14 pm; edited 1 time in total

----------

## Finswimmer

Auf die Schnelle, weil ich gleich weg muss:

Es gibt "--state RELATED", damit erlaubst du allen Verbindungen, die du selbst öffnest, wieder etwas hereinzuschicken und umgekehrt.

Damit sollte dein Output Problem gelöst werden.

Schau mal bei gentoo-wiki.com.

Da hatte ich damals, glaube ich, ein gutes Howto gefunden.

Tobi

----------

## think4urs11

 *ChrisJumper wrote:*   

>  Laut meinen Erinnerungen filtert Linux (==iptables, !paketfilter) Pakete je Interface Über die Input,Output und Forward -Chain. Will jetzt ein Paket über eth1->eth0->Router-zum-internet durchläuft ein solches Pakte doch die Ketten:
> 
> INPUT-eht1-OUTPUT--->INPUT-eth0-OUTPUT---->Router
> 
> und beim Forward lediglich:
> ...

 So laufen die Pakete durch die diversen Chains: http://www.linuxnetmag.com/share/issue9/iptables3.jpg

----------

## ChrisJumper

Hmmm...

Ich hab jetzt zu meinen beiden AZUREUS-Einträgen  RELATED hinzugefügt:

```
$IPTABLES -I INPUT 1 -i $EXTIF --protocol tcp --tcp-flags SYN,RST,ACK SYN --dport $AZUREUS -m state --state NEW,RELATED -j ACCEPT

$IPTABLES -I OUTPUT 1 -o $EXTIF --protocol tcp --tcp-flags SYN,RST,ACK SYN --sport $AZUREUS -m state --state NEW,RELATED -j ACCEPT

$IPTABLES -I INPUT 1 -i $EXTIF --protocol udp --dport $AZUREUS -m state --state NEW,RELATED -j ACCEPT

$IPTABLES -I OUTPUT 1 -o $EXTIF --protocol udp --sport $AZUREUS -m state --state NEW,RELATED -j ACCEPT

```

Die OUTPUT-Policie  wieder von ACCEPT auf DROP gesetzt und jetzt funktioniert nicht mehr jede Verbindung in Azureus selber. Wobei ich den Azureus ausgeschalte, und das Programm geschlossen und wieder neu gestartet habe. Somit sollte es nicht von Anhieb als ESTABLISHED Verbindung durchgehen. Diese sind bei mir generell zugelasssen.

```
$IPTABLES -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
```

Sollte ich evt. für den OUTPUT auch noch eine setzen?! Ich werde das später mal versuchen, jetzt muss ich erstmal weg.

Edit: Nachdem ich das grade versucht hab funktioniert alles einwandfrei.

Nochmal zu Azureus. mit dem RELATED Funktioniert das Verteilen der ETQW-DEMO ;) Aber nicht das verteilen von einer Torrent Datei die ich über www.onlinetvrecoder.com gezogen hab?!

Gibt es besondere Spezifikationen bei Torrent-Dateien? Evtl. eine bei der der UPLOAD von Dritten gemessen wird? Muss ich dafür vielleicht noch etwas beachten?!

LG Chris

P.s. Danke Thnk4UrS11, das Bild ist um einiges Besser als das letzte das ich gesehen hab :))

----------

