no way to compare when less than two revisions
Différences
Ci-dessous, les différences entre deux révisions de la page.
— | tutoriel:internet:auto-hebergement:start0 [2022/11/08 19:40] (Version actuelle) – créée admin | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | {{tag> | ||
+ | ====== Auto-hébergement ====== | ||
+ | |||
+ | Ce tutoriel décrit comment installer un serveur personnel complet tournant sous Debian et permettant d' | ||
+ | |||
+ | Tout sera géré en ligne de commande, à distance via SSH depuis un PC du réseau. | ||
+ | |||
+ | <WRAP center round tip 60%> | ||
+ | Mieux vaut tout mettre en place d'une traite jusqu' | ||
+ | </ | ||
+ | |||
+ | <WRAP center round important 60%> | ||
+ | **__Attention !__** | ||
+ | |||
+ | S' | ||
+ | |||
+ | La machine doit : | ||
+ | * être sécurisée, | ||
+ | * tourner en permanence (une dizaine de watts pour un Raspberry Pi) | ||
+ | et il faut y consacrer du temps, en particulier pour la maintenance. | ||
+ | </ | ||
+ | |||
+ | ===== Pré-requis ===== | ||
+ | |||
+ | * un **ordinateur** dédié à cet usage, tournant sous un OS Debian ((un vieil ordinateur, même peu puissant ou un Raspberry Pi qui consomme très peu (10 W) ; seule l' | ||
+ | * une **connexion xDSL** ((**ethernet** ou **CPL** si possible ; les débits en wifi sont insuffisants et trop fluctuants)). | ||
+ | * On peut aussi (// | ||
+ | * acheter un **nom de domaine** ou d' | ||
+ | * louer un serveur chez un hébergeur ((évite d' | ||
+ | * Un **VPS** (serveur virtuel, suffisant pour ce qu'on va installer) chez OVH revient ainsi à 5€ par mois hors taxe, 10€ par mois chez Dedibox avec un plus gros espace de stockage | ||
+ | * Un **serveur dédié**, plus puissant et sur lequel vous aurez un accès root revient à une dizaine d' | ||
+ | * un **onduleur** si l' | ||
+ | * etc. | ||
+ | |||
+ | ===== Première étape : mise en place d'un accès SSH au serveur ===== | ||
+ | |||
+ | ==== Adresse IP du serveur ==== | ||
+ | |||
+ | Pour connaître les adresses IP du serveur, voir [[fr: | ||
+ | |||
+ | ==== Mise en place du serveur SSH ==== | ||
+ | |||
+ | * Dans le cas d'un Raspberry Pi, le serveur SSH est déjà en place et fonctionnel : il suffit de s'y connecter. | ||
+ | * Pour un PC, voir [[logiciel: | ||
+ | |||
+ | ==== Connexion au serveur depuis une machine du réseau ==== | ||
+ | |||
+ | Depuis une machine du réseau, lancez : | ||
+ | * < | ||
+ | ; mot de passe demandé | ||
+ | : celui du compte // | ||
+ | ; **-p** (en minuscules) | ||
+ | : permet de spécifier le port (22 par défaut, ) | ||
+ | |||
+ | <WRAP center round info 60%> | ||
+ | Attention à ne pas confondre : pour **scp**, le port s' | ||
+ | </ | ||
+ | |||
+ | ou utilisez **Putty** sous Windows. | ||
+ | |||
+ | ===== Autres étapes ===== | ||
+ | |||
+ | Désormais, la configuration se fera via SSH, donc à distance de la machine serveur qui n'aura plus besoin d' | ||
+ | |||
+ | ==== Configuration du pare-feu ==== | ||
+ | |||
+ | On va maintenant activer et configurer le pare-feu du noyau (**iptables**) pour protéger notre serveur. | ||
+ | |||
+ | Vérifiez qu' | ||
+ | * < | ||
+ | qui va lister toutes les règles disponibles. | ||
+ | |||
+ | On va créer un script qui se lancera à chaque démarrage et définira les règles du pare-feu (iptables étant remis à zéro à chaque démarrage du serveur). | ||
+ | |||
+ | Ouvrez avec les droits d' | ||
+ | |||
+ | Rendez-le exécutable : | ||
+ | * < | ||
+ | |||
+ | et exécutez-le à chaque démarrage : | ||
+ | * < | ||
+ | |||
+ | <WRAP center round important 60%> | ||
+ | Attention, si vous configurez mal ces règles, vous risquez de ne plus pouvoir vous connecter en SSH à la machine. Une précaution minimale est d' | ||
+ | </ | ||
+ | |||
+ | On a ainsi défini une politique assez restrictive pour le pare-feu : | ||
+ | * Par défaut, tout est bloqué en INPUT, OUTPUT et FORWARD. | ||
+ | * On autorise les connexions déjà existantes | ||
+ | * et on traite les nouvelles connexions au cas par cas. | ||
+ | * Quelques limitations et protection basiques sont également ajoutées. | ||
+ | |||
+ | Lisez bien la documentation d' | ||
+ | |||
+ | Redémarrez le serveur pour vérifier qu'il n'y a aucun problème avec la configuration, | ||
+ | |||
+ | <WRAP center round tip 60%> | ||
+ | On peut aussi l' | ||
+ | |||
+ | Pour vider votre configuration iptables, il faut rentrer | ||
+ | * < | ||
+ | puis remettre les politiques par défaut par protocoles comme vous le souhaitez (par exemple < | ||
+ | </ | ||
+ | |||
+ | ==== Installation de logiciels de sécurisation supplémentaires ==== | ||
+ | |||
+ | === fail2ban === | ||
+ | |||
+ | Voir http:// | ||
+ | |||
+ | Fail2ban permet de bannir automatiquement de votre serveur des adresses IP qui échoueraient un trop grand nombre de fois à une authentification et de vous avertir par e-mail. | ||
+ | |||
+ | Installer le paquet fail2ban pour l' | ||
+ | |||
+ | Ce dernier fichier est celui qui va nous intéresser (c'est en fait le même que jail.conf mais il est prévu pour être modifié et donc pour conserver les réglages après une mise à jour du paquet). | ||
+ | |||
+ | Configuration (fichier jail.local) : | ||
+ | ^Paramètre^Commentaire^ | ||
+ | ^ignoreip|Laisser 127.0.0.1 pour que fail2ban ne bloque jamais votre propre serveur.| | ||
+ | ^bantime|Définit la durée du ban, 600 est une bonne valeur.| | ||
+ | ^maxretry|Nombre d' | ||
+ | ^destemail|Mettre ici l' | ||
+ | |||
+ | Voila pour la configuration générale. Il faut ensuite modifier les ports (si on les a modifié manuellement pour SSH par exemple) pour les faire correspondre aux ports réels, dans la section jails. Par exemple, si votre connexion SSH se fait sur le port 3134 et non sur le port 22, il faut mettre 3134 à la place de 22 dans la section jails. N' | ||
+ | |||
+ | On peut également rajouter des règles comme la règle apache-w00tw00t pour bloquer les requêtes w00tw00t. | ||
+ | |||
+ | On trouvera plus d' | ||
+ | |||
+ | Vous pourrez alors tester fail2ban en entrant volontairement un mauvais mot de passe sur une page protégée par un fichier .htaccess (après avoir installé apache) ou sur une connexion SSH. Normalement, | ||
+ | |||
+ | Note (peut-être dépassée lorsque vous lirez ceci) : il semble qu'il y ait un problème dans une regex de fail2ban pour identifier les erreurs de connexion avec postfix. Voir ce sujet sur debian-fr.org pour plus de détails et pour corriger la regex. | ||
+ | |||
+ | Liens divers : | ||
+ | |||
+ | * Utiliser fail2ban pour protéger votre application web (avec une partie sur l' | ||
+ | * Bannir les bots phpmyadmin et w00tw00t avec fail2ban | ||
+ | * la doc ubuntu-fr.org | ||
+ | |||
+ | === portsentry === | ||
+ | |||
+ | === rkhunter === | ||
+ | |||
+ | === logwatch === | ||
+ | |||
+ | ==== Quelques astuces avant d' | ||
+ | |||
+ | === Utiliser des alias pour les commandes qu'on lancera souvent === | ||
+ | |||
+ | === Completion intelligente dans le shell === | ||
+ | |||
+ | === Réglage automatique de l' | ||
+ | |||
+ | === (Putty) SSH en français === | ||
+ | |||
+ | ==== Ok, mon serveur est installé, mais comment j'y accède ? ==== | ||
+ | |||
+ | ==== Installation des services souhaités ==== | ||
+ | |||
+ | === Installation d'un serveur LAMP === | ||
+ | |||
+ | == Installation des paquets == | ||
+ | |||
+ | == Configuration d' | ||
+ | |||
+ | == Configuration de MariaDB == | ||
+ | |||
+ | == Test du serveur web/mariadb == | ||
+ | |||
+ | === Quelques services webs utiles === | ||
+ | |||
+ | == Un agrégateur de flux RSS == | ||
+ | |||
+ | == Shaarli de Sebsauvage : l' | ||
+ | |||
+ | == Wordpress : le moteur de blog == | ||
+ | |||
+ | == Owncloud : l' | ||
+ | |||
+ | == Single File PHP Gallery : Une galerie d' | ||
+ | |||
+ | == Un wiki KISS avec WiKISS == | ||
+ | |||
+ | == Roundcube / Squirrelmail : le webmail chez soi == | ||
+ | |||
+ | == FluxBB, le moteur de forum libre == | ||
+ | |||
+ | == Se passer de Google Analytics grâce à Piwik == | ||
+ | |||
+ | == L' | ||
+ | |||
+ | == Services divers == | ||
+ | |||
+ | === Utilisation de SSL avec son serveur Apache pour sécuriser les connexions === | ||
+ | |||
+ | === Installation d'un serveur Jabber pour héberger sa propre messagerie instantanée === | ||
+ | |||
+ | === Installation de Murmur (mumble-server) pour héberger son propre serveur Mumble === | ||
+ | |||
+ | === Installation d'un serveur email === | ||
+ | |||
+ | === Héberger ses propres DNS === | ||
+ | |||
+ | === Un serveur Git chez soi === | ||
+ | |||
+ | === Node.js === | ||
+ | |||
+ | === Partagez vos images avec Lutim === | ||
+ | |||
+ | === Adieu Facebook, bonjour Diaspora === | ||
+ | |||
+ | === Un remplaçant pour Google Docs === | ||
+ | |||
+ | === Mise en place d'une procédure de sauvegarde === | ||
+ | |||
+ | === Un mot sur la sécurité === | ||
+ | |||
+ | === Aller plus loin avec SSH === | ||
+ | |||
+ | === Envoyer des emails avec son serveur === | ||
+ | |||
+ | === Note à propos de FTP et de l' | ||
+ | |||
+ | === Bonus : Utiliser son nom de domaine pour repérer ses périphériques === | ||
+ | |||
+ | === Liens en vracs === | ||
+ | |||
+ | ===== Conclusion ===== | ||
+ | |||
+ | ===== Problèmes connus ===== | ||
+ | |||
+ | ===== Voir aussi ===== | ||
+ | |||
+ | * Pourquoi s' | ||
+ | * **(fr)** [[https:// | ||
+ | * **(fr)** [[http:// | ||
+ | * **(fr)** [[http:// | ||
+ | * **(fr)** [[http:// | ||
+ | * **(fr)** [[http:// | ||
+ | * **(fr)** [[https:// | ||
+ | |||
+ | ---- | ||
+ | // |