The OpenNET Project / Index page

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

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

"публикация веб-серверов в IPTABLES"  +/
Сообщение от dimawar (ok) on 27-Июн-11, 14:42 
Здравствуйте! Возникла проблема публикации нескольких веб-серверов на одном IP-адресе.
Имеются 3 веб-сервера: bug.local.ru, dev.local.ru, mail.local.ru.
Как их можно опубликовать (высунуть наружу 80й порт) ?

я пробую так:


iptables -A PREROUTING -d 1.1.1.1/32 -p tcp -m string --string "https://mail.local.ru" --algo kmp --to 65535 -m tcp --dport 443 -j DNAT --to-destination 192.168.0.3:443
iptables -A PREROUTING -d 1.1.1.1/32 -p tcp -m string --string "http://bug.local.ru" --algo kmp --to 65535 -m tcp --dport 80 -j DNAT --to-destination 192.168.0.2:80
iptables -A PREROUTING -d 1.1.1.1/32 -p tcp -m string --string "http://dev.local.ru" --algo kmp --to 65535 -m tcp --dport 80 -j DNAT --to-destination 192.168.0.7:80
iptables -A FORWARD -d 192.168.0.3/32 -i eth1 -o eth0 -p tcp -m tcp --dport 443 -j ACCEPT
iptables -A FORWARD -s 192.168.0.3/32 -i eth0 -o eth1 -p tcp -m tcp --sport 443 -j ACCEPT
iptables -A FORWARD -d 192.168.0.2/32 -i eth1 -o eth0 -p tcp -m tcp --dport 80 -j ACCEPT
iptables -A FORWARD -s 192.168.0.2/32 -i eth0 -o eth1 -p tcp -m tcp --sport 80 -j ACCEPT
iptables -A FORWARD -d 192.168.0.7/32 -i eth1 -o eth0 -p tcp -m tcp --dport 80 -j ACCEPT
iptables -A FORWARD -s 192.168.0.7/32 -i eth0 -o eth1 -p tcp -m tcp --sport 80 -j ACCEPT
iptables -A POSTROUTING -d 192.168.0.3/32 -p tcp -m tcp --dport 443 -j SNAT --to-source 192.168.0.254
iptables -A POSTROUTING -d 192.168.0.3/32 -p tcp -m tcp --dport 80 -j SNAT --to-source 192.168.0.254
iptables -A POSTROUTING -d 192.168.0.7/32 -p tcp -m tcp --dport 80 -j SNAT --to-source 192.168.0.254

не работает

Ответить | Правка | Cообщить модератору

Оглавление

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


1. "публикация веб-серверов в IPTABLES"  +/
Сообщение от dogonthesun (ok) on 27-Июн-11, 14:53 
>[оверквотинг удален]
> iptables -A FORWARD -d 192.168.50.2/32 -i eth1 -o eth0 -p tcp -m
> tcp --dport 80 -j ACCEPT
> iptables -A FORWARD -s 192.168.50.2/32 -i eth0 -o eth1 -p tcp -m
> tcp --sport 80 -j ACCEPT
> iptables -A FORWARD -d 192.168.50.7/32 -i eth1 -o eth0 -p tcp -m
> tcp --dport 80 -j ACCEPT
> iptables -A FORWARD -s 192.168.50.7/32 -i eth0 -o eth1 -p tcp -m
> tcp --sport 80 -j ACCEPT
>
> не работает

SNAT?

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "публикация веб-серверов в IPTABLES"  +/
Сообщение от dimawar (ok) on 27-Июн-11, 14:57 

> SNAT?

SNAT был добавлен, не работает. Сообщение исправил.

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "публикация веб-серверов в IPTABLES"  +/
Сообщение от Дядя_Федор on 27-Июн-11, 15:10 
А разместить все на одном IP и разрулить средствами виртуал-хостов Веб-сервера (Апача) не проще? С одним DNAT и отсутствием шаманства со string. Все просто и элегантно.
Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "публикация веб-серверов в IPTABLES"  +/
Сообщение от cryo (ok) on 27-Июн-11, 15:44 

> Имеются 3 веб-сервера: bug.local.ru, dev.local.ru, mail.local.ru.
> Как их можно опубликовать (высунуть наружу 80й порт) ?

