Instalamos un nextcloud en la computadora de casa pero al estar dentro de guifiNet no tengo acceso desde internet.
En caso de tener un router con salida a internet directamente hay una solución mucho más sencilla que es con noip, podeis buscar que hay mucha información.
La solución que he encontrado ha sido instalar una VPN en el VPS que tengo contratado con OVH.
Estos son los pasos a seguir.
Instalación de NextCloud
Para lainstalación de nexclous solo hay que seguir este excelente tutorial.
Varios
Forzar a nextcloud a reescanear en busca de nuevos ficheros
sudo nextcloud.occ files:scan –all
Ampliar los dominios permitidos a nextcloud
Puede ver los ajustes actuales consultando el valor de la matriz trusted_domains:
sudo nextcloud.occ config:system:get trusted_domains
Añadimos un nuevo dominio.
sudo nextcloud.occ config:system:set trusted_domains 1 --value=example.com
OpenVPN
Desde el servidor:
Instalamos openvpn
Esta es la forma más sencilla que he encontrado.
wget https://raw.githubusercontent.com/theonemule/simple-openvpn-server/master/openvpn.sh chmod +x openvpn.sh ./openvpn.sh --adminpassword=[Contraseña admin] --host=vpn.[tu dominio].com
En mi caso he tenido que realizar unos cambios para poder tener conexión
al ordenador de casa.
Configuración openvpn
sudo vim /etc/openvpn/server.conf
port 1194 proto udp dev tun sndbuf 0 rcvbuf 0 ca ca.crt cert server.crt key server.key dh dh.pem tls-auth ta.key 0 topology subnet server 10.8.0.0 255.255.255.0 client-to-client ifconfig-pool-persist ipp.txt push "redirect-gateway def1 bypass-dhcp" push "dhcp-option DNS 8.8.8.8" push "dhcp-option DNS 8.8.4.4" keepalive 10 120 cipher AES-256-CBC user nobody group nogroup persist-key persist-tun status openvpn-status.log verb 3 crl-verify crl.pem client-config-dir ccd explicit-exit-notify 1
Firewall
sudo vim /etc/ufw/before.rules
# START OPENVPN RULES # NAT table rules *nat :POSTROUTING ACCEPT [0:0] # Allow traffic from OpenVPN client to [ens3] (change to the interface you discovered!) -A POSTROUTING -s 10.8.0.0/8 -o ens3 -j MASQUERADE COMMIT # END OPENVPN RULES
En tu caso tendrás que poner la interface que te corresponde.
Puedes verla con ip route | grep default
sudo vim /etc/default/ufw
Modificar valor:
DEFAULT_FORWARD_POLICY="ACCEPT"
Sistema
sudo vim sudo nano /etc/sysctl.conf
net.ipv4.ip_forward=1
Reiniciar configuración.
sudo sysctl -p
Conprobación.
ip a s tun0
14: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 100 link/none inet 10.8.0.100 peer 255.255.255.0/32 scope global tun0 valid_lft forever preferred_lft forever inet6 fe80::f2c0:df16:b35d:ae30/64 scope link stable-privacy valid_lft forever preferred_lft forever
Crear fcihero de configuración para el cliente.
Creamos un nuevo cliente desde el administrador web que nos proporciona el script.
Desde el cliente.
sudo apt-get install openvpn
Movemos el fichero de configuración que hemos creado a:
/etc/openvpn/client.conf
sudo systemctl enable openvpn@client.service
Referencias
- https://github.com/theonemule/simple-openvpn-server/
- https://www.digitalocean.com/community/tutorials/como-configurar-un-servidor-de-openvpn-en-ubuntu-18-04-es
SSHL
En este punto tenemos que poder conectar con el cliente desde el servidor.
Para comprobarlo:
Desde el servidor.
sudo apt-get install links
links https://10.8.0.2
IMG
Las conexciones al puerto 9999 de la VPS las redirigimos al VPN con la IP del cliente.
sslh -p 0.0.0.0:9999 –ssh 10.8.0.2:443
Creamos configuración permanente.
cat /etc/default/sslh
RUN=yes # binary to use: forked (sslh) or single-thread (sslh-select) version # systemd users: don't forget to modify /lib/systemd/system/sslh.service DAEMON=/usr/sbin/sslh #DAEMON_OPTS="--user sslh --transparent --listen 0.0.0.0:9999 --ssh 10.8.0.100:443 --pidfile /var/run/sslh/sslh.pid" DAEMON_OPTS="--user sslh --listen 0.0.0.0:9999 --ssl 10.8.0.2:443 --pidfile /var/run/sslh/sslh.pid"
Referencias:
- https://www.entredevyops.es/posts/laboratorio-sslh.html