Author Topic: Zentyal как шлюзв для openVPN клиентов с филь-й трафика через proxy  (Read 2195 times)

plysyi

  • Zen Apprentice
  • *
  • Posts: 2
  • Karma: +0/-0
    • View Profile
Доброго времени суток. Прошу помочь знающих.
есть сервер Zentyal 3.0 в нем установлено две сетeвые карты eth0-Lan и eth1-WAN
так же есть Winсервер2008 находящийся в просторах нета.
Задача:
 1) Необходимо что б Winserwer2008 подключался к серверу Zentyal посредством openvpn или pptp (желательно pptp), и при установке соединения использовал его как шлюз по умолчанию.
2) Нужно чтоб трафик подключенного Winserwer2008 фильтровался через правила прозрачного proxy (Squid).

Достигнуто:1) Первый пункт выполнен. Winсервер подключается к Zentyal,  Winserwer доступен для локалных пользователей Zentyal и наоборот ,трафик бегает через сервер Zentyal.

Проблема: для Winserwer (подключенного через openVPN)
Недоступен порт прокси сервера 3128. соответственно фильтр не работает.
Другие порты (80, 8080) доступны..
я подозреваю что проблема в фаерволе.. но как его правильно настроить... не знаю..
при чем конфиг руками править не поможет Zentyal затрет...(да и не знаю как правильно...)
через web интерфейс не реально так как там нет виртуального интервейса tap0....



zmd

  • Zen Warrior
  • ***
  • Posts: 240
  • Karma: +10/-2
    • View Profile
Доброго времени суток. Прошу помочь знающих.
есть сервер Zentyal 3.0 в нем установлено две сетeвые карты eth0-Lan и eth1-WAN
так же есть Winсервер2008 находящийся в просторах нета.
Задача:
 1) Необходимо что б Winserwer2008 подключался к серверу Zentyal посредством openvpn или pptp (желательно pptp), и при установке соединения использовал его как шлюз по умолчанию.
2) Нужно чтоб трафик подключенного Winserwer2008 фильтровался через правила прозрачного proxy (Squid).

Достигнуто:1) Первый пункт выполнен. Winсервер подключается к Zentyal,  Winserwer доступен для локалных пользователей Zentyal и наоборот ,трафик бегает через сервер Zentyal.

Проблема: для Winserwer (подключенного через openVPN)
Недоступен порт прокси сервера 3128. соответственно фильтр не работает.
Другие порты (80, 8080) доступны..
я подозреваю что проблема в фаерволе.. но как его правильно настроить... не знаю..
при чем конфиг руками править не поможет Zentyal затрет...(да и не знаю как правильно...)
через web интерфейс не реально так как там нет виртуального интервейса tap0....
Отображение интерфейса можно включить путем ручной правки /etc/zentyal/network.conf
параметр ifaces_to_ignore . Нужно убрать данный интерфейс из списка игнорируемых.
Для добавления правил минуя графический интерфейс можно использовать /etc/zentyal/hooks/
« Last Edit: April 22, 2013, 05:24:00 am by zmd »

plysyi

  • Zen Apprentice
  • *
  • Posts: 2
  • Karma: +0/-0
    • View Profile
Благодарю за помощь .. помогло но частично..
после разрешения игнорируемых интерфейсов появился интерфейс tap1.
так вот  после внесения статических настроек на интерфейсе tap1 (Сеть --->Интерфейсы---> tap1)
(вносим такой же ip и маску сети как и при настройке openVPN, Зент не ругнулся,)
и сохранения изменений, появляются правила:
(команда вывода правил: sudo iptables -S | grep tap1)

-A iexternalmodules -i tap1 -j RETURN
-A iexternalmodules -i tap1 -j RETURN
-A iexternalmodules -i tap1 -p udp -m udp --dport 520 -j ACCEPT
-A imodules -i tap1 -p udp -m udp --dport 520 -j ACCEPT
-A imodules -i tap1 -p tcp -m state --state NEW -m tcp --dport 3128 -j ACCEPT
-A inospoof -s 192.168.15.0/30 ! -i tap1 -j idrop
-A omodules -o tap1 -p udp -m udp --dport 520 -j ACCEPT
-A omodules -o tap1 -p tcp -m state --state NEW -m tcp --sport 137 -j ACCEPT
-A omodules -o tap1 -p udp -m state --state NEW -m udp --sport 137 -j ACCEPT
-A omodules -o tap1 -p tcp -m state --state NEW -m tcp --dport 137 -j ACCEPT
-A omodules -o tap1 -p udp -m state --state NEW -m udp --dport 137 -j ACCEPT
-A omodules -o tap1 -p tcp -m state --state NEW -m tcp --sport 138 -j ACCEPT
-A omodules -o tap1 -p udp -m state --state NEW -m udp --sport 138 -j ACCEPT
-A omodules -o tap1 -p tcp -m state --state NEW -m tcp --dport 138 -j ACCEPT
-A omodules -o tap1 -p udp -m state --state NEW -m udp --dport 138 -j ACCEPT
-A omodules -o tap1 -p tcp -m state --state NEW -m tcp --sport 139 -j ACCEPT
-A omodules -o tap1 -p udp -m state --state NEW -m udp --sport 139 -j ACCEPT
-A omodules -o tap1 -p tcp -m state --state NEW -m tcp --dport 139 -j ACCEPT
-A omodules -o tap1 -p udp -m state --state NEW -m udp --dport 139 -j ACCEPT
-A omodules -o tap1 -p tcp -m state --state NEW -m tcp --sport 445 -j ACCEPT
-A omodules -o tap1 -p udp -m state --state NEW -m udp --sport 445 -j ACCEPT
-A omodules -o tap1 -p tcp -m state --state NEW -m tcp --dport 445 -j ACCEPT
-A omodules -o tap1 -p udp -m state --state NEW -m udp --dport 445 -j ACCEPT
после их появления машина Winserver подключается по openVPN трафик ходит через Зент и фильтруется через прозрачный прокси (по ранее созданным правилам для имеющейся openVPN сети).

