Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

wiki:serveur.web [2018/04/23 17:13] (Version actuelle)
Ligne 1: Ligne 1:
 +====== LAMP ======
 +===== Apache2 =====
 +Commençons par l'​installation d'​Apache2,​de php5 ainsi que de quelques utilitaires,​ et pour cela nous allons utiliser la commande suivante :\\
 +debian:
 + <​code bash>​aptitude install apache2 apache2-utils php5 php5-dev php5-gd</​code>​\\
 +centos:
 +<code bash>​sudo yum install httpd mysql-server php php-mysql</​code>​
 +FreeBSD:
 +<code bash>
 +#On se rend dans le dossier port de apache
 +cd /​usr/​ports/​www/​apache24/​
 +#on choisit les modules qu'on installe avec apache
 +make config-recursive
 +#on compile et on installe
 +make install clean
 +#noobway
 +pkg install apache24 mysql56-server-5.6.25 php56-5.6.11 mod_php56-5.6.11
 +#on oublie pas de rajouter apache a notre fichier /​etc/​rc.conf
 +echo "​apache24_enable='​Yes'">/​etc/​rc.conf
 +</​code>​
 +Si vous voulez mettre en place des virtual hosts, d'​autres actions vont devoir êtres effectuées.\\
 +Afin de pouvoir les créer nous allons rajouter ces quelques lignes dans le fichier ///​etc/​apache2/​apache2.conf//:​\\
 +<code apache>
 +NameVirtualHost * 
 +Include conf.d/​*.conf
 +Include /​etc/​phpmyadmin/​apache.conf
 +Include /​etc/​apache/​sites-enabled
 +</​code>​
 +Si vous êtes sous Debian, vous aurez a créer dans le dossier ///​etc/​apache2/​sites-availables//​ un fichier de conf suivant ce modèle.
 +Sinon, on peut créer le Vhost directement dans le fichier ///​etc/​apache24/​httpd.conf//​
 + <​code apache>
 +<​VirtualHost *:80>
 + ServerAdmin webmaster@localhost
 +        ServerName www.monserver.com
 + DocumentRoot /var/www
 + <​Directory />
 + Options FollowSymLinks
 + AllowOverride None
 + </​Directory>​
 + <​Directory /​var/​www/>​
 + Options Indexes FollowSymLinks MultiViews
 + AllowOverride None
 + Order allow,deny
 + allow from all
 + </​Directory>​
  
 + ScriptAlias /cgi-bin/ /​usr/​lib/​cgi-bin/​
 + <​Directory "/​usr/​lib/​cgi-bin">​
 + AllowOverride None
 + Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
 + Order allow,deny
 + Allow from all
 + </​Directory>​
 + ErrorLog ${APACHE_LOG_DIR}/​error.log
 + LogLevel warn
 +
 + CustomLog ${APACHE_LOG_DIR}/​access.log combined
 +</​VirtualHost>​
 +</​code>​
 +<​VirtualHost*:​80>:​pour dire que l'on ne filtre pas les adresses et que le Vhost sera sur le port 80\\
 +avec pour ServerName : votre nom de domaine\\
 +et pour DocumentRoot : l'​endroit sur votre serveur ou se trouve votre site (par défaut /​var/​www).\\\\
 +Suite a la création de ce fichier il suffit de l'​activer et de redémarrer le serveur apache avec la commande suivante:
 + <​code bash>​sudo a2ensite [Vhost] && /​etc/​init.d/​apache2 restart</​code>​
 +et vous obtiendrez un resultat tel quel:\\
 + <​code bash >
 +vincent@Vincent:/​etc/​apache2/​sites-available$ sudo a2ensite monsite.conf
 +Enabling site monsite.conf.
 +To activate the new configuration,​ you need to run:
 +  service apache2 reload
 +vincent@Vincent:/​etc/​apache2/​sites-available$ /​etc/​init.d/​apache2 restart
 +[....] Restarting web server: apache2
 +. ok 
 +</​code>​
 +===== Mysql ======
 +Passons maintenant a l'​installation de Mysql qui sera notre système de bases de données, et pour cela, rien de plus simple, il vous suffis de lancer la commande:
 + <​code bash>​aptitude install mysql-server php5-mysql</​code>​
 +Suivez tout bêtement l'​installation de Mysql, juste rentrez le mot de passe de votre future session root Mysql et gardez le bien au chaud, vous en aurez rapidement besoin.\\
 +Enfin, il reste plus qu'a modifier le fichier mysql_secure_installation et d'​activer ou désactiver ce que vous voulez et enfin, à tester si votre installation Mysql fonctionne
 +<code bash>
 +vincent@Vincent:/​etc/​apache2/​sites-available$ mysql -u root -p
 +Enter password: ​
 +Welcome to the MySQL monitor. ​ Commands end with ; or \g.
 +Your MySQL connection id is 37
 +Server version: 5.5.38-0+wheezy1 (Debian)
 +
 +Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
 +
 +Oracle is a registered trademark of Oracle Corporation and/or its
 +affiliates. Other names may be trademarks of their respective
 +owners.
 +
 +Type '​help;'​ or '​\h'​ for help. Type '​\c'​ to clear the current input statement.
 +
 +mysql>
 +</​code>​
 +si vous avez ça qui s'​affiche c'est que tout fonctionne.
 +Il ne vous reste plus qu'a créer vos bases de données.
 +===== PhpMyAdmin =====
 +Maintenant que Mysql est installé et que nous sommes pas très chauds pour travailler en ligne de commande on va installer PhpMyAdmin qui sera notre interface pour gérer nos bases de données depuis le navigateur web.\\
 +Pour l'​installation , c'est aussi facile que pour Mysql, il vous suffira de taper la commande suivante:\\
 +<code bash>
 +# apt-get install phpmyadmin
 +</​code>​
 +suivez l'​installation et au moment ou il vous demande ​ quel serveur web vous utilisez, repondez apache2\\
 +Une fois tout ça fait, redémarrez le serveur apache avec la commande vue au dessus.
 +Une fois installé, quelques modifications sont encore a faire dans le fichier ///​usr/​share/​phpmyadmin/​config.inc.php//,​ si vous l'avez pas, faites:
 +<code bash>
 +mv config.sample.inc.php config.inc php
 +</​code>​
 +ensuite ajoutez une phrase a votre blowfish_secret qui vous permettra de garder votre nom d'​identifiant dans le champ sur l'​interface phpmyadmin.
 +<​syntaxhighlight lang="​php">​
 +$cfg['​blowfish_secret'​] = '​masuperphrasemagique';​
 +</​code>​
 +et vous pouvez si vous le souhaitez dé-commentez toutes les options un peut plus bas dans le fichier en dessous de " /* Storage database and tables */ "
 +===== FTP =====
 +Passons maintenant a l'​installation de notre application FTP.\\
 +Et pour cela nous allons utiliser ProFTPD\\
 +Pour cela, et comme pour les applications installées auparavant, une ligne de commande et ça s'​installe.
 +<code bash>
 +sudo aptitude install proftpd proftpd-mod-mysql ​
 +</​code>​
 +Une fois Proftpd installé, vient la configuration:​\\
 +Pour commencer au niveau de la configuration,​ on va modifier le fichier ///​etc/​proftpd/​module.conf//​
 +et y ajouter ceci:
 +<code apache>
 +LoadModule mod_sql.c
 +LoadModule mod_mysql.c
 +</​code>​
 +Une petite sécurité en plus est a prévoir pour éviter que cet utilisateur se ballade dans les dossiers
 +précédant dans lesquels il est pas sensé aller,il suffit juste d'​ajouter(ou de-commenter) la ligne suivante
 +dans le fichier protfp.conf:​
 +<code apache>
 +#use this to jail all users in their homes
 +DefaultRoot ~
 +</​code>​
 +===== Messagerie =====
 +Avant tout, pour utiliser postfix, créez un utilisateur ainsi qu'un groupe\\
 +Pour l'​installation du serveur mail nous avons besoins de prérequis tel que gnupg, g++, make, libdb-dev
 +on installe tout ça avec la commande suivante:
 +<code bash>
 +sudo aptitude install g++ make gnupg libdb-dev
 +wget ftp://​ftp.easynet.be/​postfix/​official/​postfix-2.7.2.tar.gz
 +</​code>​
 +Puis téléchargez postfix avec cette commande:
 +<code bash>
 +sudo wget ftp://​ftp.easynet.be/​postfix/​official/​postfix-2.7.2.tar.gz
 +</​code>​
 +On extrait ensuite notre archive de postfix dans le dossier /​usr/​local\\
 +Et on compile et on installe avec les commandes suivantes.
 +<code bash>
 +make makefiles CCARGS='​-DDEF_CONFIG_DIR=\"/​usr/​local/​postfix/​etc\"'​
 +make
 +make install
 +</​code>​
 +Une fois l'​installation terminer, on va modifier la variable d'​environnement $PATH des utilisateurs pour
 +simplifier l'​utilisation de Postfix , pour ça on va utiliser la commande suivante:
 +<code bash>
 +echo -e"​postfix=/​usr/​local/​postfix/​bin:/​usr/​local/​postfix/​sbin\nPATH=\$PATH:​\$postfix"​ >> /​etc/​profile
 +</​code>​
 +Maintenant que postfix est installé on va s'​occuper de la configuration en editant le fichier principal de
 +configuration:​ main.cf qui se trouve dans /​usr/​local/​postfix/​etc et y ajouter les lignes suivantes:
 +<code apache>
 +inet_interfaces=all #précise l'​adresse sur laquelle postfix écoute, on aurait pu mettre une adresse ip
 +mydomain=monnomdedomaine.com #précise le nom de domaine sur lequel pointe postfix
 +</​code>​
 +Avant de démarrer le service, il nous faut gérer les alias, en d'​autres termes relier une adresse mail à un
 +utilisateur du serveur. On se déplace dans// /​usr/​local/​postfix//​ et on édite le fichier aliases en y ajoutant:
 +<code apache>
 +root: pi@olibrary.tk
 +support: support@olibrary.tk
 +</​code>​
 +Une fois les aliases configurés,​ on peut démarrer le serveur:
 +<code bash>
 +postfix start
 +</​code>​
 +===== Sécurité =====
 +Mise en place de l'​authentification par htacces qui empechera les utilisateurs non autorisés a venir sur notre page.\\
 +Pour cela on crée le fichier .htaccess dans lequel on met les informations suivantes:
 +<code apache>
 +AuthType Basic #type d'​authentification(basic,​anonyme,​digest)
 +AuthName "​Restricted Access"​ #message affiché sur la fenêtre
 +AuthUserFile "​mon/​chemin/​vers/​mon/​.htpasswd"​ #endroit ou se trouve le fichier .htpasswd
 +Require user "​root"​ #​l'​utilisateur avec lequel se connecter
 +</​code>​
 +Ensuite, une fois notre fichier htaccess configuré, il nous faut creer et remplir le fichier .htpasswd qui contiendra les différents utilisateurs ainsi que leur mot de passe pour se connecter sur le htaccess\\
 +Pour cela on va utiliser la commande suivante:
 +<code bash>
 +htpasswd -c mon/​chemin/​vers/​mon/​.htpasswd [utilisateur]
 +</​code>​
 +Il nous reste plus qu'a modifier le fichier de notre VHost soit /​etc/​apache2/​sites-availables et y ajouter:
 +<code apache>
 +AllowOverride All
 +exemple:
 +<​Directory /​var/​www/>​
 + AllowOverride None
 + Order allow,deny
 + allow from all
 +</​Directory>​
 +</​code>​
 +Passons maintenant a Fail2Ban qui sera notre utilitaire pour empecher tout bruteforce de connection au serveur.
 +Pour cela, on va l'​installer avec la commande suivante:
 +<code bash>
 +sudo aptitude install fail2ban
 +</​code>​
 +ensuite il vous suffis de modifier le fichier ///​etc/​fail2ban/​jail.conf//​ ou vous pourrez parametrer certains criteres tel que les ports a surveiller,​le service, la durée de ban, le nombre d'​essais avant ban ou autres.
wiki/serveur.web.txt · Dernière modification: 2018/04/23 17:13 (modification externe)
CC0 1.0 Universal
Powered by PHP Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0 Valid HTML5