ssh

Configuration du client SSH

Bastion :

Host example
    User centos
    HostName 10.10.10.10
    ProxyCommand ssh host.example -W %h:%p

Redirection de port : ssh -L 8080:127.0.0.1:80 host.example

Authentification par MySQL

Installer le package libpam-mysql et ajouter ces lignes au fichier /etc/pam.d/sshd :

# Authentication
auth    sufficient      pam_unix.so
auth    sufficient      pam_mysql.so  config_file=/etc/pam-mysql.conf
auth    requisite       pam_deny.so
auth    required        pam_permit.so

# Standard Un*x authentication.
#@include common-auth

Notes :

  • Les informations concernant la base de données se situent dans le fichier /etc/pam-mysql.conf.
  • L’utilisateur doit toujours être ajouté au système grâce à la commande useradd --no-create-home --disabled-password --disabled-login <nom>.

Restreindre l’accès au SSH

  • D’abord, il faut activer le module PAM dans le fichier de configuration /etc/pam.d/sshd en décommentant la ligne account required pam_access.so
  • Redémarrer le serveur SSH
  • En éditant le fichier /etc/security/access.conf

Il est possible de préciser des commandes à mettre dans le ~/.ssh/authorized_keys, par exemple, pour lancer une commande lors de la connexion :

command="dump /home" ssh-rsa <CLE PUBLIQUE SSH>

Troubleshooting

Erreur droits de la HOME

On peut retrouver cette erreur dans le fichier /var/log/secure :

Dec 27 15:00:41 nxlrjbs003 sshd[26234]: Connection from 114.121.255.158 port 60433 on 114.121.249.24 port 22
Dec 27 15:00:41 nxlrjbs003 sshd[26234]: Authentication refused: bad ownership or modes for directory /home/natjbos
Dec 27 15:00:41 nxlrjbs003 sshd[26234]: Failed publickey for natjbos from 114.121.255.158 port 60433 ssh2: RSA 88:be:7c:a2:e9:c5:76:f0:2e:f3:9b:15:48:8b:0e:f9

Il peut s’agir de problème de droit sur la home directory.

Résolution

  • Modifier les droits des fichiers suivants :
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
  • Mettre le paramètre StrictModes à “no” dans le fichier /etc/ssh/sshd_config

Erreur hôte non autorisé

Toujours dans le fichier /var/log/secure, on peut avoir l’erreur suivante :

Jan  2 13:47:30 nxlrjbs003 sshd[12492]: Authentication tried for natjbos with correct key but not from a permitted host (host=114.121.255.158, ip=114.121.255.158).
Jan  2 13:47:30 nxlrjbs003 sshd[12492]: Failed publickey for natjbos from 114.121.255.158 port 50650 ssh2: RSA 88:be:7c:a2:e9:c5:76:f0:2e:f3:9b:15:48:8b:0e:f9

Résolution

Cette erreur peut survenir lorque l’on ajoute l’option --from dans le fichier authorized_keys. Dans ce cas là, il faut mettre l’adresse vu dans les log (ici l’adresse dans host=114.121.255.158) et l’ajouter dans le fichier authorized_keys:

--from="100.100.100.100"

Sinon, il est possible d’autoriser à tous les hôtes :

from="*"

Délocker une session

Délocker une session si trop de tentatives de connection échouées.

[root@tecmint pam.d]# pam_tally2 --user=tecmint --reset
	Login           Failures  Latest    failure     From
	tecmint             5     04/22/13  17:10:42    172.16.16.52

Sources