Différences

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

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
pratique:informatique:start_serveur [08/11/2020 10:02] – [Ajouter des utilisateurs] Zatalyzpratique:informatique:start_serveur [30/05/2024 11:08] (Version actuelle) – [Xen] Zatalyz
Ligne 4: Ligne 4:
 Les commandes sont présentées pour Debian.  Les commandes sont présentées pour Debian. 
  
-===== Apt ; logiciels à installer =====+===== Installation ===== 
 +Lorsque c'est possible, les options qui font que c'est mieux... 
 + 
 +==== Partitions et LVM ==== 
 +Utiliser la puissance de LVM... En partition primaire :  
 +  * /boot = 510MB. Debian le met en ext2 par défaut (bookworm). Ni trop ni trop peu. 
 +  * /swap = 2GB. Potentiellement autant que de RAM 2GB c'est pas mal ceci dit. 
 +  * "/" = le reste qui va en réalité être en VG 
 + 
 +En LVM, faire un VG avec le reste du disque, puis faire les premiers lv : 
 +  * / = 50GB (chez moi ce VG est appelé "root"). 
 +  * /tmp = 5GB, ext4 
 + 
 +=== Mémo de commandes LVM === 
 +Plus de détail sur [[https://khaganat.net/wikhan/fr:lvm_snapshot]]. 
 + 
 +Créer un snaphshot de root (si sur le VG appelé VgPoste) :  
 +  sudo lvcreate -L 20g -s -n snap_root_$(date --iso) /dev/VgPoste/root 
 + 
 +S'il y a un souci, on revient en arrière : 
 +  sudo lvconvert --merge /dev/VgPoste/snap_root_XXX 
 + 
 +Et s'il y a un souci pour recréer un snapshot après ça, c'est : 
 +  sudo lvchange --refresh VgPoste 
 + 
 +Ne pas oublier de redémarrer après un retour en arrière sur root... 
 + 
 +Pour supprimer un volume, s'assurer qu'il est démonté, puis simplement : 
 + 
 +  lvremove /dev/NOM_VG/NOM_LV 
 + 
 +===== Apt : logiciels à installer ===== 
 +<WRAP center round info 60%> 
 +Révisé avec Bookworm. 
 +</WRAP>
  
 <code>apt update <code>apt update
-apt install nano bash-completion cron logrotate msmtp msmtp-mta apt-listbugs debsums apt-listchanges sudo+apt install nano bash-completion cron logrotate apt-listbugs debsums apt-listchanges sudo rsyslog net-tools htop iotop-c nload binutils dnsutils 
 +apt install msmtp msmtp-mta bsd-mailx sshguard git
 apt upgrade apt upgrade
 </code> </code>
 +La première ligne, un peu forcé (et certains sont déjà installés suivant les versions de debian). La seconde, ça dépend un peu des serveurs.
  
   * **nano** sauf si vous aimez vim. Si vous êtes à l'aise avec vim, il est installé de base. Sinon, nano est un éditeur de texte un peu plus facile à utiliser pour les néophytes, car les raccourcis sont affichés et son comportement est assez proche des éditeurs de textes plus classiques.    * **nano** sauf si vous aimez vim. Si vous êtes à l'aise avec vim, il est installé de base. Sinon, nano est un éditeur de texte un peu plus facile à utiliser pour les néophytes, car les raccourcis sont affichés et son comportement est assez proche des éditeurs de textes plus classiques. 
   * **bash-completion** qui peut aider (mais on va surtout modifier le .bashrc rapidement)   * **bash-completion** qui peut aider (mais on va surtout modifier le .bashrc rapidement)
   * **cron et logrotate** sont par défaut en principe, mais mieux vaut s'en assurer. [[https://doc.ubuntu-fr.org/cron|Cron]] permet de configurer des actions de façon automatique. [[https://doc.ubuntu-fr.org/logrotate|Logrotate]] évite que les logs ne saturent la mémoire. Suivre les liens pour leurs configurations.    * **cron et logrotate** sont par défaut en principe, mais mieux vaut s'en assurer. [[https://doc.ubuntu-fr.org/cron|Cron]] permet de configurer des actions de façon automatique. [[https://doc.ubuntu-fr.org/logrotate|Logrotate]] évite que les logs ne saturent la mémoire. Suivre les liens pour leurs configurations. 
-  * **msmtp et msmtp-mta** pour recevoir les mails systèmes (voir [[pratique:informatique:mail]]).+  * **bsd-mailx, msmtp et msmtp-mta** pour recevoir les mails systèmes (voir [[pratique:informatique:mail_relai]]).
   * **apt-listbugs, debsums et apt-listchanges** éviteront de mettre des paquets bugués. D'où l'upgrade après.   * **apt-listbugs, debsums et apt-listchanges** éviteront de mettre des paquets bugués. D'où l'upgrade après.
     * **apt-listbugs** prévient s'il y a des soucis     * **apt-listbugs** prévient s'il y a des soucis
Ligne 20: Ligne 56:
     * **apt-listchange**s informe des changements importants dans les paquets, par exemple les nouvelles fonctionnalités, les changements de comportement     * **apt-listchange**s informe des changements importants dans les paquets, par exemple les nouvelles fonctionnalités, les changements de comportement
   * **sudo** pour la sécurité, on va éviter de trop agir en root...   * **sudo** pour la sécurité, on va éviter de trop agir en root...
 +  * **sshguard** ajoute un peu d'ennui aux attaquants par SSH, pourquoi s'en priver ? Rien à configurer, de base ça marche.
 +  * **rsyslog** permet d'avoir des fichiers de log lisible avec systemd, sans pour autant gêner son fonctionnement de base.
 +  * **net-tools**, **htop**, **iotop-c**, **binutils**, **dnsutils** et **nload** fournissent des utilitaires fort utiles quand on croise un souci. Plus d'infos [[pratique:informatique:debug_problem|ici]]. 
  
  
Ligne 29: Ligne 68:
 Proposition : Proposition :
 <code bash /etc/apt/sources.list> <code bash /etc/apt/sources.list>
-    # Debian Buster, dépôt principal + paquets non libres +# Debian Buster, dépôt principal + paquets non libres 
-    deb http://deb.debian.org/debian/ buster main contrib non-free +deb http://deb.debian.org/debian/ buster main contrib non-free 
-    deb-src http://deb.debian.org/debian/ buster main contrib non-free +deb-src http://deb.debian.org/debian/ buster main contrib non-free 
-      + 
-    # Debian Buster, mises à jour de sécurité + paquets non libres +# Debian Buster, mises à jour de sécurité + paquets non libres 
-    deb http://deb.debian.org/debian-security/ buster/updates main contrib non-free +deb http://deb.debian.org/debian-security/ buster/updates main contrib non-free 
-    deb-src http://deb.debian.org/debian-security/ buster/updates main contrib non-free +deb-src http://deb.debian.org/debian-security/ buster/updates main contrib non-free 
-      + 
-    # Debian Buster, mises à jour "volatiles" + paquets non libres +# Debian Buster, mises à jour "volatiles" + paquets non libres 
-    deb http://deb.debian.org/debian/ buster-updates main contrib non-free +deb http://deb.debian.org/debian/ buster-updates main contrib non-free 
-    deb-src http://deb.debian.org/debian/ buster-updates main contrib non-free+deb-src http://deb.debian.org/debian/ buster-updates main contrib non-free
 </code> </code>
  
 +Éviter aussi d'installer plus que nécessaire en créant dans ''/etc/apt/apt.conf.d/'' le fichier qui va bien :
 +  sudo nano /etc/apt/apt.conf.d/00recommandperso
 +Mettre le contenu suivant : 
 +  APT::Install-Recommends "0";
 +  APT::Install-Suggests "0";
 +
 +==== Xen ====
 +Si on veut jouer avec Xen (et en sélectionnant les recommandés utiles, donc pas "tout") : 
 +  sudo apt install xen-tools xen-system-amd64 grub-xen-host qemu-utils gnupg arch-test bridge-utils qemu-system-xen shared-mime-info xdg-user-dirs
 +
 +On fait un reboot et on voit si la commande "xl list" fonctionne, sinon faut [[https://khaganat.net/wikhan/fr:xen#booter_sur_le_bon_noyauconfiguration_de_grub|bidouiller grub]].
 +
 +=== Réseau en local derrière un routeur ===
 +Le routeur gère déjà pas mal de choses, ça va être assez simple.
 +
 +Donc on gère surtout surtout ce qui entre (input) et sort (output). On peut oublier les trucs genre forward, nat, etc). 
 +
 +
 +
 +=== Réseau de base (serveur chez un hébergeur) ===
 +Là, pas de routeur en amont (même si l'hébergeur peut gérer d'autres trucs genre attaque DDoS), donc on va paramétrer la partie "NAT".
 +
 +<WRAP center round todo 60%>
 +
 +Configuration du réseau : je vais laisser l'hyperviseur gérer l'aspect pare-feu. Modifier ''/etc/sysctl.conf'' et décommentez/ajoutez la ligne suivante :
 +
 +  net.ipv4.ip_forward=1
 +
 +(Et ptet la suivante sur l'ipv6 ?).
 +
 +Pour une prise en charge immédiate des modification du fichier ''/etc/sysctl.conf'' taper la commande :
 +
 +  sysctl -p /etc/sysctl.conf
 +
 +Ensuite... faut configurer mais faut aussi que je comprenne [[pratique:informatique:parefeu:nftables|nftables]].
 +</WRAP>
  
 ===== Sécurité ===== ===== Sécurité =====
Ligne 66: Ligne 141:
 nano /home/zatalyz/.ssh/authorized_keys  nano /home/zatalyz/.ssh/authorized_keys 
 # Mettre la clé publique dans ce fichier # Mettre la clé publique dans ce fichier
-chown -R zatalyz: /home/$toto/.ssh+chown -R zatalyz: /home/zatalyz/.ssh
 chmod 0700 /home/zatalyz/.ssh/ chmod 0700 /home/zatalyz/.ssh/
 chmod 0600 /home/zatalyz/.ssh/authorized_keys</code> chmod 0600 /home/zatalyz/.ssh/authorized_keys</code>
Ligne 100: Ligne 175:
    
 PasswordAuthentication no PasswordAuthentication no
-ChallengeResponseAuthentication no+KbdInteractiveAuthentication no
 PubkeyAuthentication yes PubkeyAuthentication yes
 UsePAM yes UsePAM yes
Ligne 127: Ligne 202:
  
 <wrap warning>Testez bien la connexion avant de vous déconnecter, dans un autre terminal ! Un mauvais paramétrage peut vous empêcher d'accéder à votre serveur !</wrap> <wrap warning>Testez bien la connexion avant de vous déconnecter, dans un autre terminal ! Un mauvais paramétrage peut vous empêcher d'accéder à votre serveur !</wrap>
 +
 +==== Autres logiciels de sécurité ====
 +=== Rkhunter ===
 +<WRAP center round info 100%>
 +rkhunter (pour Rootkit Hunter) est un programme qui essaye de détecter les rootkits, portes dérobées et exploits. Pour cela, il compare le hash SHA256, SHA512, SH1 et MD5 des fichiers importants avec les hash connus, qui sont accessibles à partir d'une base de données en ligne. Il alerte également l'utilisateur lorsqu'il trouve des permissions qu'il juge anormales, des fichiers cachés, des chaînes suspectes dans le kernel etc.
 +
 +De par l'exhaustivité des tests qu'il effectue, et à cause du nombre de systèmes sur lesquels il tourne, rkhunter renvoie généralement de nombreux avertissements. L'analyse de ces avertissements (warnings) nécessite une bonne connaissance des systèmes Unix. Dans une écrasante majorité des cas, ces avertissements sont bénins et peuvent être ignorés.
 +
 +Source : [[https://doc.ubuntu-fr.org/rkhunter|Ubuntu-fr]]
 +</WRAP>
 +J'ai souvenir qu'il est effectivement bavard. Et aussi que ce n'est pas une sécurité en soi, juste un outil permettant de détecter certains problèmes. 
 +
 +  sudo apt install rkhunter
 +
 +On le configure un chouia :
 +
 +  sudo nano /etc/rkhunter.conf
 +
 +Modifier les options suivantes pour qu'elles aient ces valeurs : 
 +
 +<code>
 +UPDATE_MIRRORS=1
 +MIRRORS_MODE=0
 +#WEB_CMD="/bin/false"
 +ALLOWHIDDENDIR=/etc/.git
 +ALLOWHIDDENDIR=/dev/.lxc
 +ALLOWHIDDENDIR="/dev/.udev"
 +ALLOWHIDDENDIR="/dev/.static"
 +ALLOWDEVFILE="/dev/.udev/rules.d/root.rules"
 +PKGMGR=DPKG
 +ALLOW_SSH_PROT_V1=0
 +</code>
 +
 +Après ces modifications, exécuter ceci : 
 +  rkhunter -C
 +  rkhunter --propupd
 +
 +Modifier aussi ''/etc/default/rkhunter''.
 +<code>CRON_DAILY_RUN="true"
 +CRON_DB_UPDATE="true"
 +APT_AUTOGEN="yes"</code>
 +
 +Quand à envoyer un mail quotidien... ça fait du bruit, qu'il se passe un truc ou non. Et il faut configurer l'envoi de mail.
 +
 +On se fait un petit test en mettant à jour l'ensemble puis en affichant juste ce qui est avec des warnings : 
 +<code>rkhunter --update
 +rkhunter --list
 +rkhunter -c --rwo</code>
 +
 +=== Fail2ban/Reaction et Pare-feu (iptables, nftable, ipset, etc) ===
 +Tout est noté dans un article à part, parce que ça commençait à être long : [[pratique:informatique:parefeu:start]].
 +
 +
 +
 +
 +
 +===== Grub =====
 +<WRAP center round todo 60%>
 +Attention, chez OVH (et d'autres potentiellement ?) grub/le système a tendance à ne pas être sur notre noyau mis à jour. Faudrait que je retrouve les détails, mais ça finit par mettre un sacré bazar...
 +</WRAP>
 +
 +Paramétrer Grub pour qu'il ne mette pas 4 secondes à se lancer…
 +  * ''nano /etc/default/grub''
 +    * ''GRUB_TIMEOUT=1''
 +  * ''grub-mkconfig -o /boot/grub/grub.cfg''
 +
 ===== Confort personnel dans l'interface ===== ===== Confort personnel dans l'interface =====
  
Ligne 137: Ligne 278:
 Une liste de locales apparaît, cochez les FR si ce n'est pas déjà fait puis validez. Ensuite, indiquez que vous préférez utiliser utf-8, comme ça tout sera lisible. Voir aussi [[https://wiki.debian.org/fr/UTF-8|Debian et UTF8]]. Une liste de locales apparaît, cochez les FR si ce n'est pas déjà fait puis validez. Ensuite, indiquez que vous préférez utiliser utf-8, comme ça tout sera lisible. Voir aussi [[https://wiki.debian.org/fr/UTF-8|Debian et UTF8]].
  
-Pas forcément une bonne idée sur root, ceci dit : certains paquets exotiques foireux ne comprennent pas si les messages ne sont pas transmis en anglais. Je ne dis pas que ça a du sens, mais ça arrive.+Pas forcément une bonne idée sur root, ceci dit : certains paquets exotiques foireux ne comprennent pas si les messages ne sont pas transmis en anglais. Je ne dis pas que ça a du sens, mais ça arrive. Dans ce cas, favoriser de l'english AVEC UTF8 (afin de lire les accents), et paramétrez les variables pour les utilisateurs. 
 + 
 +Pour modifier juste les variables de l'utilisateur, ajoutez la ligne suivante dans le ''.bashrc''
 +  export LANG=fr_FR.UTF-8
 ==== Bashrc ==== ==== Bashrc ====
 Modifier le bashrc pour avoir une session plus agréable à utiliser. Modifier le bashrc pour avoir une session plus agréable à utiliser.
Ligne 175: Ligne 319:
   * https://help.ubuntu.com/community/CustomizingBashPrompt   * https://help.ubuntu.com/community/CustomizingBashPrompt
  
 +Et pour générer autre chose :
 +  * https://bash-prompt-generator.org/
 ==== Changer le nom de la machine ==== ==== Changer le nom de la machine ====
 Si vous avez un VPS ou un dédié, vous avez peut-être un début de ligne en console qui ressemble à "root@vps158745547". C'est moche et surtout, c'est vite fait de s'emmêler les pinceaux si vous avez plusieurs consoles ouvertes sur plusieurs VPS. Si vous avez un VPS ou un dédié, vous avez peut-être un début de ligne en console qui ressemble à "root@vps158745547". C'est moche et surtout, c'est vite fait de s'emmêler les pinceaux si vous avez plusieurs consoles ouvertes sur plusieurs VPS.
Ligne 182: Ligne 328:
   nano /etc/hostname   nano /etc/hostname
 Mettez le nom que vous voulez, pour notre exemple "MonNom.localdomain". Mettez le nom que vous voulez, pour notre exemple "MonNom.localdomain".
 +
 +Modifiez aussi ''/etc/hosts'' pour avoir quelque chose comme ceci :
 +<code>127.0.0.1 localhost
 + 127.0.0.1 MonNom.localdomain</code> 
  
 Ensuite, lancez la commande suivante si vous voulez que ça soit actif immédiatement : Ensuite, lancez la commande suivante si vous voulez que ça soit actif immédiatement :
Ligne 211: Ligne 361:
 Et le site http://ruletheweb.co.uk/figlet/ pour l'ASCII art. Et le site http://ruletheweb.co.uk/figlet/ pour l'ASCII art.
  
 +==== Améliorer un peu systemd ====
 +Voir [[pratique:informatique:systemd_error#limiter_la_taille_des_logs|là]]. 
  
CC Attribution-Noncommercial-Share Alike 4.0 International Driven by DokuWiki
pratique/informatique/start_serveur.1604826135.txt.gz · Dernière modification : 30/11/2020 10:35 (modification externe)