Configuração de Iptables com 2 nic usando DHCP (isc) e problema de DNS (Bind9) no Ubuntu

1

Tenho um problema com o meu Linux como configuração de gateway. Não tenho certeza do que estou fazendo de errado aqui.

O que é esperado:

  1. Os computadores têm serviços encaminhados com base nos endereços IP reservados do DHCP.
  2. posso alcançar os servidores da internet (eu tenho um DDNS)

Arquitetura de rede:

  1. Internet
  2. Roteador (DDNS anexado)
  3. Linux Box - (gateway com nome de computador com fio) - IP 192.168.1.161 (externo em enp9s0) 192.168.99.1 (interno em enp7s5)
  4. Switch - IP 192.168.99.100
  5. Vários computadores - (com fio) - IPs 192.168.99.102, 192.168.99.103, 192.168.99.104, 192.168.99.105

O que funciona:

  1. O DHCP fornece endereços IP reservados
  2. Computadores internamente têm internet
  3. Eu posso ssh no Gateway a partir de um computador na mesma rede que o enp9s0 (NÃO DA INTERNET)
  4. O DDNS encaminha as informações corretamente para o roteador

Problemas:

  1. Portas não encaminham para computadores internos
  2. não consigo acessar nada da internet

Informação extra: Esta é uma rede compartilhada. Haverá máquinas windows e linux na mesma rede.

IPtables:

*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]

# enp9s0 is WAN interface, enp7s5 is LAN interface
-A POSTROUTING -o enp9s0 -j MASQUERADE

# NAT pinhole: HTTP from WAN to LAN
-A PREROUTING -p tcp -m tcp -i enp9s0 --dport 80 -j DNAT --to-destination 192.168.99.100:80
-A PREROUTING -p tcp -m tcp -i enp9s0 --dport 8086 -j DNAT --to-destination 192.168.99.102:8$
-A PREROUTING -p tcp -m tcp -i enp9s0 --dport 7990 -j DNAT --to-destination 192.168.99.103:7$
-A PREROUTING -p tcp -m tcp -i enp9s0 --dport 8080 -j DNAT --to-destination 192.168.99.104:8$
-A PREROUTING -p tcp -m tcp -i enp9s0 --dport 8090 -j DNAT --to-destination 192.168.99.104:8$
-A PREROUTING -p tcp -m tcp -i enp9s0 --dport 8085 -j DNAT --to-destination 192.168.99.105:8$
-A PREROUTING -p tcp -m tcp -i enp9s0 --dport 9002 -j DNAT --to-destination 192.168.99.102:22
-A PREROUTING -p tcp -m tcp -i enp9s0 --dport 9003 -j DNAT --to-destination 192.168.99.103:22
-A PREROUTING -p tcp -m tcp -i enp9s0 --dport 9014 -j DNAT --to-destination 192.168.99.104:9$
-A PREROUTING -p tcp -m tcp -i enp9s0 --dport 9005 -j DNAT --to-destination 192.168.99.105:22


COMMIT

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]

# Service rules

# basic global accept rules - ICMP, loopback, traceroute, established all accepted
-A INPUT -s 127.0.0.0/8 -d 127.0.0.0/8 -i lo -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -m state --state ESTABLISHED -j ACCEPT

# enable traceroute rejections to get sent out
#-A INPUT -p udp -m udp --dport 33434:33523 -j REJECT --reject-with icmp-port-unreachable

# DNS - accept from LAN
-A INPUT -i enp7s5 -p tcp --dport 53 -j ACCEPT
-A INPUT -i enp7s5 -p udp --dport 53 -j ACCEPT

# SSH - accept from LAN
-A INPUT -i enp7s5 -p tcp --dport 9001 -j ACCEPT
#SSH - accept from wan
-A INPUT -i enp9s0 -p tcp --dport 9001 -j ACCEPT

# DHCP client requests - accept from LAN
-A INPUT -i enp7s5 -p udp --dport 67:68 -j ACCEPT

# drop all other inbound traffic
-A INPUT -j DROP

# Forwarding rules

# forward packets along established/related connections
-A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT

# forward from LAN (p1p1) to WAN (p4p1)
-A FORWARD -i enp7s5 -o enp9s0 -j ACCEPT

