iptables: encaminhando portas ssh

3

Eu tenho um servidor com dois NICs: eth4 - ouve na rede externa. eth1 - está na mesma rede que a máquina Y.

Eu quero poder fazer ssh na máquina Y fazendo: ssh server -p 1234 da rede externa.

Eu criei as seguintes regras:

iptables -A PREROUTING -i eth4 -t nat -p tcp --dport 1234 -m state --state NEW,ESTABLISHED,RELATED -j DNAT --to-destination $MACHINE_Y_IP:22

e

iptables -A FORWARD -i eth4 -o eth1 -p tcp --dport 22 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

Quando eu tento o ssh, a conexão não é recusada imediatamente, mas parece que o iptables não está encaminhando pacotes de volta. Alguma pista sobre o que eu poderia estar fazendo errado? SO é SLES, se isso importa para a sintaxe.

Editar: sysctl net.ipv4.ip_forward relatórios net.ipv4.ip_forward = 1

iptables-save generate:

'# Generated by iptables-save v1.4.2-rc1 on Fri Nov 12 10:28:26 2010
*mangle
:PREROUTING ACCEPT [48787:5748712]
:INPUT ACCEPT [48725:5742333]
:FORWARD ACCEPT [29:1740]
:OUTPUT ACCEPT [25938:4009532]
:POSTROUTING ACCEPT [25967:4011272]
COMMIT
# Completed on Fri Nov 12 10:28:26 2010
# Generated by iptables-save v1.4.2-rc1 on Fri Nov 12 10:28:26 2010
*nat
:PREROUTING ACCEPT [68959:12817029]
:POSTROUTING ACCEPT [19579:1207747]
:OUTPUT ACCEPT [19566:1206967]
-A PREROUTING -i eth4 -p tcp -m tcp --dport 1234 -m state --state NEW,RELATED,ESTABLISHED -j DNAT --to-destination x.x.x.x:22 
COMMIT
# Completed on Fri Nov 12 10:28:26 2010
# Generated by iptables-save v1.4.2-rc1 on Fri Nov 12 10:28:26 2010
*filter
:INPUT ACCEPT [60982622:59727981305]
:FORWARD ACCEPT [10:600]
:OUTPUT ACCEPT [32438834:64059260511]
-A FORWARD -i eth4 -o eth1 -p tcp -m tcp --dport 22 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT 
COMMIT
# Completed on Fri Nov 12 10:28:26 2010'
    
por Nick 12.11.2010 / 16:17

3 respostas

4

As regras devem se parecer com algo assim.

iptables -t nat -I PREROUTING -p tcp -i eth4 --dport 1234 -j DNAT --to server:22
iptables -A FORWARD -i eth4 -o eth1 -p tcp --dport 22 -j ACCEPT

Não se incomode em misturar no módulo de estado. É mais provável o que causa seus problemas. O módulo NAT manterá os estados de que você precisa.

Ah, verifique se você ativou ip_forwarding também;)

    
por 12.11.2010 / 16:31
1

Abaixo estão minhas regras de trabalho - mas eu uso o módulo de estado:

*nat
:PREROUTING ACCEPT [101:9081]
:POSTROUTING ACCEPT [89:5340]
:OUTPUT ACCEPT [209:13346]

# DNAT to local ip
#-A PREROUTING -p tcp --dport $FW_EXTERNAL_PORT -d $FW_EXTERNAL_IP -j DNAT --to-destination $INTERNAL_MACHINE_IP:$INTERNAL_MACHINE_PORT

# ssh to server 192.168.0.3
-A PREROUTING -p tcp --dport 1234 -d 10.10.10.10 -j DNAT --to-destination 192.168.0.3:22
...
COMMIT

*filter
:INPUT ACCEPT [5583:2021142]
:FORWARD DROP [24:2378]
:OUTPUT ACCEPT [6291:2229990]

#rules for DNAT
#-A FORWARD -p tcp --dport $INTERNAL_MACHINE_PORT -d $INTERNAL_MACHINE_IP -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
# SSH to 192.168.0.3
-A FORWARD -p tcp --sport 22 -s 192.168.0.3 -j ACCEPT
-A FORWARD -p tcp --dport 22 -d 192.168.0.3 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
... 
COMMIT
    
por 13.11.2010 / 14:51
0

Espero que haja mais em sua configuração do iptables do que o que você está nos mostrando. Na tabela de filtros *, INPUT é definido para aceitar por padrão. Para as pessoas que são novas no iptables, elas podem usar isso e deixar o sistema exposto. Você pode querer configurar as cadeias padrão no filtro para DROP e depois abrir apenas as portas que deseja obter para a sua caixa, caso contrário você teria uma "cerca de arame" em vez de um firewall. Com sua regra POSTROUTING, isso funcionaria, mas você teria que criar uma regra semelhante para cada porta aberta. Algo como isto [iptables -A POSTROUTING -t nat -o eth4 -j SNAT - para pu.bl.ic.ip] funcionaria para todas as portas que vão para a interface externa. Na corrente FORWARD, é uma boa ideia usar "cintos e suspensórios" para proteger sua caixa. Você pode adicionar -s yo.ur.ext.ip, portanto, se alguém tentar acessar essa porta, eles serão descartados. Espero que isso ajude alguém.

    
por 13.11.2010 / 10:05

Tags