Por favor, você poderia fornecer iptables -t filter -nvL
de saídas nos servidores B e C?
Eu acho que o canal autossh
é executado no servidor C. Está correto? Se assim for, sugiro uma abordagem diferente. Em B, você precisa de uma regra REDIRECT, porque o kernel não permitirá que um usuário sem privilégios abra a porta 80.
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 10000
iptables -t filter -A INPUT -p tcp --dport 10000 -j ACCEPT
(EDIT) : no servidor B, GatewayPorts
deve estar ativado em /etc/ssh/sshd_config
:
# /etc/ssh/sshd_config
GatewayPorts clientspecified
No servidor C, direcione as conexões diretamente para o dongle, modificando autossh
arguments:
autossh -M 0 -N [email protected] -R 10022:127.0.0.1:22 \
-R :10000:192.168.8.1:80
O único erro que vejo em sua configuração reside na regra de PREROUTING
da cadeia do servidor C. Nesse cenário, ela não será avaliada porque afeta apenas os pacotes que entram pelas interfaces de rede. As conexões criadas por ssh
são geradas localmente, portanto, elas seriam afetadas pelas regras em OUTPUT
chain.