Hallo,
ich habe einen kleinen Nextcloud-Server "hinter" meinem DG-Anschluss stehen. Dabei fahre ich mit einem (schon angesprochenen) reverse-SSH-Tunnel ganz gut, umdenServer auch über IPv4 ansprechen zu können (IPv6 ist selbstverständlich ohne große Umstände möglich).
Ich habe dafür den kleinsten vServer bei Ionos.de für 2,-€ im Monat "gemietet".
Wenn man sich ein bisschen einliest, klappt das auch recht gut und ist schnell eingerichtet:
ZitatAlles anzeigenFalls es für jemanden interessant ist, hier steht, wie es geht mit dem reverse-SSH-Tunnel:
https://www.heise.de/select/ct/2018/2/1515452696423264
c’t 2/2018 S. 138
Und das ist die Kurzanleitung in Stichpunkten:
Auf dem vServer
# nano /etc/ssh/sshd_config
> ### relevante Einträge
PermitRootLogin without-password # hier darf nicht no stehen
GatewayPorts yes
ClientAliveInterval 10
ClientAliveCountMax 3
dann:
# cd /root/
[# mkdir .ssh] # existiert hier bereits
# ssh-keygen -t ed25519 -N -f /root/.ssh/example-root
# cd /root/.ssh
# cp example-root.pub authorized_keys
# nano /root/.ssh/authorized_keys
> ### ganz am Anfang der Schlüsselzeile, also als erstes:
command=“/bin/false“ ssh-ed…
# chmod 600 /root/.ssh/authorized_keys
– Die Datei /root/.ssh/example-root muss zum Heimserver über die IPv6 Adresse kopiert
werden;
– auf dem Router muss der Zugang zum Gerät frei gegeben werden:
# ip a #mittlere inet 6 Adresse, also die Adresse vor: […] scope global dynamic mngtmpaddr
– ufw dazu deaktivieren (falls aktiviert): sudo ufw disable
# scp -P xxxx /root/.ssh/example-root user@[2a00:aaaa:bbbb:cccc:dddd:eeee:ffff:ggg]:/home/user/
– xxxxx = Port, falls man einen anderen ssh Port gewählt hat als 22
– 2a00:aaaa:bbbb:cccc:dddd:eeee:ffff:ggg = IPv6-Adresse des Heimservers
Auf dem Heimserver
# mv /home/user/example-root /home/user/.ssh/
# chmod 600 /home/user/.ssh/example-root
Auf dem Heimserver > Aufbau des Tunnels:
temporärer Versuch:
– xxxxx = Port, falls man einen anderen ssh Port gewählt hat als 22
– aa.bbb.ccc.ddd = feste IP-Adresse des vServers
vServer neu starten
Auf Heimserver einloggen
Die Ports links (443) müssen auf dem vServer frei gegeben werden (firewall).
# ssh -R 443:hostname:443 -i /home/user/.ssh/example-root -N 'root@aa.bbb.ccc.ddd‘ ‚-p xxxx‘
– Den einzutragenden hostname bekommt heraus mit dem Befehl: # hostname -f
Den Tunnel automatisch starten:
Auf dem Heimserver
# apt install autossh
# nano /etc/systemd/system/sshtunnel.service
>
[Unit]
Description=Keeps a sshtunnel open
After=network-online.target ssh.service
[Service]
User=root
Environment=“AUTOSSH_PORT=0″
Environment=“AUTOSSH_GATETIME=0″
RestartSec=30
Restart=always
ExecStart=/usr/bin/autossh -M 0 -R 80:hostname:80 -R 443:hostname:443 -i /home/user/.ssh/example-root -o ServerAliveInterval=12 -o ServerAliveCountMax=3 -N 'root@aa.bbb.ccc.ddd‘ -p xxxxx
ExecStop=killall -s KILL autossh
TimeoutStopSec=10
[Install]
WantedBy=multi-user.target
# sudo systemctl start sshtunnel.service
# sudo systemctl status sshtunnel.service
# sudo systemctl enable sshtunnel.service
Wenn alles geklappt hat, dann hat der Heimserver trotz ds-lite eine feste IPv4 Adresse für wenige Euro im Monat. Einen teuren Business-Zugang kann man sich dann sparen, wenn das der einzige Anwendungsgrund ist. Wobei der natürlich immer besser ist (aber eben auch viel teurer)