SSH
SSH, SSHD et SSLH.
Côté client
Configuration serveur
nano /etc/ssh/sshd_config
Protocol 2
#Changer le port
port 27022
#On écoute le local pour SSLH
ListenAddress 127.0.0.1
#Utilisateurs
PermitRootLogin no
AllowUsers user_remote
#Temps permis au login
LoginGraceTime 1m
#Temps avant déconnexion auto
ClientAliveInterval 1800
#Pour les clés
PermitEmptyPasswords no
PasswordAuthentication no
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys
#HostKey /etc/ssh/ssh_host_dsa_key
#HostKey /etc/ssh/ssh_host_rsa_key
#HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key
#Paramètres supplémentaires
UsePrivilegeSeparation sandbox
AuthenticationMethods publickey
KexAlgorithms curve25519-sha256@libssh.org
Ciphers chacha20-poly1305@openssh.com
MACs umac-128-etm@openssh.com,umac-128@openssh.com
Banner /etc/issue.net
LogLevel VERBOSE
X11Forwarding yes
X11UseLocalhost yes
Reboot service SSH
service sshd restart
Entropie
Vérifier l'entropie actuelle :
cat /proc/sys/kernel/random/entropy_avail
Installer le paquet haveged
apt-get install haveged
Revérifier l'entropie :
cat /proc/sys/kernel/random/entropy_avail
L'entropie sert à améliorer la génération de nombres aléatoires. Et aide donc pour SSH, mais aussi par exemple la génération de paires de clés.
Installation SSLH
SSL + SSH sur port 443. Installation avec Apache :
apt-get install sslh
Installation avec Nginx (refuser les paquets recommandés, pour ne pas installer Apache par dessus Nginx) :
apt-get install --no-install-recommends sslh
Aller dans le dossier des sites hébergés (“/etc/nginx/site-availables” ou “/etc/apache2/site-availables”), et changer le port d'écoute SSL :
sed -i -e "s/443/27443/g" *
redémarrer le serveur web (Apache/Nginx).
Configuration SSLH
nano /etc/default/sslh
RUN=yes
DAEMON_OPTS="--user sslh -t1 --on-timeout ssl --listen 0.0.0.0:443 -ssh 127.0.0.1:27022 -ssl 127.0.0.1:27443 -pidfile /var/run/sslh.pid"
Démarrer SSLH :
/etc/init.d/sslh start
PuTTY
Télécharger la dernière version de développement de puttygen: http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
Pour l'instant, elle seule prend en charge ed25519.
Lancer puttygen, importer la clé privée, et ensuite la sauvegarder au format PuTTY.
Il suffit enfin de la charger dans PuTTY, via le menu de gauche : “Connexion\SSH\Auth”.
Passer root dans une session SFTP
Avoir son user prêt, avec un accès SSH et dans les sudoers. On édite l'utilisateur :
visudo
Avoir une ligne du style :
liandri ALL = (ALL) NOPASSWD: ALL
- liandri : mon user,
- ALL = : s'applique à tous les hosts,
- (ALL) : peut exécuter en tant que n'importe quel groupe/user,
- NOPASSWD: : le tout sans mot de passe,
- ALL : peut exécuter toutes les commandes.
On recherche l'exécutable sftp-server pour vérifier son emplacement :
whereis sftp-server
Qui nous renvoie normalement : “/usr/lib/sftp-server”.
Maintenant, dans la fenêtre du client SFTP, ici WinSCP, aller dans les options avancées, menu “Environnement > SFTP”, et changer l'option “serveur SFTP” en :
sudo -s {mon path vers sftp-server}
Soit :
sudo -s /usr/lib/sftp-server