Все веб-сайты на одном физическом сервере?
Тогда смотрите в доке апача VirtualHost.

Если все веб-сервера на разных тазиках, расскажите подробнее, как именно "не работает".

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

5. "публикация веб-серверов в IPTABLES"  +/
Сообщение от tuxic (ok) on 27-Июн-11, 16:22 
Как вариант на шлюзе поднять apache(nginx) настроить нужные virtualhost и через них проксирование в нутрь на нужные сервера.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

6. "публикация веб-серверов в IPTABLES"  +/
Сообщение от dimawar (ok) on 27-Июн-11, 17:14 
MS ISA 2006 умеет так делать, публикацию веб-серверов.
Необходимо именно на шлюзе настроить так, что разные сервера публиковать, т.к. они разные физически и объединить в один их не получится.
Вариант с подыманием nginx и разруливанием на нем этих действий - сильно затратный.
Может можно это сделать штатными средствами?


Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

7. "публикация веб-серверов в IPTABLES"  +/
Сообщение от tuxic (ok) on 27-Июн-11, 17:19 
> MS ISA 2006 умеет так делать, публикацию веб-серверов.
> Необходимо именно на шлюзе настроить так, что разные сервера публиковать, т.к. они
> разные физически и объединить в один их не получится.
> Вариант с подыманием nginx и разруливанием на нем этих действий - сильно
> затратный.
> Может можно это сделать штатными средствами?

Хотите совет по iptables распишите схему вашей сети, от того что вы написали в первом посте очень смутн опредставить где у вас какой ip.
Чем затрано nginx?

Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

8. "публикация веб-серверов в IPTABLES"  +/
Сообщение от dimawar (ok) on 27-Июн-11, 18:28 
> Хотите совет по iptables распишите схему вашей сети, от того что вы
> написали в первом посте очень смутн опредставить где у вас какой
> ip.
> Чем затрано nginx?

nginx - дополнительная нагрузка на сервер.

схема сети простая: имеется шлюз на линуксе, у которого внешний интерфейс 1.1.1.1 , и внутренняя сеть 192.168.0.0/24.
Адрес шлюза, во внутренней сети 192.168.0.254
Имеются веб-серверы во внутренней сети:
- bug.local.ru = 192.168.0.2
- mail.local.ru = 192.168.0.3
- dev.local.ru = 192.168.0.7

До этого шлюзом являлся MS ISA 2006, который публикацию поддерживает с коробки.

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

9. "публикация веб-серверов в IPTABLES"  +/
Сообщение от tuxic (ok) on 27-Июн-11, 18:39 
>[оверквотинг удален]
>> Чем затрано nginx?
> nginx - дополнительная нагрузка на сервер.
> схема сети простая: имеется шлюз на линуксе, у которого внешний интерфейс 1.1.1.1
> , и внутренняя сеть 192.168.0.0/24.
> Адрес шлюза, во внутренней сети 192.168.0.254
> Имеются веб-серверы во внутренней сети:
> - bug.local.ru = 192.168.0.2
> - mail.local.ru = 192.168.0.3
> - dev.local.ru = 192.168.0.7
> До этого шлюзом являлся MS ISA 2006, который публикацию поддерживает с коробки.

натить нужно на внешний ip, больше косяков воде не вижу.

iptables -A POSTROUTING -d 192.168.0.3/32 -p tcp -m tcp --dport 443 -j SNAT --to-source 1.1.1.1
iptables -A POSTROUTING -d 192.168.0.3/32 -p tcp -m tcp --dport 80 -j SNAT --to-source 1.1.1.1
iptables -A POSTROUTING -d 192.168.0.7/32 -p tcp -m tcp --dport 80 -j SNAT --to-source 1.1.1.1

Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

10. "публикация веб-серверов в IPTABLES"  +/
Сообщение от tuxic (ok) on 27-Июн-11, 18:41 
>[оверквотинг удален]
>> - mail.local.ru = 192.168.0.3
>> - dev.local.ru = 192.168.0.7
>> До этого шлюзом являлся MS ISA 2006, который публикацию поддерживает с коробки.
> натить нужно на внешний ip, больше косяков воде не вижу.
> iptables -A POSTROUTING -d 192.168.0.3/32 -p tcp -m tcp --dport 443 -j
> SNAT --to-source 1.1.1.1
> iptables -A POSTROUTING -d 192.168.0.3/32 -p tcp -m tcp --dport 80 -j
> SNAT --to-source 1.1.1.1
> iptables -A POSTROUTING -d 192.168.0.7/32 -p tcp -m tcp --dport 80 -j
> SNAT --to-source 1.1.1.1

