1. Installation de SSH
La première chose à faire est d'installer un serveur SSH (protocole Secure Shell). Pour ubuntu, il suffit d'écrire une commande. Il suffit de copier-coller la commande suivante et le serveur sera installé.
sudo apt install openssh-server
Si elle existe, ce serait une bonne idée de
sudo apt purge openssh-server
avant et la réinstallation pour éviter tout problème avec l'installation.
Une autre bonne idée pourrait être d'installer le client aussi, si vous voulez tester si votre serveur fonctionne.
sudo apt install openssh-client
2. Configurer le serveur SSH
Maintenant, SSH doit être configuré pour activer l'authentification par clé pour une sécurité accrue. Comme première étape, la configuration originale doit être sauvegardée, mais vous pouvez sauter cette partie si vous êtes sûr de ne pas vous tromper.
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
sudo chmod a-w /etc/ssh/sshd_config.bak
Vous pouvez maintenant utiliser l'éditeur de texte de votre choix pour modifier le fichier de configuration. Vous pouvez utiliser par exemple gedit, nano ou vim comme éditeur.
sudo <TEXT EDITOR HERE> /etc/ssh/sshd_config
Maintenant que vous avez ouvert le fichier de configuration. La première chose à faire est de changer le port. Il est généralement recommandé de changer le port du serveur SSH pour le cacher un peu. Cela empêche également la plupart des robots d'essayer de pénétrer dans votre machine.
Pour changer le port
Port <Port number>
Changez-le en, par exemple
Port 2213
Pour activer le transfert X11 (affichage à distance de l'écran de votre PC), changez.
X11Forwarding <Value>
à
X11Forwarding yes
Exécutez maintenant cette commande pour redémarrer le serveur (pour que les changements de configuration soient appliqués.
sudo systemctl restart sshd
Vérifions le statut. Il doit être vert "actif (running)".
sudo systemctl status sshd -l
Essayez maintenant de vous connecter à votre serveur ssh en utilisant cette commande.
ssh -p <Port number> <Username>@localhost
3. Configurer les clés RSA
La première chose à faire est de créer le dossier pour les clés. [1]
mkdir ~/.ssh
Maintenant, nous allons générer la clé. Suivez les instructions.
ssh-keygen
Maison cryptée
Si votre répertoire personnel est crypté, SSH ne peut pas accéder à votre fichier authorized_keys car il se trouve dans votre répertoire personnel crypté et ne sera disponible qu'après votre authentification. Par conséquent, SSH utilise par défaut l'authentification par mot de passe.
Pour résoudre ce problème, créez un dossier en dehors de votre domicile nommé
sudo mkdir /etc/ssh/<username>
Ce répertoire doit ont des permissions de 755 et sont la propriété de l'utilisateur. Déplacez le fichier authorized_keys dedans. Le fichier authorized_keys doit ont des permissions 644 et sont la propriété de l'utilisateur.
Puis éditez votre /etc/ssh/sshd_config et ajoutez :
AuthorizedKeysFile /etc/ssh/%u/authorized_keys
Une fois la clé générée, copions-la sur l'hôte.
ssh-copy-id -p <Port number> <User name>@<Host (localhost)>
Une fois que c'est fait. Les permissions correctes sur la clé et le dossier doivent être définies pour les sécuriser.
chmod go-w ~/
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
(If you have encrypted home look at that section's folder permissions)
Si les autorisations sont incorrectes, vous rencontrerez très probablement des erreurs. (Source : Wiki Ubuntu )
Maintenant pour sécuriser l'authentification finalement, trouvez ces lignes.
RSAAuthentication <Value>
PubkeyAuthentication <Value>
PasswordAuthentication <Value>
ChallengeResponseAuthentication <Value>
Changez-les en.
RSAAuthentication no
PubkeyAuthentication yes
PasswordAuthentication no
ChallengeResponseAuthentication no
< facultatif> Ajoutez/modifiez également les lignes suivantes dans votre fichier de configuration pour sécuriser davantage ("durcir") votre système. En savoir plus sur ces lignes ici ou dans les pages de manuel de sshd.
TCPKeepAlive no
ClientAliveInterval 60
ClientAliveCountMax 5
UsePrivilegeSeparation yes
PermitEmptyPasswords no
PermitRootLogin no
UseLogin no
UsePAM no
MaxAuthTries 2
Permet d'utiliser la compression si le client le demande. Utilisez l'indicateur de compression dans le client pour économiser la bande passante (oui) ou le CPU (non).
Compression yes
< /optional>
Finalisation de l'installation
Exécutez maintenant cette commande pour redémarrer le serveur (pour que les changements de configuration soient appliqués.
sudo systemctl restart sshd
Vérifions le statut avec
sudo systemctl status sshd -l
Assurez-vous qu'il est vert et "actif (en cours d'exécution)". Si ce n'est pas le cas, vous devez vérifier les messages d'erreur. Si tout va bien, essayez de vous connecter à votre serveur ssh en utilisant cette commande.
ssh -p <Port number> <Username>@localhost
S'il échoue, lance sshd via la ligne de commande avec le débogage activé. De cette façon, vous saurez instantanément ce qui ne va pas.
4. Configuration d'une clé USB portable pour la redirection X11
Télécharger PuTTY portable. Ensuite, il suffit d'importer les clés, d'activer x11forwarding. Définissez votre port et votre nom d'utilisateur. Puis l'emplacement du serveur x.
Télécharger Serveur Xming X pour Windows. Comme Windows n'a pas de serveur X par défaut, vous devez en télécharger un. Il fonctionne aussi de manière portable (il devrait au moins). Démarrez-le avant de vous connecter au serveur ssh avec PuTTY.
5. Configuration du DNS dynamique.
La première étape à suivre est de sélectionner le fournisseur de dns dynamiques, j'ai moi-même choisi dynu.com. Maintenant, installons les logiciels nécessaires. Pour cela copiez-collez cette commande dans votre terminal. Cette fois nous utiliserons ddclient.
sudo apt install ddclient
Cela lancera un écran de configuration, passez-le et éditons le fichier de configuration nous-mêmes. (Utilisez nano, gedit comme vous le souhaitez pour éditer le fichier comme précédemment)
sudo <your text editor> /etc/ddclient.conf
Maintenant, copions le contenu de ici .
# ddclient configuration for Dynu
#
# /etc/ddclient.conf
daemon=60 # Check every 60 seconds.
syslog=yes # Log update msgs to syslog.
mail=root # Mail all msgs to root.
mail-failure=root # Mail failed update msgs to root.
pid=/var/run/ddclient.pid # Record PID in file.
ssl=yes # Use ssl-support. Works with ssl-library .
use=web, web=my.ip.fi/ # Get ip from hardware interface.
server=api.dynu.com # IP update server.
protocol=dyndns2
login=YOURUSERNAME # Your username.
password=YOURPASSWORD # Your password or MD5 of password.
MYDOMAIN.DYNU.COM # List one or more hostnames one on each line.
Modifiez la ligne de l'interface réseau, du nom d'hôte, du nom d'utilisateur et du mot de passe pour qu'elle fonctionne correctement. Vous devez également avoir IO::Socket::SSL. Vous pouvez l'installer en utilisant cette commande.
sudo apt install libio-socket-ssl-perl
Maintenant, configurons le ddclient pour qu'il fonctionne en arrière-plan. [2]
sudo <your text editor> /etc/default/ddclient
Trouvez les lignes qui disent
run_dhclient=<value>
run_ipup=<value>
run_daemon=<value>
Changez-les en
run_dhclient="false"
run_ipup="false"
run_daemon="true"
Maintenant, commençons
sudo systemctl start ddclient
Vérifions s'il fonctionne correctement
sudo systemctl status -l ddclient
Assurez-vous qu'il est vert ("Active = active(running)")
Le DNS dynamique devrait maintenant être configuré. Vous pouvez maintenant le tester avec
ssh -p <Port number> <Username>@<Hostname (your dynamic DNS one)>
Il devrait dire
The authenticity of host '[<Dynamic DNS hostname>]:<Port> ([<Your IP address>]:<Port>)' can't be established.
Il imprimera également l'empreinte de la clé ECDSA, vous pouvez utiliser
ssh-keygen -l -f /etc/ssh/ssh_host_ecdsa_key.pub
Vérifier si les empreintes sont identiques, puis écrire "oui" pour continuer. NB ! Il ne devrait JAMAIS reposer la même question sur la même machine si vous n'avez pas effacé le fichier des hôtes connus et que l'IP n'a pas changé (si vous utilisez un DNS dynamique, elle changera). Si c'est le cas, ne continuez absolument pas, à moins que vous ne puissiez à nouveau vérifier qu'il s'agit de la même clé d'empreinte digitale que la vôtre sur le serveur.
Il devrait maintenant s'être connecté sans problème, en demandant peut-être la phrase de passe de votre clé, mais rien d'autre.
6. Le transfert de port
Maintenant que le DNS dynamique et le serveur ont été configurés et que vous souhaitez vous connecter à votre PC depuis d'autres réseaux. Vous devez alors ouvrir d'une manière ou d'une autre les paramètres de votre routeur et transférer le port que vous avez défini dans le fichier de configuration sshd. Sinon, vous ne pourrez pas vous connecter au PC, car le routeur le bloquera. Cela dépend fortement du fabricant du routeur, il suffit donc de chercher sur Google " port forward " ou " port forward ". Vous pouvez également lire le manuel.
Si quelque chose n'est pas clair ou est erroné, faites-le moi savoir, s'il vous plaît.