Vpn with ssh windows

Настройка VPN через SSH с использованием Putty

Дата последнего редактирования: 22.11.2011.

Сегодня пришлось вспоминать минут 20 как сделать сабж, попарился и решил написать на сайт, для себя как памятку и для других — вдруг кому пригодиться.

Задача: осуществить безопасное (шифрованное) соединение от КЛИЕНТА к СЕРВЕРУ_ПОЧТЫ по протоколу POP3 (получение почты, обычно порт 110). Ну и пусть нам это надо не постоянно, а иногда (иначе надо все-таки настраивать нормальный VPN-сервер).

Т.к. по умолчанию трафик по протоколу POP3 передается открытым текстом, а мы передаем очень секретный пароль от почтового ящика, то почтовый трафик надо шифровать 🙂 Чем мы будем его шифровать? Поднимать специальный VPN-сервер, редирект портов, настраивать сертификаты и прочее — часто не выход, т.к. это сложно даже для большинства системных администраторов, к тому же, как сказано чуть выше, нам все это надо для периодических сеансов работы, возможно, только для нас и нужных 😉

Мы будем делать соединение между КЛИЕНТОМ и СЕРВЕРОМ_ПОЧТЫ внутри шифрованного содинения по протоколу ssh.

Возьмем бесплатный клиент ssh для Windows — Putty — и установим его на КЛИЕНТА (т.е. на наш домашний компьютер).

Командная строка Putty

Далее установим зашифрованное соединение между КЛИЕНТОМ и БРАНДМАУЭРОМ так, чтобы для КЛИЕНТА работа с почтой внутри локальной сети была бы точно такой, как если бы он (клиент) был бы у себя в офисе.

У КЛИЕНТА запускаем консоль: Пуск -> выполнить -> cmd

В консоли набираем команды:

где «-v» — т.н. verbose режим, с расширенными комментариями, «-ssh -2» — использовать протокол ssh версии 2, «-P 22» — порт, открытый на БРАНДМАУЭРЕ для подключения по ssh, «-C» — использовать сжатие, «-l user» — имя пользователя, который имеет право входить на сервер ssh на БРАНДМАУЭРЕ, «-pw password» — пароль этого пользователя,

далее (я специально сделал отступ от предыдущего текста):
«-L 8110:192.168.1.10:110» — локальный порт, который будет доступен на компьютере КЛИЕНТА, а 192.168.1.10 — локальный ip-адрес почтового сервера внутри организации, 110 — соответственно, порт POP3 на этом сервере;
«81.222.111.10» — внешний ip-адрес БРАНДМАУЭРА, к которому и будет соединяться КЛИЕНТ по ssh с помощью putty.

После набора последней команды:

откроется окно сеанса связи по протоколу ssh. Все, окно сворачиваем (не закрываем!), и настраиваем нашу почтовую программу на получение почты с адреса localhost и портом 8110, а не 110, который стоит по умолчанию.

Вроде бы все. Во время получения почты почтовая программа будет соединяться с портом 8110, который будет переадресован на удаленный почтовый сервер в офисе, при этом весь трафик соединения будет зашифрован. Завершить сеанс связи можно просто закрыв окно сеанса putty. После этого локальный порт 8110 уже не будет доступен.

Читайте также:  Linux mint спящий режим настройка

. или же все это можно сделать немного проще:

GUI Putty

Для тех, кто пользуется графическим интерфейсом Putty, привожу скриншоты:

  • Source port: 8110 — порт к которому мы будем подключаться на нашей машине.
  • Destination ( [IP:]Port): 192.168.1.10:110 — удаленный почтовый сервер.
  • Нажимаем «Add» («Добавить»). Думаю, многие могут не сделать этого и будут разочарованы, т.к. ничего не сработает.

Суть последнего скриншота: локальный порт 8110 прозрачно соединяет вас с 80 портом сервера 192.168.1.10.

Ну и, понятное дело, чтобы это не вписывать каждый раз, ПЕРЕД ТЕМ, КАК НАЖАТЬ «Open», вернитесь на вкладку Session (первый скриншот) и сохраните настройки. Только потом жмите «Open».

Резюме

Можно добавить, что похожим образом можно соединяться не только к почтовому серверу, но и к другим сервисам, например, я таким образом соединялся с RAdmin, установленным на компьютере в локальной сети, при этом никаких port-мапперов на самом шлюзе делать не надо. Вот что самое хорошее! Достаточно иметь актуальную версию сервера ssh на шлюзе и, желательно, фильтровать на брандмауэре подключения к порту 22 (ssh), например по ip-адресу, если у вас дома или где там еще подключение к интернет постоянное. Но это уже мелочи жизни и тема другой статьи.

Вообще у ssh и putty, есть ооочень много всяких разных приятностей, которые здесь не упомянуты. Надеюсь, эта статья подтолкнет вас к небольшому исседованию, начать которое очень просто: http://www.google.ru/search?complete=1&hl=ru&newwindow=1&q=ssh&lr=&aq=f.

Кроме того, упомянутые в статье программы (за исключением почтовых серверов и ОС самого клиента ;)) являются бесплатными и свободно распространяемыми, а стремление быть легальным и бесплатным — хороший стимул приглядеться к реализации подобного безопасного соединения через ssh.

И еще, конечно же, при написании этой заметки я использовал другие ресурсы для «освежения» памяти. Вот самая полезная ссылка, которая и стала финальной в моих тестовых экспериментах перед опубликованием статьи: http://wiki.kaytaz.ru/doku.php/ssh-tunnel_cherez_putty.

Примечания (составлены по итогам комментариев на 27.03.2008)

1. (isx) Если туннель простаивает некоторое время, то соединение рвется, потому стоит поменять параметры сервера: TCPKeepAlive. Увеличить LoginGraceTime, выставить ClientAliveInterval и ClientAliveCountMax. Убрать UseDns, иначе длительные ожидания при установке соединений.

2. (isx) А отчего не сделаешь все через ssl? Если не хочется возиться с почтовиком, то можно воспользоваться программой stunnel, поднимая ее на шлюзе(брандмауэре). // Stunnel (http://stunnel.mirt.net/) использует OpenSSl или SSLeavy для шифрования трафика. Используется для установления шифрованных тонелей связи между клиентом и сервером. Работает в Linux, Windows, OS/2 и прочих осях.

3. (Serg) Если человек не админ брендмауэра — могут быть проблемы. Кто-то может гарантировать, что в настройках sshd не выключен форвардинг и/или туннелирование? // Действительно, к данному решению надо подходить взвешенно и понимать, что указанный способ туннелирования действительно больше всего подходить только для админа.

Подключение к Windows по SSH с помощью встроенного OpenSSH

Начиная с Windows 10 1809 и Windows Server 2019 в операционной системе имеется встроенный SSH сервер, основанный на OpenSSH. В этой статье мы покажем, как установить и настроить OpenSSH сервер в Windows 10 и подключиться к нему удаленно по защищенному SSH протоколу (ну прям как в Linux 🙂 ).

Читайте также:  Копирование разделов диска windows

Установка сервера OpenSSH в Windows

Рассмотрим, как установить компонент OpenSSH Server в Windows 10 1903 (Windows Server 2019 все выполняется аналогично).

Пакет OpenSSH (как и RSAT) уже включен в данные версии Windows в виде Feature on Demand (FoD).

При наличии прямого Интернет-подключения вы можете установить сервер OpenSSH с помощью PowerShell

Add-WindowsCapability -Online -Name OpenSSH.Server*

Или при помощи DISM:

dism /Online /Add-Capability /CapabilityName:OpenSSH.Server

В Windows 10 этот компонент также можно установить через панель Параметры (Приложения -> Управление дополнительными компонентами -> Добавить компонент). Найдите в списке Open SSH Server и нажмите кнопку Install).

Чтобы проверить, что OpenSSH сервер установлен, выполните:
Get-WindowsCapability -Online | ? Name -like ‘OpenSSH.Ser*’

Настройка SSH сервера в Windows

После уставной сервера OpenSSH в Windows вам нужно изменить тип запуска службы sshd на автоматический и запустить службу с помощью PowerShell:

Set-Service -Name sshd -StartupType ‘Automatic’
Start-Service sshd

С помощью nestat убедитесь, что теперь в системе запущен SSH сервер и ждет подключений на 22 порту:

netstat -na| find «:22»

Проверьте, что включено правило брандмауэра (Windows Defender Firewall), разрешающее входящие подключения к Windows по порту TCP/22.

Get-NetFirewallRule -Name *OpenSSH-Server* |select Name, DisplayName, Description, Enabled

Если правило отключено (состоянии Enabled=False) или отсутствует, вы можете создать новое входящее правило командой New-NetFirewallRule:

