Responda redirecionando o IP para a porta específica

1

Eu quero criar um sistema que tenha alguns subdomínios. Eu defino cada subdomínio para o endereço IP usando o DNS.

Eu usei endereços IP aleatórios para a pergunta

165.93.198.34 x.mydomain.com (que na verdade é 165.93.198.220:8080)

165.93.198.38 z.meudominio.com.br (que na verdade é 165.93.198.220:81)

165.93.198.44 c.meudominio.com.br (que na verdade é 165.93.198.220:443)

165.93.198.220 mydomain.com

Usando o iptables, quando uma solicitação chega ao endereço IP 165.93.198.34 , quero que ela seja respondida em 165.93.198.220:8080 .

iptables -t nat -A PREROUTING -p tcp -d 165.93.198.34  --jump DNAT --to-destination 165.93.198.220:8080

Mas não consegui fazer o trabalho de pré-visualização.

[root@static ~]# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED
ACCEPT     icmp --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere
ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:ssh
ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:http
ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:ftp
ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:https
ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:down
ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:webcache
ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:81
REJECT     all  --  anywhere             anywhere            reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
REJECT     all  --  anywhere             anywhere            reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination



[root@static ~]# iptables -L -t nat
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination
DNAT       tcp  --  anywhere             165.93.198.34-iprovider.com to:165.93.198.220:8080

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

O que estou fazendo de errado?

    
por Ahmet Can Güven 06.04.2016 / 20:03

1 resposta

1

Se o seu IP de destino (165.93.198.220) for outro sistema na rede

adicione uma regra ACCEPT na cadeia FORWARD da seguinte forma:

iptables -A FORWARD -p tcp -d 165.93.198.220 --dport 8080 -j ACCEPT

verifique também se o ip forward está ativado:

sysctl net.ipv4.ip_forward

se não estiver definido como 1 , ative-o rapidamente com:

sysctl -w net.ipv4.ip_forward=1

ou

echo 1 > /proc/sys/net/ipv4/ip_forward

para torná-lo persistente para a edição de reinicializações /etc/sysctl.conf e adicione a linha:

net.ipv4.ip_forward = 1

Se o seu IP de destino (165.93.198.220) estiver na máquina local

adicione uma regra ACCEPT na cadeia INPUT da seguinte forma:

iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
    
por 06.04.2016 / 22:04