Вопрос или проблема
Я знаю, что в сети есть много учебников по настройке 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
-
Установка необходимых пакетов
Откройте терминал и выполните команду для установки pptpd и ppp:sudo apt-get install pptpd ppp
-
Настройка конфигурации PPTP
Откройте файл конфигурации PPTP:sudo nano /etc/pptpd.conf
Добавьте в конец файла:
localip 10.89.64.1 remoteip 10.89.64.100-150
Это настроит локальный IP-адрес сервера и диапазон IP-адресов для клиентов.
-
Настройка DNS-серверов
Откройте файл настроек PPP:sudo nano /etc/ppp/pptpd-options
Добавьте следующие строки для указания DNS-серверов:
ms-dns 8.8.8.8 ms-dns 8.8.4.4
-
Создание пользователя PPTP
Откройте файл chap-secrets для добавления учетной записи:sudo nano /etc/ppp/chap-secrets
Добавьте строку для вашего пользователя:
username pptpd yourpassword *
-
Настройка NAT для PPTP
Откройте файл для редактирования сценария и добавьте правило NAT вrc.local
:sudo nano /etc/rc.local
Добавьте перед строкой
exit 0
:iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Замените
eth0
на имя вашего сетевого интерфейса, если необходимо. -
Включение IPv4 пересылки
Откройте файл конфигурации sysctl:sudo nano /etc/sysctl.conf
Убедитесь, что следующая строка раскомментирована:
net.ipv4.ip_forward=1
Примените изменения:
sudo sysctl -p
-
Перезапуск PPTP
Перезапустите сервис PPTP для применения всех настроек:sudo service pptpd restart
-
Настройка брандмауэра (если используется 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.