Назад | Перейти на главную страницу

Настройка iptables с 2 nic с использованием DHCP (isc) и DNS (Bind9) проблема в Ubuntu

Возникла проблема с моей настройкой Linux в качестве шлюза. Не уверен, что я здесь делаю не так.

Что ожидается:

  1. На компьютерах услуги перенаправляются на основе зарезервированных IP-адресов DHCP.
  2. Я могу подключиться к серверам из Интернета (у меня есть DDNS)

Сетевая архитектура:

  1. Интернет
  2. Маршрутизатор (подключен DDNS)
  3. Linux Box - (проводной компьютерный шлюз с именем) - IP 192.168.1.161 (внешний на enp9s0) 192.168.99.1 (внутренний на enp7s5)
  4. Коммутатор - IP 192.168.99.100
  5. Несколько компьютеров - (проводной) - IP-адреса 192.168.99.102, 192.168.99.103, 192.168.99.104, 192.168.99.105

Что работает:

  1. DHCP предоставляет зарезервированные IP-адреса
  2. Компьютеры внутри имеют интернет
  3. Я могу подключиться к шлюзу по ssh с компьютера в той же сети, что и enp9s0 (НЕ ИЗ ИНТЕРНЕТА)
  4. DDNS правильно передает информацию на маршрутизатор

Вопросы:

  1. Порты не пересылаются на внутренние компьютеры
  2. Я ничего не могу получить из интернета

Дополнительная информация: Это общая сеть. В одной сети будут машины с Windows и Linux.

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

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;
}
}

Интерфейс: # Этот файл описывает сетевые интерфейсы, доступные в вашей системе # и способы их активации. Для получения дополнительной информации см. 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

Всем спасибо за помощь!

Я считаю, что проблема в том, что вы пытаетесь получить доступ к службам с компьютера, который находится за второй NAT.

Для начала ваш сервер находится в существующем пуле NAT за вашим маршрутизатором, который сам по себе не является маршрутизируемым адресом (192.168.99.x).

Ваш маршрутизатор / модем должен быть настроен как мост, а внешний IP-адрес вашего сервера должен быть IP-адресом, предоставленным вам поставщиком Интернет-услуг, тогда вы можете настроить NAT сервера для внутренних компьютеров. Другими словами, ваш Linux-сервер станет маршрутизатором, и в этом нет ничего плохого. Многие прошивки маршрутизаторов сторонних производителей ЯВЛЯЮТСЯ Linux, на самом деле у меня была аналогичная установка, когда я учился в колледже, изучая Linux. Мой маршрутизатор был Linux-сервером: D

Поскольку вы находитесь на пути к использованию Linux в качестве «маршрутизатора», я бы рекомендовал использовать Webmin в качестве CP для более простой настройки. http://www.webmin.com/download.html