как получить доступ к серверу в VPN с домашнего компьютера через отдельный ноутбук с vpn соединением

tar -xjvf "Sublime Text 2.0.2 x64.tar.bz2"

Требуются кавычки , потому что в имени файла есть пробелы.

0
13.01.2019, 04:06
2 ответа

Если вы можете использовать SSH для подключения к корпоративному ноутбуку со своего домашнего компьютера, вы можете использовать SSH-туннелирование или SSH Jump Hosts

0
28.01.2020, 04:04

Существует много документации по ssh-туннелированию, но они не охватывают этот конкретный сценарий.

Итак, чтобы получить от Рабочая станция < -> Ноутбук < -> Сеть компании нам нужна дополнительная система на N, которая играет роль маршрутизатора для подключения отдельных сетей.

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

Итак, мы можем получить соединение как W < -> ​​VM1 < -> VM2 < -> N1 < -> N2 < -> CN

Это можно настроить с помощью конфигурации ssh. Пример с некоторыми фиктивными IP-адресами.

W =   192.0.0.3   <LAN>      VM1 = 192.0.0.2
VM1 = 192.0.0.2   <route>    VM2 = 10.0.0.3
VM2 = 10.0.0.3    <NAT>      NATRouter = 10.0.0.1
NR =  10.0.0.1    <nat2host> N1 = 20.0.0.4
N2 = 20.0.0.4     <vpnroute> CN 0.0.0.0/0

Это описание сетевых переходов между системой.
Итак, чтобы подключиться к серверу в CN, нам нужно решить 2 отдельных шага. Нам нужно настроить конфигурации ssh для промежуточных переходов. Записи.ssh/config:

# reaching the VM
Host VM
    User            vmuser
    IdentityFile    ~/.ssh/vm_id_rsa
    ForwardX11      yes

# reaching a host inside the CN
Host CNhost
    User            companyuser
    IdentityFile    ~/.ssh/cnhost_id_rsa
    ForwardX11      yes
    ProxyCommand    ssh -A vm nc %h %p 2>  /dev/null    

Другой важной проблемой является правильная маршрутизация внутри виртуальной машины. Маршрут к соединенной мостом локальной сети 192.0.0.0/24 должен иметь более низкую метрику, чем маршрут по умолчанию к NAT 10.0.0.1.

vm$ ip route
default via 10.0.0.1 metric 100
10.0.0.0/24 dev nat1 metric 100
192.0.0.0/24 dev bridge1 metric 99

Теперь интересен случай, когда мы также хотим получить доступ к серверу во внутренней сети, который доступен только с сервера, уже находящегося в сети компании. Классическая конфигурация JumpHost. Для этого нам нужна еще одна запись.ssh/config

# reaching a host on a CN internal network
Host CNInternalhost
    User            cnInternalUser
    IdentityFile    ~/.ssh/cninternalhost_id_rsa
    ForwardX11      yes
    ProxyCommand    ssh -A CNhost nc %h %p 2>  /dev/null

Теперь мы можем просто подключиться к CNInternalhost по ssh.
В противном случае необходимо проверить таблицы маршрутизации. (напр. отсутствующие маршруты или неверные метрики)


Но мы также хотим получить доступ к сервису на этом внутреннем хосте напрямую с нашей локальной рабочей станции!

Для этого теперь мы создаем туннель, используя переходы, предварительно настроенные в.ssh/config

ssh -L <portOnLocalhost>:CNInternalhost:<portOnCNInternalHost> CNhost

Теперь мы можем получить доступ к CNInternalhost :< portOnCNInternalHost > на локальном хосте :< portOnLocalhost >

Если мы хотим повторно использовать дополнительное сетевое имя (ServerX )в нашей локальной настройке,мы можем добавить псевдоним хоста на наш локальный хост для IP-адреса нашей локальной сети и создать для него дополнительный туннель.

echo 192.0.0.3 ServerX >> /etc/hosts

Для этого также требуется дополнительная запись.ssh/config:

# configuring another host on the CN internal network
Host serverX
    User            cnInternalUser
    IdentityFile    ~/.ssh/serverX_id_rsa
    ForwardX11      yes
    ProxyCommand    ssh -A CNhost nc %h %p 2>  /dev/null

с помощью этой конфигурации ssh мы теперь можем создать такой туннель

ssh -L serverX:<portOnLocalhost>:serverX:<portOnLocalhost> CNhost

пока serverX доступен с CNhost.
И мы можем сделать:

$ wget serverX:<portOnLocalhost>
0
28.01.2020, 04:04

Теги

Похожие вопросы