Перейти к основному содержимому

Инструкция подключения к узлу исследуемой сети, работающему на ОС Windows, по протоколу SSH

Для подключения к узлу исследуемой сети, функционирующему на базе ОС семейства Windows, необходима предварительная настройка сервисов SSH.

Подключение к узлу исследуемой сети

Для подключения к узлу исследуемой сети, функционирующему на базе ОС семейства Windows, необходимо выполнить следующие действия:

  1. Запустить Windows PowerShell от имени администратора

  2. Проверить статус компонента Сервер OpenSSH с помощью команды:

    Get-WindowsCapability -Online | ? Name -like 'OpenSSH.Ser*'
  3. В результате выполнения команды должно быть отображено «Installed» в поле «State» (State : Installed)

  4. Изменить тип запуска службы sshd на автоматический и запустить ее с помощью команд:

    Set-Service -Name sshd -StartupType 'Automatic'
    Start-Service sshd
  5. Убедиться в том, что Сервер OpenSSH запущен и разрешены подключения через порт 22 с помощью команды:

    netstat -na| find ":22"
  6. В результате выполнения команды должна отобразится следующая строка:

    TCP 0.0.0.0.22 0.0.0.0 LISTENING

  7. Проверить статус правила Windows Defender Firewall, разрешающее подключения по порту TCP/22 с помощью команды:

    Get-NetFirewallRule -Name **OpenSSH-Server** |select Name, DisplayName, Description, Enabled
  8. В том случае, если правило по каким-либо причинам отключено (состояние Enabled=False) или отсутствует, необходимо добавить новое правило, используя команду:

    New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
  9. Настроить конфигурационный файл sshd_config и перезапустить сервис sshd с помощью команды:

    restart-service sshd`
  10. Конфигурационный файл после внесения изменений должен выглядеть следующим образом:

    # This is the sshd server system-wide configuration file. See
    # sshd_config(5) for more information.
    # The strategy used for options in the default sshd_config shipped with
    # OpenSSH is to specify options with their default value where
    # possible, but leave them commented. Uncommented options override the
    # default value.
    Port 22
    AddressFamily any
    ListenAddress 0.0.0.0
    #ListenAddress
    #HostKey PROGRAMDATA/ssh/ssh_host_rsa_key
    #HostKey PROGRAMDATA/ssh/ssh_host_dsa_key
    #HostKey PROGRAMDATA/ssh/ssh_host_ecdsa_key
    #HostKey PROGRAMDATA/ssh/ssh_host_ed25519_key
    # Ciphers and keying
    #RekeyLimit default none
    # Logging
    #SyslogFacility AUTH
    #LogLevel INFO
    # Authentication:
    #LoginGraceTime 2m
    #PermitRootLogin prohibit-password
    StrictModes no
    #MaxAuthTries 6
    #MaxSessions 10
    PubkeyAuthentication yes
    # The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2
    # but this is overridden so installations will only check .ssh/authorized_keys
    AuthorizedKeysFile .ssh/authorized_keys
    #AuthorizedPrincipalsFile none
    # For this to work you will also need host keys in %programData%/ssh/ssh_known_hosts
    #HostbasedAuthentication no
    # Change to yes if you don’t trust ~/.ssh/known_hosts for
    # HostbasedAuthentication
    #IgnoreUserKnownHosts no
    # Don’t read the user’s ~/.rhosts and ~/.shosts files
    #IgnoreRhosts yes
    # To disable tunneled clear text passwords, change to no here!
    PasswordAuthentication yes
    #PermitEmptyPasswords no
    # GSSAPI options
    #GSSAPIAuthentication no
    #AllowAgentForwarding yes
    #AllowTcpForwarding yes
    #GatewayPorts no
    #PermitTTY yes
    #PrintMotd yes
    #PrintLastLog yes
    #TCPKeepAlive yes
    #UseLogin no
    #PermitUserEnvironment no
    #ClientAliveInterval 0
    #ClientAliveCountMax 3
    #UseDNS no
    #PidFile /var/run/sshd.pid
    #MaxStartups 10:30:100
    #PermitTunnel no
    #ChrootDirectory none
    #VersionAddendum none
    # no default banner path
    #Banner none
    # override default of no subsystems
    Subsystem sftp sftp-server.exe
    # Example of overriding settings on a per-user basis
    #Match User anoncvs
    # AllowTcpForwarding no
    # PermitTTY no
    # ForceCommand cvs server
    #Match Group administrators
    # AuthorizedKeysFile PROGRAMDATA/ssh/administrators_authorized_keys

    подсказка

    Жирным шрифтом выделены внесенные в конфигурационный файл изменения

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

    ssh-keygen
  12. В папке, в которой была создана пара ключей (C:\Users\ %User%.ssh), создать файл authorized_keys.CRLF

  13. В папке C:\ProgramData\ssh\ создать файл administrators_authorized_keys.CRLF

  14. Изменить права доступа на созданные файлы (удалить всех пользователей кроме «Система» и текущего пользователя) и сохранить изменения

  15. В Windows PowerShell поочередно выполнить следующие, поставляемые со Сканер-ВС, скрипты:

    powershell.exe -ExecutionPolicy Bypass -File fixhostfilepermissions.ps1
    powershell.exe -ExecutionPolicy Bypass -File fixuserfilepermissions.ps1
  16. Перезапустить сервис sshd с помощью команды:

    Restart-Service sshd
подсказка

Необходимые для настройки подключения по протоколу SSH, а также отмены внесенных изменений скрипты при установке Сканер-ВС по умолчанию сохраняются в папке /opt/echelon/scanner/scripts. Так же необходимые файлы можно скачать, перейдя по ссылке https://localhost/winrm/

Настройка сервисов SSH с помощью встроенного приложения «Параметры»

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

  1. Открыть встроенное приложение Параметры и выбрать элемент Приложения

  2. Перейти в раздел Приложения и возможности и нажать на Дополнительные компоненты

  3. В списке установленных компонентов необходимо убедиться в наличии компонентов Клиент OpenSSH на рабочей станции, с которой будет производится подключение, и Сервер OpenSSH на узле исследуемой сети. В том случае, если данные компоненты не установлены, необходимо нажать на Добавить компонент, в открывшемся интерфейсе Добавление дополнительного компонента выбрать указанные компоненты и нажать Установить

  4. При установке серверного компонента OpenSSH автоматически создается и включается правило Windows Defender Firewall с именем OpenSSH-Server-In-TCP, которое разрешает входящий трафик по протоколу SSH через порт 22. В том случае, если данное правило выключено и порт 22 закрыт, то подключения будут отклонены и сброшены.

  5. Запустить Windows PowerShell от имени администратора.

  6. Проверить статус правила можно с помощью команды:

    Get-NetFirewallRule -Name OpenSSH-Server |select Name, DisplayName, Description, Enabled
  7. В том случае, если правило по каким-либо причинам отключено (состояние Enabled=False) или отсутствует, необходимо добавить новое правило, используя команду:

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

Настройка сервисов SSH с помощью Windows PowerShell

Для настройки подключения по протоколу SSH с помощью Windows PowerShell необходимо выполнить следующие действия:

  1. Запустить Windows PowerShell от имени администратора

  2. Проверить доступность сервисов OpenSSH с помощью команды:

    Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*'
  3. В том случае, если ни один из описанных компонентов не установлен, в результате выполнения команды отобразится следующее сообщение:

    Name : OpenSSH.Client~~~~0.0.1.0
    State : NotPresent
    Name : OpenSSH.Server~~~~0.0.1.0
    State : NotPresent

  4. Установить на рабочей станции и узле исследуемой сети компоненты Клиент OpenSSH и Сервер OpenSSH соответственно с помощью следующих команд:

    # Install the OpenSSH Client

    Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0

    # Install the OpenSSH Server

    Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
  5. Результатом выполнения обеих команд должен быть:

    Path :
    Online : True
    RestartNeeded : False

Запуск и настройка OpenSSH Server

Для запуска и настройки OpenSSH Server для первого использования необходимо выполнить следующие действия:

  1. Запустить Windows PowerShell от имени администратора

  2. Запустить службу sshd service путем выполнения следующих команд:

    # Start the sshd service

    Start-Service sshd

    # OPTIONAL but recommended:

    Set-Service -Name sshd -StartupType 'Automatic'

    # Confirm the Firewall rule is configured. It should be created automatically by setup. Run the following to verify

    if (!(Get-NetFirewallRule -Name "OpenSSH-Server-In-TCP" -ErrorAction SilentlyContinue | Select-Object Name, Enabled)) {

    Write-Output "Firewall Rule 'OpenSSH-Server-In-TCP' does not exist, creating it..."

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

    } else {

    Write-Output "Firewall rule 'OpenSSH-Server-In-TCP' has been created and exists."

    }