НО это до перезагрузки Зента... после перезагрузки правила слетают...

ВОПРОС: прошу подскажите какие команды необходимо набрать чтоб получить выше стоящий результат (такой как вывод правил: sudo iptables -S | grep tap1)..
если не ошибаюсь их можно засунуть в :

/etc/zentyal/hooks/firewall.postservice

В виде скрипта:

#!/bin/sh
# This is the firewall postservice script and it's run after Zentyal
# has finished setting up the firewall.
# You can add here custom rules that you might need for your firewall
# The script will receive a command line argument indicating whether the
# module is enabled (1) or not (0).

if [ "$1" -eq "1" ]
then
    #add custom rules here
    <Здесь указывам команды для правил iptables>
    true
fi
exit 0


zmd

  • Zen Warrior
  • ***
  • Posts: 240
  • Karma: +10/-2
    • View Profile
Благодарю за помощь .. помогло но частично..
после разрешения игнорируемых интерфейсов появился интерфейс tap1.
так вот  после внесения статических настроек на интерфейсе tap1 (Сеть --->Интерфейсы---> tap1)
(вносим такой же ip и маску сети как и при настройке openVPN, Зент не ругнулся,)
и сохранения изменений, появляются правила:
(команда вывода правил: sudo iptables -S | grep tap1)

-A iexternalmodules -i tap1 -j RETURN
-A iexternalmodules -i tap1 -j RETURN
-A iexternalmodules -i tap1 -p udp -m udp --dport 520 -j ACCEPT
-A imodules -i tap1 -p udp -m udp --dport 520 -j ACCEPT
-A imodules -i tap1 -p tcp -m state --state NEW -m tcp --dport 3128 -j ACCEPT
-A inospoof -s 192.168.15.0/30 ! -i tap1 -j idrop
-A omodules -o tap1 -p udp -m udp --dport 520 -j ACCEPT
-A omodules -o tap1 -p tcp -m state --state NEW -m tcp --sport 137 -j ACCEPT
-A omodules -o tap1 -p udp -m state --state NEW -m udp --sport 137 -j ACCEPT
-A omodules -o tap1 -p tcp -m state --state NEW -m tcp --dport 137 -j ACCEPT
-A omodules -o tap1 -p udp -m state --state NEW -m udp --dport 137 -j ACCEPT
-A omodules -o tap1 -p tcp -m state --state NEW -m tcp --sport 138 -j ACCEPT
-A omodules -o tap1 -p udp -m state --state NEW -m udp --sport 138 -j ACCEPT
-A omodules -o tap1 -p tcp -m state --state NEW -m tcp --dport 138 -j ACCEPT
-A omodules -o tap1 -p udp -m state --state NEW -m udp --dport 138 -j ACCEPT
-A omodules -o tap1 -p tcp -m state --state NEW -m tcp --sport 139 -j ACCEPT
-A omodules -o tap1 -p udp -m state --state NEW -m udp --sport 139 -j ACCEPT
-A omodules -o tap1 -p tcp -m state --state NEW -m tcp --dport 139 -j ACCEPT
-A omodules -o tap1 -p udp -m state --state NEW -m udp --dport 139 -j ACCEPT
-A omodules -o tap1 -p tcp -m state --state NEW -m tcp --sport 445 -j ACCEPT
-A omodules -o tap1 -p udp -m state --state NEW -m udp --sport 445 -j ACCEPT
-A omodules -o tap1 -p tcp -m state --state NEW -m tcp --dport 445 -j ACCEPT
-A omodules -o tap1 -p udp -m state --state NEW -m udp --dport 445 -j ACCEPT
после их появления машина Winserver подключается по openVPN трафик ходит через Зент и фильтруется через прозрачный прокси (по ранее созданным правилам для имеющейся openVPN сети).

НО это до перезагрузки Зента... после перезагрузки правила слетают...

ВОПРОС: прошу подскажите какие команды необходимо набрать чтоб получить выше стоящий результат (такой как вывод правил: sudo iptables -S | grep tap1)..
если не ошибаюсь их можно засунуть в :

/etc/zentyal/hooks/firewall.postservice

В виде скрипта:

#!/bin/sh
# This is the firewall postservice script and it's run after Zentyal
# has finished setting up the firewall.
# You can add here custom rules that you might need for your firewall
# The script will receive a command line argument indicating whether the
# module is enabled (1) or not (0).

if [ "$1" -eq "1" ]
then
    #add custom rules here
    <Здесь указывам команды для правил iptables>
    true
fi
exit 0
Циклы не к чему.
Просто указывайте по порядку правила в виде /sbin/iptables ...................................

Ну или на любителя можете нарисовать скрипт по полной.
Было бы интересно потом на него глянуть :)