Ces astuces sont à effectuer sur des distributions CentOS / Debian et Ubuntu

#1: Crypter les données

Il est important de crypter toutes les données entrantes et sortantes de votre serveur.

  1. Utilisez les commandes scp, ssh, rsync, ou sftp pour le transfert de fichiers.
  2. GnuPG allows to encrypt and sign your data and communication, features a versatile key management system as well as access modules for all kind of public key directories.
  3. OpenVPN est utile pour installer un VPN léger en SSL.
  4. Activez le module mod_ssl pour la configuration et installation de certificats SSL sur Apache et Nginx.

#2: Évitez le plus possible d’utiliser le FTP

De nombreuses données (identifiants, mots de passe et comptes…) sont possibles à récupérer par des personnes malveillantes en utilisant le FTP (File Transfer Protocol). C’est pour ceci que nous vous recommandons plutôt d’utiliser des solutions comme OpenSSH, SFTP or FTPS (FTP avec SSL)

Tapez les commandes suivantes pour supprimer les services non-sécurisés.
Pour CentOS :
# yum erase xinetd ypserv tftp-server telnet-server rsh-server

Pour Debian/Ubuntu Linux :
$ sudo apt-get --purge remove xinetd nis yp-tools tftpd atftpd tftpd-hpa telnetd rsh-server rsh-redone-server

#3: Surveillez l’activité de votre serveur

Pour cela, on peut utiliser LogWatch, un service qui nous envoie par mail l’activité du serveur.
L’installation :

sudo apt-get install logwatch
sudo mkdir /var/cache/logwatch
sudo cp /usr/share/logwatch/default.conf/logwatch.conf /etc/logwatch/conf/

Puis, modifiez le fichier de configuration:
sudo vi /etc/logwatch/conf/logwatch.conf

Dans ce fichier, vous devez entrer l’adresse mail qui recevra les mails, modifiez la section MailTo et remplacez root par votre propre adresse mail. Nous vous recommandons également de modifier la section Format et de mettre html au lieu de text, ce sera plus lisible lorsque vous recevrez vos mails.

#4: Mettre à jour régulièrement le kernel de Linux ainsi que les dépendances.

La maintenance d’un serveur passe essentiellement par les nombreuses mises à jour que celui-ci nécessite. Heureusement pour nous, il existe des commandes simples pour être toujours certain d’installer les dernières versions.  Les commandes manuelles sont les suivantes :
Pour CentOS:
# yum update

Pour Debian  / Ubuntu
# apt-get update && apt-get upgrade

Il est également possible d’installer un service de notifications lors de mises à jour en attente.
Voici un lien pour configurer le service sous CentOS, Red Hat, et Fedora : Notifications pour mises à jour.

Pour Debian et Ubuntu, il existe un paquet nommé apticron, pour l’installer et le configurer c’est très simple.
# apt-get install apticron

Ensuite, vous configurez votre adresse mail dans le fichier .conf
# nano /etc/apticron/apticron.conf
EMAIL="adressemail@domaine.tld"

Pour lancer de suite apticron :
/usr/sbin/apticron

#5: Utilisez des mots de passe complexes pour les utilisateurs

Grâce aux commandes useradd / usermod vous pouvez créer et maintenir des utilisateurs. Encore faut-il faire attention à leur attribuer des mots de passe bien complexes. Soit au minimum 8 caractères avec un mix de majuscules, minuscules, chiffres, lettres et caractères spéciaux. Il est cependant important de pouvoir se rappeler de ces mots de passe.
Vous pouvez créer vos mots de passe avec un générateur de mot de passe que l’on trouve sur Internet, comme celui-ci : www.generateurdemotdepasse.com/

Maintenance serveur dédié

 

#6 : Désactiver l’utilisateur root

Ne laissez jamais l’utilisateur root comme login pouvant se connecter au serveur, si quelqu’un récupère son mot de passe, il aura le contrôle de l’intégralité de votre machine. A la place, donnez l’autorisation à un autre utilisateur de pouvoir se connecter en SSH et ainsi exécuter les commandes avec sudo.
Pour ce faire, entrez dans le fichier sshd_config en faisant :
nano /etc/ssh/sshd_config

Désactivez le login Root avec PermitRootLogin sur « No » et indiquez l’utilisateur autorisé à se connecter en ssh avec AllowUsers.

#7: Changer le port par défaut du serveur

Pour ceci, il vous suffit de modifier une ligne dans le fichier sshd_config, soit :
nano /etc/ssh/sshd_config

Remplacer le port 22 par défaut, par le chiffre que vous souhaitez (disons 84).
Attention, lors de vos prochaines connexions en SSH, vous devrez indiquez ce port avec le drapeau -p84.
Soit :!  ssh votreutilisateur@5.5.5.5 -p84

#8: Bannir les adresses IP qui échouent l’authentification

Beaucoup de robots ou personnes malveillantes tentent de se connecter aux serveurs en utilisant du Brute Force, pour contrer cela et sécuriser le serveur, on peut utiliser un service très connu, j’ai nommé Fail2Ban. L’installation et la configuration sont relativement simple, et le service est redoutable.
Je vous laisse un tutoriel d’un confrère pour l’installer sur votre machine : Installer Fail2Ban

