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 19:13] (Version actuelle)
Ligne 1: Ligne 1:
 +Sur cette page vous allez apprendre a mettre en place un serveur web sous distribution Linux, vous pourrez ensuite y héberger vos sites web ou ce que vous voudrez.\\
 +les commandes utilisées sur cette pages ont été utilisées sur une machine debian, donc si vous êtes sous une autre distribution il se peut que les commandes changent un peu.\\
 +L'​installation du serveur web sur cette page a été faite dans le cadre d'un projet de cours (olibrary) donc il n'est pas parfait et d'​autres solutions sont possibles, notamment si vous êtes sur une autre distribution tel que ArchLinux ou CentOS.\\
 +====== Apache2 ====== ​
 +Commençons par l'​installation d'​Apache2,​de php5 ainsi que de quelques utilitaires,​ et pour cela nous allons utiliser la commande suivante :\\
 + <​code>​aptitude install apache2 apache2-utils php5 php5-dev php5-gd</​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 Apache2.conf:​\\
 +<​code>​
 +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.
 + <​code>​
 +<​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
 +
 + # Possible values include: debug, info, notice, warn, error, crit,
 + # alert, emerg.
 + 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>​sudo a2ensite [Vhost] && /​etc/​init.d/​apache2 restart</​code>​
 +et vous obtiendrez un resultat tel quel:\\
 + <​syntaxhighlight lang="​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$ sudo /​etc/​init.d/​apache2 restart
 +[....] Restarting web server: apache2apache2:​ Could not reliably determine the server'​s fully qualified domain name, using 127.0.1.1 for ServerName
 + ... waiting apache2: Could not reliably determine the server'​s fully qualified domain name, using 127.0.1.1 for ServerName
 +. 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>​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.\\
 +Si vous avez malencontreusement installé Mysql en anglais ou autre, vous pouvez toujours modifier la langue dans le fichier /​etc/​mysql/​my.cnf
 +a la ligne:\\
 + <​code>#​language = /​usr/​share/​mysql/​malangue .</​code>​
 +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>​
 +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>​
 +# 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 config.inc.php,​ si vous l'avez pas, faites:
 +<​code>​
 +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>​
 +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 '''​Module.conf'''​ se trouvant dans '''/​etc/​proftpd'''​
 +et y ajouter ceci:
 +<​code>​
 +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>​
 +#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>​
 +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>​
 +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>​
 +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>​
 +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>​
 +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 et y ajoutant:
 +<​code>​
 +root: pi@olibrary.tk
 +support: support@olibrary.tk
 +</​code>​
 +Une fois les aliases configurés,​ on peut démarrer le serveur:
 +<​code>​
 +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>​
 +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>​
 +htpasswd -c mon/​chemin/​vers/​mon/​.htpasswd [utilisateur]
 +
 +Il nous reste plus qu'a modifier le fichier de notre VHost soit /​etc/​apache2/​sites-availables et y ajouter:
 +<​code>​
 +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>​
 +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.
 +====== Avoir son nom de domaine ====== \\
 +Si vous voulez heberger un site web sur votre serveur, c'est pas très agréable d'​avoir a taper l'​adresse ip dans la barre de recherche, donc on va voir rapidemment comment donner un nom de domaine a votre addresse IP.\\
 +Ensuite allez dans la zone DNS de votre fournisseur de nom de domaine tel que Gandi,OVH ou GoDaddy
 +et liez un nom de domaine a une addresse ip
 +
  
wiki/serveur_web.txt · Dernière modification: 2018/04/23 19: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