Author Topic: переадресация портов  (Read 16074 times)

rubic

  • Zen Monk
  • **
  • Posts: 86
  • Karma: +12/-1
    • View Profile
Re: переадресация портов
« Reply #45 on: March 21, 2012, 12:49:30 pm »
В Reply #26 я уже приводил такой вариант :) .

По сути вопроса хотелось бы добавить - фаервол работает до сквида.
Попробовал с 80 портом. По моей схеме проброс работает! Но! Возник вопрос - не смотря на то, что модуль почтового сервера не установлен на зентиале все равно запущен апач который по умолчанию НТТР висит на 80 порту и на НТТРS порту (может отличаться в зависимости от настроек указанных в зентиале) висит админка. Если перенести НТТР апача на другой порт то схема работает.

Как то так.
Вы немного заблуждаетесь. Фаер конечно работает до squid'а, но в прозрачном режиме пакеты в squid перенаправляются именно фаером, причем раньше всех созданных вами PortForward:

-A PREROUTING -j premodules
-A PREROUTING -d xx.xx.xx.xx/32 -i eth2 -p tcp -m tcp --dport 110 -j DNAT --to-destination 192.168.1.253
-A PREROUTING -d xx.xx.xx.xx/32 -i eth2 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.1.253
-A PREROUTING -d xx.xx.xx.xx/32 -i eth1 -p tcp -m tcp --dport 25 -j DNAT --to-destination 192.168.1.253
-A PREROUTING -d 192.168.1.56/32 -i eth1 -p tcp -m tcp --dport 26 -j DNAT --to-destination 80.95.34.242:25
-A PREROUTING -d xx.xx.xx.xx/32 -i eth0 -p tcp -m tcp --dport 25 -j DNAT --to-destination 192.168.1.253
...
...
-A premodules ! -d 192.168.1.56/32 -i eth1 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
-A premodules ! -d 192.168.2.56/32 -i eth2 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128

последние 2 строки - и есть заворот пакетов в squid, а первая - заворот всех пакетов в цепочку premodules. Т.е. сперва обрабатывается цепочка premodules, потом - введенные вами PortForward и т.д.
Что касается apache, то он конечно висит даже если у вас не установлен компонент web server. Ведь кто-то должен отображать веб-интерфейс zential? Думаю компонент web server нужен только для того, чтобы пользователь мог через GUI делать виртуальные хосты. С удалением web server apache не удаляется.

zmd

  • Zen Warrior
  • ***
  • Posts: 240
  • Karma: +10/-2
    • View Profile
Re: переадресация портов
« Reply #46 on: March 21, 2012, 02:09:55 pm »
В Reply #26 я уже приводил такой вариант :) .

По сути вопроса хотелось бы добавить - фаервол работает до сквида.
Попробовал с 80 портом. По моей схеме проброс работает! Но! Возник вопрос - не смотря на то, что модуль почтового сервера не установлен на зентиале все равно запущен апач который по умолчанию НТТР висит на 80 порту и на НТТРS порту (может отличаться в зависимости от настроек указанных в зентиале) висит админка. Если перенести НТТР апача на другой порт то схема работает.

Как то так.
Вы немного заблуждаетесь. Фаер конечно работает до squid'а, но в прозрачном режиме пакеты в squid перенаправляются именно фаером, причем раньше всех созданных вами PortForward:

-A PREROUTING -j premodules
-A PREROUTING -d xx.xx.xx.xx/32 -i eth2 -p tcp -m tcp --dport 110 -j DNAT --to-destination 192.168.1.253
-A PREROUTING -d xx.xx.xx.xx/32 -i eth2 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.1.253
-A PREROUTING -d xx.xx.xx.xx/32 -i eth1 -p tcp -m tcp --dport 25 -j DNAT --to-destination 192.168.1.253
-A PREROUTING -d 192.168.1.56/32 -i eth1 -p tcp -m tcp --dport 26 -j DNAT --to-destination 80.95.34.242:25
-A PREROUTING -d xx.xx.xx.xx/32 -i eth0 -p tcp -m tcp --dport 25 -j DNAT --to-destination 192.168.1.253
...
...
-A premodules ! -d 192.168.1.56/32 -i eth1 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
-A premodules ! -d 192.168.2.56/32 -i eth2 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128

