====== SSH ====== **SSH, SSHD et SSLH.** ===== Côté client ===== [[linux:ssh:ssh-client|Partie 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