#9: Enlever les signatures en cas d’erreurs sur une page

Lors du rendu d’une page par le serveur Web apache, quelques informations sont données aux visiteurs sur notre configuration, comme la version d’Apache et la distribution utilisée par le serveur (Apache, Debian, centOS, Ubuntu, Fedora..)
Erreur Apache

Pour Apache, ajoutez ces lignes dans le fichier /etc/apache2/apache2.conf :
ServerTokens Prod
ServerSignature Off
TraceEnable Off
Options all -Indexes
Header always unset X-Powered-By

Pour Nginx, ajoutez ces lignes dans le fichier httpd.conf :
ServerTokens Prod
ServerSignature Off
TraceEnable Off
Options all -Indexes
Header always unset X-Powered-By

Redémarrer ensuite les différents services :
$ sudo systemctl restart apache2.service
ou
$ sudo systemctl restart httpd.service

#9: IPtables

IPtables est un des meilleurs firewalls pour Linux, et certainement le plus répandu. Vous pourrez trouver de nombreux scripts de configuration à son sujet. En voici un, à adapter à votre configuration.

Commençons par regarder le fichier de configuration :
vi /etc/init.d/firewall

#!/bin/sh

# Vider les tables actuelles
iptables -t filter -F

# Vider les règles personnelles
iptables -t filter -X

# Interdire toute connexion entrante et sortante
iptables -t filter -P INPUT DROP
iptables -t filter -P FORWARD DROP
iptables -t filter -P OUTPUT DROP

# ---

# Ne pas casser les connexions etablies
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

# Autoriser loopback
iptables -t filter -A INPUT -i lo -j ACCEPT
iptables -t filter -A OUTPUT -o lo -j ACCEPT

# ICMP (Ping)
iptables -t filter -A INPUT -p icmp -j ACCEPT
iptables -t filter -A OUTPUT -p icmp -j ACCEPT

# ---

# SSH In
iptables -t filter -A INPUT -p tcp --dport 2222 -j ACCEPT

# SSH Out
iptables -t filter -A OUTPUT -p tcp --dport 2222 -j ACCEPT

# DNS In/Out
iptables -t filter -A OUTPUT -p tcp --dport 53 -j ACCEPT
iptables -t filter -A OUTPUT -p udp --dport 53 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -t filter -A INPUT -p udp --dport 53 -j ACCEPT

# NTP Out
iptables -t filter -A OUTPUT -p udp --dport 123 -j ACCEPT

Pour un serveur Apache :

# HTTP + HTTPS Out
iptables -t filter -A OUTPUT -p tcp --dport 80 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 443 -j ACCEPT

# HTTP + HTTPS In
iptables -t filter -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 8443 -j ACCEPT

Pour un serveur FTP :

# FTP Out
iptables -t filter -A OUTPUT -p tcp --dport 20:21 -j ACCEPT

# FTP In
modprobe ip_conntrack_ftp # ligne facultative avec les serveurs OVH
iptables -t filter -A INPUT -p tcp --dport 20:21 -j ACCEPT
iptables -t filter -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

Pour un serveur de mail avec POP3, SMTP, IMAP :

# Mail SMTP:25
iptables -t filter -A INPUT -p tcp --dport 25 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 25 -j ACCEPT

# Mail POP3:110
iptables -t filter -A INPUT -p tcp --dport 110 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 110 -j ACCEPT

# Mail IMAP:143
iptables -t filter -A INPUT -p tcp --dport 143 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 143 -j ACCEPT

# Mail POP3S:995
iptables -t filter -A INPUT -p tcp --dport 995 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 995 -j ACCEPT

Il faut ensuite rendre ce fichier exécutable
chmod +x /etc/init.d/firewall

Enfin, redémarrer IPtable pour activer le filtrage.
/etc/init.d/firewall
Un rédemarrage du serveur peut être nécessaire également si la commande iptables -L -v n’affiche rien.

Et voilà c’est la fin de cet article, nous espérons que ces quelques astuces vous seront utiles.
N’hésitez pas à nous laisser un commentaire et à bientôt.

Tim de Webinti

Catégories : LinuxTechno

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Articles similaires

Techno

WordPress 4.9 et ses nouveautés

WordPress a sorti ce vendredi 17 novembre sa nouvelle version 4.9. Elle était fortement attendue par la communauté de WordPress car elle apporte un bon nombre de nouveautés mais aussi des corrections de bugs et Lire la suite…

Techno

Oyst propose un e-commerce simplifié

Totalisant 72 milliards d’euros d’achat réalisés par les français sur internet en 2016, le e-commerce poursuit sa croissance exponentielle. Cependant, des axes d’amélioration résident clairement dans l’optimisation du parcours d’achat de l’utilisateur. Cet article aura Lire la suite…

Techno

Des molécules glacées, la nouvelle façon de stocker des milliers de gigas.

Le futur du stockage de données pourrait se trouver dans des dispositifs congelés de la taille d’un tampon avec une capacité de plus de 30 terabytes. Les molécules glacées sont capables de stocker cent fois Lire la suite…