Легчайший способ настроить Ubuntu как VPN-сервер

Вопрос или проблема

Я знаю, что в сети есть много учебников по настройке VPN-клиента и сервера.

Если вы найдете что-то простое/короткое, меня интересует только часть сервера.

Для клиента я буду использовать OS X, поэтому предпочитаю решение, которое использует L2TP через IPsec или PPTP, потому что предполагаю, что Cisco IPsec будет стоить денег.

Не хочу тратить слишком много часов на настройку. Знаете, может быть, кто-то уже создал скрипт для установки 🙂

Примечание: я использую экземпляр EC2 micro с установленным Ubuntu 12.04.

ПРЕДУПРЕЖДЕНИЕ: PPTP – ЭТО НЕБЕЗОПАСНЫЙ ПРОТОКОЛ! Не только шифрование было скомпрометировано, но он отправляет вашу аутентификацию в открытом виде и легко перехватывается. Оценивается, что время, необходимое для перебора пароля, примерно эквивалентно времени, необходимому для перебора одного ключа DES. Рассмотрите возможность использования OpenVPN или другой архитектуры VPN вместо PPTP!

Я использовал этот гайд для настройки PPTP VPN сервера на своем сервере Ubuntu 12.04.

Чтобы подвести итоги основным пунктам из ссылки:

1: Установите pptpd и ufw. iptables можно использовать вместо ufw, но для удобства ufw будет лучше, если вы не знаете iptables. sudo apt-get install pptpd ufw

2: Откройте необходимые порты. Гид предлагает 22 (SSH) и 1723 для pptp vpn.

sudo ufw allow 22
sudo ufw allow 1723
sudo ufw enable

3: Отредактируйте /etc/ppp/pptpd-options. Откройте файл в вашем любимом редакторе (у меня nano, поэтому команда для меня – sudo nano /etc/ppp/pptpd-options) и закомментируйте эти строки, поставив # перед ними, если хотите, чтобы это работало универсально на всех ОС:

refuse-pap
refuse-chap
refuse-mschap

Вы можете закомментировать эту строку, если хотите отключить шифрование: require-mppe-128

4: Во время редактирования /etc/ppp/pptpd-options добавьте DNS-сервера для VPN. Этот пример использует серверы OpenDNS:

ms-dns 208.67.222.222
ms-dns 208.67.220.220

5: Отредактируйте /etc/pptpd.conf. Откройте файл в вашем любимом редакторе (у меня nano, поэтому команда для меня – sudo nano /etc/pptpd.conf). Вам нужно добавить локальные VPN IP-адреса для системы, поэтому добавьте:

localip 10.99.99.99
remoteip 10.99.99.100-199

Если ваша система является VPS, используйте публичный IP для “localip”. Если это не так и находится в локальной сети, используйте сетевой IP вашего компьютера. Используйте разные IP-адреса и диапазоны, если эти IP-адреса существуют в вашей подсети! Если вы не знаете свой публичный IP вашего VPS, найдите его, выполнив dig +short myip.opendns.com @resolver1.opendns.com

6: Отредактируйте /etc/ppp/chap-secrets. Откройте файл в вашем любимом редакторе (у меня nano, поэтому команда для меня – sudo nano /etc/ppp/chap-secrets) и добавьте данные для аутентификации. Формат для /etc/ppp/chap-secrets:

[Имя пользователя] [Служба] [Пароль] [Допустимый IP-адрес]

Пример: sampleuser pptpd samplepassword *

7: Перезапустите pptpd. Выполните эту команду в терминале: sudo /etc/init.d/pptpd restart

