Mise en place HTTPS gratuitement pour votre site web avec startssl

SSL-Certificate-Secrity


Nous allons voir comment ajouter une couche de sécurité à votre serveur web. Vos visiteurs auront ainsi un cadenas vert lorsqu’ils accéderont à votre site. Cela prouve que la connexion entre leur pc et votre serveur est bien sécurisée par un certificat ssl.

Première étape, inscrivez-vous sur startssl puis rendez vous sur votre messagerie afin de valider votre email.

Puis connectez-vous sur startssl et allez dans Validations Wizard afin de sélectionner Domain Name validationstartssl_domain

Renseignez les informations demandées.

Dans Certificates Wizard vous pouvez désormais sélectionner Web Server SSL/TLS Certificate
startssl_webserver

Il vous est demandé si vous souhaitez générer une clé privée, cliquez sur skip.
startssl_skip

Nous allons créer notre propre clé privé afin de générer un CSR.
Remplacer <domain> par votre domaine bien sûr.

openssl genrsa -out /etc/apache2/ssl/<domain>.key 4096

Il ne faut pas perdre cette clé et il nous faut la sécuriser un minimum

chmod 400 /etc/apache2/ssl/<domain>.key

Génération du CSR grâce à la clé privée

openssl req -new -key /etc/apache2/ssl/<domain>.key -out /etc/apache2/ssl/<domain>.csr -sha256

Des questions (Code du pays, ville, etc..) vous sont posées, répondez-y.

Il faut ensuite copier le contenu du fichier généré (le <domain>.csr) et le coller là où nous étions rendus sur startssl.

Passez à l’étape suivante, le site doit vous fournir un fichier .crt ou le contenu de celui-ci que vous allez copier ici

/etc/apache2/ssl/<domain>.crt

Configuration de apache2

Nous allons modifier ces lignes dans le fichier default-ssl

ServerName <domain>
SSLCertificateFile /etc/apache2/ssl/<domain>.crt
SSLCertificateKeyFile /etc/apache2/ssl/<domain>.key

puis modifier ces lignes dans le fichier 000-default

ServerName <domain>
Redirect permanent / https://<domain>/

activer le ssl et redémarrer apache

a2ensite defaultssl
service apache2 restart

Et pour finir ajouter les certificats startssl Root CA et intermediate sur votre serveur

cd /etc/ssl
wget https://www.startssl.com/certs/ca.pem
wget https://www.startssl.com/certs/sub.class1.server.ca.pem

Installation d’une seedbox sous Debian.

rutorrent_110x110
Pour commencer ce blog, nous allons mettre en place une seedbox grâce à rutorrent. Ce tuto fonctionne aussi bien sur Debian que sur d’autres distributions linux.

Partie I – Pré-requis

Tout d’abord mettons à jour nos paquets:

apt-get update
apt-get upgrade

Il est ensuite nécessaire d’installer un serveur lamp sur lequel sera basée l’interface web rutorrent :

apt-get install apache2 php5 mysql-server libapache2-mod-php5 php5-mysql libapache2-mod-scgi

Pré-requis pour l’installation de rtorrent:

apt-get install subversion git libncurses5-dev libcurl4-openssl-dev build-essential automake libssl-dev curl libtool pkg-config libcppunit-dev proftpd

Sur debian si les paquets libcppunit-dev et libapache2-mod-sci ne sont pas trouvés, ajouter ftp2.fr.debian.org/debian à /etc/apt/sources.list

Partie II – Installation

Installation de xlmrpc

cd /tmp 
svn checkout http://svn.code.sf.net/p/xmlrpc-c/code/advanced xmlrpc-c 
cd xmlrpc-c/ 
./configure 
make 
make install

Vérifier les dernières versions sur github rtorrent

Installation de libtorrent

cd /tmp
git clone https://github.com/rakshasa/libtorrent.git
cd libtorrent
git checkout 0.13.6
./autogen.sh
./configure
make
make install

Installation de rtorrent configuré avec xlmrpc

cd /tmp
git clone https://github.com/rakshasa/rtorrent.git
cd rtorrent
git checkout 0.9.6
./autogen.sh
./configure --with-xmlrpc-c
make
make install

