Виникла необхідність налаштувати vpn сервер для доступу до локальної мережі організації. Як vpn сервера я вважаю за краще використовувати openvp за її гнучкість, зручність і простоту настройки. Але в даному випадку мені був потрібен саме pptp сервер з можливістю автоматичної передачі маршрутів клієнтам. З останнім довелося трохи повозитися.
Сама по собі настройка pptp сервера на Debian дуже проста не представляє ніякої складності. Все налаштовується за 10 хвилин. Проблема тут в іншому. За замовчуванням, windows при підключенні по pptp використовує віддалений vpn сервер в якості шлюзу. За це відповідає галка в налаштуваннях vpn з'єднання «Використовувати основний шлюз в віддаленої мережі». При такій конфігурації весь трафік комп'ютера користувача йде через vpn сервер. Це дуже незручно, та й не потрібно. Цю настройку зазвичай відключають.
Коли її відключаєш, pptp клієнт нічого не знає про маршрути в віддалений офіс. Щоб туди потрапити, маршрути потрібно прописувати вручну, наприклад так:
Мережа віддаленого офісу.
Редагуємо файл з додатковими параметрами / etc / ppp / options:
Далі створюємо учеткі для підключення в файлі / etc / ppp / chap-secrets:
На цьому настройка безпосередньо pptp сервера закінчена. Їм можна користуватися, але маршрути користувачам передавати не будуть.
Налаштовуємо dhcp сервер для роздачі маршрутів
У мене на сервері вже був налаштований isc-dhcp-server, тому я використовував саме його. Але можна скористатися і dnsmasq. Я наведу приклад з dhcpd. Якщо у вас його ще немає, то встановлюйте командою:
Малюємо наступний конфиг /etc/dhcp/dhcpd.conf:
Я тут не розбирався, що і навіщо налаштоване саме так. Сервер налаштовував не я, він мені дістався у спадок. Мені потрібно було тільки грамотно налаштувати pptpd з роздачею маршрутів. Тому я не розписую все від і до, а просто ділюся робочим конфіг, який зараз у мене працює.
Підмережа 192.168.10.0 і 2 рядки з options перед нею це те, що я додав для роздачі маршрутів pptp клієнтам в vpn сіть.
Тепер створимо віртуальний інтерфейс, додавши в самий кінець конфігураційного файлу мережі:
Перезапускаємо мережу для застосування налаштувань:
По суті все готово. Запускаємо pptpd і dhcpd і перевіряємо.
У мене чомусь команда pptpd restart відпрацьовує з помилкою і не перезапускає демон. Доводиться запускати вручну:
Перевіряємо роботу клієнта windows. Список маршрутів до vpn підключення:
Ось приклад такої ж конфігурації для dnsmasq:
Знайшов, поки розбирався з питанням. У себе не перевіряв, так як вирішив все на одному dhcp сервері робити, який вже був.
висновок
Трохи складно реалізується функціонал, який доступний в openvpn з коробки без додаткових налаштувань. Я тому і не дуже люблю з pptp возитися, після openvp він мені здається не таким зручним. Але іноді доводиться і його налаштовувати. Наприклад, мікротікі, на жаль, так і не навчилися працювати з openvpn по udp, доводиться використовувати pptp. Та й вбудований в windows клієнт теж додає зручність.
Я трохи повозився, порозбирали, перш ніж у мене вийшло налаштувати робочий варіант. Ключовим моментом виявився віртуальний інтерфейс eth1: 1, який я створив для pptp підмережі. Без нього у мене не працювала передача маршруту.