# allow traffic from our NAT pinhole
-A FORWARD -p tcp -d 192.168.99.100 --dport 80 -j ACCEPT
-A FORWARD -p tcp -d 192.168.99.102 --dport 7990 -j ACCEPT
-A FORWARD -p tcp -d 192.168.99.103 --dport 8085 -j ACCEPT
-A FORWARD -p tcp -d 192.168.99.104 --dport 8080 -j ACCEPT
-A FORWARD -p tcp -d 192.168.99.104 --dport 8090 -j ACCEPT
-A FORWARD -p tcp -d 192.168.99.105 --dport 8090 -j ACCEPT
-A FORWARD -p tcp -d 192.168.99.102 --dport 22 -j ACCEPT
-A FORWARD -p tcp -d 192.168.99.103 --dport 22 -j ACCEPT
-A FORWARD -p tcp -d 192.168.99.104 --dport 9014 -j ACCEPT
-A FORWARD -p tcp -d 192.168.99.105 --dport 22 -j ACCEPT

# drop all other forwarded traffic
-A FORWARD -j DROP

COMMIT

servidor DHCP:

#
# Sample configuration file for ISC dhcpd for Debian
#
# Attention: If /etc/ltsp/dhcpd.conf exists, that will be used as
# configuration file instead of this file.
#
#

# The ddns-updates-style parameter controls whether or not the server will
# attempt to do a DNS update when a lease is confirmed. We default to the
# behavior of the version 2 packages ('none', since DHCP v2 didn't
# have support for DDNS.)
ddns-update-style none;

# option definitions common to all supported networks...
option domain-name "example.org";
option domain-name-servers ns1.example.org, ns2.example.org;

default-lease-time 600;
max-lease-time 7200;

# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.
authoritative;

# Use this to send dhcp log messages to a different log file (you also
# have to hack syslog.conf to complete the redirection).
log-facility local7;

subnet 192.168.99.0 netmask 255.255.255.0 {
        range 192.168.99.100 192.168.99.199;
        option routers 192.168.99.1;
        option domain-name-servers 192.168.99.1;
        option broadcast-address 192.168.99.255;
host Bitbucket {
hardware ethernet 00:0f:fe:f6:34:ea;
fixed-address 192.168.99.103;
}

host LaptopMSI {
hardware ethernet 44:8a:5b:ef:e9:0f;
fixed-address 192.168.99.102;
}

host SkullCanyon  {
hardware ethernet 00:1f:c6:9b:e2:20;
fixed-address 192.168.99.105;
}

host ConfluenceJira {
hardware ethernet fc:aa:14:65:31:e2;
fixed-address 192.168.99.104;
}
}

Interface:     # Este arquivo descreve as interfaces de rede disponíveis em seu sistema     # e como ativá-los. Para mais informações, consulte interfaces (5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto enp9s0
iface enp9s0 inet static
        address 192.168.1.161
        netmask 255.255.255.0
# This is an autoconfigured IPv6 interface
iface enp9s0 inet6 auto

auto enp7s5
iface enp7s5 inet static
        address 192.168.99.1
        netmask 255.255.255.0

Obrigado a todos pela sua ajuda!

    
por timcoolmode 26.12.2016 / 05:55

1 resposta

0

Acredito que o problema é o fato de que você está tentando acessar serviços de um computador que está por trás de um NAT segundo .

Para começar, o servidor está dentro do pool NAT existente, atrás do roteador, o que não é um endereço roteável (192.168.99.x).

Seu roteador / modem deve ser configurado como bridge e seu servidor external IP deve ser o ip que o ISP lhe forneceu, então você pode ter o servidor NAT nos computadores internos. Em outras palavras, seu servidor linux se tornaria um roteador que não há nada de errado com isso. Muitos firmware de roteador de terceiros são Linux, na verdade eu tinha uma configuração semelhante quando eu estava aprendendo sobre o Linux. Meu roteador era um servidor linux: D

Como você está no caminho para usar o linux como um "roteador", eu recomendaria usar o Webmin para um CP para uma configuração muito mais fácil. link

    
por 26.12.2016 / 12:22