ну еще нужно убрать --sport провекру
iptables -A FORWARD -s 192.168.0.3/32 -i eth0 -o eth1 -p tcp -m tcp --sport 443 -j ACCEPT

update - не обязательно)

Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

11. "публикация веб-серверов в IPTABLES"  +/
Сообщение от dimawar (ok) on 27-Июн-11, 20:26 
> ну еще нужно убрать --sport провекру
> iptables -A FORWARD -s 192.168.0.3/32 -i eth0 -o eth1 -p tcp -m
> tcp --sport 443 -j ACCEPT
> update - не обязательно)

попробовал, все равно не работает. Может быть нужны еще какие-то правила?

Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

12. "публикация веб-серверов в IPTABLES"  +/
Сообщение от tuxic (ok) on 27-Июн-11, 20:31 
>> ну еще нужно убрать --sport провекру
>> iptables -A FORWARD -s 192.168.0.3/32 -i eth0 -o eth1 -p tcp -m
>> tcp --sport 443 -j ACCEPT
>> update - не обязательно)
> попробовал, все равно не работает. Может быть нужны еще какие-то правила?

eth1- в интернет смотрит, a eth0 в локалку?
счетчики по этим правилам в iptables вообще растут?
iptables -A PREROUTING -d 1.1.1.1/32 -p tcp -m string --string "https://mail.local.ru" --algo kmp --to 65535 -m tcp --dport 443 -j DNAT --to-destination 192.168.0.3:443
iptables -A PREROUTING -d 1.1.1.1/32 -p tcp -m string --string "http://bug.local.ru" --algo kmp --to 65535 -m tcp --dport 80 -j DNAT --to-destination 192.168.0.2:80
iptables -A PREROUTING -d 1.1.1.1/32 -p tcp -m string --string "http://dev.local.ru" --algo kmp --to 65535 -m tcp --dport 80 -j DNAT --to-destination 192.168.0.7:80

Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

13. "публикация веб-серверов в IPTABLES"  +/
Сообщение от tuxic (ok) on 27-Июн-11, 20:40 
Да и правила для S(D)NAT у вас без указания цепочки nat (-t nat) - это просто на форуме так набрано или у вас реально такие правила?

Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

14. "публикация веб-серверов в IPTABLES"  +/
Сообщение от dimawar (ok) on 27-Июн-11, 20:48 
> Да и правила для S(D)NAT у вас без указания цепочки nat (-t
> nat) - это просто на форуме так набрано или у вас
> реально такие правила?

Нет, набрано конечно же с -nat, это вывод iptables-save

Как счетчики правил посмотреть? и включить логгирование. ОС Debian 6.
Интерфейсы правильно. eth0 - local; eth1 - inet

Ответить | Правка | ^ к родителю #13 | Наверх | Cообщить модератору

15. "публикация веб-серверов в IPTABLES"  +/
Сообщение от tuxic (ok) on 27-Июн-11, 20:54 
>> Да и правила для S(D)NAT у вас без указания цепочки nat (-t
>> nat) - это просто на форуме так набрано или у вас
>> реально такие правила?
> Нет, набрано конечно же с -nat, это вывод iptables-save
> Как счетчики правил посмотреть? и включить логгирование. ОС Debian 6.
> Интерфейсы правильно. eth0 - local; eth1 - inet

iptables -nvL -t nat.

Ответить | Правка | ^ к родителю #14 | Наверх | Cообщить модератору

16. "публикация веб-серверов в IPTABLES"  +/
Сообщение от dimawar (ok) on 27-Июн-11, 21:17 

>> Как счетчики правил посмотреть? и включить логгирование. ОС Debian 6.
> iptables -nvL -t nat.

пишет ошибку iptables v1.4.8: multiple -n flags not allowed

Что требуется сделать, чтобы множественный флаг -n стал доступен?

