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` | |