• Seedbox
  • [Discussion] Installer ruTorrent sur Debian 8 (nginx & php-fpm)

ex_rat wrote:Ola !
En faisant des tests pour fail2ban et en particulier pour kicker les tentatives d'identification en erreur sur rutorrent, j'ai remarqué un truc.

Le fichier rutorrent-error.log a l'air en service minimum, il ne log pas les erreurs d'identification. Peut-être en rapport avec le "crit" à la fin (erreurs critique?) bref est-ce qu'il y aurait une manière de le rendre plus bavard pour que fail2ban ait quelques choses à regarder ?
J'ai tenté "main" comme pour access.log, il a pas aimé du tout et j'ai pas pu trouver l'info.
Le fichier marche à par ça, j'ai dedans les erreurs de mes tests d'ajout de vhost et je vois bien les tentative dans access.log en 401 avec les pseudos bidon.

Au passage j'ai remarqué un autre truc dans rutorrent-access.log.
Quand on est connecté sur la box, le fichier log toute les 5 secondes 3 lignes en rapport avec 2 plugins :
200 "GET /plugins/diskspace/action.php?_=1393424512273 HTTP/1.1"
200 "POST /EXR0 HTTP/1.1"
200 "GET /plugins/cpuload/action.php?_=1393424516945 HTTP/1.1"
Du coup le log devient vite dur à visiter et ça doit faire des kilomètres de long en fin de journée...

Apparemment t'as fait un truc pour éviter de loger les appels au favicon, est-ce qu'il n'y aurait pas un moyen pour ça aussi histoire de garder un truc plus utilisable?
Ex.
je pense que ça devrait fonctionner
error_log file.log error;
si ça va pas la doc peut t'aider http://nginx.org/en/docs/ngx_core_module.html#error_log

Je modifie mon tuto si ça va bien, tu utilise la regex que j'ai mise plus haut?
XciD69 wrote:Pour ton log,
Un directive du même type que le favicon doit fonctionner,
Un truc du genre :
location ~ (plugins|EXR0) {
access_log off ;
}
A tester
humm, essaye plutôt ça
location ~* /\.(plugins|EXR0)$ {
    access_log off;
}
le rendre insensible à la casse, on n'a plus de chance que ça fonctionne bref à tester
Hum
Le \. : c'est pour catch le . Or il n'y en a pas
Le $ c'est pour dire se termine par
Donc dans ton cas tu vas "filtrer" tous ce qui se termine par .plugins et .EXR0 ça va rien prendre ^^
XciD69 wrote:Hum
Le \. : c'est pour catch le . Or il n'y en a pas
Le $ c'est pour dire se termine par
Donc dans ton cas tu vas "filtrer" tous ce qui se termine par .plugins et .EXR0 ça va rien prendre ^^
exact j'ai fais un vilain copié collé ma remarque c'était pour le ~ . Mais bon je suis pas un expert en expression régulière il faudrait que je me forme un peu dessus.
Oui c'est pour ta règle nginx-auth.
Merci à vous deux, je vais tenter de bricoler avec tout ça.
Ex.
Alors après une matinée de bataille Rongeur Vs. Nginx, un premier bilan pas glorieux, il est chatouilleux un peu !

La modif' " error_log file.log error; " marche, il log bien les identifications maintenant
Par contre il ramasse au passage un warning toute les 10 secondes dans error.log dès qu'on est connecté sur la box.

J'ai pas bien compris son problème: http://www.ratbox.nl/code/0tOjyVw0
J'ai été voir la tête du fichier en question util.php /ligne 452, mouais..... http://www.ratbox.nl/code/dfqXCCqe

Pour le soucis similaire de l'access.log, j'ai testé un million de truc sans grand résultats en tentant d'adapter la regex, y'a uniquement avec du super basic que j'arrive à faire sauter les lignes envahissantes.
En gros, y'a que ça qui marche pour l'instant :
location /plugins/ {
access_log off ;
}
Mais si les lignes disparaissent bien, dans le cas "EXR0" je perds l’accès à la box et avec "plugins" ça marche mais rutorrent n'affiche plus cpuload et diskspace avec message d'erreur dans le journal. Bref on dirait que ça lui plait pas trop qu'on lui ferme l'accès au log
Ex.
tente ca :
 location ^~ /rutorrent/plugins/ {
        include /etc/nginx/conf.d/php;
        access_log off;
        log_not_found off;
    }
