Привіт, сьогодні я покажу як можна зробити, мабуть, найпростіший варіант VPN сервера. Робити його я буду на Ubuntu 16.04, і варіант цей - PPTP. Це не найкращий варіант, але зате самий простий і швидкий в налаштуванні, і підтримується дуже багатьма пристроями і системами за замовчуванням, без установки додаткових програм. Підняти його можна, буквально за кілька хвилин.
Перейдемо в режим суперкористувача, якщо ви ще не в ньому:
і встановимо pptpd:
правимо конфиг pptpd:
його вміст має бути таким:
Далі задамо логіни і паролі клієнтів:
# Secrets for authentication using CHAP
# Client server secret IP addresses
test1 pptpd testtest 192.168.6.100
Далі зробимо, щоб користувачі могли ходити в інтернет через наш сервер:
Після чого зробимо маськарадінг з нашої vpn мережі в інтернет, тут, в залежності від того, який фаерволл ви використовуєте, можна робити по-різному, я покажу для голого iptables і для ufw.
У першому випадку, для чистого iptables:
Відповідно eth0 - ваш інтерфейс, що дивиться в інтернет, 192.168.6.0 - мережа vpn.
В кінець файлу додаємо:
pre-up iptables-restore
У другому випадку для ufw:
Знаходимо там DEFAULT_FORWARD_POLICY і робимо його ACCEPT:
* nat
: POSTROUTING ACCEPT [0: 0]
-A POSTROUTING -s 192.168.6.0/24 -o eth0 -j MASQUERADE
COMMIT
Далі для застосування нового правила можна виконати:
Налаштування PPTP сервера в Ubuntu Server 16.04 закінчена, можна пробувати підключитися. Як протоколу перевірки автентичності обов'язково потрібно вказувати mschapv2 і обов'язково потрібно включати шифрування, інакше сервер не дозволить підключення.
За замовчуванням логи пишуться в / var / log / syslog, там ви можете побачити що відбувається при підключенні клієнтів.
Якщо з якихось причин вам потрібно буде розірвати всі ppp з'єднання, то зробити це можна командою:
Зауваження: якщо ви плануєте піднімати сервер на VPS, то є ймовірність, що він не запрацює, в разі, якщо хостер використовує openvz або йому подібні системи віртуалізації. Там, як показала практика, дуже часто, в ядрі відключена підтримка PPP. Якщо це так (а якщо це так, то в логах, при спробі підключення будуть вискакувати помилки, типу - пристрій / dev / ppp, не знайдено чи ні доступу до / dev / ppp і т.п.), то потрібно уточнити у хостера, включені модулі ppp в ядрі віртуальної машини. Якщо вони не включені і хостер не хоче їх включати, то простіше змінити хостера ніж воювати з цією бідою.
Швидко перевірити використовується openvz чи ні, можна так:
Якщо цей файл існує, то віртуальна машина - openvz або virtuozo, і ви потрапляєте в групу ризику =)