Une petite procedure pour configurer/améliorer un serveur fraichement installé sous Debian.
Configuration de base
Configuration des locales
Pour installer les locales sur le système: celles qui seront disponibles pour les utilisateurs.
# dpkg-reconfigure locales
Sélectionnez les locales en fonction des langues que vous voullez et les différent encodage de charactères. Plus vous sélectionnerez de langue et d'encodage plus cela prendra de temps à générer et plus cela occupera d'espace disque.
Par exemple pour obtenir les message en français séléctionnez les locales
commençant par fr_FR
(français de France) et tout les encodages. Le
meilleur encodage pour Unix est UTF-8. Sur le second écran choisissez la langue
et l'encodage par défaut qui sera utilisé par le système par exemple
fr.FR.UTF-8
, pour avoir les messages en français par défaut.
Configuration de bash
La création d'un nouvel utilisateur utilise les fichiers de configuration par
défaut qui sont présents dans le dossier /etc/skel/
. Cependant, par
défaut l'utilisateur root n'obteint pas ces fichiers. Pour obtenir une meilleure
configuration du shell bash pour root avec par exemple un prompt en couleur et
l'autocomplétion nous allons copier manuellement .bashrc
:
# cp /etc/skel/.bashrc $HOME
Ainsi l'auto-complétion de bash marche.
Pour avoir la couleur du prompt il faut décommenter la ligne 39.
39 #force_color_prompt=yes
et obtenir:
39 force_color_prompt=yes
On peut également décommenter dans les lignes 78 et suivantes les configuration de couleur pour quelques commandes
78 if [ -x /usr/bin/dircolors ]; then
79 test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
80 alias ls='ls --color=auto'
81 alias dir='dir --color=auto'
82 alias vdir='vdir --color=auto'
83
84 alias grep='grep --color=auto'
85 alias fgrep='fgrep --color=auto'
86 alias egrep='egrep --color=auto'
87 fi
Configurer les alias pour le compte root
Par défaut tous les mails système sont envoyés à l'utilisateur root. Cependant,
pour éviter des connexion intempestive de root, il est de bonne augure de
rediriger les emails vers un autre compte ou adresse. Pour cela il suffit de
modifier le fichier /etc/aliases
pour qu'il contienne la ligne suivante:
root: nom@domain.com
Tous les emails envoyés à root seront redirigés vers l'adresse nom@domain.com
Sécurisation du système
Mise à jour du système
# aptitude update
# aptitude dist-upgrade
Pour recevoir automatiquement les annonce de mise à jour du système il faut
installer le paquet apticron
:
# aptitude install apticron
Les possible mises à jour du système seront envoyé par mail à root
tous
les jours.
Installation de fail2ban
fail2ban est un programme qui permet de blacklister temporairement une adresse IP lorsqu'elle est utilisée pour tenter de rentrer sur le site "en force" c'est à dire en essayant des mots de passe jusqu'à trouver le bon. En pratique fail2ban scrute les fichier de log et après un certain nombre d'échec de connexion, l'adresse IP est blacklister
# aptitude install fail2ban
Il se configure dans le fichier /etc/fail2ban/fail.conf
. Quelques
modules supplémentaires existent pour fail2ban pour les activer il faut se
reporter à la fin du fichier de configuration (à partir de la ligne 74). Chaque
module est appelé un JAIL
.
Chaque JAIL
se présente de façon similaire comme par exemple ssh
:
[ssh]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 6
Son nom entre []
, s'il est activé ou nom (enable
). Quel port
fail2ban doit surveiller (port
). Le fichier de log à surveiller
(logpath
) et le filtre à appliquer pour n'obtenir que le service voulu
(filter
). Et enfin le nombre d'erreurs toléré (maxretry
).
Par défaut le JAIL ssh
est activé. Le JAIL pam-generic
permet de
bloquer via l'identification d'erreur via l'utilisation de PAM. Le JAIL
ssh-ddos
permet une protection contre une attaque de type défaut de
service
Pour prendre en compte la nouvelle configuration il faut redémarrer le service à l'aide la commande suivante:
# service fail2ban restart
Installation de rkhunter
Il s'agit d'un programme qui recherche les rootkit en recherchant les modifications des principaux programmes par comparaison avec un état sain et des signatures ainsi que l'identification de rootkit déjà connus. Voir son installation et configuration sur la page dédiée: rkunter
Installation de debsecan
Vérifie les alertes de sécurités sur internet en rapport avec le système:
# aptitude install debsecan
Pour le configurer il suffit d'exécuter la commande suivante:
# dpkg-reconfigure debsecan
Lors de la configuration, sélectionner la bonne distribution. Les autres questions se comprennent facilement.
Configuration du pare-feu avec ferm
Consultez l'article correspondant à propos de ferm
Limitation des connexions SSH
Création d'un utilisateur administrateur (admin
dans notre exemple) qui
pourra se connecter en root
après désactivation de la connexion SSH pour
root
:
# adduser admin
Une fois configuré, la connexion SSH de root peut être désactivée dans le fichier /etc/ssh/sshd_config
:
26 PermitRootLogin no
Redémarrez le serveur SSH pour le prendre ne compte.
# /etc/init.d/ssh restart
Limitation de la commande su à certains utilisateurs
La commande su
permet de se substitué à un autre utilisateur pour
exécuter certain programme. L'exemple le plus courant et le passage en
super-utilisateur pour effectué des taches d'administration. Cependant il peut
être bon de limiter l'accès à cette commande à certains utilisateurs. Par défaut
su
est donc lisible et exécutable par tout le monde. Cependant il est
possible de restreindre à un groupe la connexion en modifiant le fichier de
configuration PAM de su
. Il faut décommenter la ligne suivante dans le
fichier /etc/pam.d/su
:
15 auth required pam_wheel.so
Par défaut il faut appartenir au groupe root
pour pouvoir utiliser
su
. Historiquement ce groupe de super-utilisateur sur UNIX porte le nom
de wheel
d'où le nom du module PAM (voir [[wp>Wheel_(Unix_term)]]). Il
est possible de changer le groupe d'utilisateur correspondant à wheel
en
ajoutant l'option group=nom_group
. Ainsi pour définir le groupe
adm
comme le groupe wheel
:
15 auth required pam_wheel.so group=adm
Il suffit d'ajouter ensuite les utilisateurs autorisé au groupe root
, comme
par exemple l'utilisateur admin
:
# adduser admin root