Oracle cloud настройка vpn

Обновлено: 07.07.2024

nikolz

Well-known member

формат putty не соответствует формату ssh оракла.
Поставьте openSSH
потом снова создайте виртуальную машину на оракле
заберите два ключа
---------------------------
С помощью открытого ключа создайте терминал на оракле
------------------------------
поместите оба ключа у себя на компе в папку
Пользователи/ваше имя/.ssh
под именами
id_rsa - секретный
id_rsa.pub - публичный

откройте на компе терминал командной строки
наберите команду

ssh -v имяВашеймашиныНа оракле@IP адрес

например так:
ssh -v ubuntu@140.777.777.777
В результате получите на терминале компа:
-----------------------------------------------------------------
Microsoft Windows [Version 10.0.19041.630]
(c) Корпорация Майкрософт (Microsoft Corporation), 2020. Все права защищены.

System information as of Sun Nov 22 15:04:22 UTC 2020

System load: 0.16 Processes: 134
Usage of /: 7.4% of 44.97GB Users logged in: 0
Memory usage: 38% IPv4 address for ens3: 10.0.0.13
Swap usage: 2%
.

nikolz

Well-known member

Releases · PowerShell/Win32-OpenSSH

Win32 port of OpenSSH. Contribute to PowerShell/Win32-OpenSSH development by creating an account on GitHub.

ildaronii

New member

На "Y" нажимать не стал, закрыл окно крестиком.

Не знаю в чем причина. Может что "OpenSSH_for_Windows_7.7p1, LibreSSL 2.6.5" у меня так то Win`10, но сторонний SSH я не ставил просто проверил что клиент SSH на виндовс стоит + добавил и сервер SSH из общей кучи приложений виндовс.
Может причина в том что имя юзера кириллицей и он не находит папку C:\Users\Артур\.ssh.
Что скажите?

ildaronii

New member


debug1: Connection established.
debug1: identity file C:\\Users\\karim/.ssh/id_rsa type 0
debug1: key_load_public: No such file or directory - это я так понимаю означает что он не нашёл такой файл или директорию
debug1: identity file C:\\Users\\karim/.ssh/id_rsa-cert type -1 - а это что за файл "id_rsa-cert" требуется?
debug1: key_load_public: No such file or directory
debug1: identity file C:\\Users\\karim/.ssh/id_dsa type -1 - а это что за файл "id_dsa" требуется?
debug1: key_load_public: No such file or directory
debug1: identity file C:\\Users\\karim/.ssh/id_dsa-cert type -1 - а это что за файл "id_dsa-cert" требуется?
debug1: key_load_public: No such file or directory
debug1: identity file C:\\Users\\karim/.ssh/id_ecdsa type -1 - а это что за файл "id_ecdsa-cert" требуется?
debug1: key_load_public: No such file or directory
debug1: identity file C:\\Users\\karim/.ssh/id_ecdsa-cert type -1 - а это что за файл "id_ecdsa-cert" требуется?
debug1: key_load_public: No such file or directory
debug1: identity file C:\\Users\\karim/.ssh/id_ed25519 type -1 - а это что за файл "id_ed25519" требуется?
debug1: key_load_public: No such file or directory
debug1: identity file C:\\Users\\karim/.ssh/id_ed25519-cert type -1 - а это что за файл "id_ed25519-cert" требуется?
debug1: key_load_public: No such file or directory
debug1: identity file C:\\Users\\karim/.ssh/id_xmss type -1 - а это что за файл "id_xmss type" требуется?
debug1: key_load_public: No such file or directory
debug1: identity file C:\\Users\\karim/.ssh/id_xmss-cert type -1 - а это что за файл "id_xmss-cert" требуется?
debug1: Local version string SSH-2.0-OpenSSH_for_Windows_7.7
debug1: Remote protocol version 2.0, remote software version OpenSSH_8.2p1 Ubuntu-4ubuntu0.1
debug1: match: OpenSSH_8.2p1 Ubuntu-4ubuntu0.1 pat OpenSSH* compat 0x04000000

Ну если вводить в проводнике виндовс "C:\\Users\\karim/.ssh" то проводник ругается что не находит ничего, а вот если ввести "C:\Users\karim/.ssh" то выходит в папку .ssh и там лежат мои два фала - "id_rsa" и "id_rsa.pub", а других файлов типа "id_rsa-cert" и прочего там нет.

ildaronii

New member

Если продолжить дальше то будет так:
Are you sure you want to continue connecting (yes/no)? y
debug1: read_passphrase: can't open /dev/tty: No such file or directory
Please type 'yes' or 'no': y
debug1: read_passphrase: can't open /dev/tty: No such file or directory
Please type 'yes' or 'no': y
debug1: read_passphrase: can't open /dev/tty: No such file or directory
Please type 'yes' or 'no': n
debug1: read_passphrase: can't open /dev/tty: No such file or directory
Please type 'yes' or 'no': n
debug1: read_passphrase: can't open /dev/tty: No such file or directory

То есть хоть "y" хоть "n" без разницы.

ildaronii

New member

Releases · PowerShell/Win32-OpenSSH

Win32 port of OpenSSH. Contribute to PowerShell/Win32-OpenSSH development by creating an account on GitHub. Скачал отсюда OpenSSH-Win64. Куда все эти файлы скопировать?

nikolz

Well-known member

Когда Вы первый раз подключаетесь к серверу, то вас спрашивают (y/n) чтобы вы подтвердили что да все правильно.
После этого при новом подключении вводите в терминале винды ранее указанную команду и в резульате получаете это:
------------------------
Microsoft Windows [Version 10.0.19041.630]
(c) Корпорация Майкрософт (Microsoft Corporation), 2020. Все права защищены.

System information as of Thu Nov 26 04:17:11 UTC 2020

System load: 0.23 Processes: 130
Usage of /: 7.4% of 44.97GB Users logged in: 0
Memory usage: 38% IPv4 address for ens3: 10.0.0.13
Swap usage: 2%

* Introducing self-healing high availability clustering for MicroK8s!
Super simple, hardened and opinionated Kubernetes for production.


17 updates can be installed immediately.
0 of these updates are security updates.
To see these additional updates run: apt list --upgradable


*** System restart required ***
Last login: Sun Nov 22 15:04:23 2020 from
ubuntu@instance-20201109-0734:

$
----------------
Вы записали ключи в каталог .ssh?
Рекомендую на виртуальный сервер установить UBUNDU.
Linux оракла у меня на одной из машин упорно не захотел подключаться.
с убундой проблем нет

В наших прошлых материалах мы рассматривали применение OpenVPN исключительно для организации каналов связи между подразделениями организации. Но современный мир приносит новые вызовы, на которые следует реагировать. Один из них - общественные сети с низкой безопасностью, для работы в которых желательно иметь защищенный канал, препятствующий доступу третьих лиц к вашему трафику. Традиционно эта задача решается использованием VPN-сервисов и в данной статье мы расскажем, как организовать собственный сервис на базе OpenVPN.

Кроме общественных сетей в последние годы стала приобретать повышенную актуальность проблема ограничения доступа к некоторым ресурсам исходя из географического расположения клиента. Это могут быть как ограничения регионального характера, например, популярный поставщик видеоконтента Netflix, так и блокировки со стороны органов власти, как яркий пример которых "ковровые блокировки" РКН в его борьбе с Телеграм, когда под ограничения попало большое количество совершенно легальных ресурсов.

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

Что нужно для создания собственного VPN-сервиса? Прежде всего потребуется VPS (виртуальный выделенный сервер) расположенный в регионе, из которого возможен неограниченный доступ к требуемым ресурсам. В большинстве случаев можно выбирать Европу или Штаты, но во втором случае задержки будут выше. На наш взгляд, выбирать Штаты имеет смысл, если вам требуется доступ к американским ресурсам, тому же Netflix или покупкам у американских продавцов на Amazon и Ebay.

Для поиска недорогих VPS можно воспользоваться специальными сайтами, такими как Low End Box или бесплатными предложениями от облачных провайдеров. Так у Amazon и Microsoft можно бесплатно получить виртуальную машину на год, а Oracle предлагает две VPS бесплатно и навсегда.

В нашем примере мы будем использовать бесплатный VPS от Oracle с Ubuntu 18.04, но данная инструкция подойдет для любых deb-based систем и с некоторыми поправками для любого другого Linux-дистрибутива.

Настройка сервера OpenVPN

Прежде всего установим OpenVPN и Easy-RSA для управления ключами:

Скопируем файлы easy-rsa в конфигурационную директорию OpenVPN и создадим символическую ссылку на файл настроек OpenSSL:

Затем откроем файл /etc/openvpn/easy-rsa/vars и изменим в нем следующие строки, указав собственные данные для сертификатов, например, так:

Сохраним файл и перейдем к созданию собственного центра сертификации (CA). Для этого перейдем в директорию нашего CA и загрузим переменные:

Очистим любые имеющиеся данные и инициализируем центр сертификации:

В процессе создания ключей вам будут задаваться вопросы, ответы по умолчанию на которые берутся из файла vars и помещены в квадратных скобках, поэтому можно просто подтверждать их нажатием Enter.

OpenVPN-internet-gateway-001.jpg

После чего в директории /etc/openvpn/easy-rsa/keys появится сертификат CA, содержащий публичный ключ, ca.crt, который должен присутствовать на каждом VPN-клиенте, и закрытый ключ центра сертификации ca.key, этот файл является секретным и не должен покидать пределы сервера.

Затем создадим файл параметров Диффи-Хеллмана, который нужен для формирования уникального сеансового ключа и обеспечения режима совершенной прямой секретности:

Данная операция, в зависимости от производительности вашего VPS, может занять достаточно много времени.

И, наконец, создадим ключевую пару для сервера:

где server - имя вашего сервера, мы рекомендуем давать осмысленные названия, чтобы потом не пришлось гадать, что именно это за ключевая пара и для чего она нужна.

На этом формирование необходимых ключей и сертификатов закончено, перейдем к настройке OpenVPN, прежде всего создадим директорию для хранения ключей. Можно, конечно, использовать ключи прямо из директории easy-rsa, но лучше отделить CA от остальных служб.

Теперь скопируем туда необходимые серверу ключи и сертификаты:

Распакуем и скопируем в директорию /etc/openvpn шаблон серверной конфигурации:

Откроем файл /etc/openvpn/server.conf и внесем в него необходимые изменения, в большинстве случаев вам придется раскомментировать нужны строки или убедиться в их наличии. Опции указаны в порядке их следования в файле:

Данные опции указывают порт, протокол и тип туннеля, менять их не следует, однако в ряде случаев может потребоваться использовать протокол tcp, но в силу более высоких накладных расходов этой ситуации желательно избегать.

Затем зададим топологию сети:

Укажем пути к ключам и сертификатам, допускаются относительные пути, в этом случае корнем будет считаться директория /etc/openvpn:

Зададим диапазон OpenVPN-сети:

И укажем файл для хранения адресов клиентов, которые будут автоматически выдаваться сервером:

Автоматически сконфигурируем клиентов на доступ в интернет через OpenVPN-подключение:

И передадим им собственные DNS-сервера:

Укажем параметры проверки активности:

Сервер будет проверять клиента каждые 10 секунд и при отсутствии ответа через 120 секунд клиент будет считаться неактивным.

Обязательно закомментируйте строку:

Для сценария доступа в интернет дополнительная TLS-аутентификация будет излишней.

В последних версиях OpenVPN включен механизм автоматического согласования протоколов шифрования между клиентом и сервером, по умолчанию будет выбран шифр AES-256-GCM, но так как вычислительные возможности VPS обычно ограничены и большого смысла шифровать канал доступа в интернет сложными шифрами нет, то отключим соглассование и укажем достаточно простой AES-шифр:

Также в новых версиях доступен новый механизм компрессии, для его включения укажем:

Данная опция будет автоматически отправлена на клиент, что облегчает его конфигурирование.

Если у вас есть старые версии клиентов (ниже 2.4), то можно использовать простое lzo-сжатие, для этого закомментируйте вышеприведенные строки и добавьте:

Эту опцию также потребуется добавить в конфигурационные файлы клиентов.

В целях безопасности понизим права запущенного сервера:

После чего проконтролируем наличие опций, отвечающих за правильные права к некоторым ресурсам после их понижения:

Укажем путь к файлам логов:

И укажем его подробность:

Во время отладки можно поднять уровень логов до 5-6.

Настройка брандмауэра и маршрутизации

Основной задачей нашего сервера является обеспечение выхода в интернет и будет разумно обеспечить минимальный набор правил безопасности, во многом они будут повторять те правила, которые мы использовали для наших роутеров на базе Linux.

Создадим файл правил:

и внесем в него следующие строки, обратите внимание на имя сетевого интерфейса вашего VPS, в нашем случае это ens3:

Не забудем сделать файл исполняемым:

Данный файл требуется запускать после создания туннельного интерфейса tun0, поэтому откроем конфигурационный файл сервера OpenVPN /etc/openvpn/server.conf и в его конце добавим опцию:

Перезагрузим сервер и убедимся, что OpenVPN сервер автоматически запустился и создал туннельный интерфейс, это можно сделать командой:

OpenVPN-internet-gateway-002.jpg

Также проверим применение правил брандмауэра:

OpenVPN-internet-gateway-004.jpg

Укажите: Тип источника - CIDR, Исходный CIDR - 0.0.0.0/0, IP-протокол - UDP, Диапазон исходных портов - Все, Диапазон конечных портов - 1194.

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

Настройка клиента начинается на сервере с получения ключей и сертификатов клиента, для этого перейдем в директорию центра сертификации и загрузим переменные:

Затем создадим ключевую пару клиента командой:

где client -имя клиента, мы также рекомендуем давать им осмысленные имена.

Теперь скопируем файлы, которые необходимо передать на компьютер клиента в домашнюю директорию и изменим их владельца (по умолчанию владелец - root), чтобы вы смогли их скопировать с помощью любого FTP или SFTP клиента. В нашем случае имя пользователя ubuntu:

Помните, что закрытый ключ клиента client.key является секретным и следует избегать его передачи по открытым каналам связи.

Также не будет лишним сразу скопировать шаблон клиентской конфигурации:

После чего скопируйте все эти файлы на клиент и установите на нем OpenVPN, в Windows системах советуем изменить путь установки OpenVPN на более короткий и без пробелов, скажем, C:\OpenVPN.

Затем откроем файл client.ovpn, который в Windows системах должен быть расположен в C:\OpenVPN\config, а в Linux в /etc/openvpn, и внесем в него следующие изменения:

Данные опции задают клиентский режим работы, тип туннеля и используемый протокол UDP.

Затем укажем адрес сервера:

Следующая опция предписывает клиенту постоянно разрешать имя OpenVPN-сервера, имеет смысл если мы указываем сервер по FQDN-имени, а не IP-адресу.

Для Linux систем обязательно укажите:

В Windows данные опции следует обязательно закомментировать.

Проконтролируем наличие следующих опций:

Укажем пути к ключам и сертификатам, для Linux систем подразумеваем их нахождение в /etc/openvpn/keys:

Для Windows систем предположим их нахождение в C:\OpenVPN\keys:

Также обязательно закомментируем опцию:

Включим защиту от атак типа "человек посередине":

И укажем используемый шифр, он должен совпадать с указанным на сервере:

Остальные опции можно оставить без изменений. Сохраним файл и запустим OpenVPN-клиент.

OpenVPN-internet-gateway-005.jpg

Обращаем внимание на национальную принадлежность адреса, в данном случае мы выходим в интернет из Штатов.

Самое время провести замер скорости доступа, мы будем использовать для этого популярный сервис SpeedTest. Первый замер без VPN:

OpenVPN-internet-gateway-006.jpg

Второй через OpenVPN-канал:

OpenVPN-internet-gateway-007.jpg

Сразу обращаем внимание на выросший пинг - это последствия размещения сервера в Штатах, а также скорость скачивания не выше 10 Мбит/с - ограничение бесплатного тарифа Oracle, хотя в большинстве случаев этого вполне достаточно для комфортного серфинга.

Напоследок затронем еще один момент. Мы настроили сервер таким образом, что он автоматически конфигурирует клиента на доступ в интернет через OpenVPN-подключение, но бывают случаи, когда это не нужно. Допустим вы хотите пустить через VPN только некоторые ресурсы, а остальной доступ должен осуществляться через локального провайдера. В таком случае добавьте в конфигурационный файл клиента опцию:

После чего клиент будет игнорировать передаваемые с сервера опции маршрутизации и DHCP-опции, такие как DNS-сервера и т.п.

Oracle Cloud Free Tier бесплатный виртуальный сервер VPS и проброс портов

Вот что пишет сама Oracle:

В приложении Oracle Cloud Free Tier можно создать аккаунт Oracle Cloud, в котором Вам будут доступны сервисы Always Free и бесплатная пробная версия Вашего продукта. Вместе с ней доступен бонус в размере 300 долларов США, который Вы можете потратить на тестирование любых доступных сервисов Oracle Cloud Infrastructure. Бонус, как и сама пробная версия, предоставляется на 30 дней. Сервисами Always Free можно пользоваться бессрочно. Сервисы, доступные для бесплатного тестирования, можно использовать, пока Вы не израсходуете сумму бонуса (300 долларов США) или не истекут 30 дней пробного периода (что произойдет раньше).

Часто задаваемые вопросы об Oracle Cloud Free Tier | Oracle Россия и СНГ

Сама регистрация не сказал бы, что простая, но и не сложная. Главное вводить все правдивые данные, а имя фамилию как на карте. Затем указать данные карты. Сначала спишут 0.83 евро. Затем я ждал сутки письма, пришло и как только перешел по ссылке в письме, то списали аж 10 евро, правда и в первом и во втором случаи моментально вернули деньги обратно.

Когда вы попадаете в личный кабинет то видите такую картину:

Oracle Cloud Free Tier бесплатный виртуальный сервер VPS и проброс портов

Oracle Cloud Free Tier бесплатный виртуальный сервер VPS

Все бесплатные услуги помечены соответствующим значком.

Создать виртуальную машину не сложно, но есть нюансы.


Нажимаем создать виртуальную машину


Придумываем имя и жмем Edit для выбора образа


Выбираем образ, я за Ubuntu, помеченный бесплатным .


Первый раз нужно будет создать приватную сеть

Заметьте, это первая особенность Oracle Cloud, на виртуальном сервере не будет белого общедоступного IP адреса. IP адрес будет взят из диапазона 10.0.0.0/16 так как этот диапазон создан по умолчанию. В дебрях настроек можно этот диапазон изменить, но сейчас речь не об этом. Но белый общедоступный IP адрес у вас всетаки будете, но он будет работать через NAT. И нужно будет что делать? правильно пробрасывать порты на NAT сервере. Об этом чуть позже.


Обязательно скачайте ключи.

Дело в том, что образы Oracle не поддерживают изначально доступ по паролю, только по ключу и если вы его не скачаете, то подключиться к своему виртуальному серверу не сможете. Кстати, откройте ссылку в браузере SSH Key pair тут подробно описано как подключиться к вашей виртуалке с помощью ключа и Putty.


Рекомендую выбрать размер диска

Если не выбрать размер диска, то он будет равен 46Гбайт.

Когда все выбрано смело жмем кнопку CREATE внизу страницы и начнется создание и запуск вашей первой бесплатной виртуально машины в облаке Oracle.

Вот так это будет выглядить:


Первое на что надо обратить внимание, это публичный адрес. Именно по этому адресу можно подключиться к виртуальной машине. Так же есть имя пользователя. А пароль как я уже и говорил только по ключу, который вы должны были скачать на этапе создания VPS.

И все бы хорошо, но как я и говорил, у вас открыт только 22 порт и виртуальный сервер находится за NAT сервером. Что бы попасть на ваш бесплатный виртуальный сервер Oracle по другому порту, например 80 или 443, вам нужно сделать несколько вещей. Первое, жмем на Virtual cloud network (на скрине выше кнопка с лева внизу).

Попадаем в такое меню, где надо выбрать Security List и затем сам лист:


Вот тут и надо разрешить требуемый порт отличный от 22



Вот так выглядит правило разрешающее доступ к виртуальному серверу по 80 порту

Но и это еще не все. Вообще все это меню в сервисе Oracle весьма запутанное и парой, что бы сделать элементарные вещи, нужн несколько часов читать документацию.

Дело в том, что оразы, которые Oracle раскатывает содержат включенный фаервол, который тоже блокирует все порты кроме 22. И соответственно нужно еще и в самой виртуалке открыть порт 80. Делается это такой командой:

Только после этого с интернета появится доступ к вашему бесплатному виртуальному серверу Oracle по 80 порту.

Но и это еще не все. Теперь нужно сохранить эти правила в конфигурацию, что бы после перезагрузки они никуда не делись. Для этого нужно добавить в файл /etc/iptables/rules.v4 следующее, но так что бы оно стояло перед REJECT :

Ох и на придумывали же они. ))))

Вот такое вот оно Oracle Cloud Free Tier бесплатный виртуальный сервер VPS и проброс портов.

Задался целью организовать удаленный доступ к серверу УД, чтоб можно было занимается настройкой УД с работы, ну и с телефона в случае чего зайти.

Создал экземпляр виртуальной машины Ubuntu 20.04. Установил там Wireguard - имеется следующая конфигурация на wg0.conf:

До самой Raspberry Pi еще дело не дошло. Сейчас хотя бы добиться нормального подключения к серверу со всех клиентов, чтоб был интернет, ping между всем клиентами, попасть в локальную сеть.

Почему-то SSH работает. С сайта сканера портов по общедоступному IP вижу открытый 22-й порт TCP, а вот 51820 закрыт. Wireguard по идеи работает, wg show показывает информацию о сервисе, но трафик не бегает и клиенты при подключении не получают данные.

На сервере тут /etc/sysctl.conf раскомментировал net.ipv4.ip_forward=1, сюда /proc/sys/net/ipv4/ip_forward добавил 1.

Думаю, что нужно больше ковыряться в веб-морде самого Oracle Cloud, хотя и тут вроде разрешил все входящие соединения.

Тут есть общедоступный IP-адрес, по которому получаю доступ к виртуальной. машине.
Есть основной виртуальный адаптер с частным IP-адресом 10.0.0.3. Подсеть subnet со следующими параметрами:
Блок CIDR: 10.0.0.0/24
Тип подсети: Региональная
Доступ к подсети: Общедоступная подсеть

Есть еще тут таблица маршрутизации по умолчанию, где у меня есть правила для входящего и исходящего трафика с назначением\источником: 0.0.0.0/0, со всеми IP протоколами и разрешением трафика для всех портов.

В правилах маршрутизации есть еще разные варианты типа адресата, кроме Интернет-шлюз, которые мне не совсем понятны, хоть и читал документацию.

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

В общем если есть идеи, то подскажите куда копать и где может быть затык. Для начала нужно увидеть сканером открытый порт, а далее уже проверять правильно ли настроен WG и т.д.

Под спойлером 7 скриншотов с веб-интерфейса Oracle и терминал виртуальной машины для наглядности, хотел максимально подробно описать ситуацию.

Читайте также: