URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID10
Нить номер: 2718
[ Назад ]

Исходное сообщение
"Что-то с PREROUTING-ом странное"

Отправлено vkozlov , 11-Май-06 18:22 
Бьюсь второй день. Перечитал все маны и перерыл весь форум. Не работает хоть убейся.

Вот конфиг (eth0 - локальный интерфейс, eth1 - внешний):

# IPTables Configuration.
IPTABLES="/sbin/iptables"

# Needed to initially load modules
/sbin/depmod -a

# Required modules
/sbin/modprobe ip_tables
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_conntrack_ftp ports=21,3021
/sbin/modprobe ip_nat_ftp
/sbin/modprobe iptable_filter
/sbin/modprobe iptable_mangle
/sbin/modprobe iptable_nat
/sbin/modprobe ipt_state


echo "1" > /proc/sys/net/ipv4/ip_forward

$IPTABLES -F
$IPTABLES -t mangle -F
$IPTABLES -t nat -F
$IPTABLES -t filter -F
$IPTABLES -X
$IPTABLES -t mangle -X
$IPTABLES -t nat -X
$IPTABLES -t filter -X


# Set policies
$IPTABLES -P INPUT ACCEPT
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -P FORWARD ACCEPT

$IPTABLES -A INPUT -i lo -j ACCEPT
$IPTABLES -A OUTPUT -o lo -j ACCEPT

IPTABLES -t nat -A PREROUTING -p tcp -d 195.133.3.44 --dport 3389 -j DNAT --to-destination 10.0.0.12:3389

IPTABLES -A FORWARD -p tcp -d 10.0.0.12 --dport 3389 -j ACCEPT
IPTABLES -A FORWARD -p tcp -s 10.0.0.12 --sport 3389 -j ACCEPT

$IPTABLES -A INPUT -j ACCEPT -p tcp --dport 5900 -s 10.0.0.110 -i eth0
$IPTABLES -A OUTPUT -j ACCEPT -p tcp --sport 5900 -d 10.0.0.110 -o eth0

$IPTABLES -A INPUT -j ACCEPT -p tcp --dport 3389 -i eth1
$IPTABLES -A OUTPUT -j ACCEPT -p tcp --sport 3389 -o eth1

$IPTABLES -A OUTPUT -j ACCEPT -p tcp --dport 3389 -o eth1
$IPTABLES -A INPUT -j ACCEPT -p tcp --sport 3389 -i eth1

$IPTABLES -A OUTPUT -j ACCEPT -p tcp --dport 3389 -o eth0
$IPTABLES -A INPUT -j ACCEPT -p tcp --sport 3389 -i eth0

$IPTABLES -A INPUT -j ACCEPT -p tcp --dport 3389 -i eth0
$IPTABLES -A OUTPUT -j ACCEPT -p tcp --sport 3389 -o eth0



Содержание

Сообщения в этом обсуждении
"Что-то с PREROUTING-ом странное"
Отправлено Kliver , 11-Май-06 19:56 
>Бьюсь второй день. Перечитал все маны и перерыл весь форум. Не работает
>хоть убейся.
>
>Вот конфиг (eth0 - локальный интерфейс, eth1 - внешний):
>
># IPTables Configuration.
>IPTABLES="/sbin/iptables"
>
># Needed to initially load modules
>/sbin/depmod -a
>
># Required modules
>/sbin/modprobe ip_tables
>/sbin/modprobe ip_conntrack
>/sbin/modprobe ip_conntrack_ftp ports=21,3021
>/sbin/modprobe ip_nat_ftp
>/sbin/modprobe iptable_filter
>/sbin/modprobe iptable_mangle
>/sbin/modprobe iptable_nat
>/sbin/modprobe ipt_state
>
>
>echo "1" > /proc/sys/net/ipv4/ip_forward
>
>$IPTABLES -F
>$IPTABLES -t mangle -F
>$IPTABLES -t nat -F
>$IPTABLES -t filter -F
>$IPTABLES -X
>$IPTABLES -t mangle -X
>$IPTABLES -t nat -X
>$IPTABLES -t filter -X
>
>
># Set policies
>$IPTABLES -P INPUT ACCEPT
>$IPTABLES -P OUTPUT ACCEPT
>$IPTABLES -P FORWARD ACCEPT
>
>$IPTABLES -A INPUT -i lo -j ACCEPT
>$IPTABLES -A OUTPUT -o lo -j ACCEPT
>
>
>IPTABLES -t nat -A PREROUTING -p tcp -d 195.133.3.44 --dport 3389 -j
>DNAT --to-destination 10.0.0.12:3389

