Bonjour,
J’installe une debian chez moi qui fera office de serveur, donc ouverte sur internet.
Et j’aimerais la sécuriser au mieux.
La première chose à faire :
- utiliser des mots de passe coriaces (Générer / Tester mot de passe : testyourpassword.com/)
Dans mon cas, j’ai :
- un compte root
- un compte utilisateur normal, qu’on va nommé toto…
Il me faut un accès depuis l’extérieur, j’ai choisi SSH (OpenSSH qu’est-ce que vous en pensez ? C’est quoi le mieux ?)
A priori, le paquet ssh-server me suffit vu que je n’utiliserais pas cette machine pour me connecter à une machine distante ?
Mais pour sécuriser, d’après ce que j’ai recherché sur le net, j’aurais aussi besoin de :
- iptables (c’est le parefeu c’est ca ? j’ai entendu parlé aussi de netfiler, c’est la même chose, j’ai du mal à faire la part des choses entre les 2 ?)
- fail2ban (pour bannir des IP en cas de bruteforce (trop grand nombre d’échecs lors de l’authentification par SSH ?), ca utilise iptables il me semble ?)
Avant d’aller plus loin et d’installer apache, serveur ftp et tout le reste, je pense que le mieux c’est déjà de configurer ces 3 outils afin d’avoir une debian sécurisée et accessible depuis l’extérieur par un shell sécurisé, c’est la base non ? Vous en avez d’autres ?
J’aurais aimé lister un peu les configurations qu’il y a à faire sur chacun de ses outils grâce à vos expériences, voilà ce que j’ai déjà pu trouvé :
SSH :
- Changer le port d’écoute (Port) (on peut mettre n’importe quoi ? Certains sont réservés ?)
- Interdire de se loguer directement en root (PermitRootLogin no)
- Protocol 2 (J’ai lu sur internet qu’il fallait mettre le protocol sur 2, quelqu’un sait pourquoi ? Qu’est-ce que c’est exactement ?)
- AllowUsers toto tata autre_login (on restreint aux seuls utilisateurs qui ont le droit de se connecter)
- X11Forwarding no
- Histoire des clés ? comment ca marche ? C’est par défaut ? Les clés se génèrent automatiquement ? Ou on peut faire une configuration plus fine ?
Fichier de configuration : /etc/ssh/sshd_config
Logs : /var/log/auth.log
(les tentatives de connexions sont inscrites dans le fichier de log)
iptables :
- Réinitialiser les règles iptables :
sudo iptables -F
sudo iptables -X
- Bloquer tout le trafic entrant par défaut :
sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
- Bloquer tout le trafic sortant par défaut :
- Autoriser le trafic sur l’interface loopback :
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A OUTPUT -o lo -j ACCEPT
- Ne pas casser les connexions etablies
sudo iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
Et après, c’est selon ce dont j’ai besoin, par exemple, ouvrir le port 80 pour le serveur HTTP :
(dans les 2 sens ?)
o Autoriser les connexions sur le port 80
sudo iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
sudo iptables -A OUPUT -i eth0 -p tcp --dport 80 -j ACCEPT
fail2ban :
Il suffit de modifier dans le fichier de configuration comme ca nous intéresse…
Fichier de configuration : /etc/fail2ban/jail.conf
Logs : /var/log/fail2ban.log
(pour voir les IP bannis par Fail2Ban)
Merci de vos avis
++