335 lines
6.8 KiB
Markdown
335 lines
6.8 KiB
Markdown
# Punt zero: accés al laboratori amb túnels SSH
|
|
|
|
## Objectiu
|
|
|
|
Abans de començar el desplegament de PeerTube, cal assegurar l'accés als serveis interns del laboratori.
|
|
|
|
En aquest escenari, el host Proxmox és accessible des de fora per SSH, però altres serveis interns, com TrueNAS o els contenidors LXC, només són accessibles des de la xarxa privada.
|
|
|
|
Per aquest motiu utilitzarem SSH de dues maneres:
|
|
|
|
```text
|
|
1. ProxyJump amb -J
|
|
2. Túnels locals amb -L i -N
|
|
```
|
|
|
|
## Arquitectura d'accés
|
|
|
|
```text
|
|
Ordinador local Ubuntu
|
|
│
|
|
│ SSH
|
|
▼
|
|
Host Proxmox amb IP pública
|
|
│
|
|
├── TrueNAS
|
|
├── contenidors LXC
|
|
└── serveis interns
|
|
```
|
|
|
|
> **Decisió tècnica:** no exposarem directament les interfícies d'administració internes a Internet. L'accés es farà passant pel Proxmox mitjançant SSH.
|
|
|
|
---
|
|
|
|
## 1. Permisos de les claus SSH
|
|
|
|
La clau privada ha de tenir permisos restringits:
|
|
|
|
```bash
|
|
chmod 700 ~/.ssh
|
|
chmod 600 ~/.ssh/la_teva_clau
|
|
chmod 644 ~/.ssh/la_teva_clau.pub
|
|
```
|
|
|
|
Comprovació:
|
|
|
|
```bash
|
|
ls -ld ~/.ssh
|
|
ls -l ~/.ssh/la_teva_clau*
|
|
```
|
|
|
|
Sortida esperada:
|
|
|
|
```console
|
|
drwx------ ~/.ssh
|
|
-rw------- ~/.ssh/la_teva_clau
|
|
-rw-r--r-- ~/.ssh/la_teva_clau.pub
|
|
```
|
|
|
|
> **Atenció:** al servidor s'hi posa la clau pública `.pub`. Al client SSH s'utilitza la clau privada, sense `.pub`.
|
|
|
|
---
|
|
|
|
## 2. Accés SSH directe al Proxmox
|
|
|
|
Si el Proxmox escolta SSH al port 22:
|
|
|
|
```bash
|
|
ssh -i ~/.ssh/la_teva_clau root@IP_PUBLICA_PROXMOX
|
|
```
|
|
|
|
Si el Proxmox escolta SSH en un altre port, per exemple el `2222`:
|
|
|
|
```bash
|
|
ssh -i ~/.ssh/la_teva_clau -p 2222 root@IP_PUBLICA_PROXMOX
|
|
```
|
|
|
|
---
|
|
|
|
## 3. Accés SSH al TrueNAS amb ProxyJump
|
|
|
|
Aquesta opció serveix per entrar per SSH al TrueNAS passant pel Proxmox.
|
|
|
|
```bash
|
|
ssh -i ~/.ssh/la_teva_clau \
|
|
-J root@IP_PUBLICA_PROXMOX \
|
|
usuari_truenas@192.168.100.101
|
|
```
|
|
|
|
Si el Proxmox escolta SSH pel port `2222`:
|
|
|
|
```bash
|
|
ssh -i ~/.ssh/la_teva_clau \
|
|
-J root@IP_PUBLICA_PROXMOX:2222 \
|
|
usuari_truenas@192.168.100.101
|
|
```
|
|
|
|
Aquest esquema fa:
|
|
|
|
```text
|
|
Ordinador local Ubuntu
|
|
│
|
|
│ SSH
|
|
▼
|
|
Proxmox públic
|
|
│
|
|
│ SSH intern
|
|
▼
|
|
TrueNAS 192.168.100.101
|
|
```
|
|
|
|
> **Nota:** aquesta és la forma més neta quan volem obtenir una shell SSH real dins del TrueNAS.
|
|
|
|
---
|
|
|
|
## 4. Túnel local cap al SSH del TrueNAS
|
|
|
|
També es pot crear un túnel local cap al port 22 del TrueNAS.
|
|
|
|
Primer obrim el túnel:
|
|
|
|
```bash
|
|
ssh -i ~/.ssh/la_teva_clau \
|
|
-N \
|
|
-L 2222:192.168.100.101:22 \
|
|
root@IP_PUBLICA_PROXMOX
|
|
```
|
|
|
|
Aquesta terminal queda oberta mantenint el túnel.
|
|
|
|
En una altra terminal, entrem al TrueNAS així:
|
|
|
|
```bash
|
|
ssh usuari_truenas@localhost -p 2222
|
|
```
|
|
|
|
L'esquema és:
|
|
|
|
```text
|
|
localhost:2222
|
|
│
|
|
│ túnel SSH
|
|
▼
|
|
Proxmox
|
|
│
|
|
▼
|
|
TrueNAS 192.168.100.101:22
|
|
```
|
|
|
|
Si el Proxmox escolta SSH pel port `2222`, la comanda del túnel seria:
|
|
|
|
```bash
|
|
ssh -i ~/.ssh/la_teva_clau \
|
|
-p 2222 \
|
|
-N \
|
|
-L 2222:192.168.100.101:22 \
|
|
root@IP_PUBLICA_PROXMOX
|
|
```
|
|
|
|
> **Atenció:** en aquest cas hi ha dos ports `2222` amb funcions diferents. El primer `-p 2222` és el port SSH del Proxmox. El segon `-L 2222:...` és el port local que obrim al nostre ordinador.
|
|
|
|
Per evitar confusió, es pot usar un altre port local, per exemple `2201`:
|
|
|
|
```bash
|
|
ssh -i ~/.ssh/la_teva_clau \
|
|
-p 2222 \
|
|
-N \
|
|
-L 2201:192.168.100.101:22 \
|
|
root@IP_PUBLICA_PROXMOX
|
|
```
|
|
|
|
I després:
|
|
|
|
```bash
|
|
ssh usuari_truenas@localhost -p 2201
|
|
```
|
|
|
|
---
|
|
|
|
## 5. Túnel local cap a la GUI web de TrueNAS
|
|
|
|
Per accedir a la interfície web de TrueNAS sense exposar-la directament a Internet, fem un túnel cap al port HTTPS del TrueNAS.
|
|
|
|
```bash
|
|
ssh -i ~/.ssh/la_teva_clau \
|
|
-N \
|
|
-L 8443:192.168.100.101:443 \
|
|
root@IP_PUBLICA_PROXMOX
|
|
```
|
|
|
|
Després obrim al navegador local:
|
|
|
|
```text
|
|
https://localhost:8443
|
|
```
|
|
|
|
Si el Proxmox escolta SSH pel port `2222`:
|
|
|
|
```bash
|
|
ssh -i ~/.ssh/la_teva_clau \
|
|
-p 2222 \
|
|
-N \
|
|
-L 8443:192.168.100.101:443 \
|
|
root@IP_PUBLICA_PROXMOX
|
|
```
|
|
|
|
> **Nota:** el navegador pot mostrar un avís de certificat perquè s'està accedint per `localhost`, però el certificat del TrueNAS no està emès per aquest nom.
|
|
|
|
---
|
|
|
|
## 6. Túnel local en segon pla
|
|
|
|
L'opció `-N` indica que no volem obrir una shell remota, només mantenir el túnel.
|
|
|
|
Si volem enviar el túnel al background, afegim `-f`:
|
|
|
|
```bash
|
|
ssh -i ~/.ssh/la_teva_clau \
|
|
-f -N \
|
|
-L 8443:192.168.100.101:443 \
|
|
root@IP_PUBLICA_PROXMOX
|
|
```
|
|
|
|
> **Atenció:** si s'envia el túnel al background, després caldrà localitzar el procés SSH per tancar-lo.
|
|
|
|
---
|
|
|
|
## 7. Veure túnels SSH actius
|
|
|
|
Per veure processos SSH oberts:
|
|
|
|
```bash
|
|
ps aux | grep ssh
|
|
```
|
|
|
|
Per veure ports locals escoltant:
|
|
|
|
```bash
|
|
ss -ltnp
|
|
```
|
|
|
|
Exemple de sortida:
|
|
|
|
```console
|
|
LISTEN 0 128 127.0.0.1:8443 0.0.0.0:* users:(("ssh",pid=12345,fd=5))
|
|
```
|
|
|
|
---
|
|
|
|
## 8. Tancar un túnel SSH
|
|
|
|
Si el túnel està obert en una terminal interactiva, es pot tancar amb:
|
|
|
|
```text
|
|
CTRL + C
|
|
```
|
|
|
|
Si està en segon pla, primer localitzem el procés:
|
|
|
|
```bash
|
|
ps aux | grep ssh
|
|
```
|
|
|
|
I després el tanquem:
|
|
|
|
```bash
|
|
kill PID
|
|
```
|
|
|
|
Exemple:
|
|
|
|
```bash
|
|
kill 12345
|
|
```
|
|
|
|
---
|
|
|
|
## 9. Diagnosi ràpida de problemes SSH
|
|
|
|
### Connection refused
|
|
|
|
```console
|
|
ssh: connect to host 192.168.100.101 port 22: Connection refused
|
|
```
|
|
|
|
Vol dir que la màquina respon, però no hi ha cap servei SSH escoltant al port 22.
|
|
|
|
En el cas de TrueNAS, cal revisar:
|
|
|
|
```text
|
|
System Settings → Services → SSH → Start
|
|
```
|
|
|
|
> **Nota:** activar `Start Automatically` no arrenca el servei en aquell moment. També cal prémer `Start` o el botó de play.
|
|
|
|
### Permission denied
|
|
|
|
```console
|
|
Permission denied (publickey)
|
|
```
|
|
|
|
Vol dir que ja s'ha arribat al servei SSH, però l'autenticació ha fallat.
|
|
|
|
Cal revisar:
|
|
|
|
```text
|
|
- usuari correcte
|
|
- clau pública enganxada a l'usuari correcte
|
|
- ús de la clau privada al client
|
|
- permisos de la clau privada
|
|
- shell vàlida de l'usuari
|
|
- accés SSH habilitat per aquell usuari
|
|
```
|
|
|
|
### Authenticity of host can't be established
|
|
|
|
```console
|
|
The authenticity of host ... can't be established
|
|
```
|
|
|
|
Això és normal en la primera connexió a una màquina nova. Indica que el client encara no coneix la clau del servidor.
|
|
|
|
---
|
|
|
|
## 10. Resum de comandes
|
|
|
|
| Objectiu | Comanda |
|
|
|---|---|
|
|
| Entrar al Proxmox | `ssh -i ~/.ssh/la_teva_clau root@IP_PUBLICA_PROXMOX` |
|
|
| Entrar al Proxmox per port 2222 | `ssh -i ~/.ssh/la_teva_clau -p 2222 root@IP_PUBLICA_PROXMOX` |
|
|
| Entrar al TrueNAS amb salt | `ssh -i ~/.ssh/la_teva_clau -J root@IP_PUBLICA_PROXMOX usuari_truenas@192.168.100.101` |
|
|
| Entrar al TrueNAS amb salt i Proxmox al 2222 | `ssh -i ~/.ssh/la_teva_clau -J root@IP_PUBLICA_PROXMOX:2222 usuari_truenas@192.168.100.101` |
|
|
| Obrir túnel SSH cap al TrueNAS | `ssh -i ~/.ssh/la_teva_clau -N -L 2201:192.168.100.101:22 root@IP_PUBLICA_PROXMOX` |
|
|
| Entrar pel túnel SSH | `ssh usuari_truenas@localhost -p 2201` |
|
|
| Obrir túnel web cap a TrueNAS | `ssh -i ~/.ssh/la_teva_clau -N -L 8443:192.168.100.101:443 root@IP_PUBLICA_PROXMOX` |
|
|
| Obrir GUI TrueNAS | `https://localhost:8443` | |