PVE - Gymo
Configurazione Caddy Gateway e accesso VM Ant Media
Obiettivo
Configurare una VM Debian 13 con Caddy come:
- reverse proxy / Caddy L4;
- gateway Internet per la rete privata
10.244.10.0/24; - jump host SSH per accedere alle VM interne;
- punto di accesso pubblico tramite IP
194.183.5.19.
La VM Ant Media sarà raggiungibile all'indirizzo:
10.244.10.11
Ant Media verrà installato tramite Docker.
Configurazione di rete
La VM Caddy utilizza due interfacce:
ens19: 10.244.10.10/24
ens20: 194.183.5.19/29
Routing:
default via 194.183.5.17 dev ens20
10.244.10.0/24 dev ens19
194.183.5.16/29 dev ens20
ens19 rappresenta quindi la rete privata, mentre ens20 è l'interfaccia pubblica.
Abilitazione IP forwarding
Creare:
/etc/sysctl.d/99-router.conf
con:
net.ipv4.ip_forward=1
Applicare:
sysctl --system
Verifica:
sysctl net.ipv4.ip_forward
Configurazione nftables
File:
/etc/nftables.conf
Configurazione:
#!/usr/sbin/nft -f
flush ruleset
table inet filter {
chain input {
type filter hook input priority 0;
policy drop;
iifname "lo" accept
ct state established,related accept
# Accesso dalla LAN
iifname "ens19" accept
# SSH pubblico
iifname "ens20" tcp dport 22 accept
# Caddy HTTP / HTTPS
iifname "ens20" tcp dport { 80, 443 } accept
iifname "ens20" udp dport 443 accept
# ICMP
ip protocol icmp accept
ip6 nexthdr icmpv6 accept
}
chain forward {
type filter hook forward priority 0;
policy drop;
# LAN -> Internet
iifname "ens19" oifname "ens20" accept
# Traffico di ritorno
iifname "ens20" oifname "ens19" ct state established,related accept
}
chain output {
type filter hook output priority 0;
policy accept;
}
}
table ip nat {
chain postrouting {
type nat hook postrouting priority srcnat;
policy accept;
ip saddr 10.244.10.0/24 oifname "ens20" masquerade
}
}
Verifica sintassi:
nft -c -f /etc/nftables.conf
Abilitazione:
systemctl enable --now nftables
systemctl restart nftables
Verifica:
nft list ruleset
Configurazione VM Ant Media
La VM Ant Media utilizzerà ad esempio:
IP: 10.244.10.11/24
Gateway: 10.244.10.10
DNS: DNS aziendale oppure DNS pubblico
Il gateway 10.244.10.10 permette alla VM di accedere a Internet tramite NAT sulla VM Caddy.
Ant Media verrà installato tramite Docker sulla VM 10.244.10.11.
Accesso SSH tramite Caddy
La VM Ant Media non necessita di essere esposta direttamente su Internet.
È possibile utilizzare la VM Caddy come jump host.
Configurazione client SSH:
Host unidata-antmedia
HostName 10.244.10.11
User root
Port 22
ProxyCommand ssh -p 22 root@194.183.5.19 nc %h %p
Connessione:
ssh unidata-antmedia
Il percorso della connessione sarà:
Client
|
| SSH
v
194.183.5.19
Caddy / Gateway
|
| rete privata
v
10.244.10.11
Ant Media
In questo modo la porta SSH della VM Ant Media rimane accessibile esclusivamente dalla rete privata.
Caddy L4
Per utilizzare funzionalità Layer 4, Caddy deve essere compilato tramite xcaddy includendo:
xcaddy build --with github.com/mholt/caddy-l4
Verifica:
caddy list-modules | grep layer4
Caddy L4 potrà successivamente essere utilizzato per pubblicare verso Internet i servizi Ant Media necessari senza assegnare direttamente un IP pubblico alla VM applicativa.
Architettura finale
Internet
|
| 194.183.5.19
v
+--------------------+
| Debian 13 / Caddy |
| |
| ens20: Public WAN |
| ens19: 10.244.10.10|
| |
| Caddy L4 |
| nftables / NAT |
| SSH Jump Host |
+---------+----------+
|
| 10.244.10.0/24
|
v
+--------------------+
| Ant Media |
| 10.244.10.11 |
| Docker |
+--------------------+
No comments to display
No comments to display