- Modifié
Rien d'extraordinaire par rapport au tuto de ZobraK (un grand merci à toi !

Je précise à nouveau ma configuration, c'est un serveur hébergé chez moi, avec :
- WAN : connexion fibre optique 50 Mbits/s en UP et 200 Mbits/s en DL ;
- VPN : abonnement IPVanish ;
- LAN : réseau gigabit cuivre, le serveur a deux ports réseau physiques (eth0 et eth1), tous deux connectés sur le même switch ;
- serveur : mini PC chinois avec processeur Celeron basse consommation, le tout entièrement passif. C''est la version de l'année dernière de ce PC :
Intel Celeron C1037U aluminum fanless Mini PC
- NAS : Synology DS1812+, les fichiers sont stockés dessus.
Pour le tuto, je remplace mes adresses IP par celles-ci :
- serveur, eth0 : 192.168.1.20
- serveur, eth1 : 192.168.0.1
- NAS : 192.168.1.10
J'ai commencé par suivre ce tuto (encore un grand merci à l'auteur et aux participants !) :
[Tuto] Installer ruTorrent sur Debian 8 {nginx & php-fpm}
J'ai laissé les répertoires par défaut dans .rtorrent.rc, mais j'ai créé des liens symboliques à la place des répertoires d'origine.
Point de montage :
J'ai fait un montage NFS, donc j'ai commencé par installer le paquet nfs-common sur le serveur, puis j'ai modifié /etc/fstab :
# Montage de download du NAS en NFS
192.168.1.10:/volume1/download /mnt/NAS/download nfs defaults,user,noatime 0 0
On peut également utiliser l'option noauto (user,noauto) pour interdire le montage automatique si l'on veut lancer le montage depuis un script.Si certains galèrent pour la configuration du partage NFS côté NAS (j'ai galéré ^^ et pas mal avec les droits aussi

---------------------------------------------
Sur le NAS, via la webUI :
Panneau de configuration / Services de fichiers / Service NFS / COCHER "Activer NFS"
Panneau de configuration / Dossier partagé / SELECTIONNER dossier à partager / Modifier
Autorisations NFS / Créer :
- adresse IP client NFS (ici serveur sous Debian, adresse IP du LAN, eth0, 192.168.1.20)
- Lecture/écriture
- Mappage de tous les utilisateurs sur admin
- sys (AUTH_SYS)
- Activer le mode asynchrone
Sur le NAS, en SSH, pour sécuriser les accès :/etc/hosts.allow
portmap: 192.168.1.20
lockd: 192.168.1.20
mountd: 192.168.1.20
rquotad: 192.168.1.20
statd: 192.168.1.20
/etc/hosts.deny
portmap: ALL
nfsd: ALL
mountd: ALL
---------------------------------------------Modifier les droits sur le répertoire de téléchargement visé:
chmod -R 770 /mnt/NAS/download/<répertoire_visé>/
Création de liens symboliques.Rappel :
/watch = y mettre un .torrent pour l’ajouter à rutorrent sans se connecter au site.
/torrents = dossier des torrents terminés.
/.session = dossier enregistrant les sessions rtorrent.
Se placer dans le bon dossier, normalement :
cd /home/<rtorrent_user>/
Commencer par supprimer les dossiers à remplacer par un lien symbolique, dans mon cas uniquement watch et torrents. Ça ne me dérange pas que .session reste sur le serveur. Puis :
pour watch :
ln -s /mnt/NAS/download/<répertoire_visé>/watch/ watch
pour torrents :
ln -s /mnt/NAS/download/<répertoire_visé>/ torrents
Et ça devrait être bon pour le téléchargement directement sur le NAS.
Ensuite, pour la partie qui nous intéresse plus ici, le but par rapport à ce tuto est d'utiliser l'interface eth1 à la place de l'interface virtuelle lo:1.
Je passe sur les explications qui ont déjà été données, voici mes fichiers.
/etc/openvpn/ipvanish.conf :
client
dev tun
proto udp
nobind
; pas de modification de la table de routage depuis le serveur
route-nopull
; scripts locaux pour les routes et le client torrent
script-security 2
up /etc/openvpn/up.sh
down /etc/openvpn/down.sh
; host
remote <xxxxx>.ipvanish.com 443 # <xxxxx> a remplacer par le serveur choisi
resolv-retry infinite
; authentification
persist-key
persist-tun
persist-remote-ip
ca /etc/openvpn/ca.ipvanish.com.crt # j ai place le certificat d IPVanish dans le meme repertoire
verify-x509-name <xxxxx>.ipvanish.com name # <xxxxx> a remplacer par le serveur choisi
auth-user-pass /etc/openvpn/pass # votre fichier avec login-password IPVanish
comp-lzo
verb 3
auth SHA256
cipher AES-256-CBC
keysize 256
tls-cipher TLS-DHE-RSA-WITH-AES-256-CBC-SHA:TLS-DHE-DSS-WITH-AES-256-CBC-SHA:TLS-RSA-WITH-AES-256-CBC-SHA
; Maintien de la connexion. PING envoye toutes les 10s, restart si pas de reponse pendant 60s.
keepalive 10 60
Juste après ça, ne pas oublier de modifier le fichier /etc/default/openvpn. Vous verrez 3 lignes #AUTOSTART=".....".décommentez la dernière (il faut virer le "#") et remplacez la partie entre " " par ipvanish (ne pas mettre le ".conf", OpenVPN l'ajoute automatiquement).
/etc/openvpn/pass :
<login_IPVanish>
<password_IPVanish>
et bien sûr, en root, mettre les droits 700 sur le fichier, pour sécuriser l'accès :chmod 700 /etc/openvpn/pass
/etc/openvpn/up.sh :
#!/bin/sh
killall checkVPN
sleep 2
eth1_ip="192.168.0.1" # remplacer si necessaire
vpn_port="443" # remplacer si necessaire
tcp_port="45000:65000" # remplacer si necessaire
udp_port="57832" # remplacer si necessaire
# Variables recuperees par OpenVPN : $1=tun0, $4=172.20.xxx.xxx
iptables -N SERVICES
ip route add default dev $1 table VPN
ip rule add from $eth1_ip/32 table VPN
ip rule add from $4/32 table VPN
iptables -A PREROUTING -t nat -i $1 -p tcp --dport $vpn_port -j DNAT --to $eth1_ip
iptables -A PREROUTING -t nat -i $1 -p udp --dport $vpn_port -j DNAT --to $eth1_ip
iptables -A POSTROUTING -t nat -o $1 -j MASQUERADE
iptables -A INPUT -i $1 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A SERVICES -p tcp --dport $tcp_port -j ACCEPT
iptables -A SERVICES -p udp --dport $udp_port -j ACCEPT
iptables -A FORWARD -s $eth1_ip/32 -o eth0 -j DROP
/etc/init.d/<rtorrent_user>-rtorrent restart # a modifier
/usr/bin/checkVPN &
/etc/openvpn/down.sh :
#!/bin/sh
killall checkVPN
sleep 2
/etc/init.d/<rtorrent_user>-rtorrent stop # a modifier
eth1_ip="192.168.0.1" # remplacer si necessaire
vpn_port="443" # remplacer si necessaire
tcp_port="45000:65000" # remplacer si necessaire
udp_port="57832" # remplacer si necessaire
# Variables recuperees par OpenVPN : $1=tun0, $4=172.20.xxx.xxx
iptables -D FORWARD -s $eth1_ip/32 -o eth0 -j DROP
iptables -D SERVICES -p udp --dport $udp_port -j ACCEPT
iptables -D SERVICES -p tcp --dport $tcp_port -j ACCEPT
iptables -D INPUT -i $1 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -D POSTROUTING -t nat -o $1 -j MASQUERADE
iptables -D PREROUTING -t nat -i $1 -p udp --dport $vpn_port -j DNAT --to $eth1_ip
iptables -D PREROUTING -t nat -i $1 -p tcp --dport $vpn_port -j DNAT --to $eth1_ip
ip rule del from $4/32 table VPN
ip rule del from $eth1_ip/32 table VPN
ip route del default dev $1 table VPN
/usr/bin/checkVPN :
#!/bin/bash
# PING vers www.google.com toutes les 5 min.
# Si aucun paquet n est recu on relance le VPN.
while [ 1 > 0 ]; do
sleep 300
T=`ping -I 192.168.0.1 -c 1 www.google.com |grep "packets transmitted"`
if [[ ${T:23:1} != "1" ]]
then
/etc/init.d/openvpn restart
fi
done
Je ne crois pas avoir oublié quelque chose d'important, sinon je modifierai mon post.Bonne journée !!!