Правильнее, наверное $IPTABLES
И добавь

$IPTABLES -t nat -A POSTROUTING  -s 10.0.0.12 -j SNAT --to-source 195.133.3.44

Все что ниже в твоем случае лишнее, все равно все политики стоят в ACCEPT
Это, конечно, если я правильно понял задачу, что тебе надо порт прокинуть внутрь сети
>
>IPTABLES -A FORWARD -p tcp -d 10.0.0.12 --dport 3389 -j ACCEPT
>IPTABLES -A FORWARD -p tcp -s 10.0.0.12 --sport 3389 -j ACCEPT
>

>
>
>$IPTABLES -A INPUT -j ACCEPT -p tcp --dport 5900 -s 10.0.0.110 -i
>eth0
>$IPTABLES -A OUTPUT -j ACCEPT -p tcp --sport 5900 -d 10.0.0.110 -o
>eth0
>
>$IPTABLES -A INPUT -j ACCEPT -p tcp --dport 3389 -i eth1
>$IPTABLES -A OUTPUT -j ACCEPT -p tcp --sport 3389 -o eth1
>
>$IPTABLES -A OUTPUT -j ACCEPT -p tcp --dport 3389 -o eth1
>$IPTABLES -A INPUT -j ACCEPT -p tcp --sport 3389 -i eth1
>
>$IPTABLES -A OUTPUT -j ACCEPT -p tcp --dport 3389 -o eth0
>$IPTABLES -A INPUT -j ACCEPT -p tcp --sport 3389 -i eth0
>
>$IPTABLES -A INPUT -j ACCEPT -p tcp --dport 3389 -i eth0
>$IPTABLES -A OUTPUT -j ACCEPT -p tcp --sport 3389 -o eth0
>
>
>



"Что-то с PREROUTING-ом странное"
Отправлено vkozlov , 12-Май-06 10:15 
>Правильнее, наверное $IPTABLES

Так и есть, это просто при копипастинге $ потерялся :)

>И добавь
>$IPTABLES -t nat -A POSTROUTING  -s 10.0.0.12 -j SNAT --to-source 195.133.3.44

Не помогло :( причем в куче найденных мной в инете HOWTO не используют построутинг для прокидывания портов наружу, а только прероутинг+форвард.

>Все что ниже в твоем случае лишнее, все равно все политики стоят
>в ACCEPT

Я их потом на DROP поменяю и допишу остальные правила. Для локалки и внешней сети все правила у меня в другом скрипте, но пока подгружаю только этот - выход локалки в мир у меня пошел беспроблемно, а вот с прокидыванием порта - кизяк...

Правда я грешу на то что с этой системой я за 10 дней ее изучения творил всякую жуть - ставил что ни попадя а потом вместо деинсталяции пакетов прибивал скрипты запуска демонов :) сейчас форматну винт и попробую поставить всё с нуля, может заработает :)))


"Что-то с PREROUTING-ом странное"
Отправлено vkozlov , 12-Май-06 12:05 
Фигня какая-то...
Поставил свежий Debian 2.6.8

Не работает!!! Ну или я совсем тупой, но куда смотреть и где копать?
Привожу конфиг:

IPTABLES="/sbin/iptables"

/sbin/depmod -a
/sbin/modprobe ip_tables
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_conntrack_ftp ports=21,3021
/sbin/modprobe ip_nat_ftp
/sbin/modprobe iptable_filter
/sbin/modprobe iptable_mangle
/sbin/modprobe iptable_nat
/sbin/modprobe ipt_state

echo "1" > /proc/sys/net/ipv4/ip_forward

$IPTABLES -F
$IPTABLES -t mangle -F
$IPTABLES -t nat -F
$IPTABLES -t filter -F
$IPTABLES -X
$IPTABLES -t mangle -X
$IPTABLES -t nat -X
$IPTABLES -t filter -X


$IPTABLES -P INPUT ACCEPT
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -P FORWARD ACCEPT

$IPTABLES -A INPUT -i lo -j ACCEPT
$IPTABLES -A OUTPUT -o lo -j ACCEPT

# Forward TERMINAL SERVICES from WAN to LAN 10.0.0.12
$IPTABLES -t nat -A PREROUTING -p tcp -d 195.138.98.98 --dport 3389 -j DNAT --to-destination 10.0.0.12:3389
$IPTABLES -t nat -A POSTROUTING -s 10.0.0.12 -j SNAT --to-source 195.138.98.98