Je viens de tester ca marche.
Cependant, je ne sais pas comment déclarer php qu'une fois...
effectivement ça fait le ménage, chez moi avec mon histoire de sous domaine, j'ai mon /root en /var/www/rutorrent donc j'ai adapté comme ça:
 location ^~ /plugins/ {
        include /etc/nginx/conf.d/php;
        access_log off;
        log_not_found off;
    }
par contre dans rutorrent, les deux plugins passe plus:
[27.02.2014 13:40:39] WebUI started.
[27.02.2014 13:40:41] Bad response from server: (404 [error,getratios]) File not found.
[27.02.2014 13:40:43] Échec de la récupération du contenu du dossier. - /
[27.02.2014 13:40:43] Bad response from server: (404 [error,getintervals]) File not found.
[27.02.2014 13:40:44] FILE MANAGER ignited
Je vais remettre la conf d'origine du tuto ce soir chez moi pour continuer sur une base commune, parce que pour l'instant ça complique un peu les manip'. Ce sera mieux de repartir sur du sur du /ip/rutorrent/ pour l'instant
Ex.
J'ai aussi des sous domaines et cela pose pas de pb :s
Alors c'est que je me loupe quelque part.
Bon c'est pas grave, j'ai un mental de hamster dans sa petite roue, ça marchera... Je sais pas quand... mais ça marchera !
File ta conf complète que je jette un œil
C'est sympa, j'avais tout mis ici pour autre chose : http://mondedie.fr/d/5317/6
il n'y a pas les modif' qu'on a testé dedans

Je viens de jeter un oeil, hier ou j'ai pas mal bricolé sur rutorrent, le fichier access.log fait 1300 lignes
J'imagine un jour de pluie avec 3 colocs la taille du machin le soir.
Ex.
Alors,

J'ai aussi modifié la conf initial un peu dans le même genre.

Déjà, si tu fais par sous domaines, il y a pas mal de directive qui se répètent, le mieux c'est de faire un fichier de conf avec celles-ci.


Le plus simple c'est de te décrire ma conf ^^.

base => nginx.conf
root@xcid /e/nginx# cat nginx.conf
user www-data;
worker_processes auto;

pid /var/run/nginx.pid;
events { worker_connections 1024; }

