3.3 KiB
categories: OpenBSD sysadmin title: Howto SSH ...
- Documentation : https://www.openssh.com/manual.html
SSH est un protocol réseau permettant de se connecter sur une machine à travers le réseau de manière sécurisée. Nous utilisons l'implémentation la plus répandue : OpenSSH. Ce protocol existe en plusieurs versions et nous utilisons uniquement la version 2. La version 1 comporte des failles de sécurité et ne doit plus être utilisée.
Howto SSH : Secure SHell
Administration SSH
Obtenir l'empreinte de la clé publique (RSA) du serveur :
$ ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub
De même pour la clé DSA :
$ ssh-keygen -lf /etc/ssh/ssh_host_dsa_key.pub
Regénérer les clés RSA/DSA du serveur (exemple sous Debian) :
# mv /etc/ssh/{moduli,*key*} /tmp/ssh/
# dpkg-reconfigure openssh-server
Creating SSH2 RSA key; this may take some time ...
Creating SSH2 DSA key; this may take some time ...
Restarting OpenBSD Secure Shell server: sshd.
Recharger le démon sshd sous Debian sans utiliser le script init.d :
# start-stop-daemon --stop --signal 1 --quiet --oknodo --pidfile /var/run/sshd.pid --exec /usr/sbin/sshd
Redémarrer le démon sshd sous Debian sans utiliser le script init.d :
# start-stop-daemon --stop --quiet --oknodo --retry 30 --pidfile /var/run/sshd.pid
# start-stop-daemon --start --quiet --pidfile /var/run/sshd.pid --exec /usr/sbin/sshd
SFTP chroot
Voici un ensemble de commandes pouvant être utilisées pour mettre en place un accès SFTP pour un ou plusieurs utilisateurs, qui n'auront accès qu'à une vue limitée de l'arborescence du système :
# Répertoire dans lequel SSHD va se chrooter
mkdir /home/sftp
chmod 755 /home/sftp
# Les utilisateurs du groupe sftp (ici account1) disposeront de l'accès SFTP restreint
groupadd sftp
useradd -g sftp -d /account1 account1
mkdir /home/sftp/account1/
chown account1:sftp /home/sftp/account1/
chmod 700 /home/sftp/account1/
Dans le fichier /etc/ssh/sshd_config :
Subsystem sftp internal-sftp
Match group sftp
ChrootDirectory /home/sftp
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
Clé SSH
Pour autoriser une clé SSH en limitant les accès via .ssh/authorized_keys :
no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-rsa XXXXX commentaires
SFTP Only
Mettre shell /usr/lib/sftp-server pour l'utilisateur et s'assurer que ce shell est bien présent dans /etc/shells
# usermod -s /usr/lib/sftp-server userna
# echo '/usr/lib/stfp-server' >> /etc/shells
VPN over SSH
Côté serveur SSH :
- Ajouter "PermitTunnel yes" dans la config ssh
- sysctl -w net.ipv4.ip_forward=1
- iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Puis se connecter de root vers root :
# ssh -w 42:42 ssh.example.com
On a ensuite un périphérique "tun42" utilisable des 2 côtés à configurer.
Serveur SSH : ifconfig tun42 172.17.18.2/24 En local : ifconfig tun42 172.17.18.1/24
On peut alors router au niveau IP :
ip route add 8.8.8.8/32 via 172.17.18.2 dev tun42
Log verbeux pour SFTP
Pour augmenter la verbosité du sous-système sftp-server, notamment loguer les commandes SFTP, il suffit de passer l'option -l à l'appel de sftp-server dans sshd_config :
Subsystem sftp /usr/libexec/openssh/sftp-server -l INFO