VPN сервер Ubuntu



Іноді потрібно отримати віддалений доступ до мережі підприємства, створити тунель між серверами або надати доступ до Інтернету доброму сусідові якого відключили від Мережі через заборгованість А, може бути, - просто мати можливість отримати доступ до своєї мережі з будь-якого куточка світу, де є Інтернет.

Для цих цілей можна використовувати віртуальні приватні мережі (Virtual Private Network - VPN). В нашому випадку, це буде найпоширеніший протокол у країнах СНД, а саме - PPTP (Point-to-Point Tunneling Protocol). Багато кабельні провайдери інтернету використовують його для надання послуг доступу до Всесвітньої мережі.

Підняти свій сервер на Linux Ubuntu Server LTS не так вже важко. Для цього нам знадобиться доступ до Інтернету й реальний IP (якщо потрібно буде підключатися з Інтернету).

Заходимо на сервер, використовуючи обліковий запис root і встановлюємо необхідні пакети командою apt-get install pptpd Нам запропонують також встановити пакет bcrelay, він дозволяє дублювати широкомовні пакети, прийняті на вхідному інтерфейсі на віртуальні (PPP тунелі клієнтів).

Установка vpn сервера

Натискаємо enter і наш сервер встановлений. Приступимо до конфігурації. Відкриємо файл nano /etс/pptpd.conf і в самому низу побачимо наступні рядки

#localip 192.168.0.1
#remoteip 192.168.0.234-238,192.168.0.245
# or
#localip 192.168.0.234-238,192.168.0.245
#remoteip 192.168.1.234-238,192.168.1.245

Це налаштування IP адрес клієнтів. Раскомментируем перші два рядки (видалимо символ"#") і трохи підправимо їх.

Рядок localip 192.168.0.1 означає, що у нашого VPN сервера буде IP 192.168.0.1 можна вказати наш IP в одній з безпосередньо підключених мереж. Наприклад, у мене в домашній мережі у сервера IP адреса - 172.30.2.1 Щоб не навантажувати сервер ще й непотрібною маршрутизацією я використовував його.

Другий рядок - remoteip 192.168.0.234-238,192.168.0.245 вказує діапазон IP-адрес, які будуть присвоюватись клієнтам. Як видно з цих рядків, мережна адреса може бути будь-яким (у другій групі рядків). Для зручності ми виберемо його з того ж діапазону що і IP нашого сервера.

Я використовую вдома таку логіку видачі IP: 1й - роутер, 2-19 - комп'ютери, 20-49 - статичний VPN (при підключенні видається один і той же адреса), 50-100 - VPN клієнти, 101-199 - Wi-Fi клієнти, 200-254 - для різних пристроїв (наприклад IP роутера, телевізора тощо). Зазначимо такий діапазон remoteip 172.30.2.50-100 і збережемо конфігурацію.

Перейдемо в каталог cd /etс/ppp/ тут зберігаються всі файли налаштування pptpd (сервер) і pppd (клієнт).

Перейменуємо файл pptpd-options командою mv pptpd-options pptpd-options.bak і створимо його за новою nano pptpd-options Це зроблено для того, щоб легше було вставити кілька рядків в новий файл, ніж шукати параметри серед десятків рядків з коментарями. Вставимо в цей новий файл такий вміст:

name pptpd
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
#require-mppe-128
ms-dns 172.30.2.1
nodefaultroute
lock
nobsdcomp
auth
logfile /var/log/pptpd.log

Що все це значить? Давайте по порядку:

  • Використовувати ім'я pptpd для пошуку логінов в chap-secrets
  • При вказівці цієї опції pptpd не погодиться аутентифицироваться по протоколу refuse-pap, refuse-chap, refuse-mschap
  • Вимагати у партнера аутентифікації за допомогою MS-CHAPv2
  • Вимагати використання MPPE зі 128-бітним шифруванням require-mppe-128 тобто шифрувати трафік. Це збільшує навантаження на сервер і не всі "слабкі" пристрою його підтримують (Wi-Fi роутери тощо).
  • Запропонувати використовувати DNS сервер IP 172.30.2.1
  • nodefaultroute - не встановлювати шлюз за промовчанням від сервера до клієнта, в іншому випадку, весь трафік в Інтернет буде посланий через підключився клієнта, також Інтернет відключиться через втрати маршруту до провайдера.
  • Lock - блокувати сесії, тобто з одного логіна може бути тільки одне підключення
  • nobsdcomp - не стискати трафік. При включенні збільшує навантаження на наш сервер
  • auth - вимагати авторизації (логін та пароль)
  • logfile /var/log/pptpd.log - писати логи роботи в цей файл.

  • Зберігаємо і закриваємо цей конфігураційний файл.

    Тепер потрібно додати користувачів, які будуть підключатися до нашого сервера. Відкриємо файл nano chap-secrets (він використовується для зберігання облікових записів PPP).

    Для коректної роботи потрібно дотримуватися такий формат: колонки повинні бути розділені хоча б одним пропуском або табом (Tab), не допускається використання прогалин в іменах (інакше пробіл розглядається як наступна колонка), логін повинен починатися на букву. Наприклад:

    Добавление пользователей vpn сервера

    Перша колонка - це логін користувача, друга - ім'я сервісу. У нашому випадку це pptpd. Далі - пароль користувача, остання - IP адресу, який буде виданий. Причому, якщо стоїть * то IP-адреса буде виданий з раніше заданого діапазону автоматично. Також в якості IP можна вказати адресу, який може бути за межами діапазону.

    Перед тим, як використовувати сервер, потрібно перезапустити його. Для цього виконаємо /etс/init.d/pptpd restart якщо в конфігурації немає помилок, сервер буде запущений.

    Перезапуск сервера VPN

    rоot@CoolServ:/etс/ppp# /etс/init.d/pptpd restart
    Restarting PPTP:
    Stopping PPTP: pptpd.
    Starting PPTP Daemon: pptpd.

    Якщо ви використовуєте IPTables (фаєрвол) в нього треба додати такі рядки:

    # VPN - PPTPD
    iptables -A INPUT -p tcp -m tcp --dport 1723 -j ACCEPT
    iptables -A INPUT -p gre -m state --state RELATED,ESTABLISHED -j ACCEPT

    Для надання доступу до Інтернету VPN клієнтам через наш сервер потрібно дописати таке правило IPTables:

    iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

    де eth1 - інтерфейс в бік Інтернету.

    Для перевірки можна створити тестове підключення VPN з відключеним шифруванням (не обов'язковим) і використовуючи будь-який вказаний логін підключитися до сервера.

    Часті помилки при підключенні

    691 - перевірте логін і пароль (регістр і прогалини в ньому) 718 - проблема з налаштуванням фаєрволу на сервер або сервер не зміг запуститися 741 або 742 - потрібно відключити обов'язкове шифрування на стороні клієнта


    Щоб створити клієнтське підключення PPTP з Windows XP виконуємо наступні пункти: натискаємо "Пуск" - "Панель управління" - "Мережа та підключення до інтернету" - "Мережеві підключення".


    Создание нового vpn подключения

    Тиснемо на "Створення нового підключення" - це запустить "Майстер нових підключень".


    Мастер создания нового подключения

    Натискаємо "Далі". В наступному вікні вибираємо "Підключити до мережі на робочому місці".


    Подключиться к сети на рабочем месте

    Натискаємо кнопку "Далі" Тепер вибираємо "Підключення до віртуальної приватної мережі" і знову тиснемо "Далі"


    Подключение к виртуальной частной сети

    Тепер вписуємо назву підключення. Тут можна написати що завгодно, це буде просто назвою підключення, для прикладу ми напишемо "PPTP" (за типом з'єднання).


    Даем название нашему подключению

    Може з'явитися наступне питання «налаштовані Використовувати підключення до Інтернету?» (Якщо у Вас вже налаштоване підключення PPPoE), в ньому натискаємо "Не набирати номер".




    Якщо таке повідомлення не з'явилося, читаємо далі.

    Тепер у Вас попросять ввести адресу сервера, вказуємо IP вашого сервера або його ім'я.


    Указываем адрес VPN сервера

    Натискаємо далі. Ставимо за бажанням галочку "Створити ярлик на робочому столі" і натискаємо "Готово". Запускаємо тільки що створене VPN підключення:


    Окно удаленного подключения

    У вікні, показаному на фото вище, вибираємо "Властивості". З'явиться віконце, в якому вибираємо вкладку "Безпека". Знаходимо в ньому пункт "Потрібно шифрування даних" і прибираємо галочку. в іншому випадку ми не зможемо підключитися, будуть з'являтися помилки 741 або 742 - «потрібний тип шифрування не підтримується сервером».


    Включаем шифрование данных

    Після цього натискаємо кнопку «ОК», повертаємося в попереднє вікно, вводимо логін, пароль і підключаємося до нашого віддаленого сервера по захищеному VPN каналу !

    Залишити свій відгук або побажання Ви можете в самому низу сторінки, а зв'язатися з автором статті можна за цією адресою: