Boa tarde. Estou trabalhando em um projeto usando o servidor Ubuntu e tenho 3 VMs configuradas. um Firewall, roteador e cliente (1) por enquanto. Atualmente sou capaz de usar o putty para fazer ssh no firewall, depois posso fazer ssh no roteador e, finalmente, posso fazer ssh no cliente e escrever código e compilar.
O que eu quero saber é como posso fazer ssh diretamente para o cliente sem todo o sshing extra?
Obrigado kbot
EDIT: saída sudo iptables -t nat -v -x -n -L
do firewall:
Chain PREROUTING (policy ACCEPT 1217 packets, 108875 bytes)
pkts bytes target prot opt in out source destination
Chain INPUT (policy ACCEPT 2 packets, 136 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 11 packets, 783 bytes)
pkts bytes target prot opt in out source destination
Chain POSTROUTING (policy ACCEPT 6 packets, 406 bytes)
pkts bytes target prot opt in out source destination
35 2218 MASQUERADE all -- * eth0 0.0.0.0/0 0.0.0.0/0
Responder1
Primeiro, sugiro que você mescle os servidores firewall e roteador em apenas um servidor, porque o firewall já está implementando a funcionalidade do roteador.
Digamos que você queira manter a capacidade de SSH no firewall, mas também adicionar a capacidade de SSH do mundo externo diretamente ao seu cliente. Você precisará usar uma porta diferente para esse propósito, pois é a única maneira de o conjunto de regras do iptables determinar o que você deseja. Usarei a porta 2222, mas você usa a porta livre que quiser.
Você precisará de uma regra PREROUTING na tabela nat:
sudo iptables -t nat -A PREROUTING -p tcp -i $EXTIF --dport 2222 -j DNAT --to $INTIP:22
Onde: $EXTIF é o nome da sua interface de rede externa. Eu acho que eth0. $INTIP é o seu endereço IP interno.
Você também precisará permitir que o tráfego passe pela sua cadeia FORWARD, porque sua política padrão é DROP, que deveria ser:
sudo iptables -A FORWARD -i $EXTIF -o $INTIF -p tcp --dport 2222 -d $INTIP -m state --state NEW -j LOG --log-prefix "PFNEW2222:" --log-level info
sudo iptables -A FORWARD -i $EXTIF -o $INTIF -p tcp --dport 2222 -d $INTIP -m state --state NEW -j ACCEPT
Onde: $INTIF é o nome da sua interface de rede interna. Eu acho que eth1.
Observe que também existe uma regra de registro. Apenas uma sugestão.
Seu caminho de retorno deve estar OK
Outras sugestões:
Você não precisa da sua regra de cadeia OUTPUT atual, porque sua política padrão é ACCEPT.
Se você conhece seu endereço IP externo ($EXTIP abaixo), use SNAT em vez de MASQURADE:
sudo iptables -t nat -A POSTROUTING -o $EXTIF -j SNAT --to $EXTIP
Se você não fizer isso, tudo bem
Presumo que você já tenha o encaminhamento ativado:
$ cat /proc/sys/net/ipv4/ip_forward
1