Iptables не работает dnat

IPtables: не работает DNAT

Политика по умолчанию — ACCEPT во всех цепочках.

Включаю sysctl net.ipv4.ip_forward=1 и добавляю одно-единственное правило:

Локально соединяюсь с портом 22 — открыт. С другой машины соединяюсь с портом 1234 — ответ не приходит.

Трафик с машины, на которой NAT:

Трафик с машины, на которой telnet:

Видно, что ходят только SYN-пакеты. Не могу понять, где я накосячил.

После того, как пакет приходит с интерфейса eth0 и проходит цепочку PREROUTING, netfilter изменяет IP-адрес получателя на 127.0.0.1.

Но ядро отбрасывает этот пакет, т.к. с внешнего интерфейса (не lo) такой пакет придти не может.

А в чём сакральный смысл делать DNAT на локалхост? Может лучше редирект?

Да, DNAT фтопку. -j REDIRECT —to-ports 22

Я пытался выести наружу порт 3389 для rdesktop-а одной из виртуальных машин, работающих под qemu. Виртуальная машина использовала виртуальную же TUN/TAP-сетевушку, а тут redirect уже не поможет. Я не знал, в чём у конкретно у меня проблема и пытался свести задачу к максимально простой, чтобы задать вопрос по ней в форуме. Я, кстати, так и не понял, почему, но у меня вдруг всё заработало.

Источник

Почему DNAT внутри сети не работает?

eth1 — LAN интерфейс.

11.11.11.11 это внешний интерфейс.

Вроде по логике:

Заходит пакет на интерфейс eth1, попадает в цепочку PREROUTING, фильтр видит в заголовке адрес направления 11.11.11.11 и порт 80, и перенаправляет пакет на 192.168.11.142:8082

Для такого случая нужен дополнительный SNAT. Получается ситуация следующая (например 192.168.11.100 — клиент, 192.168.11.1 — роутер)

Я обычно такие ситуации лечу так:

Ага, только ты упустил один момент, DNAT меняет только заголовок DST в IP пакете. И получается примерно такое: Машина 192.168.11.20 отправляет пакет на 11.11.11.11, тот делает DNAT на машину 192.168.11.142 (тут пока все как ты говоришь.) НО, машина 192.168.11.142 получает запрос, обрабатывает, и отправляет ответ сразу на 192.168.11.20 мимо DNAT роутера.

Машина 192.168.11.20 — просто не ожидает получить ответ от 192.168.11.142. Он то отправлял на 11.11.11.11, и от него ждет ответ.

Интерфейс лишний. Еще можно указать таблицу -t nat , или по PREROUTING iptables, сам поймет какая таблица, но я например всегда указываю. Алсо должна быть связь между «11.11.11.11» и 192.168.11.142. Да если еще так как выше не работатет, можешь попробовать, например так:

192.168.11.142 — видит син пакет от 192.168.11.100 и отвечает ACK на 192.168.11.100 (на прямую мимо роутера).

Источник

Iptables не работает dnat

Всем привет!
Начальные данные:
ЛВС с разделенной внутренней сетью: DMZ и доверительной, внешний мир через шлюз.
1) Внешний Шлюз — машина под ASP Linux 7.2 (ker. 2.4x.). На нем установлен брандмауэр iptables ver. 1.2.4. установлен кэширующий сервер (nscd и named на перенаправление на внутрений DNS-DMZ).
Интерфейсы/ip-адрес:
eth0 – внешний (Интернет)/ 211.33.195.47
eth1 – внутрений (DMZ) 192.168.5.95
Iptables – устанавливался при установки системы (rpm), ядро не перекомпилировалось.
В ДМЗ установлен почтовый сервер (отдельная машина).
Для внешнего мира машина является почтовым сервером. DNS-провайдера поднят, машина отзывается.
Echo > 1 … ip_forward – сделано.
SNAT – поднят и работает. DNAT – не функционирует и как следует шлюз не пере направляет трафик на внутренний почтовый сервер.

2) Почтовый сервер машина под ASP Linux 7.2 (ker. 2.4x.). Sendmail, imap4, IP-адрес 192.168.5.80. Письма передаются и принимаются в пределах локальной сети. База доступа разрешает домен внутренний и внешний. Письма передаются во внешний мир, но, к сожалению, не принимаются по причине ниже следующей.