# Enable VNC from LAN
$IPTABLES -A INPUT -j ACCEPT -p tcp --dport 5900 -s 10.0.0.110 -i eth0
$IPTABLES -A OUTPUT -j ACCEPT -p tcp --sport 5900 -d 10.0.0.110 -o eth0


"Что-то с PREROUTING-ом странное"
Отправлено vkozlov , 12-Май-06 12:26 
Добавил в конфиг

$IPTABLES -A INPUT -j LOG
$IPTABLES -A OUTPUT -j LOG
$IPTABLES -A FORWARD -j LOG

И вот что вижу в логах:

May 12 11:22:18 dproxy kernel: IN=eth1 OUT=eth0 SRC=83.218.196.9 DST=10.0.0.12 LEN=48 TOS=0x00 PREC=0x00 TTL=122 ID=1343 PROTO=TCP SPT=49947 DPT=3389 WINDOW=65535 RES=0x00 SYN URGP=0
May 12 11:22:21 dproxy kernel: IN=eth1 OUT=eth0 SRC=83.218.196.9 DST=10.0.0.12 LEN=48 TOS=0x00 PREC=0x00 TTL=122 ID=1370 PROTO=TCP SPT=49947 DPT=3389 WINDOW=65535 RES=0x00 SYN URGP=0
May 12 11:22:27 dproxy kernel: IN=eth1 OUT=eth0 SRC=83.218.196.9 DST=10.0.0.12 LEN=48 TOS=0x00 PREC=0x00 TTL=122 ID=1422 PROTO=TCP SPT=49947 DPT=3389 WINDOW=65535 RES=0x00 SYN URGP=0


"Что-то с PREROUTING-ом странное"
Отправлено Kliver , 12-Май-06 15:38 
>Добавил в конфиг
>
>$IPTABLES -A INPUT -j LOG
>$IPTABLES -A OUTPUT -j LOG
>$IPTABLES -A FORWARD -j LOG
>
>И вот что вижу в логах:
>
>May 12 11:22:18 dproxy kernel: IN=eth1 OUT=eth0 SRC=83.218.196.9 DST=10.0.0.12 LEN=48 TOS=0x00 PREC=0x00
>TTL=122 ID=1343 PROTO=TCP SPT=49947 DPT=3389 WINDOW=65535 RES=0x00 SYN URGP=0
>May 12 11:22:21 dproxy kernel: IN=eth1 OUT=eth0 SRC=83.218.196.9 DST=10.0.0.12 LEN=48 TOS=0x00 PREC=0x00
>TTL=122 ID=1370 PROTO=TCP SPT=49947 DPT=3389 WINDOW=65535 RES=0x00 SYN URGP=0
>May 12 11:22:27 dproxy kernel: IN=eth1 OUT=eth0 SRC=83.218.196.9 DST=10.0.0.12 LEN=48 TOS=0x00 PREC=0x00
>TTL=122 ID=1422 PROTO=TCP SPT=49947 DPT=3389 WINDOW=65535 RES=0x00 SYN URGP=0

Почему-то в логах только пакеты из forward и нет пакетов из цепочки input.

А (нескромный вопрос)терминал сервис на 10.0.0.12 запущен? И нет ли там фильтра кому он доступен?


"Это не с прероутингом а с /dev/head траблы были"
Отправлено vkozlov , 12-Май-06 15:48 
>А (нескромный вопрос)терминал сервис на 10.0.0.12 запущен? И нет ли там фильтра
>кому он доступен?

Буквально 10 минут назад нашел в чем дело. Ну чайник я, чайник!

По своей чайниковости я думал, что раз на 10.0.0.12 на порт 3389 с линуксового хоста телнетом я сажусь, 10.0.0.12 с карточкой eth1 линуксового хоста в одной подсети, и в правилах есть DNAT, то можно на терминальном сервере дефолтгейтвей не прописывать...

Оказывается таки надо. Как только прописал на терминальном сервере дефолтгейтвей в сторону линуксового ящика - всё заработало.



"Это не с прероутингом а с /dev/head траблы были"
Отправлено Kliver , 12-Май-06 15:54 

>Оказывается таки надо. Как только прописал на терминальном сервере дефолтгейтвей в сторону
>линуксового ящика - всё заработало.

Поздравляю со счастьем!