http {
    include /etc/nginx/mime.types;
    default_type  application/octet-stream;
    log_format main '$remote_addr - $remote_user [$time_local]  $status '
                    '"$request" $body_bytes_sent "$http_referer" '
                    '"$http_user_agent" "$http_x_forwarded_for"';
    access_log /var/log/access.log main;
    error_log /var/log/nginx/error.log crit;

    sendfile on;
    keepalive_timeout 20;
    keepalive_disable msie6;
    keepalive_requests 100;
    tcp_nopush on;
    tcp_nodelay off;
    server_tokens off;

    gzip on;
    gzip_buffers 16 8k;
    gzip_comp_level 5;
    gzip_disable "msie6";
    gzip_min_length 20;
    gzip_proxied any;
    gzip_types text/plain text/css application/json  application/x-javascript text/xml application/xml application/xml+rss  text/javascript;
    gzip_vary on;
    include /etc/nginx/sites-enabled/*.conf;
    ssl_certificate /etc/nginx/certs/ssl-unified.crt;
    ssl_certificate_key /etc/nginx/certs/ssl2.key;
}
Comme tu peux le voir, j'ai mis mes certificats dedans, comme ca plus besoin de les déclarer, et j'ai fais pointer vers /etc/nginx/sites-enabled/*.conf et non conf.d (question de goûts ^^)


En gros cela donne :
nginx => sites-enabled => conf.d

un exemple de sites-enabled:
server {
        listen          80;
        server_name     xcid.fr;
        rewrite         ^ https://$server_name$request_uri? permanent;

}
server {
    listen 80;
    listen 444 ssl;
    server_name xcid.fr;
    root /var/www/normal;
    include         /etc/nginx/conf.d/commons;

    access_log /var/log/nginx/rutorrent.access.log main;
    error_log /var/log/nginx/rutorrent.error.log crit;

    auth_basic "xcid";
    auth_basic_user_file "/etc/nginx/passwd/rutorrent_passwd";

    location ^~ / {
        include /etc/nginx/conf.d/php;
        include /etc/nginx/conf.d/cache;
        include /etc/nginx/conf.d/rutorrent;

    }
    location /downloads {
        autoindex on;
    }
}
La je fais référence à 4 conf.d :
include /etc/nginx/conf.d/commons;
include /etc/nginx/conf.d/php;
include /etc/nginx/conf.d/cache;
include /etc/nginx/conf.d/rutorrent;

le commons rassemble les trucs qui se répètent (index,charset, etc)
php et cache sont ceux du tutos et rutorrent, il y a toute les directives avec les sockets etc
et c'est la que j'ai mis la fameuse :
 location ^~ /rutorrent/plugins/ {
        include /etc/nginx/conf.d/php;
        access_log off;
        log_not_found off;
    }


Voila, je vais tenter de comprendre pourquoi ca marche pas sur ta conf tout de même ^^


Par exemple pour le ssl tu devrais simplement faire (avec les certificats dans nginx.conf 🙂)
server {
    listen 80;
    listen 443 ssl;
    server_name www.seedbox.ratbox.nl;
    index index.html index.php;
    charset utf-8;

    access_log /var/log/nginx/rutorrent.access.log main;
    error_log /var/log/nginx/rutorrent.error.log crit;

    error_page 500 502 503 504 /50x.html;
    location = /50x.html { root /usr/share/nginx/html; }

    auth_basic "Seedbox";
    auth_basic_user_file "/etc/nginx/passwd/rutorrent_passwd";

    location = /var/www/rutorrent/favicon.ico {
        access_log off;
        return 204;
    }

    ## début config rutorrent ##

    location ^~ / {
   root /var/www/rutorrent;
   include /etc/nginx/conf.d/php;
   include /etc/nginx/conf.d/cache;

   location ~ /\.svn {
      deny all;
   }

   location ~ /\.ht {
      deny all;
   }
    }

    location ^~ /rutorrent/conf/ {
   deny all;
    }

    location ^~ /rutorrent/share/ {
   deny all;
    }

    location /EXR0 {
        include scgi_params;
        scgi_pass 127.0.0.1:5001;
        auth_basic "Seedbox";
        auth_basic_user_file "/etc/nginx/passwd/rutorrent_passwd_exrat";
    }
    ## fin config rutorrent ##
Ça évite les doublons
ok je te remercie, je vais tenter de m'inspirer un peu de ça de mon coté
Pas mal de grouper 80 et 443 dans le même fichier parce que c'est un peu relou d'éditer partout à chaque modif...
XciD69 wrote:Hesite pas a re-partager 😛
j'ai trouvé une config pour fusionner http et https sans bug.
Je vais ajouter le dossier sites-enabled aussi ça à l'air d'être une convention.
Sur la dernière config , il y a les deux sur une conf
XciD69 wrote:Sur la dernière config , il y a les deux sur une conf 😉
oui, mais moi j'essaye de faire un tuto pour tout le monde. Et j'avais un bug avec default_server.
Cette config fonctionne avec ton ip et tous les noms de domaine qui pointe vers toi


Si quelqu'un veut bien s'y coller pour faire une refonte du tuto pour le ftp (vsftpd)
Je viens de voir

chapeau ta fais ça vite ^^


Au fait, je sais pas comment tu fais tes tests, mais il y a digitalocean, c'est des mini serveur que tu peux payer à l'heure. C'est pas mal pour faire des tests ^^

Pour le ftp moi j'ai proftpd
XciD69 wrote:Je viens de voir

chapeau ta fais ça vite ^^


Au fait, je sais pas comment tu fais tes tests, mais il y a digitalocean, c'est des mini serveur que tu peux payer à l'heure. C'est pas mal pour faire des tests ^^

Pour le ftp moi j'ai proftpd
Je suis pas arrêté à vsftpd, ce que je veux c'est une config propre avec du ftps si possible. J'aimerai virer le sftp
simple :
apt-get install proftpd
puis
echo 'DefaultRoot ~' >> /etc/proftpd/proftpd.conf
et voila