Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: простейшая конфигурация не работает  (Прочитано 587 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Lojaleto

  • Автор темы
  • Новичок
  • *
  • Сообщений: 44
    • Просмотр профиля
это подсеть с просветом в основную, но в ней принтеры к которым хочу выполнить проброс.
однако почему-то проброс срабатывает на 1 пакет, затем на 2 минуты пропадает.
я профан в iptables, не ругайте, просто гляньте или подскажите.
задача то простейшая, собирал по инструкциям, тестировал по отдельности.


# Default policy to drop all incoming packets.
iptables -P INPUT DROP
iptables -P FORWARD DROP

# Accept incoming packets from localhost and the LAN interface.
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i enp1s0 -j ACCEPT
iptables -A INPUT -i enp2s0 -j ACCEPT

# Accept incoming packets from the WAN if the router initiated the connection.
iptables -A INPUT -i enp1s0 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

# NAT traffic going out the WAN interface.
iptables -t nat -A POSTROUTING -o enp1s0 -j MASQUERADE

# Forward LAN packets to the WAN.
iptables -A FORWARD -i enp2s0 -o enp1s0 -j ACCEPT
iptables -A FORWARD -i enp1s0 -o enp2s0 -j ACCEPT

# Разрешаем входящие подключения на портах
iptables -A FORWARD -i enp1s0 -o enp2s0 -p tcp --syn --dport 631 -m conntrack --ctstate NEW -j ACCEPT

# Forward packets
iptables -A FORWARD -i enp1s0 -o enp2s0 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i enp2s0 -o enp1s0 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

# Форвардинг портов
iptables -t nat -A PREROUTING -i enp1s0 -p tcp --dport 631 -j DNAT --to-destination 10.12.0.17:631
iptables -t nat -A POSTROUTING -o enp2s0 -p tcp --dport 631 -d 10.12.0.17 -j SNAT --to-source 10.11.0.252:631


Пользователь добавил сообщение 27 Октября 2020, 01:12:37:
всё, как разобрался сам.
вот скрипт правильного проброса:
#!/bin/bash
EXT_IP="xxx.xxx.xxx.xxx" # внешний, реальный IP-адрес шлюза;
INT_IP="xxx.xxx.xxx.xxx" # внутренний IP-адрес шлюза, в локальной сети;
EXT_IF=eth0 # Внешний и внутренний интерфейсы.
INT_IF=eth1 # Для шлюза они вряд ли изменятся, поэтому можно прописать вручную.
FAKE_PORT=$1  # Вначале передаём скрипту "неправильный" порт на внешнем интерфейсе,
LAN_IP=$2     # затем - локальный адрес сервера
SRV_PORT=$3   # и в конце - реальный порт для подключения к серверу

# Здесь опять надо сделать проверку ввода данных, потому что операции всё ещё серьёзные.

iptables -t nat -A PREROUTING -d $EXT_IP -p tcp -m tcp --dport $FAKE_PORT -j DNAT --to-destination $LAN_IP:$SRV_PORT
iptables -t nat -A POSTROUTING -d $LAN_IP -p tcp -m tcp --dport $SRV_PORT -j SNAT --to-source $INT_IP
iptables -t nat -A OUTPUT -d $EXT_IP -p tcp -m tcp --dport $SRV_PORT -j DNAT --to-destination $LAN_IP
iptables -I FORWARD 1 -i $EXT_IF -o $INT_IF -d $LAN_IP -p tcp -m tcp --dport $SRV_PORT -j ACCEPT

и не забываем это:
iptables -A FORWARD -i $EXT_IF -o $INT_IF -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i $INT_IF -o $EXT_IF -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

в общем результат такой:

# Default policy to drop all incoming packets.
iptables -P INPUT DROP
iptables -P FORWARD DROP

# Accept incoming packets from localhost and the LAN interface.
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i enp1s0 -j ACCEPT
iptables -A INPUT -i enp2s0 -j ACCEPT

# Accept incoming packets from the WAN if the router initiated the connection.
iptables -A INPUT -i enp1s0 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

# NAT traffic going out the WAN interface.
iptables -t nat -A POSTROUTING -o enp1s0 -j MASQUERADE

# Forward LAN packets to the WAN.
iptables -A FORWARD -i enp2s0 -o enp1s0 -j ACCEPT

# Forward packets
iptables -A FORWARD -i enp1s0 -o enp2s0 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i enp2s0 -o enp1s0 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

# Forward port
iptables -t nat -A PREROUTING -d 10.11.0.252 -p tcp -m tcp --dport 9116 -j DNAT --to-destination 10.12.0.16:9100
iptables -t nat -A POSTROUTING -d 10.12.0.16 -p tcp -m tcp --dport 9100 -j SNAT --to-source 10.12.0.254
iptables -t nat -A OUTPUT -d 10.11.0.252 -p tcp -m tcp --dport 9100 -j DNAT --to-destination 10.12.0.16
iptables -I FORWARD 1 -i enp1s0 -o enp2s0 -d 10.12.0.16 -p tcp -m tcp --dport 9100 -j ACCEPT

iptables -t nat -A PREROUTING -d 10.11.0.252 -p tcp -m tcp --dport 9117 -j DNAT --to-destination 10.12.0.17:9100
iptables -t nat -A POSTROUTING -d 10.12.0.17 -p tcp -m tcp --dport 9100 -j SNAT --to-source 10.12.0.254
iptables -t nat -A OUTPUT -d 10.11.0.252 -p tcp -m tcp --dport 9100 -j DNAT --to-destination 10.12.0.17
iptables -I FORWARD 1 -i enp1s0 -o enp2s0 -d 10.12.0.17 -p tcp -m tcp --dport 9100 -j ACCEPT

iptables -t nat -A PREROUTING -d 10.11.0.252 -p tcp -m tcp --dport 9118 -j DNAT --to-destination 10.12.0.18:9100
iptables -t nat -A POSTROUTING -d 10.12.0.18 -p tcp -m tcp --dport 9100 -j SNAT --to-source 10.12.0.254
iptables -t nat -A OUTPUT -d 10.11.0.252 -p tcp -m tcp --dport 9100 -j DNAT --to-destination 10.12.0.18
iptables -I FORWARD 1 -i enp1s0 -o enp2s0 -d 10.12.0.18 -p tcp -m tcp --dport 9100 -j ACCEPT

iptables -t nat -A PREROUTING -d 10.11.0.252 -p tcp -m tcp --dport 9120 -j DNAT --to-destination 10.12.0.20:9100
iptables -t nat -A POSTROUTING -d 10.12.0.20 -p tcp -m tcp --dport 9100 -j SNAT --to-source 10.12.0.254
iptables -t nat -A OUTPUT -d 10.11.0.252 -p tcp -m tcp --dport 9100 -j DNAT --to-destination 10.12.0.20
iptables -I FORWARD 1 -i enp1s0 -o enp2s0 -d 10.12.0.20 -p tcp -m tcp --dport 9100 -j ACCEPT

« Последнее редактирование: 27 Октября 2020, 08:14:16 от Lojaleto »

 

Страница сгенерирована за 0.016 секунд. Запросов: 21.