Ответить | Правка | ^ к родителю #15 | Наверх | Cообщить модератору

17. "публикация веб-серверов в IPTABLES"  +/
Сообщение от Дядя_Федор email on 27-Июн-11, 21:27 
> пишет ошибку iptables v1.4.8: multiple -n flags not allowed
> Что требуется сделать, чтобы множественный флаг -n стал доступен?

Ну а просто iptables -nvL работает?

Ответить | Правка | ^ к родителю #16 | Наверх | Cообщить модератору

18. "публикация веб-серверов в IPTABLES"  +/
Сообщение от tuxic (ok) on 27-Июн-11, 21:36 
>>> Как счетчики правил посмотреть? и включить логгирование. ОС Debian 6.
>> iptables -nvL -t nat.
> пишет ошибку iptables v1.4.8: multiple -n flags not allowed
> Что требуется сделать, чтобы множественный флаг -n стал доступен?

хм- только заметил у вас ошибку. в SNAT в вашем случае- указываеться сорцовый адрес( ключ -s), а не как у вас назначения (ключ -d).
Попробовал на своем железо- правило DNAT не отрабатывает.
По поводу множества ключей- а накой хрен вам их больше одного- я вам четко команду написал- изменили- вы ССЗБ.
включения логирования - посмотрите справку(-j LOG)- не задавайте мен банальных вопросов- помогаю потому что самому тема интересна, но нянкаться желания нет.


Ответить | Правка | ^ к родителю #16 | Наверх | Cообщить модератору

20. "публикация веб-серверов в IPTABLES"  +/
Сообщение от dimawar (ok) on 27-Июн-11, 21:55 
> хм- только заметил у вас ошибку. в SNAT в вашем случае- указываеться
> сорцовый адрес( ключ -s), а не как у вас назначения (ключ
> -d).
> Попробовал на своем железо- правило DNAT не отрабатывает.
> По поводу множества ключей- а накой хрен вам их больше одного- я
> вам четко команду написал- изменили- вы ССЗБ.
> включения логирования - посмотрите справку(-j LOG)- не задавайте мен банальных вопросов-
> помогаю потому что самому тема интересна, но нянкаться желания нет.

команда iptables -nvL -t nat заработал, неправильно вводил :)
сейчас правила выглядят так в таблице nat:


-A PREROUTING -d 1.1.1.1/32 -p tcp -m string --string "https://mail.local.ru" --algo kmp --to 65535 -m tcp --dport 443 -j DNAT --to-destination 192.168.0.3:443
-A PREROUTING -d 1.1.1.1/32 -p tcp -m string --string "http://bug.local.ru" --algo kmp --to 65535 -m tcp --dport 80 -j DNAT --to-destination 192.168.0.2:80
-A PREROUTING -d 1.1.1.1/32 -p tcp -m string --string "http://dev.local.ru" --algo kmp --to 65535 -m tcp --dport 80 -j DNAT --to-destination 192.168.0.7:80
-A POSTROUTING -s 192.168.0.3/32 -p tcp -j SNAT --to-source 1.1.1.1
-A POSTROUTING -s 192.168.0.2/32 -p tcp -j SNAT --to-source 1.1.1.1
-A POSTROUTING -s 192.168.0.7/32 -p tcp -j SNAT --to-source 1.1.1.1

Ответить | Правка | ^ к родителю #18 | Наверх | Cообщить модератору

21. "публикация веб-серверов в IPTABLES"  +/
Сообщение от dimawar (ok) on 27-Июн-11, 21:55 
>[оверквотинг удален]
> -A PREROUTING -d 1.1.1.1/32 -p tcp -m string --string "https://mail.local.ru" --algo kmp
> --to 65535 -m tcp --dport 443 -j DNAT --to-destination 192.168.0.3:443
> -A PREROUTING -d 1.1.1.1/32 -p tcp -m string --string "http://bug.local.ru" --algo kmp
> --to 65535 -m tcp --dport 80 -j DNAT --to-destination 192.168.0.2:80
> -A PREROUTING -d 1.1.1.1/32 -p tcp -m string --string "http://dev.local.ru" --algo kmp
> --to 65535 -m tcp --dport 80 -j DNAT --to-destination 192.168.0.7:80
> -A POSTROUTING -s 192.168.0.3/32 -p tcp -j SNAT --to-source 1.1.1.1
> -A POSTROUTING -s 192.168.0.2/32 -p tcp -j SNAT --to-source 1.1.1.1
> -A POSTROUTING -s 192.168.0.7/32 -p tcp -j SNAT --to-source 1.1.1.1
>

и все равно не работает

Ответить | Правка | ^ к родителю #20 | Наверх | Cообщить модератору

22. "публикация веб-серверов в IPTABLES"  +/
Сообщение от tuxic (ok) on 27-Июн-11, 22:14 
>[оверквотинг удален]
>> --to 65535 -m tcp --dport 443 -j DNAT --to-destination 192.168.0.3:443
>> -A PREROUTING -d 1.1.1.1/32 -p tcp -m string --string "http://bug.local.ru" --algo kmp
>> --to 65535 -m tcp --dport 80 -j DNAT --to-destination 192.168.0.2:80
>> -A PREROUTING -d 1.1.1.1/32 -p tcp -m string --string "http://dev.local.ru" --algo kmp
>> --to 65535 -m tcp --dport 80 -j DNAT --to-destination 192.168.0.7:80
>> -A POSTROUTING -s 192.168.0.3/32 -p tcp -j SNAT --to-source 1.1.1.1
>> -A POSTROUTING -s 192.168.0.2/32 -p tcp -j SNAT --to-source 1.1.1.1
>> -A POSTROUTING -s 192.168.0.7/32 -p tcp -j SNAT --to-source 1.1.1.1
>>
> и все равно не работает

и не будет, то что мы обращаемся к именно bla.bla.ru передаеться только после установления tcp соединения, тобишь минимум идет 4 пакетом, а так как по вышеприведенным правилам мы ни счем соединиться не можем- следовательно, то  что мы хотим обратиться bla.bla.ru собственно и не передаеться.
Как правильно напистаь правило для это - не знаю.

Ответить | Правка | ^ к родителю #21 | Наверх | Cообщить модератору

23. "публикация веб-серверов в IPTABLES"  +/
Сообщение от tuxic (ok) on 27-Июн-11, 22:18 
>[оверквотинг удален]
>> --to 65535 -m tcp --dport 443 -j DNAT --to-destination 192.168.0.3:443
>> -A PREROUTING -d 1.1.1.1/32 -p tcp -m string --string "http://bug.local.ru" --algo kmp
>> --to 65535 -m tcp --dport 80 -j DNAT --to-destination 192.168.0.2:80
>> -A PREROUTING -d 1.1.1.1/32 -p tcp -m string --string "http://dev.local.ru" --algo kmp
>> --to 65535 -m tcp --dport 80 -j DNAT --to-destination 192.168.0.7:80
>> -A POSTROUTING -s 192.168.0.3/32 -p tcp -j SNAT --to-source 1.1.1.1
>> -A POSTROUTING -s 192.168.0.2/32 -p tcp -j SNAT --to-source 1.1.1.1
>> -A POSTROUTING -s 192.168.0.7/32 -p tcp -j SNAT --to-source 1.1.1.1
>>
> и все равно не работает

Проще говоря в целом логика построения правил у вас "правильная"- но через наличие имени сервера впакете - так не разрулить, да и не будет оно в каждом пакете передаваться.

Ответить | Правка | ^ к родителю #21 | Наверх | Cообщить модератору

24. "публикация веб-серверов в IPTABLES"  +/
Сообщение от tuxic (ok) on 27-Июн-11, 22:40 
> и все равно не работает

В общем я не вижу способов решения данной проблемы через iptables( ну если всетаки хотите "продолжить"- то нужно еще использовать модуль conntrack- для отслеживания соединений на уровне http-сессий так как данные о сервере не будут передаваться в каждом пакете), но в любом случае- прежде чем мы поймем к какому серверу хочет обратиться клиент- должно подняться tcp соединение, а соединяться то клиенту на нашем сервере не с чем.


Ответить | Правка | ^ к родителю #21 | Наверх | Cообщить модератору

25. "публикация веб-серверов в IPTABLES"  +/
Сообщение от Дядя_Федор email on 27-Июн-11, 23:46 
> и все равно не работает

