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

Исходное сообщение
"не могу разобраться SNAT или DNAT"

Отправлено alex320388 , 02-Фев-11 10:14 
Привет!
Не могу никак настроить iptables. Ситуация такая.
Есть 2 сети и шлюз между ними, на котором также работает http-сервер с сайтом
                     _____________
192.168.2.0/24 -eth0[ http-сервер ]eth1- 101.8.8.0/24
                 192.168.2.1  101.8.8.9


Пользователи "серой" сети 192.168.2.0 могут на сайт заходить только через http://192.168.2.1/index.html

Пользователи "белой" сети 101.8.8.0 - через http://101.8.8.9/index.html

Из-за етого, например, форум неправильно работает. Его могут откривать только пользователи 1 из сетей - той, что укажу в настройках.
Или, например, указиваю ссилку http://192.168.2.1/blabla.html - пользователи белой сети по ней пройти не могут.

Я хочу чтоби все пользователи могли обращаться к сайту и через http://192.168.2.1/index.html и через http://101.8.8.9/index.html

Я слишал что возможно, но как сделать не знаю. Помогите пожалуйста.



Содержание

Сообщения в этом обсуждении
"не могу разобраться SNAT или DNAT"
Отправлено rusadmin , 02-Фев-11 11:30 
>[оверквотинг удален]
>      192.168.2.1  101.8.8.9
> Пользователи "серой" сети 192.168.2.0 могут на сайт заходить только через http://192.168.2.1/index.html
> Пользователи "белой" сети 101.8.8.0 - через http://101.8.8.9/index.html
> Из-за етого, например, форум неправильно работает. Его могут откривать только пользователи
> 1 из сетей - той, что укажу в настройках.
> Или, например, указиваю ссилку http://192.168.2.1/blabla.html - пользователи белой сети
> по ней пройти не могут.
> Я хочу чтоби все пользователи могли обращаться к сайту и через http://192.168.2.1/index.html
> и через http://101.8.8.9/index.html
> Я слишал что возможно, но как сделать не знаю. Помогите пожалуйста.

Непонимаю зачем тут NAT вообще
нужно только включить пересылку пакетов в ядре и

iptables -A INPUT -s 101.8.8.0/24 -p tcp --dport 80 -j ACCEPT
iptables -A OUTPUT -d 101.8.8.0/24 -p tcp --sport 80 -j ACCEPT
iptables -A INPUT -s 192.168.2.0/24 -p tcp --dport 80 -j ACCEPT
iptables -A OUTPUT -d 192.168.2.0/24 -p tcp --sport 80 -j ACCEPT

Нужно если маршрутизация сетей вообще нужна
iptables -A FORWARD -s 101.8.8.0/24 -d 192.168.2.0/24 -j ACCEPT
iptables -A FORWARD -d 101.8.8.0/24 -s 192.168.2.0/24 -j ACCEPT

участники обоих сетей прекрасно будут открывать сайт например по 101.8.8.9
Главное тут чтобы у этих самих участников был прописан основной шлюз, равный ip адресу шлюза, либо статический маршрут



