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

68

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

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

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

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

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

    
задан sorin 06.04.2012 в 22:47
источник

5 ответов

23

ОБНОВЛЕНИЕ . Что касается 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.

    
ответ дан Jay _silly_evarlast_ Wren 06.04.2012 в 23:24
источник
86

WARNING: PPTP IS AN INSECURE PROTOCOL! Not only has the encryption been breached, but it sends your authentication in clear text and is easily intercepted. It has been estimated that the amount of time required to brute-force the password is roughly equivalent to the time required to brute-force a single DES key. Consider using OpenVPN or another VPN architecture instead of 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 ). Вам необходимо добавить локальные IP-адреса VPN для системы, поэтому добавьте:

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 ) и добавьте данные auth.
Формат для /etc/ppp/chap-secrets :

[Username] [Service] [Password] [Allowed IP Address]

Пример: 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 table rules
*nat

:POSTROUTING ACCEPT [0:0]
# Allow forward traffic to eth0
-A POSTROUTING -s 10.99.99.0/24 -o eth0 -j MASQUERADE

# Process the NAT table rules
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>

    
ответ дан Thomas Ward 07.06.2013 в 21:47
19

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

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

Install Necessary Packages

                          sudo apt-get install ppp pptpd

Configure PPTP IP Ranges on the Server

                          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-адресами, уже используемыми вашим сервером.

Configure DNS Servers to Use When Clients Connect to this PPTP Server

                          sudo nano /etc/ppp/pptpd-options

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

                          ms-dns 8.8.8.8
                          ms-dns 8.8.4.4

Create a PPTP User

                          sudo nano /etc/ppp/chap-secrets

Append a line at the bottom so your file looks something like:

                          # client    server  secret          IP addresses
                          test        pptpd   abcd1234        *

Configure NAT for PPTP Connections

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

                          sudo nano /etc/rc.local

Добавьте нижеследующее вправо до строки «exit 0»:

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

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

Enable IPv4 forwading:

                          sudo nano /etc/sysctl.conf

Uncomment the following line:

                          net.ipv4.ip_forward=1

Then reload the configuration:

                          sudo sysctl -p

Reboot your VPS and everything should work swimmingly from any PPTP client.

Client side configuration

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

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

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

AndforWindows

    
ответ дан Qasim 10.06.2013 в 16:09
9

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

# Secrets for authentication using CHAP
# client    server  secret          IP addresses
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

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

    
ответ дан Nick Woodhams 20.11.2013 в 07:58
6

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

Ссылка

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

    
ответ дан HappyCoder86 18.01.2016 в 21:53