Я очень новичок в Linux.
У меня дома есть компьютер с Ubuntu, подключенный к VPN с использованием OpenVPN.
Я хотел бы иметь возможность подключаться к нему по SSH из-за пределов моей сети, используя мой IP-адрес маршрутизатора, и, возможно, иметь возможность доступа к ftp на нем.
Как я могу это сделать?
Это откроет мое VPN-соединение, чтобы оно больше не было безопасным?
Спасибо за вашу помощь.
Да, можно соединиться с ПК Ubuntu от за пределами домашней сети даже при том, что ПК Ubuntu подключен к соединению OpenVPN - только если Вы находитесь позади маршрутизатора NAT (который я собираюсь предположить, что Вы, потому что едва ли кто-то соединяется непосредственно с Межсетями в эти дни).
При переводе в рабочее состояние соединения OpenVPN виртуальный "сетевой интерфейс" создается (вероятно, названный tun0). Этот интерфейс будет иметь свой собственный IP-адрес (вероятно, что-то как 10.x.x.x), и клиент OpenVPN достаточно умен для установки "правил маршрутизации" (т.е. какой трафик отправляется по тому, какой интерфейс) так, чтобы локальный трафик не был отправлен по туннелю VPN.
Как я могу сделать это?
Вот именно вкратце. Большинство домашних маршрутизаторов имеет функцию "перенаправления портов". Для "внешнего" порта на Вашем маршрутизаторе я рекомендовал бы использовать что-то другое, чем значение по умолчанию (порт TCP 22). Например, Вы могли установить правило перенаправления портов как: "передайте входящий трафик на внешнем порте TCP 9922 к внутреннему порту TCP 22". После того как Вы открываете порт TCP 22 в Интернете, много людей приедет стук' :). Просто изменение порта не "укрепляется" по сути - необходимо также настроить сервер SSH, чтобы использовать ключевую аутентификацию и отключить пароли в целом.
Я не могу предоставить Вам более подробную информацию, потому что все домашние маршрутизаторы (и их интерфейсы) отличаются. Необходимо будет заглянуть к тому, как настроить перенаправление портов на конкретном маршрутизаторе. Вот некоторые снимки экрана интерфейсов перенаправления портов для различных маршрутизаторов. Независимо от интерфейса понятие является тем же: Вы вводите внешний порт (или, в некоторых случаях, "диапазон портов"), и целевой IP-адрес и порт. С точки зрения маршрутизатора это может думаться без обиняков как это: "..., когда я получаю внешний трафик на порте TCP 9922, передайте порту TCP 22 к локальной машине 192.168.0.2..." (это предполагает установку порта TCP 9922, чтобы быть переданными полю Ubuntu, которое имеет IP-адрес 192.168.0.2 и Сервер SSH, слушающий на порте TCP 22).
При представлении Сервера SSH внешнему миру необходимо укрепить его как можно больше. Как упомянуто выше, одна быстрая победа должна отключить аутентификацию по паролю в целом и включить аутентификацию с открытым ключом.
Который открывает мое соединение VPN, таким образом, это больше не безопасно?
Не уверенный, как ответить на это. Во-первых, необходимо просто предположить, что Вы "в безопасности" просто, потому что Вы подключены к VPN. Я видел, что некоторые поставщики VPN оставляют открытые порты всего своего пользователя (сервисы) выставленный всем на той же подсети VPN. Например, ПОЛЬЗОВАТЕЛЬ-VPN-A может получить доступ к долям самбы VPN-USER-B, которые не защищены паролем. Бремя находится на Вас, чтобы удостовериться, что Ваши компьютеры/устройства являются укрепленной безопасностью (в меру Вашей способности).
... SSH снаружи моей сети с помощью моего IP-адреса маршрутизаторов и возможно способности получить доступ к ftp на нем также
Если Вы устанавливаете и открываете FTP внешнему миру, то Вы определенно не собираетесь быть "в безопасности". Лучше сохранять Ваше "место открытых портов" как можно меньше. Можно сделать примерно что-либо по SSH. Например, SSH имеет "подсистему" под названием "SFTP". Для наблюдения этого в действии можно открыть файловый менеджер и ввести к строке поиска:
sftp://123.123.123.123:9922
(принятие Вашего Сервера SSH слушает на IP-адресе 123.123.123.123, порт 9922). Проблема, конечно, состоит в том, что не все операционные системы/устройства имеют достойный установленный клиент SSH.