Самый простой способ настроить Ubuntu в качестве VPN-сервера

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

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

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

Я не хочу тратить слишком много часов на его настройку. Вы знаете, может быть, кто-то уже сделал сценарий настройки :)

Примечание: Я использую микро-экземпляр EC2 под управлением 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 разрешить 22sudo ufw разрешить 1723sudo ufw разрешить

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

отказать-paprefuse-chaprefuse-mschap

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

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

ms-dns 208.67.222.222ms-dns 208.67.220.220

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

localip 10.99.99.99remoteip 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). Отмените комментарий к следующей строке (удалив # в начале этого) в /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 <PORT>

ОБНОВЛЕНИЕ: Начиная с версии 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.

Пример 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

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

                          # client    server  secret          IP addresses                          test        pptpd   abcd1234        *

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

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

                          sudo nano /etc/rc.local

Добавьте следующее в правом нижнем углу перед строкой “выход 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

enter image description here

И для Windows

enter image description here

Другие ответы в этой теме были лишь частичными ответами в моем случае. Вот что сработало для меня в Ubuntu 12.04.3

sudo apt-get install pptpd

Добавьте следующее в /etc/pptpd.conf (IP-адрес не имеет значения, это только IP-адреса для вашего интерфейса ppp0.)

localip 10.0.0.1remoteip 10.0.0.100-200

Добавление DNS-серверов в /etc/ppp/pptpd-options

ms-dns 8.8.8.8ms-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 в этом формате:

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

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

service pptpd restart

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

enter image description here

Резервное копирование iptables

iptables-save > ~/iptables.save

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

iptables -t nat -A POSTROUTING -o br0 -j MASQUERADEiptables --table nat --append POSTROUTING --out-interface ppp0 -j MASQUERADEiptables -I INPUT -s 10.0.0.0/8 -i ppp0 -j ACCEPTiptables --append FORWARD --in-interface br0 -j ACCEPT

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

sudo apt-get install iptables-persistent

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

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

enter image description here

enter image description here

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

enter image description here

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

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

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

Примечание: CISCO IPSec может быть достигнута с помощью strongSwan и множества настроек, но это сложно. PPTP больше не является безопасным. А L2TP через IPSec требует настройки как L2TP, так и IPSec. Выбирайте на досуге, хотя мой ответ объясняет PPTP