Возникла необходимость настройки простенького VPN PPTP сервера на Raspberry Pi.
Следовал инструкциям с сайта kaplunenko.name, чтобы не потерялось, оставлю заметку здесь…
Итак, установка и настройка VPN PPTP:
Нам нужно будет установить пакет pptpd, который и является собственно PPTP-сервером, а также несколько пакетов которые прописаны у pptpd в зависимостях (это, возможно, bcrelay). О пакетах которые прописаны в зависимостях беспокоиться не надо, они будут установлены автоматически с pptpd.
Если у вас еще не установлен пакет pptpd – запускаем его установку следующей командой:
1 |
sudo apt-get install pptpd |
Теперь перейдем к настройке параметров VPN-сервера, и начнем с файла /etc/ppp/pptpd-options.
Вводим в Терминале:
1 |
sudo pico /etc/ppp/pptpd-options |
В этот файл можно скопировать примерно такое содержимое (вам наверняка прийдется изменить адрес ms-dns на DNS который используется в вашей сети):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# Название сервиса для аутентификации # (должно совпадать со вторым полем в записях /etc/ppp/chap-secrets) name pptpd # Откажемся работать с явно ненадежными механизмами проверки пароля, # такими как PAP, CHAP и MS CHAP v1 refuse-pap refuse-chap refuse-mschap # Разрешим аутентификацию пользователей # по самому защищенному из протоколов — MS CHAP v2: require-mschap-v2 # Потребуем максимально возможный для PPTP # механизм шифрованная mppe-128 require-mppe-128 # Адрес DNS-сервера, указываемого клиентам: # (У меня это локальный адрес роутера) ms-dns 10.0.0.1 # Включение этого параметра позволяет PPTP-клиентам работать # с локальной сетью без добавления правил маскарадинга (NAT) # в цепочки брандмауэра iptables. Если используются # цепочки iptables, этот параметр следует закомментировать. # proxyarp # Чтобы не сбивался маршрут по умолчанию: nodefaultroute lock nobsdcomp |
Вот пример такого же конфигурационного файла от разработчиков, с оригинальными комментариями: http://poptop.sourceforge.net/dox/options.pptpd.txt
После этого правим файл /etc/pptpd.conf выполнив в Терминале:
1 |
sudo pico /etc/pptpd.conf |
Вот как этот файл выглядит у меня:
1 2 3 4 5 6 7 8 9 10 11 |
option /etc/ppp/pptpd-options logwtmp localip 192.168.18.1 remoteip 192.168.18.2-254 # Включим передачу VPN-клиентам широковещательных пакетов, # которые сервер получает по сетевому интерфейсу eth0: bcrelay eth0 # Смотрим, чтобы было закомментировано, # при включении данного параметра IP-адрес клиента не передается # скриптам ip-up через демон pppd: # noipparam |
Затем в файл /etc/ppp/chap-secrets добавляем пользователей которые будут иметь право подключатся к VPN-сети. Набираем в Терминале:
1 |
sudo pico /etc/ppp/chap-secrets |
И добавляем в этот файл информацию в таком виде:
1 2 3 |
# Secrets for authentication using CHAP # client server secret IP addresses andrey pptpd andrey12 * |
Таким образом, мы наделили пользователя andrey с паролем andrey12 правом подключаться к нашей VPN сети. Пользователю andrey будет выдаваться первый доступный IP адрес из указанного диапазона. Если же необходимо, чтобы пользователю всегда выдавался один и тот же IP адрес, укажите желаемый IP вместо «*». Обратите внимание на название сервиса – pptpd – оно должно быть таким же, как указано в параметре name в файле /etc/ppp/pptpd-options.
С настройками VPN-сервера мы завершили, теперь нужно его перезапустить для того, чтобы изменения которые мы внесли вступили в силу. Для этого выполним в Терминале:
1 |
sudo /etc/init.d/pptpd restart |
Если необходимо, чтобы для подключенных удаленных клиентов был доступен интернет через VPN, открываем /etc/rc.local и НАД ‘exit 0′ добавляем такие строки:
1 2 |
# PPTP IP forwarding iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE |
и раскомментируем эту строчку в файле /etc/sysctl.conf:
1 |
net.ipv4.ip_forward=1 |
В случае если ваш VPN сервер не подключен напрямую к интернету, вам скорее всего понадобится направить порт TCP-1723 и «протокол 47», он же GRE, на локальный IP адрес VPN сервера. Обратитесь к инструкции по настройке роутера чтобы выполнить необходимые шаги. Очевидно, что у сервера за роутером должен быть постоянный локальный IP, а у самого роутера – постоянный «внешний» IP, либо прийдется воспользоваться услугой «динамический DNS», но это совсем другая тема.
Перезагружаем сервер. Можно пробовать подключаться. Ваш VPN должен быть доступен с любой точки мира, где только есть интернет.
Установка и настройка VPN PPTP (тестировал на raspberry pi 3): 1 комментарий
Подскажите, что необходимо добавить/изменить, чтобы использовать vpn-сервер «динамическим DNS»?
Обсуждение закрыто.