Projet

Général

Profil

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