Voilà une petite surprise :grin: !! Après un certain succès des mes tutos sur l’installation d’un serveur Ubuntu, Velvetshadow m’a envoyer un tuto sur la sécurisation d’un accès SSH. Même si le protocole est très sécurisé en lui-même, une petite touche de protection en plus n’est pas de trop.

Voici donc le tuto de Velvetshadow et le lien vers son blog: http://blog.velvetshadow.fr/ (Je l’ai lu et avec un humour décalé mais tellement véridique, je me suis bien fendu la gueule :lol:)

tux-install-serveur11

Nous  allons voir comment en limiter l’accès pour plus de sécurité, et ensuite comment configurer Iptables pour restreindre les connexions entrantes à certains ports.

Le fichier de configuration SSH-Server se trouve dans:

[/etc/ssh/] et se nomme:

[sshd_config] : C’est ce fichier la que nous allons modifier en premier lieu.

Tout d’abord, afin d’éviter les attaque en Bruteforce (un robot test une par une toutes les combinaisons possible de mot de passe) visant l’accès SSH et donc en général le port par défaut : [22] nous allons définir un autre port d’écoute pour notre serveur:

sudo nano /etc/ssh/sshd_config

On ouvre le fichier de configuration avec Nano
Qui nous ouvre cette fenêtre :

config-ssh

On indique le nouveau port, disons 2424. Mais concrètement, cela nous protège que de la majorité des robots type Bruteforce. Toutefois si quelqu’un de mal intentionné cherche vraiment à vous nuire, il peut très facilement savoir que vous utilisez le port 2424 pour vos connections SSH. Il s’agit donc de renforcer la sécurité.

1) Interdire la connexion « root » :
Toujours dans ce fichier, il faut trouver la ligne [PermitRootLogin], et mettre [no] à la place de [yes]. Il est bien plus sur de se connecter en tant qu’utilisateur, et de devoir faire [su] avant une commande qui requiert les  permissions root.

2) N’autoriser que certains utilisateurs :
Il suffit d’ajouter une ligne [AllowUsers], suivi des noms d’utilisateurs autorisés séparés par des espaces. Ici, [AllowUsers MonsieurDupont] pour n’autoriser la connexion que pour l’utilisateur MoniseurDupont.

Voila déjà une bonne protection, facile à mettre en place. Tournons nous maintenant du côté d’iptables :

Iptable (seul) n’est rien d’autre qu’un parefeu. Le table que nous allons utiliser est « filter ». Elle contient les chaines [INPUT] (trafic entrant), [FORWARD] (le trafic routé au travers de la machine), et [OUTPUT] (trafic sortant)

Pour chacune de ces chaines, nous pouvons spécifier un port, un protocole, et une action (cible) à effectuer :

[ACCEPT]:  Accepte (!) le(s) paquet(s)
[DROP]: Rejette le(s) paquet(s)
[QUEUE]: Mets les paquets en attente pour les programmes et applications.

Avec ces connaissances, nous allons réaliser un script qui initialisera nos règles pour iptables de manière propre à chaque démarrage. Je détaillerais ce script à l’intérieur de celui-ci, via les commentaires désigné par un “#” . Créer le fichier avec un:

sudo nano /etc/init.d/omgitshot

Et remplissez-le avec ce qui se trouve dans la tableau ci-dessous.

# !/bin/sh

# Nettoyage complet des anciennes règles :

# -F efface toutes les règles

# -X seul, efface la table de toutes les chaines prédéfinies

# -Z remet à zero le compteur de paquet et d’octet dans toutes les chaines

# -t xxx : indique la table sur laquelle agir
# La table filter contient les chaines INPUT OUTPUT et FORWARD

iptables -t filter -F

iptables -t filter -X

iptables -Z

# Maintenant nous allons bloquer absolument tout le trafic entrant

iptables -t filter -P INPUT DROP

# Pour éviter de se faire ennuyer, on ne répondra pas aux pings en mettant DROP sur l’ICMP

# -A ajoute la règle en fin de chaine

# -p défini le protocole (ici donc, ICMP)

# -j défini la règle à appliquer (ici DROP)

iptables -t filter -A INPUT -p icmp -j DROP

# Bien, maintenant ouvrons laissons notre port SSH ouvert
iptables -t filter -A INPUT -p tcp –dport 2424 -j ACCEPT

iptables -t filter -A OUTPUT -p tcp –dport 2424 -j ACCEPT

# Je planifie d’en faire un serveur de fichier, donc je vais laisser ouvert les ports FTP

iptable -t filter OUTPUT -p tcp –dport 20:21 -j ACCEPT

iptables -t filter INPUT -p tcp –dport 20:21 -j ACCEPT

Voila notre configuration presque terminée ! Nous allons rendre ce fichier exécutable :

sudo chmod +x /etc/init.d/omgitshot

On l’ajoute aux scripts qui se lancent au démarrage :

sudo update-rc.d omgitshot defaults

On redémarre. Et nos nouvelles règles sont en place ! Pour vérifier, faites un:

sudo iptables -L

Remarque de Théo:

Merci à toi Velvetshadow, ton tuto est très bien fait. A part quelques notions et mise en pages, c’est le texte pur que tu m’a donné.
Alors qu’en pensez-vous de ce premier tuto ?