последние 2 строки - и есть заворот пакетов в squid, а первая - заворот всех пакетов в цепочку premodules. Т.е. сперва обрабатывается цепочка premodules, потом - введенные вами PortForward и т.д.
Что касается apache, то он конечно висит даже если у вас не установлен компонент web server. Ведь кто-то должен отображать веб-интерфейс zential? Думаю компонент web server нужен только для того, чтобы пользователь мог через GUI делать виртуальные хосты. С удалением web server apache не удаляется.

В чем я заблуждаюсь :) ?
В том, что если уже висит на 80 порту апач то он и отвечает на запрос ?
Или в том, что с удалением модуля зентиала "веб сервер" порт не освобождается ? Я где то утверждал обратное? 
Или в том, что сейчас у меня такая схема работает ?
По моему Вы зря ограничиваетесь порядок прохождения только таблицей NAT :)

Схема работает в живой системе!
« Last Edit: March 21, 2012, 02:19:15 pm by zmd »

rubic

  • Zen Monk
  • **
  • Posts: 86
  • Karma: +12/-1
    • View Profile
Re: переадресация портов
« Reply #47 on: March 22, 2012, 07:44:15 am »
В чем я заблуждаюсь :) ?
Извините, я прочитал вашу фразу о фаерволе как: проброс порта работает до [прозрачного] сквида. Это - заблуждение, выше я написал почему. Возможно, вы имели ввиду что-то другое, но то, о чем говорю я, является ключевым моментом проблемы со squid:
Quote
Схема работает в живой системе!
Схема не работает и не может работать при условии, что squid запущен в прозрачном режиме (у вас это точно так?). По вашей же ссылке http://www.opennet.ru/docs/RUS/iptables/#DNATTARGET вы в вашем решении выполнили только 2 действия из 3-х необходимых. Третье действие - цитирую:
Quote
Если вы думаете, что на этом можно остановиться, то вы ошибаетесь! Представим себе ситуацию, когда в качестве клиента выступает сам брандмауэр. Тогда, к сожалению, пакеты будут передаваться на локальный порт с номером 80 самого брандмауэра, а не на $HTTP_IP. Чтобы разрешить и эту проблему, добавим правило:

iptables -t nat -A OUTPUT --dst $INET_IP -p tcp --dport 80 -j DNAT \
--to-destination $HTTP_IP
- осталось невыполненным, и его невозможно выполнить из GUI zentyal.
Так вот, когда мы идем на наш сайт через squid, это и есть "в качестве клиента выступает сам брандмауэр", т.к. squid является локальным процессом брандмауэра (zentyal) и забирает страницу от себя, а уже потом передает нам. Если squid сам не может забрать страницу с INET_IP (см. цитату), то и нам ничего не отдаст. Это прекрасно подтверждается практикой:


Ошибка доступа к сайту с самого zentyal (websrv.test.local - имя сайта).


Ошибка доступа к сайту с клиентского компьютера (192.168.0.240 - внешний адрес zentyal. В него же наружным DNS сервером разрешается имя websrv.test.local).

Настройки:


Проброс портов. eth0 - наружный интерфейс с адресом 192.168.0.240 (INET_IP), eth1 - внутренний c IP=192.168.1.56. Локальный адрес веб-сервера - 192.168.1.253.


Настройки squid.


Статус модулей.

Стоит отключить модуль squid, или вместо этого в консоли zentyal по рекомендации из вашей ссылки выполнить команду:
Quote
iptables -t nat -A OUTPUT --dst 192.168.0.240 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.253
как сайт начинает нормально открываться.

GriefNorth

  • Zen Apprentice
  • *
  • Posts: 40
  • Karma: +1/-0
    • View Profile
Re: переадресация портов
« Reply #48 on: May 05, 2012, 11:05:23 am »
Еще раз всем привет, с перенаправлением портов разобрался и все работает так как надо, и с внешки открывается локальный вебсервер и изнутри.
Но возникла другая проблема. Хотел установить и настроить bandwidthd, для этого установил в Зентале веб-сервер, перенес его слушать порт 83. Но теперь при открытии сайта или заходе на веб-морду почты. Появляется стандартная страница Апача: Итс воркс! . Я чего-то не понимаю или что ? Он же висит на 83 порту, с какой радости начинает слушать 80?