Попробуйте убрать http. При HTTP-сессии имя сервера передается в хидере Host (типа, Host: www.site.ru). Собственно, на этом и основана логика работы виртуал-хостов Вэб-серверов.


Ответить | Правка | ^ к родителю #21 | Наверх | Cообщить модератору

19. "публикация веб-серверов в IPTABLES"  +/
Сообщение от tuxic (ok) on 27-Июн-11, 21:46 
>>> Как счетчики правил посмотреть? и включить логгирование. ОС Debian 6.
>> iptables -nvL -t nat.
> пишет ошибку iptables v1.4.8: multiple -n flags not allowed
> Что требуется сделать, чтобы множественный флаг -n стал доступен?

ЫЫЫ, чет я совсем рассеяный.
естественно при SNAT - уберите --dport - вы его заранее знать никак не можете.

Ответить | Правка | ^ к родителю #16 | Наверх | Cообщить модератору

26. "публикация веб-серверов в IPTABLES"  +/
Сообщение от dimawar (ok) on 28-Июн-11, 12:14 
В общем, как я понял, IPTABLES такое не умеет.
Задачу эту я подвинул на потом. А потом буду смотреть в сторону nginx virtual-host proxy.
Ответить | Правка | ^ к родителю #19 | Наверх | Cообщить модератору

27. "публикация веб-серверов в IPTABLES"  +/
Сообщение от anonymous (??) on 13-Июл-11, 15:04 
> В общем, как я понял, IPTABLES такое не умеет.
> Задачу эту я подвинул на потом. А потом буду смотреть в сторону
> nginx virtual-host proxy.

iptables, возможно, это умеет. Как Вам верно сказали - не в каждом пакете будет передаваться адрес хоста. НО! Есть возможность пометить конкретное соединение средствами iptables. Курим в сторону CONNMARK target и -m connmark.
Не могу надыбать спецификацию на протокол http, как же там происходит установка соединения. Может, кто подкинет? Задача-то интересная)

Ответить | Правка | ^ к родителю #26 | Наверх | Cообщить модератору

28. "публикация веб-серверов в IPTABLES"  +/
Сообщение от dimawar (ok) on 24-Окт-11, 15:31 
>> В общем, как я понял, IPTABLES такое не умеет.
>> Задачу эту я подвинул на потом. А потом буду смотреть в сторону
>> nginx virtual-host proxy.
> iptables, возможно, это умеет. Как Вам верно сказали - не в каждом
> пакете будет передаваться адрес хоста. НО! Есть возможность пометить конкретное соединение
> средствами iptables. Курим в сторону CONNMARK target и -m connmark.
> Не могу надыбать спецификацию на протокол http, как же там происходит установка
> соединения. Может, кто подкинет? Задача-то интересная)

Данную задачу я решил при помощи nginx.
Он умеет делать proxy_pass - т.е. перенаправлять запросы внутрь сети. Вот такой конфиг:

server {
    listen 192.168.1.1:80;
    server_name example.com www.example.com;
    ...
    
    location / {
        proxy_pass http://192.168.1.5:80/;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

Ответить | Правка | ^ к родителю #27 | Наверх | Cообщить модератору

29. "публикация веб-серверов в IPTABLES"  +/
Сообщение от dimawar (ok) on 24-Окт-11, 17:38 
>[оверквотинг удален]
>> Не могу надыбать спецификацию на протокол http, как же там происходит установка
>> соединения. Может, кто подкинет? Задача-то интересная)
> Данную задачу я решил при помощи nginx.
> Он умеет делать proxy_pass - т.е. перенаправлять запросы внутрь сети. Вот такой
> конфиг:
>
server { 
>     listen 192.168.1.1:80;
>     server_name example.com www.example.com;
>     ...
>     location / {

proxy_redirect off;
>         proxy_pass http://192.168.1.5:80/;
>  proxy_set_header Host $host;
>  proxy_set_header X-Real-IP $remote_addr;
>  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
>     }
> }

proxy_redirect off; - необходим для отключения циклического редиректа, если есть редирект на внутреннем сервере.

Ответить | Правка | ^ к родителю #28 | Наверх | Cообщить модератору

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

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




Спонсоры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

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