8: Отредактируйте /etc/sysctl.conf. Откройте файл в вашем любимом редакторе (у меня nano, поэтому команда для меня – sudo nano /etc/sysctl.conf). Уберите комментарий с следующей строки (удалив # в начале): net.ipv4.ip_forward=1
Перезагрузите конфигурацию: sudo sysctl -p

9: Этот шаг предполагает, что у вас есть ufw. Отредактируйте /etc/default/ufw и измените опцию DEFAULT_FORWARD_POLICY с DROP на ACCEPT

10: Этот шаг предполагает, что у вас есть ufw. Отредактируйте /etc/ufw/before.rules и добавьте следующее либо в начале /etc/ufw/before.rules, либо непосредственно перед правилами *filter (рекомендуется):

# Правила NAT
*nat

:POSTROUTING ACCEPT [0:0]
# Разрешить пересылку трафика на eth0
-A POSTROUTING -s 10.99.99.0/24 -o eth0 -j MASQUERADE

# Обработать правила NAT
COMMIT

Если у вас версия ядра 3.18 и новее (это можно проверить с помощью команды uname -r), также добавьте следующие строки перед строкой # drop INVALID packets …:

-A ufw-before-input -p 47 -j ACCEPT

11: Перезапустите брандмауэр, чтобы обновить наборы правил и применить добавленные правила к /etc/ufw/*.rules: sudo ufw disable && sudo ufw enable

Предупреждение: Если у вас есть другие порты, которые вам нужно открыть, такие как для HTTPS, если ваш сервер хостит сайт, вам нужно отдельно добавить эти порты в разрешенный список с помощью sudo ufw allow

ОБНОВЛЕНИЕ: Начиная с Sierra, macOS больше не поддерживает PPTP vpn. Этот ответ не подходит для клиентов macOS Sierra и новее.

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

apt-get install pptpd
отредактируйте /etc/pptpd.conf и установите опцию remoteip в диапазон вашей сети, который НЕ обслуживается вашим DHCP-сервером.
отредактируйте /etc/ppp/chap-secrets и добавьте имя пользователя и пароль

например.

vpnuser pptpd vpnpassword *

Это все, что нужно, чтобы настроить pptp. Теперь протестируйте это с вашим клиентом OS X.

Пример PPTP VPN на Ubuntu 12.04

Вот краткое учебное пособие по настройке базового PPTP VPN сервера на Ubuntu 12.04.

Установите необходимые пакеты

sudo apt-get install ppp pptpd

Настройте диапазоны IP PPTP на сервере

sudo nano /etc/pptpd.conf

Добавьте следующие строки в конце

localip 10.89.64.1
remoteip 10.89.64.100-150

Это настраивает PPTP сервер на использование IP 10.89.64.1, распределяя диапазон IP от 10.89.64.100 до 10.89.64.150 для клиентов PPTP. Измените это по своему усмотрению, пока это частные IP-адреса и они не конфликтуют с IP-адресами, уже используемыми вашим сервером.

Настройте DNS-серверы для использования, когда клиенты подключаются к этому PPTP серверу

sudo nano /etc/ppp/pptpd-options

Измените ИЛИ добавьте следующие строки в конце

ms-dns 8.8.8.8
ms-dns 8.8.4.4

Создайте пользователя PPTP

sudo nano /etc/ppp/chap-secrets

Добавьте строку в конце, чтобы ваш файл выглядел примерно так:

# клиент сервер секрет IP-адреса
test pptpd abcd1234 *

Настройте NAT для PPTP подключений

Без этого шага вы сможете подключиться, но ваше соединение не сможет загружать любые веб-соединения с этого сервера.

sudo nano /etc/rc.local

Добавьте следующее в самый низ, перед строкой “exit 0”:

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

Предполагая eth0, вы можете использовать ifconfig, чтобы проверить имя сети.

Включите пересылку IPv4:

sudo nano /etc/sysctl.conf

Уберите комментарий с этой строки:

net.ipv4.ip_forward=1

Затем перезагрузите конфигурацию:

sudo sysctl -p

Перезагрузите ваш VPS, и все должно работать отлично с любого PPTP клиента.

Настройка на клиентской стороне

Для Mac убедитесь, что вы добавили соединение PPTP VPN. Кроме того, вам просто нужно настроить адрес сервера, имя аккаунта и пароль в настройках аутентификации. Никаких проблем здесь.

Для Linux используйте NetworkManager, чтобы добавить VPN соединения. Убедитесь, что вы добавили PPTP VPN соединение. И конфигурация, которую я использую, здесь:

Как отлаживать и исправлять подключение PPTP/VPN

А для Windows

Другие ответы на этом форуме были только частичными ответами в моем случае. Вот что сработало для меня на 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

Уберите комментарий с этой строки

net.ipv4.ip_forward=1

Сохраните изменения

sudo sysctl -p /etc/sysctl.conf

Отредактируйте /etc/ppp/chap-secrets, добавьте пользователя VPN в этом формате:

# Секреты для аутентификации с использованием CHAP
# клиент сервер секрет IP-адреса
username pptpd supersecretpassword *

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

service pptpd restart

Запустите ifconfig и найдите свой интерфейс по умолчанию, в моем случае это был br0 (я изменил его, чтобы виртуальные машины на моем физическом компьютере могли делить интерфейс. У вас, вероятно, будет en0).

Сделайте резервное копирование iptables

iptables-save > ~/iptables.save

Теперь выполните ваши изменения iptables, используя ваш интерфейс по умолчанию, как показано в ifconfig.

iptables -t nat -A POSTROUTING -o br0 -j MASQUERADE
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 br0 -j ACCEPT

Чтобы сохранить изменения при перезагрузке системы;

sudo apt-get install iptables-persistent

Добавьте VPN на клиентском компьютере (Mac)

Системные настройки > Сеть > [+] > VPN

Затем выберите настройки аутентификации > Пароль, затем заполните ваш пароль здесь

Вот довольно интересный проект, который упрощает использование OpenVPN:

https://github.com/Nyr/openvpn-install

Просто выполните его, и он установит open vpn и настроит его. В конце он создаст файл client.ovpn, который вы можете использовать для настройки клиента. Кажется, это работает довольно хорошо.

Ответ или решение

На данный момент настройка PPTP VPN-сервера на Ubuntu 12.04 может быть довольно простой, однако следует помнить, что PPTP считается небезопасным протоколом. Если же вы все равно хотите продолжить настройку, приведенные ниже шаги помогут вам быстро настроить PPTP VPN-сервер на вашем экземпляре EC2. Рекомендуется рассмотреть использование более безопасных решений, таких как OpenVPN, в будущем.

Шаги по настройке PPTP VPN-сервера на Ubuntu 12.04

  1. Установка необходимых пакетов
    Откройте терминал и выполните команду для установки pptpd и ppp:

    sudo apt-get install pptpd ppp
  2. Настройка конфигурации PPTP
    Откройте файл конфигурации PPTP:

    sudo nano /etc/pptpd.conf

    Добавьте в конец файла:

    localip 10.89.64.1
    remoteip 10.89.64.100-150

    Это настроит локальный IP-адрес сервера и диапазон IP-адресов для клиентов.

  3. Настройка DNS-серверов
    Откройте файл настроек PPP:

    sudo nano /etc/ppp/pptpd-options

    Добавьте следующие строки для указания DNS-серверов:

    ms-dns 8.8.8.8
    ms-dns 8.8.4.4
  4. Создание пользователя PPTP
    Откройте файл chap-secrets для добавления учетной записи:

    sudo nano /etc/ppp/chap-secrets

    Добавьте строку для вашего пользователя:

    username pptpd yourpassword *
  5. Настройка NAT для PPTP
    Откройте файл для редактирования сценария и добавьте правило NAT в rc.local:

    sudo nano /etc/rc.local

    Добавьте перед строкой exit 0:

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

    Замените eth0 на имя вашего сетевого интерфейса, если необходимо.

  6. Включение IPv4 пересылки
    Откройте файл конфигурации sysctl:

    sudo nano /etc/sysctl.conf

    Убедитесь, что следующая строка раскомментирована:

    net.ipv4.ip_forward=1

    Примените изменения:

    sudo sysctl -p
  7. Перезапуск PPTP
    Перезапустите сервис PPTP для применения всех настроек:

    sudo service pptpd restart
  8. Настройка брандмауэра (если используется UFW)
    Если вы используете UFW, откройте нужные порты:

    sudo ufw allow 22/tcp
    sudo ufw allow 1723/tcp
    sudo ufw enable

Подключение клиента

На стороне macOS, настройка VPN подключения осуществляется через «Системные настройки» → «Сеть» → «+» → «VPN». Выбираете тип подключения PPTP и вводите данные для аутентификации (серверный адрес, имя пользователя и пароль).

Замечания

Имейте в виду, что начиная с macOS Sierra (выпущенной в 2016 году), поддержка протокола PPTP была прекращена. Таким образом, данный метод подключения может быть неэффективным для более поздних версий ОС.

Несмотря на простоту настройки PPTP, настоятельно рекомендую изучить более безопасные альтернативы, такие как L2TP/IPsec или OpenVPN, которые обеспечивают более высокий уровень безопасности и меньшую уязвимость.

Если вам требуется более безопасная настройка или скрипт для автоматизации, вы можете изучить ресурс Nyr на GitHub (openvpn-install), который предлагает упрощенный процесс установки OpenVPN.

Оцените материал
Добавить комментарий

Капча загружается...