Як встановити PPTP VPN на власному сервері Ubuntu?


16

Якщо припустити, що у мене є віртуальний приватний сервер від когось, наприклад, Linode , який працює під управлінням Ubuntu, як мені легко встановити VPTP VPTP , щоб клієнти Ubuntu могли підключитися до нього?

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

Відповіді:


28

Абсолютна мінімальна настройка сервера

Далі наведені абсолютні мінімальні інструкції, необхідні для отримання базового VPTP-сервера PPTP, що працює під Ubuntu. Потім клієнти зможуть VPN на сервер і направляти свій інтернет-трафік, щоб він проходив через сервер до Інтернету. Як завжди, зверніться до повної документації, щоб зрозуміти, що все робить.

Спочатку встановіть необхідне програмне забезпечення:

sudo apt-get install pptpd

По-друге, увімкніть ip_forwardядро для IPv4, коментуючи пов'язаний рядок у /etc/sysctl.conf :

sudo sed -i -r 's/^\s*#(net\.ipv4\.ip_forward=1.*)/\1/' /etc/sysctl.conf
# Reload the config file to have the change take effect immediately.
sudo -i sysctl -p

По-третє, увімкніть NAT (якщо він уже не включений), щоб користувачі приватної мережі VPN могли перенести свої пакети в Інтернет:

OUTIF=`/sbin/ip route show to exact 0/0 | sed -r 's/.*dev\s+(\S+).*/\1/'`
sudo -i iptables --table nat --append POSTROUTING --out-interface $OUTIF --jump MASQUERADE
# Enable NAT on boot from the rc.local script.
CMD="iptables --table nat --append POSTROUTING --out-interface $OUTIF --jump MASQUERADE"
sudo sed -i "\$i$CMD\n" /etc/rc.local

Примітка. Це керівництво передбачає, що у вас на сервері не налаштований брандмауер. Якщо у вас на сервері є брандмауер, наприклад UFW , перегляньте відповідну документацію .

По-четверте, для кожного користувача VPN створіть обліковий запис у файлі / etc / ppp / chap-secrets . Замініть $USERфактичне ім’я користувача, яке ви хочете використовувати для цього користувача VPN.

KEY=`head -c 20 /dev/urandom | sha1sum | nawk '{print $1}'`
echo "$USER pptpd $KEY *" | sudo tee -a /etc/ppp/chap-secrets

Нарешті, ви готові ...

Налаштуйте Клієнта

У аплеті Network Manager виберіть VPN ConnectionsConfigure VPN , а потім натисніть Add . На наступному екрані виберіть PPTP для типу VPN, потім натисніть кнопку Створити .

введіть тут опис зображення

У цьому вікні введіть ім'я хоста або IP-адресу вашого сервера разом з ім'ям користувача та ключем, які ви додали до файлу / etc / ppp / chap-secrets на сервері.

Тепер натисніть кнопку Додатково .

введіть тут опис зображення

У цьому вікні увімкніть "Використовувати шифрування" точка-точка "(MPPE)" та виберіть 128-бітну безпеку. Вимкніть використання аутентифікації MSCHAP (залиште MSCHAPv2 включеним).

Нарешті, натисніть кнопку Ок, а потім Зберегти, щоб закрити попереднє вікно.

Тепер ви можете перевірити VPN-з'єднання, перейшовши в аплет Network Manager → VPN Connections та вибравши з'єднання, яке ви тільки що створили. Переконайтеся, що ви отримали повідомлення про те, що VPN-з'єднання було успішним, а потім перейдіть на веб-сайт, що перевіряє IP-адресу, щоб переконатися, що ваша IP-адреса тепер відображається як IP-адреса сервера.

Якщо ви отримаєте повідомлення про те, що з'єднання VPN з сервером не вдалося: спочатку перевірте, чи правильно ви ввели налаштування клієнта; по-друге, перевірте, чи має клієнт мережеве підключення до порту 1723 TCP на сервері; нарешті, перевірте файл журналу / var / log / повідомлення на сервері для подальших підказок. Якщо ваше VPN-з'єднання вдалося, але згодом ви не можете переглядати будь-які веб-сайти від клієнта, перегляньте цей надзвичайно корисний посібник з діагностики на веб-сайті pptpd.

Примітки

