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

Исходное сообщение
"iptables dnat snat"

Отправлено truetrue , 03-Июн-10 09:46 
всем добрый день.
столкнулся с проблемой настройки маршрутизатора.

маршрутизатор под testing kernel 2.6.32.
eth1 - внешний интерфейс
eth2 - внутренний интерфейс
локалка - 192.168.0.0/24
внешний ip - 12.34.56.78
192.168.0.25 - сервер в локалке, на котором крутится несколько сервисов.

Задача: раздать интернет юзерам, пробросить порты до 192.168.0.25.

Скрипт для iptables:

#!/bin/sh
iptables -F INPUT
iptables -F FORWARD
iptables -F OUTPUT
iptables -t nat -F PREROUTING
iptables -t nat -F POSTROUTING
iptables -t nat -F OUTPUT

iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT

#SNAT
iptables -t nat -A POSTROUTING -p tcp -d 192.168.0.25 --dport 22 -j SNAT --to-source 192.168.0.1
iptables -t nat -A POSTROUTING -p tcp -d 192.168.0.25 --dport 80 -j SNAT --to-source 192.168.0.1
iptables -t nat -A POSTROUTING  -s 192.168.0.0/24 -o eth1 -j SNAT --to-source 12.34.56.78

#DNAT
iptables -t nat -A PREROUTING -i eth1 -p tcp -d 12.34.56.78 --dport 22 -j DNAT --to 192.168.0.25:22
iptables -t nat -A PREROUTING -i eth1 -p tcp -d 12.34.56.78 --dport 80 -j DNAT --to-destination 192.168.0.25:80

#NAT_OUTPUT
iptables -t nat -A OUTPUT -d 12.34.56.78 -p tcp --dport 80 -j DNAT --to-destination 192.168.0.25
iptables -t nat -A OUTPUT -d 12.34.56.78 -p tcp --dport 22 -j DNAT --to-destination 192.168.0.25

#FORWARD_FILTER
iptables -A FORWARD -j DROP -p udp -m length --length 20:70 -m string --hex-string "|7F FF FF FF|" --algo kmp --from 32 --to 44
iptables -A FORWARD -j DROP -p tcp -m multiport --dports 135,139,445
iptables -A FORWARD -j DROP -p udp -m multiport --dports 137,138

#INPUT_FILTER
iptables -A INPUT -s 127.0.0.1/32 -j ACCEPT
iptables -A INPUT -s 192.168.0.0/24 -p tcp --dport 5222 -j ACCEPT
iptables -A INPUT -p tcp --dport 5222 -j DROP

а не получается следующее:
при обращении из локалки на сайт, который крутится на 192.168.0.25, получаем шишь.

подскажите, где ошибка?


Содержание

Сообщения в этом обсуждении
"iptables dnat snat"
Отправлено Slimm , 03-Июн-10 11:44 
#SNAT
iptables -t nat -A POSTROUTING -p tcp -d 192.168.0.25 --dport 22 -j SNAT --to-source 192.168.0.1
iptables -t nat -A POSTROUTING -p tcp -d 192.168.0.25 --dport 80 -j SNAT --to-source 192.168.0.1

а это зачем?
у вас похоже и из интернета доступа нету к серверу


"iptables dnat snat"
Отправлено reader , 03-Июн-10 12:08 
>#SNAT
>iptables -t nat -A POSTROUTING -p tcp -d 192.168.0.25 --dport 22 -j
>SNAT --to-source 192.168.0.1
>iptables -t nat -A POSTROUTING -p tcp -d 192.168.0.25 --dport 80 -j
>SNAT --to-source 192.168.0.1
>
>а это зачем?
>у вас похоже и из интернета доступа нету к серверу

если из локалки обращаются на сайт через  12.34.56.78 , то это нужно иначе ответы пойдут не через шлюз . 192.168.0.1 я так понимаю адрес шлюза.

по поводу не работает, попробуйте убрать -i eth1 в #DNAT

если обращаются через 192.168.0.25, то вопрос не к шлюзу


"iptables dnat snat"
Отправлено Slimm , 03-Июн-10 13:23 
>[оверквотинг удален]
>>SNAT --to-source 192.168.0.1
>>iptables -t nat -A POSTROUTING -p tcp -d 192.168.0.25 --dport 80 -j
>>SNAT --to-source 192.168.0.1
>>
>>а это зачем?
>>у вас похоже и из интернета доступа нету к серверу
>
>если из локалки обращаются на сайт через  12.34.56.78 , то это
>нужно иначе ответы пойдут не через шлюз . 192.168.0.1 я так
>понимаю адрес шлюза.

обращается на 12.34.56.78, а натится то сурс адрес,
эти правила не нужны


"iptables dnat snat"
Отправлено Slimm , 03-Июн-10 13:52 
а "убрать -i eth1 в #DNAT" это в точку!

"iptables dnat snat"
Отправлено truetrue , 03-Июн-10 15:24 
>а "убрать -i eth1 в #DNAT" это в точку!

бинго! премного благодарен.


"iptables dnat snat"
Отправлено reader , 03-Июн-10 15:36 
>[оверквотинг удален]
>>>
>>>а это зачем?
>>>у вас похоже и из интернета доступа нету к серверу
>>
>>если из локалки обращаются на сайт через  12.34.56.78 , то это
>>нужно иначе ответы пойдут не через шлюз . 192.168.0.1 я так
>>понимаю адрес шлюза.
>
>обращается на 12.34.56.78, а натится то сурс адрес,
>эти правила не нужны

если оставить адрес клиента в пакетах из локалки, то 192.168.0.25 ответ отправит напрямую клиенту и клиенту это не понравится, а так ответ пойдет через 192.168.0.1