Autoriser rtorrent dans firewall avec iptable sur serveur debian

seba-th Messages postés 131 Statut Membre -  
cocoche95 Messages postés 1187 Statut Contributeur -
Bonjour,

J'ai un serveur sur internet avec rtorrent et rutorrent ,et je voudrais protéger ce serveur avec un firewall, celui ci fonctionne bien sauf pour rtorrent, une fois que le firewall est actif tout mes torrent passent en erreur, pourtant je pense avoir autoriser tout les ports nécessaires.

Voici tout le fichier de conf du firewall:


########## Regles ##########

# Autoriser loopback
iptables -t filter -A INPUT -i lo -j ACCEPT
iptables -t filter -A OUTPUT -o lo -j ACCEPT

# Autoriser le ping
iptables -t filter -A INPUT -p icmp -j ACCEPT
iptables -t filter -A OUTPUT -p icmp -j ACCEPT

# Autoriser SSH
iptables -t filter -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 22 -j ACCEPT

#Autoriser rtorrent
iptables -t filter -A INPUT -p tcp --dport 5000 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --sport 5000 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 6881:6999 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --sport 6881:6999 -j ACCEPT


Est ce que quelqu'un peu m'aider svp? Merci d'avance :)

12 réponses

  1. cocoche95 Messages postés 1187 Statut Contributeur 543
     
    Hello,

    Ajoutez les règles suivantes tout en haut de votre script :

    iptables -t filter -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
    iptables -t filter -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
    0
    1. seba-th Messages postés 131 Statut Membre
       
      Bonjour,

      Je viens d'essayer et ça ne fonctionne pas :( (je ne l'ai pas dit au dessus mais je n'ai pas su mettre tout le fichier de conf du firewall), si vous avez une autre idée je suis prenneur :)
      0
  2. cocoche95 Messages postés 1187 Statut Contributeur 543
     
    Pouvez-vous exécuter la commande
    iptables-save
    et copier le résultat ici.

    Insérer également le fichier rtorrent.rc.

    Merci.
    0
    1. seba-th Messages postés 131 Statut Membre
       
      avec le firewall activé ou désactivé?
      0
    2. cocoche95 Messages postés 1187 Statut Contributeur 543
       
      Activé.
      0
  3. seba-th Messages postés 131 Statut Membre
     
    # Generated by iptables-save v1.4.14 on Fri Jan 31 08:15:45 2014
    *filter
    :INPUT DROP [20:3271]
    :FORWARD DROP [0:0]
    :OUTPUT DROP [74:4780]
    -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
    -A INPUT -i lo -j ACCEPT
    -A INPUT -p icmp -j ACCEPT
    -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
    -A INPUT -p tcp -m tcp --dport 5000 -j ACCEPT
    -A INPUT -p tcp -m tcp --dport 6881:6999 -j ACCEPT
    -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
    -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
    -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
    -A INPUT -p tcp -m tcp --dport 25 -j ACCEPT
    -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
    -A OUTPUT -o lo -j ACCEPT
    -A OUTPUT -p icmp -j ACCEPT
    -A OUTPUT -p tcp -m tcp --dport 22 -j ACCEPT
    -A OUTPUT -p tcp -m tcp --sport 5000 -j ACCEPT
    -A OUTPUT -p tcp -m tcp --sport 6881:6999 -j ACCEPT
    -A OUTPUT -p tcp -m tcp --dport 80 -j ACCEPT
    -A OUTPUT -p tcp -m tcp --dport 443 -j ACCEPT
    -A OUTPUT -p tcp -m tcp --dport 25 -j ACCEPT
    COMMIT
    # Completed on Fri Jan 31 08:15:45 2014

    Voilà :)
    0
    1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      Salut,

      cocoche95 a écrit :
      Insérer également le fichier rtorrent.rc.
      La demande n'était pas facultative ;-\
      0
    2. seba-th Messages postés 131 Statut Membre
       
      scgi_port = 127.0.0.1:5000
      directory = /var/www/rutorrent/share

      session = /var/www/rutorrent/session

      Voici, j'avais oublier déso :)
      0
    3. cocoche95 Messages postés 1187 Statut Contributeur 543
       
      Ok, merci.

      Bon si j'en crois le site de rtorrent, les ports utilisés par défaut sont :
      - 6890-6999 en UDP pour se connecter aux trackers
      - 6881 en UDP pour le DHT (trackerless torrents)

      A la vue de votre config ça ne peux pas marcher car vous ouvrez uniquement le protocole TCP.

      Ajoutez les lignes suivantes :

      iptables -t filter -A INPUT -m udp -p udp --dport 6881:6999 -j ACCEPT
      iptables -t filter -A OUTPUT -m udp -p udp --dport 6881:6999 -j ACCEPT

      Normalement, ça devrait arranger un peu les choses.
      0
  4. cocoche95 Messages postés 1187 Statut Contributeur 543
     
    Et du coup, ça marche ou pas ???
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. seba-th Messages postés 131 Statut Membre
     
    Non, ça ne fonctionne toujours pas :(
    0
    1. cocoche95 Messages postés 1187 Statut Contributeur 543
       
      Pouvez-vous exécuter la commande
      netstat -nlptu
      pendant que rtorrent tourne (depuis 5min) et la mettre ici ?

      Autre question, où est votre serveur ? I.e. derrière une box ou direct sur le net ?
      0
    2. seba-th Messages postés 131 Statut Membre
       
      Voici:
      Connexions Internet actives (seulement serveurs)
      Proto Recv-Q Send-Q Adresse locale Adresse distante Etat PID/Program name
      tcp 0 0 0.0.0.0:6957 0.0.0.0:* LISTEN 2448/rtorrent
      tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 3056/apache2
      tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 2550/sshd
      tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 2798/master
      tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 3056/apache2
      tcp 0 0 0.0.0.0:6940 0.0.0.0:* LISTEN 5961/rtorrent
      tcp 0 0 127.0.0.1:5000 0.0.0.0:* LISTEN 5961/rtorrent
      tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 2396/mysqld
      tcp6 0 0 :::22 :::* LISTEN 2550/sshd
      udp 0 0 0.0.0.0:68 0.0.0.0:* 2503/dhclient
      udp 0 0 0.0.0.0:18891 0.0.0.0:* 2503/dhclient
      udp6 0 0 :::38428 :::* 2503/dhclient
      0
    3. seba-th Messages postés 131 Statut Membre
       
      ah je n'avais pas vu l'autre partie de la question, c'est une serveur dédié sur internet.
      0
    4. cocoche95 Messages postés 1187 Statut Contributeur 543
       
      Comme on peut le voir, il écoute sur les ports TCP 6957 et 6940. Il n'écoute pas sur des ports fixes ...

      Pouvez-vous récupérer le fichier rtorrent.rc sur ce lien et le mettre dans le répertoire
      /etc
      en le modifiant (pour les lignes qui étaient dans votre fichier original). Il faudra également décommenter les lignes
      #port_range = 6890-6999
      et
      # dht_port = 6881
      .

      Pour décommenter, enlever le #. Une fois tout cela fait, redémarrer rtorrent et refaire un "netstat". Regarder, qu'il utilise les bons ports d'écoute.
      0
  7. seba-th Messages postés 131 Statut Membre
     
    Voilà, je viens de faire tout mais je ne comprend pas pourquoi vous voulez que je mette le fichier .rtorrent.rc dans /etc?

    voici le résultat du netstat:

    Connexions Internet actives (sans serveurs)
    Proto Recv-Q Send-Q Adresse locale Adresse distante Etat
    tcp 0 0 localhost:5000 localhost:38597 TIME_WAIT
    tcp 0 0 localhost:5000 localhost:38612 TIME_WAIT
    tcp 0 0 localhost:5000 localhost:38613 TIME_WAIT
    tcp 0 432 195.154.11.116:ssh xxxxxxxxx:51209 ESTABLISHED
    tcp 0 0 localhost:5000 localhost:38596 TIME_WAIT
    tcp 0 0 localhost:5000 localhost:38611 TIME_WAIT
    tcp 0 0 localhost:5000 localhost:38610 TIME_WAIT
    tcp 0 0 localhost:5000 localhost:38593 TIME_WAIT
    tcp 0 0 localhost:5000 localhost:38603 TIME_WAIT
    tcp 0 0 localhost:5000 localhost:38598 TIME_WAIT
    tcp 0 0 localhost:5000 localhost:38617 TIME_WAIT
    tcp 0 0 localhost:5000 localhost:38614 TIME_WAIT
    tcp 0 0 localhost:5000 localhost:38608 TIME_WAIT
    tcp 0 0 localhost:5000 localhost:38600 TIME_WAIT
    tcp 0 0 localhost:5000 localhost:38616 TIME_WAIT
    tcp 0 0 localhost:5000 localhost:38605 TIME_WAIT
    tcp 0 0 localhost:5000 localhost:38607 TIME_WAIT
    tcp 0 0 localhost:5000 localhost:38609 TIME_WAIT
    tcp 0 0 localhost:5000 localhost:38592 TIME_WAIT
    tcp 0 0 localhost:5000 localhost:38615 TIME_WAIT
    tcp 0 0 localhost:5000 localhost:38591 TIME_WAIT
    tcp 0 0 localhost:5000 localhost:38594 TIME_WAIT
    tcp 0 0 localhost:5000 localhost:38595 TIME_WAIT
    tcp 0 0 localhost:5000 localhost:38606 TIME_WAIT
    tcp 0 0 localhost:5000 localhost:38604 TIME_WAIT
    tcp 0 0 195.154.11.116:ssh xxxxxxxxx:51071 ESTABLISHED
    tcp 0 0 localhost:5000 localhost:38599 TIME_WAIT
    tcp 0 0 195.154.11.116:https xxxxxxxxx:51419 ESTABLISHED
    tcp 0 0 localhost:5000 localhost:38601 TIME_WAIT
    tcp 0 0 localhost:5000 localhost:38602 TIME_WAIT
    tcp 0 0 localhost:5000 localhost:38590 TIME_WAIT
    udp 0 0 195.154.11.116:46554 81.27.192.20:ntp ESTABLISHED
    udp 0 0 195.154.11.116:37338 37.139.24.95:ntp ESTABLISHED
    udp 0 0 195.154.11.116:59931 88.191.120.99:ntp ESTABLISHED
    udp 0 0 195.154.11.116:33321 176.31.118.131:ntp ESTABLISHED
    udp 0 0 195.154.11.116:39598 194.57.169.1:ntp ESTABLISHED
    udp 0 0 195.154.11.116:57029 91.121.60.158:ntp ESTABLISHED
    udp 0 0 195.154.11.116:50960 46.4.28.250:ntp ESTABLISHED
    udp 0 0 195.154.11.116:36661 88.191.228.144:ntp ESTABLISHED
    udp 0 0 195.154.11.116:52085 203.178.141.29:ntp ESTABLISHED
    udp 0 0 195.154.11.116:52089 143.210.16.201:ntp ESTABLISHED
    udp 0 0 195.154.11.116:38847 46.29.176.115:ntp ESTABLISHED
    udp 0 0 195.154.11.116:39936 37.187.7.160:ntp ESTABLISHED
    udp 0 0 195.154.11.116:43067 88.191.228.173:ntp ESTABLISHED
    udp 0 0 195.154.11.116:57550 88.191.227.26:ntp ESTABLISHED
    udp 0 0 195.154.11.116:43222 85.91.1.180:ntp ESTABLISHED
    udp 0 0 195.154.11.116:52677 91.121.223.107:ntp ESTABLISHED
    Sockets du domaine UNIX actives(sans serveurs)
    Proto RefCnt Flags Type State I-Node Chemin
    unix 2 [ ] DGRAM 5049 /var/spool/postfix/dev/log
    unix 14 [ ] DGRAM 5047 /dev/log
    unix 2 [ ] DGRAM 222950
    unix 3 [ ] STREAM CONNECTE 222853
    unix 3 [ ] STREAM CONNECTE 222852
    unix 2 [ ] DGRAM 222851
    unix 2 [ ] DGRAM 221195
    unix 2 [ ] DGRAM 221169
    unix 3 [ ] STREAM CONNECTE 221090
    unix 3 [ ] STREAM CONNECTE 221089
    unix 2 [ ] DGRAM 221088
    unix 2 [ ] DGRAM 42167
    unix 2 [ ] DGRAM 6666
    unix 3 [ ] STREAM CONNECTE 6648
    unix 3 [ ] STREAM CONNECTE 6647
    unix 3 [ ] STREAM CONNECTE 6645
    unix 3 [ ] STREAM CONNECTE 6644
    unix 3 [ ] STREAM CONNECTE 6642
    unix 3 [ ] STREAM CONNECTE 6641
    unix 3 [ ] STREAM CONNECTE 6639
    unix 3 [ ] STREAM CONNECTE 6638
    unix 3 [ ] STREAM CONNECTE 6636
    unix 3 [ ] STREAM CONNECTE 6635
    unix 3 [ ] STREAM CONNECTE 6633
    unix 3 [ ] STREAM CONNECTE 6632
    unix 3 [ ] STREAM CONNECTE 6630
    unix 3 [ ] STREAM CONNECTE 6629
    unix 3 [ ] STREAM CONNECTE 6627
    unix 3 [ ] STREAM CONNECTE 6626
    unix 3 [ ] STREAM CONNECTE 6624
    unix 3 [ ] STREAM CONNECTE 6623
    unix 3 [ ] STREAM CONNECTE 6621
    unix 3 [ ] STREAM CONNECTE 6620
    unix 3 [ ] STREAM CONNECTE 6618
    unix 3 [ ] STREAM CONNECTE 6617
    unix 3 [ ] STREAM CONNECTE 6615
    unix 3 [ ] STREAM CONNECTE 6614
    unix 3 [ ] STREAM CONNECTE 6612
    unix 3 [ ] STREAM CONNECTE 6611
    unix 3 [ ] STREAM CONNECTE 6609
    unix 3 [ ] STREAM CONNECTE 6608
    unix 3 [ ] STREAM CONNECTE 6606
    unix 3 [ ] STREAM CONNECTE 6605
    unix 3 [ ] STREAM CONNECTE 6603
    unix 3 [ ] STREAM CONNECTE 6602
    unix 3 [ ] STREAM CONNECTE 6600
    unix 3 [ ] STREAM CONNECTE 6599
    unix 3 [ ] STREAM CONNECTE 6597
    unix 3 [ ] STREAM CONNECTE 6596
    unix 3 [ ] STREAM CONNECTE 6594
    unix 3 [ ] STREAM CONNECTE 6593
    unix 3 [ ] STREAM CONNECTE 6591
    unix 3 [ ] STREAM CONNECTE 6590
    unix 3 [ ] STREAM CONNECTE 6588
    unix 3 [ ] STREAM CONNECTE 6587
    unix 3 [ ] STREAM CONNECTE 6585
    unix 3 [ ] STREAM CONNECTE 6584
    unix 3 [ ] STREAM CONNECTE 6582
    unix 3 [ ] STREAM CONNECTE 6581
    unix 3 [ ] STREAM CONNECTE 6579
    unix 3 [ ] STREAM CONNECTE 6578
    unix 3 [ ] STREAM CONNECTE 6576
    unix 3 [ ] STREAM CONNECTE 6575
    unix 3 [ ] STREAM CONNECTE 6573
    unix 3 [ ] STREAM CONNECTE 6572
    unix 3 [ ] STREAM CONNECTE 6570
    unix 3 [ ] STREAM CONNECTE 6569
    unix 3 [ ] STREAM CONNECTE 6568
    unix 3 [ ] STREAM CONNECTE 6567
    unix 3 [ ] STREAM CONNECTE 6565
    unix 3 [ ] STREAM CONNECTE 6564
    unix 3 [ ] STREAM CONNECTE 6563
    unix 3 [ ] STREAM CONNECTE 6562
    unix 2 [ ] DGRAM 6541
    unix 2 [ ] DGRAM 6020
    unix 3 [ ] STREAM CONNECTE 5854
    unix 3 [ ] STREAM CONNECTE 5853
    unix 2 [ ] DGRAM 5848
    unix 2 [ ] DGRAM 5624
    unix 3 [ ] STREAM CONNECTE 5346
    unix 3 [ ] STREAM CONNECTE 5345
    unix 2 [ ] DGRAM 5250
    unix 3 [ ] DGRAM 3391
    unix 3 [ ] DGRAM 3390
    0
    1. cocoche95 Messages postés 1187 Statut Contributeur 543
       
      Désolé, l'habitude des fichiers de conf ... Il faut bien le mettre dans
      ~/.rtorrent.rc
      .

      Pour la commande "netstat", je voulais dire avec les options utilisées précédement :
      netstat -nlptu
      .
      0
    2. cocoche95 Messages postés 1187 Statut Contributeur 543
       
      Pour information, cette commande ('netstat -nlptu') sert à lister tous les ports TCP et UDP en écoute (mode serveur) avec les processus associés.
      0
    3. seba-th Messages postés 131 Statut Membre
       
      Voilà c'est fait :

      Connexions Internet actives (seulement serveurs)
      Proto Recv-Q Send-Q Adresse locale Adresse distante Etat PID/Program name
      tcp 0 0 0.0.0.0:6896 0.0.0.0:* LISTEN 3281/rtorrent
      tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 2834/sshd
      tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 2716/master
      tcp 0 0 127.0.0.1:5000 0.0.0.0:* LISTEN 3281/rtorrent
      tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 2387/mysqld
      tcp 0 0 0.0.0.0:6987 0.0.0.0:* LISTEN 2431/rtorrent
      tcp6 0 0 :::80 :::* LISTEN 1902/apache2
      tcp6 0 0 :::22 :::* LISTEN 2834/sshd
      tcp6 0 0 :::443 :::* LISTEN 1902/apache2
      udp 0 0 0.0.0.0:64040 0.0.0.0:* 2787/dhclient
      udp 0 0 0.0.0.0:52810 0.0.0.0:* 3281/rtorrent
      udp 0 0 0.0.0.0:68 0.0.0.0:* 2787/dhclient
      udp 0 0 0.0.0.0:54421 0.0.0.0:* 3281/rtorrent
      udp 0 0 0.0.0.0:46232 0.0.0.0:* 3281/rtorrent
      udp 0 0 0.0.0.0:50542 0.0.0.0:* 3281/rtorrent
      udp6 0 0 :::33305 :::* 2787/dhclient
      0
  8. cocoche95 Messages postés 1187 Statut Contributeur 543
     
    Ok, ça avance !

    Comme on peux le voir, rtorrent écoute sur les ports TCP 6896 et 6987. Ports qui sont dans le range autorisé par iptables (6890 à 6999).

    On peut également voir que rtorrent écoute sur les ports UDP 52810, 54421, 46232 et 50542. Se sont des ports ouverts aléatoirement. Deux solutions, ça marche donc on touche plus ou ça marche pas et il faut trouver un moyen de fixer un range pour ces ports là afin d'en autoriser l'utilisation dans le firewall.

    Donc es-ce que ça marche ?
    0
  9. seba-th Messages postés 131 Statut Membre
     
    Non, ça ne fonctionne toujours pas
    0
    1. cocoche95 Messages postés 1187 Statut Contributeur 543
       
      Ok, pouvez-vous rajouter une ligne dans le fichier de conf de rtorrent :
      port_random=no
      après la définition du range de port - comme expliqué ici.
      0
    2. seba-th Messages postés 131 Statut Membre
       
      Voilà, je refais un netstat? ça ne fonctionne pas encore.
      0
      1. cocoche95 Messages postés 1187 Statut Contributeur 543 > seba-th Messages postés 131 Statut Membre
         
        Ok, bon je vous propose de mettre en pause. Je vais faire un serveur pour avoir une configuration fonctionnelle et je vous mettrai le résultat ici. Je suis pas trop dispo les jours qui arrivent, je vais essayer de faire ça la semaine prochaine (plutôt fin de semaine).
        0
    3. seba-th Messages postés 131 Statut Membre
       
      Ok merci bien, pas souci je ne suis pas pressé :)
      0
  10. Confisus
     
    Salut,

    Télécharge Gufw,

    http://packages.debian.org/fr/squeeze/gufw

    Et ne fais pas trop confiance aux iptableurs, science très diffuse, voire confuse.
    0
  11. seba-th Messages postés 131 Statut Membre
     
    Salut,

    Est ce que gufw fonctionne sur Debian?
    0
    1. Confisus
       
      Essaye, vu qu'ils le proposent pourquoi pas.
      0
  12. cocoche95 Messages postés 1187 Statut Contributeur 543
     
    Re,

    Bon j'ai un peu cherché mais le résultat n'est pas bon. En fait 'rtorrent' ne permet pas de fixer les ports utilisés pour se connecter aux peers. Le seul range de port que l'on peut fixer est celui en écoute (les autres se connectent chez nous).

    Du coup, on ne peux pas utiliser iptables de façon viable car c'est impossible de savoir à l'avance, quel port sera utilisé par le logiciel pour se connecter à l'extérieur et donc l'ouvrir (via iptables).

    Deux solutions : changer de client torrent et en trouver un qui permet de fixer les ports à l'écoute et au téléchargement. Ou, utiliser le module 'owner' de iptables pour filtrer (pas sur du résultat) : créer un utilisateur rtorrent et lancer le logiciel avec ce user. Dans iptables, on filtre avec une commande du genre :
    iptables -t filter -A OUTPUT -m owner --uid-owner 1001 -j ACCEPT
    (où 1001 est l'uid système de l'utilisateur rtorrent) ...

    Pas très secure non plus, vu que l'utilisateur rtorrent peut tout ouvrir dans le range 1024 - 65535 !

    Voilà.
    0
  13. seba-th Messages postés 131 Statut Membre
     
    Merci beaucoup pour ces explications, je regarderais pour un autre client alors :)

    Merci pour ton aide :)
    0
    1. cocoche95 Messages postés 1187 Statut Contributeur 543
       
      De rien ! ;-)
      0