- Настройка VPN под Linux Ubuntu/Mint
- Что такое VPN и зачем это нужно?
- Настройка серверной части на Ubuntu Linux
- Настройка VPN клиентов
- Настройка доступа в интернет через VPN
- How to install a VPN on Linux Mint
- Linux system tray icon (optional)
- Notes
- 1. How to uninstall the official app
- 2. How to disable Kill Switch if you have uninstalled the app
- 3. Required dependencies
- 4. Help us fix bugs with the early release version of this app
Настройка VPN под Linux Ubuntu/Mint
Аббревиатуру VPN сейчас не слышали разве что только те, кто никогда не имел дела с компьютером. Что это такое, зачем оно нужно и как его настроить самостоятельно?
Что такое VPN и зачем это нужно?
VPN (Virtual Private Network) – виртуальная частная сеть, способ объединить в одну логическую сеть несколько компьютеров, физически находящихся на некотором расстоянии друг от друга.
Использовать VPN можно с разными целями – от организации сети для работы/игр до доступа в интернет. При этом вы должны понимать возможную юридическую ответственность за свои действия.
В России использование VPN не является наказуемым действием, исключая случаи использования с заведомо противоправными целями. То есть, если вы хотите зайти на сайт президента соседней страны (допустим, Сомали) и написать, какой он нехороший, скрыв при этом свой IP-адрес, это само по себе не является нарушением (при условии, что содержание высказывания не нарушает законы). А вот использовать эту технологию для доступа к запрещённым в России ресурсам является правонарушением.
То есть, играть с друзьями по сети и удалённо работать в сетью организации используя VPN – можно, читать всякие нехорошие сайты – нельзя. С этим разобрались. Теперь переходим непосредственно к настройке.
Настройка серверной части на Ubuntu Linux
Для серверной части лучше использовать Linux, с ним в этом плане проще работать. Наиболее простой вариант – PPTP, не требующий установки сертификатов на компьютеры клиентов, аутентификация проводится по имени пользователя и паролю. Его и будем использовать.
Вначале установим нужные пакеты:
Далее нам нужно задать диапазон адресов и несколько других основных настроек. Открываем для редактирования файл /etc/pptpd.conf:
Если нам нужно более 100 одновременных подключений, ищем параметр «connections», раскомментируем его и указываем нужное значение, например:
Если нам нужно передавать по виртуальной сети широковещательные пакеты, следует убедиться, что параметр bcrelay также раскомментирован:
После этого переходим в конец файла и добавляем настройки адресов:
localip 10.10.10.1 remoteip 10.10.10.2-254 listen 11.22.33.44
Первый параметр указывает IP-адрес сервера в локальной сети, второй – диапазон выдаваемых клиентам IP-адресов (диапазон должен обеспечить возможность указанного количества подключений, лучше адреса выделить с запасом), третий указывает, по какому внешнему адресу прослушивать интерфейсы для приёма входящих подключений. То есть, при наличии нескольких внешних адресов прослушивать можно только один. Если третий параметр не указать, прослушиваться будут все доступные внешние адреса.
Сохраняем файл и закрываем. Дополнительные тонкие настройки указываем в файле /etc/ppp/pptpd-options:
sudo nano /etc/ppp/pptpd-options
В первую очередь убеждаемся, что у нас раскомментированы строки, запрещающие использование старых и небезопасных методов аутентификации:
refuse-pap refuse-chap refuse-mschap
Также проверяем, что опция proxyarp включена (соответствующая строка раскомментирована) и дополнительно для разрешения или запрета множественных подключений одного пользователя комментируем (разрешение) или раскомментируем (запрет) опцию lock.
Также сохраняем файл и закрываем. Осталось создать пользователей:
sudo nano /etc/ppp/chap-secrets
На каждого пользователя VPN отводится одна строка, в которой последовательно (разделитель – пробел) указывается его имя, удалённый адрес, пароль и локальный адрес.
Удалённый адрес можно указывать, если у пользователя есть внешний статический IP и только он будет использоваться, иначе лучше указать звёздочку, чтобы точно можно было принять подключение. Локальный нужно указать, если вы хотите, чтобы пользователю выделялся один и тот же IP-адрес в виртуальной сети. Например:
user1 * password1 * user2 11.22.33.44 password2 * user3 * password3 10.10.10.10
Для пользователя user1 подключения будут приниматься с любого внешнего адреса, локальный будет выделяться первый доступный. Для user2 будет выделять первый доступный локальный адрес, но подключения будут приниматься только с адреса 11.22.33.44. Для user3 подключения принимаются из любой точки, но локальный адрес всегда будет выделяться 10.10.10.10, который мы для него зарезервировали.
На этом настройка VPN-сервера закончена, перезапускаем его (под Linux перезагружать компьютер не нужно):
sudo service pptpd restart
Настройка VPN клиентов
Клиентскую часть можно настроить под любой операционной системой, я буду использовать в качестве примера Ubuntu Linux 16.04.
На клиентском компьютере открываем сетевые соединения (на скриншотах приведено для Ubuntu + Cinnamon, для GNOME делается аналогично, в Kubuntu похоже и сложностей не вызовет). Нажимаем кнопку «Добавить» и выбираем PPTP-соединение:
Имя VPN-подключения можно оставить стандартное, а можно указать удобное и понятное для вас – это дело вкуса. Вводим в поле «шлюз» внешний IP-адрес сервера, к которому мы подключаемся (указан при настройке в опции «listen»), ниже имя и пароль. Справа в поле «Пароль» предварительно нужно выбрать вариант «Сохранить пароль для этого пользователя»):
Далее обязательно нажимаем кнопку «Дополнительно» и отмечаем опцию «Использовать шифрование MPPE», иначе сервер не примет ваше подключение:
После этого закрываем окна и подключаемся к серверу. Если сервер находится вне вашей локальной сети, нужен доступ в интернет.
На этом организация виртуальной сети закончена, но она будет только соединять компьютеры в локальную сеть. Для выхода в интернет через сервер сети нужно сделать ещё одну настройку.
Настройка доступа в интернет через VPN
На vpn-сервере вводим следующие команды:
iptables -t nat -A POSTROUTING -o eth0 -s 10.10.10.1/24 -j MASQUERADE iptables -A FORWARD -s 10.10.10.1/24 -j ACCEPT iptables -A FORWARD -d 10.10.10.1/24 -j ACCEPT
где 10.10.10.1/24 – локальный адрес сервера и маска сети.
После этого сохраняем изменения, чтобы они работали и после перезагрузки сервера:
И применяем все изменения:
После этого у вас появится доступ в интернет. Если зайти на какой-либо сайт, отображающий ваш IP-адрес, вы увидите внешний адрес сервера, а не свой (если они не совпадают).
Напоминаю, что ответственность за последствия своих действий несёте только вы.
How to install a VPN on Linux Mint
The Proton VPN Linux app officially supports Mint 20+.
1. Download our repository setup package
This package contains the repository configuration and keys that are required to install the Proton VPN app.
2. Install the Proton VPN repository
Double-click the downloaded DEB file. Your default package manager will now install our repository.
Please don’t try to check the GPG signature of this release package (dpkg-sig –verify). Our internal release process is split into several part and the release package is signed with a GPG key, and the repo is signed with another GPG key. So the keys don’t match.
If you want to check the repo package integrity, you can check its checksum with the following command:
echo "c68a0b8dad58ab75080eed7cb989e5634fc88fca051703139c025352a6ee19ad protonvpn-stable-release_1.0.3-2_all.deb" | sha256sum --check -
3. Update the apt-get package list
The following command updates the list of available packages and their versions. Doing this allows you to install the Proton VPN App. Open Terminal and enter:
4. Install the Proton VPN Linux app
sudo apt-get install protonvpn
The Proton VPN Linux app is now installed and can be run from your application launcher menu.
Linux system tray icon (optional)
If you wish, you can install the Linux app system tray icon. This shows your connection status and allows you to easily Quick Connect or Disconnect without opening the main Proton VPN window.
To install the system tray icon, open Terminal and run:
sudo apt install gir1.2-appindicator3-0.1
If asked to select your default displays manager , you can find out what it is by running:
grep '/usr/s\?bin' /etc/systemd/system/display-manager.service
Once everything is installed, restart your PC and sign in using your Proton Account login details. If you do not have a Proton VPN account, now is the time to sign up for a Free Proton VPN plan for Linux .
The Proton VPN Linux app is now ready to secure your internet browsing and allow you to access the internet without censorship blocks.
Notes
1. How to uninstall the official app
sudo apt-get autoremove protonvpn
Remove any leftover files:
2. How to disable Kill Switch if you have uninstalled the app
If the app is still installed, you can disable the kill switch from within the app. If you have uninstalled the app with the kill switch still enabled, then this won’t be possible and you may not be able to access the internet. To fix this:
a) Identify the name of the Proton VPN connection. To do this, run:
nmcli connection show --active
You will now see a list of active connections.
b) Look for any connections with names that start pvpn- This usually includes pvpn-killswitch and pvpn-ipv6leak-protection , and may include pvpn-routed-killswitch . Delete all these connections using the following command:
nmcli connection delete [connection name]
nmcli connection delete pvpn-killswitch
c) Once you’ve done this, run the following command again to make sure that all Proton VPN connections have been deleted:
nmcli connection show --active
If any remain, delete them as described above.
3. Required dependencies
You will need one (not both, which can cause problems) of the following dependencies installed on your Mint system for the Proton VPN app to work:
Most versions of Mint come pre-installed with one of these dependencies , anyway, so it’s unlikely you’ll need to do anything else. Our app also requires:
4. Help us fix bugs with the early release version of this app
You can access new features before they are released publicly by downloading and testing the early access version of the app. By doing so, you can help us find bugs and fix them before we officially release a new version of the app.
Most people should use the stable release version of our app . We only recommend the early access app if you:
- Are an experienced Linux user
- Do not have serious concerns about your threat model
- Are happy to help us test our beta software
To install the early access version of the Proton VPN Linux app:
a) Uninstall the release version of the app (if it is installed). If you later want to replace the early access version of our app with the release version, you will need to uninstall it first.
b) Download the following package instead of the one linked to in step 1.
To check the integrity of the package, use the following command:
echo "74b37593b4e9d49842c11cd921635eb29e0a190ab16f56c53d3f41f9e1bc5707 protonvpn-beta-release_1.0.3-2_all.deb" | sha256sum --check -
Everything is otherwise the same as described above.