Installation d’un serveur LAMP

Une synthèse rapide de mon installation sur un Kimsuffi en Wheezy (aisément adaptable aux autres environnement tant hard que soft).

Préalables

On crée un utilisateur :
adduser userx
éventuellement, on peut ajouter sudo :
apt-get install sudo
adduser userx sudo

On peut installer Midnight Commander pour faciliter la gestion des fichiers :

apt-get install mc

Liens :
http://www.yann.com/fr/configurer-un-serveur-web-dedie-ovhkimsufi-sous-debian-6-19/05/2011.html
http://www.sos-dedie.com/

Installation d’un serveur Lamp

Commencer par mettre à jour le source list  (/etc/apt/sources.list) en ajoutant le dépôt « dotdeb » qui maintient les applications LAMP, soit y ajouter :

deb http://packages.dotdeb.org wheezy all
deb-src http://packages.dotdeb.org wheezy all

Puis ajouter la clé :

command wget ‘http://www.dotdeb.org/dotdeb.gpg’ \
–quiet –output-document=- \
| command apt-key add -

et mettre à jour

apt-get update
apt-get upgrade

On peut maintenant installer LAMP
apt-get install apache2 php5 mysql-server phpmyadmin mysql-client

L’URL MonDomaine.tld doit maintenant afficher la page par défaut d’Apache.

Les sites sont par défaut dans /var/www. On peut le modifier dans les paramètres généraux d’Apache, mais si on souhaite simplement en placer certains (par exemple owncloud qui nécessite un espace suffisant pour stocker les données) sur une autre partition, il suffit de créer un lien symbolique.

ln -s /var/www/site /home/site

On peut facilement tester le fonctionnement de PHP en créant un fichier test.php

nano /var/www/test.php
<?php
phpinfo();
?>

L’appel de l’URL MonDomaine.tld/test.php affichera les paramètres courants de l’installation de PHP (on veillera à supprimer ce fichier qui est trop évident pour ne pas finir par être trouvé par les multiples bots qui cherchent des failles).

Liens :
http://www.utf-dev.com/dotdeb.html
http://www.utf-dev.com/serveur-lamp.html
http://howto.biapy.com/fr/debian-gnu-linux/systeme/logiciels/configurer-les-depots-dotdeb-sur-debian
http://www.unixmen.com/install-lamp-apache-mysql-php-debian-7-wheezy/

Installation de Webmin

Webmin fournit une interface Web pour le serveur. On peut l’installer en direct :

wget http://prdownloads.sourceforge.net/webadmin/webmin_1.660_all.deb
dpkg –install webmin_1.660_all.deb

ou bien passer par le dépôt, ce qui est fortement recommandé, webmin étant une porte ouverte sur un utilisateur root et devant donc être systématiquement mis à jour. On ajoute dans le sources.list :

deb http://download.webmin.com/download/repository sarge contrib
deb http://webmin.mirror.somersettechsolutions.co.uk/repository sarge contrib

puis on ajoute la clé :

cd /root
wget http://www.webmin.com/jcameron-key.asc
apt-key add jcameron-key.asc

On peut maintenant installer Webmin

apt-get update apt-get install webmin

L’accès se fait par défaut par MonDomaine.tld:10000

Installation de Webdav

Webdav permet le partage / montage de dossiers via http. Il est natif sur Apache.

On commence par créer un dossier partagé auquel on donne les droits idoines :

mkdir /var/www/partageWebdav
chown www-data /var/www/partageWebdav

On pensera à protéger ce dossier avec un .htpasswd. Une fois le couple utilisateur:passwd créé, on met à jour les fichiers default et default-ssl d’Apache :

nano /etc/apache2/sites-available/default

soit :

<VirtualHost *:80>
(…)
# Ajout des partages webdav
<Location /partageWebdav>
    Options Indexes
    DAV On
    AuthType Basic
    AuthName « webdav »
    AuthUserFile /home/dossierPasswd/.fichierPasswd
    Require valid-user
</Location>
(…)
</VirtualHost>

On relance Apache :
service apache2 restart

On peut bien sûr déplacer le dossier ailleurs avec un lien symbolique.

Liens :
https://www.digitalocean.com/community/articles/how-to-configure-webdav-access-with-apache-on-ubuntu-12-04

Installation d’une Seedbox

L’installation d’une seedbox est élémentaire. On va utiliser transmission :

apt-get install transmission-daemon

Il faut ensuite mettre à jour le fichier /etc/transmission-daemon/settings.json. Attention, ces modifications ne seront validées que si le démon est arrêté (sinon, il se réinitialise), soit :

service transmission-daemon stop

Ce que je mets à jour :

  • download-dir : /xxx/downloads
  • incomplete-dir :/xxx/incomplete
  • rpc-whitelist : 127.0.0.1,10.8.*.*

Le plus important est le dernier. Je n’accède à la seedbox qu’à travers openvpn, je limite donc les accès aux IP correspondantes (veiller à ce que cela corresponde bien aux IP données dans le fichier de configuration d’openvpn).

Ne pas oublier de redémarrer le service :

service transmission-daemon start

Pour info sur mon Raspberry, je dois faire deux opérations supplémentaires.

