Ce qui est possible dépend de ce que le pare-feu autorise.
Si le pare-feu autorise le trafic arbitraire sur le port 443
Certains pare-feu sont très simples et autorisent tout ce qui est sur le port 443. Si tel est le cas, le moyen le plus simple d’atteindre votre serveur domestique consiste à écouter les connexions SSH sur le port 443. Si votre ordinateur est directement connecté à Internet, ajouter Port 443
à /etc/ssh/sshd_config
ou /etc/sshd_config
juste en dessous de la ligne qui dit Port 22
. Si votre ordinateur est derrière un routeur / pare-feu qui redirige les connexions entrantes, faites-le rediriger vers le port 443 vers le port 22 de votre serveur avec quelque chose comme:
iptables -t nat -I PREROUTING -p tcp -i wan0 --dport 443 -j DNAT --to-destination 10.1.2.3:22
où wan0
est l'interface WAN sur votre routeur et 10.1.2.3 l'adresse IP de votre serveur sur votre réseau domestique.
Si vous souhaitez autoriser votre serveur domestique à écouter à la fois les connexions HTTPS et les connexions SSH sur le port 443, il est possible - le trafic SSH et HTTPS peut facilement être distingué (dans SSH, le serveur parle en premier, tandis que dans HTTP et HTTPS, le client première). Voir http://blog.stalkr.net/2012/02/sshhttps-multiplexing-with-sshttp.html et http://wrouesnel.github.io/articles/Setting%20up%20sshttp/ pour des tutoriels sur la définition de cette avec sshttp et également Have SSH sur le port 80 ou 443 lorsque le serveur Web (nginx) est en cours d'exécution sur ces ports
Si vous avez un proxy Web permettant le tunneling CONNECT
Certains pare-feu bloquent toutes les connexions sortantes, mais permettent de naviguer sur le Web via un proxy qui permet à la méthode HTTPCONNECT
de percer efficacement un trou dans le pare-feu. La CONNECT
méthode peut être limitée à certains ports, vous devrez donc peut-être combiner cela avec une écoute sur le port 443 comme ci-dessus.
Pour que SSH passe via le proxy, vous pouvez utiliser un outil comme le tire-bouchon . Dans votre ~/.ssh/config
, ajoutez une ProxyCommand
ligne comme celle ci-dessous, si votre proxy Web est http://web-proxy.work.example.com:3128
:
Host home
HostName mmm.dyndns.example.net
ProxyCommand corkscrew web-proxy.work.example.com 3128 %h %p
Envelopper SSH dans HTTP (S)
Certains pare-feu n'autorisent pas le trafic SSH, même sur le port 443. Pour y faire face, vous devez masquer ou canaliser SSH en un élément autorisé par le pare-feu. Voir http://dag.wiee.rs/howto/ssh-http-tunneling/ pour un tutoriel sur cette opération avec proxytunnel .