====== Serveur stg.tetaneutral.net ====== ===== Caractéristiques ===== * Gigabyte Brix * CPU Celeron, 4GB RAM * Samsung SSD 840 EVO 120GB * Debian 7 amd64 ===== Traces Install ===== A partir d'une clé USB bootable Debian 7 amd64 ==== Options d'installation ==== * hostname initial : stg2 (changé en stg par la suite) * partman : partition par defaut sur tout le disque sda * grub : par défaut, sur sda * tasksel : decocher interface graphique et cocher serveur ssh * popcon : non ==== Premières configs ==== # Dépendances requises apt-get install sudo vlan conntrack ntp fail2ban # Utilitaires apt-get install rsync vim emacs23-nox iftop htop screen ntpdate powertop molly-guard sysstat strace tcpdump update-alternatives --config editor #-> choisir vim.basic # Création de tous les users adduser nicolas sudo adduser ludovic adduser ludovic sudo # [...] * Modification du /root/.bashrc pour dé-commenter les alias et les couleurs ==== Modification du partitionnement ==== * Une meilleure option était de faire directement le bon paramétrage avec l'assistant partman de l'installeur Debian root@stg2:~# smartctl -a /dev/sda Device Model: Samsung SSD 840 EVO 120GB [...] root@stg2:~# fdisk -l /dev/sda Disque /dev/sda : 120.0 Go, 120034123776 octets 255 têtes, 63 secteurs/piste, 14593 cylindres, total 234441648 secteurs Unités = secteurs de 1 * 512 = 512 octets Taille de secteur (logique / physique) : 512 octets / 512 octets taille d'E/S (minimale / optimale) : 512 octets / 512 octets Identifiant de disque : 0x000b8647 Périphérique Amorce Début Fin Blocs Id Système /dev/sda1 * 2048 19531775 9764864 83 Linux /dev/sda2 19533822 234440703 107453441 5 Étendue /dev/sda5 19533824 28186623 4326400 82 partition d'échange Linux / Solaris /dev/sda6 28188672 234440703 103126016 83 Linux * Sauver le contenu de /home * Démonter /home (ne pas avoir son shell dedans...) * Restaurer le contenu de la sauvegarde dans /home (donc dans la partition racine) * Détruire la partition correspondante. Idem pour le swap. * Créer une partition primaire de la taille de l'espace restant pour /var root@stg2:~# fdisk -l /dev/sda Disque /dev/sda : 120.0 Go, 120034123776 octets 255 têtes, 63 secteurs/piste, 14593 cylindres, total 234441648 secteurs Unités = secteurs de 1 * 512 = 512 octets Taille de secteur (logique / physique) : 512 octets / 512 octets taille d'E/S (minimale / optimale) : 512 octets / 512 octets Identifiant de disque : 0x000b8647 Périphérique Amorce Début Fin Blocs Id Système /dev/sda1 * 2048 19531775 9764864 83 Linux /dev/sda2 19531776 234441647 107454936 83 Linux * Virer /home et swap dans le fstab * Rebooter (pour prise en compte des partitions) * Formatter /dev/sda2 en ext4 * Copier /var dedans * Mettre à jour le fstab (sda2 -> var) * Reboot ==== Tuning SSD ==== * Options de montage ext4 dans fstab : errors=remount-ro,noatime,discard,commit=300 * Scheduler deadline de manière persistante \\ (confère le fichier /etc/udev/rules.d/60-ssd-scheduler.rules) * Swapiness minimal (le OOM killer sera + sensible mais pas d'IO dans tous les sens) \\ (confère le fichier /etc/sysctl.d/ssd.conf) ==== Autres paramètres kernel ==== * Éviter de logguer les messages "UDP bad checksum..." pendant les flood UDP * Désactiver les ICMP source route * Activer l'IP forward au boot (si des choses partent en vrac après le démarrage... on a au moins déjà ça d'actif) \\ (confère le fichier /etc/sysctl.d/router.conf) \\ (Laurent Guerby recommande plutôt de rassembler tout ce qui est réseau dans /root/tetaneutral.sh) ==== Tuning NTP ==== Ajout a /etc/ntp.conf pour eviter que ntpd ecoute sur les IP adherents : interface ignore 91.224.148.0/23 interface ignore 89.234.156.0/23 interface ignore 80.67.182.0/24 ==== Config réseau ==== * Le NUC n'a qu'une interface réseau, donc tout part sur la base de VLANs \\ (confère /etc/network/interfaces) * Changer le /etc/hostname : stg * Utiliser /etc/debian_chroot pour éviter les confusions des machines echo NUC > /etc/debian_chroot source ~/.bashrc * Mettre l'IP publique dans /etc/hosts (car sinon résolution de stg pourrie chez les adhérents) 91.224.148.7 stg.tetaneutral.net stg * Le fichier /etc/hosts est généré par /root/tetneutral.sh, conserver les entrées système dans une copie (NUC)root@stg2:~# cp /etc/hosts /etc/hosts_system * Vérifier que le FQDN fonctionne (NUC)root@stg2:~# hostname stg (NUC)root@stg:~# hostname --fqdn stg.tetaneutral.net ==== Service DHCP ==== apt-get install isc-dhcp-server * Génération d'un fichier de conf DHCP dhcp-list.conf via /root/tetaneutral.sh * Ajout dans /etc/dhcp/dhcpd.conf de include "/etc/dhcp/dhcp-list.conf"; ==== DNS ==== apt-get install pdns-recursor * Toute la config est dans /etc/powerdns/recursor.conf ==== Munin-node ==== apt-get install munin-node * Fichiers de configs dans /etc/munin/ : munin-node.conf, plugin-conf.d/custom, plugins_custom/traffic_all * Liste des plugins activés : cpu, diskstats, entropy, fail2ban, forks, fw_conntrack, fw_forwarded_local, fw_packets, if_err_eth0, interrupts, irqstats, load, memory, open_files, open_inodes, processes, proc_pri, swap, threads, traffic_all, uptime, users, vmstat * Test de l'ensemble des plug-ins : (NUC)root@stg:~# cd /etc/munin/plugins (NUC)root@stg:/etc/munin/plugins# for p in $(ls); do munin-run $p; done ==== Backup ==== apt-get install rdiff-backup visudo # Cmnd alias specification Cmnd_Alias BACKUP = /usr/bin/rdiff-backup # User privilege specification backup ALL = (root) NOPASSWD:BACKUP * Ajouter clé SSH autorisée (.ssh/authorized_keys) + script pour limiter les commandes (.ssh/check) dans /var/backup/ ==== Tuning système ==== * Utiliser 'powertop' pour voir ce qui interrompt le processeur fréquemment * Checker avec pstree ce qui tourne... * Appliquer quelques modifs dpkg-reconfigure exim4-config # -> mettre du format mbox, vérifier /etc/aliases apt-get remove --purge nfs-common rpcbind apt-get autoremove --purge for mod in btusb bluetooth rfkill snd_hwdep snd_hda_codec snd_hda_intel nfs nfs_acl nfsd sunrpc do echo "blacklist $mod" >> /etc/modprobe.d/$mod.conf done * Restauration de /root/.iftoprc * Restauration de /root/tetaneutral.sh et /root/config.sh * Vérification de l'heure date ntpdate pool.ntp.org date service ntp status