Как настроить PPTP VPN на моем собственном сервере Ubuntu?

15

Предполагая, что у меня есть виртуальный частный сервер от кого-то вроде Linode , запускающего Ubuntu, как мне легко настроить PPTP VPN, чтобы Клиенты Ubuntu могут подключиться к нему?

По умолчанию Ubuntu предлагает подключиться к этим сетям PPTP. Я хочу настроить его таким образом, чтобы с ним было очень легко подключиться (например, без установки каких-либо пакетов на клиенте).

    
задан Stefano Palazzo 10.08.2011 в 11:15
источник

3 ответа

28

Абсолютная минимальная настройка сервера

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

Сначала установите необходимое программное обеспечение:

sudo apt-get install pptpd

Во-вторых, включите ip_forward в ядре для IPv4, раскомментируя соответствующую строку в /etc/sysctl.conf :

sudo sed -i -r 's/^\s*#(net\.ipv4\.ip_forward=1.*)//' /etc/sysctl.conf
# Reload the config file to have the change take effect immediately.
sudo -i sysctl -p

В-третьих, включите NAT (если он еще не включен), чтобы пользователи из частной сети VPN могли передавать свои пакеты в Интернет:

OUTIF='/sbin/ip route show to exact 0/0 | sed -r 's/.*dev\s+(\S+).*//''
sudo -i iptables --table nat --append POSTROUTING --out-interface $OUTIF --jump MASQUERADE
# Enable NAT on boot from the rc.local script.
CMD="iptables --table nat --append POSTROUTING --out-interface $OUTIF --jump MASQUERADE"
sudo sed -i "\$i$CMD\n" /etc/rc.local

Примечание. В этом руководстве предполагается, что на сервере не настроен брандмауэр. Если у вас есть брандмауэр на сервере, например UFW , обратитесь к справке справочная документация .

В-четвертых, для каждого пользователя VPN создайте учетную запись в файле / etc / ppp / chap-secrets . Замените $USER фактическим именем пользователя, которое вы хотите использовать для этого пользователя VPN.

KEY='head -c 20 /dev/urandom | sha1sum | nawk '{print $1}''
echo "$USER pptpd $KEY *" | sudo tee -a /etc/ppp/chap-secrets

Наконец, вы готовы ...

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

В апплетах Network Manager выберите VPN-соединения Настройка VPN , затем нажмите Добавить . На следующем экране выберите PPTP для типа VPN, затем нажмите Создать .

ВэтомокневведитеимяхостаилиIP-адресвашегосерверавместесименемпользователяиключом,добавленнымвфайл/etc/ppp/chap-secretsнасервере.

ТеперьнажмитеДополнительно.

В этом окне включите «Использовать шифрование« точка-точка »(MPPE)» и выберите 128-бит . Отключите использование аутентификации MSCHAP (оставьте MSCHAPv2 ).

Наконец, нажмите Ok , а затем Сохранить , чтобы закрыть предыдущее окно.

Теперь вы можете протестировать VPN-соединение, перейдя в апплет Network Manager → VPN Connections и выбрав соединение, которое вы только что создали. Убедитесь, что вы получили сообщение о том, что VPN-соединение прошло успешно, затем перейдите на веб-сайт IP-проверки , чтобы убедиться, что ваш IP-адрес теперь отображается как IP-адрес сервера.

Если вы получили сообщение о том, что VPN-подключение к серверу не выполнено: сначала убедитесь, что вы правильно ввели настройки клиента; во-вторых, проверьте, что клиент имеет сетевое подключение к TCP-порту 1723 на сервере; наконец, проверьте файл журнала / var / log / messages на сервере для дальнейших подсказок. Если ваше VPN-соединение завершается успешно, но впоследствии вы не можете просматривать какие-либо веб-сайты от клиента, обратитесь к этому невероятно полезному диагностическому руководству на веб-сайте pptpd.

Примечания

Если к локальной сети, к которой вы подключены, используются подсерии 192.168.0.0/24 и 192.168.1.0/24, вы столкнулись с проблемами, потому что по умолчанию используется PPTP-сервер. Вам нужно будет настроить PPTP для использования разных подсетей в pptpd.conf .

Существует множество других изменений конфигурации, которые вы можете захотеть сделать. Например, все поисковые запросы по домену будут по-прежнему запрашиваться с использованием локального DNS-сервера вместо того, чтобы проходить через PPTP-сервер. Потратьте время, чтобы прочитать полную документацию , чтобы узнать, как изменить этот параметр и многие другие.

    
ответ дан Michael Kropat 25.08.2011 в 08:12
источник
4

Этот учебник, который я написал , будет направлять вы через. Это должно помочь вам избежать распространенных ошибок, сделанных людьми, использующими VPS.

Сначала войдите в свою панель VPS и включите TUN / TAP и PPP . Если у вас нет такой возможности, обратитесь к своему интернет-провайдеру, чтобы включить это для вас.

Сначала установите этот пакет:

sudo apt-get install pptpd

Поскольку мы не хотим, чтобы наша VPN была общедоступной, мы собираемся создавать пользователей.
Я использую VI, вы можете использовать NANO или любой текстовый редактор, который вам нравится

vi /etc/ppp/chap-secrets

Формат

