Самовчитель з налаштування серверів vpn на ubuntu. Найпростіший спосіб настроїти Ubuntu як VPN-сервер. Налаштування центру сертифікації

If ($answer_counter == 1): ?> endif; ?>

ОБНОВЛЕННЯ. Що стосується Sierra, MacOS більше не підтримує PPTP vpn. Ця відповідь недійсна для клієнтів macOS Sierra та інших.

PPTP через PoPToP легко

  1. apt-get install pptpd
  2. відредагуйте /etc/pptpd.conf і встановіть для параметра remoteip значення у мережі, яке НЕ обслуговується вашим сервером DHCP.
  3. відредагуйте /etc/ppp/chap-secrets та додайте ім'я користувача та пароль

наприклад.

Vpnuser pptpd vpnpassword *

Це все, що потрібно для встановлення pptp. Тепер протестуйте його зі своїм клієнтом OS X.

Відповідь дано Jay _silly_evarlast_ Wren 06.04.2012 в 23:24

WARNING: PPTP IS AN INSECURE PROTOCOL! Не тільки ви маєте натискання breached, але це промовляє вашу authentication в clear text і easily intercepted. Це має бути вірогідно, що сума часу, що вимагається до brute-force. Слідкуйте за допомогою OpenVPN або іншого VPN архітектури instead of PPTP!

Відповідь дано Qasim 10.06.2013 в 16:09

Інші відповіді на цю тему були лише частковими відповідями у моєму випадку. Ось що спрацювало для мене на Ubuntu 12.04.3

Sudo apt-get install pptpd

Додати в /etc/pptpd.conf наступне: (IP-адреса не має значення, це тільки IP-адреса для вашого інтерфейсу ppp0.)

Localip 10.0.0.1 remoteip 10.0.0.100-200

Додати DNS-сервери в / etc / ppp / pptpd-options

Ms-dns 8.8.8.8 ms-dns 8.8.4.4

Включити переадресацію IP-адрес

sudo vim /etc/sysctl.conf

Розкоментувати цей рядок

Sudo sysctl -p /etc/sysctl.conf

Змініть / etc / ppp / chap-secrets, додайте користувача VPN у цьому форматі:

# Secrets for authentication using CHAP # client server secret IP address username pptpd supersecretpassword *

Перезапустити PPTP

Service pptpd restart

Запустіть ifconfig і знайдіть свій інтерфейс за промовчанням, у моєму випадку це був br0(я змінив його, щоб дозволити віртуальним машинам на моїй фізичній машині обмінюватися інтерфейсом. Ймовірно, це буде en0)

Резервне копіювання iptables

Iptables-save > ~/iptables.save

Тепер зробіть, щоб зміни iptables використовували свій стандартний інтерфейс, як показано ifconfig.

Налаштування VPN-з'єднання в Debian

Тут наведено приклад налаштування VPN-підключення для Debian Linux через командний рядок. Але не менш корисна вона буде власникам дистрибутивів, заснованих на Debian, наприклад Ubuntu.

  1. Для початку Вам знадобиться пакет pptp:
    # apt-get install pptp-linux
  2. Редагуємо (або створюємо, якщо немає) файл /etc/ppp/options.pptp. У ньому мають бути такі параметри:
    lock
    noauth
    nobsdcomp
    nodeflate
  3. Далі вам необхідно додати файл /etc/ppp/chap-secrets рядок виду:
    "ім'я користувача" PPTP "пароль" *
  4. Створіть файл /etc/ppp/peers/XXX (XXX – назва мережі). До нього впишіть таке:
    pty "pptp vpn.XXX.ru --nolaunchpppd"
    name “ім'я користувача”
    remotename PPTP
    file /etc/ppp/options.pptp
    defaultroute
    "ім'я користувача" та "пароль" необхідно замінити Вашим ім'ям користувача та паролем без лапок, так, як зазначено у Вашому договорі. vpn.XXX.ru - адреса vpn-сервера - дізнаєтесь у провайдера.
  5. Для автоматичної заміни дефолтного роуту створюємо файл /etc/ppp/ip-up.d/routes-up:
    # su touch /etc/ppp/ip-up.d/routes-up
    # su chown a+x /etc/ppp/ip-up.d/routes-up

    І вписуємо в нього таке:
    #!/bin/sh
    /sbin/route del default
    /sbin/route add default dev ppp0
    Створюємо файл /etc/ppp/ip-down.d/routes-down:
    # su touch /etc/ppp/ip-down.d/routes-down
    # su chown a+x /etc/ppp/ip-down.d/routes-down
    І вписуємо в нього таке:
    #!/bin/sh
    /sbin/route del default
    /sbin/route add default dev eth0

  6. Тепер можете підключатись командою:
    # su pon XXX
    Для детального виведення інформації про процес підключення наберіть:
    # su pon XXX debug dump logfd 2 nodetach
    Перевірити чи підключені ви до VPN можна набравши команду ifconfig. Якщо у її виведенні є секція ppp0, то ви підключені та можете починати роботу з Інтернетом. Щоб вимкнути, натисніть ctrl+c або наберіть:
    # su poff XXX
  7. Для того, щоб ваш комп'ютер отримував роути від нашого сервера, у файлі /etc/dhcp3/dhclient.conf повинні бути такі рядки:
    #
    option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;
    option ms-classless-static-routes code 249 = array of unsigned integer 8;
    #
    request subnet-mask, broadcast-address, time-offset, routers, domain-name, domain-name-servers, domain-search, host-name, netbios-name-servers, netbios-scope, interface-mtu, static-route , rfc3442-classless-static-routes, ms-classless-static-routes;
    #
  8. Для автоматичного підключення до інтернету під час завантаження операційної системи створимо файл/etc/init.d/XXX
    # touch /etc/init.d/XXX
    # su chown a+x /etc/init.d/XXX
    # su ln -s /etc/init.d/XXX /etc/rc2.d/S99XXX
    Впишемо його таке:
    #!/bin/sh
    su /usr/bin/pon XXX

У всіх командах XXX це назва вашої мережі.

Справжня приватна віртуальна мережа або Virtual Private Network (VPN) – це зашифрований з'єднаний тунель між двома мережами, що з'єднує дві довірені точки. Це не веб-протокол HTTPS, який уважає довіреними всіх клієнтів. До VPN можуть підключитися лише клієнти, які мають спеціальні ключі доступу.

Поняття VPN у наші дні стало дуже розтягнутим після появи приватних віртуальних мереж, які довіряють всім і поширення HTTPS. Багато мереж VPN представляють собою комерційні рішення з мінімальною кількістю налаштувань для забезпечення віддаленого доступу співробітників. Але не всі довіряють цим рішенням. Приватна віртуальна мережа з'єднує дві мережі в одну, наприклад, мережу офісу та домашню мережу працівника. Сервер VPN необхідний для того, щоб сервер та клієнт могли пройти аутентифікацію один з одним.

Налаштування автентифікації сервера та клієнта потребує багато роботи, тому комерційні рішення з мінімумом налаштувань програють у цьому плані. Але насправді не так вже й важко встановити сервер OpenVPN. Вам знадобиться два вузли в різних мережах, щоб організувати тестове оточення, наприклад, можна використовувати кілька віртуальних машин або реальні сервери. Як ви вже зрозуміли, у цій статті буде розглянуто налаштування OpenVPN в Ubuntu для створення повноцінної приватної віртуальної мережі.

На обох машинах має бути встановлений OpenVPN, це досить популярна програма, тому ви можете встановити її з офіційних репозиторіїв. Також нам знадобиться Easy-RSA для роботи із секретними ключами. Для встановлення програм в Ubuntu використовуйте таку команду:

sudo apt install openvpn easy-rsa

Обидва пакети мають бути встановлені як на сервері, і на клієнті. Вони потрібні для налаштування програми. Перший етап статті встановлення та налаштування openvpn завершено.

Налаштування центру сертифікації

Перше, що потрібно зробити, це створити правильну інфраструктуру для відкритих ключів на сервері. Сервером ми вважаємо ту машину, до якої підключатимуться користувачі. Власний центр сертифікації дає кілька переваг, у вас буде власний орган сертифікації, який спростить поширення ключів та керування ними. Наприклад, можна відкликати сертифікати клієнта на сервері. Також тепер не потрібно зберігати всі клієнтські сертифікати, центру сертифікації достатньо знати, що сертифікат підписаний CA. Крім складної системи ключів, ви можете використовувати статичні ключі, якщо потрібно надати доступ лише кільком користувачам.

Зверніть увагу, що всі секретні ключі повинні бути в надійному місці. У OpenVPN відкритий ключ називається сертифікатом і має розширення .crt, а закритий ключ так і називається ключем, його розширення – .key.

Спершу створіть папку для зберігання сертифікатів Easy-RSA. Фактично, конфігурація OpenVPN виконується вручну, так що папку можна розмістити будь-де:

sudo mkdir /etc/openvpn/easy-rsa

Потім скопіюємо в цю папку всі необхідні скрипти easy-rsa:

cd /etc/openvpn/easy-rsa/

sudo -i
# source ./vars
# ./clear-all
# ./build-ca

Першою командною ми перемикаємося в консоль від імені суперкористувача, другою завантажуємо змінні оточення із файлу./vars. Команда./clear-all створює папку keys, якщо її немає і очищає її вміст. І остання команда ініціалізує наш центр сертифікації. Тепер у папці.keys з'явилися всі необхідні ключі:

Налаштування сертифікатів клієнта

sudo cp -R /usr/share/easy-rsa /etc/openvpn/

Тепер нам потрібно скопіювати сертифікат, файл із розширенням.crt у папку /etc/openvpn на всіх клієнтах. Наприклад, завантажити цей файл для нашого клієнта за допомогою scp:

sudo scp користувач@хост:/etc/openvpn/easy-rsa/keys/ca.crt /etc/openvpn/easy-rsa/keys

Тільки тепер можна створити свій секретний ключ на основі сертифіката CA:

cd /etc/openvpn/easy-rsa/

sudo -i
# source ./vars
# build-req Sergiy

Зауважте, що ca.crt повинен лежати в папці з ключами, інакше нічого не спрацює. Тепер утиліта створить ключ, на основі якого ви зможете підключитися до OpenVPN серверу, але вам ще залишилося підписати його на сервері. Надішліть отриманий.csr файл на сервер за допомогою того ж самого scp:

scp /etc/openvpn/easy-rsa/keys/Sergiy.csr користувач@хост:~/

Потім на сервері в папці /etc/openvpn/easy-rsa потрібно виконати команду підпису сертифіката:

./sign-req ~/Sergiy

Підпис сертифіката потрібно підтвердити. Потім програма повідомить, що він був підписаний і доданий до бази даних. У папці із сертифікатом csr з'явиться файл.crt, який потрібно повернути назад на клієнтську машину:

sudo scp плеєр@хост:/home/Sergiy.crt /etc/openvpn/easy-rsa/keys

Тільки після цього сервер та клієнт мають усі необхідні ключі для підключення та встановлення зв'язку. Залишилося ще кілька налаштувань. Якщо ви плануєте використовувати шифрування TLS, необхідно створити на сервері набір даних Діффі-Хафмана, для цього використовуйте команду:

Налаштування OpenVPN

Тепер налаштування сервера OpenVPN. За промовчанням у папці конфігураційних файлів OpenVPN нічого немає. Їх потрібно створити самостійно залежно від того, що планується настроювати сервер чи клієнт. Потрібний конфігураційний файл OpenVPN можна знайти за адресою /usr/share/doc/openvpn/examples/sample-config-files/. Спочатку створимо конфігураційний файл для сервера:

zcat /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz | sudo tee /etc/openvpn/server.conf

Тут вам потрібно налаштувати декілька параметрів:

portі proto- порт та протокол, за якими працюватиме програма;

port 1194
proto udp

Усі створені ключі потрібно прописати у конфігураційному файлі. Наші ключі зберігаються за адресою /etc/openvpn/easy-rsa/keys:


cert /etc/openvpn/easy-rsa/keys/ca.crt
key /etc/openvpn/easy-rsa/keys/ca.key
dh /etc/openvpn/easy-rsa/keys/dh.pem

Налаштовуємо діапазон адрес для віртуальної мережі, наш сервер буде доступний по першому з них - 10.8.0.1:

server 10.8.0.0 255.255.255.0

Після завершення налаштування збережіть зміни у файлі, ви можете або вставити всю конфігурацію собі або відредагувати файл з прикладом. Готові робочі налаштування сервера:

port 1194
proto udp
comp-lzo
dev tun
ca /etc/openvpn/easy-rsa/2.0/keys/ca.crt
cert /etc/openvpn/easy-rsa/2.0/keys/ca.crt
dh /etc/openvpn/easy-rsa/2.0/keys/dh2048.pem
topology subnet
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt

sudo cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn/client.conf

Ви можете створити кілька конфігураційних файлів клієнта для підключення до різних серверів. Відкрийте конфігураційний файл і змініть такі параметри:

remote- це ваша адреса сервера OpenVPN, адреса та порт повинні збігатися з налаштованими на сервері, наприклад:

remote 194.67.215.125 1194

ca- ключ, який ви отримали від центру сертифікації, ми розташували в папці /etc/openvpn/.

cert і key- це відкритий та секретний ключі клієнта, за допомогою них ви і підключатиметеся до сервера. Як ви пам'ятаєте, ми зберегли їх у папці /etc/openvpn/easy-rsa/keys/.

ca /etc/openvpn/easy-rsa/keys/ca.crt

Інші налаштування можна залишити як є. Ось файл налаштування повністю, який ви можете скопіювати:

client
dev tun
proto udp
remote 194.67.215.125 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca /etc/openvpn/easy-rsa/keys/ca.crt
cert /etc/openvpn/easy-rsa/keys/Sergiy.crt
key /etc/openvpn/easy-rsa/keys/Sergiy.key
tls-auth ta.key 1
comp-lzo
verb 3

Збережіть установки, тепер клієнт готовий до підключення. Зверніть увагу, що конфігураційні файли повинні максимально збігатися, відсутність певних опцій в одному файлі може призвести до помилок. Це не означає, що файли будуть ідентичні, але основні параметри openvpn мають бути однаковими. Вам залишилося запустити OpenVPN на цій машині, використовуючи цей конфігураційний файл:

openvpn /etc/openvpn/client.conf

Готово, тепер все працює, якщо ви виконаєте ifconfig, то побачите, що був доданий інтерфейс tun0:

Також ви можете спробувати виконати ping-адреси 10.8.0.1, саме цю адресу ми налаштували для нашого сервера OpenVPN, пакети ping будуть нормально надсилатися. Якщо пакети не йдуть, або ще щось не працює, зверніть увагу на виведення обох програм, можливо, виникли будь-які помилки або попередження, також переконайтеся, що брандмауер сервера дозволяє доступ ззовні udp для порту 1194. Ще можна запустити сервер або клієнт, налаштувавши в конфізі рівень подробиці максимум verb 9. Дуже часто це допомагає зрозуміти чому щось не працює. Але ви ще не можете спрямовувати трафік через тунель. Для цього потрібно дозволити форвардинг та додати декілька правил iptables. Спочатку дозволяємо транзит пакетів на сервері:

sysctl -w net.ipv4.ip_forward=1

Потім додайте такі правила. Дозволяємо всім підключатися до нашого сервера:

iptables -A INPUT -p udp --dport 1194-j ACCEPT

Дозволяємо користувачам OpenVPN доступ до інтернету:

iptables -I FORWARD -i tun0 -o eth0 -j ACCEPT
# iptables -I FORWARD -i eth0 -o tun0 -j ACCEPT
# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Висновки

У цій статті ми розглянули, як виконується установка та налаштування OpenVPN Ubuntu, а також як налаштувати openvpn для роботи з автентифікацією за ключом. Організація приватних віртуальних мереж може бути дуже корисною не тільки в організаціях, але й, скажімо, для обміну даними між двома вашими комп'ютерами або для підвищення безпеки в мережі.

Інструкція

Перевірте, чи існує підтримка PPP в ядрі вашої операційної системи. Найпростіше це зробити, переглянувши значення опцій із префіксом CONFIG_PPP у файлі поточної конфігурації ядра. Зазвичай він встановлюється в каталог /boot і має ім'я, що починається з config. Дізнайтеся ім'я файлу за допомогою команди
ls /boot
або
ls/boot | grep conf
Виведіть потрібні рядки командою cat, здійснивши фільтрацію за допомогою grep. Наприклад:
cat /boot/config-2.6.30-std-def-alt15 | grep PPP
Проаналізуйте рядки, які містять опції CONFIG_PPP, CONFIG_PPP_ASYNC, CONFIG_PPP_SYNC_TTY. Якщо немає символу #, підтримка відповідного функціонала є (при значеннях m - як зовнішнього модуля, при значеннях y - включено ядро).

Перевірте, чи інстальовано в системі клієнтське програмне забезпечення для встановлення VPN-з'єднань. Потрібний пакет зазвичай носить ім'я, що починається з pptp. Використовуйте apt-cache з опцією search для пошуку потрібного пакета в доступних репозиторіях та rpm з опцією -qa для того, щоб перевірити, чи пакет встановлено. При роботі в графічному середовищі може мати сенс скористатися такими програмами, як synaptic.

Виконайте інсталяцію недостатнього програмного забезпечення. Використовуйте відповідні менеджери пакетів (apt-get, rpm у консолі, synaptic у графічному середовищі тощо). Якщо інсталяція пакета ppp з модулями ядра здійснена для підтримки відповідного протоколу, перезавантажте комп'ютер.

Спробуйте налаштувати VPN за допомогою конфігураційних скриптів, таких як pptp-command або pptpsetup. Часто вони входять до складу пакетів з клієнтським програмним забезпеченням для встановлення VPN-з'єднань. Для отримання довідки за параметрами командного рядка даних утиліт використовуйте їх запуск із опцією --help. Наприклад:
pptpsetup --help
Якщо конфігуруючі скрипти не були встановлені, перейдіть до наступного кроку для здійснення ручного налаштування VPN.

Створіть каталог / etc / ppp, а в ньому - файл з ім'ям chap-secrets. Відкрийте файл у текстовому редакторі. Додайте до нього рядок виду:
LOGIN SERVER PASSWORD *
Значення LOGIN та PASSWORD - ім'я користувача та пароль. Вони повинні надаватися постачальником послуг доступу до VPN. Замість SERVER вкажіть довільну назву з'єднання або *.

Створіть каталог /etc/ppp/peers. Створіть у ньому файл, що має ім'я, що співпадає зі значенням SERVER з попереднього кроку (або довільне ім'я, якщо було вказано значення *). Відредагуйте цей файл, додавши до нього інформацію:
pty "pptp SERVER --nolaunchpppd"
name LOGIN
ipparam SERVER
remotename SERVER
lock
noauth
nodeflate
nobsdcomp
Значення LOGIN і SERVER тут - ті ж, що й у кроці 5. На цьому налаштування VPN у Linux можна вважати закінченим.

Бажаєте мати безпечний та захищений доступ до Інтернету з вашого смартфона або ноутбука при підключенні до незахищеної мережі через WiFi готель чи кафе? Віртуальна приватна мережа (Virtual Private Network, VPN) дозволяє використовувати незахищені мережі таким чином, якби ви працювали в приватній мережі. Весь ваш трафік у цьому випадку проходить через сервер VPN.

У комбінації з використанням HTTPS-з'єднання описані далі налаштування дозволять вам убезпечити свою приватну інформацію, наприклад, логіни та паролі, а також ваші покупки. Більше того, ви зможете обходити регіональні обмеження та цензуру, а також приховувати своє місцезнаходження та незашифрований HTTP-трафік від незахищеної мережі.

Надіслати профіль з комп'ютера на телефон можна, підключивши Android пристрій до комп'ютера через USB і скопіювавши файл. Ви також можете перемістити файл профілю за допомогою SD-карти, скопіювавши профіль на карту і вставивши карту в Android пристрій.

Запустіть програму OpenVPN і натисніть меню для імпорту профілю.

З'єднання

Щоб встановити з'єднання, натисніть кнопку Connect. Вам буде поставлено запитання, чи довіряєте ви додатку OpenVPN. Дайте відповідь OKдля встановлення з'єднання. Щоб зупинити з'єднання, зайдіть у OpenVPN і виберіть Disconnect.

Крок 13. Тестування VPN з'єднання

Після того, як все встановлено та налаштовано, переконаємось, що все працює правильно. Без встановлення з'єднання з VPN відкрийте браузер і зайдіть на DNSLeakTest.

Цей сайт поверне IP адресу, призначену вам вашим Інтернет-провайдером. Для того, щоб перевірити, які сервери DNS використовуються, натисніть на Extended Test.

Тепер встановіть з'єднання, використовуючи ваш VPN клієнт та оновіть сторінку у браузері. IP адреса, що видається вам, повинна бути зовсім іншою. Тепер для всіх в Інтернеті ви використовуєте цю нову IP-адресу. Натисніть Extended Testще раз, щоб перевірити налаштування DNS і переконайтеся, що тепер ви використовуєте DNS сервера вашого VPN.

Крок 14. Відгук клієнтських сертифікатів

Час від часу вам може знадобитися відкликати клієнтський сертифікат для запобігання доступу до сервера VPN&

Для цього зайдіть у вашу директорію центру сертифікації та введіть команди:

  • cd ~/openvpn-ca
  • source vars
  • ./revoke-full client3

Виведення результатів роботи цієї команди закінчуватиметься помилкою 23. Це нормально. В результаті роботи буде створено файл crl.pem у директорії keys з необхідною для відкликання сертифіката інформацією.

Перемістіть цей файл у каталог /etc/openvpn:

  • sudo cp ~/openvpn-ca/keys/crl.pem /etc/openvpn
  • sudo nano /etc/openvpn/server.conf

Додайте до кінця файлу рядок crl-verify . Сервер OpenVPN перевірятиме список відкликаних сертифікатів щоразу, коли хтось встановлює з'єднання з сервером.

/etc/openvpn/server.conf

Crl-verify crl.pem

Збережіть та закрийте файл.

Перезапустіть OpenVPN для завершення процесу відкликання сертифіката:

Тепер клієнт не зможе встановлювати з'єднання із сервером OpenVPN, використовуючи старий сертифікат.

Щоб відкликати додаткові сертифікати, виконайте такі кроки:

    Згенеруйте новий список відкликаних сертифікатів, використовуючи команду source vars у директорії ~/openvpn-ca і виконуючи команду revoke-full з ім'ям клієнта.

    Скопіюйте новий список відкликаних сертифікатів у директорію /etc/openvpn, перезаписуючи тим самим старий список.

    Перезапустіть сервіс OpenVPN.

Ця процедура може бути використана для відкликання будь-яких раніше створених сертифікатів.

Висновок

Вітаємо! Тепер ви можете безпечно виходити в Інтернет, весь ваш трафік захищений від прослуховування цензорів та зловмисників.

Для конфігурації додаткових клієнтів повторіть кроки 6 і 11-13 для кожного нового пристрою. Для відкликання доступу того чи іншого клієнта використовуйте крок 14 .