ldconfig

Il est possible d’installer rtorrent via les dépôts si la compilation ne fonctionne pas:

apt-get install rtorrent

Et enfin rutorrent l’interface web

cd /var/www/html
git clone https://github.com/Novik/ruTorrent.git rutorrent
chown -R www-data:www-data rutorrent

Partie III – Place à la configuration

Configuration de apache2
Voici un exemple de configuration: rutorrent.conf
Il y a juste à modifier ServerName par votre ip.
Puis placer le fichier dans

/etc/apache2/sites-available/rutorrent.conf

Il faut ensuite démarrer notre serveur web et désactiver le site par défaut:

a2enmod scgi
a2enmod auth_digest
a2dissite 000-default
a2ensite rutorrent

Configuration du serveur sftp pour récupérer les téléchargements
Dé-commenter la ligne

DEFAULT ROOT ~

dans

/etc/proftpd/proftpd.conf

Ajouter le fichier sftp.conf dans

/etc/proftpd/conf.d/


Partie IV – Ajouter un utilisateur

Pour ce qui suit, remplacer <username> par votre nom d’utilisateur

adduser <username>.

Il faut ensuite créer les répertoires nécessaires au bon fonctionnement de rtorrent:

mkdir /home/<username>/torrent/data/ -p 
mkdir /home/<username>/session
chmod 775 /home/<username>/session
chmod -R 775 /home/<username>/torrent 
 
chown root:<username> /home/<username>/session 
chown root:<username> /home/<username>/torrent -R

Il faut aller créer un fichier de configuration dans /home/<username>/.rtorrent.rc
Voici ensuite la configuration à appliquer par exemple:

rtorrent

Enregistrer le fichier et changer le propriétaire par votre utilisateur si ce n’est pas déjà le cas:

chown votreuser:votruser .rtorrent.rc

Incrémenter la ligne

scgi_port = 127.0.0.1:5000 en 127.0.0.1:5001 si c’est un second utilisateur (500x x+1 à chaque utilisateur supplémentaire)

Modifier la ligne port_range à chaque nouvel utilisateur par les 100 ports suivants environ.

Il vous faut aussi modifier la ligne session en remplaçant <username> par l’utilisateur.

Modifier le fichier

/etc/apache2/apache2.conf

pour ajouter

SCGIMount /RPC2 127.0.0.1:5000 à la fin du fichier (RPCx avec autant de x que d'utilisateurs, idem pour 500x)

Et relancer apache

service apache2 restart

Création du dossier de configuration par utilisateur

mkdir /var/www/html/rutorrent/config/users/<username> -p

Ajout du fichier config.php dans

cd /var/www/html/rutorrent/config/users/<username>/

et ajout des droits

chown -R www-data:www-data /var/www/html/rutorrent/conf/users/<username>

Sur le fichier config.php incrémenter RPCx et 500x pour chaque nouvel utilisateur comme plus haut

Créer le mot de passe pour le premier utilisateur

htdigest -c /etc/apache2/passwords "Restricted" <username>

pour les utilisateurs suivants:

htdigest /etc/apache2/passwords "Restricted" <username>

Lancer rutorrent au démarrage via un script init.d:

apt-get install screen

script <username>-rtorrent à placer dans

cd /etc/init.d/

Aux lignes Provides, NAME et USER: remplacer <username> par le nom de l’utilisateur.

# Provides: <username>-rtorrent
NAME=<username>-rtorrent
USER=<username>

Rendre ensuite le script exécutable

chmod +x <username>-rtorrent

puis

update-rc.d <username>-rtorrent defaults

Il est maintenant possible de lancer rtorrent via:

service <username>-rtorrent start

L’interface web de rutorrent est accessible via cette adresse: http://votreip/rutorrent où nous nous connectons avec les identifiants créés via htdigest plus haut.

Les fichiers téléchargés sont accessibles via un logiciel ftp client tel que filezilla ou Winscp:

Identifiant: <username>
mdp: celui créé via la commande adduser
port: 2222

Bien choisir sftp comme mode de connexion.