"не могу разобраться SNAT или DNAT"
Отправлено alex320388 , 02-Фев-11 12:22 
не работают оба варианта :(

"не могу разобраться SNAT или DNAT"
Отправлено alex320388 , 02-Фев-11 12:26 
вот мой iptables

*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A POSTROUTING -o eth2 -j MASQUERADE
COMMIT
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
-A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
-A FORWARD -p icmp -j ACCEPT
-A FORWARD -i lo -j ACCEPT
-A FORWARD -o eth2 -p tcp -s 192.168.2.0/24 --dport 80 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT


"не могу разобраться SNAT или DNAT"
Отправлено reader , 02-Фев-11 12:39 
смотрите конфиг http-сервера о форуме и .htaccess файл в каталоге форума

"не могу разобраться SNAT или DNAT"
Отправлено sHaggY_caT , 02-Фев-11 12:52 
> Из-за етого, например, форум неправильно работает. Его могут откривать только пользователи
> 1 из сетей - той, что укажу в настройках.
> Или, например, указиваю ссилку http://192.168.2.1/blabla.html - пользователи белой сети
> по ней пройти не могут.
> Я хочу чтоби все пользователи могли обращаться к сайту и через http://192.168.2.1/index.html
> и через http://101.8.8.9/index.html
> Я слишал что возможно, но как сделать не знаю. Помогите пожалуйста.

Ваша проблема решается через DNS:

1. Создаем локальный DNS-сервер
2. Создаем (используем чей-то чужой) DNS-сервер

Для форума потребуется доменное имя. В ряде случаев, можно получить бесплатное на, например, домене forum.company99119.ru, где company99119.ru доменное имя компании, где работает Ваш знакомый системный администратор

На публичном DNS-сервере, куда делегирована зона company99119.ru (будет находится под контролем этого деятеля), создается A-запись

forum.company99119.ru. IN A 101.8.8.9

На Вашем собственном локальном DNS (о его существовании должны знать пользователи локальной сети, если Вы ISP, раздавайте его через DHCP юзерам, если нет, договоритесь с ISP, что бы делегировал Вашу зону на своем DNS-кэше на Ваш DNS) создаете запись:

forum.company99119.ru. IN A 192.168.2.1

И все работает.

По-другому Вы проблему не решите, т.к. система DNS и создана для отвязки от URL, состоящих из IP-адресов, а в зону интернета Вы за любые деньги в мире не добавите маршрутизацию на подсеть 192.168.2.0/24, ведущую на Вашу железку, так как RFC не даст, и ссылка http://192.168.2.1/blabla.html у пользователя всемирной сети никогда не заработает (или будет указывать в его собственную локалку)

Правда, еще есть вариант VPN, но его нужно _настраивать_ внешнему пользователю.
Именно в этом случае http://192.168.2.1/blabla.html у него заработает.


"не могу разобраться SNAT или DNAT"
Отправлено alex320388 , 02-Фев-11 13:57 
>[оверквотинг удален]
> работает Ваш знакомый системный администратор
> На публичном DNS-сервере, куда делегирована зона company99119.ru (будет находится под
> контролем этого деятеля), создается A-запись
> forum.company99119.ru. IN A 101.8.8.9
> На Вашем собственном локальном DNS (о его существовании должны знать пользователи локальной
> сети, если Вы ISP, раздавайте его через DHCP юзерам, если нет,
> договоритесь с ISP, что бы делегировал Вашу зону на своем DNS-кэше
> на Ваш DNS) создаете запись:
> forum.company99119.ru. IN A 192.168.2.1
> И все работает.

Спасибо.
А если я на локальном DNS  сделаю так:
101.8.8.9 IN A 192.168.2.1

Получится, что пользователи из серой сети обращаются к 101.8.8.9 и попадают на
192.168.2.1 ?


"не могу разобраться SNAT или DNAT"
Отправлено sHaggY_caT , 02-Фев-11 14:02 

> Спасибо.
> А если я на локальном DNS  сделаю так:
> 101.8.8.9 IN A 192.168.2.1
> Получится, что пользователи из серой сети обращаются к 101.8.8.9 и попадают на
> 192.168.2.1 ?

Нет, у Вас все в голове перепутано! На самом деле, маршрутизация (как статическая, так и динамическая) настраивается совсем другим образом!
Для этого нужно иметь доступ к роутерам провайдера, к ядру сети. Если сеть большая, то к ее шлюзу, но так никто не делает!

Я Вам подсказала два единственно верных варианта, на всех других, уверяю Вас, Вы только набьете шишки, и наступите на все возможные грабли, вспомните рене Декарта: "Все разумное действительно", и обратите наоборот: "все действительное разумно", очень не зря вопросы маршрутизации в глобальной сети решают с помощью BGP, а преобразования доменных имен с помощью DNS.
Если будете расти над собой, читать документацию, уверена, уже через годик поймете, почему.


"не могу разобраться SNAT или DNAT"
Отправлено alex320388 , 02-Фев-11 14:05 
> Я Вам подсказала два единственно верных варианта,

А какой второй? Поскольку c внешним DNS проблема


"не могу разобраться SNAT или DNAT"
Отправлено alex320388 , 02-Фев-11 14:07 
>> Я Вам подсказала два единственно верных варианта,
> А какой второй? Поскольку c внешним DNS проблема

p/s/
Маршрутизацию я кажется настроил, т.к. из серой сети можно путешествовать по сайтом в белой.
Мне нужно подружить их на одном сайте. Чтоб у страничек біл один адрес.


"не могу разобраться SNAT или DNAT"
Отправлено alex320388 , 02-Фев-11 14:09 

>> А какой второй? Поскольку c внешним DNS проблема

ups/ про VPN я не заметил.


"не могу разобраться SNAT или DNAT"
Отправлено sHaggY_caT , 02-Фев-11 14:15 
>>> Я Вам подсказала два единственно верных варианта,
>> А какой второй? Поскольку c внешним DNS проблема
> p/s/
> Маршрутизацию я кажется настроил, т.к. из серой сети можно путешествовать по сайтом
> в белой.
> Мне нужно подружить их на одном сайте. Чтоб у страничек біл один
> адрес.

Кстати, да, это тоже вариант, давать один URL только с внешним IP-адресом.


"не могу разобраться SNAT или DNAT"
Отправлено sHaggY_caT , 02-Фев-11 14:10 
> А какой второй?

VPN-сервер, который добавит в таблицу маршрутизации внешнего юзера подсеть 192.168.2.0/24 через VPN-сервер, внутрь Вашей локалки.
Я об этом писала. Внешнему юзеру нужно будет генерить сертификат и все такое прочее, и ему нужно будет настраивать доступ у себя на ПК.
Обычно так не делают для публичных сайтов.

>Поскольку c внешним DNS проблема

Домен второго уровня(вида fialky.ru для сайта/форума про фиалки) можно купить за пару сотен рублей, не могу себе представить, какие могут быть проблемы с внешним DNS во втором десятилетии XXI-ого века!
А домен третьего уровня можно вообще часто получить бесплатно у знакомых!



"не могу разобраться SNAT или DNAT"
Отправлено alex320388 , 05-Фев-11 13:49 
> Домен второго уровня(вида fialky.ru для сайта/форума про фиалки) можно купить за пару
> сотен рублей, не могу себе представить, какие могут быть проблемы с
> внешним DNS во втором десятилетии XXI-ого века!
> А домен третьего уровня можно вообще часто получить бесплатно у знакомых!

сеть внутренняя, без доступа к интернет


"не могу разобраться SNAT или DNAT"
Отправлено reader , 05-Фев-11 15:24 
>> Домен второго уровня(вида fialky.ru для сайта/форума про фиалки) можно купить за пару
>> сотен рублей, не могу себе представить, какие могут быть проблемы с
>> внешним DNS во втором десятилетии XXI-ого века!
>> А домен третьего уровня можно вообще часто получить бесплатно у знакомых!
> сеть внутренняя, без доступа к интернет

значит просто в подсетях указываете шлюзом соответствующий интерфейс вашего пограничного шлюза, в пакетном фильтре вроде разрешено что нужно.
проверяете настройки web-сервера, там могут быть указаны ограничения кому можно каким ресурсом пользоваться, и все.

а что такое eth2?


"не могу разобраться SNAT или DNAT"
Отправлено alex320388 , 22-Фев-11 17:19 
вишел из положения таким образом.

в скрипт, корторий виводит сообщения на страницу форума добавил

$ip=getenv("REMOTE_ADDR");
if(ereg("192.168.", $ip)!=0) { $msg=str_replace("101.8.9.8","192.168.2.1",$msg); }
else { $msg=str_replace("192.168.2.1","101.8.9.8",$msg); }


Теперь, все работает и не надо трахаться с настройками сети :)