Voilà une petite surprise
!! 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
)

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 :

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 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 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 ?






#1 par Velvetshadow à 18 juin 2009 - 18:23
Citation
Hey
Merci pour la publication 
Si je dois faire quelques autres tutos simples pour mes études ou sur mon temps libres, je te les enverrais
#2 par Théo à 18 juin 2009 - 18:25
Citation
Ah bah ce sera avec plaisir
)
#3 par ButterflyOfFire à 24 juin 2009 - 1:55
Citation
Excellent tuto
Et pour renforcer un peu plus si l’on est parano, il suffit de rajouter une dose de “port knocking” en spécifiant des ports en TCP ou TDP et ça fait l’affaire
Salutations amicales
#4 par Théo à 24 juin 2009 - 9:42
Citation
Merci à toi, c’est sympa… c’est ce genre de commentaire qui donne envie de continuer.
#5 par grigric à 15 juillet 2009 - 14:07
Citation
#6 par Théo à 15 juillet 2009 - 14:24
Citation
Intéressant, je vais voir ça. Merci
#7 par Jinfoa à 25 septembre 2009 - 19:31
Citation
Très bon tuto
mais il y a une petit erreur c’est “sudo update-rc.d omgitshot defaults” qu’il faut mettre et non “sudo update.rc.d omgitshot defaults”.
#8 par Théo à 25 septembre 2009 - 20:50
Citation
Merci, je rectifie !
#9 par ButterflyOfFire à 25 septembre 2009 - 22:37
Citation
Au fait, pour ceux qui passent par ici, je viens d’apprendre après des mois de surfs qu’on peut lancer le serveur SSH sur deux ports différents.
Je m’explique :
Sur mon dédié, j’ai autorisé cache.ovh.net afin qu’il se connecte sur le port 22 de ma machine et il n’y a que cache.ovh.net qui peut se connecter sur ce port et toutes les autres IP ne le sont pas.
Puis dans la config du serveur SSH j’ai mit Port 2425 par exemple afin de me connecter dessus avec mon IP fixe.
Ce qui me fait deux accès sur un même serveur pour uniquement 2 IP et dropant toutes les autres.
J’espère que vous arriverez à comprendre un peu mon charabia
Salutations amicales
#10 par Théo à 26 septembre 2009 - 12:10
Citation
Merci pour l’astuce, ça devrait aider
#11 par Velvetshadow à 26 septembre 2009 - 12:22
Citation
Ah oui merci Jinfoa ^^ et bonne astuce ButterflyOfFire
Fail2ban est une bonne sécurité supplémentaire Grigric, donc +1
#12 par Guizmo.7 à 21 janvier 2010 - 17:37
Citation
Je viens de découvrir ce site.Il est intéressant et complet, je repasserai avec plaisir
Je voulais juste signaler pour les lignes sur le parefeu :iptables -t filter -A INPUT -p tcp –dport 2424 -j ACCEPTAccepte les paquets qui rentrent sur le port 2424.iptables -t filter -A OUTPUT -p tcp –dport 2424 -j ACCEPTAccepte les paquets qui sortent à destination du port 2424.Je pense qu’il faudrait remplacer le dport en sport sur la dernière ligne pour autoriser les paquets à sortir à partir du port 2424.Bonne continuation !
#13 par lionel6630 à 22 mai 2010 - 8:07
Citation
super tes petits tutos !!!!
#14 par lionel6630 à 27 mai 2010 - 16:46
Citation
J’ai un petit soucis avec mon serveur !!!!Je ne peux plus me connecter dessus via mon navigateur quelqu’un a une idée.
#15 par Théo à 27 mai 2010 - 18:18
Citation
Tu rentres la bonne IP ?
Tu as fais quoi depuis, entre le moment où ça marchait et là ?
#16 par lionel6630 à 28 mai 2010 - 7:02
Citation
Et bien une panne de courant !Par contre en local je peux me connecter mais plus d’accès internet sur mon serveur.
#17 par Théo à 28 mai 2010 - 16:57
Citation
Panne de courant…je pense à la box qui à été réinitialisée. Remet l’IP du serveur dans ta box.
#18 par lionel6630 à 29 mai 2010 - 21:13
Citation
Déjà fait ! en plus ma box est sur un onduleur.Bon je suis passé par une reinstall sous unbuntu server 10.04, par contre il faut que je remette mes fichiers sur mon serveur. Avec un un chmod -r 777 ça ira.
#19 par Théo à 31 mai 2010 - 18:26
Citation
Faut que je le fasse aussi… quand j’aurais le courage et le temps
#20 par lionel6630 à 2 juin 2010 - 8:38
Citation
et franchement le seul truc qui manque sur le site c’est un petit forum !!!!!!!!!!!
#21 par lionel6630 à 2 juin 2010 - 9:04
Citation
bon j’ai trouvé mon soucis: c’est à partir du moment que je fais la manip sur iptable après le redémarrage je ne peux plus connecter à mon serveur
#22 par Théo à 2 juin 2010 - 11:27
Citation
Ouais, c’est vrai un forum serait bien. J’y pense t’inquiètes pas. Avec Iptables, tu as dû peut-être te mettre dans les IP “bannies”. Malheureusement, je connais très mal Iptables.
#23 par Guizmo.7 à 2 juin 2010 - 11:41
Citation
Donne le résultat de “iptables -L -vn” et on verra ce qu’on peut faire…
#24 par lionel6630 à 2 juin 2010 - 13:26
Citation
bon j’ai trouvé (en partie) j’ai modifié iptables en ignorant la ligne qui bloque tout le trafic; Pas top !!!Voilà ce que tu m’as demandé Guizmo:
Chain INPUT (policy ACCEPT 141 packets, 12310 bytes) pkts bytes target prot opt in out source destination 0 0 DROP icmp – * * 0.0.0.0/0 0.0.0.0/0 Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination Chain OUTPUT (policy ACCEPT 92 packets, 10375 bytes) pkts bytes target prot opt in out source destination
#25 par Guizmo.7 à 3 juin 2010 - 8:54
Citation
C’est super chiant à lire mais si je vois bien, tu laisses tout passer sauf les paquets icmp en entrée.Si c’est pour faire un firewall comme ça, tu peux le désactiver…Les policy sont à accept, donc tous les paquets qui ne matchent aucune ligne seront acceptés par défaut.Ce n’est pas la bonne politique de filtrage car tu ne peux pas penser à tous les paquets qu’il faudrait bloquer.Pour faire un truc propre, il faut mettre les policy à drop :
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
Et ensuite accepter uniquement les paquets dont on a besoin.Pour cela tu peux voir le mien : static.guillaumeg.eu/rat/opt/firewall/firewall-6.5 ou en trouver plein d’autre sur le web. Bon courage pour ton firewall, c’est une partie importante du serveur !
#26 par lionel6630 à 3 juin 2010 - 10:21
Citation
Je sais bien que mon firewall ne sert pas à grand chose puisque justement la ligne iptables -P input DROP j’ai du la commenter pour pouvoir accès à mon serveur.En fait j’ai fait comme dit dans le tuto j’ai fait un copier coller de la config et c’est que ça coince !!!!
#27 par Guizmo.7 à 3 juin 2010 - 10:59
Citation
Peut-être as-tu oublié les lignes autorisant le SSH ?
Je ne les vois pas dans ta config.
iptables -t filter -A INPUT -p tcp –dport 2424 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp –dport 2424 -j ACCEPT
#28 par lionel6630 à 3 juin 2010 - 13:12
Citation
encore moi !!!!!je viens de trouver ça en fouinant sur la toile: http://www.canonne.net/linux/iptables/index.php Si ça peut aider…………..