Как создать собственный VPN-сервис

Как создать собственный VPN-сервис

Конечно, вы также можете приобрести подписку на соответствующую услугу, но наличие SSH-доступа к компьютеру с доступом в Интернет означает, что вы можете создать свой собственный VPN-сервис, не потратив ни копейки. Основная идея заключается в подключении к удаленному компьютеру в определенной сети и передаче всего сетевого трафика локально в эту сеть. Сегодня изучим как как создать собственный VPN-сервис.

Предварительная подготовка

Все, что вам нужно, это root-доступ к обоим компьютерам. Вы должны установить SSH-сервер на удаленный компьютер. Конечно, вам также понадобится SSH-клиент. Вам нужно будет выполнить некоторые настройки как на локальном, так и на удаленном компьютерах. Я использую KDE, поэтому я использую NetworkManager для выполнения необходимых мне настроек, но я также могу сделать обратное. Использование NetworkManager упрощает задачу.

VPN

Все, что вам нужно, это root-доступ к обоим компьютерам. Вы должны установить SSH-сервер на удаленный компьютер. Конечно, вам также понадобится SSH-клиент. Вам нужно будет выполнить некоторые настройки как на локальном, так и на удаленном компьютерах. Я использую KDE, поэтому я использую NetworkManager для выполнения необходимых мне настроек, но я также могу сделать обратное. Использование NetworkManager упрощает задачу.

Есть некоторые специальные настройки, которые необходимо выполнить на сервере, но, скорее всего, они уже сделаны на. Поэтому файл /etc/ssh/sshd_config должен содержать строку PermitTunnel=yes. Кроме того, вам может потребоваться установить для параметра AllowTCPForwarding значение «yes». Брандмауэр также может потребовать некоторой настройки. А пока инструкция по настройке плагина NetworkManager пригодится даже тем, кто программой не пользуется.

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

Если вы используете NetworkManager, вам понадобится соответствующий плагин. Для Neon и других дистрибутивов на базе Debian подойдет пакет network-manager-ssh. Это все, что вам нужно. Если вы не хотите использовать NetworkManager, вы можете использовать следующую команду, предоставленную автором плагина:

ssh -f -v -o Tunnel=point-to-point -o ServerAliveInterval=10 -o TCPKeepAlive=yes -w 100:100 root@YOUR_SSH_SERVER \ '/sbin/ifconfig tun100 172.16.40.1 netmask 255.255.255.252 pointopoint 172.16.40.2' && \ /sbin/ifconfig tun100 172.16.40.2 netmask 255.255.255.252 pointopoint 172.16.40.1

Здесь нам нужен root-доступ к обеим системам, потому что мы создаем туннели. Даже с плагинами это может вызвать несколько проблем. Очевидно, мы не хотим, чтобы нас постоянно спрашивали пароль для SSH-соединения и приходилось проверять ключ. Но вы можете решить эти проблемы, если настроите VPN вручную.

Проблемы

Большинство современных систем не позволяют войти в систему под пользователем root с использованием пароля, а иногда и вовсе не позволяют подключиться к системе в этом режиме. Поэтому нам нужно сначала решить эту проблему. Кроме того, когда NetworkManager запускает SSH, он ищет ключ пользователя root вместо ключа обычного пользователя. Если бы он не мог что-то найти, он бы остановился. Поэтому нам необходимо обеспечить беспрепятственный вход в систему root.

Чтобы разрешить root войти на сервер, отредактируйте файл /etc/ssh/sshd_config и установите для PermitRootLogin значение Yes. Я рекомендую работать в этом режиме только в течение времени, необходимого для выполнения последующих этапов настройки сервера. Затем вам необходимо перезапустить sshd-сервер, например, с помощью следующей команды:

systemctl restart sshd

Ещё можно воспользоваться такой командой:

/etc/init.d/ssh restart

Потом после входа на локальный компьютер с использованием стандартной учетной записи, вам необходимо задействовать ssh-copy-id для установки сертификата на хост-компьютере. Как только это будет сделано, вам нужно возвратиться на сервер и поменять значение PermitRootLogin в /etc/ssh/sshd_config на запретный пароль. Благодаря этому к серверу можно будет присоединиться как пользователь root, используя сертификат, а не пароль.

Если вы уже вошли в систему как root, по-видимому, вас уже спросилижелаете ли вы принять ключ сервера. Если это не так, у нас есть проблема. Если можете, войдите в систему и ответьте «да» на соответствующий вопрос,послечего система перестанет задавать вопросРазумеется если это невозможно сделать, мы можем решить проблему, отключив StrictHostKeyChecking.

Теоретически можно передать плагину NetworkManager дополнительные параметры ssh, но по какой-то причине этот подход не работает с версией плагина из репозиториев. Если вы не используете плагин и делаете все вручную, то необходимые настройки можно сделать самостоятельно. Настройки SSH для пользователя root можно установить в /root/.ssh/config. Вы также можете установить глобальные настройки в /etc/ssh/ssh_config.

Если вы корректируете глобальные настройки.  рассмотрите перспективу внедрения /etc/ssh/ssh_config.d, если ваша система поддерживает это. Благодаря этому вы сумеете задать параметры для реального хоста, которые не будут перезаписаны при обновлении системыНапример, вы можете воссоздать файл hackaday.conf в соответствующем каталоге:

Host *.hackaday.com hackaday.com

StrictHostKeyChecking no

Tunnel yes

Снова же, если вам не нравится проверка ключа хоста, просто войдите в систему как root один раз и примите удаленный ключ собственноручно. Или, если вы смелыотредактируйте /root/.ssh/known_hosts собственноручно.

Подключение

Сейчас все необходимо быть способно к работе. Если вы задействуете плагин NetworkManager, вам просто нужно будет установить новое соединение. То есть вам нужно войти в подраздел VPN-подключения и подобрать SSH.

Выбор типа соединения

Сейчас вам нужно настроить несколько параметров для нового сопряжения. В том числе – необходимо обозначить сертификат, который вы желаете применить для входа в удаленную систему.

Настройка соединения

После сохранения настроек подключения это подсоединение надо активировать, как и любой другой-то сетевой интерфейс. Если вы хотите опробовать свой новый VPN, поначалу, как обычно, проверьте свой IP-адрес на особом сайте. После этого активируйте VPN и повторно выясните свой адрес. Если вам не удается установить VPN-соединение,проверьте системный журнал на нахождение информации об ошибкахпродуцированных SSH.

Заключение

Разумеетсяесть и иные решения VPN. Но практически гарантированно, что на периферийном компьютере, с которым вы работаетеесть SSH-серверЕстественно рекомендуемый метод налаживания VPN-соединения через SSH — это простенькое и комфортное решение, которое можно задействовать без какой-либо экспертной спецподготовки.

   

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Click to rate this post!
[Total: 1 Average: 5]

Leave a reply:

Your email address will not be published.