2 votes

Contrôler mon PC à distance en toute sécurité

Mon objectif principal est de pouvoir me connecter à distance à mon ordinateur personnel et de disposer d'une fonctionnalité de type bureau à distance.

Quelle combinaison de logiciels permettrait de satisfaire les cinq exigences ci-dessous ?


J'ai cinq contraintes principales :

  1. Il doit être sécurisé, de sorte que je sois sûr à 99,8 % d'être le seul à pouvoir accéder à mon PC.

  2. L'écran du PC local ne doit pas montrer l'image de l'écran de la session initiée.

  3. Il existe un logiciel capable de s'y connecter pour un PC sous Windows 7.

  4. Il démarre au démarrage et ne nécessite aucune interaction de l'utilisateur sur l'hôte après le démarrage.

  5. Le taux de rafraîchissement doit être élevé (~20-30) et la résolution doit être élevée (1280x1024).


Plus de questions :

VNC serait-il assez rapide pour satisfaire à l'exigence 5 ?

Est-il possible de sécuriser un serveur VNC avec une authentification par clé ou 2FA pour répondre à la première exigence ?

Est-ce que je pourrais faire en sorte que mon PC fasse automatiquement la redirection de port nécessaire avec UPnP ?


J'espère avoir réussi à m'expliquer assez clairement, désolé si quelque chose n'est pas clair. N'hésitez pas à demander des éclaircissements.

10voto

Avamander Points 413

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.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X