[username] [service] [password] [ip]

Пример

john pptpd johnspassword *

* означает, что доступ со всех IP-адресов разрешен, укажите IP, только если у вас есть статический.

Редактирование настроек PPTPD

vi /etc/pptpd.conf

Найдите настройки локального и удаленного доступа. Удалите # (символ комментария) для обоих, чтобы эти настройки были фактически распознаны. Измените localip на IP-адрес вашего сервера. Если вы не знаете IP-адрес своего сервера, вы можете посмотреть на панели управления VPS.

Пульт дистанционного управления - это в основном диапазон IP-адресов, которым будут назначены клиенты (компьютеры, подключенные к вашей VPN). Например, если вы хотите использовать следующий IP-адрес: 192.168.120.231-235, ваш VPN-сервер сможет назначить клиентам 192.168.120.232, 192.168.120.233, 192.168.120.234 и 192.168.120.235. Это зависит от вас, что вы хотите использовать для этого поля.

Лично я выбираю следующие настройки:

localip 10.0.0.1
remoteip 10.0.0.100-200

Таким образом, я могу подключить около 200 клиентов.

Добавить DNS-серверы в /etc/ppp/pptpd-options

ms-dns 8.8.8.8
ms-dns 8.8.4.4

Можно ли добавить это в конец файла или найти эти строки, раскомментировать их и изменить IP-адреса на нужный публичный DNS.

Настройка переадресации

Важно включить переадресацию IP-адресов на вашем PPTP-сервере. Это позволит вам пересылать пакеты между общедоступным IP-адресом и частными IP-адресами, которые вы настраиваете с помощью PPTP. Просто отредактируйте файл /etc/sysctl.conf и добавьте следующую строку, если она там еще не существует:

net.ipv4.ip_forward = 1

Чтобы сделать изменения активными, запустите sysctl -p

Создать правило NAT для iptables

Это важная часть, если вы используете VPS, вы, вероятно, не будете использовать eth0, но venet0 вместо этого, вы должны проверить, какой у вас интерфейс, запустив ifconfig

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

Если вы также хотели бы, чтобы ваши клиенты PPTP разговаривали друг с другом, добавьте следующие правила iptables:

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 eth0 -j ACCEPT

Опять же, вам нужно заменить eth0 на venet0, если вы используете VPS.

Я бы рекомендовал запустить

sudo iptables-save

Теперь ваш PPTP-сервер также действует как маршрутизатор.

Вы можете запустить эту команду, чтобы служба VPN запускалась при загрузке

systemctl enable pptpd

Я рекомендую установить iptables-persistent, поэтому правила остаются даже после перезагрузки

sudo apt-get install -y iptables-persistent
    
ответ дан Luka 31.05.2017 в 15:28
3

Следуйте этому руководству: PPTP VPN-сервер с Ubuntu

  1. Under software selection select OpenSSH server -- for remote management of the machine -- and manual package selection for the actual pptpd package. If you want more services, for example if you want to use the computer also as a webserver, you may of course select the additional software. For security reasons I generally advise people to only run one from the outside accessible service per machine if set up in a critical environment, but really that's up to you.

  2. In manual selection navigate to not installed packages > net where you will find pptpd. Select it and press ‘g' twice in order to install the package.

  3. Let the installation finish and reboot your system.

  4. SSH into your newly set up machine and run sudo aptitude update && sudo aptitude safe-upgrade first to update all packages. Reboot if necessary.

  5. Open the pptpd.conf file: sudo nano /etc/pptpd.conf Adjust the IP settings at the bottom to your needs. Under local IP you enter the IP in the local network of your VPN server (if you don't know it type ‘sudo ifconfig' and it will show you your network interfaces and the assigned IPs). For that matter I recommend to set up a static IP in /etc/network/interfaces or in your router configuration.

  6. If you want to, you can change the hostname in /etc/ppp/pptpd-options

  7. Specify the user names and passwords you want to give access to your vpn: sudo nano /etc/ppp/chap-secrets. If you changed the hostname in the step before make sure you type in the same hostname now under server

    Example:

    # client        server  secret                  IP addresses
    eubolist   pptpd   myübersecretpassword   *
    

    As in pptp there is no keyfile security depends solely on the password. Which is why you should choose a long (eg. 32 characters), random password. You can generate such a password here.

  8. Now we need to set up ip-masquerading: sudo nano /etc/rc.local

    Add the following lines above the line that says ‘exit 0‘

    # PPTP IP forwarding
    iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
    

    Optionally I recommend securing your SSH server against brute force attacks:

    #SSH Brute Force Protection
    iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH
    iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 8 --rttl --name SSH -j
    

    DROP

    (also to be inserted above ‘exit 0')

    You may have to change ‘eth 0' to another interface, depending on which interface is configured to connect to the internet on your machine.

  9. Lastly, uncomment this line in /etc/sysctl.conf:

    net.ipv4.ip_forward=1
    
  10. Reboot

  11. If your vpn-server doesn't directly connect to the internet you may need to forward port 1723 TCP and GRE to the LAN IP of your vpn-server. Refer to your router's manual or to portforward.com for vendor specific instructions. Again, you may need to assign a static ip in /etc/network/interfaces.

    
ответ дан Ilias 24.08.2011 в 20:27