aleks-lit

  • Zen Apprentice
  • *
  • Posts: 9
  • Karma: +0/-0
    • View Profile
Re: переадресация портов
« Reply #49 on: May 07, 2013, 09:03:50 am »
расскажите пож-та, как настроить Zentyal, что бы работали почтовые клиенты

toor

  • Zen Apprentice
  • *
  • Posts: 12
  • Karma: +0/-0
    • View Profile
Re: переадресация портов
« Reply #50 on: May 08, 2013, 10:17:40 am »
Сделал вывод iptables-save как я раньше до этого не догадался? Всевыводятся которые мы вводим через вэбинтерфейс пишутся в начале, а затем куча системных правил, соответственно наши правила затираются системными
М...а смысл тогда держать это чудо, если руками все делать придется из-за веб-мордочки ? )))
Ну это так лирика, хочется все-таки решение вопроса.

http://forum.zentyal.org/index.php/topic,14824.0.html

не умеет это чЮдо, из вэбморды нормально рулить правилами файра. ТоварищЪ zmd рекомендует ставить генту ;)

aleks-lit

  • Zen Apprentice
  • *
  • Posts: 9
  • Karma: +0/-0
    • View Profile
Re: переадресация портов
« Reply #51 on: May 08, 2013, 10:59:23 am »
а что скажете на счет Sams

logdog

  • Zen Hero
  • *****
  • Posts: 623
  • Karma: +29/-2
    • View Profile
Re: переадресация портов
« Reply #52 on: May 08, 2013, 11:29:07 am »
Quote from: toor
не умеет это чЮдо, из вэбморды нормально рулить правилами файра.

Обоснуйте!
В вашем топике не в чуде было дело...

2rubic
Напишите багрепорт, если разобрались с проблемой...
« Last Edit: May 08, 2013, 12:01:10 pm by logdog »

toor

  • Zen Apprentice
  • *
  • Posts: 12
  • Karma: +0/-0
    • View Profile
Re: переадресация портов
« Reply #53 on: May 08, 2013, 11:55:02 am »
Quote from: toor
не умеет это чЮдо, из вэбморды нормально рулить правилами файра.

Обоснуйте!

По ссылочке пройдитесь. На уровне интерфейсов нет политик (вэбморда). Если используется сквид, и правило "Разрешить все" для внутренних сетей запрещено, получаем танцы с бубном. Открытие/Закрытие сервисов по крону отдельная песня. В качестве учебного пособия по кнопкотыканию зентиал вполне так нормальный дистр.

zmd

  • Zen Warrior
  • ***
  • Posts: 240
  • Karma: +10/-2
    • View Profile
Re: переадресация портов
« Reply #54 on: May 08, 2013, 10:27:08 pm »
Еще раз всем привет, с перенаправлением портов разобрался и все работает так как надо, и с внешки открывается локальный вебсервер и изнутри.
Но возникла другая проблема. Хотел установить и настроить bandwidthd, для этого установил в Зентале веб-сервер, перенес его слушать порт 83. Но теперь при открытии сайта или заходе на веб-морду почты. Появляется стандартная страница Апача: Итс воркс! . Я чего-то не понимаю или что ? Он же висит на 83 порту, с какой радости начинает слушать 80?
Чтото помоему намудрили с перенаправлением портов. Апач кстати вручную настраивается через /etc/apache2/ports.conf.

extraneous

  • Zen Apprentice
  • *
  • Posts: 8
  • Karma: +0/-0
    • View Profile
Re: переадресация портов
« Reply #55 on: June 17, 2013, 01:50:38 pm »
для настройки доступа к ДВР надо пробросить порты 37777, 8080 ,
внешний etn3 подключен к АДСЛ в режиме бриджа, поднимает PPOE (82.ххх.ххх.ххх),
внутренний etn2 192.168.1.101
IP двр 192.168.1.108
создал проброс
eth3   Zentyal   TCP/UDP   37777   Любой   192.168.1.108   То же самое   DVR      
eth3   Zentyal   TCP/UDP   8080           Любой       192.168.1.108   То же самое       dvr   
 не доступен >:(