PfSense 2.2 OpenVPN клиент и Sophos/Astaro OpenVPN сервер (Site-to-Site + *.apc)



  • Данная инструкция результат длительных проб и поиска в Интернете. Надеюсь, что кому-нибудь она сохранит драгоценное время.

    *Для просмотра картинок необходима авторизация.

    Как оказалось, настройка через *.apc файл не так уж и проста.  На стороне Sophos создано соединение OpenVPN Site-to-Site.

    Сертификаты можно взять из apc-файла открыв его редактором, например Notepad++. Можно загрузить apc-файл на другую инстанцию Sophos/Astaro  как клиента. В данном случае конфигурационные файлы будут находиться в /var/sec/chroot-openvpn/client.

    Настройка pfSense OpenVPN клиента.

    1. ЗАГРУЖАЕМ СЕРТИФИКАТ CA.

    2. СОЗДАЕМ ПОЛЬЗОВАТЕЛЬСКИЙ СЕРТИФИКАТ С КЛЮЧОМ.

    3. СОЗДАЕМ OPENVPN КЛИЕНТА НА PFSENSE.

    Пользователь и пароль это userServer credentials.

    Если всё правильно указали, то в меню Status -> OpenVPN можно увидеть результат:

    4. СОЗДАЕМ ИНТЕРФЕЙС.

    Создаем новый интерфейс в меню Interfaces -> (assign)

    Появиться примерно такая запись.

    Нажмите OPT4 для редактирования.

    5. ПРАВИЛО NAT

    Manual Outbound NAT rule generation.

    6. FIREWALL: RULES

    Создайте правила для разрешения трафика на интерфейсах.

    Для интерфейса LAN в правиле укажите gateway.































  • Спасибо за Ваш труд.

    А отдельно OpenVPN-интерфейс создавать разве необходимо ? Ведь при создании подключения он там и так появляется ?

    P.s. Скажите, а Sophos/Astaro у Вас аппаратное решение или чисто программное? Если второе , то можно ли его заменить на pfsense,
    чтобы упростить себе жизнь ? Или Вы им не рулите?



  • Добрый день!

    Очень рад, что кому-то это пригодилось.

    Да, интерфейс появляется, но направить туда трафик из веб-интерфейса, нет возможности. Если она и есть, то не очевидная. Дело в том, что сам pfSense видит удалённую сеть, а наша локальная сеть не видит. Вот поэтому создавал интерфейс, чтобы направить трафик через gateway.

    Sophos стоит у одного нашего партнера и заменить не получится. Всё что я смог узнать, это файл apc и настройки. Детали я не знаю, но уверен, что pfSense заменит его :)



  • Да, интерфейс появляется, но направить туда трафик из веб-интерфейса, нет возможности. Если она и есть, то не очевидная. Дело в том, что сам pfSense видит удалённую сеть, а наша локальная сеть не видит. Вот поэтому создавал интерфейс, чтобы направить трафик через gateway.

    1. Удалить явно созданный интерфейс OpenVPN и gateway для OpenVPN.

    2. В настройках OpenVPN: Client в Advanced добавить директиву route 192.168.100.0 255.255.255.0**;** (исполз. свою удаленную сеть)

    3. В fw на LAN создать явное разрешающее правило для доступа в удаленную сеть и поставить его самым первым (для проверки)

    IPv4 LAN subnet * 192.168.100.0/24 * * (исполз. свою удаленную сеть)



  • Спасибо, werter.

    Это хорошая рекомендация!

    Я когда настраивал почему-то подумал, что раз маршрут уже есть (прописывается через директивы с сервера), то это не сработает.



  • Пожалуйста.

    Я когда настраивал почему-то подумал, что раз маршрут уже есть (прописывается через директивы с сервера), то это не сработает.

    Разве при Site-to-site (p2p) директивы push с сервера для клиентов работают ? Уточните этот момент.

    P.s. По этому  и стараюсь везде исп-ть remote access (сервер-клиент), а не p2p при построении openvpn-туннелей.



  • Разве при Site-to-site (p2p) директивы push с сервера для клиентов работают ?

    Openvpn сервер на 2.0.3-RELEASE в режиме Peer to Peer (SSL/TLS)

    Директивы push в  Client Specific Override работают для:
    Клиента на pFsense
    Клиента на Mikrotik
    Для Mikrotik приходится явно указывать шлюзом "дальний" конец туннеля:

    push route "10.0.4.0 255.255.255.0 10.11.12.1"

    Не работают для клиента на Android.



  • Директивы push в  Client Specific Override

    В режиме rem. access они пишутся совсем в др. месте. Надо бы проверить с p2p. и вашим предложением в Client Specific Override.



  • @werter:

    Разве при Site-to-site (p2p) директивы push с сервера для клиентов работают ? Уточните этот момент.

    Да, директивы работают, если мы говорим об одном и том же. Вот мои настройки для сервера, к примеру (OpenVPN: Server):

    У меня pfSense в офисе. Из дома к нему подключается роутер с openwrt как клиент OpenVPN P2P. Отлично получает маршруты. Я из дома даже попадаю в тоннели (впн) проложенные из офиса к партнёрам(клиентам).

    В данном случае, я получаю директивы с маршрутами от сервера Sophos. Руками маршруты нигде не прописываю. Результат:






  • @werter:

    1. Удалить явно созданный интерфейс OpenVPN и gateway для OpenVPN.

    2. В настройках OpenVPN: Client в Advanced добавить директиву route 192.168.100.0 255.255.255.0**;** (исполз. свою удаленную сеть)

    3. В fw на LAN создать явное разрешающее правило для доступа в удаленную сеть и поставить его самым первым (для проверки)

    IPv4 LAN subnet * 192.168.100.0/24 * * (исполз. свою удаленную сеть)

    werter, я попробовал как ты описал - не получилось.

    Я удалил интерфейс и сделал правило, но из локальной сети я не попадаю в сеть партнёра. Что порекомендуешь? Куда посмотреть?



  • Скрин правил fw на LAN, настроек OpenVPN.



  • Настройки как в первом посте.

    Маршруты

    Сам pfSense хорошо видит удалённую сеть и все компы в ней.






  • Что такое 192.168.0.0/24 ? Почему туда маршрут через ВПН ?

    Advanced configuration в OpenVPN: Client покажите.



  • Я так понимаю, что у них есть такая сеть.

    Advanced configuration в OpenVPN -> Client:




  • 1. Директивы в Advanced configuration в OpenVPN -> Client писать можно в одну строку, но разделитем должно быть ; (тчк с зпт)
        Там об этом написано, кстати. У Вас этого нет.

    2. Там же добавьте директиву route 192.168.100.0 255.255.255.0; столько раз, сколько удаленных сетей (меняя адресацию, конечно) )и сохраните настройки.

    Сети Ваши с их сетями не пересекаются?

    Да, директивы работают, если мы говорим об одном и том же. Вот мои настройки для сервера, к примеру (OpenVPN: Server):

    Вы даете гарантию, что в настройках их ВПН-сервера есть директивы push для Вас ?



  • Когда я добавляю маршрут, то в логе ошибка:
        ERROR: FreeBSD route add command failed: external program exited with error status: 1

    Сети не пересекаются.

    Про push: Тогда как объяснить то, что появляются маршруты в pfSense? Он то сам хорошо видит удалённую сеть. Не получается мои запросы туда направить.



  • К сожалению, не получилось у меня настроить маршрутизацию без использования интерфейса.