* Si vous choississez de monter les partitions avec des permissions particulières (par exemple "read-only" pour _/usr_ et "noexec" pour _/tmp_), on peut automatiser les changements et afficher un avertissement, via le fichier _/etc/apt/apt.conf_ ou dans un fichier personnalisé placé dans _/etc/apt/apt.conf.d/_ :
~~~
DPkg {
// Warn the user about the auto remount of partitions.
Pre-Invoke {
"echo 'Remounting partitions. Are you sure? Else exit with ^C'; read REPLY; mount -oremount,exec /tmp && mount -oremount,rw /usr";
};
Post-Invoke {
"mount -oremount /tmp && mount -oremount /usr || exit 0";
};
}
~~~
* Installation de paquets ou mises-à-jour en pensant à bien regarder les paquets "recommandés" lors d'une installation…
* Installer Postfix, le meilleur serveur mail du monde :
~~~
# aptitude install postfix
~~~
Postfix sera configuré en en fonction de l'utilisation du serveur
* Installer un certain nombre de paquets indispensables (voir les dépendances du meta-package _serveur-base_ hébergé sur le repository Evolix,
ceci ne fonctionnera que si vous l'avez activé dans le _sources.list_) :
~~~
# aptitude install serveur-base ssh
~~~
Note : les paquets distribués par Evolix ne sont pas signés donc ne pas tenir compte des erreurs "untrusted packages"
Note : pour _apt-listchanges_ choisir "pager" puis "both" et d'envoyer sur l'adresse de votre choix
* S'assurer que les services inutiles sont désactivés. Ceci n'est plus nécessaire depuis les dernières versions de Debian, mais par réflexe, on fera :
Note: notez que la partition /usr est montée en read-only par défaut ET que /var/tmp/ et /var/lock sont en TMPFS (ce qui signifie purgé à chaque reboot !!).
Ceci est complètement non-standard et contraire au FHS, donc n'appliquer cela que si vous savez ce que vous faites !
* Gestion des quotas. On supprimera le script _quotarpc_ inutile :
~~~
# update-rc.d -f quotarpc remove
~~~
Si besoin de gérer les quotas, outre l'activation dans le _fstab_ :
~~~
# quotaoff -a
# quotacheck -auvg
# quotaon -auvg
# edquota -t
~~~
Dans un environnement professionel, nous conseillons de mettre la période de grâce à 30 jours minimum.
* Gestion des ACL si besoin. Outre l'installation du paquet _acl_, on ajoutera l'option _acl_ dans le _fstab_ pour la partition concernée (probablement /home)
* Changer les heures par défaut dans le fichier /etc/crontab afin d'éviter des surcharges divers à des moments donnés. Par exemple, ainsi :
~~~
hourly à Xh13
daily à 1h23
weekly à 3h33
monthly à 4h37
~~~
* Par défaut, les journaux système sont gérés par _rsyslog_. Sa configuration devra être ajustée via le fichier _/etc/rsyslog.conf_ pour notamment activer les logs de cron ou encore désactiver l'écriture en double de certains journaux.
* Pour la rotation des logs système, depuis la dernière version, tout est géré via logrotate.d (et non plus savelog). Attention, les paramètres par défaut conservent très peu de temps certains journaux (quelques semaines voire quelques jours...) et il convient de les ajuster pour les conserver pendant un an (ni plus ni moins). D'autres ajustements peuvent être faits pour dater les fichiers de logs via des actions _postrotate_ de logrotate.
* Configuration de Munin via `/etc/munin/munin.conf`, notamment le hostname.
Si le noyau est patché _grsec_, il faut ajouter les lignes suivantes dans le fichier /etc/munin/plugin-conf.d/munin-node :
~~~
[processes]
user root
~~~
* Pour avoir une machine toujours à l'heure, on utilise _ntp_ avec le fichier _/etc/ntp.conf_ :
~~~
server ntp.evolix.net
~~~
* Droits des utilisateurs
* /etc/profile Définir umask 027 ou umask 077 en fonction de l'utilisation du serveur (gestion de groupes ou non)
* /root/.bashrc Définir umask 077, les fichiers créés par root ne doivent pas être visibles par les utilisateurs !
* /etc/sudoers Voir plus bas la partie sur _sudo_
* /root Mettre les droits 0700
* /usr/share/scripts Mettre les droits 0700 (répertoire spécifique aux scripts d'Evolix)
* /etc/adduser.conf Régler DIR_MODE
* Pour gérer les accès _root_, utiliser le logiciel _sudo_, avec une configuration du type :
~~~
# visudo
Defaultsenv_reset, umask=0077
User_Alias ADMIN = pnom1, pnom2, pnom3
ADMIN ALL=(ALL) ALL
~~~
* Configurer SSH en interdisant l'accès _root_ direct dans le fichier sshd_config :
~~~
PermitRootLogin no
~~~
Il est également conseillé d'utiliser la directive AllowUsers pour restreindre l'accès à certains utilisateurs et certaines adresses IP :
~~~
AllowUsers pnom1@1.2.3.4 pnom1@::ffff:1.2.3.4
~~~
* Soyons parano, on peut restreindre l'accès root à la 5e console ainsi :
~~~
# echo tty5 > /etc/securetty
~~~
* Installer _minifirewall_. Cela consiste à télécharger les fichiers (principalement _minifirewall_ et _firewall.rc_) à partir du repository GIT <http://git.evolix.org/?p=evolinux/minifirewall.git;a=summary> et les placer respectivement dans _/etc/init.d/_ et _/etc_. Il faut ensuite procéder aux ajustements dans le fichier _firewall.rc_
* Pour diverses raisons, on peut limiter le temps de connexion en plaçant une ligne _export TMOUT=3600_ dans le fichier /etc/profile.
* Enfin, il faut ajuster les droits les moins permissifs possibles. On utilisera par exemple :
~~~
# find /etc/ -perm -004
~~~
* De la même façon au niveau réseau, on pourra tester les ports ouverts, par exemple avec l'une des commandes suivantes :
~~~
# netstat -a -u -t -n -p
# lsof -i
# time nmap -sS -O -T Insane -p 0- YOUR-IP
~~~
* Script *evomaintenance* : pour une administration à plusieurs, nous utilisons un script qui permet d'informer à chaque intervention et de retenir ces informations dans une base de données. Voici comment nous l'utilisons :
~~~
# aptitude install evomaintenance
~~~
Puis ajuster le fichier de configuration _/etc/evomaintenance.cf_ et autoriser ce script à se lancer sans mot de passe pour les administrateurs via sudo. On ajoutera donc dans le suoders :