Porta de encaminhamento do Ubuntu

0

Estou tentando encaminhar as portas 80, 443, 32400 para uma máquina interna da minha rede. Portanto, o tráfego do EXTIP: 80 deve ir para SERVERIP: 80 e as respostas retornam pelo EXTIP: 80, também seria útil se essas alterações persistissem na reinicialização do roteador. O roteador tem dois IPs EXTIP e INTIP. Está conectado diretamente ao modem sem NAT. O roteador gerencia o NAT para os servidores internos.

Eu tentei várias alterações de iptable na internet e geralmente há efeitos colaterais, como se eu não conseguisse mais o SSH no roteador ou o tráfego de saída parasse de funcionar. O roteador também está executando o ufw e o fail2ban

    
por Drew 12.09.2016 / 19:57

2 respostas

0

Eu não testei, mas tentaria algo assim:

iptables -t nat -A PREROUTING --protocol tcp --destination EXTIP --destination-port 80 -j DNAT --to-destination SERVERIP

Da mesma forma para as outras portas. Isso pode ajudar?

    
por 12.09.2016 / 21:42
0

Isso parece um conjunto relativamente simples de regras.

  1. Permitir qualquer coisa no loopback
  2. Permitir que qualquer coisa seja a "outra metade" de uma solicitação de saída
  3. Permitir qualquer coisa (de roteador para INT, roteador para EXT ou INT para EXT)
  4. Permitir porta 22 a partir de INT (inferida da sua explicação)
  5. Permitir porta 80 a partir do EXT e encaminhá-la para o servidor interno
  6. Permitir a porta 443 a partir do EXT e encaminhá-la para o servidor interno
  7. Permitir a porta 32400 a partir do EXT e encaminhá-la para o servidor interno

Aqui está minha sugestão. Não foi testado porque não tenho uma VM de duas interfaces disponível no momento.

# Definitions
INTIF=eth1             # Internal interface
EXTIF=eth0             # External interface
SERVERIP=192.168.1.12  # Internal webserver address

# Prepare to wipe the ruleset, so default to allowing everything
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT

# Erase the rulesets
iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD
iptables -t nat -F PREROUTING
iptables -t nat -F POSTROUTING

# Allow anything on loopback
iptables -i lo -j ACCEPT

# Allow anything in that is the "other half" of an outbound request
iptables -A INPUT -m state --state ESTABLISHED,RELATED

# Allow anything out (from router to INT, router to EXT, or INT to EXT)
iptables -A OUTPUT -j ACCEPT

# Allow port 22 in from INT (inferred from your explanation)
# Strictly, this is only required if you apply additional restrictions
# in the next rule, but I'm going to leave it here anyway
iptables -A INPUT -i $INTIF -p tcp --dport 22 -j ACCEPT

# Allow everything through from INT
# This allows internal access to the router too. You could add some extra
# rules here that disallow access to both the router's own IP addresses
iptables -A INPUT -i $INTIF -j ACCEPT

# Allow port 80 in from EXT, and forward it on to the internal server
# Allow port 443 in from EXT, and forward it on to the internal server
# Allow port 32400 in from EXT, and forward it on to the internal server
iptables -t nat -A PREROUTING -i $EXTIF -p tcp --dport 80 -j DNAT --to-destination $SERVERIP
iptables -t nat -A PREROUTING -i $EXTIF -p tcp --dport 443 -j DNAT --to-destination $SERVERIP
iptables -t nat -A PREROUTING -i $EXTIF -p tcp --dport 32400 -j DNAT --to-destination $SERVERIP

# Set the default action to discard all traffic
iptables -P INPUT DENY
iptables -P OUTPUT DENY

# Enable forwarding
echo 1 >/proc/sys/net/ipv4/ip_forward
    
por 14.09.2016 / 00:47

Tags