Zentyal Forum, Linux Small Business Server

International => Russian => Topic started by: rkislov on March 16, 2012, 04:44:02 am

Title: переадресация портов
Post by: rkislov on March 16, 2012, 04:44:02 am
Посдскажите пожалуйста, у меня Zentyal 2.2.6 с последними обновлениями и не работает перенаправление портов внутри сети, то есть у меня имеется подключение к интернету по PPPoE и одна внутреня сеть, делаю правила в перенаправлении портов, все указываю, в итоге получаю что с внешней сети видно а с внутренней нет. Подскажите пожалуйста как быть?
Title: Re: переадресация портов
Post by: mravil on March 16, 2012, 07:48:14 am
Ничего не понял, если честно, а телепат в отпуске. Расскажите что хотите сделать, как делаете и что получается?
Title: Re: переадресация портов
Post by: rkislov on March 16, 2012, 09:58:20 am
у меня зентиал стоит на входе от провайдера приходит PPPoE внутри одна подсеть стандартная 192.168.1.0/24 в подсети есть сервер с разными сервисами которыми мы пользуемся как дома так и вне дома, мне нужно сделать переадресацию некоторых портов с внешнего адреса (PPPoE) на внутренний сервер......Я делал так: открывал в фаерволе пункт перенаправление портов и прописывал:
интерфейс - внешний (PPPoE)
первоначальное назначение - зентиал
протокол - TCP (к примеру)
первоначальный порт - 9091 (так же к примеру)
источник - любой
целевой IP - адресс сервера
порт - тотже самый
никакие галки не ставил, сохранить и в итоге из вне всё отлично работает а из внутренней сети нет
Title: Re: переадресация портов
Post by: mad_est on March 16, 2012, 10:30:13 am
естественно не будет работать, ты же правило сам сделать для проброса, чтобы у тебя пробрасывался из внешки на внутренний IP по порту 9901.. а обратно это не работает)

немного непонятно что значит - а из внутренней сети нет опиши нормально что у тебя из внутренней сети нет))
Title: Re: переадресация портов
Post by: rkislov on March 16, 2012, 10:45:52 am
мне нужно чтобы я при обращении на внешний адресс (PPPoE) имел доступ к своему вэб серверу (который у меня крутиться за Zentyal) при это чтобы не играло значение нахожусь я где то дома или на работе, то етсь внутри сети или вне ее
Title: Re: переадресация портов
Post by: rkislov on March 19, 2012, 06:48:15 am
Скажите где можно править правила фаервола в ручную через SSH, мне оченть нравиться зентиал, но без перенаправления портов придётся сменить дистрибутив мне так не хочеться этого делать
Title: Re: переадресация портов
Post by: yragan on March 19, 2012, 07:39:25 am
Что та я тоже не понял в чём у вас проблема, из вне вас пускают, а из внутренней нет? Если это так то вы сами что-то не то настроили, у меня из внутренней сети всюду пускает, без всяких пробросов, если нет каких любо ограничений.
Title: переадресация портов
Post by: rkislov on March 19, 2012, 07:56:20 am
проблема в том, что перенаправление портов работвет возможно не совсем адекватно, например потры 110 993 143 отлично мапятся как внутри сети так и снаружи, а вот 25 80 443 и 1024 - 65535 никак не мапяться из внутренней сети на внутреннюю а с наружи на внутреннюю мапяться без проблемы, дак вот если это в iptables правила DNAT тоесть маскарадинг это одна проблема если же это SNAT то правила пишуться по другому, вот я и хочу узнать знаеть ли кто нитбудь в какой файл пишуться правила фаервола
Title: Re: переадресация портов
Post by: zmd on March 19, 2012, 10:26:25 am
Если посмотреть через iptables-save правила zentyal пробрасывает порт только снаружи  (цепочка прероутинг). Я думаю правильно будет внутри сети пробросить руками или же во внутреннем днс прописать запись соответствия внешнего имени внутреннему адресу.
Title: Re: переадресация портов
Post by: GriefNorth on March 19, 2012, 10:37:14 am
Присоединюсь к вопросу, так же внутри сети стоит веб-сервер+почтовый сервер, доступ из инета есть, из локальной сети отсутствует, так еще и Outlook постоянно при коннекте просит пароль на почтовую учетку. Как руками прописать проброс?
Title: Re: переадресация портов
Post by: mravil on March 19, 2012, 11:14:18 am
Так давайте поподробней. Хочу получить ответ на 2 вопроса:
0) Зентал сразу смотрит в интернет или стоит после роутера? Если после роутер, то как реализован доступ извне к зенталу - портмап или прописана демилитаризованная зона?
1) Как обращаетесь к серверу - по доменному имени или по ip?
Title: Re: переадресация портов
Post by: GriefNorth on March 19, 2012, 11:19:30 am
Так давайте поподробней. Хочу получить ответ на 2 вопроса:
0) Зентал сразу смотрит в интернет или стоит после роутера? Если после роутер, то как реализован доступ извне к зенталу - портмап или прописана демилитаризованная зона?
Зентал сразу смотрит в инет, ip статический.

1) Как обращаетесь к серверу - по доменному имени или по ip?
и по доменному имени и по ip, если в первом случае то открывается веб-сервер стоящий на зентале, если по второму, то сквид выдает ошибку насколько я помню, связанную с ожиданием запроса.
В оутлуке если ввожу локальный ip почтового сервера, то пароль не просится, если же доменное имя то требует пароль и после его введения все равно возвращает ошибку подключения
Title: Re: переадресация портов
Post by: rkislov on March 19, 2012, 11:37:09 am
Ура я не один с такой проблемой, с почтой дорогой GriefNorth обстои та же проблема, привхожу к мысли что видимо придется писать скрипт для фаерволла который будет обнулять все правила и писать заново те которые нужны мне
Title: Re: переадресация портов
Post by: rkislov on March 19, 2012, 11:51:13 am
Сделал вывод iptables-save как я раньше до этого не догадался? Всевыводятся которые мы вводим через вэбинтерфейс пишутся в начале, а затем куча системных правил, соответственно наши правила затираются системными
Title: Re: переадресация портов
Post by: GriefNorth on March 19, 2012, 11:52:39 am
Сделал вывод iptables-save как я раньше до этого не догадался? Всевыводятся которые мы вводим через вэбинтерфейс пишутся в начале, а затем куча системных правил, соответственно наши правила затираются системными
М...а смысл тогда держать это чудо, если руками все делать придется из-за веб-мордочки ? )))
Ну это так лирика, хочется все-таки решение вопроса.
Title: Re: переадресация портов
Post by: zmd on March 19, 2012, 11:53:29 am
Этот случай подробно разобран в http://www.opennet.ru/docs/RUS/iptables/#DNATTARGET пункт 6.5.2. Действие DNAT.
Я думаю, что разработчики могли бы и исправить модуль проброса портов для приведения к соответствию того что есть к тому как надо :)
Title: Re: переадресация портов
Post by: GriefNorth on March 19, 2012, 12:29:17 pm
То есть насколько я понимаю, данная пробелма решится внесением данных правил в брэндмауэр:
Code: [Select]
iptables -t nat -A PREROUTING --dst $INET_IP -p tcp --dport 80 -j DNAT \ --to-destination $HTTP_IP
iptables -t nat -A POSTROUTING -p tcp --dst $HTTP_IP --dport 80 -j SNAT \ --to-source $LAN_IP
iptables -t nat -A OUTPUT --dst $INET_IP -p tcp --dport 80 -j DNAT \ --to-destination $HTTP_IP
где $INET_IP - внешний адрес
      $HTTP_IP - локальный адрес веб-сервера
      $LAN_IP - локальный адрес зентала ???
Title: Re: переадресация портов
Post by: zmd on March 19, 2012, 01:12:59 pm
Проверил в случае с Зентиалом так не выйдет (перезапуск службы все правила затирает раз, логика правил немного другая - работает со своими объектами и цепочками это два).

Проблему решил следующим способом - добавил еще одно правило проброса порта теперь входящий интерфейс "внутренний"
назначение "ип внешний"
протокол "тср"
порт "куда нужно"
источник "поставил любой можно создать сетевой объект включающий определенные нужные ИП"
ну и основное что необходимо "заменить ип"

Ну как то так. :)
Title: Re: переадресация портов
Post by: GriefNorth on March 19, 2012, 01:21:21 pm
Спасибо, завтра опробую, так думаю и с почтой тоже самое делать по 25 и 110 порту?
Title: Re: переадресация портов
Post by: zmd on March 19, 2012, 01:29:00 pm
Каждый порт по отдельности разумеется. Единственно рекомендовал бы использовать порты с шифрованием 995 и 465
Title: Re: переадресация портов
Post by: rkislov on March 19, 2012, 02:38:22 pm
спасибо zmd всё отлично работает +1
Title: Re: переадресация портов
Post by: mravil on March 20, 2012, 04:36:34 am
Так давайте поподробней. Хочу получить ответ на 2 вопроса:
0) Зентал сразу смотрит в интернет или стоит после роутера? Если после роутер, то как реализован доступ извне к зенталу - портмап или прописана демилитаризованная зона?
Зентал сразу смотрит в инет, ip статический.

