The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"DNAT d iptables"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (Маршрутизация, NAT / Linux)
Изначальное сообщение [ Отслеживать ]

"DNAT d iptables"  +/
Сообщение от silent79 email(ok) on 27-Окт-10, 14:12 
Доброго времени суток.
У меня такой вопрос. Есть сервер на который приходит интернет и есть второй сервер на котором работает сервер БД. На первом сервере в iptables написано правило для переброса порта на второй сервер.

iptables -t nat -I PREROUTING -d 0.0.0.0/0 -p tcp --dport 64005 -j DNAT --to-destination 192.168.1.223
iptables -I FORWARD -s 0.0.0.0/0 -d 192.168.1.223 -p tcp --dport 64005 -j ACCEPT

iptables -t nat -I POSTROUTING -s 0.0.0.0/0 -d 192.168.1.223 -p tcp --dport 64005 -j SNAT --to-source 192.168.1.222
iptables -I FORWARD -d 0.0.0.0/0 -s 192.168.1.223 -p tcp --sport 64005 -j ACCEPT

Данными правилами я пропускаю порт 64005 на компьютер 192.168.1.223 и наоборот. Все работает, проблем нет, но есть одно но... Когда клиент из интернета цепляется к БД на порт 64005, то на сервере 192.168.1.223 видно, что данный клиент пришел с адреса 192.168.1.222. И вопрос такой - как мне переделать правило, чтобы на сервере БД фиксировался IP адрес из интернета.

За ранее спасибо.

Высказать мнение | Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "DNAT d iptables"  +/
Сообщение от reader (ok) on 27-Окт-10, 14:50 
>[оверквотинг удален]
> 64005 -j SNAT --to-source 192.168.1.222
> iptables -I FORWARD -d 0.0.0.0/0 -s 192.168.1.223 -p tcp --sport 64005 -j
> ACCEPT
> Данными правилами я пропускаю порт 64005 на компьютер 192.168.1.223 и наоборот. Все
> работает, проблем нет, но есть одно но... Когда клиент из интернета
> цепляется к БД на порт 64005, то на сервере 192.168.1.223 видно,
> что данный клиент пришел с адреса 192.168.1.222. И вопрос такой -
> как мне переделать правило, чтобы на сервере БД фиксировался IP адрес
> из интернета.
> За ранее спасибо.

это из-за правила с SNAT, если на 192.168.1.223 шлюзом указан 192.168.1.222, то для пакетов пришедших не из 192.168.1.0 подсети это привило можно убрать

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

2. "DNAT d iptables"  +/
Сообщение от silent79 email(ok) on 27-Окт-10, 15:51 
> это из-за правила с SNAT, если на 192.168.1.223 шлюзом указан 192.168.1.222, то
> для пакетов пришедших не из 192.168.1.0 подсети это привило можно убрать

Без этого правила вообще не работает перенаправление порта. Пакеты до сервера БД доходят а от него нет.


Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

3. "DNAT d iptables"  +/
Сообщение от reader (ok) on 27-Окт-10, 16:13 
>> это из-за правила с SNAT, если на 192.168.1.223 шлюзом указан 192.168.1.222, то
>> для пакетов пришедших не из 192.168.1.0 подсети это привило можно убрать
> Без этого правила вообще не работает перенаправление порта. Пакеты до сервера БД
> доходят а от него нет.

откуда проверяете?
из 192.168.1.0 подсети?

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

4. "DNAT d iptables"  +/
Сообщение от silent79 email(ok) on 27-Окт-10, 16:38 
> откуда проверяете?
> из 192.168.1.0 подсети?

и из этой сети подсети и из интернета. Без этого правила не пропускает.


Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

5. "DNAT d iptables"  +/
Сообщение от reader (ok) on 27-Окт-10, 17:16 
>> откуда проверяете?
>> из 192.168.1.0 подсети?
> и из этой сети подсети и из интернета. Без этого правила не
> пропускает.

покажите iptables-save с этой машины и таблицу маршрутизации с 192.168.1.223.
есть ли firewall на 192.168.1.223?

из подсети 192.168.1.0 работать так и не должно. что бы и из локалки работало, то нужен snat или 192.168.1.223 выводить в другую подсеть.

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

6. "DNAT d iptables"  +/
Сообщение от sHaggY_caT (ok) on 28-Окт-10, 02:43 
> Доброго времени суток.
> У меня такой вопрос. Есть сервер на который приходит интернет и есть
> второй сервер на котором работает сервер БД. На первом сервере в
> iptables написано правило для переброса порта на второй сервер.

У нас так:

-A PREROUTING -d EXT.IP.ADD.RES -i eth1 -p tcp -m tcp --dport 80 -j DNAT --to-destination 10.XX.XX.18:80
-A FORWARD -d 10.XX.XX.18 -p tcp -m tcp --dport 80 -j ACCEPT

На web-сервере видно (в частности, это видит Nginx в данном примере, да и любой другой публикуемый сервис) с какого IP-адреса приходит запрос. Правила несколько избыточны, так как автоматически генерируются скриптом. Их всего два (на публикуемый сервис), они есть только на гейтвее, и отсуствуют на публикуемой вовне машине, и этого достаточно.

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

