Carding Forum
Professional
- Messages
- 2,788
- Reaction score
- 1,175
- Points
- 113
Конечно, вы также можете подписаться на соответствующую услугу, но наличие SSH-доступа к компьютеру с доступом в Интернет означает, что вы можете создать свою собственную VPN-службу, не тратя ни копейки. Основная идея заключается в подключении к удаленному компьютеру в определенной сети и маршрутизации всего сетевого трафика локально в эту сеть. Сегодня давайте узнаем, как создать свою собственную VPN-службу.
Предварительная подготовка
Все, что вам нужно, это доступ root к обоим компьютерам. Вы должны установить SSH-сервер на удаленном компьютере. Конечно, вам также понадобится SSH-клиент. Вам нужно будет настроить как локальный, так и удаленный компьютер. Я использую KDE, поэтому я использую NetworkManager для выполнения необходимых настроек, но я также могу сделать это наоборот. Есть некоторые особые настройки, которые необходимо выполнить на сервере, но они, скорее всего, уже настроены. Файл /etc/ssh/sshd_config должен содержать строку PermitTunnel=yes. Кроме того, вам может потребоваться установить AllowTCPForwarding на "yes" для параметра. Брандмауэр также может потребовать некоторой настройки. А при настройке плагина NetworkManager инструкции будут полезны даже тем, кто не использует программу.
Настройки на стороне клиента
Если вы используете NetworkManager, вам понадобится соответствующий плагин. Для Neon и других дистрибутивов на базе Debian подойдет пакет network-manager-ssh . Это все, что вам нужно. Если вы не хотите использовать NetworkManager, вы можете использовать следующую команду:
Здесь нам нужен доступ root к обеим системам, потому что мы создаем туннели. Даже с плагинами это может вызвать несколько проблем. Очевидно, мы не хотим, чтобы нас постоянно спрашивали о пароле для подключения SSH и приходилось проверять ключ. Но вы можете решить эти проблемы, настроив VPN вручную.
Вопросы
Большинство современных систем не позволяют входить в систему как root с использованием пароля, а иногда вообще не позволяют подключаться к системе в этом режиме. Поэтому сначала нам нужно решить эту проблему. Кроме того, когда NetworkManager запускает SSH, он ищет ключ пользователя root вместо ключа обычного пользователя. Если он не мог что-то найти, он останавливался. Поэтому нам нужно обеспечить плавный вход в качестве пользователя root.
Чтобы разрешить root входить на сервер, отредактируйте файл /etc/ssh/sshd_config и установите PermitRootLogin на Yes. Я рекомендую работать в этом режиме только на время, необходимое для выполнения следующих шагов по настройке сервера. Затем перезапустите сервер sshd с помощью следующей команды:
Вы также можете использовать следующую команду:
После входа на локальный компьютер с использованием стандартной учетной записи вам необходимо использовать ssh-copy-id для установки сертификата на хост-компьютер. После этого вам следует вернуться на сервер и изменить значение PermitRootLogin в /etc/ssh/sshd_config, чтобы запретить пароли. Это позволит вам подключаться к серверу как пользователь root, используя сертификат вместо пароля.
Если вы уже вошли в систему как пользователь root, вас, возможно, уже спросили, хотите ли вы принять ключ сервера. Если нет, у нас проблема. Если это возможно, войдите в систему и ответьте «да» на соответствующий вопрос, и тогда система перестанет задавать этот вопрос. Конечно, если это невозможно, мы можем решить проблему, отключив StrictHostKeyChecking.
Теоретически можно передать дополнительные параметры ssh в плагин NetworkManager, но по какой-то причине этот подход не работает с версией плагина из репозиториев. Если вы не используете плагин и делаете все вручную, вы можете сделать необходимые настройки самостоятельно. Настройки SSH для пользователя root можно задать в /root/.ssh/config. Вы также можете задать глобальные настройки в /etc/ssh/ssh_config.
Хост *.hackaday.com hackaday.com
StrictHostKeyChecking нет
Туннель да
Если вам не нравится проверка ключа хоста, просто войдите в систему как root один раз и примите удаленный ключ вручную. Или, если вы смелы, отредактируйте /root/.ssh/known_hosts вручную.
Подключение
Теперь все должно работать. Если вы используете плагин NetworkManager, вам просто нужно будет установить новое соединение. То есть вам нужно будет зайти в подраздел VPN Connections и выбрать SSH.
*при выборе типа подключения
Вам необходимо указать сертификат, который вы хотите использовать для входа в удаленную систему.
*настройка соединения
После сохранения настроек соединения это соединение должно быть активировано, как и любой другой сетевой интерфейс. Если вы хотите опробовать свой новый VPN, сначала, как обычно, проверьте свой IP-адрес на специальном сайте. После этого активируйте VPN и снова узнайте свой адрес. Если вам не удается установить VPN-соединение, проверьте системный журнал на наличие информации об ошибках, выдаваемых SSH.
Заключение
Конечно, существуют и другие решения VPN. Но почти наверняка периферийный компьютер, с которым вы работаете, имеет сервер SSH. Поэтому рекомендуемый метод установления VPN-подключения через SSH — это простое и удобное решение.
- 1. Предварительная подготовка
- 2. Настройки на стороне клиента
- 3. Проблемы
- 4. Связь
- 5. Вывод
Предварительная подготовка
Все, что вам нужно, это доступ root к обоим компьютерам. Вы должны установить SSH-сервер на удаленном компьютере. Конечно, вам также понадобится SSH-клиент. Вам нужно будет настроить как локальный, так и удаленный компьютер. Я использую KDE, поэтому я использую NetworkManager для выполнения необходимых настроек, но я также могу сделать это наоборот. Есть некоторые особые настройки, которые необходимо выполнить на сервере, но они, скорее всего, уже настроены. Файл /etc/ssh/sshd_config должен содержать строку PermitTunnel=yes. Кроме того, вам может потребоваться установить AllowTCPForwarding на "yes" для параметра. Брандмауэр также может потребовать некоторой настройки. А при настройке плагина NetworkManager инструкции будут полезны даже тем, кто не использует программу.
Настройки на стороне клиента
Если вы используете NetworkManager, вам понадобится соответствующий плагин. Для Neon и других дистрибутивов на базе Debian подойдет пакет network-manager-ssh . Это все, что вам нужно. Если вы не хотите использовать NetworkManager, вы можете использовать следующую команду:
Code:
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 с помощью следующей команды:
Code:
systemctl restart sshd
Вы также можете использовать следующую команду:
Code:
/etc/init.d/ssh restart
После входа на локальный компьютер с использованием стандартной учетной записи вам необходимо использовать ssh-copy-id для установки сертификата на хост-компьютер. После этого вам следует вернуться на сервер и изменить значение PermitRootLogin в /etc/ssh/sshd_config, чтобы запретить пароли. Это позволит вам подключаться к серверу как пользователь root, используя сертификат вместо пароля.
Если вы уже вошли в систему как пользователь root, вас, возможно, уже спросили, хотите ли вы принять ключ сервера. Если нет, у нас проблема. Если это возможно, войдите в систему и ответьте «да» на соответствующий вопрос, и тогда система перестанет задавать этот вопрос. Конечно, если это невозможно, мы можем решить проблему, отключив StrictHostKeyChecking.
Теоретически можно передать дополнительные параметры ssh в плагин NetworkManager, но по какой-то причине этот подход не работает с версией плагина из репозиториев. Если вы не используете плагин и делаете все вручную, вы можете сделать необходимые настройки самостоятельно. Настройки SSH для пользователя root можно задать в /root/.ssh/config. Вы также можете задать глобальные настройки в /etc/ssh/ssh_config.
Хост *.hackaday.com hackaday.com
StrictHostKeyChecking нет
Туннель да
Если вам не нравится проверка ключа хоста, просто войдите в систему как root один раз и примите удаленный ключ вручную. Или, если вы смелы, отредактируйте /root/.ssh/known_hosts вручную.
Подключение
Теперь все должно работать. Если вы используете плагин NetworkManager, вам просто нужно будет установить новое соединение. То есть вам нужно будет зайти в подраздел VPN Connections и выбрать SSH.
*при выборе типа подключения
Вам необходимо указать сертификат, который вы хотите использовать для входа в удаленную систему.
*настройка соединения
После сохранения настроек соединения это соединение должно быть активировано, как и любой другой сетевой интерфейс. Если вы хотите опробовать свой новый VPN, сначала, как обычно, проверьте свой IP-адрес на специальном сайте. После этого активируйте VPN и снова узнайте свой адрес. Если вам не удается установить VPN-соединение, проверьте системный журнал на наличие информации об ошибках, выдаваемых SSH.
Заключение
Конечно, существуют и другие решения VPN. Но почти наверняка периферийный компьютер, с которым вы работаете, имеет сервер SSH. Поэтому рекомендуемый метод установления VPN-подключения через SSH — это простое и удобное решение.