La meilleure façon d'accéder à distance à un PC en dehors d'un VPN?

Je cherche une solution pour accéder à mon PC depuis mon iPad à l’extérieur. J’ai regardé TeamViewer, VNC et SSH. La performance semble médiocre avec TeamViewer. J’ai entendu dire que VNC n’est pas sécurisé sans VPN pour accéder à un PC hors de votre réseau domestique.
Quelle est la meilleure façon d’accéder à distance à un PC ? Existe-t-il un moyen de rendre VNC plus sûr autre que d’utiliser un VPN ? Ou le SSH est-il suffisamment sécurisé et puis-je utiliser une interface graphique sur SSH ?

Édition : Merci à tous pour ces excellents conseils, j’ai beaucoup appris.

J’utilise un Raspberry Pi avec pivpn installé et configuré avec WireGuard, mais tu peux aussi utiliser OpenVPN. Il existe des clients iOS qui fonctionnent bien. Ensuite, j’utilise le client RDP pour iOS. Tu dois faire du port forwarding sur ton routeur et utiliser un client DNS dynamique. Il y a de bons tutoriels sur YouTube. Cela fonctionne bien, c’est sécurisé et cela me permet d’accéder à mon réseau domestique depuis tous mes appareils.

Tailscale.

C’est basé sur WireGuard mais ils simplifient tout le processus. Tu peux utiliser un compte Google ou MS pour l’authentification. Fonctionne sur Linux/Windows/IOS/Mac.

C’est plutôt intuitif.

Y a-t-il une raison spécifique pour laquelle tu ne veux pas utiliser un VPN ?

Si tu veux juste te connecter à un ordinateur, Chrome Remote Desktop est gratuit et plutôt génial. Il peut fonctionner comme une extension dans ton navigateur ou comme une application dédiée. Tu peux aussi te connecter depuis n’importe quel navigateur Chrome.

Google propose sa propre fonction de bureau à distance, assez simple à configurer : https://remotedesktop.google.com/?pli=1

Certains routeurs ont même un serveur OpenVPN intégré. Tant que tu as un mot de passe sécurisé configuré pour OpenVPN, tu devrais être sécurisé. WireGuard ajoute une couche de sécurité supplémentaire car il utilise des certificats pour approuver les connexions. Comme autre solution économique, tu peux configurer un Raspberry Pi avec PiVPN. J’ai utilisé OpenVPN sur des ports par défaut pendant des années sans problème. De plus, WireGuard est considéré comme plus rapide d’après les tests.

TeamViewer ou DWService. Je préfère ce dernier.

Je n’ai jamais eu de problème avec TeamViewer, c’est très pratique et facile à configurer.

Supremo est multiplateforme et tu peux y accéder de façon sécurisée et rapide.

Ton PC fonctionne sous Linux ? Oui, je pense que tu peux faire une connexion en shortcut et lancer une session GUI distante via SSH, mais je ne suis pas sûr de la configuration exacte. Connecte-toi en SSH avec des paires de clés et suis les bonnes pratiques.

Si ton PC tourne sous Windows et que tu veux une solution plus simple, utilise Remote Utilities. Ça fonctionne très bien. Leur logiciel client pour Linux est en bêta, mais il devrait sortir bientôt. Je sais qu’ils ont une application cliente pour Android, probablement aussi pour iOS. C’est gratuit jusqu’à 10 PC.

Y a-t-il une raison pour penser que VNC via VPN aurait de meilleures performances que TeamViewer (ou autre solution de contrôle à distance) ? Les deux doivent utiliser la même bande passante de connexion, et le VPN pourrait réduire un peu cette performance.

Selon ce que tu veux faire, tu pourrais héberger un site web. Le chiffrement TLS est aussi bon, voire meilleur, qu’un VPN.

Utilise Cloudflare comme DNS pour limiter l’accès à ton serveur aux adresses IP de Cloudflare. Ensuite, mets en place un CAPTCHA pour empêcher les robots d’accéder. Restreins l’accès à ton site à ton pays.

Ensuite, sur ton serveur, n’accepte que ta clé SSH ou ta clé RSA, télécharge-la en tant que certificat ou autre.

Ça fonctionne pour moi.

Utilise un port non standard et tu seras probablement en sécurité. Je utilise un port aléatoire supérieur à 8000 pour RDP et SSH. Mon routeur redirige le port 8012 vers mon serveur CentOS pour SSH, et le port 8142 vers ma machine Windows pour RDP.

Je vérifie régulièrement mes logs de pare-feu et personne ne m’a jamais attaqué sur ces ports. Par contre, si tu utilises les ports standards, tu risques d’être beaucoup ciblé.

Il n’y a pas de solution, sauf si tu utilises un logiciel/service qui en crée un pour toi… Tu peux toujours t’en passer d’un VPN. Tu peux aussi faire en sorte que l’IP change chaque jour avec une ligne non statique… Mais tu risques d’exposer ton PC et ton réseau à l’inconnu.

J’utilise Splashtop Personal pour accéder à mes PC Windows depuis de nombreuses années. Ça vaut bien 2 $ par mois pour un accès à distance en dehors du LAN.

Essaie OpenVPN Access, héberge ton propre serveur OpenVPN sur n’importe quelle machine de ton réseau, et utilise-le pour accéder à ton réseau domestique.

Aucun coût, à ma connaissance, contrairement à un service VPN payant routant le trafic vers un serveur externe. Ici, c’est un VPN distant, utilisé pour se connecter au réseau d’un autre endroit.

Tu pourrais utiliser Zerotier. La version gratuite permet jusqu’à 50 clients.

Tu peux héberger ton propre serveur VPN, tu n’as pas besoin d’un service payant. La plupart des routeurs domestiques ont une option serveur VPN ou bien tu peux faire du port forwarding vers une machine qui tourne le serveur VPN. Si tu ne veux pas faire fonctionner un serveur VPN, tu peux configurer un tunnel SSH.

Pour accéder à un PC local via VNC sans VPN, tu peux faire du port forwarding SSH uniquement. Configure une machine Linux locale ou autre.

Quand tu veux accéder à la machine, tu fais :

ssh user@IPpublique ou nomdomaine -D 1080, n’importe quel port supérieur à 1024 (sauf si privilégié). 1024-65535

Une fois la connexion initiée, l’option -D crée un port dynamique sur le port 1080 dans cet exemple.

Dans ton client VNC, va dans les paramètres de proxy et mets en SOCKS5 localhost:1080 ou 127.0.0.1:1080. Toute application configurée pour le proxy SOCKS5 sera tunnellée et encryptée via ton SSH jusqu’à chez toi.

Le proxy SOCKS5 n’est pas encrypté sur ta machine locale, mais le sera avant de sortir de ton PC. Ton client VNC dira peut-être que ce n’est pas crypté, mais ce n’est pas important puisqu’il ne connaît pas le tunnel SSH.

Tu peux aussi configurer ton navigateur pour utiliser le proxy SOCKS5 local, et ta session de navigation sera proxyée via le même tunnel. Vérifie que le proxy DNS SOCKS5 est activé. Dans Firefox, il faut changer les paramètres de proxy sous réseau. D’autres navigateurs peuvent nécessiter une extension. Chrome et Edge ouvriront les paramètres proxy de ton ordinateur.

J’ai utilisé à la fois RealVNC et Google Remote Desktop. Les deux me conviennent. RealVNC peut être installé sur la plupart des OS. Je suis sûr que certains auront des problèmes avec ces suggestions.