New-NetFirewallRule -Name sshd -DisplayName ‘OpenSSH Server (sshd)’ -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22

По умолчанию важным компоненты OpenSSH хранятся в следующих каталогах:

  • Исполняемые файлы OpenSSH Server: C:\Windows\System32\OpenSSH\
  • Конфигурационный файл sshd_config (создается после первого запуска службы): C:\ProgramData\ssh
  • Журнал OpenSSH: C:\windows\system32\OpenSSH\logs\sshd.log
  • Файл authorized_keys и ключи: %USERPROFILE%\.ssh\

При установке OpenSSH сервера в системе создается новый локальный пользователь sshd.

Sshd_config: Конфигурационный файл сервера OpenSSH

Вы можете изменить настройки сервере OpenSSH в конфигурационном файле %programdata%\ssh\sshd_config.

Например, чтобы запретить SSH подключение для определенного доменного пользователя (и всех пользователей указанного домена), добавьте в конце файле директивы:

Чтобы разрешить подключение только для определенной доменной группы:

Либо можете разрешить доступ для локальной группы:

Можно запретить вход под учетными записями с правами администратора, в этом случае для выполнения привилегированных действий в SSH сессии нужно делать runas.

Следующие директивы разрешают SSH доступ по ключам (доступ к Windows через SSH по ключам рассмотрим подробно в следующей статье) и по паролю:

Вы можете изменить порт, на котором принимает подключения OpenSSH в конфигурационном файле sshd_config в директиве Port.

Подключение к Windows 10 через SSH

Теперь вы можете попробовать подключиться к своей Windows 10 через SSH клиент (я использую putty, но можно пользоваться встроенным ssh клиентом Windows).

Читайте также:  Как узнать свою версию mac os

При первом подключении появится стандартный запрос на добавление узла в список известных SSH хостов.

Нажимаем Да, и в открывшееся окне авторизуемся под пользователем Windows.

При успешном подключении запускается командная оболочка cmd.exe со строкой-приглашением.

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

Я предпочитаю работать в командной строке PowerShell. Чтобы запустить интерпретатор PowerShell, выполните:

Чтобы изменить Shell по умолчанию в OpenSSH с cmd.exe на PowerShell, внесите изменение в реестр такой командой:

New-ItemProperty -Path «HKLM:\SOFTWARE\OpenSSH» -Name DefaultShell -Value «C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe» -PropertyType String –Force

Осталось перезапустить SSH подключение и убедиться, что при подключении используется командный интерпретатор PowerShell (об этом свидетельствует приглашение PS C:\Users\admin> ).

В SSH сессии запустилась консоль PowerShell, в которой работают привычные функции: авто дополнение, раскраска модулем PSReadLine, история команд и т.д. Если текущий пользователь входит в группу локальных администраторов, то все команды в его сессии выполняются с повышенными правами даже при включенном UAC.

How To Use SSH Tunnel on PC (Windows)

How to tunneling SSH on Windows

Before we start, prepare for needed things

1.Bitvise SSH Client (download)

3.Make sure you has been created free SSH Account on www.vpnjantit.com if you don’t have account yet, you can go to How To Create Free SSH Account.

After you got all needed things, go to first step

1.First, Install Bitvise SSH Client (Check I Agree….) then click Install and wait the installation until finish

2. Install proxifier. Right click, then choose run as admininstrator, then install. Click I accept … button then click Next until finish

3.Open Bitvise SSH Client

4.Enter SSH username, host, port and password

which you has been created before.

5.In Bitvise SSH Client, Click Services tab , Check SOCKS/HTTP Proxy Forwading, and do the same things like this picture below.

6. Click Login in Bitvise SSH Client, then choose accept and save so it will be look like this picture below

7. After that, open Proxifier. If not appear, look at hidden items in taskbar. Then click

8. In Proxifer windows, click Proxy Servers icon

9. Click Add

10. Fill like this picture below(Same as Bitvise SSH Client Setting),Click OK, then YES.

11. Enter Program which will use SSH connection. Click icon in this picture below

12.Click Add

13.Fill Name (up to you), in Application, click Browse and find executable file( .exe) of the program which will use SSH connection.

14. In Action , click and choose Proxy SOCKS5 127.0.0.1 (same as Bitvise SSH Client setting) then click OK.

15. Change default setting. Choose Direct, then click OK.

16. Now try to browsing internet with Google Chrome. If your location now show up in Singapore, it’s mean you have been successfully using SSH. Congratulation!

Оцените статью