Бьюсь второй день. Перечитал все маны и перерыл весь форум. Не работает хоть убейся.Вот конфиг (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
>Бьюсь второй день. Перечитал все маны и перерыл весь форум. Не работает
>хоть убейся.
>
>Вот конфиг (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
>
>
>
>Правильнее, наверное $IPTABLESТак и есть, это просто при копипастинге $ потерялся :)
>И добавь
>$IPTABLES -t nat -A POSTROUTING -s 10.0.0.12 -j SNAT --to-source 195.133.3.44Не помогло :( причем в куче найденных мной в инете HOWTO не используют построутинг для прокидывания портов наружу, а только прероутинг+форвард.
>Все что ниже в твоем случае лишнее, все равно все политики стоят
>в ACCEPTЯ их потом на DROP поменяю и допишу остальные правила. Для локалки и внешней сети все правила у меня в другом скрипте, но пока подгружаю только этот - выход локалки в мир у меня пошел беспроблемно, а вот с прокидыванием порта - кизяк...
Правда я грешу на то что с этой системой я за 10 дней ее изучения творил всякую жуть - ставил что ни попадя а потом вместо деинсталяции пакетов прибивал скрипты запуска демонов :) сейчас форматну винт и попробую поставить всё с нуля, может заработает :)))
Фигня какая-то...
Поставил свежий 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_stateecho "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
Добавил в конфиг$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
>Добавил в конфиг
>
>$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 запущен? И нет ли там фильтра кому он доступен?
>А (нескромный вопрос)терминал сервис на 10.0.0.12 запущен? И нет ли там фильтра
>кому он доступен?Буквально 10 минут назад нашел в чем дело. Ну чайник я, чайник!
По своей чайниковости я думал, что раз на 10.0.0.12 на порт 3389 с линуксового хоста телнетом я сажусь, 10.0.0.12 с карточкой eth1 линуксового хоста в одной подсети, и в правилах есть DNAT, то можно на терминальном сервере дефолтгейтвей не прописывать...
Оказывается таки надо. Как только прописал на терминальном сервере дефолтгейтвей в сторону линуксового ящика - всё заработало.
>Оказывается таки надо. Как только прописал на терминальном сервере дефолтгейтвей в сторону
>линуксового ящика - всё заработало.Поздравляю со счастьем!