Метка: Windows Server 2019

  • Автоматическая очистка диска с помощью Storage Sense в Windows 10

    Контроль памяти (Storage Sense) это относительно новая функция Windows 10, позволяющая автоматически удалять на компьютере временные и неиспользуемые файлы, очищать старые элементы в корзине. Рассмотрим, как управлять параметрами Storage Sense на компьютерах Windows 10 вручную или централизованно (далее…)

  • Packet Monitor (PktMon) — встроенный сниффер траффика в Windows 10

    Встроенный анализатор (сниффер) сетевого трафика Packet Monitor (PktMon.exe) появился еще в Windows 10 1809 и Windows Server 2019. В последнем билде Windows 10 2004 (May 2020 Update), функционал анализатора пакета был существенно расширен (появилась поддержка захвата пакетов в реальном времени, и (далее…)

  • Настройка лимитов (таймаутов) для активных/отключенных RDP/RDS сессий в Windows

    Когда пользователь со своего компьютера закрывает окно своей RDP/RDS сессии в терминальном клиенте (mstsc.exe, RDCMan или RDP HTML WEB клиенте) простым нажатием по крестику в окне, без выполнения выхода (logoff), его сессия переходит из активного режима в режим disconnected (разъединённый сеанс) (далее…)

  • Настройка VLAN интерфейсов в Windows

    В этой статье мы покажем, как настроить тегированный сетевой интерфейс с VLAN в Windows 10/11 и Windows Server 2019 (2022/2016/2012R2). Стандарт VLAN (Virtual LAN) описан в 802.1Q и предполагает маркировку трафика с помощью тегов (vlanid), необходимую для отнесения сетевого пакета к той или иной (далее…)

  • Использование встроенного SSH клиента в Windows 10

    В Windows 10 и Windows Server 2019 появился встроенный SSH клиент, который вы можете использовать для подключения к *Nix серверам, ESXi хостам и другим устройствам по защищенному протоколу, вместо Putty, MTPuTTY или других сторонних SSH клиентов. Встроенный SSH клиент Windows основан на порте (далее…)

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

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

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

    Пакет OpenSSH Server включен в современные версии Windows 10 (начиная с 1803), Windows 11 и Windows Server 2022/2019 в виде Feature on Demand (FoD). Для установки сервера OpenSSH достаточно выполнить PowerShell команду:

    Get-WindowsCapability -Online | Where-Object Name -like ‘OpenSSH.Server*’ | Add-WindowsCapability –Online

    Или при помощи команды DISM:

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

    Если ваш компьютер подключен к интернету, пакет OpenSSH.Server будет скачан и установлен в Windows.

    Также вы можете установить сервер OpenSSH в Windows через современную панель Параметры (Settings -> Apps and features -> Optional features -> Add a feature, Приложения -> Управление дополнительными компонентами -> Добавить компонент. Найдите в списке OpenSSH Server и нажмите кнопку Install).

    На изолированных от интернета компьютерах вы можете установить компонент с ISO образа Features On Demand (доступен в личном кабинете на сайте Microsoft: MSDN или my.visualstudio.com). Скачайте диск, извлеките его содержимое в папку c:FOD (достаточно распаковать извлечь файл OpenSSH-Server-Package~31bf3856ad364e35~amd64~~.cab ), выполните установку из локального репозитория:

    Add-WindowsCapability -Name OpenSSH.Server~~~~0.0.1.0 -Online -Source c:FOD

    Также доступен MSI установщик OpenSSH для Windows в официальном репозитории Microsoft на GitHub (https://github.com/PowerShell/Win32-OpenSSH/releases/). Например, для Windows 10 x64 нужно скачать и установить пакет OpenSSH-Win64-v8.9.1.0.msi. Следующая PowerShell команда скачает MSI файл и установит клиент и сервер OpenSSH:

    Invoke-WebRequest https://github.com/PowerShell/Win32-OpenSSH/releases/download/v8.9.1.0p1-Beta/OpenSSH-Win64-v8.9.1.0.msi -OutFile $HOMEDownloadsOpenSSH-Win64-v8.9.1.0.msi -UseBasicParsing

    msiexec /i c:usersrootdownloadsOpenSSH-Win64-v8.9.1.0.msi

    Также вы можете вручную установить OpenSSH сервер в предыдущих версиях Windows (Windows 8.1, Windows Server 2016/2012R2). Пример установки Win32-OpenSSH есть в статье “Настройка SFTP сервера (SSH FTP) в Windows”.

    Чтобы проверить, что OpenSSH сервер установлен, выполните:

    Get-WindowsCapability -Online | ? Name -like 'OpenSSH.Ser*'

    State : Installed

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

    После установки сервера OpenSSH в Windows добавляются две службы:

    • ssh-agent (OpenSSH Authentication Agent) – можно использовать для управления закрытыми ключами если вы настроили SSH аутентификацию по ключам;
    • sshd (OpenSSH SSH Server) – собственно сам SSH сервер.

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

    Set-Service -Name sshd -StartupType 'Automatic'
    Start-Service sshd

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

    netstat -na| find ":22"

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

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

    Name DisplayName Description Enabled ---- ----------- ----------- ------- OpenSSH-Server-In-TCP OpenSSH SSH Server (sshd) Inbound rule for OpenSSH SSH Server (sshd) True

    Если правило отключено (состоянии 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:WindowsSystem32OpenSSH (sshd.exe, ssh.exe, ssh-keygen.exe, sftp.exe и т.д.)
    • Конфигурационный файл sshd_config (создается после первого запуска службы): C:ProgramDatassh
    • Файлы authorized_keys и ssh ключи можно хранить в профиле пользователей: %USERPROFILE%.ssh

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

    Настройки сервере OpenSSH хранятся в конфигурационном файле %programdata%sshsshd_config. Это обычный текстовый файл с набором директив. Для редактирования можно использовать любой текстовый редактор (я предпочитаю notepad++). Можно открыть с помощью обычного блокнота:

    start-process notepad C:Programdatasshsshd_config

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

    DenyUsers winitproadmin@192.168.1.10 DenyUsers corp*

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

    AllowGroups winitprosshadmins

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

    AllowGroups sshadmins

    По умолчанию могут к openssh могут подключаться все пользователи Windows. Директивы обрабатываются в следующем порядке: DenyUsers, AllowUsers, DenyGroups,AllowGroups.

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

    DenyGroups Administrators

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

    PubkeyAuthentication yes PasswordAuthentication yes

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

    После любых изменений в конфигурационном файле sshd_config нужно перезапускать службу sshd:

    restart-service sshd

    Подключение по SSH к Windows компьютеру

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

    Вы можете использовать встроенный SSH клиентом Windows для подключения к удаленному хосту. Для этого нужно в командной строке выполнить команду:

    ssh alexbel@192.168.31.102

    В этом примере alexbel – имя пользователя на удаленном Windows компьютере, и 192.168.31.102 – IP адрес или DNS имя компьютера.

    Обратите внимание что можно использовать следующие форматы имен пользователей Windows при подключении через SSH:

    В домене Active Directory можно использовать Kerberos аутентификацию в SSH. Для этого в sshd_config нужно включить параметр:

    GSSAPIAuthentication yes

    После этого можно прозрачно подключать к SSH сервер с Windows компьютера в домене из сессии доменного подключается. В этом случае пароль пользователя не указывается и выполняется SSO аутентификация через Kerberos:

    ssh -K server1

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

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

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

    admin@win10tst C:Usersadmin>

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

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

    powershell.exe

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

    New-ItemProperty -Path "HKLM:SOFTWAREOpenSSH" -Name DefaultShell -Value "C:WindowsSystem32WindowsPowerShellv1.0powershell.exe" -PropertyType String –Force

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

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

    OpenSSH сервер в Windows можно использовать в различных сценариях SSH туннелирования.

    Логи SSH подключений в Windows

    В Windows логи подключений к SSH серверу по-умолчанию пишутся не в текстовые файлы, а в отдельный журнал событий через Event Tracing for Windows (ETW). Откройте консоль Event Viewer ( eventvwr.msc >) и перейдите в раздел Application and services logs -> OpenSSH -> Operational.

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

    EventID: 4 sshd: Accepted password for root from 192.168.31.53 port 65479 ssh2

    Если была выполнена аутентификация с помощью SSH ключа, событие будет выглядеть так:

    sshd: Accepted publickey for locadm from 192.168.31.53 port 55772 ssh2: ED25519 SHA256:FEHDEC/J72Fb2zC2oJNb45678967kghH43h3bBl31ldPs

    Если вы хотите, чтобы логи писались в локальный текстовый файл, нужно в файле sshd_config включить параметры:

    SyslogFacility LOCAL0 LogLevel INFO

    Перезапустите службу sshd и провеьте, что теперь логи SSH сервера пишутся в файл C:ProgramDatasshlogssshd.log

    Вы можете настроить удаленные WinRM подключения PSRemoting через защищенное SSH подключение.


  • Сетевой принтер переходит в режим “Автономная работа”

    Периодически на одном из принт-серверов под управлением Windows Server 2012 R2 замечаем, что некоторые подключенные сетевые принтеры переходят в автономный режим работы, перестают печатать, а в очереди печати начинают накапливаться задания. В этой статье мы рассмотрим, почему сетевой принтер может (далее…)

  • Не удается расширить диск в Windows

    Довольно часто приходится расширять диски виртуальных машин, когда на системном диске заканчивается свободное место. Например, вы увеличили размер диска в настройках виртуальной машины VMware или Hyper-V, и теперь нужно расширить раздел в гостевой операционной системе (Windows).

    Содержание:
  • Команды DISM и SFC: проверка и восстановление системного образа Windows 10 и 11

    Для проверки целостности системных файлов и восстановления поврежденных файлов (библиотек) компонентов в Windows (Windows Server) можно использовать команды SFC и DISM. Эти две утилиты могут быть крайне полезными, если операционная система Windows работает нестабильно, появляются ошибки при (далее…)

  • Не работает разрешение имен DNS при VPN подключении в Windows

    По умолчанию для всех VPN подключений в Windows используется режим Force Tunnel (в настройках VPN включена опция ‘ Use default gateway on remote network ‘/’ Использовать основной шлюз в удаленной сети ‘). В этом режиме для разрешения имен будут использоваться DNS сервера, (далее…)