Якщо локальна мережа, до якої ви підключені, використовує підмережі 192.168.0.0/24 та 192.168.1.0/24, ви збираєтеся зіткнутися з проблемами, оскільки саме так використовується сервер PPTP за замовчуванням. Вам доведеться налаштувати PPTP для використання різних підмереж у pptpd.conf .

Можливо, ви хочете внести численні інші зміни конфігурації. Наприклад, усі пошукові доменні імена все ще будуть запитуватися за допомогою локального сервера DNS, а не через сервер PPTP. Знайдіть час, щоб прочитати повну документацію, щоб дізнатися, як змінити цей параметр та багато інших.


4

Цей підручник, який я написав , проведе вас до кінця. Це повинно допомогти вам уникнути поширених помилок людей, які використовують VPS.

Спочатку увійдіть у свою панель VPS та ввімкніть TUN / TAP та PPP . Якщо у вас немає такої опції, зверніться до свого провайдера, щоб увімкнути це для вас.

введіть тут опис зображення

Спочатку встановіть цей пакет:

sudo apt-get install pptpd

Оскільки ми не хочемо, щоб наша VPN була публічною, ми збираємось створювати користувачів.
Я використовую VI, ви можете використовувати NANO або будь-який текстовий редактор, який вам подобається

vi /etc/ppp/chap-secrets

Формат є

[username] [service] [password] [ip]

Приклад

john pptpd johnspassword *

* означає, що доступ з усіх IP-адрес дозволений, вказуйте IP-адресу, лише якщо у вас є статична.

Редагування параметрів PPTPD

vi /etc/pptpd.conf

Шукайте параметри локаліпу та дистанційного набору. Видаліть #(символ коментаря) для обох, щоб ці налаштування були фактично розпізнані. Змініть локаліп на IP вашого сервера. Якщо ви не знаєте IP свого сервера, ви можете заглянути в панель управління VPS.

Remoteip - це, в основному, діапазон IP, який буде призначений клієнтам (комп'ютерам, підключеним до VPN). Наприклад, якщо ви бажаєте наступного діапазону IP: 192.168.120.231-235, ваш VPN-сервер зможе призначити клієнтам 192.168.120.232, 192.168.120.233, 192.168.120.234 та 192.168.120.235. Ви самі вирішите, що ви хочете використовувати для цього поля.

Особисто я вибираю ці налаштування:

localip 10.0.0.1
remoteip 10.0.0.100-200

Тож я можу підключити близько 200 клієнтів.

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

ms-dns 8.8.8.8
ms-dns 8.8.4.4

Ви можете додавати це до кінця файлу або знаходити ці рядки, коментувати їх та змінювати IP-адреси на потрібний загальнодоступний DNS.

Налаштування експедирування

Важливо включити переадресацію IP на вашому сервері PPTP. Це дозволить вам пересилати пакети між загальнодоступними IP та приватними IP-адресами, які ви встановлюєте за допомогою PPTP. Просто відредагуйте /etc/sysctl.conf і додайте наступний рядок, якщо він там уже не існує:

net.ipv4.ip_forward = 1

Щоб зміни були активними, запустіть sysctl -p

Створіть правило NAT для iptables

Це важлива частина, якщо ви використовуєте VPS, ви, мабуть, не будете використовувати eth0, а натомість venet0, слід перевірити, який інтерфейс у вас працює, запустивши ifconfig

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE && iptables-save

Якщо ви також хочете, щоб ваші клієнти PPTP розмовляли між собою, додайте наступні правила iptables:

iptables --table nat --append POSTROUTING --out-interface ppp0 -j MASQUERADE
iptables -I INPUT -s 10.0.0.0/8 -i ppp0 -j ACCEPT
iptables --append FORWARD --in-interface eth0 -j ACCEPT

Знову ж таки, вам потрібно замінити eth0 на venet0, якщо ви використовуєте VPS.

Я б рекомендував бігати

sudo iptables-save

Тепер ваш PPTP-сервер також діє як маршрутизатор.

Ви можете запустити цю команду, щоб служба VPN запустилася під час завантаження

systemctl enable pptpd

Я рекомендую встановлювати стійкі iptables, щоб правила залишалися навіть після перезавантаження

sudo apt-get install -y iptables-persistent

Посилання нікуди не дінеться, головним чином я ніколи не випущу це доменне ім’я, по-друге, це мій сервер хостингу, по-третє, повірте: DI дійсно не може просто скопіювати та вставити підручник, він занадто довгий.
Лука

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

Занна велике спасибі! @ Paranoid Panda добре, тоді слід видалити відповідь над моєю, яка має 2 голосування, оскільки вона містить посилання: P
Лука

1
Проблема тут полягала в тому, що відповідь була лише посиланням. Це означає, що якщо посилання з будь-якої причини перерватиметься (навіть якщо посилання нібито ніколи не зійде), відповідь стане недійсною. Тепер, коли відповідь стала самозалежною (і використовуючи посилання для довідок), відповідь просто чудова. Зараз відповідь видаляється, якщо тільки вона не буде адаптована так, як була ваша публікація.
Каз Вулф

1
Вас дуже вітають, дякую, що ви зробили підручник. Наступного разу не бійтеся зробити посаду такої довжини; це цілком прийнятно.
Занна

3

Дотримуйтесь цього підручника: PPTP-сервер VPN з Ubuntu

  1. Під вибором програмного забезпечення виберіть сервер OpenSSH - для віддаленого управління машиною - і ручний вибір пакета для фактичного пакету pptpd. Якщо ви хочете отримати більше служб, наприклад, якщо ви хочете використовувати комп'ютер також як веб-сервер, ви, звичайно, можете вибрати додаткове програмне забезпечення. З міркувань безпеки я, як правило, раджу людям запускати лише один із зовнішньо доступних сервісів на кожній машині, якщо вони встановлені в критичному середовищі, але насправді це залежить від вас.

  2. У ручному виборі перейдіть до не встановлених пакетів> net, де ви знайдете pptpd. Виберіть його та натисніть "g" двічі, щоб встановити пакет.

  3. Нехай установка завершиться і перезавантажте систему.

  4. SSH у ваш щойно створений апарат та запустіть sudo aptitude update && sudo aptitude safe-upgradeспочатку, щоб оновити всі пакунки. Перезавантажте, якщо необхідно.

  5. Відкрийте файл pptpd.conf: sudo nano /etc/pptpd.confналаштуйте IP-налаштування внизу, відповідно до своїх потреб. Під локальним IP-адресою ви вводите IP-адресу в локальній мережі вашого VPN-сервера (якщо ви цього не знаєте, наберіть 'sudo ifconfig', і він покаже ваші мережеві інтерфейси та призначені IP-адреси). З цього питання я рекомендую встановити статичний IP в / etc / network / інтерфейсах або у вашій конфігурації маршрутизатора.

  6. Якщо ви хочете, ви можете змінити ім'я хоста в /etc/ppp/pptpd-options

  7. Вкажіть імена користувачів і паролі , які ви хочете дати доступ до VPN: sudo nano /etc/ppp/chap-secrets. Якщо ви змінили ім'я хоста на цьому кроці, переконайтеся, що ви вводите те саме ім'я хоста, що зараз підserver

    Приклад:

    # client        server  secret                  IP addresses
    eubolist   pptpd   myübersecretpassword   *
    

    Як і в pptp, немає захисту файлів ключів, залежить виключно від пароля. Ось чому вам слід вибрати довгий (наприклад, 32 символи) випадковий пароль. Ви можете створити такий пароль тут.

  8. Тепер нам потрібно налаштувати ip-маскування: sudo nano /etc/rc.local

    Додайте наступні рядки над рядком із написом "вихід 0"

    # PPTP IP forwarding
    iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
    

    Необов’язково рекомендую захистити ваш SSH-сервер від жорстоких атак:

    #SSH Brute Force Protection
    iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH
    iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 8 --rttl --name SSH -j
    

    ДРОП

    (також вставити над 'exit 0')

    Можливо, вам доведеться змінити "eth 0" на інший інтерфейс, залежно від того, який інтерфейс налаштований для підключення до Інтернету на вашій машині.

  9. Нарешті, коментуйте цей рядок у /etc/sysctl.conf:

    net.ipv4.ip_forward=1
    
  10. Перезавантажте

  11. Якщо ваш vpn-сервер не підключається безпосередньо до Інтернету, вам може знадобитися перенаправити порт 1723 TCP і GRE на локальну IP вашого vpn-сервера. Інструкції щодо постачальника див. У посібнику вашого маршрутизатора або на порталі portforward.com. Знову вам може знадобитися призначити статичний ip в /etc/network/interfaces.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.