Aller au contenu
Vie du geek le forum entre geek
dokkun

Installation d'un serveur web complet sous Debian 7 - OpenLiteSpeed, MariaDB, Varnish et CSF

Messages recommandés

Bonjour à vous,
 
Après quelques expérimentations et mes installations sur iBuild, je me suis dis qu'il serait temps de partager ce que j'appelle une configuration de serveur web complète, performante et optimisé.

Tout d'abord en temps que serveur web, nous n'allons pas prendre Litespeed Standard ou Entreprise, la version standard est trop limité et pour la version entreprise faut avoir un porte-monnaie solide, on va donc prendre la version OpenSource, OpenLitespeed.

 
Prologue : Explications sur les logiciels utilisés.

OpenLiteSpeed est une version libre et gratuite de LiteSpeed Web Server, fondée sur l'idée d'adopter une optique proche de celle de Nginx tout en assurant une configuration simple depuis une interface graphique mais aussi en supportant la syntaxe du rewriting d'Apache (mais ne supporte pas le fichier .htaccess), Litespeed possède sa propre version de PHP (PHP LSAPI) qui est 20% plus performante que PHP-FPM et 50% plus performante que mod_php.

 
MariaDB est une version largement optimisé et puissante de MySQL maintenu par le père fondateur de MySQL : Michael Widenius, pour me croire, il suffit de vous dire que MariaDB est utilisé par Wikipédia, Google et bien évidemment iBuild, le plus gros avantage c'est finalement que vous n'êtes plus dépendant de Sun Microsystems et sa politique digne de celle de Facebook (rachat, rachat, vite!), il est parfaitement compatible avec les bases de données MySQL, ce n'est qu'un remplacement de MySQL, tout ce qui marche sous MySQL marche sous MariaDB.
 
Varnish est un cache très puissant généralement couplé avec Nginx, il permet un chargement très rapide des pages, cependant peu pratique pour un environnement de développement puisqu'il met en cache la moindre des ressources et cela d'une manière assez agressive (il existe des moyens de vider le cache Varnish qu'on abordera)

CSF ou ConfigServer Security & Firewall (avouer que CSF c'est mieux) est un pare-feu logiciel puissant et gratuit, il permettra de gérer quelques attaques SYN et de bloquer une bonne partie du portflood ou encore de gérer les ports qui seront ouverts ou non, cependant, il ne remplace pas un Anti-DDOS et est là de manière préventive.

 
1. Installation des logiciels.
 
AVERTISSEMENT : Toutes les commandes exécutés sont faites en temps que root, si vous n'avez pas accès au root, merci d'utiliser sudo.
 
A. OpenLiteSpeed Web Server :
 
Installation des dépendances requises :
 
​ Cette partie contient aussi des dépendances spécifiques à la compilation de OpenLiteSpeed, PHP et de quelques extensions et logiciels, pour installer les dépendances requises pour OpenLiteSpeed, il suffit d'entrer cette commande :


 

apt-get -y install build-essential zlib1g-dev openssl libcurl4-openssl-dev libpcre3 libpcre3-dev libexpat1-dev curl sendmail-bin sendmail nano build-essential check install zip libgeoip-dev




Installation et compilation d'OpenLiteSpeed :
 
Nous admettons dans ce tutoriel que la dernière version est la 1.3, merci de consulter le site web http://open.litespeedtech.com/ afin de récupérer la dernière archive (actuellement : la version 1.3 est la dernière)
 
Nous allons tout d'abord récupérer l'archive dans le dossier /tmp et l'extraire dans le même dossier :


 

cd /tmp
wget http://open.litespeedtech.com/packages/openlitespeed-1.3.tgz
tar -xzf openlitespeed-*.tgz




Nous allons maintenant procéder à la compilation, normalement, sous Debian Wheezy avec les dépendances installées précédemment, il ne devrait pas y avoir de problème, si jamais vous avez une erreur de compilation, merci de laisser un message sur ce topic :


 

cd openlitespeed-*
./configure
make && make install




Une fois la compilation faite, il vous suffira de rentrer cette commande pour démarrer Litespeed :



 

service lsws start
cd ~



Si l'installation a été faite sans problème, vous devriez pouvoir accéder au serveur depuis http://votreserveur:8088/ et obtenir cette page :
 


dpnx.png

 

Normalement, le panel de gestion de Litespeed est lui aussi opérationnel à l'adresse https://votreserveur:7080/ avec les identifiants admin et le mot de passe 123456, si cela marche, vous devriez obtenir ce panel :
 


0pD2cCe.png

 
Litespeed est maintenant opérationnel, nous verrons la configuration ainsi que la compilation de PHP plus tard.

B. MariaDB :
 
On ajoute tout d'abord le dépôt de MariaDB sur notre machine Debian Wheezy :



 

apt-get install python-software-properties
apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db
add-apt-repository 'deb http://mirrors.linsrv.net/mariadb/repo/10.0/debian wheezy main’
apt-get update




On procède ainsi à l'installation de MariaDB, il vous sera demandé un mot de passe, choisissez un mot de passe sécurisé et complexe puisque ce mot de passe sera celui de l'user root MySQL :



 

apt-get install mariadb-server libmariadbclient-dev




Cette commande installe aussi la librairie MariaDBclient-dev qui remplace la librairie MySQL pour la compilation de PHP par exemple.
 
C. Varnish :
 
On ajoute le dépôt de Varnish ainsi que sa clé GPG :



 

curl http://repo.varnish-cache.org/debian/GPG-key.txt | apt-key add -
echo "deb http://repo.varnish-cache.org/debian/ wheezy varnish-4.0" >> /etc/apt/sources.list
apt-get update




Une seule commande suffit pour installer Varnish :



 

apt-get install varnish




Varnish est prêt mais il n'est pas encore configuré, nous aborderons cela dans la prochaine étape du tutoriel wink.png
 
D. CSF :
 
On retourne encore une fois dans le dossier /tmp et on récupère l'archive de CSF (et évidemment on la décompresse) :


 

rm -fv csf.tgz
wget http://www.configserver.com/free/csf.tgz
tar -xzf csf.tgz



On va maintenant dans notre dossier csf fraichement décompressé et on lance le script d'installation :



 

cd csf
./install.sh




CSF est opérationnel, nous allons très bientôt s'attaquer à la configuration wink.png
 
2. Configuration des logiciels.
 
On ne commencera pas dans l'ordre d'installation puisque certains logiciels comme CSF peuvent interférer avec le bon fonctionnement de certains logiciels utilisant certains ports.

A. CSF :
 
Pour simplifier au maximum ce tutoriel, je vais vous fournir un fichier de configuration totalement prêt et optimisé pour un serveur web, voici les caractéristiques :

  • Accepte les connexions TCP entrantes (IPv4 ou v6) sur les ports : 20,21,22,25,53,80,110,143,443,465,587,993,995,3306,7080,8088
  • Accepte les connexions TCP sortantes (IPv4 ou v6) sur les ports : 20,21,22,25,53,80,110,113,443,3306,7080,8088
  • Accepte les connexions UDP entrantes (IPv4 ou v6) sur les ports : 20,21,53,3306
  • Accepte les connexions UDP sortantes (IPv4 ou v6) sur les ports : 20,21,53,113,123
  • Refuse toutes autres connexions TCP ou UDP n'étant pas listé plus haut
  • Autorise le ping entrant, avec un maximum de requête de 1req/sec.
  • Autorise le ping sortant.
  • Protection SYN FLOOD activé par défaut, ralenti la vitesse des requêtes (désactiver SYNFLOOD = "1", si vous n'avez pas besoin de la protection pour le moment), limite de 100req/s 
  • Pas plus de 20 connexions simultanées ou concurrentes par IP, filtrage des requêtes sur port 80, 8088, 7080
  • Protection UDP FLOOD activé par défaut, aucun effet sur les requêtes, limite de 100req/s.
  • Enregistrement des blocages, bannissement ainsi que des limites de connexion et des SYN/UDP Flood.
  • Blocage définitif des IPs récidivistes.
  • Protection en cas de tentative de bruteforce (pas plus de 5 échec de connexion au port SSH).
  • Aucune limite de pays (vous pouvez bloquer des ports ou laisser accéder des pays à des ports)
  • Blocage des IPs en cas de DDoS
  • Traçage des utilisateurs/ip/machines activé.

C'est une liste non-exhaustive, vous pouvez configurer d'autres paramètres.

J'ai largement simplifié la tache, vous n'avez qu'à entrer ceci dans votre terminal pour remplacer votre configuration de CSF :





 

cd /etc/csf/
rm csf.conf
wget https://gist.githubusercontent.com/Maxime-BHA/f48b77efeb3f001a024a/raw/eac0538de0249d0b6d0eba3338b24968effe8dac/csf.conf


Vous n'avez plus qu'à recharger CSF et le redémarrer et le tour est joué :


 

csf -r
service csf restart 




Si vous souhaitez éditer de vous même la configuration de CSF, vous pouvez la trouver sur ce lien, il vous suffira simplement de remplacer le fichier csf.conf qui se trouve dans /etc/csf/ et de recharger et redémarrer CSF comme expliqué plus haut.

B. Varnish :
 
Varnish est déjà installé, il faut maintenant le configurer pour qu'il mette en cache le contenu de Litespeed qui se trouve sur le port 8088, nous allons donc éditer/ouvrir le fichier default.vcl :
 



 

nano /etc/varnish/default.vcl




Une fois dans le fichier remplacer :



 

backend default {
    .host = "127.0.0.1";
    .port = "8080";
}




Par ceci :


 

backend default {
    .host = "127.0.0.1";
    .port = "8088";
}




Vous l'avez compris, nous venons juste de changer le port où Varnish va chercher les fichiers.

Problème.. quand vous allez sur votre site, vous ne voyez toujours rien (au port 80), en effet, Varnish est encore configuré sur le port 6081, nous allons donc éditer le fichier de configuration (/etc/default/varnish) pour faire en sorte que Varnish pointe sur le port 80 et non le port 6081, commençons :
 



 

nano /etc/default/varnish





Une fois dans le fichier, chercher la ligne ## ALTERNATIVE 2, Configuration with VCL et remplacer :



 

DAEMON_OPTS="-a :6081 




Simplement par le port 80 :



 

DAEMON_OPTS="-a :80 




Il vous suffit maintenant de redémarrer Varnish avec cette commande :



 

service varnish restart




Varnish est installé, configuré et techniquement, si vous n'avez rien changé, vous devriez voir la page de Litespeed :
 


dpnx.png

 

C. MariaDB :
 
Tout comme pour CSF, je vais vous simplifier au maximum la tache et vous donner une configuration déjà prête, je passe les caractéristiques techniques pour celle-ci, voici la commande à entrer :


 


cd /etc/mysql/
rm my.cnf
wget https://gist.githubusercontent.com/Maxime-BHA/ef72669d0397c34dc2a4/raw/89d988317fc8cdfd28382e8f54b15b1788f9aa57/my.cnf
 

Ensuite, il suffit de redémarrer votre serveur MariaDB :




 

service mysql restart

 

 



D. OpenLiteSpeed :
 
Nous allons tout d'abord compiler PHP, dans ce tutoriel, nous utiliserons PHP 5.5.9, mais tout d'abord, nous devons installer les dépendances de PHP, aucun problème :



apt-get -y build-dep php5
apt-get -y install libfcgi-dev libfcgi0ldbl libjpeg62-dbg libmcrypt-dev libssl-dev libxml2-dev
 



Une fois les dépendances installées, vous avez deux choix, la compilation manuelle (pour les vrais) ou la compilation semi-automatique (pour les faux).

La compilation pour les faux (semi-automatique, on abordera que celle-ci dans ce tutoriel) :

Il faut aller dans votre panel Litespeed à l'adresse http://votreserveur:7080/, connectez-vous avec vos identifiants (par défaut, utilisateur : admin, mot de passe : 123456),

 
Une fois sur le panel, vous devriez voir dans le menu l'onglet "Actions" et dans ce même onglet, vous devriez voir "Compile PHP" :

 

RGvfqMb.png

 

Si vous êtes vraiment aveugle, allez simplement à cette url http://votreserveur:...hp/buildPHP.php (remplacer quand même votreserveur par l'adresse de votre serveur hein..), vous aurez ainsi une page vous proposant de choisir votre version de PHP, pour ma part ce sera PHP 5.5 :


besq.png

 

La prochaine page est celle-ci :
 


MEq33Ds.png
 

Maintenant que vous êtes sur cette page, supprimer tout ce qui est dans la zone "Configure Parameters" et mettez les lignes suivantes (ne pas cocher la case eAccelerator):


 
 


 


'--with-litespeed' '--with-zlib-dir' '--with-freetype-dir' '--enable-cgi' '--enable-mbstring' '--with-libxml-dir=/usr' '--enable-soap' '--enable-calendar' '--with-curl' '--with-mcrypt' '--with-zlib' '--with-gd' '--disable-rpath' '--enable-inline-optimization' '--with-bz2' '--with-zlib' '--with-zip' '--enable-sockets' '--enable-sysvsem' '--enable-sysvshm' '--enable-pcntl' '--enable-mbregex' '--with-mhash' '--with-tidy' '--with-pcre-regex' '--with-mysql' '--with-pdo-mysql' '--with-mysqli' '--with-jpeg-dir=/usr' '--with-png-dir=/usr' '--enable-gd-native-ttf' '--with-openssl' '--with-libdir=lib64' '--with-libxml-dir=/usr' '--enable-exif' '--enable-dba' '--with-gettext' '--enable-shmop' '--enable-sysvmsg' '--enable-wddx' '--with-kerberos' '--enable-bcmath' '--enable-ftp' '--enable-intl' '--enable-soap=shared' '--with-pspell'

 




​Il vous suffira de cliquer sur Build PHP5.5.9 et vous aurez la page suivante :
qoRFbew.png
 
Une fois que le Main Status est **PREPARE_DONE**, vous pouvez cliquer sur Next, vous allez tomber sur la page de compilation qui demande tout de même d'accéder au SSH et faire cette commande :


 


 

/usr/local/lsws/phpbuild/buildphp_manual_run.sh

 

 



La compilation démarrera automatiquement en arrière-plan, vous pouvez voir le log détaillé tout en bas de la page :
 
kEF7XWc.png
 
Une fois la compilation finie, il vous suffira de faire un Graceful Restart depuis le menu action, ou de redémarrer Litespeed en méthode Robot :


 

service lsws restart

 
 


MAGIE :
UF9XnFq.png
 
Pour accéder à vos fichiers, il suffit de vous rendre dans /usr/local/DEFAULT/html/ et de mettre le contenu de votre site web.

Ce tutoriel n'aborde aucunement la configuration avancé ainsi que celles des virtualhosts et l'installation de PHPMyAdmin sous LiteSpeed, nous aborderons cela dans un tutoriel qui sortira très prochainement.

 
Je vous remercie de m'avoir lu.
 
 
Installation d'un serveur web complet sous Debian 7 - OpenLiteSpeed, MariaDB, Varnish et CSF deMaximeBHA est mis à disposition selon les termes de la licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 4.0 International.
Fondé(e) sur une œuvre à http://ibuild.fr/ind...varnish-et-csf/.

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant

×