SSH (Secure Shell)

SSH(Secure Shell)

Pré-requis :

Avoir installé un distribution Linux, généralement le ssh sera présent par défaut. Sinon c'est par ici :

-< INSTALLATION DE SSH >-

#apt-get install openssh-server

Répondre oui s'il n'est pas installer, il se peut qu'il soit déjà présent !

-< CONFIGURATION DE SSH >-

Éditer le fichier de configuration /etc/ssh/sshd_config :
#nano /etc/ssh/sshd_config

Les lignes les plus importantes sont :

Port 22 (Signifie que le serveur SSH écoute sur le port 22)
PermitRootLogin yes (autorise root à se connecter à distance JUSTE POUR l'INSTALLATION (voir Sécurité plus bas))
X11Forwarding yes (Pour travailler en déport d'affichage par SSH (mode graphique sur la machine distante)

Si vous avez modifié le fichier de configuration du serveur, il faut lui faire relire son fichier
#/etc/init.d/ssh reload

Votre serveur ssh est prêt !

-< EMPÊCHER ROOT DE SE CONNECTER A DISTANCE >-

allez dans le répertoire ssh

#cd /etc/ssh

Éditer le fichier sshd_config

#nano sshd_config

A la ligne :

#PermitRootLogin yes

Décommentez la ligne (enlever le #) et mettre no

PermitRootLogin no

Sauvegarder et quitter.

Connexion en SSH : connectez vous avec votre utilisateur (si celui-ci en a la permission)

#ssh <votre_adresse_ip> -p <le port>

Une fois connecter tapez :

#su -

vous serez invité à entrer le mot de passe ROOT, entrez-le et valider.

Vous êtes maintenant connecté en ROOT !

-< SÉCURITÉ >-

Enlevez vous du standard en modifiant le fichier comme suit :

#nano /etc/ssh/sshd_config

Port 15015 Changer le port
AllowUsers olivier romain geant Autoriser un nombre limité d'utilisateur
OU AllowUsers VOTRE_UTILISATEUR@* *@192.168.0.*

VOTRE_UTILISATEUR@* = limite l'accès externe à un seul utilisateur

*@192.168.0.* accorde l'accès à tous les autres utilisateurs en local

AllowGroups admin Autoriser un nombre limité de groupe
Protocol 2 Protocole version 2
LoginGraceTime 45 Temps réduit pour se logger
X11Forwarding no On interdit le travaille en déport d'affichage par SSH (mode graphique sur la machine distante)
PermitRootLogin no Empêcher ROOT de se connecter à distance.

Lors de votre prochaine connexion en ssh avec putty lui préciser le port 15015.


Ralentir le délai login et pass :


lolotux nous propose une solution peu envisagé qui est de ralentir le login pour rendre fou les robots brutes forces

On télécharge les sources de openssh : ftp://ftp.fr.openbsd.org/pub/Open [...] 5p1.tar.gz

On le dé compacte et entre dans le répertoire....
On édite le fichier "auth-passwd.c" (Ecrit en C)

On édite le fichier auth-passwd.c (Ecrit en C)
On recherche la ligne :

auth_password(Authctxt *authctxt, const char *password)


La partie qui nous intéresse est :

/*
* Tries to authenticate the user using password. Returns true if
* authentication succeeds.
*/
int
auth_password(Authctxt *authctxt, const char *password)
{
struct passwd * pw = authctxt->pw;
int result, ok = authctxt->valid;
#if defined(USE_SHADOW) && defined(HAS_SHADOW_EXPIRE)
static int expire_checked = 0;
#endif

Après le dernier #endif on ajoute :

/* Password authentication delay */
sleep(10);

On le compile :

# ./configure --prefix=/usr --sysconfdir=/etc/ssh
# make
# su

.....
# make install

On relance le serveur SSH :

#/etc/init.d/sshd restart

On test :

ssh -l user 82.xx.yy.zz[ENTER]
...... là on attend.... (les robots ne vont pas aimer)
password : xxxxxxxx


...... là on attend de nouveau....(les robots ne vont vraiment pas aimer) 

Authentification par certificat RSA ou DSA :

Création des clef sur votre poste client depuis votre compte standard.

(ici je suis en root mais préféré un utilisateur simple qui aura le droit de se connecter en ssh)


#ssh-keygen -t rsa

cette commande crée les fichiers /root/.ssh/id_rsa et /root/.ssh/id_rsa.pub

Si vous ne voulez pas taper de mot de passe , laisser vide à la demande de celui-ci .

ssh

#nano /root/.ssh/id_rsa.pub

ssh

ensuite il faut copier la clef publique du client dans le fichier/.ssh/authorized_keys sur la machine destination

# scp /.ssh/id_rsa.pub root@destination:.ssh/authorized_keys

ou transférer en ftp id_rsa.pub puis connectez vous sur le serveur distant en ssh avec putty et renommer le fichier id_rsa.pub en authorized_keys puis mettez-le au bon endroit dans /root/.ssh/authorized_keys

warning Attention à la fin des lignes copiées que ce soit bien votre adresse ip rootat120.120.120.120 (fourni par votre FAI ) et non le nom d'hôte de la machine distante rootatgoodspeedreseau !

( que ce soit dans le fichier id_rsa.pub ou authorized_keys )

Voilà, maintenant plus besoin de mot de passe pour vous connecter ..
Pour désactiver la possibilité à ceux qui n'ont pas la bonne clef RSA de se connecter ,
il nous suffit maintenant de passer le paramètre no à PasswordAuthentication

PasswordAuthentication no

Pour finir on redémarre ssh
#/etc/init.d/ssh restart

Off

Rechercher

RizVN Login

Calendar

July 2017
S M T W T F S
25 26 27 28 29 30 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

Traffic

Aujourd'hui206
Hier251
Cette semaine1529
Ce mois5559
Total348840

Info Visiteur

  • IP Visiteur : 54.166.157.192

Qui est connecté
2
Online

samedi 22 juillet 2017 18:45