Tenho dois servidores conectados via WireGuard: um servidor local ( server1
, WireGuard IP 10.0.0.2
) e um servidor em nuvem ( server0
, WireGuard IP 10.0.0.1
). Meu objetivo é usar server0
como um gateway para acessar serviços server1
sem expor o IP público do servidor local. Por exemplo, SSH para server1
deve ser acessível via server0:2222
.
Detalhes da configuração:
Configuração do WireGuard:
- O túnel está funcional (verificado via ) .
ssh -p 2222 [email protected]
serve0r
server0
eserver1
usar iptables para encaminhar tráfego.
- O túnel está funcional (verificado via ) .
Regras do IPTables:
- Regras do DNAT/MASQUERADE:
# For TCP
iptables -t nat -A PREROUTING -p tcp --dport 2222 -j DNAT --to-destination 10.0.0.2:2222
iptables -t nat -A POSTROUTING -o wg0 -p tcp -d 10.0.0.2 --dport 2222 -j MASQUERADE
# For UDP (if needed)
iptables -t nat -A PREROUTING -p udp --dport 2222 -j DNAT --to-destination 10.0.0.2:2222
iptables -t nat -A POSTROUTING -o wg0 -p udp -d 10.0.0.2 --dport 2222 -j MASQUERADE
-
- Tabela NAT atual:
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
DNAT tcp -- anywhere anywhere tcp dpt:2222 to:10.0.0.2:2222
DNAT udp -- anywhere anywhere udp dpt:2222 to:10.0.0.2:2222
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE all -- anywhere anywhere
MASQUERADE all -- anywhere anywhere
MASQUERADE tcp -- anywhere 10.0.0.2 tcp dpt:2222
MASQUERADE udp -- anywhere 10.0.0.2 udp dpt:2222
Configuração SSH:
server1
escuta em0.0.0.0:2222
(confirmado emsshd_config
).
Encaminhamento do Kernel:
net.ipv4.ip_forward=1
está habilitado e aplicado.
Emitir:
Conectar-se externamente via ssh -p 2222 user@<server0-public-ip>
resulta em Conexão recusada . No entanto, conectar-se diretamente de server0
para 10.0.0.2:2222
funciona.
Solução de problemas concluída:
- Conectividade WireGuard verificada (bem-sucedida).
- Regras verificadas
iptables -t nat
(parecem corretas). - O SSH confirmado está escutando em
server1
.
Problemas suspeitos:
- Tabela de filtros IPTables : A
FORWARD
cadeia pode bloquear o tráfego mesmo após regras NAT. - Regras do MASQUERADE : Regras redundantes ou mal configuradas
POSTROUTING
.
Questões:
- Existem
iptables
regras de filtro ausentes (por exemplo,FORWARD
cadeia) permitindo tráfego entre interfaces (por exemplo,eth0
parawg0
)? - As
MASQUERADE
regras estão tratando corretamente o NAT de origem para o tráfego de retorno?
Qualquer informação será bem-vinda!