Projet

Général

Profil

SrvSTG » Historique » Version 9

Laurent GUERBY, 21/02/2015 10:03

1 1 Ludovic Pouzenc
h1. Serveur stg.tetaneutral.net
2 1 Ludovic Pouzenc
3 1 Ludovic Pouzenc
h2. Caractéristiques
4 1 Ludovic Pouzenc
5 8 Ludovic Pouzenc
* Gigabyte Brix
6 8 Ludovic Pouzenc
* CPU Celeron, 4GB RAM
7 2 Ludovic Pouzenc
* Samsung SSD 840 EVO 120GB
8 1 Ludovic Pouzenc
* Debian 7 amd64
9 1 Ludovic Pouzenc
10 1 Ludovic Pouzenc
h2. Traces Install
11 1 Ludovic Pouzenc
12 1 Ludovic Pouzenc
A partir d'une clé USB bootable Debian 7 amd64
13 1 Ludovic Pouzenc
14 2 Ludovic Pouzenc
h3. Options d'installation
15 1 Ludovic Pouzenc
16 2 Ludovic Pouzenc
* hostname initial : stg2 (changé en stg par la suite)
17 1 Ludovic Pouzenc
* partman : partition par defaut sur tout le disque sda
18 1 Ludovic Pouzenc
* grub : par défaut, sur sda
19 1 Ludovic Pouzenc
* tasksel : decocher interface graphique et cocher serveur ssh
20 1 Ludovic Pouzenc
* popcon : non
21 1 Ludovic Pouzenc
22 1 Ludovic Pouzenc
h3. Premières configs
23 2 Ludovic Pouzenc
24 1 Ludovic Pouzenc
<pre>
25 2 Ludovic Pouzenc
# Dépendances requises
26 2 Ludovic Pouzenc
apt-get install sudo vlan conntrack ntp fail2ban
27 2 Ludovic Pouzenc
# Utilitaires
28 2 Ludovic Pouzenc
apt-get install rsync vim emacs23-nox iftop htop screen ntpdate powertop molly-guard sysstat strace tcpdump
29 2 Ludovic Pouzenc
30 2 Ludovic Pouzenc
update-alternatives --config editor
31 2 Ludovic Pouzenc
#-> choisir vim.basic
32 2 Ludovic Pouzenc
33 2 Ludovic Pouzenc
# Création de tous les users
34 2 Ludovic Pouzenc
adduser nicolas sudo
35 2 Ludovic Pouzenc
adduser ludovic
36 2 Ludovic Pouzenc
adduser ludovic sudo
37 2 Ludovic Pouzenc
# [...]
38 2 Ludovic Pouzenc
</pre>
39 2 Ludovic Pouzenc
40 2 Ludovic Pouzenc
* Modification du /root/.bashrc pour dé-commenter les alias et les couleurs
41 2 Ludovic Pouzenc
42 2 Ludovic Pouzenc
h3. Modification du partitionnement
43 2 Ludovic Pouzenc
44 2 Ludovic Pouzenc
* Une meilleure option était de faire directement le bon paramétrage avec l'assistant partman de l'installeur Debian
45 4 Ludovic Pouzenc
46 2 Ludovic Pouzenc
<pre>
47 2 Ludovic Pouzenc
root@stg2:~# smartctl -a /dev/sda
48 2 Ludovic Pouzenc
Device Model:     Samsung SSD 840 EVO 120GB
49 2 Ludovic Pouzenc
[...]
50 2 Ludovic Pouzenc
51 2 Ludovic Pouzenc
root@stg2:~# fdisk -l /dev/sda
52 2 Ludovic Pouzenc
53 2 Ludovic Pouzenc
Disque /dev/sda : 120.0 Go, 120034123776 octets
54 2 Ludovic Pouzenc
255 têtes, 63 secteurs/piste, 14593 cylindres, total 234441648 secteurs
55 2 Ludovic Pouzenc
Unités = secteurs de 1 * 512 = 512 octets
56 2 Ludovic Pouzenc
Taille de secteur (logique / physique) : 512 octets / 512 octets
57 2 Ludovic Pouzenc
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
58 2 Ludovic Pouzenc
Identifiant de disque : 0x000b8647
59 2 Ludovic Pouzenc
60 2 Ludovic Pouzenc
Périphérique Amorce  Début        Fin      Blocs     Id  Système
61 2 Ludovic Pouzenc
/dev/sda1   *        2048    19531775     9764864   83  Linux
62 2 Ludovic Pouzenc
/dev/sda2        19533822   234440703   107453441    5  Étendue
63 2 Ludovic Pouzenc
/dev/sda5        19533824    28186623     4326400   82  partition d'échange Linux / Solaris
64 2 Ludovic Pouzenc
/dev/sda6        28188672   234440703   103126016   83  Linux
65 2 Ludovic Pouzenc
</pre>
66 2 Ludovic Pouzenc
67 2 Ludovic Pouzenc
* Sauver le contenu de /home
68 2 Ludovic Pouzenc
* Démonter /home (ne pas avoir son shell dedans...)
69 5 Ludovic Pouzenc
* Restaurer le contenu de la sauvegarde dans /home (donc dans la partition racine)
70 2 Ludovic Pouzenc
* Détruire la partition correspondante. Idem pour le swap.
71 2 Ludovic Pouzenc
* Créer une partition primaire de la taille de l'espace restant pour /var
72 4 Ludovic Pouzenc
73 2 Ludovic Pouzenc
<pre>
74 2 Ludovic Pouzenc
root@stg2:~# fdisk -l /dev/sda
75 2 Ludovic Pouzenc
76 2 Ludovic Pouzenc
Disque /dev/sda : 120.0 Go, 120034123776 octets
77 2 Ludovic Pouzenc
255 têtes, 63 secteurs/piste, 14593 cylindres, total 234441648 secteurs
78 2 Ludovic Pouzenc
Unités = secteurs de 1 * 512 = 512 octets
79 2 Ludovic Pouzenc
Taille de secteur (logique / physique) : 512 octets / 512 octets
80 2 Ludovic Pouzenc
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
81 2 Ludovic Pouzenc
Identifiant de disque : 0x000b8647
82 2 Ludovic Pouzenc
83 2 Ludovic Pouzenc
Périphérique Amorce  Début        Fin      Blocs     Id  Système
84 2 Ludovic Pouzenc
/dev/sda1   *        2048    19531775     9764864   83  Linux
85 2 Ludovic Pouzenc
/dev/sda2        19531776   234441647   107454936   83  Linux
86 2 Ludovic Pouzenc
</pre>
87 2 Ludovic Pouzenc
88 2 Ludovic Pouzenc
* Virer /home et swap dans le fstab
89 2 Ludovic Pouzenc
* Rebooter (pour prise en compte des partitions)
90 2 Ludovic Pouzenc
* Formatter /dev/sda2 en ext4
91 2 Ludovic Pouzenc
* Copier /var dedans
92 2 Ludovic Pouzenc
* Mettre à jour le fstab (sda2 -> var)
93 2 Ludovic Pouzenc
* Reboot
94 2 Ludovic Pouzenc
95 2 Ludovic Pouzenc
h3. Tuning SSD
96 2 Ludovic Pouzenc
97 2 Ludovic Pouzenc
* Options de montage ext4 dans fstab : errors=remount-ro,noatime,discard,commit=300
98 2 Ludovic Pouzenc
* Scheduler deadline de manière persistante
99 2 Ludovic Pouzenc
(confère le fichier /etc/udev/rules.d/60-ssd-scheduler.rules)
100 2 Ludovic Pouzenc
* Swapiness minimal (le OOM killer sera + sensible mais pas d'IO dans tous les sens)
101 2 Ludovic Pouzenc
(confère le fichier /etc/sysctl.d/ssd.conf)
102 2 Ludovic Pouzenc
103 2 Ludovic Pouzenc
h3. Autres paramètres kernel
104 2 Ludovic Pouzenc
105 2 Ludovic Pouzenc
* Éviter de logguer les messages "UDP bad checksum..." pendant les flood UDP
106 2 Ludovic Pouzenc
* Désactiver les ICMP source route
107 2 Ludovic Pouzenc
* 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)
108 2 Ludovic Pouzenc
(confère le fichier /etc/sysctl.d/router.conf)
109 2 Ludovic Pouzenc
(Laurent Guerby recommande plutôt de rassembler tout ce qui est réseau dans /root/tetaneutral.sh)
110 2 Ludovic Pouzenc
111 9 Laurent GUERBY
h3. Tuning NTP
112 9 Laurent GUERBY
113 9 Laurent GUERBY
Ajout a /etc/ntp.conf pour eviter que ntpd ecoute sur les IP adherents :
114 9 Laurent GUERBY
115 9 Laurent GUERBY
<pre>
116 9 Laurent GUERBY
interface ignore 91.224.148.0/23
117 9 Laurent GUERBY
interface ignore 89.234.156.0/23
118 9 Laurent GUERBY
interface ignore 80.67.182.0/24
119 9 Laurent GUERBY
</pre>
120 9 Laurent GUERBY
121 2 Ludovic Pouzenc
h3. Config réseau
122 2 Ludovic Pouzenc
123 2 Ludovic Pouzenc
* Le NUC n'a qu'une interface réseau, donc tout part sur la base de VLANs
124 2 Ludovic Pouzenc
(confère /etc/network/interfaces)
125 2 Ludovic Pouzenc
* Changer le /etc/hostname : stg
126 2 Ludovic Pouzenc
* Utiliser /etc/debian_chroot pour éviter les confusions des machines
127 3 Ludovic Pouzenc
128 3 Ludovic Pouzenc
<pre>
129 3 Ludovic Pouzenc
echo NUC > /etc/debian_chroot
130 3 Ludovic Pouzenc
source ~/.bashrc
131 3 Ludovic Pouzenc
</pre>
132 3 Ludovic Pouzenc
133 2 Ludovic Pouzenc
* Mettre l'IP publique dans /etc/hosts (car sinon résolution de stg pourrie chez les adhérents)
134 3 Ludovic Pouzenc
135 2 Ludovic Pouzenc
<pre>
136 2 Ludovic Pouzenc
91.224.148.7    stg.tetaneutral.net     stg
137 2 Ludovic Pouzenc
</pre>
138 3 Ludovic Pouzenc
139 3 Ludovic Pouzenc
* Le fichier /etc/hosts est généré par /root/tetneutral.sh, conserver les entrées système dans une copie
140 3 Ludovic Pouzenc
141 2 Ludovic Pouzenc
<pre>
142 2 Ludovic Pouzenc
(NUC)root@stg2:~# cp /etc/hosts /etc/hosts_system
143 3 Ludovic Pouzenc
</pre>
144 3 Ludovic Pouzenc
145 2 Ludovic Pouzenc
* Vérifier que le FQDN fonctionne
146 3 Ludovic Pouzenc
147 3 Ludovic Pouzenc
<pre>
148 2 Ludovic Pouzenc
(NUC)root@stg2:~# hostname
149 2 Ludovic Pouzenc
stg
150 2 Ludovic Pouzenc
(NUC)root@stg:~# hostname --fqdn
151 2 Ludovic Pouzenc
stg.tetaneutral.net
152 3 Ludovic Pouzenc
</pre>
153 3 Ludovic Pouzenc
154 3 Ludovic Pouzenc
h3. Service DHCP
155 3 Ludovic Pouzenc
156 3 Ludovic Pouzenc
<pre>
157 3 Ludovic Pouzenc
apt-get install isc-dhcp-server  
158 3 Ludovic Pouzenc
</pre>
159 3 Ludovic Pouzenc
160 3 Ludovic Pouzenc
* Génération d'un fichier de conf DHCP dhcp-list.conf via /root/tetaneutral.sh
161 3 Ludovic Pouzenc
* Ajout dans /etc/dhcp/dhcpd.conf de
162 3 Ludovic Pouzenc
163 3 Ludovic Pouzenc
<pre>
164 3 Ludovic Pouzenc
include "/etc/dhcp/dhcp-list.conf";
165 3 Ludovic Pouzenc
</pre> 
166 3 Ludovic Pouzenc
167 3 Ludovic Pouzenc
168 3 Ludovic Pouzenc
h3. DNS
169 3 Ludovic Pouzenc
170 3 Ludovic Pouzenc
<pre>
171 3 Ludovic Pouzenc
apt-get install pdns-recursor
172 3 Ludovic Pouzenc
</pre>
173 3 Ludovic Pouzenc
174 3 Ludovic Pouzenc
* Toute la config est dans /etc/powerdns/recursor.conf
175 3 Ludovic Pouzenc
176 3 Ludovic Pouzenc
h3. Munin-node
177 3 Ludovic Pouzenc
178 3 Ludovic Pouzenc
<pre>
179 3 Ludovic Pouzenc
apt-get install munin-node
180 3 Ludovic Pouzenc
</pre>
181 3 Ludovic Pouzenc
182 3 Ludovic Pouzenc
* Fichiers de configs dans /etc/munin/ : munin-node.conf, plugin-conf.d/custom, plugins_custom/traffic_all
183 3 Ludovic Pouzenc
* 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
184 3 Ludovic Pouzenc
* Test de l'ensemble des plug-ins :
185 3 Ludovic Pouzenc
186 3 Ludovic Pouzenc
<pre>
187 3 Ludovic Pouzenc
(NUC)root@stg:~# cd /etc/munin/plugins
188 3 Ludovic Pouzenc
(NUC)root@stg:/etc/munin/plugins# for p in $(ls); do munin-run $p; done
189 1 Ludovic Pouzenc
</pre>
190 6 Ludovic Pouzenc
191 6 Ludovic Pouzenc
h3. Backup
192 6 Ludovic Pouzenc
193 6 Ludovic Pouzenc
<pre>
194 6 Ludovic Pouzenc
apt-get install rdiff-backup
195 6 Ludovic Pouzenc
visudo
196 6 Ludovic Pouzenc
</pre>
197 6 Ludovic Pouzenc
198 6 Ludovic Pouzenc
<pre>
199 6 Ludovic Pouzenc
# Cmnd alias specification
200 6 Ludovic Pouzenc
Cmnd_Alias      BACKUP = /usr/bin/rdiff-backup
201 6 Ludovic Pouzenc
# User privilege specification
202 6 Ludovic Pouzenc
backup  ALL = (root) NOPASSWD:BACKUP
203 6 Ludovic Pouzenc
</pre>
204 6 Ludovic Pouzenc
205 6 Ludovic Pouzenc
* Ajouter clé SSH autorisée (.ssh/authorized_keys) + script pour limiter les commandes (.ssh/check) dans /var/backup/
206 6 Ludovic Pouzenc
207 7 Ludovic Pouzenc
h3. Tuning système
208 7 Ludovic Pouzenc
209 6 Ludovic Pouzenc
* Utiliser 'powertop' pour voir ce qui interrompt le processeur fréquemment
210 6 Ludovic Pouzenc
* Checker avec pstree ce qui tourne...
211 6 Ludovic Pouzenc
* Appliquer quelques modifs
212 6 Ludovic Pouzenc
213 6 Ludovic Pouzenc
<pre>
214 6 Ludovic Pouzenc
dpkg-reconfigure exim4-config
215 6 Ludovic Pouzenc
# -> mettre du format mbox, vérifier /etc/aliases
216 6 Ludovic Pouzenc
217 6 Ludovic Pouzenc
apt-get remove --purge nfs-common rpcbind
218 6 Ludovic Pouzenc
apt-get autoremove --purge 
219 6 Ludovic Pouzenc
220 6 Ludovic Pouzenc
for mod in btusb bluetooth rfkill snd_hwdep snd_hda_codec snd_hda_intel nfs nfs_acl nfsd sunrpc
221 6 Ludovic Pouzenc
do
222 6 Ludovic Pouzenc
	echo "blacklist $mod" >> /etc/modprobe.d/$mod.conf
223 6 Ludovic Pouzenc
done
224 6 Ludovic Pouzenc
</pre>
225 6 Ludovic Pouzenc
226 6 Ludovic Pouzenc
* Restauration de /root/.iftoprc
227 6 Ludovic Pouzenc
* Restauration de /root/tetaneutral.sh et /root/config.sh
228 6 Ludovic Pouzenc
* Vérification de l'heure
229 6 Ludovic Pouzenc
230 6 Ludovic Pouzenc
<pre>
231 6 Ludovic Pouzenc
date
232 6 Ludovic Pouzenc
ntpdate pool.ntp.org
233 6 Ludovic Pouzenc
date
234 6 Ludovic Pouzenc
service ntp status
235 6 Ludovic Pouzenc
</pre>