Il faut bien penser à monter le disque qui recevra les données (si on en utilise un), soit ajouter dans le fichier /etc/fstab (étant alors en local, je me permets le chmod 777) :

//IP-du-disque/nomDuPartage    /home/xbian/mnt    cifs  _netdev,guest,file_mode=0777,dir_mode=0777,noperm    0    0

Créer les liens symboliques pour que les dossiers downloads et incomplete pointent sur le disque :

ln -s /media/usb/downloads /home/xbian/downloads
ln -s /media/usb/incomplete /home/xbian/incomplete

On accède à l’interface de transmission par : IP:9091 (on peut aussi modifier le port par défaut dans settings.json avec rpc-port : NumPortSouhaité). Il faudra naturellement veiller à ce que le port en question soit ouvert.

Liens :
http://www.guillaume-leduc.fr/la-seedbox-facile-sous-debian-avec-transmission.html
http://www.webupd8.org/2009/12/setting-up-transmission-remote-gui-in.html

Installation d’OpenVPN

L’installation d’OpenVPN n’est pas aussi compliquée qu’on le dit généralement et fournit un niveau de sécurité unique.

On commence par installer les paquets :

sudo apt-get install openvpn openssl

On copie le dossier easy-rsa dans le dossier d’OpenVPN et on modifie la valeur du paramètre EASY_RSA :

cd /etc/openvpn
sudo cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0 ./easy-rsa
nano /easy-rsa/vars
export EASY_RSA="/etc/openvpn/easy-rsa"

On crée ensuite les clés :

cd easy-rsa source vars ./clean-all ./pkitool --initca ln -s openssl-1.0.0.cnf openssl.cnf ./build-ca OpenVPN ./build-key-server server ./build-key client1 ./build-dh

Il est pertinent de renseigner correctement le pays (FR) et un CommonName, le reste peut être laissé par défaut.

On doit ensuite créer le fichier de configuration /etc/openvpn/openvpn.conf :

cd /etc/openvpn
touch openvpn.conf
nano openvpn.conf

En voici un exemple classique :

dev tun
proto udp 
# C'est ici qu'on choisit le port (ici la valeur par défaut) 
port 1194 
ca /etc/openvpn/easy-rsa/keys/ca.crt 
cert /etc/openvpn/easy-rsa/keys/server.crt 
key /etc/openvpn/easy-rsa/keys/server.key 
dh /etc/openvpn/easy-rsa/keys/dh1024.pem 
user nobody 
group nogroup 
# On fixe ici l'adresse du serveur 
server 10.8.0.0 255.255.255.0 
persist-key 
persist-tun 
status /var/log/openvpn-status.log 
verb 3 
client-to-client 
push "redirect-gateway def1 bypass-dhcp" 
#push "route 10.8.0.0 255.255.252.0" 
#J'utilise ici opendns, on pourra pointer sur le DNS de son choix 
push "dhcp-option DNS 208.67.222.222" 
push "dhcp-option DNS 208.67.220.220" 
#push "dhcp-option DNS 10.8.0.1" 
log-append /var/log/openvpn 
comp-lzo

On active ensuite le transfert de port. On commence par décommenter la ligne net.ipv4.ip_forward=1 (enlever le #) du fichier /etc/sysctl.conf, puis :

/proc/sys/net/ipv4/ip_forward’
iptables -t nat -A POSTROUTING -s 10.8.0.0/8 ! -d 10.8.0.0/8 -o eth0 -j MASQUERADE

La ligne iptables est nécessaire pour que le serveur OpenVPN transfère le trafic internet du client. On veillera à ce que la plage ip soit conforme au réseau et masque de sous-réseau définis dans le fichier openvpn.conf. Si on utilise une connexion wifi, on remplacera bien sûr la valeur eth0 par celle qui correspond.

On peut ajouter la fonction iptables au boot pour la préserver :

crontab -e
@reboot sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/8 ! -d 10.8.0.0/8 -o eth0 -j MASQUERADE

On va maintenant se préoccuper du client. On commence par créer le fichier de configuration monserveur.ovpn :

cd /etc/openvpn/easy-rsa/keys
nano monserveur.ovpn

dont voici un exemple :

dev tun 
client 
proto udp 
remote IP-DU-SERVEUR 1194 
resolv-retry infinite 
nobind 
persist-key 
persist-tun 
ca ca.crt 
cert client1.crt 
key client1.key 
comp-lzo 
verb 3

On crée ensuite l’archive que l’on enverra au client :

tar czf openvpn-keys.tgz ca.crt ca.key client1.crt client1.csr client1.key monserveur.ovpn

Il suffit de récupérer l’archive depuis le client (avec un scp par exemple, attention alors aux droits), puis de la décompresser dans le dossier de son choix. Il ne faudra naturellement pas oublier d’installer le client OpenVPN sur l’ordinateur client. On se connectera par un simple openvpn monserveur.ovpn.

On terminera en relançant le serveur :

service openvpn start

Si l’on doit réinstaller suite à une réinitialisation du serveur, on peut se contenter après l’installation des paquets, de recopier le dossier openvpn sauvegardé. Cela permet de préserver les certificats et de ne pas avoir à reconfigurer le client.

Liens :
http://raspberrypi-hacks.com/29/

Leave a Reply

Your email address will not be published.