GoldZone Web Hosting

Rédigé par Gaëtan Trellu (goldyfruit)

Outils pour utilisateurs

Outils du site


securiser_un_minimum_votre_sarge

Sécuriser un minimum votre Sarge.

De nos jours la sécurité est très importante, je ne dis pas qu'elle ne l'était pas avant mais avec la propagation d'internet dans de plus en plus de foyers il y a des petits malins qui s'amusent à tester leurs scripts foireux…
Je ne vous donnerai pas de cours sur la sécurité mais seulement quelques astuces, options, etc… pour vous protégez un peu plus que la normale.

Pourquoi ne pas commencer par sécurisé SSH ?
En effet des attaques de types brute force sur SSH sont fréquentes.

SSH.

Brute force SSH.

Pour se protéger de ce genre d'attaque je vais vous proposer deux solutions, la manière douce et la manière forte.

Manière douce.

Je nomme cette manière douce car comparée à la manière qui va suivre celle-ci est complétement passive.
Elle va consister à changer le port d'écoute SSH qui de base est 22.
Nous allons donc le passer dans la tranche des 20000 en effet la plupart des scripts sont codés pour fonctionner sur le port 22.

Le port se modifie dans le fichier sshd_config qui se trouve dans /etc/ssh On modifie donc :

Port 22

En :

Port 20000

Manière forte.

Forte car nous allons bannir temporairement toutes les tentatives de brutes force à l'aide de Fail2ban.
Fail2ban fonctionne avec IPTables, si par exemple il y a eu 5 tentatives et qu'elles ont toutes échouées alors fail2ban va créer une régle IPTables de bannissement pour quelques minutes.

Pour le moment le paquet fail2ban ne se trouve pas dans la branche de Sarge mais dans la branche de Sid (Still In Developpement), nous allons donc télécharger le paquet pour l'installer via dpkg.

Télécharger fail2ban : http://packages.debian.org/unstable/net/fail2ban
Au moment ou j'écris ces ligne le nom du paquet est fail2ban_0.6.1-11_all.deb.

Installation du paquet :

# dpkg -i fail2ban_0.6.1-11_all.deb

Résultat :

18:54 root@serveur ~# dpkg -i fail2ban_0.6.1-7bpo2_all.deb
Dépaquetage de la mise à jour de fail2ban ...
Paramétrage de fail2ban (0.6.1-7bpo2) ...
Starting authentication failure monitor: fail2ban.

Si un problème de dépendance apparaît effectuez ceci :

# apt-get -f install

Cela forcera l'installation des dépendances manquantes.

Pour configurer fail2ban il faut éditer le fichier fail2ban.conf qui se trouve dans /etc
Définir la limite de login ainsi que le temps de bannissement dans la section [DEFAULT] :

# 5 tentatives avant bannissement.
maxfailures = 5

# 900 secondes de banissement.
bantime = 900

# Lapse de temps. 
findtime = 600

Ne pas modifier la ligne suivante :

logfile = /var/log/auth.log

Auquel cas fail2ban ne sera pas content et vous affichera un message de ce genre à son lancement :

2007-03-02 15:26:51,153 ERROR: Unable to get stat on /var/log/fail2ban-ssh.log

Merci tunisianoaymen pour cette précision.

Alors ça va nous donner ceci :

Si cinq tentatives venant de la même IP ont échoué dans un lapse de temps de 600 secondes alors un ban de 900 secondes sur cette IP sera mis en place.

On relance le service fail2ban pour prendre en charge les modifications :

# /etc/init.d/fail2ban restart

Options pour sécuriser SSH.

Ce que nous ferions pas pour sécuriser notre petit SSH. :)
Je ne vais vous parler que de deux options, l'une interdisant le login en root lors de la connexion à SSH, l'autre forcant l'utilisation du protocole 2 étant donné que la version 1 est une vraie passoire.

Interdire le login en root.

Dans le fichier sshd_config qui se trouve dans /etc nous allons modifier l'option :

PermitRootLogin yes

En :

PermitRootLogin no

Forcer le protocole 2.

Comme l'option précédente ça se passe dans sshd_config, normalement la valeur est déjà à 2.

Protocol 2

On relance le service SSH pour prendre en charge les modifications :

# /etc/init.d/ssh restart

Fail2ban

Fail2ban ne devrait pas vous être inconnu si vous avez suivi la manière forte contre le brute force SSH, cette application fonctionne aussi pour Apache, ProFTPd, SASL, etc…
Les modifications se font dans le fichier fail2ban.conf qui se trouve dans /etc

Pour activer la protection du service ProFTPd par exemple, remplacez dans la section [PROFTPD] :

enabled = false

Par :

enabled = enable

Relancer le service pour prendre les modifications en compte :

# /etc/init.d/fail2ban restart

sudo

Je place sudo dans cette catégorie étant donné que si vous n'utilisez pas l'utilisateur root c'est une sécurité de plus non ?

En effet avec sudo vous pouvez définir des “pouvoirs” à un utilisateur, exemple :

Pour relancer Apache il faut être root et bien avec sudo il est possible que l'utilisateur marcel relance Apache.

L'utilisation de root devient donc très rare et votre système ne s'en portera que mieux (oupss j'ai supprimé un fichier :-().

Installation de sudo :

# aptitude install sudo

La configuration de sudo se passe dans le fichier sudoers qui se trouve dans /etc pour l'éditer on utilise visudo.

# visudo

Résultat :

# /etc/sudoers
#
# This file MUST be edited with the 'visudo' command as root.
#
# See the man page for details on how to write a sudoers file.
#

Defaults        env_reset

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root    ALL=(ALL) ALL

C'est un peu hostère hein ? Pas de panique il n'y a rien de compliqué.

Pour que l'utilisateur marcel puisse relancer Apache et Bind, le fichier de configuration ressemblera à ceci :

# /etc/sudoers
#
# This file MUST be edited with the 'visudo' command as root.
#
# See the man page for details on how to write a sudoers file.
#

Defaults        env_reset

# Host alias specification

# User alias specification

# Cmnd alias specification
Cmnd_Alias    APACHE=/etc/init.d/apache2 restart
Cmnd_Alias    BIND=/etc/init.d/bind9 restart

# User privilege specification
root    ALL=(ALL) ALL

marcel  ALL=NOPASSWD:APACHE,NOPASSWD:BIND

Si NOPASSWD n'est pas présent alors un mot de passe sera demandé.
Pour relancer Apache vous devez être loggé en tant que marcel puis :

$ sudo /etc/init.d/apache2 restart

Pour connaître les commandes qui sont attribuées à l'utilisateur marcel c'est easy (une petite touche d'anglais pour faire genre) :

$ sudo -l

Résultat :

18:42 cartman@serveur ~% sudo -l
User cartman may run the following commands on this host:
    (root) NOPASSWD: /etc/init.d/apache2 restart
    (root) NOPASSWD: /etc/init.d/bind9 restart

Les rootkit, backdoors, exploits

Les rootkits c'est un peu la bête noire des serveurs.

Pour vérifier la présence de rootkit sous Linux il existe des utilitaires comme Chkrootkit ou Rkhunter (ce ne sont pas les seuls).

Rkhunter

Installation de Rkhunter, rien de compliqué :

# aptitude install rkhunter

Pour effectuer une analyse de votre système :

# rkhunter -c

-c = –check-all
Pour plus d'informations sur les options de celui-ci :

# rkhunter --help

Résultat d'un check avec Rkhunter.

Chkrootkit

Installation de Chkrootkit :

# aptitude install chkrootkit

Pour effectuer une analyse de votre système :

# chkrootkit

Pour plus d'informations sur les options de celui-ci :

# chkrootkit -h

Résultat d'un check avec chkrootkit.

securiser_un_minimum_votre_sarge.txt · Dernière modification: 2011/01/05 16:05 (modification externe)