1) Как обращаетесь к серверу - по доменному имени или по ip?
и по доменному имени и по ip, если в первом случае то открывается веб-сервер стоящий на зентале, если по второму, то сквид выдает ошибку насколько я помню, связанную с ожиданием запроса.
В оутлуке если ввожу локальный ip почтового сервера, то пароль не просится, если же доменное имя то требует пароль и после его введения все равно возвращает ошибку подключения

Сквид ругается, потому-что в списках исключений нет адреса твоей локальной сети. Что значит "пароль не просится" - не авторизуется или пропускает без авторизации?
Title: Re: переадресация портов
Post by: rubic on March 20, 2012, 06:08:08 am
NAT reflection (http://forum.zentyal.org/index.php?topic=2205.0) Судя по всему, так и не реализовали эту фичу. На месте страждущих я бы все же не занимался извратом, пробрасывая порты через роутер между компами находящимися в одном broadcast domain. Как уже было замечено, достаточно просто настроить внутренний DNS сервер так, чтобы он по запросу к доменному имени сервера выдавал локальный IP.
Title: Re: переадресация портов
Post by: GriefNorth on March 20, 2012, 09:31:49 am
Сквид ругается, потому-что в списках исключений нет адреса твоей локальной сети. Что значит "пароль не просится" - не авторизуется или пропускает без авторизации?
Сквид работает без каких либо запрещений (пока!). С почтой вопрос отпал, все заработало, а вот при открытии сайта выдается след.
Connection to xx.xx.xx.xx failed
The system returned (111) Connection refused
Title: Re: переадресация портов
Post by: zmd on March 20, 2012, 11:31:15 am
Сквид ругается, потому-что в списках исключений нет адреса твоей локальной сети. Что значит "пароль не просится" - не авторизуется или пропускает без авторизации?
Сквид работает без каких либо запрещений (пока!). С почтой вопрос отпал, все заработало, а вот при открытии сайта выдается след.
Connection to xx.xx.xx.xx failed
The system returned (111) Connection refused

Мне кажется, что проблема в том что на роутере что-то занимает 80 порт (ну или какой используете). Просто нужно их развести на разные порты. Для того чтобы понять что происходит дайте больше информации о структуре сети.
Title: Re: переадресация портов
Post by: GriefNorth on March 20, 2012, 11:51:05 am
Мне кажется, что проблема в том что на роутере что-то занимает 80 порт (ну или какой используете). Просто нужно их развести на разные порты. Для того чтобы понять что происходит дайте больше информации о структуре сети.
На роутере это на Зентале? А структура такая WAN(оптика от провайдера)-->Zentyal, на выходе имеем два интерфейса eth1 192,168,1,0/24 и eth2 192,168,2,0/24
В 192,168,1,0/24 находится почтовый сервер и веб-сервер,на одной машине, фронтендом стоит nginx который, не знаю правильно не правильно выражусь, распределяет запросы http://domen.ru на 80 порт апача и http://mail.domen.ru на 81 порт веб-морды почтовика.
Если не достаточно, то скажите что еще указать? На самом Зентале веб-сервер не запущен не установлен и не запущен, акромя стандартного.
Title: Re: переадресация портов
Post by: zmd on March 20, 2012, 12:09:33 pm
Мне кажется, что проблема в том что на роутере что-то занимает 80 порт (ну или какой используете). Просто нужно их развести на разные порты. Для того чтобы понять что происходит дайте больше информации о структуре сети.
На роутере это на Зентале? А структура такая WAN(оптика от провайдера)-->Zentyal, на выходе имеем два интерфейса eth1 192,168,1,0/24 и eth2 192,168,2,0/24
В 192,168,1,0/24 находится почтовый сервер и веб-сервер,на одной машине, фронтендом стоит nginx который, не знаю правильно не правильно выражусь, распределяет запросы http://domen.ru на 80 порт апача и http://mail.domen.ru на 81 порт веб-морды почтовика.
Если не достаточно, то скажите что еще указать? На самом Зентале веб-сервер не запущен не установлен и не запущен, акромя стандартного.

То есть, зентиал используется как фаервол. У него допустим ИП 192,168,0,1. Внутри сети стоит веб+почта допустим 192,168,0,2. Вопрос я так понял как пробросить порты снаружи и внутри сети "по доменному имени". Снаружи пробрасываем порты как обычно. Изнутри на каждый порт согласно инструкции написанной выше.
Или еще вариант сделать записи во внутреннем ДНС где domen.ru и mail.domen.ru указать один и тот же внутренний ИП.

Как то так.
Title: Re: переадресация портов
Post by: GriefNorth on March 20, 2012, 12:25:22 pm
То есть, зентиал используется как фаервол. У него допустим ИП 192,168,0,1. Внутри сети стоит веб+почта допустим 192,168,0,2. Вопрос я так понял как пробросить порты снаружи и внутри сети. Снаружи пробрасываем порты как обычно. Изнутри на каждый порт согласно инструкции написанной выше. 
Как то так.
Ага зентал используется как фаервол. Порты пробросил, снаружи сайт открывается, изнутри нет.
Прикреплю файл с iptables-save там 1,56 и 2,56 это локальные адреса зентала, 1,253 это как раз почтовик и веб.
Title: Re: переадресация портов
Post by: zmd on March 20, 2012, 01:11:36 pm
То есть, зентиал используется как фаервол. У него допустим ИП 192,168,0,1. Внутри сети стоит веб+почта допустим 192,168,0,2. Вопрос я так понял как пробросить порты снаружи и внутри сети. Снаружи пробрасываем порты как обычно. Изнутри на каждый порт согласно инструкции написанной выше. 
Как то так.
Ага зентал используется как фаервол. Порты пробросил, снаружи сайт открывается, изнутри нет.
Прикреплю файл с iptables-save там 1,56 и 2,56 это локальные адреса зентала, 1,253 это как раз почтовик и веб.
Досмотрел в правилах -A PREROUTING -d xx.xx.xx.xx/32 -i eth1 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.1.253
Это я так понял то правило ?
Проверь стоит ли галочка заменить ИП в правиле.
И не совсем по теме: обрати внимание на множество записей -A POSTROUTING -d 192.168.1.253/32 -j SNAT --to-source 192.168.1.56. Мне кажется что такое количество однотипных записей не нужно
Title: Re: переадресация портов
Post by: GriefNorth on March 20, 2012, 01:33:26 pm
Во вложении исправленные правила, вносил до этого точно так же через веб-интерфейс. Думаю понятно что хх.хх.хх.хх это внешний IP. Может правда проблема в сквиде?
Title: Re: переадресация портов
Post by: zmd on March 20, 2012, 01:43:13 pm
Во вложении исправленные правила, вносил до этого точно так же через веб-интерфейс. Думаю понятно что хх.хх.хх.хх это внешний IP. Может правда проблема в сквиде?
Скажи пожалуйста какие стоят пакеты в Зентиале и какая его версия ?
Title: Re: переадресация портов
Post by: zmd on March 20, 2012, 01:50:47 pm
И из какой сети 192.168.1.0/24 или 192.168.2.0/24 пробуете попасть на 192.168.1.253?
Маршрутизация между сетями настроена ? Попробуйте телнетом на внешний ИП и порт постучать кто ответит. Есть ли возможность глянуть в логах nginx происходит ли конект или кто-то рубит связь до этого? Посмотрите в логах фаервола Зентиала происходит ли перенаправление?
Title: Re: переадресация портов
Post by: GriefNorth on March 20, 2012, 01:53:17 pm
Во вложении исправленные правила, вносил до этого точно так же через веб-интерфейс. Думаю понятно что хх.хх.хх.хх это внешний IP. Может правда проблема в сквиде?
Скажи пожалуйста какие стоят пакеты в Зентиале и какая его версия ?
Версия 2.2.6, стоят все кроме Cloud Client, DNS Service, Groupware (Zarafa), Mail Service, NTP Service, PPTP,
Printer Sharing Service, RADIUS, VPN Service, VoIP, Web Mail Service, Веб сервер, Почтовый фильтр, Центр Сертификации
Title: Re: переадресация портов
Post by: rubic on March 20, 2012, 03:05:04 pm
Ох и наворотили! Попробуйте сделать вот что: в Firewall -> Port Forwarding найдите запись
Interface: eth2
Original destination: IP Address xx.xx.xx.xx/32
Original destination port: Single port 80
Source: Any
Destination IP: 192.168.1.253
Port: Same
Replace source address: x

и измените ее следующим образом:

Interface: eth2
Original destination: IP Address xx.xx.xx.xx/32
Original destination port: Single port 8080
Source: Any
Destination IP: 192.168.1.253
Port: Other 80
Replace source address: o

заходите на гуй почтового сервера по http://xx.xx.xx.xx:8080

squid-то, чай, не прозрачный? Тогда в браузере надо внести исключения: не использовать прокси-сервер для адресов начинающихся с...
Title: Re: переадресация портов
Post by: GriefNorth on March 20, 2012, 04:23:19 pm
Ох и наворотили! Попробуйте сделать вот что: в Firewall -> Port Forwarding найдите запись
Interface: eth2
Original destination: IP Address xx.xx.xx.xx/32
Original destination port: Single port 80
Source: Any
Destination IP: 192.168.1.253
Port: Same
Replace source address: x

и измените ее следующим образом:

Interface: eth2
Original destination: IP Address xx.xx.xx.xx/32
Original destination port: Single port 8080
Source: Any
Destination IP: 192.168.1.253
Port: Other 80
Replace source address: o

заходите на гуй почтового сервера по http://xx.xx.xx.xx:8080

squid-то, чай, не прозрачный? Тогда в браузере надо внести исключения: не использовать прокси-сервер для адресов начинающихся с...
Блин короче совсем запутался, Сквид прозрачный.
И из какой сети 192.168.1.0/24 или 192.168.2.0/24 пробуете попасть на 192.168.1.253?
Маршрутизация между сетями настроена ? Попробуйте телнетом на внешний ИП и порт постучать кто ответит. Есть ли возможность глянуть в логах nginx происходит ли конект или кто-то рубит связь до этого? Посмотрите в логах фаервола Зентиала происходит ли перенаправление?
Пытался зайти из 192.168.1.0/24 маршрутизация настроена, наверное :-[ , так как в правилах разрешал любой обмен между сетями.
Title: Re: переадресация портов
Post by: zmd on March 20, 2012, 07:01:09 pm
Ох и наворотили! Попробуйте сделать вот что: в Firewall -> Port Forwarding найдите запись
Interface: eth2
Original destination: IP Address xx.xx.xx.xx/32
Original destination port: Single port 80
Source: Any
Destination IP: 192.168.1.253
Port: Same
Replace source address: x

и измените ее следующим образом:

Interface: eth2
Original destination: IP Address xx.xx.xx.xx/32
Original destination port: Single port 8080
Source: Any
Destination IP: 192.168.1.253
Port: Other 80
Replace source address: o

заходите на гуй почтового сервера по http://xx.xx.xx.xx:8080

squid-то, чай, не прозрачный? Тогда в браузере надо внести исключения: не использовать прокси-сервер для адресов начинающихся с...
Три вопроса
1. Как таким способом можно решить вопрос захода по имени на сервер из любого места извне и внутри сети?
2. Зачем пробрасывать порт если собираетесь заходить через другой адрес и порт? если такая логика так просто и заходить внутри по совершенно другой ссылке, которая учитывает специфику внутренней сети.
3. Как вы относитесь к http://www.opennet.ru/docs/RUS/iptables/#DNATTARGET  :)
Title: Re: переадресация портов
Post by: zmd on March 20, 2012, 07:11:48 pm
Ох и наворотили! Попробуйте сделать вот что: в Firewall -> Port Forwarding найдите запись
Interface: eth2
Original destination: IP Address xx.xx.xx.xx/32
Original destination port: Single port 80
Source: Any
Destination IP: 192.168.1.253
Port: Same
Replace source address: x

и измените ее следующим образом:

Interface: eth2
Original destination: IP Address xx.xx.xx.xx/32
Original destination port: Single port 8080
Source: Any
Destination IP: 192.168.1.253
Port: Other 80
Replace source address: o

заходите на гуй почтового сервера по http://xx.xx.xx.xx:8080

squid-то, чай, не прозрачный? Тогда в браузере надо внести исключения: не использовать прокси-сервер для адресов начинающихся с...
Блин короче совсем запутался, Сквид прозрачный.
И из какой сети 192.168.1.0/24 или 192.168.2.0/24 пробуете попасть на 192.168.1.253?
Маршрутизация между сетями настроена ? Попробуйте телнетом на внешний ИП и порт постучать кто ответит. Есть ли возможность глянуть в логах nginx происходит ли конект или кто-то рубит связь до этого? Посмотрите в логах фаервола Зентиала происходит ли перенаправление?
Пытался зайти из 192.168.1.0/24 маршрутизация настроена, наверное :-[ , так как в правилах разрешал любой обмен между сетями.

У меня стоит прозрачное проксирование и все работает. Маршрутизация это не правила фаервола это то что работает на 3 уровне http://ru.wikipedia.org/wiki/%D0%A1%D0%B5%D1%82%D0%B5%D0%B2%D0%B0%D1%8F_%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D1%8C_OSI, фаервол работает выше 5-7 уровни. Проверить можно сделать пинг из сети 192.168.2.0/24 на 192.168.1.253 и с 192.168.1.253 на 192.168.2.0/24.

Сейчас просто главное определить, что не дает установить связь. Попробуй телнетом постучаться на нужный адрес напрямую и через зентиал. а потом посмотри логи фаервола зентиала и кстати проверь логи на той машине куда стучишься. Может проблема там.
Title: Re: переадресация портов
Post by: zmd on March 20, 2012, 07:24:13 pm
Еще раз опубликовал на другой машине сайт. Все работает
Title: Re: переадресация портов
Post by: GriefNorth on March 21, 2012, 06:17:04 am
Сейчас просто главное определить, что не дает установить связь. Попробуй телнетом постучаться на нужный адрес напрямую и через зентиал. а потом посмотри логи фаервола зентиала и кстати проверь логи на той машине куда стучишься. Может проблема там.
Логи куда стучусь проверил, чистые. Сквид у Зентала выдает след
Code: [Select]
104 192.168.1.254 TCP_MISS/504 1500 GET http://domen.ru/ - DIRECT/xx.xx.xx.xx text/html
телнет смогу опробовать только в обед, тогда сообщу.
Title: Re: переадресация портов
Post by: rubic on March 21, 2012, 08:53:39 am
Еще раз опубликовал на другой машине сайт. Все работает
Не забывайте, что 443 порт, на котором у вас висит сайт не проксируется squid'ом в прозрачном режиме. Порты, которые не идут через прокси у GriefNorth тоже прекрасно работают. А вот 80-й - не хочет. Дело у него очевидно именно в squid, который не может по неизвестной причине корректно отдать страницу с сервера 192.168.1.253.
Ради интереса соединил 3 виртуалки в такую же схему как и у GriefNorth и могу предложить свой способ решения проблемы. Возможно, в свете идеологии iptables, ваш способ лучше, но я его так до конца и не понял. Так что заранее извиняюсь и забудем пока то, что я писал в предыдущем посте.
Title: Re: переадресация портов
Post by: rubic on March 21, 2012, 08:54:09 am
Итак, тем, кому необходимо чтобы веб-сервер находящийся в локальной сети был доступен по его доменному имени как из локальной сети, так и снаружи, предлагаю простой способ. В то время как внешние DNS сервера разрешают доменное имя веб-сервера во внешний IP zentyal, внутренний DNS сервер, обслуживающий локальную сеть, должен разрешать его в локальный IP сервера. Для простой "плоской" локальной сети, где веб-сервер находится в одном broadcast domain со всеми остальными компьютерами, достаточно лишь пробросить 80-й порт снаружи на веб-сервер и настроить внутренний DNS. Если внутри сети DNS запросы обслуживает zentyal, последнее можно сделать например так:
DNS -> Domains -> Add new
Domain: example.com (имя вашего домена)
IP Address: 192.168.1.253 (локальный IP веб-сервера)
Add
Save changes
теперь снаружи nslookup example.com выдаст:
Code: [Select]
Non-authoritative answer:
Name:    example.com
Address:  192.0.43.10
а изнутри:
Code: [Select]
Name:    example.com
Address:  192.168.1.253
внешние пользователи будут попадать на веб-сервер через проброшенный на zential порт, а внутренние - непосредственно по локальному IP, минуя zentyal.

Это, повторюсь, простой случай. Теперь для GriefNorth'а. У вас веб-сервер находится в DMZ, отгороженный от остальной локальной сети. Так что клиенты из локальной сети пойдут на веб-сервер через zentyal. Само по себе это никак не мешает работе способа приведенного выше. Zentyal - прежде всего маршрутизатор, и передавать пакеты из одной сети в другую - его работа. Однако прозрачный squid ломает эту схему. Он перехватывает все пакеты с 80-м портом назначения не адресованные непосредственно интерфейсу, который он слушает и где-то запутывается - ничего не работает. Проверено, что стоит отключить squid - все работает прекрасно. Понятно, что squid отключать не хочется, а надо сделать так, чтобы он не перехватывал 80 порт, когда запрос идет на внутренний веб-сервер.
Сделать это можно пробросом 80-го порта с интерфейса eth2 на адрес веб-сервера.
Code: [Select]
eth2 Zentyal TCP 80 Any 192.168.1.253 SameТ.к. squid не перехватывает пакеты адресованные самим интерфейсам zentyal, опубликовав 80-й порт на eth2 мы избавимся от глючного проксирования локального веб-сервера. Теперь для локальной сети 192.168.2.0/24 адресом веб сервера будет локальный адрес zentyal (192.168.2.56). Но мы хотим обращаться к сайту по имени. Для нашего случая настройки DNS будут другими:
DNS -> Domains -> Add new
Domain: имя вашего домена
IP Address: 192.168.2.56
Add
Save changes
Title: Re: переадресация портов
Post by: GriefNorth on March 21, 2012, 10:09:30 am
Тогда вопрос еще такой, не помешает ли DNS Zentyal работе MS DNS, который поддерживает работу AD в 192.168.2.0/24?
P.S. И проблема еще в том что из сети 192.168.1.0/24 тоже могут ходить на домен, а Зентал при добавлении еще одного домена с таким же именем ругается.
Title: Re: переадресация портов
Post by: rubic on March 21, 2012, 12:02:00 pm
Тогда вопрос еще такой, не помешает ли DNS Zentyal работе MS DNS, который поддерживает работу AD в 192.168.2.0/24?
Не помешает, они ведь обслуживают разные зоны (условно, domain.ru и domain.local). Если у вас на клиентских компьтерах в качестве DNS сервера прописан DNS AD, то проще даже на нем завести зону прямого просмотра domain.ru и в ней прописать, что www.domain.ru - это 192.168.2.56, а mail.domain.ru и все остальное - это 192.168.1.253
Осторожность с этим трюком (он называется split-DNS) нужна вот где: если у вас в domain.ru есть сервисы, хостящиеся на внешних серверах (к примеру, www - у вас в локалке, а mail - на внешнем сервере в интернете), то в для всех внешних сервисов в этой зоне придется прописать их реальные IP. Зона, которую вы создадите будет AUTHORITATIVE для локальных клиентов, т.е. DNS AD не будет искать где-то в интернете IP внешних сервисов, он только посмотрит в локальной зоне и, если соответствующей записи в ней нет, будет считать, что ее нет вообще.
Хотя некоторые товарищи http://www.petri.co.il/forums/showthread.php?t=41717 как-то вроде умудряются сделать простой host override без необходимости прописывать внешние сервисы в зоне.
Скорее всего последний абзац вас не касается, но все же имейте ввиду.
Title: Re: переадресация портов
Post by: zmd on March 21, 2012, 12:02:56 pm
Тогда вопрос еще такой, не помешает ли DNS Zentyal работе MS DNS, который поддерживает работу AD в 192.168.2.0/24?
P.S. И проблема еще в том что из сети 192.168.1.0/24 тоже могут ходить на домен, а Зентал при добавлении еще одного домена с таким же именем ругается.
Нужно вносить запись в том ДНС сервере который обслуживает сеть. В случае домена могу предположить, что имя домена отличается от имени fqdn, так что можно смело его добавлять. В случае зентила второй домен с тем же именем добавлять не нужно, просто в уже созданном домене добавить запись класса А с другим нужным ИП.
Title: Re: переадресация портов
Post by: zmd on March 21, 2012, 12:12:36 pm
Итак, тем, кому необходимо чтобы веб-сервер находящийся в локальной сети был доступен по его доменному имени как из локальной сети, так и снаружи, предлагаю простой способ. В то время как внешние DNS сервера разрешают доменное имя веб-сервера во внешний IP zentyal, внутренний DNS сервер, обслуживающий локальную сеть, должен разрешать его в локальный IP сервера. Для простой "плоской" локальной сети, где веб-сервер находится в одном broadcast domain со всеми остальными компьютерами, достаточно лишь пробросить 80-й порт снаружи на веб-сервер и настроить внутренний DNS. Если внутри сети DNS запросы обслуживает zentyal, последнее можно сделать например так:
DNS -> Domains -> Add new
Domain: example.com (имя вашего домена)
IP Address: 192.168.1.253 (локальный IP веб-сервера)
Add
Save changes
теперь снаружи nslookup example.com выдаст:
Code: [Select]
Non-authoritative answer:
Name:    example.com
Address:  192.0.43.10
а изнутри:
Code: [Select]
Name:    example.com
Address:  192.168.1.253
внешние пользователи будут попадать на веб-сервер через проброшенный на zential порт, а внутренние - непосредственно по локальному IP, минуя zentyal.

Это, повторюсь, простой случай. Теперь для GriefNorth'а. У вас веб-сервер находится в DMZ, отгороженный от остальной локальной сети. Так что клиенты из локальной сети пойдут на веб-сервер через zentyal. Само по себе это никак не мешает работе способа приведенного выше. Zentyal - прежде всего маршрутизатор, и передавать пакеты из одной сети в другую - его работа. Однако прозрачный squid ломает эту схему. Он перехватывает все пакеты с 80-м портом назначения не адресованные непосредственно интерфейсу, который он слушает и где-то запутывается - ничего не работает. Проверено, что стоит отключить squid - все работает прекрасно. Понятно, что squid отключать не хочется, а надо сделать так, чтобы он не перехватывал 80 порт, когда запрос идет на внутренний веб-сервер.
Сделать это можно пробросом 80-го порта с интерфейса eth2 на адрес веб-сервера.
Code: [Select]
eth2 Zentyal TCP 80 Any 192.168.1.253 SameТ.к. squid не перехватывает пакеты адресованные самим интерфейсам zentyal, опубликовав 80-й порт на eth2 мы избавимся от глючного проксирования локального веб-сервера. Теперь для локальной сети 192.168.2.0/24 адресом веб сервера будет локальный адрес zentyal (192.168.2.56). Но мы хотим обращаться к сайту по имени. Для нашего случая настройки DNS будут другими:
DNS -> Domains -> Add new
Domain: имя вашего домена
IP Address: 192.168.2.56
Add
Save changes

В Reply #26 я уже приводил такой вариант :) .

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

Как то так.
Title: Re: переадресация портов
Post by: rubic 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 не удаляется.
Title: Re: переадресация портов
Post by: zmd 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 :)

Схема работает в живой системе!
Title: Re: переадресация портов
Post by: rubic 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 (см. цитату), то и нам ничего не отдаст. Это прекрасно подтверждается практикой:

(http://dl.dropbox.com/u/16308481/zentyal/squid/rerr.PNG)
Ошибка доступа к сайту с самого zentyal (websrv.test.local - имя сайта).

(http://dl.dropbox.com/u/16308481/zentyal/squid/cerr.PNG)
Ошибка доступа к сайту с клиентского компьютера (192.168.0.240 - внешний адрес zentyal. В него же наружным DNS сервером разрешается имя websrv.test.local).

Настройки:

(http://dl.dropbox.com/u/16308481/zentyal/squid/pf.PNG)
Проброс портов. eth0 - наружный интерфейс с адресом 192.168.0.240 (INET_IP), eth1 - внутренний c IP=192.168.1.56. Локальный адрес веб-сервера - 192.168.1.253.

(http://dl.dropbox.com/u/16308481/zentyal/squid/proxy.PNG)
Настройки squid.

(http://dl.dropbox.com/u/16308481/zentyal/squid/mod.PNG)
Статус модулей.

Стоит отключить модуль 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
как сайт начинает нормально открываться.
Title: Re: переадресация портов
Post by: GriefNorth on May 05, 2012, 11:05:23 am
Еще раз всем привет, с перенаправлением портов разобрался и все работает так как надо, и с внешки открывается локальный вебсервер и изнутри.
Но возникла другая проблема. Хотел установить и настроить bandwidthd, для этого установил в Зентале веб-сервер, перенес его слушать порт 83. Но теперь при открытии сайта или заходе на веб-морду почты. Появляется стандартная страница Апача: Итс воркс! . Я чего-то не понимаю или что ? Он же висит на 83 порту, с какой радости начинает слушать 80?
Title: Re: переадресация портов
Post by: aleks-lit on May 07, 2013, 09:03:50 am
расскажите пож-та, как настроить Zentyal, что бы работали почтовые клиенты
Title: Re: переадресация портов
Post by: toor on May 08, 2013, 10:17:40 am
Сделал вывод iptables-save как я раньше до этого не догадался? Всевыводятся которые мы вводим через вэбинтерфейс пишутся в начале, а затем куча системных правил, соответственно наши правила затираются системными
М...а смысл тогда держать это чудо, если руками все делать придется из-за веб-мордочки ? )))
Ну это так лирика, хочется все-таки решение вопроса.

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

не умеет это чЮдо, из вэбморды нормально рулить правилами файра. ТоварищЪ zmd рекомендует ставить генту ;)
Title: Re: переадресация портов
Post by: aleks-lit on May 08, 2013, 10:59:23 am
а что скажете на счет Sams
Title: Re: переадресация портов
Post by: logdog on May 08, 2013, 11:29:07 am
Quote from: toor
не умеет это чЮдо, из вэбморды нормально рулить правилами файра.

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

2rubic
Напишите багрепорт, если разобрались с проблемой...
Title: Re: переадресация портов
Post by: toor on May 08, 2013, 11:55:02 am
Quote from: toor
не умеет это чЮдо, из вэбморды нормально рулить правилами файра.

Обоснуйте!

По ссылочке пройдитесь. На уровне интерфейсов нет политик (вэбморда). Если используется сквид, и правило "Разрешить все" для внутренних сетей запрещено, получаем танцы с бубном. Открытие/Закрытие сервисов по крону отдельная песня. В качестве учебного пособия по кнопкотыканию зентиал вполне так нормальный дистр.
Title: Re: переадресация портов
Post by: zmd on May 08, 2013, 10:27:08 pm
Еще раз всем привет, с перенаправлением портов разобрался и все работает так как надо, и с внешки открывается локальный вебсервер и изнутри.
Но возникла другая проблема. Хотел установить и настроить bandwidthd, для этого установил в Зентале веб-сервер, перенес его слушать порт 83. Но теперь при открытии сайта или заходе на веб-морду почты. Появляется стандартная страница Апача: Итс воркс! . Я чего-то не понимаю или что ? Он же висит на 83 порту, с какой радости начинает слушать 80?
Чтото помоему намудрили с перенаправлением портов. Апач кстати вручную настраивается через /etc/apache2/ports.conf.
Title: Re: переадресация портов
Post by: extraneous 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   
 не доступен >:(