Внимание.
ПРОБЛЕМА: Как сделать так, чтобы на шлюзе было перенаправления почтового трафика на машину (mail-serv) в ДМЗ. Sendmail на шлюзе — сразу неприемлемо.
Короче помогите настроить, очень прошу.

СКРИПТ НЕ ВЫДАЕТ НИ КАКИХ ОШИБОК.
ДАЖЕ, ЕСЛИ ДЕЛАЕШЬ ПОЛИТИКУ ПО УМОЛЧАНИЮ В ТАБЛИЦЕ filter ACCEPT И ТОЛЬКО ПРАВИЛА NAT, ВСЕРАВНО НЕ РАБОТАЕТ:

КАК ПРОВЕРЯЛ:
telnet 211.33.195.47 25
Truing 211.33.195.47…
telnet: connect to address 211.33.195.47: Connection refused

netstat – тоже не чего не показывает…

Письмо отсылаешь сам себе, выдает ошибка сокета на узле.

И самое главное опция –C (генерация пакетов, проверка правил) в iptables выдает:
Iptables: Will be implemented real soon. I promise 😉 – ну и как себя после этого чувствовать?!

В одном форуме узнал об утилите redir:
/usr/local/sbin/redir —lport=»локальный порт» —laddr=»локальный адрес» —cport=»порт, куда редиректить» —caddr=»адрес,куда редиректить»
http://sammy.net/

sammy/hacks/redir-2.2.1.tar.gz
Короче, откомпилировал, то работает, то нет и причем в не фоновом режиме, если добавляешь еще один порт для перенаправления, то тоже не работает.
ВЫВОД: Думаю может в ядре чего-нибудь нет? Может перекомпилир.? Или утилита iptables старая.

ВОТ МОЙ СКРИПТ:
#!/bin/sh
echo «Starting firewalling»
IPTABLES=»/sbin/iptables» # имя и место нахождение утилиты

# ВНЕШНИЕ ПАРАМЕТРЫ
EXT_IPADDR=»211.33.195.47″ # внешний IP-адрес брандмауера
EXT_INTERF=»eth0″ # внешний интерфейс брандмауера
ANYWHERE=»0/0″ # произвольный ip-адрес
NAMESERVER_1=»215.44.120.6″ # DNS-сервер 1 провайдера
NAMESERVER_2=»195.78.143.5″ # DNS-сервер 2 провайдера

# DMZ ПАРАМЕТРЫ
LAN_DMZ=»192.168.5.0/24″ # DMZ сеть
LAN_IPADDR_DMZ=»192.168.5.95″ # DMZ адрес брандмауера
LAN_DMZ_INTERF=»eth1″ # DMZ интерфейс брандмауера
# ВНУТРЕНЕЙ ПЕТЛИ ПАРАМЕТРЫ
LO_IFACE=»lo» # петлевой интерфейс
LO_IP=»127.0.0.0/8″ # петлевой адрес
# Внутренние сервера
MAIL_IP=»192.168.5.80″ # IP-адрес внутреннего почтового сервера
FTP_IP=»192.168.5.80″ # IP-адрес внутреннего файлового сервера

# ДРУГИЕ ПАРАМЕТРЫ
CLASS_A=»10.0.0.0/8″ # адреса класса А, предназначенные
# для внутреннего использования
CLASS_B=»172.16.0.0/12″ # адреса класса B, предназначенные
# для внутреннего использования
CLASS_C=»192.168.0.0/16″ # адреса класса C, предназначенные
# для внутреннего использования
CLASS_D=»224.0.0.0/4″ # адреса класса D, предназначенные
# для группового вещания
BROADCAST_SRC=»0.0.0.0″ # исходный широковещательный адрес
BROADCAST_DEST=»255.255.255.255″ # целевой широковещательный адрес
PRIVPORTS=»0:1023″ # номера привилегированных портов
UNPRIVPORTS=»1024:65535″ # номера непривилегированных портов
TRACEROUTE_SRC_PORTS=»32769:65535″ # порты источника утилиты TRACEROUTE
TRACEROUTE_DEST_PORTS=»33434:33523″ # порты источника утилиты TRACEROUTE

Читайте также:  Настроить прокрутку ноутбуке двумя пальцами

SSH_PORTS=»1020:1023″ # число одновременных соединений

#|||||||||||||||||||||—-ПОЕХАЛИ. —-||||||||||||||||||||||||||||||||||||
# Прелюдия
# Включаем поддержку перенаправления пакетов
echo «1» > /proc/sys/net/ipv4/ip_forward

# Запрещаем фрагментированные пакеты
# $IPTABLES -A INPUT -F -o $LAN_DMZ_INTERF -j DROP

# Разрешить защиту TCP SYN cookie
echo 1 > /proc/sys/net/ipv4/tcp_syncookies

# Разрешить защиту от фальсификации IP-адресов.
# Включить проверку исходных адресов
for f in /proc/sys/net/ipv4/conf/*/rp_filter; do
echo 1 > $f
done

# Запретить ICMP-перенаправление
for f in /proc/sys/net/ipv4/conf/*/accept_redirects; do
echo 0 > $f
done

# Запретить пакеты с маршрутом к источнику
for f in /proc/sys/net/ipv4/conf/*/accept_source_route; do
echo 0 > $f
done
# Удаление существующих правил из всех цепочек
$IPTABLES -F

#
# Установка политики запрета по умолчанию
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT DROP
$IPTABLES -P FORWARD DROP

# Разрешить неограниченный трафик через интерфейс петли
$IPTABLES -A INPUT -i $LO_IFACE -j ACCEPT
$IPTABLES -A OUTPUT -o $LO_IFACE -j ACCEPT

# Разрешить локальный интерфейс
$IPTABLES -A INPUT -i $LAN_DMZ_INTERF -j ACCEPT
$IPTABLES -A OUTPUT -o $LAN_DMZ_INTERF -j ACCEPT

# Входящие пакеты ping (8)
$IPTABLES -A INPUT -i $EXT_INTERF -p icmp \
-s $ANYWHERE —icmp-type echo-reply -d $EXT_IPADDR -j ACCEPT

# Входящие данные, передаваемые при определении размера узла,
# что узел или сервер недоступны; отклик traceroute (3)
$IPTABLES -A INPUT -i $EXT_INTERF -p icmp \
-s $ANYWHERE —icmp-type destination-unreachable -d $EXT_IPADDR -j ACCEPT

# Входящие запросы с требованием замедления передачи (4)
$IPTABLES -A INPUT -i $EXT_INTERF -p icmp \
-s $ANYWHERE —icmp-type source-quench -d $EXT_IPADDR -j ACCEPT

# Входящие сообщения о тайм-ауте, а также TTL-сообщения traceroute (11)
$IPTABLES -A INPUT -i $EXT_INTERF -p icmp \
-s $ANYWHERE —icmp-type time-exceeded -d $EXT_IPADDR -j ACCEPT

# Входящие сообщения об ошибках (12)
$IPTABLES -A INPUT -i $EXT_INTERF -p icmp \
-s $ANYWHERE —icmp-type parameter-problem -d $EXT_IPADDR -j ACCEPT

###############################################
# Цепочки для обработки изходящих ICMP-пакетов#
###############################################
#
# Исходящие пакеты ping (8)
$IPTABLES -A OUTPUT -o $EXT_INTERF -p icmp \
-s $EXT_IPADDR —icmp-type echo-request -d $ANYWHERE -j ACCEPT

# Исходящие данные, передаваемые при определении размера узла,
# что узел или сервер недоступны; отклик traceroute (3)
$IPTABLES -A OUTPUT -o $EXT_INTERF -p icmp \
-s $EXT_IPADDR —icmp-type destination-unreachable -d $ANYWHERE -j ACCEPT

$IPTABLES -A OUTPUT -o $EXT_INTERF -p icmp \
-s $EXT_IPADDR —icmp-type fragmentation-needed -d $ANYWHERE -j ACCEPT

# Исходящие запросы с требованием замедления передачи (4)
$IPTABLES -A OUTPUT -o $EXT_INTERF -p icmp \
-s $EXT_IPADDR —icmp-type source-quench -d $ANYWHERE -j ACCEPT
# Исходящие сообщения о тайм-ауте, а также TTL-сообщения traceroute (11)
$IPTABLES -A OUTPUT -o $EXT_INTERF -p icmp \
-s $EXT_IPADDR —icmp-type time-exceeded -d $ANYWHERE -j ACCEPT

# Исходящие сообщения об ошибках (12)
$IPTABLES -A OUTPUT -o $EXT_INTERF -p icmp \
-s $EXT_IPADDR —icmp-type parameter-problem -d $ANYWHERE -j ACCEPT

# Фальсификация пакетов и недопустимые адреса
#

# Запретить пакеты, в которых в качестве адреса источника указан IP-адрес
# вашего брандмауера
$IPTABLES -A INPUT -i $EXT_INTERF -s $EXT_IPADDR -j DROP
# Запретить пакеты, в которых в качестве адреса источника указан IP-адрес
# петли
$IPTABLES -A INPUT -i $EXT_INTERF -s $LO_IP -j DROP
# Запретить пакеты, которые содержат адрес источника,
# принадлежащий классу А
$IPTABLES -A INPUT -i $EXT_INTERF -s $CLASS_A -j DROP

# Запретить пакеты, которые содержат адрес источника,
# принадлежащий классу B
$IPTABLES -A INPUT -i $EXT_INTERF -s $CLASS_B -j DROP

# Запретить пакеты, которые содержат адрес источника,
# принадлежащий классу C
$IPTABLES -A INPUT -i $EXT_INTERF -s $CLASS_C -j DROP

# Запретить пакеты, которые содержат адрес источника,
# принадлежащий классу D
$IPTABLES -A INPUT -i $EXT_INTERF -s $CLASS_D -j DROP
# Запретить некоторые широковещательные пакеты
$IPTABLES -A INPUT -i $EXT_INTERF -s $BROADCAST_DEST -j DROP
$IPTABLES -A INPUT -i $EXT_INTERF -s $BROADCAST_SRC -j DROP
#&&&&&&&&&&&&&&&&&&&

# DNS1 в режиме клиента

$IPTABLES -A OUTPUT -o $EXT_INTERF -p udp \
-s $EXT_IPADDR —sport $UNPRIVPORTS \
-d $NAMESERVER_1 —dport 53 -j ACCEPT

$IPTABLES -A INPUT -i $EXT_INTERF -p udp \
-s $NAMESERVER_1 —sport 53 \
-d $EXT_IPADDR —dport $UNPRIVPORTS -j ACCEPT

# DNS-сервер в режиме кэширования и перенаправления
$IPTABLES -A OUTPUT -o $EXT_INTERF -p udp \
-s $EXT_IPADDR —sport 53 \
-d $NAMESERVER_1 —dport 53 -j ACCEPT

$IPTABLES -A INPUT -i $EXT_INTERF -p udp \
-s $NAMESERVER_1 —sport 53 \
-d $EXT_IPADDR —dport 53 -j ACCEPT
#########
$IPTABLES -A OUTPUT -o $EXT_INTERF -p tcp \
-s $EXT_IPADDR —sport $UNPRIVPORTS \
-d $NAMESERVER_1 —dport 53 -j ACCEPT

$IPTABLES -A INPUT -i $EXT_INTERF -p tcp ! —syn \
-s $NAMESERVER_1 —sport 53 \
-d $EXT_IPADDR —dport $UNPRIVPORTS -j ACCEPT
#####

# DNS2 в режиме клиента

$IPTABLES -A OUTPUT -o $EXT_INTERF -p udp \
-s $EXT_IPADDR —sport $UNPRIVPORTS \
-d $NAMESERVER_2 —dport 53 -j ACCEPT

$IPTABLES -A INPUT -i $EXT_INTERF -p udp \
-s $NAMESERVER_2 —sport 53 \
-d $EXT_IPADDR —dport $UNPRIVPORTS -j ACCEPT

# DNS-сервер в режиме кэширования и перенаправления
$IPTABLES -A OUTPUT -o $EXT_INTERF -p udp \
-s $EXT_IPADDR —sport 53 \
-d $NAMESERVER_2 —dport 53 -j ACCEPT

$IPTABLES -A INPUT -i $EXT_INTERF -p udp \
-s $NAMESERVER_2 —sport 53 \
-d $EXT_IPADDR —dport 53 -j ACCEPT
#########
$IPTABLES -A OUTPUT -o $EXT_INTERF -p tcp \
-s $EXT_IPADDR —sport $UNPRIVPORTS \
-d $NAMESERVER_2 —dport 53 -j ACCEPT

$IPTABLES -A INPUT -i $EXT_INTERF -p tcp ! —syn \
-s $NAMESERVER_2 —sport 53 \
-d $EXT_IPADDR —dport $UNPRIVPORTS -j ACCEPT

Читайте также:  Что делать если сломался подоконник

$IPTABLES -A OUTPUT -o $EXT_INTERF -p tcp \
-s $EXT_IPADDR —source-port $UNPRIVPORTS \
-d $ANYWHERE —dport 80 -j ACCEPT

$IPTABLES -A INPUT -i $EXT_INTERF -p tcp ! —syn \
-s $ANYWHERE —source-port 80 \
-d $EXT_IPADDR —dport $UNPRIVPORTS -j ACCEPT

# SSL-клиент (443) (защищенные web)

$IPTABLES -A OUTPUT -o $EXT_INTERF -p tcp \
-s $EXT_IPADDR —source-port $UNPRIVPORTS \
-d $ANYWHERE —dport 443 -j ACCEPT

$IPTABLES -A INPUT -i $EXT_INTERF -p tcp ! —syn \
-s $ANYWHERE —source-port 443 \
-d $EXT_IPADDR —dport $UNPRIVPORTS -j ACCEPT

# POP (110) — Получение почты посредством POP-клиента

$IPTABLES -A OUTPUT -o $EXT_INTERF -p tcp \
-s $EXT_IPADDR —source-port $UNPRIVPORTS \
-d $ANYWHERE —dport 110 -j ACCEPT

$IPTABLES -A INPUT -i $EXT_INTERF -p tcp ! —syn \
-s $ANYWHERE —source-port 110 \
-d $EXT_IPADDR —dport $UNPRIVPORTS -j ACCEPT

# IMAP (143) — Получение почты посредством POP-клиента

$IPTABLES -A OUTPUT -o $EXT_INTERF -p tcp \
-s $EXT_IPADDR —source-port $UNPRIVPORTS \
-d $ANYWHERE —dport 143 -j ACCEPT

$IPTABLES -A INPUT -i $EXT_INTERF -p tcp ! —syn \
-s $ANYWHERE —source-port 143 \
-d $EXT_IPADDR —dport $UNPRIVPORTS -j ACCEPT

# SMTP (25) — клиент

$IPTABLES -A OUTPUT -o $EXT_INTERF -p tcp \
-s $EXT_IPADDR —source-port $UNPRIVPORTS \
-d $ANYWHERE —dport 25 -j ACCEPT

$IPTABLES -A INPUT -i $EXT_INTERF -p tcp ! —syn \
-s $ANYWHERE —source-port 25 \
-d $EXT_IPADDR —dport $UNPRIVPORTS -j ACCEPT

# SSH (22) — клиент (защищенный Telnet)

$IPTABLES -A OUTPUT -o $EXT_INTERF -p tcp \
-s $EXT_IPADDR —source-port $UNPRIVPORTS \
-d $ANYWHERE —dport 22 -j ACCEPT

$IPTABLES -A INPUT -i $EXT_INTERF -p tcp ! —syn \
-s $ANYWHERE —source-port 22 \
-d $EXT_IPADDR —dport $UNPRIVPORTS -j ACCEPT

$IPTABLES -A OUTPUT -o $EXT_INTERF -p tcp \
-s $EXT_IPADDR —source-port $SSH_PORTS \
-d $ANYWHERE —dport 22 -j ACCEPT

$IPTABLES -A INPUT -i $EXT_INTERF -p tcp ! —syn \
-s $ANYWHERE —source-port 22 \
-d $EXT_IPADDR —dport $SSH_PORTS -j ACCEPT

# FTP (20, 21) — Обращение клиентов к удаленным FTP-серверам

# Исходящий запрос
$IPTABLES -A OUTPUT -o $EXT_INTERF -p tcp \
-s $EXT_IPADDR —source-port $UNPRIVPORTS \
-d $ANYWHERE —dport 21 -j ACCEPT

$IPTABLES -A INPUT -i $EXT_INTERF -p tcp ! —syn \
-s $ANYWHERE —source-port 21 \
-d $EXT_IPADDR —dport $UNPRIVPORTS -j ACCEPT

# Режим нормального канала данных (normal data channel port mode)
$IPTABLES -A INPUT -i $EXT_INTERF -p tcp \
-s $ANYWHERE —source-port 20\
-d $EXT_IPADDR —dport $UNPRIVPORTS -j ACCEPT

$IPTABLES -A OUTPUT -o $EXT_INTERF -p tcp ! —syn \
-s $EXT_IPADDR —source-port $UNPRIVPORTS \
-d $ANYWHERE —dport 20 -j ACCEPT

# Режим пассивного канала данных (passive data channel mode)

$IPTABLES -A OUTPUT -o $EXT_INTERF -p tcp \
-s $EXT_IPADDR —source-port $UNPRIVPORTS \
-d $ANYWHERE —dport $UNPRIVPORTS -j ACCEPT

$IPTABLES -A INPUT -i $EXT_INTERF -p tcp ! —syn \
-s $ANYWHERE —source-port $UNPRIVPORTS \
-d $EXT_IPADDR —dport $UNPRIVPORTS -j ACCEPT

# SMTP 1 Получение сообщений, предназначенных для локальных машин
$IPTABLES -A INPUT -i $EXT_INTERF -p tcp \
-s $ANYWHERE —source-port $UNPRIVPORTS \
-d $EXT_IPADDR —dport 25 -j ACCEPT
$IPTABLES -A OUTPUT -o $EXT_INTERF -p tcp ! —syn \
-s $EXT_IPADDR —source-port 25 \
-d $ANYWHERE —dport $UNPRIVPORTS -j ACCEPT
$IPTABLES -A OUTPUT -o $LAN_DMZ_INTERF -p tcp \
-s $ANYWHERE —source-port $UNPRIVPORTS \
-d $MAIL_IP —dport 25 -j ACCEPT
$IPTABLES -A INPUT -i $LAN_DMZ_INTERF -p tcp ! —syn \
-s $MAIL_IP —source-port 25 \
-d $ANYWHERE —dport $UNPRIVPORTS -j ACCEPT
# SMTP 2 Сервер ДМЗ посылает письма с локальных машин на удаленные узлы.
$IPTABLES -A INPUT -i $LAN_DMZ_INTERF -p tcp \
-s $MAIL_IP —source-port $UNPRIVPORTS \
-d $ANYWHERE —dport 25 -j ACCEPT
$IPTABLES -A OUTPUT -o $LAN_DMZ_INTERF -p tcp ! —syn \
-s $ANYWHERE —source-port 25 \
-d $MAIL_IP —dport $UNPRIVPORTS -j ACCEPT

$IPTABLES -A OUTPUT -o $EXT_INTERF -p tcp \
-s $EXT_IPADDR —source-port $UNPRIVPORTS \
-d $ANYWHERE —dport 25 -j ACCEPT
$IPTABLES -A INPUT -i $EXT_INTERF -p tcp —syn \
-s $ANYWHERE —source-port 25 \
-d $ANYWHERE —dport $UNPRIVPORTS -j ACCEPT

#——————————————————————————
# Цепочка перенаправления из ИНТЕРНЕТ в ДМЗ
# Конфигурация входящего и исходящего почтового сервера

$IPTABLES -t nat -A PREROUTING -p TCP -i $EXT_INTERF -d $EXT_IPADDR —dport 25 \
-j DNAT —to-destination $MAIL_IP

# ИЛИ ТАК, всеравно не работает
#$IPTABLES -t nat -A PREROUTING -p TCP -i $EXT_INTERF -d $EXT_IPADDR —dport #25 \
#-j DNAT —to-destination $MAIL_IP:25

$IPTABLES -t nat -A PREROUTING -p TCP -i $EXT_INTERF -d $EXT_IPADDR —dport 143 \
-j DNAT —to-destination $MAIL_IP
$IPTABLES -t nat -A PREROUTING -p TCP -i $EXT_INTERF -d $EXT_IPADDR —dport 110 \
-j DNAT —to-destination $MAIL_IP
# Конфигурация файлового сервера
$IPTABLES -t nat -A PREROUTING -p TCP -i $EXT_INTERF -d $EXT_IPADDR —dport 21 \
-j DNAT —to-destination $FTP_IP
$IPTABLES -t nat -A PREROUTING -p TCP -i $EXT_INTERF -d $EXT_IPADDR —dport 20 \
-j DNAT —to-destination $FTP_IP

# Цепочка NAT из ДМЗ в ИНТЕРНЕТ
$IPTABLES -t nat -A POSTROUTING -o $EXT_INTERF -j SNAT —to-source $EXT_IPADDR
#——————————————————————————

##############
# TRACEROUTE #
##############
$IPTABLES -A OUTPUT -o $EXT_INTERF -p udp \
-s $EXT_IPADDR —source-port 32769:65535 \
-d $ANYWHERE —dport 33434:33523 -j ACCEPT
# Цепочка FORWARD
#$IPTABLES -A FORWARD -i $LAN_DMZ_INTERF -j ACCEPT
#$IPTABLES -A FORWARD -m state —state ESTABLISHED,RELATED -j ACCEPT

$IPTABLES -A FORWARD -i $LAN_DMZ_INTERF -o $EXT_INTERF -j ACCEPT
$IPTABLES -A FORWARD -m state —state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -p TCP -i $EXT_INTERF -o $LAN_DMZ_INTERF \
-d $MAIL_IP —dport 110 -j ACCEPT
$IPTABLES -A FORWARD -p TCP -i $EXT_INTERF -o $LAN_DMZ_INTERF \
-d $MAIL_IP —dport 143 -j ACCEPT

Читайте также:  Как настроить экг аппарат axiom

$IPTABLES -A FORWARD -p TCP -i $EXT_INTERF -o $LAN_DMZ_INTERF \
-d $MAIL_IP —dport 25 -j ACCEPT

# ИЛИ ТАК, всеравно не работает
#$IPTABLES -A FORWARD -p TCP -i $EXT_INTERF -o $LAN_DMZ_INTERF \
# -s $EXT_INTERF —sport 25 \
# -d $MAIL_IP —dport 25 -j ACCEPT
#

echo «DONE. »
exit 0

БОЛЬШОЕ СПАСИБО ЗА ВАШЕ ВНИМАНИЕ

С уважением,
Ncskiber

Если нужно:
me mail: ncskiber@mail.ru

Рекомендовать в FAQ | Cообщить модератору | Наверх

Оглавление

  • RE: НЕ РАБОТАЕТ DNAT IPTABLES HELP ME PLZ. , oViX, 22:54 , 31-Июл-02, (1)
    • RE: НЕ РАБОТАЕТ DNAT IPTABLES HELP ME PLZ. , ncskiber, 11:05 , 01-Авг-02, (2)
      • RE: НЕ РАБОТАЕТ DNAT IPTABLES HELP ME PLZ. , ncskiber, 13:58 , 01-Авг-02, (3)
        • RE: НЕ РАБОТАЕТ DNAT IPTABLES HELP ME PLZ. , oViX, 18:26 , 01-Авг-02, (4)
          • RE: НЕ РАБОТАЕТ DNAT IPTABLES HELP ME PLZ. , ncskiber, 18:40 , 08-Авг-02, ( 5 )

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

Правило прероутинга, например, для SMTP у тебя это будет:

# SMTP_SERVER
iptables -t nat -A PREROUTING -p tcp -i $EXT_INTE -s any/0 —sport 1024:65535 -d $EXT_IPADDR —dport 25 -j DNAT —to-destination $MAIL_IP

У тебя не было явно указано «от кого».

Остальное не смотрел, но скажу, что далее пропиши forward для 25 порта и postrouting на интерфейс к DMZ

1. «RE: НЕ РАБОТАЕТ DNAT IPTABLES HELP ME PLZ. «
Сообщение от oViX on 31-Июл-02, 22:54 (MSK)
Рекомендовать в FAQ | Cообщить модератору | Наверх

2. «RE: НЕ РАБОТАЕТ DNAT IPTABLES HELP ME PLZ. «
Сообщение от ncskiber on 01-Авг-02, 11:05 (MSK)

>Правило прероутинга, например, для SMTP у тебя это будет:
>
># SMTP_SERVER
>iptables -t nat -A PREROUTING -p tcp -i $EXT_INTE -s any/0 —sport
>1024:65535 -d $EXT_IPADDR —dport 25 -j DNAT —to-destination $MAIL_IP
>
>У тебя не было явно указано «от кого».
>
>Остальное не смотрел, но скажу, что далее пропиши forward для 25 порта
>и postrouting на интерфейс к DMZ

Спасибо, попробую, о новостях сообщу!

Рекомендовать в FAQ | Cообщить модератору | Наверх

3. «RE: НЕ РАБОТАЕТ DNAT IPTABLES HELP ME PLZ. «
Сообщение от ncskiber on 01-Авг-02, 13:58 (MSK)

К сожалению, ваш совет не помог.
На этом форуме в параллельном разделе ‘OpenNET: Виртуальная конференция’
Sampan дал свои рекомендации, но и они не помогли, если интерес к проблеме не пропал, то я там дал дополнительную (стат.) информацию.

P.S. Каким дистрибутивом на брандмауэре пользуютись (название, версия,) и iptables у Вас какая версия? Если делали DNAT у себя для перенаправления скинти ваши правила плз.

Спасибо за внимание!

Рекомендовать в FAQ | Cообщить модератору | Наверх

4. «RE: НЕ РАБОТАЕТ DNAT IPTABLES HELP ME PLZ. «
Сообщение от oViX on 01-Авг-02, 18:26 (MSK)

1. Это не было написано, поэтому: у провайдера мэйловый релей на твой почтовик как прописан? Надо, чтоб запись была по ip твоего файрвола во вне ($EXT_INTERF, 211.33.195.47 ), — от его имени твой почтовик работает с Инетом.
2. Проверить правильность можно удаленно зателнетившись на 25 порт:
#telnet 211.33.195.47 25

Если все нормально, то почтовик доступен, разбирайса с провайдерами по поводу MX.

3.Правила FW
# PREROUTING
iptables -t nat -A PREROUTING -p tcp -s any/0 —sport 1024:65535 -d $EXT_INTERF —dport 25 -j DNAT —to-destination $MAIL_IP

# FORWARD
iptables -A FORWARD -p tcp -i $EXT_INTERF -s any/0 —sport 1024:65535 -d $MAIL_IP —dport 25 -j ACCEPT
iptables -A FORWARD -p tcp -o $EXT_INTERF -s $MAIL_IP —sport 25 -d any/0 —dport 1024:65535 -j ACCEPT

# POSTROUTING
iptables -t nat -A POSTROUTING -p tcp -s any/0 —sport 1024:65535 -d $MAIL_IP —dport 25 -j ACCEPT

ПРопиши их вначале всех правил, чтоб они РАБОТАЛИ, может какое-то правило их забивает.

Рекомендовать в FAQ | Cообщить модератору | Наверх

5 . «RE: НЕ РАБОТАЕТ DNAT IPTABLES HELP ME PLZ. «
Сообщение от ncskiber on 08-Авг-02, 18:40 (MSK)

>1. Это не было написано, поэтому: у провайдера мэйловый релей на твой
>почтовик как прописан? Надо, чтоб запись была по ip твоего файрвола
>во вне ($EXT_INTERF, 211.33.195.47 ), — от его имени твой почтовик
>работает с Инетом.
>2. Проверить правильность можно удаленно зателнетившись на 25 порт:
>#telnet 211.33.195.47 25
>
>Если все нормально, то почтовик доступен, разбирайса с провайдерами по поводу MX.
>
>
>3.Правила FW
># PREROUTING
>iptables -t nat -A PREROUTING -p tcp -s any/0 —sport 1024:65535 -d
>$EXT_INTERF —dport 25 -j DNAT —to-destination $MAIL_IP
>
># FORWARD
>iptables -A FORWARD -p tcp -i $EXT_INTERF -s any/0 —sport 1024:65535 -d
>$MAIL_IP —dport 25 -j ACCEPT
>iptables -A FORWARD -p tcp -o $EXT_INTERF -s $MAIL_IP —sport 25
>-d any/0 —dport 1024:65535 -j ACCEPT
>
># POSTROUTING
>iptables -t nat -A POSTROUTING -p tcp -s any/0 —sport 1024:65535 -d
>$MAIL_IP —dport 25 -j ACCEPT
>
>ПРопиши их вначале всех правил, чтоб они РАБОТАЛИ, может какое-то правило их
>забивает.
>
>УДАЧИ.

В вобщем DNAT работает. Я ПРОБЛЕМУ НАШЕЛ В ДРУГОМ, А ИМЕННО В SENDMAIL ПИСЬМО ХОДИТ ПО КРУГУ: Я ЭТО ОБРЕСОВАЛ В НОВОЙ ТЕМЕ (Знатокам Sendmail, DNS, IPTABLES. )

Источник

Оцените статью