7. "DNAT d iptables"  +/
Сообщение от reader (ok) on 28-Окт-10, 10:25 
>[оверквотинг удален]
>> iptables написано правило для переброса порта на второй сервер.
> У нас так:
> -A PREROUTING -d EXT.IP.ADD.RES -i eth1 -p tcp -m tcp --dport 80
> -j DNAT --to-destination 10.XX.XX.18:80
> -A FORWARD -d 10.XX.XX.18 -p tcp -m tcp --dport 80 -j ACCEPT
> На web-сервере видно (в частности, это видит Nginx в данном примере, да
> и любой другой публикуемый сервис) с какого IP-адреса приходит запрос. Правила
> несколько избыточны, так как автоматически генерируются скриптом. Их всего два (на
> публикуемый сервис), они есть только на гейтвее, и отсуствуют на публикуемой
> вовне машине, и этого достаточно.

а FORWARD от 10.XX.XX.18 можно не разрешать? :)

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

8. "DNAT d iptables"  +/
Сообщение от sHaggY_caT (ok) on 28-Окт-10, 10:43 

> а FORWARD от 10.XX.XX.18 можно не разрешать? :)

У нас по умолчанию все стоит в DROP. Если не разрешить, то DNAT и не будет работать


Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

9. "DNAT d iptables"  +/
Сообщение от reader (ok) on 28-Окт-10, 10:49 
>> а FORWARD от 10.XX.XX.18 можно не разрешать? :)
> У нас по умолчанию все стоит в DROP. Если не разрешить, то
> DNAT и не будет работать

но в вашем примере это не отражено и тем не менее сказано что "этого достаточно".
а это умышленное введение человека в заблуждение :) .

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

10. "DNAT d iptables"  +/
Сообщение от sHaggY_caT (ok) on 28-Окт-10, 11:14 
> но в вашем примере это не отражено и тем не менее сказано
> что "этого достаточно".

Вы правы, так нельзя

> а это умышленное введение человека в заблуждение :) .

Не умышленное, а просто подразумевалось, что таки, из сообраений элементарной предосторожности, FORWARD будет стоять в DROP.
Конечно, правила пакетного фильтра зависят от дистрибутива, но моем допущение не настолько и невероятно, Вы согласны в свою очередь?

Избыточность есть в указаниях вида: -p tcp -m tcp это как раз делает скрипт, и аналогично для более сложных случаев.
Но я не рискнула на сонную голову убирать лишнее, что бы топикстартер получил гарантированно работатоспособный вариант.

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

11. "DNAT d iptables"  +/
Сообщение от reader (ok) on 28-Окт-10, 11:49 
>> но в вашем примере это не отражено и тем не менее сказано
>> что "этого достаточно".
> Вы правы, так нельзя
>> а это умышленное введение человека в заблуждение :) .
> Не умышленное, а просто подразумевалось, что таки, из сообраений элементарной предосторожности,
> FORWARD будет стоять в DROP.

полностью ЗА!
> Конечно, правила пакетного фильтра зависят от дистрибутива, но моем допущение не настолько
> и невероятно, Вы согласны в свою очередь?

мы о разном.
правило:
-A FORWARD -d 10.XX.XX.18 -p tcp -m tcp --dport 80 -j ACCEPT
подразумевает что по умолчанию FORWARD будет стоять в DROP, иначе это правило излишнее.
значит нужно правило и для ответных пакетов. и я о том что это правило нужно было упомянуть :) .


> Избыточность есть в указаниях вида: -p tcp -m tcp это как раз
> делает скрипт, и аналогично для более сложных случаев.
> Но я не рискнула на сонную голову убирать лишнее, что бы топикстартер
> получил гарантированно работатоспособный вариант.

-p tcp - я бы не назвал избыточным, но зависит от нужд, а -m tcp - iptables сам добавит.

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

12. "DNAT d iptables"  +/
Сообщение от Гусище (ok) on 29-Окт-10, 12:18 
Попробуй заменить
>iptables -t nat -I POSTROUTING -s 0.0.0.0/0 -d 192.168.1.223 -p tcp --dport 64005 -j SNAT --to-source 192.168.1.222

на
iptables -t nat -I POSTROUTING -s 192.168.1.0/24(я просто предполагаю, что это ваша подсеть) -d 192.168.1.223 -p tcp --dport 64005 -j SNAT --to-source 192.168.1.222


А вообще reader всё верно сказал в самом первом посте. Ты наверно полностью убрал блок
iptables -t nat -I POSTROUTING -s 0.0.0.0/0 -d 192.168.1.223 -p tcp --dport 64005 -j SNAT --to-source 192.168.1.222
iptables -I FORWARD -d 0.0.0.0/0 -s 192.168.1.223 -p tcp --sport 64005 -j ACCEPT

и ничего не заработало. :)

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

13. "DNAT в iptables"  +/
Сообщение от silent79 email(ok) on 29-Окт-10, 23:38 
> А вообще reader всё верно сказал в самом первом посте. Ты наверно
> полностью убрал блок
> iptables -t nat -I POSTROUTING -s 0.0.0.0/0 -d 192.168.1.223 -p tcp --dport
> 64005 -j SNAT --to-source 192.168.1.222
> iptables -I FORWARD -d 0.0.0.0/0 -s 192.168.1.223 -p tcp --sport 64005 -j
> ACCEPT

> и ничего не заработало. :)

Большое спасибо ВСЕМ за советы. Да, я действительно так сделал и не заработало. Точнее заработало, но отвалилась другая сеть. Проблема оказалась на сервере 192.168.1.223, на нем было прописано 2 шлюза. Пришлось их удалить и прописать маршруты руками на разные подсети, на 0.0.0.0 и 10.0.0.0

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

Архив | Удалить

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




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру