4. Настройка L2TP в pfSense

4. Настройка L2TP в pfSense

Сейчас будем создавать L2TP сервер для нашего pfSense. Для чего это нужно? Наша организация имеет небольшой филиал где находится 3 компьютера. Задача следующая — связать в единую сеть компьютеры организации и филиала. В идеале картина должна быть такая:

32

 

Но так как пока мы только настраиваем и тестируем наш новый pfSense, то имеем это (почему именно это — мы разбирали в предыдущих статьях):

25

Итак приступим. За основу я взял инструкцию отсюда: https://doc.pfsense.org/index.php/L2TP/IPsec, но тут она написана для более ранней версии pfSense поэтому есть некоторые неточности.

Нам нужно чтобы с любого рабочего компьютера сети предприятия можно было установить защищенное L2TP/IPsec соединение с внутренней сетью 192.168.2.0/24.

Замечу сразу, что в нашем случае, при таком IP адресе WAN интерфейса — 192.168.0.50 (что принадлежит диапазону частных сетей), необходимо снять галку Block private networks разделе Interfaces -> WAN -> раздел Private networks (смотри предыдущие статьи)

Настройка L2TP pfSense

Конфигурирование L2TP-сервера

  1. Заходим в WEB-интерфейс, идём VPN -> L2TP
  2. Включаем L2TP сервер выбрав переключатель Enable L2TP server
  3. Интерфейс должен быть выбран WAN, ведь клиены будут подключаться со стороны сетевой карты смотрящей в интернет
  4. Теперь нужно указать Server Address. Указываем, например, 192.168.33.252

— Выбираем не использующуюся сеть, т.е. если внутренняя сеть у нас 192.168.2.0/24 и внешняя сеть 192.168.0.0/24, то их выбирать нельзя.

— IP-адрес должен находиться в диапазоне частных сетей, т.е. 192.168.0.0/24 или 172.16.0.0/16 или 10.0.0.0/8

— Подключенные по L2TP внешние клиенты из внутренней сети будут доступны по адресам указанной сети, например, 192.168.33.0, 192.168.33.1 и так далее

— Перед выбором этого адреса советую с рабочего компьютера сети пропинговать его, вдруг он уже занят. (у меня был случай что вроде никого под этим IP нету, а он пингуется! Оказалось что на стороне провайдера он занят и почему-то я его мог пинговать)

  1. Выбираем Remote Address Range — это как раз стартовый диапазон IP-адресов с которого будут раздаваться адреса L2TP клиентам (например, 192.168.33.0, 192.168.33.1). Указываем 192.168.33.0
  2. Subnet Mask указываем 24, что соответствует 255.255.255.0. Это значит что клиенты будут получать адреса от 192.168.33.0 до 192.168.33.255
  3. Number of L2TP Users это максимальное количество пользователей, которые будут подключены к pfSense. Так как у нас в филиале всего три компьютера, то и указываем 3
  4. Secret — не знаю что это, оставляем пустым
  5. Authentication Type это протокол проверки пароля (PAP-незашифрованный пароль, CHAP-зашифрованный). Указываем CHAP
  6. Остальное оставляем без изменений, жмём Save

33

Добавление L2TP пользователей

  1. Переходим во вкладку Users, добавляем пользователей
  2. Жмём кнопочку с плюсиком
  3. Username делаем qwert
  4. Password делаем qwerty
  5. IP address оставляем пустым
  6. Жмём Save

Это, как вы поняли, тестовый пользователь, потом создадите нормальных.

По идее L2TP не шифрует данные. L2TP — это просто метод инкапсуляции и он должен использоваться только на доверенных сетях, либо в сочетании с IPsec. Поэтому будем настраивать шифрование IPsec

Настройка IPsec

Конфигурирование Mobile Clients Tab

  1. Идем в VPN -> IPsec -> вкладка Mobile Clients
  2. Ставим флажок Enable IPsec Mobile Client Support
  3. В строке User Authentication выделяем пункт Local Database
  4. Проверьте что убраны флажки:
    1. Provide a virtual IP address to clients
    2. Provide a virtual IPv6 address to clients
    3. Provide a list of accessible networks to clients
  5. Жмём Save, вылезит сообщение с кнопкой Create Phase1, игнорируем его.

34

Конфигурирование Tunnels

  1. Переходим во вкладку Tunnels
  2. Ставим флажок Enable IPsec
  3. Жмём Save, затем Apple Changes

 

Конфигурирование Phase 1

  1. Возвращаемся во вкладку Mobile Clients
  2. Нажимаем кнопку Create Phase1 в сообщении вверху страницы
  3. Проверяем что в строке Key Exchange version установлено значение V1
  4. Проверяем что в строке Authentication method установлено значение Mutual PSK
  5. Устанавливаем Negotiation Mode в значение Main
  6. Проверяем что в строке My Identifier установлено значение My IP address
  7. Проверяем что в строке Encryption algorithm установлены значения AES и 256 bits
  8. Проверяем что в строке Hash algorithm установлено значение SHA1
  9. Устанавливаем DH key group в значение 14 (2048 bit)
  10. Проверяем что в строке Lifetime установлено значение 28800
  11. Проверяем что в строке Disable Rekey снят флажок Whether a connection should be renegotiated when it is about to expire.
  12. Проверяем что в строке Responder Only снят флажок Enable this option to never initiate this connection from this side, only respond to incoming requests.
  13. Проверяем что в строке NAT Traversalустановлено значение Auto
  14. Проверяем что в строке Dead Peer Detection установлены значения:
    1. флажок Enable DPD -> установлен
    2. Delay between requesting peer acknowledgement. -> 10 seconds
    3. Number of consecutive failures allowed before disconnect. -> retries
  15. Жмём Save, затем Apple Changes

35

 

Конфигурирование Phase 2

  1. Нажимаем кнопку «+» рядом с которой написано — Show 0 Phase-2 entries

36

  1. Нажимаем ещё одну кнопку с плюсиком

37

  1. Устанавливаем Mode в значение Transport
  2. Проверяем что в Protocol установлено значение ESP
  3. В строке Encryption algorithms должен быть установлен только один флажок — напротив AES, значение измените на 128 bits
  4. В строке Hash algorithms должен быть установлен только один флажок — напротив SHA1
  5. Убедитесь что PFS Key Group установлен в положение off
  6. Lifetime должно быть равным 3600
  7. Жмём Save, затем Apple Changes

 

Конфигурирование Pre-Shared Key

  1. Переходим во вкладку Pre-Shared Keys и жмём на кнопку с плюсиком
  2. Обратите внимание на выделенную строку:

38

PSK for any user can be set by using an identifier of any

Это значит что для задания одинакового Pre-Shared Key для всех пользователей следует в поле Identifier указать слово any, указываем это

  1. Secret type должен остаться PSK
  2. Pre-Shared Key установите случайное значение, например: abcdefghi (укажите что-нибудь посложнее, так как это я назначил для удобства)
  3. Жмём Save, затем Apple Changes

 

Настройка правил фаервола

Правила IPsec

  1. Идём Firewall -> Rules -> вкладка IPsec
  2. Нажмите кнопку с плюсиком для добавления правила, устанавливаем следующие параметры:
  3. Action -> Pass
  4. Interface -> IPsec
  5. TCP/IP Version-> IPv4
  6. Protocol-> UDP
  7. Source -> any
  8. Destination -> WAN Address
  9. Destination port range -> from: L2TP (1701) to: L2TP (1701)
  10. В Description напишите что-нибудь вроде Allow L2TP Clients
  11. Жмём Save, затем Apple Changes

Правила L2TP

  1. Идём во вкладку L2TP VPN
  2. Нажмите кнопку с плюсиком для добавления правила, устанавливаем следующие параметры:
  3. Action -> Pass
  4. Interface -> L2TP VPN
  5. TCP/IP Version -> IPv4
  6. Protocol-> any
  7. Source -> any
  8. Destination -> any
  9. Жмём Save, затем Apple Changes

Правила Floating

  1. Идём во вкладку Floating
  2. Нажмите кнопку с плюсиком для добавления правила, устанавливаем следующие параметры:
  3. Action -> Pass
  4. В строке Quick ставим галочку Apply the action immediately on match
  5. Interface -> L2TP VPN
  6. Direction -> Out
  7. TCP/IP Version -> IPv4
  8. Protocol-> TCP
  9. Source -> LAN net
  10. Destination -> Network -> 192.168.33.0/24 (сеть которую указывали при настройке L2TP)
  11. TCP Flags -> Any flags
  12. State Type -> Sloppy State
  13. Жмём Save, затем Apple Changes

Правила WAN

  1. Идём во вкладку WAN
  2. Нажмите кнопку с плюсиком для добавления правила, устанавливаем следующие параметры:
  3. Action -> Pass
  4. Interface -> WAN
  5. TCP/IP Version -> IPv4
  6. Protocol-> UDP
  7. Source -> any (либо тот внешний адрес клиента с которого будет производиться подключение к нашему pfSense через интернет)
  8. Destination -> Single host or alias -> 192.168.0.50/31 (WAN-адрес нашего pfSense)
  9. Destination port range -> from: 1701 to: 1701
  10. Жмём Save, затем Apple Changes


 

Настройка L2TP-соединения для клиентов в Windows 7

Ну вот, с pfSense вроде закончили, теперь настраиваем соединение для Windows 7

  1. Открываем Центр управления сетями и общим доступом
  2. Жмём Настройка нового подключения или сети
  3. Подключение к рабочему месту (если спросит использовать ли имеющееся подключение, жмите Нет, создать новое подключение)
  4. Использовать моё подключение к интернету (VPN)
  5. В строке Интернете-адрес укажите внешний адрес нашего pfSense (в моём случае 192.168.0.50)
  6. Имя местоназначения придумайте сами
  7. Данные пользователя у нас есть, мы их настраивали в разделе Добавление L2TP пользователей. Вводим их: логин — qwert; пароль — qwerty
  8. Ставьте флажок Запомнить пароль, Домен оставьте пустым.
  9. Жмите кнопку Подключить
  10. Далее будет сбой подключения, ошибка 800 или чёта типа того — это нормально. Жмите Все равно создать это подключение.
  11. Теперь идем в Центром управления сетями и общим доступом -> Изменение параметров адаптера. Находим только что созданное подключение и жмём Свойства
  12. Вкладка Безопасность. Тип VPN меняем на L2TP IPsec VPN. Далее жмём кнопку Дополнительные параметры. Устанавливаем переключатель в положение Для проверки подлинности использовать предварительный ключ. В значении указываем тот Pre-Shared Key который мы придумывали ранее (в моём случае abcdefghi). Жмем OK

39

Вот и всё, можно подключаться. Подключение должно быть успешным.

 

Траблуштинг (по-нашему: устранение проблем)

1. Не устанавливается соединение с использованием WAN Miniport

Если у Вас не устанавливается подключение и зависает это окно:

47

то попробуйте отключить фаервол на клиентской машине, скорее всего он не даёт установить это соединение, а если у Вас на компьютере установлен Е*учий Dr.WEB со включенным брандмауэром, то будьте уверены — это он во всём виноват.

 

2. L2TP Исчез интернет

Если у Вас после подключения по L2TP кудато исчез интернет, то это решение для Вас. Исправляется это не трудно:

Идём в свойства созданного соединения -> вкладка Сеть. Убираем флажок напротив IPv6,жмём на свойства IPv4 -> кнопка Дополнительно… . Снимаем флажок Использовать основной шлюз удаленной сети. Жмём ОК.

 40

Проблемы с пропажей интернета должны решиться.

 

3. Не пингуются ресурсы сети через L2TP

Допустим у Вы с рабочего компьютера сети предприятия (смотри выше), подключённому к WAN-порту pfSense с помощью L2TP-соединения, пытаетесь пропинговать внутреннюю сеть pfSense (к примеру LAN-порт pfSense 192.168.2.253, или клиента 192.168.2.3) и у Вас ничего не получается.

Попробуйте выполнить команду tracert 192.168.2.253:

48

Это значит что ваш компьютер в поисках IP-адреса 192.168.2.253 спросил у DIR-300, а он, не найдя такой адрес, начал спрашивать у провайдера интернета. Толку от этого не будет.

Нужно завернуть трафик на IP-адрес сервера pfSense 192.168.33.252. Делается это так:

  • Устанавливайте L2TP-соединение
  • Запускайте командную строку от имени администратора
  • Выполняйте команду  Внимание, пишите руками, копипаст у меня почему-то не сработал! route -p add 192.168.2.0 mask 255.255.255.0 192.168.33.252

Список всех перенаправлений можно отобразить командой route print

Удалить созданное нами правило можно командой route delete 192.168.2.0

Подробнее почитайте здесь

Таким образом мы добавили перенаправление запросов к сети 192.168.2.0/24 к шлюзу 192.168.33.252. Если команда сработала то результат выполнения tracert 192.168.2.253 должен измениться.

49

Не знаю с чем связано, но добавление этого правила маршрутизации у меня работало через раз. Я так и не разобрался после какой комбинации действий и плясок с бубном у меня пошёл пинг от 192.168.0.191 до 192.168.2.3 через pfSense и L2TP. Но менял я следующие параметры:

  • Включал/выключал Брандмауэр Доктора Веба на клинете 192.168.2.3
  • Включал/выключал Брандмауэр Доктора Веба на рабочем компьютере 192.168.0.191
  • Устанавливал L2TP-соединение при различном включеном/выключеном Брандмауэре Доктора Веба
  • Делал route add … и/или route -p add … при установленном/отключеном L2TP-соединении
  • Постоянно делал tracert 192.168.2.253,   tracert 192.168.2.3 для отслеживания пути поиска,   ping 192.168.2.253,   ping 192.168.2.3 для проверки доступности

В итоге я добился:

  • прохождения пингов во всех направлениях
  • доступности WEB-интерфейса pfSense с рабочего компьютера сети предприятия (т.е. c IP 192.168.0.191)
  • доступности содержимого расшаренных папок как в одной, так и в другой сети
  • доступности интернета на обоих компьютерах (192.168.2.3 и 192.168.0.191)
  • при этом брандмауэр доктора веба на обоих компьютерах оставался включенным и настраивался так

 

Теперь доступ к ресурсам должен проходить нормально.

Если доступ появился только к LAN-порту pfSense (192.168.2.253), но нет доступа к клиенту, то посмотрите пингуется ли в принципе клиент из сети. Я так целый день потратил на поиски проблемы. И фаервол отключил и pfSense мучил и интернет перекапывал, а совсем забыл, что на клиенте у меня стоит Доктор Веб!!! Думаю дальше не стоит объяснять…

 

Содержание

(Просмотрено 58 887 раз, 1 раз за сегодня)

4. Настройка L2TP в pfSense: 22 комментария

  1. Здравствуйте, я установил PFsense как было написано, но когда я пробую подключиться с Windows клиента, выдает error 809.Пробовал также устранить проблему в regedit,но ничего не изменилось. Клиент находится за NAT-ом.

    1. Так с ходу и не скажешь. Я бы для чистоты эксперимента взял отдельный комп, поставил туда свежую семерку без антивируса, отключил фаервол и коннектился к pfSense напрямую через wan интерфейс. Так я бы установил где проблема в pfSense или в клиенте. Думаю что подключение в этом случае будет успешно. Затем можно этот же компьютер поместить за nat и попробовать снова (посмотреть какие порты используются и какие блокируются). Далее последовательно включать фаервол и ставить антивирус

  2. Я примерно так и сделал.Но когда я поменял тип интерфейса на NAT,клиентский windows стал не подключаться,и появилась следующая ошибка` Error 809

    The network connection between your computer and the VPN server could not be established because the remote server is not responding.This could be because one of the network devices (e.g. firewalls,NAT,routers,etc) between your computer and the remote server is not configured to allow VPN connections.

    1. Думаю что не работает как раз по этой причине: one of the network devices (e.g. firewalls,NAT,routers,etc) between your computer and the remote server is not configured to allow VPN connections. Поэтому надо пилить Нат: открывать или даже пробрасывать порты. Какие порты навскидку не скажу, но Вы можете узнать какие порты используются при удачном подключении напрямую к wan-порту. А может быть все гораздо проще и в настройках есть галочка типа allow VPN connections

  3. Здравствуйте, если не трудно в pfsense в меню Status — ipsec, когда подключаются клиенты из windows туннель отображается, что поднят? Спасибо.

  4. Всем привет.
    3) Не пингуются ресурсы сети через L2TP
    Kna, а Как заставить pfsense выдавать маршруты автоматом, без добавление ручками? Это очень важно для меня.
    на линуксе это сделать можно, а на pfsense ни как не могу разобраться.

    1. Привет! Как вот именно «выдавать маршруты автоматом» я не знаю наверно pfsense должен каким-то образом отсылать и выполнять скрипт добавляющий статический маршрут у клиента, не думаю что это возможно хотябы из соображения политики безопасности на клиентах. Но можно настроить маршрутизацию либо на вашем интернет-шлюзе на котором ваши клиенты по-умолчанию ищут интернет (это в случае если в предыдущем пункте вы убрали флажок «Использовать основной шлюз удаленной сети») для того чтобы он разворачивал нужный трафик на pfsense. Либо настраивать на pfsense (если не уберали) чтобы он разворачивал часть трафика на ваш интернет шлюз по умолчанию (для того чтобы у клиентов работал интернет)

  5. Все по пунктам. Коннект есть. Маршрут добавил. Пинга нет. В трассе только звезды. Куда еще глянуть?

      1. Ok, разберусь. Кстати, в чем отличие «LAN net» от «LAN adrress» в случае указания источника или назначения?

  6. Добрый день! Надеюсь, что тема жива и Вы сможете мне помочь. В чем суть… Есть сервер 1с. Он находится в локальной сети под управлением pfsense. Нужно настроить VPN, чтобы любой пользователь имея RDP логин и пароль мог подключиться из любой сети к базам 1с. 1c на платформе Windows Server 2008. Стандартная роль VPN сервера не дает результата. Зная IP Pfsense не могу его пропинговать. При попытке создать стандартное VPN подключение с другой сети — просит логин и пароль, затем ничего не происходит. Попытки разобраться в Pfsense провалились… Если есть какие-то мысли — буду очень признателен.

    1. Добрый!
      — В первую очередь стоит отключить на компьютере клинета антивирус и фаерволл (они частенько мешаются при трафике из разных подсетей).
      — Когда наладите связь, потом уже можно и с ними разобраться. Второе, винда плохо поддерживает l2tp (в реестре нужно править некоторые ключи, не помню сейчас какие, у оператора МТС где-то была инструкция).
      — Я рекомендую не делать l2tp, а сделать OpenVPN сервер. Я, к сожалению, не писал на это тему, но в интернете много русскоязычных статей, можете погуглить. Он и настраивается легче, и работает стабильнее и на клиенте ставится в пару кликов (pfsense умеет генерировать файл установщика). У меня он и на компах и на телефоне настроен. Но когда будете настраивать, не забывайте про 1 пункт, а то можно надолго зависнуть не понимая на чьей стороне проблемы

  7. Добрый день. Буду благодарен если Вы сможете мне помочь. Pfsense установлен и работает, клиенты подключатся (но работа была до этого момента в домашнем режиме, каждый клиент работал со своего IP), но есть проблема при работе из офисов, то-есть с одного IP может подключиться только один клиент (первый подключился — второй не может,»ругается на использованные туннели», первый отключился — второй влетел), и так с разных офисов,в Pfsense не могу найти что вкл. или выкл. Если поможете — буду очень признателен.
    За ранее Вам спасибо.

    1. Хмм, у меня они так и работают. Трое из под одного ip. У каждого своя учетка в pfsense, свой сертификат и свой пароль. Даже не знаю почему у Вас так, по инструкции вроде всё как надо должно получиться

    2. Забыл что статья про l2tp! Советую вместо l2tp поднять openvpn, посмотрите пару комментов выше

  8. А если есть необходимость подключения больше 1 000 пользователей?! Как быть?

  9. А как сделать, чтобы сервер L2TP принимал на нескольких интерфейсах? А у меня 3 провайдера и надо чтобы он на 3-х принимал входящие вызовы. А в конфигурации указывается только один интерфейс.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *