<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Заметки о Windows</title>
    <link>http://feeds.feedburner.com/windowsnotesru</link>
    <description>Заметки о Windows и других продуктах Microsoft</description>
    <pubDate>Sun, 22 Mar 2026 20:22:28 +0000</pubDate>
    <lastBuildDate>Sun, 22 Mar 2026 20:22:28 +0000</lastBuildDate>
    <image>
      <url>https://windowsnotes.ru/wp-content/uploads/2023/03/favicon.ico</url>
      <title>Заметки о Windows</title>
      <link>https://windowsnotes.ru</link>
    </image>
    <item>
      <title>Настойка буфера обмена в RDP-сессии</title>
      <link>https://windowsnotes.ru/windows-server-2022/nastojka-bufera-obmena-v-rdp-sessii/</link>
      <description>&lt;p&gt;При работе с удаленным рабочим столом по протоколу RDP у пользователя есть возможность пробрасывать локальные ресурсы (диски, принтера, буфер обмена и т.п.) в удаленный сеанс. Это очень удобно, поскольку позволяет пользоваться локальными ресурсами на удаленном сервере — копировать файлы, распечатывать документы и многое другое. Но с точки зрения безопасности это не всегда допустимо, поэтому часто доступ к локальным ресурсам запрещается или ограничивается. И сегодня мы поговорим о том, каким образом можно контролировать доступ к буферу обмена.&lt;p&gt;&lt;span id=more-16654&gt;&lt;/span&gt;&lt;p&gt;По умолчанию доступ к локальным ресурсам в RDP-сессии не ограничен, а управление осуществляется с помощью настроек клиента.&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2026/03/clip3.png&gt;&lt;img fetchpriority=high decoding=async class=&#34;alignnone wp-image-16658&#34; title=&#34;Настройки стандартного RDP клиента Windows&#34; src=https://windowsnotes.ru/wp-content/uploads/2026/03/clip3.png alt=&#34;Настройки стандартного RDP клиента Windows&#34; width=320 height=389&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;Ограничить доступ к буферу обмена можно несколькими различными способами&lt;h3&gt;Ограничение на клиенте с помощью реестра&lt;/h3&gt;&lt;p&gt;Для того, чтобы запретить обмен информацией в удаленной сессии через буфер обмена необходимо на клиентской ОС в ветке реестра &lt;strong&gt;HKLM\Software\Microsoft\Terminal Server Client&lt;/strong&gt; создать параметр типа DWORD с именем &lt;strong&gt;DisableClipboardRedirection&lt;/strong&gt; и значением &lt;strong&gt;1&lt;/strong&gt;. Для отмены запрета можно присвоить параметру значение 0 либо просто удалить его.&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2026/03/clip10.png&gt;&lt;img decoding=async class=&#34;alignnone wp-image-16669&#34; title=&#34;Запрет буфера обмена на клиенте&#34; src=https://windowsnotes.ru/wp-content/uploads/2026/03/clip10.png alt=&#34;Запрет буфера обмена на клиенте&#34; width=780 height=288 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2026/03/clip10.png 977w, https://windowsnotes.ru/wp-content/uploads/2026/03/clip10-768x284.png 768w&#34; sizes=&#34;(max-width: 780px) 100vw, 780px&#34;&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;Способ вполне рабочий, с его помощью можно избирательно ограничивать буфер обмена на пользовательских рабочих станциях. При необходимости централизованного управления настройки реестра можно распространять через групповые политики, с помощью Group Policy Preferences.&lt;h3&gt;Ограничение на сервере с помощью реестра&lt;/h3&gt;&lt;p&gt;Чаще доступ к буферу запрещают на стороне сервера. Если сервер один, это можно сделать также с помощью реестра, установив в ветке  &lt;strong&gt;HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp&lt;/strong&gt; для параметра DWORD с именем &lt;strong&gt;fDisableClip&lt;/strong&gt; значение &lt;strong&gt;1&lt;/strong&gt;. Для отключения запрета параметру можно задать значение 0 или удалить его.&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2026/03/clip11.png&gt;&lt;img decoding=async class=&#34;alignnone wp-image-16678&#34; title=&#34;Настройка буфера обмена на сервере через реестр&#34; src=https://windowsnotes.ru/wp-content/uploads/2026/03/clip11.png alt=&#34;Настройка буфера обмена на сервере через реестр&#34; width=780 height=442 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2026/03/clip11.png 943w, https://windowsnotes.ru/wp-content/uploads/2026/03/clip11-768x435.png 768w&#34; sizes=&#34;(max-width: 780px) 100vw, 780px&#34;&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;&lt;strong&gt;Примечание.&lt;/strong&gt; Для того, чтобы настройки применились, требуется перезагрузка. Как вариант, можно перезапустить сам буфер обмена (rdpclip.exe).&lt;h3&gt;Ограничение с помощью групповых политик&lt;/h3&gt;&lt;p&gt;Если требуется ограничить доступ к буферу обмена централизованно, для группы серверов, то лучше сделать это с помощью доменных групповых политик.&lt;p&gt;За доступ к буферу обмена отвечает политика &lt;strong&gt;Do not allow Clipboard redirection&lt;/strong&gt; находящаяся в разделе &lt;strong&gt;Computer Configuration&lt;/strong&gt; &amp;gt; &lt;strong&gt;Policies&lt;/strong&gt; &amp;gt; &lt;strong&gt;Administrative Templates&lt;/strong&gt; &amp;gt; &lt;strong&gt;Windows Components&lt;/strong&gt; &amp;gt; &lt;strong&gt;Remote Desktop Services&lt;/strong&gt; &amp;gt; &lt;strong&gt;Remote Desktop Session Host&lt;/strong&gt; &amp;gt; &lt;strong&gt;Device and Resource Redirection&lt;/strong&gt;&lt;p&gt;Действует эта политика крайне просто — при включении (enabled) запрещает использование буфера обмена в RDP-сессии в обе стороны. Т.е. скопировать что либо на сервер или с сервера невозможно.&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2026/03/clip1.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16656&#34; title=&#34;Групповые политики RDP сервера&#34; src=https://windowsnotes.ru/wp-content/uploads/2026/03/clip1.png alt=&#34;Групповые политики RDP сервера&#34; width=780 height=456 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2026/03/clip1.png 973w, https://windowsnotes.ru/wp-content/uploads/2026/03/clip1-768x449.png 768w&#34; sizes=&#34;auto, (max-width: 780px) 100vw, 780px&#34;&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;При применении этой политики создается уже знакомый нам параметр реестра &lt;strong&gt;fDisableClip &lt;/strong&gt;имеющий значение 1, но находящийся в ветке реестра&lt;strong&gt; HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services.&lt;/strong&gt;&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2026/03/clip9.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16666&#34; title=&#34;параметр реестра для политики&#34; src=https://windowsnotes.ru/wp-content/uploads/2026/03/clip9.png alt=&#34;параметр реестра для политики&#34; width=780 height=345 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2026/03/clip9.png 975w, https://windowsnotes.ru/wp-content/uploads/2026/03/clip9-768x339.png 768w&#34; sizes=&#34;auto, (max-width: 780px) 100vw, 780px&#34;&gt;&lt;/a&gt;&lt;h3&gt;Отключение проброса локальных дисков&lt;/h3&gt;&lt;p&gt;А теперь один маленький, но важный нюанс. На работу буфера обмена в терминальной сессии влияет доступность локальных дисков. За проброс локальных дисков в сессию отвечает политика &lt;strong&gt;Do not allow drive redirection&lt;/strong&gt; находящаяся в том же разделе.&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2026/03/clip12.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16675&#34; title=&#34;Отключение проброса локальных дисков&#34; src=https://windowsnotes.ru/wp-content/uploads/2026/03/clip12.png alt=&#34;Отключение проброса локальных дисков&#34; width=780 height=455 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2026/03/clip12.png 975w, https://windowsnotes.ru/wp-content/uploads/2026/03/clip12-768x448.png 768w&#34; sizes=&#34;auto, (max-width: 780px) 100vw, 780px&#34;&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;При включении эта политика создает параметр реестра &lt;strong&gt;fDisableCdm &lt;/strong&gt;со значением &lt;strong&gt;1&lt;/strong&gt; в ветке реестра&lt;strong&gt; HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services.&lt;/strong&gt;&lt;p&gt;Так вот, если в политиках доступ к буферу обмена разрешен, но при этом запрещен проброс локальных дисков, то буфер обмена будет работать только в режиме передачи текста. Т.е. вы сможете скопировать в буфер обмена текстовую информацию, например ссылку или строку кода, а вот скопировать файл не получится.&lt;p&gt;Об этом явно сказано в описании политики.&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2026/03/clip4.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16660&#34; title=&#34;Описание политики&#34; src=https://windowsnotes.ru/wp-content/uploads/2026/03/clip4.png alt=&#34;Описание политики&#34; width=540 height=501&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;Этой особенностью можно пользоваться для более гибкого ограничения доступа.&lt;h3&gt;Новые объекты групповых политик&lt;/h3&gt;&lt;p&gt;Но это еще не все. Начиная с Windows Server 2022\Windows 11 появились новые объекты групповых политик, отвечающие за доступ к буферу обмена. Находятся они в том же разделе и называются &lt;strong&gt;Restrict clipboard transfer from client to server&lt;/strong&gt; и &lt;strong&gt;Restrict clipboard transfer from server to client&lt;/strong&gt;.&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2026/03/clip7.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16664&#34; title=&#34;новые политики для ограничения доступа к буферу обмена&#34; src=https://windowsnotes.ru/wp-content/uploads/2026/03/clip7.png alt=&#34;новые политики для ограничения доступа к буферу обмена&#34; width=780 height=373 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2026/03/clip7.png 975w, https://windowsnotes.ru/wp-content/uploads/2026/03/clip7-768x367.png 768w&#34; sizes=&#34;auto, (max-width: 780px) 100vw, 780px&#34;&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;Эти политики позволяют очень гибко регулировать доступ к буферу обмена, например ограничить обмен только в одну сторону. Кроме того, в них можно не просто включить или отключить буфер обмена, а явно указывать, какую именно информацию разрешено передавать — например только текст или изображения.&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2026/03/clip5.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16662&#34; title=&#34;новые политики для ограничения доступа к буферу обмена&#34; src=https://windowsnotes.ru/wp-content/uploads/2026/03/clip5.png alt=&#34;новые политики для ограничения доступа к буферу обмена&#34; width=540 height=501&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;Если посмотреть в реестр, то каждая политика создает в ветке HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services параметр DWORD с одним и тем же именем &lt;strong&gt;CSClip.level &lt;/strong&gt;и значением от 0 до 4. Т.е. если включить обе политики, то в реестре создаются 2 абсолютно одинаковых параметра. Различить их можно только в том случае, если задать им разные значения.&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2026/03/clip8.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16665&#34; title=&#34;параметры реестра для новых политик&#34; src=https://windowsnotes.ru/wp-content/uploads/2026/03/clip8.png alt=&#34;параметры реестра для новых политик&#34; width=780 height=344 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2026/03/clip8.png 976w, https://windowsnotes.ru/wp-content/uploads/2026/03/clip8-768x339.png 768w&#34; sizes=&#34;auto, (max-width: 780px) 100vw, 780px&#34;&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;Но самое печальное, что я не смог эти политики заставить работать на своем тестовом стенде. Допускаю, что я делал что то не так, поэтому не буду утверждать, что параметры не рабочие, но в моем случае они не работали. Вообще, никак. Ни вместе, ни по отдельности. Так что можете попробовать и если у вас они заведутся, написать мне.&lt;p&gt;Ну и еще один момент, о котором стоит упомянуть. Политики по управлению буфером обмена присутствуют и в разделе User Configuration, т.е. их можно назначать не только на компьютеры, но и на пользователей. Иногда это может помочь более гибко управлять правами доступа, например на основе принадлежности пользователя к группе. Однако не забывайте, что настройки компьютера всегда имеют приоритет над пользовательскими.&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2026/03/clip6.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16663&#34; title=&#34;пользовательские политики для ограничения доступа к буферу обмена&#34; src=https://windowsnotes.ru/wp-content/uploads/2026/03/clip6.png alt=&#34;пользовательские политики для ограничения доступа к буферу обмена&#34; width=780 height=451 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2026/03/clip6.png 974w, https://windowsnotes.ru/wp-content/uploads/2026/03/clip6-768x444.png 768w&#34; sizes=&#34;auto, (max-width: 780px) 100vw, 780px&#34;&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;На этом, пожалуй, все.</description>
      <author>Kirill</author>
      <guid>https://windowsnotes.ru/windows-server-2022/nastojka-bufera-obmena-v-rdp-sessii/</guid>
      <pubDate>Sat, 21 Mar 2026 20:19:54 +0000</pubDate>
    </item>
    <item>
      <title>Из crt в pfx и обратно или конвертирование сертификатов с помощью OpenSSL</title>
      <link>https://windowsnotes.ru/other/iz-crt-v-pfx-i-obratno-ili-konvertirovanie-sertifikatov-s-pomoshhyu-openssl/</link>
      <description>&lt;p&gt;S&lt;span data-huuid=12479860612425370492&gt;SL-сертификат — это это цифровой документ, подтверждающий подлинность веб-ресурса и обеспечивающий безопасное соединение между клиентом и сервером. Сегодня мы рассмотрим основные форматы SSL-сертификатов, их различия, особенности применения и способы конвертации из одного формата в другой.&lt;/span&gt;&lt;p&gt;&lt;span id=more-16623&gt;&lt;/span&gt;&lt;p&gt;Все SSL-сертификаты соответствуют стандарту X.509 . Этот стандарт определяет формат данных и процедуры распространения открытых ключей с помощью соответствующих сертификатов с цифровыми подписями. Эти сертификаты предоставляются удостоверяющими центрами (&lt;span lang=en&gt;Certificate Authority&lt;/span&gt;). Кроме того, X.509 определяет формат списка отозванных сертификатов (Certificate Revocation List), формат полей&lt;span data-interwiki-lang=en data-interwiki-article=&#34;Authorization certificate&#34;&gt; сертификата  &lt;/span&gt;и алгоритм проверки подлинности с помощью &lt;span data-interwiki-lang=en data-interwiki-article=&#34;Certification path validation algorithm&#34;&gt;пути сертификации. В основе&lt;/span&gt; X.509 лежит наличие иерархической системы удостоверяющих центров для выдачи сертификатов.&lt;p&gt;На данный момент актуальна версия X.509 v3, которая описана в  &lt;a href=https://tools.ietf.org/html/rfc5280 target=_blank rel=&#34;noopener noreferrer&#34;&gt;RFC 5280&lt;/a&gt;.&lt;h3&gt;Форматы сертификатов&lt;/h3&gt;&lt;p&gt;Для X.509 существует 4 формата сертификатов:&lt;h4 id=ftoc-heading-1 class=ftwp-heading&gt;PEM (&lt;span class=&#34;BxUVEf ILfuVd&#34; lang=ru&gt;&lt;span class=hgKElc&gt;Privacy-Enhanced Mail)&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p class=ftwp-heading&gt;&lt;span class=&#34;BxUVEf ILfuVd&#34; lang=ru&gt;&lt;span class=hgKElc&gt;Дословно переводится как формат почты с повышенной конфиденциальностью. Является наиболее распространенным форматом для SSL-сертификатов. Файл PEM представляет из себя обычный текстовый файл, содержащий один или несколько элементов в кодировке Base64 ASCII. Данные в файле располагаются между верхним и нижним колонтитулами, например вот так:&lt;/span&gt;&lt;/span&gt;&lt;p&gt;&lt;code&gt;-----BEGIN CERTIFICATE-----&lt;/code&gt;&lt;br&gt;&lt;code&gt;[данные в кодировке base64]&lt;/code&gt;&lt;br&gt;&lt;code&gt;-----END CERTIFICATE-----&lt;/code&gt;&lt;p&gt;Один файл PEM может содержать сертификат конечного объекта, закрытый ключ или несколько сертификатов, образующих полную цепочку доверия. Большинство файлов, получаемых от коммерческих центров сертификации, будут в формате PEM. Файл PEM может иметь расширение .crt, .pem, .cer и .key (для закрытых ключей).&lt;p&gt;В основном сертификаты в формате PEM используются в операционных системах Linux/Unix.&lt;h4&gt;&lt;span data-huuid=15986662733559206815&gt;PKCS #7 (Public-Key Cryptography Standards #7) &lt;/span&gt;&lt;/h4&gt;&lt;p&gt;Также известен как Cryptographic Message Syntax (CMS). Стандарт определяет общий формат для хранения и передачи подписанных и зашифрованных сообщений, а также цепочек доверия. В основном используется для реализации электронной цифровой подписи (ЭЦП), а также для шифрования данных и проверки сертификатов. Файлы PKCS # 7 не используются для хранения закрытых ключей.&lt;p&gt;Содержимое файла, так же как и для PEM, хранится в виде текста, в кодировке &lt;span class=&#34;BxUVEf ILfuVd&#34; lang=ru&gt;&lt;span class=hgKElc&gt;ASCII&lt;/span&gt;&lt;/span&gt;. Расширение файла .p7b, .p7c. Чаще всего встречается в  Windows и Java.&lt;h4&gt;DER &lt;strong&gt;(Distinguished Encoding Rules)&lt;/strong&gt;&lt;/h4&gt;&lt;p&gt;Это двоичная кодировка сертификатов и закрытых ключей X.509. В отличие от файлов PEM файлы DER не содержат удобочитаемых простых текстовых операторов.&lt;p&gt;Файл DER имеют расширение der, .cer.  В основном используются в контексте Java, но встречаются и в Windows.&lt;h4&gt;PKCS#12&lt;/h4&gt;&lt;p&gt;Он же PFX &lt;span data-huuid=6820467430536996649&gt;(Personal Information Exchange). PFX представляет собой зашифрованный контейнер, содержащий сертификат сервера, промежуточные сертификаты и закрытый ключ. Содержимое файла хранится в двоичном формате. Файлы PFX используются для экспорта и импорта сертификатов и связанных с ними закрытых ключей.&lt;/span&gt;&lt;p&gt;&lt;span data-huuid=6820467430536997424&gt;Файл PFX обычно имеет расширение .pfx или .p12. PFX я&lt;/span&gt;&lt;span data-huuid=6820467430536998199&gt;вляется основным форматом SSL-сертификатов в Windows.&lt;/span&gt;&lt;h3&gt;Цепочка сертификатов&lt;/h3&gt;&lt;p&gt;Как уже говорилось выше, принцип работы x.509 сертификатов основывается на путях доверия.  Эти пути базируются на иерархической системе удостоверяющих центров.&lt;p&gt;Путь доверия — это последовательность (цепочка) сертификатов, которая начинается с корневого (Root) сертификата с высоким уровнем доверия, проходит через промежуточные (Intermediate) сертификаты и заканчивается конечным сертификатом.&lt;p&gt;Для примера возьмем сертификат моего сайта, откроем его свойства и перейдем на вкладку ‘Путь сертификации’.  Вот так выглядит путь сертификации в моем случае:&lt;p&gt;&lt;strong&gt;GlobalSign Root CA -&amp;gt; GlobalSign GCC R6 AlphaSSL -&amp;gt; windowsnotes.ru&lt;/strong&gt;&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2025/08/crt2pfx1.png&gt;&lt;img fetchpriority=high decoding=async class=&#34;alignnone wp-image-16630&#34; title=&#34;Цепочка сертификатов&#34; src=https://windowsnotes.ru/wp-content/uploads/2025/08/crt2pfx1.png alt=&#34;Цепочка сертификатов&#34; width=320 height=407&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;Работает это очень просто — мы доверяем корневому CA,  он доверяет промежуточному, а промежуточный доверяет сайту windowsnotes.ru, значит мы тоже доверяем сайту.&lt;p&gt;А почему мы должны доверять корневому CA? А потому, что его сертификат находится на нашем компьютере, в хранилище сертификатов. Удостовериться в этом просто, достаточно открыть оснастку управления сертификатами и зайти в раздел Доверенные корневые центры сертификации (Trusted Root Certification Authority).&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2025/08/crt2pfx2.png&gt;&lt;img decoding=async class=&#34;alignnone wp-image-16631&#34; title=&#34;Доверенные корневые CA&#34; src=https://windowsnotes.ru/wp-content/uploads/2025/08/crt2pfx2.png alt=&#34;Доверенные корневые CA&#34; width=890 height=485 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2025/08/crt2pfx2.png 1116w, https://windowsnotes.ru/wp-content/uploads/2025/08/crt2pfx2-768x418.png 768w&#34; sizes=&#34;(max-width: 890px) 100vw, 890px&#34;&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;Здесь вы можете увидеть все выпускающие CA, которым доверяет Microsoft. Этот список входит в состав операционной системы изначально, а также обновляется во время обновления операционной системы. При необходимости его можно загрузить и вручную, например отсюда &lt;a href=https://learn.microsoft.com/en-us/security/trusted-root/participants-list target=_blank rel=noopener&gt;https://learn.microsoft.com/en-us/security/trusted-root/participants-list&lt;/a&gt;.&lt;p&gt;Теперь переходим к тому, как сконвертировать сертификат нужного формата. По своему опыту могу сказать, что в 99% случаев встречаются всего 2 сценария конвертации.&lt;h3&gt;Конвертация из PEM в PFX&lt;/h3&gt;&lt;p&gt;Один из наиболее распространенных сценариев — мы получили коммерческий SSL-сертификат и нам надо установить его на Windows сервера. Как правило, коммерческие CA предоставляют сертификаты в формате PEM, а нам требуется PFX. Вот, к примеру, что я получил от GlobalSign.&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2025/08/crt2pfx3.png&gt;&lt;img decoding=async class=&#34;alignnone wp-image-16632&#34; title=&#34;Список файлов от CA&#34; src=https://windowsnotes.ru/wp-content/uploads/2025/08/crt2pfx3.png alt=&#34;Список файлов от CA&#34; width=544 height=114&gt;&lt;/a&gt;&lt;p&gt;Здесь crt и key- собственно сам сертификат и закрытый ключ к нему  в формате PEM, ca_bundle — цепочка доверия, тоже в формате PEM, и csr -файл запроса (Certificate Signing Request).  И из этого нам надо получить файл PFX, содержащий сертификат и ключ. Конвертацию будем производить с помощью утилиты OpenSSL.&lt;p&gt;Первым делом запускаем командную строку и переходим в папку с сертификатом. Для того, чтобы сконвертировать сертификат и ключ из PEM в PFX выполняем команду:&lt;p&gt;&lt;code&gt;openssl pkcs12 -export -in windowsnotes.ru.pem -inkey windowsnotes.ru.key -out windowsnotes_ru.pfx&lt;/code&gt;&lt;p&gt;вводим пароль для экспорта закрытого ключа, подтверждение, и на выходе получаем сертификат в формате PFX, который можем устанавливать на Windows-сервера.&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2025/08/crt2pfx4.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16635&#34; title=&#34;Конвертация из crt to pfx&#34; src=https://windowsnotes.ru/wp-content/uploads/2025/08/crt2pfx4.png alt=&#34;Конвертация из crt to pfx&#34; width=890 height=184 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2025/08/crt2pfx4.png 1114w, https://windowsnotes.ru/wp-content/uploads/2025/08/crt2pfx4-768x159.png 768w&#34; sizes=&#34;auto, (max-width: 890px) 100vw, 890px&#34;&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;А теперь вернемся к цепочке доверия. Сертификат будет работать и так, но из за отсутствия в нем цепочки могут возникать ошибки. Поэтому добавим в создаваемый сертификат цепочку, находящуюся в файле ca_bundle. Для этого с помощью ключа &lt;code&gt;-certfile&lt;/code&gt; включим в команду дополнительные сертификаты, которые будут формировать цепочку доверия:&lt;p&gt;&lt;code&gt;openssl pkcs12 -export -in windowsnotes.ru.pem -inkey windowsnotes.ru.key -out windowsnotes.ru.pfx -certfile windowsnotes.ru.ca_bundle&lt;/code&gt;&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2025/08/crt2pfx5.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16636&#34; title=&#34;Конвертация из crt to pfx с цепочкой&#34; src=https://windowsnotes.ru/wp-content/uploads/2025/08/crt2pfx5.png alt=&#34;Конвертация из crt to pfx с цепочкой&#34; width=890 height=225 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2025/08/crt2pfx5.png 1113w, https://windowsnotes.ru/wp-content/uploads/2025/08/crt2pfx5-768x195.png 768w&#34; sizes=&#34;auto, (max-width: 890px) 100vw, 890px&#34;&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;В принципе цепочку можно собрать и вручную, просто отредактировав файл сертификата. Для этого можно открыть файл в текстовом редакторе типа Notepad++ и добавить в него содержимое цепочки. Просто добавляем сертификаты один за другим, сверху основной сертификат, за ним промежуточный, в конце корневой.&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2025/08/crt2pfx6.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16637&#34; title=&#34;создание цепочки сертификатов&#34; src=https://windowsnotes.ru/wp-content/uploads/2025/08/crt2pfx6.png alt=&#34;создание цепочки сертификатов&#34; width=640 height=865 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2025/08/crt2pfx6.png 800w, https://windowsnotes.ru/wp-content/uploads/2025/08/crt2pfx6-768x1038.png 768w&#34; sizes=&#34;auto, (max-width: 640px) 100vw, 640px&#34;&gt;&lt;/a&gt;&lt;h3&gt;Конвертация из PFX в PEM&lt;/h3&gt;&lt;p&gt;Второй по распространенности сценарий — у нас есть корпоративный CA на базе Windows, на котором мы выпускаем сертификаты для сервисов на Linux. Соответственно на входе имеем файл PFX, на выходе должны получить сертификат и ключ в формате PEM. При экспорте сертификата в Windows  необходимо указать пароль. Постарайтесь не забыть его, поскольку этот пароль требуется ввести при конвертации из PFX в PEM.&lt;p&gt;Первым делом получаем открытую часть сертификата командой:&lt;p&gt;&lt;code&gt;openssl pkcs12 -in windowsnotes_ru.pfx -clcerts -nokeys -out windowsnotes_ru.crt&lt;/code&gt;&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2025/08/crt2pfx8.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16640&#34; title=&#34;конвертация pem из pfx&#34; src=https://windowsnotes.ru/wp-content/uploads/2025/08/crt2pfx8.png alt=&#34;конвертация pem из pfx&#34; width=890 height=151 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2025/08/crt2pfx8.png 1115w, https://windowsnotes.ru/wp-content/uploads/2025/08/crt2pfx8-768x130.png 768w&#34; sizes=&#34;auto, (max-width: 890px) 100vw, 890px&#34;&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;Затем получаем закрытый ключ:&lt;p&gt;&lt;code&gt;openssl pkcs12 -in windowsnotes_ru.pfx -nocerts -out windowsnotes_ru.key&lt;/code&gt;&lt;p&gt;По умолчанию закрытый ключ шифруется парольной фразой (&lt;span data-huuid=3507792656520819642&gt;PEM pass phrase), которую необходимо указать при его экспорте или конвертировании.&lt;/span&gt;&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2025/08/crt2pfx7.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16639&#34; title=&#34;конвертация ключа из pfx&#34; src=https://windowsnotes.ru/wp-content/uploads/2025/08/crt2pfx7.png alt=&#34;конвертация ключа из pfx&#34; width=890 height=213 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2025/08/crt2pfx7.png 1115w, https://windowsnotes.ru/wp-content/uploads/2025/08/crt2pfx7-768x184.png 768w&#34; sizes=&#34;auto, (max-width: 890px) 100vw, 890px&#34;&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;В итоге получаем закрытый ключ в зашифрованном виде.&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2025/08/crt2pfx12.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16644&#34; title=&#34;Зашифрованный закрытый ключ&#34; src=https://windowsnotes.ru/wp-content/uploads/2025/08/crt2pfx12.png alt=&#34;Зашифрованный закрытый ключ&#34; width=640 height=602 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2025/08/crt2pfx12.png 798w, https://windowsnotes.ru/wp-content/uploads/2025/08/crt2pfx12-768x723.png 768w&#34; sizes=&#34;auto, (max-width: 640px) 100vw, 640px&#34;&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;Шифрование закрытого ключа конечно повышает его безопасность. Но далеко не все приложения умеют работать с такими ключами, поскольку для его использования требуется ввод пароля. Иногда требуется получить ключ в незашифрованном виде, без парольной фразы.&lt;p&gt;С помощью ключа &lt;code&gt;-nodes&lt;/code&gt; можно сразу выгрузить ключ без пароля, в расшифрованном виде:&lt;p&gt;&lt;code&gt;openssl pkcs12 -in windowsnotes_ru.pfx -nocerts -nodes -out windowsnotes_ru_unenc.key&lt;/code&gt;&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2025/08/crt2pfx10.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16642&#34; title=&#34;расшифровка закрытого ключа&#34; src=https://windowsnotes.ru/wp-content/uploads/2025/08/crt2pfx10.png alt=&#34;расшифровка закрытого ключа&#34; width=890 height=151 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2025/08/crt2pfx10.png 1115w, https://windowsnotes.ru/wp-content/uploads/2025/08/crt2pfx10-768x130.png 768w&#34; sizes=&#34;auto, (max-width: 890px) 100vw, 890px&#34;&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;Ну и как вариант, можно расшифровать сам ключ. Для этого надо выполнить команду:&lt;p&gt;&lt;code&gt;openssl rsa -in windowsnotes_ru.key -out windowsnotes_ru_unenc.key&lt;/code&gt;&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2025/08/crt2pfx11.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16643&#34; title=&#34;расшифровка закрытого ключа&#34; src=https://windowsnotes.ru/wp-content/uploads/2025/08/crt2pfx11.png alt=&#34;расшифровка закрытого ключа&#34; width=890 height=154 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2025/08/crt2pfx11.png 1115w, https://windowsnotes.ru/wp-content/uploads/2025/08/crt2pfx11-768x133.png 768w&#34; sizes=&#34;auto, (max-width: 890px) 100vw, 890px&#34;&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;Еще из PFX , с помощью ключа &lt;code&gt;-cacerts&lt;/code&gt; можно отдельно выгрузить цепочку сертификатов:&lt;p&gt;&lt;code&gt;openssl pkcs12 -in windowsnotes_ru.pfx -cacerts -nodes -nokeys -out cacerts.crt&lt;/code&gt;&lt;p&gt;Результат работы команды зависит от того, как был создан файл PFX, добавлялись ли сертификаты CA по отдельности или вместе, а также от порядка добавления сертификатов CA в файл PFX. В нашем случае мы получим содержимое ca_bundle, которое было добавлено при конвертации в PFX.&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2025/08/crt2pfx9.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16641&#34; title=&#34;конвертация ключа из без пароля&#34; src=https://windowsnotes.ru/wp-content/uploads/2025/08/crt2pfx9.png alt=&#34;конвертация ключа из без пароля&#34; width=890 height=153 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2025/08/crt2pfx9.png 1116w, https://windowsnotes.ru/wp-content/uploads/2025/08/crt2pfx9-768x132.png 768w&#34; sizes=&#34;auto, (max-width: 890px) 100vw, 890px&#34;&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;Все остальные варианты конвертации встречаются крайне редко. Но для общего развития рассмотрим и их.&lt;h3&gt;Конвертация из PEM в DER&lt;/h3&gt;&lt;p&gt;Сконвертировать сертификат в формате PEM в формат DER можно командой:&lt;p&gt;&lt;code&gt;openssl x509 -outform der -in windowsnotes_ru.crt -out windowsnotes_ru.der&lt;/code&gt;&lt;p&gt;В обратную сторону команда конвертации будет такая:&lt;p&gt;&lt;code&gt;openssl x509 -inform der -in windowsnotes_ru.der -out windowsnotes_ru.crt&lt;/code&gt;&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2025/08/crt2pfx13.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16647&#34; title=&#34;Конвертация из PEM в DER&#34; src=https://windowsnotes.ru/wp-content/uploads/2025/08/crt2pfx13.png alt=&#34;Конвертация из PEM в DER&#34; width=890 height=137 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2025/08/crt2pfx13.png 1115w, https://windowsnotes.ru/wp-content/uploads/2025/08/crt2pfx13-768x118.png 768w&#34; sizes=&#34;auto, (max-width: 890px) 100vw, 890px&#34;&gt;&lt;/a&gt;&lt;h3&gt;Конвертация из PEM в &lt;span data-huuid=15986662733559206815&gt;PKCS #7&lt;/span&gt;&lt;/h3&gt;&lt;p&gt;Такой командой сконфертируем сертификат из PEM в PKCS#7:&lt;p&gt;&lt;code&gt;openssl crl2pkcs7 -nocrl -certfile windowsnotes_ru.crt -out windowsnotes_ru.p7b&lt;/code&gt;&lt;p&gt;и в обратную сторону:&lt;p&gt;&lt;code&gt;openssl pkcs7 -print_certs -in windowsnotes_ru.p7b -out windowsnotes_ru.crt&lt;/code&gt;&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2025/08/crt2pfx14.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16648&#34; title=&#34;Конвертация из PEM в p7b&#34; src=https://windowsnotes.ru/wp-content/uploads/2025/08/crt2pfx14.png alt=&#34;Конвертация из PEM в p7b&#34; width=890 height=137 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2025/08/crt2pfx14.png 1115w, https://windowsnotes.ru/wp-content/uploads/2025/08/crt2pfx14-768x118.png 768w&#34; sizes=&#34;auto, (max-width: 890px) 100vw, 890px&#34;&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;Ну вот вроде и все. Как видите, ничего сложного 🙂</description>
      <author>Kirill</author>
      <guid>https://windowsnotes.ru/other/iz-crt-v-pfx-i-obratno-ili-konvertirovanie-sertifikatov-s-pomoshhyu-openssl/</guid>
      <pubDate>Mon, 11 Aug 2025 15:42:50 +0000</pubDate>
    </item>
    <item>
      <title>Простой способ подключения по ssh в VirtualBox</title>
      <link>https://windowsnotes.ru/virtualization/prostoj-sposob-podklyucheniya-po-ssh-v-virtualbox/</link>
      <description>&lt;p&gt;Как в VirtualBox подключиться к виртуальной машине по ssh? Можно пойти традиционным путем — подключить машину к внешней сети, выдать ей IP-адрес и подключаться как к обычному компьютеру. Но есть способ проще…&lt;p&gt;&lt;span id=more-16609&gt;&lt;/span&gt;&lt;p&gt;Если вы не хотите выставлять машину наружу, то можно воспользоваться пробросом портов. Для этого надо открыть свойства машины, перейти на вкладку &lt;strong&gt;Network&lt;/strong&gt; и выбрать тип сетевого адаптера &lt;strong&gt;NAT&lt;/strong&gt;. Затем нажать на кнопку &lt;strong&gt;Port Forwarding&lt;/strong&gt;&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2025/05/vbssh1.png&gt;&lt;img fetchpriority=high decoding=async class=&#34;alignnone wp-image-16615&#34; title=&#34;сетевые настройки виртуальной машины&#34; src=https://windowsnotes.ru/wp-content/uploads/2025/05/vbssh1.png alt=&#34;сетевые настройки виртуальной машины&#34; width=870 height=731 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2025/05/vbssh1.png 1092w, https://windowsnotes.ru/wp-content/uploads/2025/05/vbssh1-768x645.png 768w&#34; sizes=&#34;(max-width: 870px) 100vw, 870px&#34;&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;и в открывшемся окне создать новое правило проброса портов со следующими параметрами:&lt;p&gt;&lt;strong&gt;Name:&lt;/strong&gt; ssh&lt;br&gt;&lt;strong&gt;Protocol:&lt;/strong&gt; TCP&lt;br&gt;&lt;strong&gt;Host Port:&lt;/strong&gt; 2022&lt;br&gt;&lt;strong&gt;Guest Port:&lt;/strong&gt; 22&lt;p&gt;Имя можно указать любое, более менее понятное, Host Port можно выбрать любой свободный. Остальные поля оставляем пустыми и сохраняем правило.&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2025/05/vbssh2.png&gt;&lt;img decoding=async class=&#34;alignnone wp-image-16612&#34; title=&#34;создание правила проброса портов&#34; src=https://windowsnotes.ru/wp-content/uploads/2025/05/vbssh2.png alt=&#34;создание правила проброса портов&#34; width=680 height=455 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2025/05/vbssh2.png 854w, https://windowsnotes.ru/wp-content/uploads/2025/05/vbssh2-768x514.png 768w&#34; sizes=&#34;(max-width: 680px) 100vw, 680px&#34;&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;Теперь открываем консоль и подключаемся к машине, указав выбранный порт:&lt;p&gt;&lt;code&gt;ssh -p 2022 127.0.0.1&lt;/code&gt;&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2025/05/vbssh3.png&gt;&lt;img decoding=async class=&#34;alignnone wp-image-16613&#34; title=&#34;успешное подключение по ssh&#34; src=https://windowsnotes.ru/wp-content/uploads/2025/05/vbssh3.png alt=&#34;успешное подключение по ssh&#34; width=810 height=780 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2025/05/vbssh3.png 1015w, https://windowsnotes.ru/wp-content/uploads/2025/05/vbssh3-768x740.png 768w&#34; sizes=&#34;(max-width: 810px) 100vw, 810px&#34;&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;Способ немного корявый, но зато максимально простой и быстрый.</description>
      <author>Kirill</author>
      <guid>https://windowsnotes.ru/virtualization/prostoj-sposob-podklyucheniya-po-ssh-v-virtualbox/</guid>
      <pubDate>Mon, 12 May 2025 10:24:57 +0000</pubDate>
    </item>
    <item>
      <title>Управление суффиксами UPN в Active Directory</title>
      <link>https://windowsnotes.ru/activedirectory/upravlenie-suffiksami-upn-v-active-directory/</link>
      <description>&lt;p&gt;Имя участника-пользователя (User Principal Name, UPN) — одно из &lt;a href=https://windowsnotes.ru/activedirectory/skolko-imen-u-polzovatelya-v-active-directory/ target=_blank rel=noopener&gt;имен пользователя&lt;/a&gt; в Active Directory, основанное на стандарте &lt;a href=https://datatracker.ietf.org/doc/html/rfc822 data-linktype=external&gt;RFC 822&lt;/a&gt; . Его еще называют именем пользователя в стиле интернета, поскольку по формату оно схоже с именем электронной почты.&lt;p&gt;&lt;span id=more-16569&gt;&lt;/span&gt;&lt;p&gt;Состоит UPN из двух частей — префикса (имя участника-пользователя) и суффикса (имя субъекта-пользователя). Префикс объединяется с суффиксом с помощью символа «@». Суффикс UPN по умолчанию определяет домен, в котором размещается учетная запись пользователя. Например, для пользователя vasily_p, находящегося в домене test.local, UPN по умолчанию будет vasily_p@test.local.&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2025/03/upn1.png&gt;&lt;img fetchpriority=high decoding=async class=&#34;alignnone wp-image-16570&#34; title=&#34;upn-суффикс пользователя&#34; src=https://windowsnotes.ru/wp-content/uploads/2025/03/upn1.png alt=&#34;upn-суффикс пользователя&#34; width=330 height=431&gt;&lt;/a&gt;&lt;h3&gt;Добавление суффикса UPN&lt;/h3&gt;&lt;p&gt;По умолчанию в Active Directory суффиксом UPN является DNS-имя первого домена в лесу доменов. Но иногда требуется добавить дополнительные (альтернативные) UPN суффиксы. Например, вы хотите, чтобы имя пользователя совпадало с именем его почтового ящика, но внутреннее имя домена AD не соответствует внешнему почтовому домену. Или требуется разделить пользователей по какому либо признаку — например принадлежности к определенной организации или физическому местоположению. Также при использовании в AD немаршрутизируемого имени (напр. test.local) невозможно добавить домен в Microsoft Azure и настроить синхронизацию.&lt;p&gt;Суффикс UPN имеет следующие ограничения:&lt;p&gt;• Он должен быть DNS именем домена, но не обязательно того, в котором находится пользователь;&lt;br&gt;• Это может быть имя домена в текущем лесу, или любое альтернативное имя.&lt;p&gt;Дополнительные суффиксы UPN хранятся в разделе Partitions конфигурации AD, в атрибуте upnSuffixes. Добавить их можно различными способами, например с помощью ADSIEdit. Для этого надо подключиться к конфигурации, перейти к разделу Partitions, выделить его правой клавишей мыши и выбрать раздел свойств (Properties).&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2025/03/upn2.png&gt;&lt;img decoding=async class=&#34;alignnone wp-image-16573&#34; title=&#34;свойства конфигурации в ADSIEdit&#34; src=https://windowsnotes.ru/wp-content/uploads/2025/03/upn2.png alt=&#34;свойства конфигурации в ADSIEdit&#34; width=690 height=402 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2025/03/upn2.png 860w, https://windowsnotes.ru/wp-content/uploads/2025/03/upn2-768x447.png 768w&#34; sizes=&#34;(max-width: 690px) 100vw, 690px&#34;&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;В свойствах раздела найти атрибут upnSuffixes и открыть его. Этот атрибут представляет из себя массив строк, для добавления нового суффикса надо вставить его значение и нажать Add.&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2025/03/upn3.png&gt;&lt;img decoding=async class=&#34;alignnone wp-image-16574&#34; title=&#34;атрибут UPNSuffixex&#34; src=https://windowsnotes.ru/wp-content/uploads/2025/03/upn3.png alt=&#34;атрибут UPNSuffixex&#34; width=690 height=436 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2025/03/upn3.png 860w, https://windowsnotes.ru/wp-content/uploads/2025/03/upn3-768x486.png 768w&#34; sizes=&#34;(max-width: 690px) 100vw, 690px&#34;&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;Добавлять суффиксы можно также с помощью оснастки Active Directory Domains and Trusts. Для этого надо открыть оснастку, кликнуть в корне правой клавишей мыши и в открывшемся контекстном меню выбрать пункт Properties.&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2025/03/upn4.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16576&#34; title=&#34;оснастка Active Directory Domain and Trusts&#34; src=https://windowsnotes.ru/wp-content/uploads/2025/03/upn4.png alt=&#34;оснастка Active Directory Domain and Trusts&#34; width=650 height=260 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2025/03/upn4.png 815w, https://windowsnotes.ru/wp-content/uploads/2025/03/upn4-768x307.png 768w&#34; sizes=&#34;auto, (max-width: 650px) 100vw, 650px&#34;&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;Затем во вкладке UPN suffixes добавить нужный суффикс и нажать Add.&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2025/03/upn5.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16577&#34; title=&#34;добавление UPN суффикса&#34; src=https://windowsnotes.ru/wp-content/uploads/2025/03/upn5.png alt=&#34;добавление UPN суффикса&#34; width=320 height=367&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;Ну и конечно же управлять UPN-суффиксами можно с помощью PowerShell. Посмотреть имеющиеся суффиксы можно командой:&lt;p&gt;&lt;code&gt;Get-ADForest | fl name,upn*&lt;/code&gt;&lt;p&gt;Поскольку атрибут upnSuffixes, в котором хранятся суффиксы, представляет из себя массив, то для добавления нового элемента массива воспользуемся методом Add:&lt;p&gt;&lt;code&gt;Ser-ADForest -Identity test.local -UPNSuffixes @{add=&amp;#34;office.moscow&amp;#34;}&lt;/code&gt;&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2025/03/upn6.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16579&#34; title=&#34;добавление UPN-суффикса c помощью PowerShell&#34; src=https://windowsnotes.ru/wp-content/uploads/2025/03/upn6.png alt=&#34;добавление UPN-суффикса c помощью PowerShell&#34; width=650 height=265 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2025/03/upn6.png 817w, https://windowsnotes.ru/wp-content/uploads/2025/03/upn6-768x313.png 768w&#34; sizes=&#34;auto, (max-width: 650px) 100vw, 650px&#34;&gt;&lt;/a&gt;&lt;h3&gt;Изменение суффикса UPN пользователя&lt;/h3&gt;&lt;p&gt;После добавления суффиксов UPN при создании нового пользователя появляется возможность выбрать для него нужный суффикс. В консоли ADUC суффикс выбирается из выпадающего списка&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2025/03/upn14.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16592&#34; title=&#34;выбор UPN-суффикса при создании пользователя в ADUC&#34; src=https://windowsnotes.ru/wp-content/uploads/2025/03/upn14.png alt=&#34;выбор UPN-суффикса при создании пользователя в ADUC&#34; width=350 height=304&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;а при использовании PowerShell потребуется явно указать UPN с нужным суффиксом:&lt;p&gt;&lt;code&gt;NewADUser -Name &amp;#34;sidorov petr&amp;#34; -SamAccountName &amp;#34;sidorov_p&amp;#34; -UserPrincipalName &amp;#34;sidorov_p@test.ru&amp;#34;&lt;/code&gt;&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2025/03/upn15.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16593&#34; title=&#34;выбор UPN-суффикса при создании пользователя в PowerShell&#34; src=https://windowsnotes.ru/wp-content/uploads/2025/03/upn15.png alt=&#34;выбор UPN-суффикса при создании пользователя в PowerShell&#34; width=650 height=88 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2025/03/upn15.png 816w, https://windowsnotes.ru/wp-content/uploads/2025/03/upn15-768x104.png 768w&#34; sizes=&#34;auto, (max-width: 650px) 100vw, 650px&#34;&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;Для изменения суффикса UPN уже имеющихся пользователей можно зайти в свойства учетной записи и выбрать из списка нужный суффикс,&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2025/03/upn7.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16580&#34; title=&#34;изменение UPN-суффикса у пользователя&#34; src=https://windowsnotes.ru/wp-content/uploads/2025/03/upn7.png alt=&#34;изменение UPN-суффикса у пользователя&#34; width=330 height=431&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;либо воспользоваться PowerShell:&lt;p&gt;&lt;code&gt;Set-ADUser vasily_p -UserPrincipalName vasily_p@test.ru&lt;/code&gt;&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2025/03/upn8.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16581&#34; title=&#34;изменение UPN-суффикса пользователя с помощью PowerShell&#34; src=https://windowsnotes.ru/wp-content/uploads/2025/03/upn8.png alt=&#34;изменение UPN-суффикса пользователя с помощью PowerShell&#34; width=650 height=154 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2025/03/upn8.png 817w, https://windowsnotes.ru/wp-content/uploads/2025/03/upn8-768x181.png 768w&#34; sizes=&#34;auto, (max-width: 650px) 100vw, 650px&#34;&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;Изменить UPN-суффикс у группы пользователей пользователей можно с помощью ADUC. Для этого надо выделить нужных пользователей и открыть пункт Properties&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2025/03/upn9.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16582&#34; title=&#34;выбор нескольких пользователей&#34; src=https://windowsnotes.ru/wp-content/uploads/2025/03/upn9.png alt=&#34;выбор нескольких пользователей&#34; width=650 height=316 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2025/03/upn9.png 818w, https://windowsnotes.ru/wp-content/uploads/2025/03/upn9-768x374.png 768w&#34; sizes=&#34;auto, (max-width: 650px) 100vw, 650px&#34;&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;а затем поставить галку UPN suffix и выбрать нужный суффикс.&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2025/03/upn10.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16583&#34; title=&#34;массовое изменение UPN-суффикса из графической оснастки&#34; src=https://windowsnotes.ru/wp-content/uploads/2025/03/upn10.png alt=&#34;массовое изменение UPN-суффикса из графической оснастки&#34; width=320 height=364&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;Вариант с ADUC простой, но не очень гибкий. Если требуется поменять пользователям UPN-суффикспо какому то произвольному алгоритму, например по расположению в OU, принадлежности к департаменту или просто по списку, то тут лучше подойдет PowerShell. Вариантов много, для примера поменяем суффикс пользователям, расположенным в OU Employees:&lt;p&gt;&lt;code&gt;$users = Get-ADUser -Filter * -SearchBase &amp;#34;OU=Employees, DC=test, DC=local&amp;#34;;&lt;/code&gt;&lt;br&gt;&lt;code&gt;foreach ($user in $users) {Set-ADUser -UserPrincipalName ($user.UserPrincipalName.replace(&amp;#34;test.local&amp;#34;,&amp;#34;office.moscow&amp;#34;))}&lt;/code&gt;&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2025/03/upn11.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16587&#34; title=&#34;изменение UPN суффикса с помощью PowwerShell&#34; src=https://windowsnotes.ru/wp-content/uploads/2025/03/upn11.png alt=&#34;изменение UPN суффикса с помощью PowwerShell&#34; width=650 height=99 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2025/03/upn11.png 816w, https://windowsnotes.ru/wp-content/uploads/2025/03/upn11-768x117.png 768w&#34; sizes=&#34;auto, (max-width: 650px) 100vw, 650px&#34;&gt;&lt;/a&gt;&lt;h3&gt;Удаление суффикса UPN&lt;/h3&gt;&lt;p&gt;Если требуется удалить лишние суффиксы UPN, сделать это можно с помощью PowerShell. Команда практически такая же, как и при добавлении, только теперь мы используем метод remove:&lt;p&gt;&lt;code&gt;Ser-ADForest -Identity test.local -UPNSuffixes @{remove=&amp;#34;office.moscow&amp;#34;}&lt;/code&gt;&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2025/03/upn12.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16588&#34; title=&#34;удаление UPN суффикса с помощью PowerShell&#34; src=https://windowsnotes.ru/wp-content/uploads/2025/03/upn12.png alt=&#34;удаление UPN суффикса с помощью PowerShell&#34; width=650 height=148 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2025/03/upn12.png 817w, https://windowsnotes.ru/wp-content/uploads/2025/03/upn12-768x175.png 768w&#34; sizes=&#34;auto, (max-width: 650px) 100vw, 650px&#34;&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;Также для удаления можно воспользоваться графической оснасткой. Для этого надо выбрать суффикс и нажать кнопку Remove.&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2025/03/upn13.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16589&#34; title=&#34;удаление UPN суффикса из графической оснастки&#34; src=https://windowsnotes.ru/wp-content/uploads/2025/03/upn13.png alt=&#34;удаление UPN суффикса из графической оснастки&#34; width=320 height=364&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;В заключение несколько интересных моментов касательно UPN, о которых нужно помнить.&lt;p&gt;Не смотря на то, что имя участника-пользователя состоит из двух независимых друг от друга частей, хранится оно как единое целое, в атрибуте пользователя &lt;a href=https://learn.microsoft.com/en-us/windows/win32/adschema/a-userprincipalname target=_blank rel=noopener&gt;UserPrincipalName&lt;/a&gt;.&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2025/03/upn17.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16596&#34; title=&#34;атрибут пользователя UPN&#34; src=https://windowsnotes.ru/wp-content/uploads/2025/03/upn17.png alt=&#34;атрибут пользователя UPN&#34; width=330 height=448&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;Из этого следует, что хотя UPN пользователя должно быть уникальным среди всех объектов в пределах леса, однако префикс (имя пользователя) можно повторно использовать с другим суффиксом. Т.е. технически можно создать в одном домене двух одинаковых пользователей, назначив им разные суффиксы UPN.&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2025/03/upn18.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16597&#34; title=&#34;пользователи с одинаковым именем&#34; src=https://windowsnotes.ru/wp-content/uploads/2025/03/upn18.png alt=&#34;пользователи с одинаковым именем&#34; width=660 height=448 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2025/03/upn18.png 817w, https://windowsnotes.ru/wp-content/uploads/2025/03/upn18-768x522.png 768w&#34; sizes=&#34;auto, (max-width: 660px) 100vw, 660px&#34;&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;Также стоит помнить, что UPN не является обязательным атрибутом пользователя, поэтому технически можно создать пользователя без UPN. Графическая оснастка ADUC сделать такое не позволит, а вот PowerShell вполне. К примеру вот такая команда успешно отработает и пользователь будет создан:&lt;p&gt;&lt;code&gt;NewADUser -Name &amp;#34;sidorov petr&amp;#34; -SamAccountName &amp;#34;sidorov_p&amp;#34;&lt;/code&gt;&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2025/03/upn19.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16598&#34; title=&#34;создание пользователя без UserPrincipalName&#34; src=https://windowsnotes.ru/wp-content/uploads/2025/03/upn19.png alt=&#34;создание пользователя без UserPrincipalName&#34; width=650 height=76 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2025/03/upn19.png 817w, https://windowsnotes.ru/wp-content/uploads/2025/03/upn19-768x90.png 768w&#34; sizes=&#34;auto, (max-width: 650px) 100vw, 650px&#34;&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;И вот что мы получим в результате.  В принципе учетная запись вполне рабочая, поскольку  для аутентификации в домене достаточно SamAccountName. Однако создавать пользователей без UPN не рекомендуется, поскольку при его отсутствии у пользователя могут возникнуть проблемы со входом в различные информационные системы.&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2025/03/upn16.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16595&#34; title=&#34;пользователь без UPN&#34; src=https://windowsnotes.ru/wp-content/uploads/2025/03/upn16.png alt=&#34;пользователь без UPN&#34; width=330 height=450&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;На этом, пожалуй, все.</description>
      <author>Kirill</author>
      <guid>https://windowsnotes.ru/activedirectory/upravlenie-suffiksami-upn-v-active-directory/</guid>
      <pubDate>Fri, 28 Mar 2025 08:35:51 +0000</pubDate>
    </item>
    <item>
      <title>Настройка SSH аутентификации по ключам</title>
      <link>https://windowsnotes.ru/other/nastrojka-ssh-autentifikacii-po-klyucham/</link>
      <description>&lt;p&gt;По умолчанию при подключении по SSH используется аутентификация по паролю. Этот наиболее простой, но не самый безопасный способ. Хотя пароль и передается в зашифрованном виде, тем не менее  он может быть перехвачен или подобран. Поэтому аутентификация по ключу является более надежным и безопасным способом.&lt;p&gt;&lt;span id=more-16503&gt;&lt;/span&gt;&lt;p&gt;Использование ключей основано на асимметричном шифровании. Асимметричное шифрование&lt;strong&gt; — &lt;/strong&gt;это метод шифрования данных, предполагающий использование пары ключей — открытого и закрытого. Открытый (публичный) ключ применяется для шифрования информации и может передаваться по незащищенным каналам. Закрытый (приватный) ключ применяется для расшифровки данных, зашифрованных открытым ключом. Открытый и закрытый ключи представляют из себя наборы символов, связанные друг с другом определенной функцией, но так, что, зная один, крайне сложно вычислить второй.&lt;p&gt;Теоретически приватный ключ от асимметричного шифра можно вычислить, зная публичный ключ и механизм, лежащий в основе алгоритма шифрования. Поэтому надежными считаются ключи, для которых это нецелесообразно с практической точки зрения. Так на данный момент удалось взломать ключ RSA длиной 768 бит, на что потребовалось 4000 вычислительных лет (core years).&lt;p&gt;&lt;strong&gt;Примечание. &lt;/strong&gt;Один вычислительный год эквивалентен непрерывному использованию одного процессорного ядра в течение года. Использование 12 ядер в месяц или 365 ядер в течение одного дня эквивалентно 1 вычислительному году.&lt;p&gt;Асимметричное шифрование используется для защиты информации при ее передаче, также на его принципах построена работа электронных подписей.&lt;h3&gt;&lt;strong&gt;Принцип действия асимметричного шифрования&lt;/strong&gt;&lt;/h3&gt;&lt;p&gt;Схема передачи данных между двумя субъектами (А и B) с использованием открытого ключа выглядит следующим образом:&lt;ul&gt;&lt;li&gt;Субъект А генерирует пару ключей, открытый и закрытый;&lt;li&gt;Субъект А передает открытый ключ субъекту B. Передача может осуществляться по незащищенным каналам;&lt;li&gt;Субъект B шифрует пакет данных при помощи полученного открытого ключа и передает его А. Передача может осуществляться по незащищенным каналам;&lt;li&gt;Субъект А расшифровывает полученную от B информацию при помощи своего приватного, закрытого ключа.&lt;/ul&gt;&lt;p&gt;В такой схеме перехват любых данных, передаваемых по незащищенным каналам, не имеет смысла, поскольку восстановить исходную информацию возможно только при помощи закрытого ключа, известного лишь получателю и не требующего передачи.&lt;p&gt;&lt;strong&gt;Примечание.&lt;/strong&gt; Стоит упомянуть, что SSH не использует пары ключей для шифрования трафика. Пара ключей SSH используется только для аутентификации во время первоначального подключения. Позже, в процессе соединения, генерируется набор новых, эфемерных и симметричных ключей, которые и используются для шифрования трафика сеанса SSH.&lt;p&gt;Для генерации ключей используются несколько алгоритмов шифрования:&lt;p&gt;&lt;strong&gt;RSA (Rivest–Shamir–Adleman) — &lt;/strong&gt;самый старый и распространённый алгоритм шифрования с открытым ключом. Основывается на вычислительной сложности задачи факторизации больших полупростых чисел. &lt;span class=Y2IQFc lang=ru&gt;По сравнению с DSA, RSA быстрее проверяет подпись, но медленнее ее генерирует&lt;/span&gt;. Стойкость &lt;span class=Y2IQFc lang=ru&gt;основана на факторизации целых чисел, поэтому безопасный генератор случайных чисел  (RNG, Random Number Generator) не требуется. Рекомендуемая минимальная длина ключа — 2048 бит;&lt;/span&gt;&lt;p&gt;&lt;strong&gt;DSA &lt;span class=ILfuVd lang=ru&gt;&lt;span class=hgKElc&gt;(Digital Signature Algorithm) — &lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span class=ILfuVd lang=ru&gt;&lt;span class=hgKElc&gt;к&lt;/span&gt;&lt;/span&gt;риптографический алгоритм для создания цифровой подписи (не для шифрования, в отличии от RSA) с использованием пары ключей. Алгоритм DSA основывается на вычислительных задачах, связанных с дискретным логарифмированием. &lt;span class=Y2IQFc lang=ru&gt;DSA&lt;/span&gt; п&lt;span class=Y2IQFc lang=ru&gt;о сравнению с RSA  быстрее генерирует подпись, но медленнее ее проверяет. Стойкость ключа зависит от качества RNG. На данный момент считается небезопасным, не поддерживается OpenSSH с версии 7 и не рекомендуется к использованию;&lt;br&gt;&lt;/span&gt;&lt;p&gt;&lt;strong&gt;ECDSA (E&lt;/strong&gt;&lt;span class=ILfuVd lang=ru&gt;&lt;span class=hgKElc&gt;&lt;strong&gt;lliptic Curve D&lt;span tabindex=0 role=tooltip&gt;&lt;span class=c5aZPb tabindex=0 role=button data-enable-toggle-animation=true data-extra-container-classes=ZLo7Eb data-hover-hide-delay=1000 data-hover-open-delay=500 data-send-open-event=true data-theme=0 data-width=250 data-ved=2ahUKEwi098K_6-iKAxWKBhAIHf9XO2UQmpgGegQIJBAD&gt;&lt;span class=JPfdse data-bubble-link data-segment-text=&#34;digital signature algorithm&#34;&gt;igital Signature Algorithm)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;b&gt; — &lt;/b&gt;асимметричный алгоритм шифрования с открытым ключом для создания цифровой подписи, использующий математические свойства эллиптических кривых для генерации ключей и выполнения операций над ними. С&lt;span class=Y2IQFc lang=ru&gt;пособен обеспечить относительно тот же уровень безопасности, что и RSA, но с меньшей длиной ключа. Рекомендуемый минимальный размер ключа для ECDSA — 256 бит. Поскольку ECDSA является развитием DSA, то он имеет тот же недостаток — чувствительность к качеству RNG;&lt;/span&gt;&lt;br&gt;&lt;/span&gt;&lt;/span&gt;&lt;p&gt;&lt;strong&gt;EdDSA (Edwards-curve Digital Signature Algorithm)&lt;/strong&gt; — а&lt;span class=Y2IQFc lang=ru&gt;лгоритм цифровой подписи на основе кривой Эдвардса. Это схема цифровой подписи, использующая вариант подписи Шнорра, основанный на искривленных кривых Эдвардса. Создание подписи в EdDSA является детерминированным, его безопасность основана на трудноразрешимости определенных задач дискретного логарифма, поэтому он безопаснее, чем DSA и ECDSA, которые требуют высококачественной случайности для каждой подписи;&lt;/span&gt;&lt;p&gt;&lt;strong&gt;Ed&lt;/strong&gt;&lt;strong&gt;25519 — &lt;/strong&gt;вариант &lt;span class=Y2IQFc lang=ru&gt;EdDSA, использующий SHA-512/256 и эллиптическую кривую, связанную с Curve25519. Обеспечивает лучшую безопасность, чем DSA, ECDSA и EdDSA, а также имеет лучшую производительность. На данный момент наиболее рекомендуемый алгоритм шифрования.&lt;br&gt;&lt;/span&gt;&lt;p&gt;Какой из вариантов использовать зависит от ситуации. Но на практике скорее всего выбирать придется между RSA и Ed25519, остальные варианты используются довольно редко. Ключи RSA наиболее универсальны и подходят в большинстве случаев, однако они более громоздки. Ed25519 более эффективен, безопасен и имеет меньший размер ключа, однако пока еще не везде поддерживается.&lt;h3&gt;Настройка аутентификации по ключу в Linux&lt;/h3&gt;&lt;p&gt;Итак, переходим от теории к практике. Для опытов у нас есть два сервера на Ubuntu 24.04 LTS. В качестве клиента выступает SRV1, а сервер, к которому мы будем подключаться, зовут SRV2.&lt;p&gt;Для начала необходимо на сервере SRV1 сгенерировать пару ключей. Сделать это можно с помощью специальной утилиты ssh-keygen, которая входит в пакет OpenSSH. Запустим ее командой:&lt;p&gt;&lt;code&gt;ssh-keygen&lt;/code&gt;&lt;p&gt;Утилита предложит выбрать имя файла и расположение ключей, также можно указать парольную фразу для дополнительной защиты ключа. Пока оставим все по умолчанию. В итоге будет создана пара 256 битных ED25519 ключей.&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey1.png&gt;&lt;img fetchpriority=high decoding=async class=&#34;alignnone wp-image-16513&#34; title=&#34;генерация пары ключей с настройками по умолчанию&#34; src=https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey1.png alt=&#34;генерация пары ключей с настройками по умолчанию&#34; width=780 height=313 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey1.png 979w, https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey1-768x308.png 768w&#34; sizes=&#34;(max-width: 780px) 100vw, 780px&#34;&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;По умолчанию ключи создаются в домашней директории пользователя, в каталоге ~/.ssh. Имена для ключей генерируются, исходя из используемого алгоритма, так для RSA это будет id_rsa для приватного и id_rsa.pub для публичного ключа, а для Ed25519 — id_ed25519 и id_ed25519.pub соответственно.&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey2.png&gt;&lt;img decoding=async class=&#34;alignnone wp-image-16514&#34; title=&#34;директория для хранения ключей по умолчанию&#34; src=https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey2.png alt=&#34;директория для хранения ключей по умолчанию&#34; width=780 height=131 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey2.png 977w, https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey2-768x129.png 768w&#34; sizes=&#34;(max-width: 780px) 100vw, 780px&#34;&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;При необходимости можно изменить параметры генерируемых ключей, например указать желаемый алгоритм и размер ключа. Для примера сгенерируем ключ RSA длиной 2048 бит с именем srv2key:&lt;p&gt;&lt;code&gt;ssh-keygen -t RSA -b 2018 -f ~/.ssh/srv2key&lt;/code&gt;&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey3.png&gt;&lt;img decoding=async class=&#34;alignnone wp-image-16515&#34; title=&#34;генерация ключей с заданными параметрами&#34; src=https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey3.png alt=&#34;генерация ключей с заданными параметрами&#34; width=780 height=300 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey3.png 978w, https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey3-768x295.png 768w&#34; sizes=&#34;(max-width: 780px) 100vw, 780px&#34;&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;И раз уж мы создали два разных типа ключей, давайте их сравним. Посмотрите, какая разница в длине между ED25519 и RSA при сопоставимой безопасности. И это только 2048 бит, а сейчас уже рекомендуется использовать 4096-битные RSA-ключи.&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey4.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16516&#34; title=&#34;сравнение ключей RSA и ED25519&#34; src=https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey4.png alt=&#34;сравнение ключей RSA и ED25519&#34; width=780 height=134 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey4.png 984w, https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey4-768x132.png 768w&#34; sizes=&#34;auto, (max-width: 780px) 100vw, 780px&#34;&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;Ключи у нас есть, теперь надо публичный ключ перенести на SRV2, к которому мы планируем подключаться, для чего его необходимо добавить в файл ~/.ssh/authorized_keys. Проще всего сделать это с помощью утилиты ssh-copy-id, также входящей в набор утилит OpenSSH. Для копирования ключа надо перейти в директорию с ключами и запустить утилиту, указав файл ключа, имя пользователя и удаленный сервер. В нашем случае сервер SRV2, пользователь administrator, соответственно команда будет выглядеть так:&lt;p&gt;&lt;code&gt;ssh-copy-id -i ~/.ssh/id_ed25519.pub administrator@srv2&lt;/code&gt;&lt;p&gt;Имя ключа в принципе можно не указывать. Если их несколько, то будет выбран ключ с дефолтным именем, в нашем случае это id_ed25519.pub. Если же есть несколько ключей с именем по умолчанию, но разных типов, например rsa и ed25519, то скопируется ключ RSA.&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey5.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16517&#34; title=&#34;копирование публичного ключа на удаленный компьютер с помощью ssh-copy-id&#34; src=https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey5.png alt=&#34;копирование публичного ключа на удаленный компьютер с помощью ssh-copy-id&#34; width=780 height=237 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey5.png 984w, https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey5-768x233.png 768w&#34; sizes=&#34;auto, (max-width: 780px) 100vw, 780px&#34;&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;Для тех, кто не ищет легких путей, есть второй вариант копирования ключа. В этом случае сначала на удаленном сервере проверяем наличие в домашнем каталоге пользователя директории ~/.ssh, и если она отсутствует, то создаем ее:&lt;p&gt;&lt;code&gt;mkdir ~/.ssh&lt;/code&gt;&lt;p&gt;назначаем на директорию права:&lt;p&gt;&lt;code&gt;chmod 0700 ~/.ssh&lt;/code&gt;&lt;p&gt;создаем файл ~/.ssh/authorized_keys:&lt;p&gt;&lt;code&gt;touch ~/.ssh/authorized_keys&lt;/code&gt;&lt;p&gt;и назначаем права на файл:&lt;p&gt;&lt;code&gt;chmod 0644 ~/.ssh/authorized_keys&lt;/code&gt;&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey7.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16519&#34; title=&#34;создание директории для ключей вручную&#34; src=https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey7.png alt=&#34;создание директории для ключей вручную&#34; width=780 height=101 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey7.png 977w, https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey7-768x100.png 768w&#34; sizes=&#34;auto, (max-width: 780px) 100vw, 780px&#34;&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;Теперь копируем ключ в файл командой:&lt;p&gt;&lt;code&gt;cat ~/.ssh/id_ed25519.pub | ssh administrator@srv2 &amp;#34;cat &amp;gt;&amp;gt; ~/.ssh/authorized_keys&amp;#34;&lt;/code&gt;&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey8.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16520&#34; title=&#34;копирование публичного ключа на удаленный компьютер вручную&#34; src=https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey8.png alt=&#34;копирование публичного ключа на удаленный компьютер вручную&#34; width=780 height=135 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey8.png 976w, https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey8-768x133.png 768w&#34; sizes=&#34;auto, (max-width: 780px) 100vw, 780px&#34;&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;Каким бы способом вы не воспользовались, в итоге ключ будет добавлен на SRV2, в домашнюю директорию пользователя administrator, в файл /.ssh/authorized_keys.&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey9.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16521&#34; title=&#34;проверка содержимого файла authorized_keys&#34; src=https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey9.png alt=&#34;проверка содержимого файла authorized_keys&#34; width=780 height=74 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey9.png 977w, https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey9-768x73.png 768w&#34; sizes=&#34;auto, (max-width: 780px) 100vw, 780px&#34;&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;Теперь остается только набрать:&lt;p&gt;&lt;code&gt;ssh administrator@srv2&lt;/code&gt;&lt;p&gt;и вот мы уже на SRV2, без запроса пароля и прочих глупостей)&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey10.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16522&#34; title=&#34;подключение с аутентификацией по ключу&#34; src=https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey10.png alt=&#34;подключение с аутентификацией по ключу&#34; width=780 height=404 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey10.png 977w, https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey10-768x398.png 768w&#34; sizes=&#34;auto, (max-width: 780px) 100vw, 780px&#34;&gt;&lt;/a&gt;&lt;h3&gt;Файл known_hosts&lt;/h3&gt;&lt;p&gt;Кстати, у хостов тоже есть свои SSH-ключи, которые используются для аутентификации при удаленном подключении. Ключи необходимы для уверенности в том, что вы подключаетесь к тому самому хосту. Это важно, поскольку удалённый хост могут подменить, и при подключении вы любезно предоставите свой логин и пароль злоумышленникам.&lt;p&gt;Проверка производится по типу того же HTTPS, когда удаленный ресурс предоставляет свой сертификат, но в качестве третьей стороны, подтверждающей подлинность удаленного хоста, здесь выступает не доверенный удостоверяющий центр, а сам пользователь. Поэтому при первом подключении к серверу по SSH мы увидим примерно такое сообщение:&lt;p&gt;″The authenticity of host ‘srv2 (192.168.147.170)’ can’t be established.&lt;br&gt;RSA key fingerprint is SHA256:kd9mRkEGLo+RBBNpxKp7mInocF3/Yl/0fXRsGJ2JfYg.&lt;br&gt;Are you sure you want to continue connecting (yes/no)?″&lt;p&gt;Соответственно нам предстоит решить, уверены ли мы в том, куда именно подключаемся. Если согласиться, то в файл ~/.ssh/known_hosts добавится строка, в которой через пробел записаны: хэш от имени сервера, название используемого алгоритма и публичный ключ сервера. И при каждом последующем подключении SSH-клиент будет проверять, совпадает ли публичный ключ для этого сервера с тем, который был прошлый раз.&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey6.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16518&#34; title=&#34;файл known_hosts&#34; src=https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey6.png alt=&#34;файл known_hosts&#34; width=780 height=214 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey6.png 986w, https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey6-768x210.png 768w&#34; sizes=&#34;auto, (max-width: 780px) 100vw, 780px&#34;&gt;&lt;/a&gt;&lt;h3&gt;Защита приватного ключа паролем&lt;/h3&gt;&lt;p&gt;Хотя приватный ключ не передается на удаленный хост, тем не менее рекомендуется его дополнительно защитить паролем. В этом случае он будет храниться на диске в зашифрованном виде, и даже если злоумышленник получит доступ к вашей системе, воспользоваться ключом он не сможет.&lt;p&gt;Пароль можно задать как при создании ключа, так и позже, с помощью все той же утилиты ssh-keygen. Для этого выполним команду:&lt;p&gt;&lt;code&gt;ssh-keygen -p -f ~/.ssh/id_ed25519&lt;/code&gt;&lt;p&gt;введем парольную фразу и подтверждение.&lt;p&gt;Теперь ключ в безопасности. Но есть один минус — при аутентификации с ключом придется вводить пароль.&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey11.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16523&#34; title=&#34;установка парольной фразы для приватного ключа&#34; src=https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey11.png alt=&#34;установка парольной фразы для приватного ключа&#34; width=780 height=135 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey11.png 977w, https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey11-768x133.png 768w&#34; sizes=&#34;auto, (max-width: 780px) 100vw, 780px&#34;&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;Избежать постоянного ввода пароля можно с помощью агента ssh-agent, который является частью OpenSSH. Агент SSH — это менеджер ключей для SSH. Он загружает ключи в оперативную память и хранит их там, незашифрованные и готовые к использованию. Это избавляет от необходимости вводить пароль при каждом подключении к серверу.&lt;p&gt;Агент не записывает никакой информации о ключах на диск, выгрузить из него ключи также невозможно. Секретные ключи, хранящиеся в агенте, могут использоваться только для одной цели — подписания сообщения. Поэтому использование агента SSH считается безопасным.&lt;p&gt;Агент работает в фоновом режиме, отдельно от ssh. По умолчанию он неактивен, запустить его можно командой:&lt;p&gt;&lt;code&gt;eval `ssh-agent -s`&lt;/code&gt;&lt;p&gt;Затем в него надо загрузить ключи командой:&lt;p&gt;&lt;code&gt;ssh-add&lt;/code&gt;&lt;p&gt;Если не указывать конкретные ключи, то ssh-add проверяет домашний каталог пользователя на наличие стандартных ключей (id_rsa, id_ed25519 и т.п.) и загружает их в память. При загрузке ключа потребуется однократно ввести его пароль, зато после добавления ключей они будут автоматически использоваться ssh в течение всего сеанса пользователя, без необходимости ввода пароля.&lt;p&gt;Вывести список ключей, загруженных в агент, можно командой:&lt;p&gt;&lt;code&gt;ssh-add -l&lt;/code&gt;&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey12.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16524&#34; title=&#34;запуск ssh-agent и добавление в него ключа&#34; src=https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey12.png alt=&#34;запуск ssh-agent и добавление в него ключа&#34; width=780 height=130 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey12.png 977w, https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey12-768x128.png 768w&#34; sizes=&#34;auto, (max-width: 780px) 100vw, 780px&#34;&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;А можно ли сделать так, чтобы ssh-agent запускался автоматически, при логине, и сам подгружал все необходимые ключи? Можно, например с помощью утилиты keychain (связка ключей). Это менеджер ключей, работающий в паре с агентом. Он проверяет наличие работающего ssh-agent и запускает его, если он не запущен, а также сохраняет переменные среды ssh-agent в файл ~/.keychain/${HOSTNAME}-sh, что позволяет командным оболочкам при логине получать этот файл и устанавливать соединение ssh без ввода пароля.&lt;p&gt;Установить keychain можно командой:&lt;p&gt;&lt;code&gt;sudo apt install keychain&lt;/code&gt;&lt;p&gt;Для того, чтобы наш ключ подгружался автоматически, при логине, откроем в текстовом редакторе файл ~/.bashrc и добавим в него строчки:&lt;p&gt;&lt;code&gt;/usr/bin/keychain $HOME/.ssh/id_ed25519&lt;/code&gt;&lt;br&gt;&lt;code&gt;source $HOME/.keychain/$HOSTNAME-sh&lt;/code&gt;&lt;div class=oSioSc&gt;&lt;div id=tw-target&gt;&lt;div id=kAz1tf class=&#34;g9WsWb PZPZlf&#34; data-attrid=tw-targetArea data-entityname=&#34;Google Translate&#34;&gt;&lt;div id=tw-target-text-container class=&#34;tw-ta-container F0azHf tw-nfl&#34; tabindex=0 role=text&gt;&lt;pre id=tw-target-text class=&#34;tw-data-text tw-text-large tw-ta&#34; data-placeholder=Перевод data-ved=2ahUKEwj_vp-1y4aLAxW6HxAIHZFWGMQQ3ewLegQIChAT aria-label=&#34;Переведенный текст: Утилита связки ключей (программа) проверяет наличие работающего ssh-агента и запускает его, если он еще не запущен. Он сохраняет переменные среды ssh-agent в файле ~/.keychain/${HOSTNAME}-sh, что позволяет последующим входам в систему и неинтерактивным оболочкам, таким как задания cron, получать файл и устанавливать соединения ssh без пароля. Связка ключей совместима с большинством UNIX-подобных операционных систем, включая Cygwin, и работает с Bourne-совместимыми, csh-совместимыми и рыбными оболочками.&#34;&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey13.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16525&#34; title=&#34;редактирование .bashrc для работы keychain&#34; src=https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey13.png alt=&#34;редактирование .bashrc для работы keychain&#34; width=780 height=206 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey13.png 976w, https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey13-768x203.png 768w&#34; sizes=&#34;auto, (max-width: 780px) 100vw, 780px&#34;&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;Теперь при первом входе в систему агент SSH будет автоматически запущен, и в него, также автоматически, будет загружен наш ключ. Но пароль все равно придется ввести, хотя и всего один раз.&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey14.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16526&#34; title=&#34;запрос пароля публичного ключа при логине&#34; src=https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey14.png alt=&#34;запрос пароля публичного ключа при логине&#34; width=780 height=100 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey14.png 978w, https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey14-768x99.png 768w&#34; sizes=&#34;auto, (max-width: 780px) 100vw, 780px&#34;&gt;&lt;/a&gt;&lt;h3&gt;Запрет аутентификации по паролю&lt;/h3&gt;&lt;p&gt;Добавив на сервер ключи, можно запретить аутентификацию по паролю. Это еще больше повысит безопасность сервера, поскольку зайти на него по SSH, не имея ключа, станет невозможно. Для этого надо открыть файл /etc/ssh/sshd_config, в строке &lt;strong&gt;PasswordAuthentication&lt;/strong&gt; поставить значение &lt;strong&gt;no&lt;/strong&gt;, и рестартовать SSH командой:&lt;pre&gt;&lt;code&gt;sudo systemctl restart ssh&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey15.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16527&#34; title=&#34;запрет входа по паролю в sshd_config&#34; src=https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey15.png alt=&#34;запрет входа по паролю в sshd_config&#34; width=780 height=251 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey15.png 977w, https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey15-768x248.png 768w&#34; sizes=&#34;auto, (max-width: 780px) 100vw, 780px&#34;&gt;&lt;/a&gt;&lt;h3&gt;Настройка клиента SSH в Windows&lt;/h3&gt;&lt;p&gt;В самой Windows протокол SSH для удаленного управления используется редко. Однако зачастую машины с Windows используются как рабочие станции для удаленного администрирования Linux систем. Поэтому добавляем в нашу тестовую среду третий сервер SRV3 на Windows Server 2022.&lt;p&gt;Начиная с Windows 10\Windows Server 2019 ssh-клиент входит в состав операционной системы в виде отдельного компонента. Активировать его можно из PowerShell, командой:&lt;p&gt;&lt;code&gt;Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0&lt;/code&gt;&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey16.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16528&#34; title=&#34;установка OpenSSH в Windows&#34; src=https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey16.png alt=&#34;установка OpenSSH в Windows&#34; width=685 height=153 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey16.png 857w, https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey16-768x171.png 768w&#34; sizes=&#34;auto, (max-width: 685px) 100vw, 685px&#34;&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;Процесс генерации ключей такой же, как и на Linux. Единственное отличие в том, что по умолчанию создается 2048 битный RSA ключ, поэтому для генерации ключа ED25519 необходимо явно указать тип ключа. Размер указывать не нужно, он у ED25519 фиксированный (256 бит):&lt;p&gt;&lt;code&gt;ssh-keygen -t ED25519&lt;/code&gt;&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey17.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16529&#34; title=&#34;генерация ключей в Windows&#34; src=https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey17.png alt=&#34;генерация ключей в Windows&#34; width=685 height=303 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey17.png 856w, https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey17-768x340.png 768w&#34; sizes=&#34;auto, (max-width: 685px) 100vw, 685px&#34;&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;Ключи будут созданы в профиле текущего пользователя, в директории ./ssh (%USERPROFILE%\.ssh).&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey18.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16530&#34; title=&#34;директория с ключами по умолчанию в Windows&#34; src=https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey18.png alt=&#34;директория с ключами по умолчанию в Windows&#34; width=685 height=187 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey18.png 860w, https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey18-768x210.png 768w&#34; sizes=&#34;auto, (max-width: 685px) 100vw, 685px&#34;&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;Утилита ssh-copy-id в Windows отсутствует, поэтому для копирования публичного ключа воспользуемся командой type:&lt;p&gt;&lt;code&gt;type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh administrator@srv2 &amp;#34;cat &amp;gt;&amp;gt; .ssh/authorized_keys&amp;#34;&lt;/code&gt;&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey19.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16531&#34; title=&#34;копирование публичного ключа из Windows в Linux&#34; src=https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey19.png alt=&#34;копирование публичного ключа из Windows в Linux&#34; width=685 height=106 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey19.png 857w, https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey19-768x119.png 768w&#34; sizes=&#34;auto, (max-width: 685px) 100vw, 685px&#34;&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;Ключ добавлен, можно подключаться:&lt;p&gt;&lt;code&gt;ssh administrator@srv2&lt;/code&gt;&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey20.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16532&#34; title=&#34;подключение по ssh из Windows с аутентификацией по ключу&#34; src=https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey20.png alt=&#34;подключение по ssh из Windows с аутентификацией по ключу&#34; width=685 height=202 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey20.png 856w, https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey20-768x226.png 768w&#34; sizes=&#34;auto, (max-width: 685px) 100vw, 685px&#34;&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;Вот так теперь выглядит содержимое файла authorized_keys на SRV2.&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey21.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16533&#34; title=&#34;проверка содержимого файла authorized_keys&#34; src=https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey21.png alt=&#34;проверка содержимого файла authorized_keys&#34; width=685 height=74 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey21.png 856w, https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey21-768x83.png 768w&#34; sizes=&#34;auto, (max-width: 685px) 100vw, 685px&#34;&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;Защитим приватный ключ паролем:&lt;p&gt;&lt;code&gt;ssh-keygen -p -f $env:USERPROFILE\.ssh\id_ed25519&lt;/code&gt;&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey22.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16534&#34; title=&#34;защита приватного ключа паролем&#34; src=https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey22.png alt=&#34;защита приватного ключа паролем&#34; width=685 height=95 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey22.png 857w, https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey22-768x107.png 768w&#34; sizes=&#34;auto, (max-width: 685px) 100vw, 685px&#34;&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;Чтобы не вводить ключ каждый раз, проверим службу агента SSH:&lt;p&gt;&lt;code&gt;Get-Service ssh-agent&lt;/code&gt;&lt;p&gt;По умолчанию она остановлена. Выставим для нее автоматический режим запуска при старте системы:&lt;p&gt;&lt;code&gt;Set-Service ssh-agent -StartupType Automatic&lt;/code&gt;&lt;p&gt;и запустим ее:&lt;p&gt;&lt;code&gt;Start-Service ssh-agent&lt;/code&gt;&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey23.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16535&#34; title=&#34;старт ssh-agent в Windows&#34; src=https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey23.png alt=&#34;старт ssh-agent в Windows&#34; width=685 height=161 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey23.png 856w, https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey23-768x180.png 768w&#34; sizes=&#34;auto, (max-width: 685px) 100vw, 685px&#34;&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;Остается только загрузить ключи в агента командой:&lt;p&gt;&lt;code&gt;ssh-add&lt;/code&gt;&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey24.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16536&#34; title=&#34;добавление ключа в ssh-agent в Windows&#34; src=https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey24.png alt=&#34;добавление ключа в ssh-agent в Windows&#34; width=685 height=110 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey24.png 857w, https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey24-768x124.png 768w&#34; sizes=&#34;auto, (max-width: 685px) 100vw, 685px&#34;&gt;&lt;/a&gt;&lt;h3&gt;Настройка подключения с помощью Putty&lt;/h3&gt;&lt;p&gt;Хотя для подключения по SSH в Windows имеются все необходимые средства, все же большинство пользователей предпочитает использовать сторонние SSH-клиенты.  Для примера возьмем Putty, как наиболее распространенный вариант.&lt;p&gt;Для генерации ключей предназначена утилита Puttygen, устанавливаемая вместе с Putty. Чтобы создать пару ключей, надо запустить утилиту, выбрать тип ключа, нажать кнопку Generate и повозить по эрану мышкой в хаотичном порядке. В дополнительных полях можно ввести комментарий и указать парольную фразу для приватного ключа.&lt;p&gt;Получившийся публичный ключ будет показан в окошке сверху. Не закрывайте его, пока не добавите ключ на удаленный сервер.&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey25.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16537&#34; title=&#34;генерация ключей с помощью PuttyGen&#34; src=https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey25.png alt=&#34;генерация ключей с помощью PuttyGen&#34; width=480 height=376&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;Сохранять ключи можно в любом удобном месте. Обратите внимание, что формат ключей у Putty свой, отличающийся от стандартного OpenSSH. Если публичный ключ можно достать из файла довольно просто, то приватный надо будет конвертировать.&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey26.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16538&#34; title=&#34;формат ключей в Putty&#34; src=https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey26.png alt=&#34;формат ключей в Putty&#34; width=685 height=188 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey26.png 856w, https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey26-768x211.png 768w&#34; sizes=&#34;auto, (max-width: 685px) 100vw, 685px&#34;&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;Для добавления публичного ключа воспользуемся программой WinSCP.  Это файловый менеджер, в числе прочего умеющий работать по SSH.&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey27.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16539&#34; title=&#34;подключение с помощью WinSCP&#34; src=https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey27.png alt=&#34;подключение с помощью WinSCP&#34; width=685 height=429 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey27.png 857w, https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey27-768x481.png 768w&#34; sizes=&#34;auto, (max-width: 685px) 100vw, 685px&#34;&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;Подключившись к SRV2 переходим в директорию ~/.ssh, открываем на редактирование файл authorized_keys и добавляем в него отдельной строчкой публичный ключ, который копируем из окошка Puttygen.&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey28.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16540&#34; title=&#34;редактирование на удаленном компьютере файла authorized_keys&#34; src=https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey28.png alt=&#34;редактирование на удаленном компьютере файла authorized_keys&#34; width=685 height=393 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey28.png 858w, https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey28-768x440.png 768w&#34; sizes=&#34;auto, (max-width: 685px) 100vw, 685px&#34;&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;В настройках Putty идем в раздел Connection — SSH — Credentials и указываем расположение приватного ключа.&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey29.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16541&#34; title=&#34;настройка аутентификации по ключу в Putty&#34; src=https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey29.png alt=&#34;настройка аутентификации по ключу в Putty&#34; width=360 height=352&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;Теперь остается создать новое подключение, указать имя сервера, нажать Open&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey30.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16542&#34; title=&#34;создание нового подключения в Putty&#34; src=https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey30.png alt=&#34;создание нового подключения в Putty&#34; width=360 height=352&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;и подключиться.&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey31.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16543&#34; title=&#34;подключение с ключом в Putty&#34; src=https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey31.png alt=&#34;подключение с ключом в Putty&#34; width=685 height=232 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey31.png 851w, https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey31-768x260.png 768w&#34; sizes=&#34;auto, (max-width: 685px) 100vw, 685px&#34;&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;Для хранения ключей у Putty есть собственный ssh-агент Pageant. Для загрузки ключа надо просто дважды кликнуть по нему мышкой, а если при создании ключа был указан пароль, то в открывшемся окне ввести парольную фразу.&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey32.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16544&#34; title=&#34;добавление пароля в Pageant&#34; src=https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey32.png alt=&#34;добавление пароля в Pageant&#34; width=685 height=204 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey32.png 859w, https://windowsnotes.ru/wp-content/uploads/2025/01/sshkey32-768x229.png 768w&#34; sizes=&#34;auto, (max-width: 685px) 100vw, 685px&#34;&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;На самом деле тему ключей SSH невозможно полностью раскрыть в рамках одной статьи, поскольку в ней есть огромное количество нюансов. Но для начала, я думаю, хватит)</description>
      <author>Kirill</author>
      <guid>https://windowsnotes.ru/other/nastrojka-ssh-autentifikacii-po-klyucham/</guid>
      <pubDate>Wed, 22 Jan 2025 13:57:26 +0000</pubDate>
    </item>
    <item>
      <title>Как изменить имя хоста в Ubuntu</title>
      <link>https://windowsnotes.ru/linux/kak-izmenit-imya-xosta-v-ubuntu/</link>
      <description>&lt;p&gt;Имя компьютера, или, по-другому, имя хоста, задается в процессе установки системы. Оно используется для идентификации компьютера в сети, например, передается службой NetBIOS как имя сервера Samba, а также вы можете видеть его в терминале перед приглашением ввода команды.&lt;p&gt;&lt;span id=more-16450&gt;&lt;/span&gt;&lt;p&gt;Изменить имя хоста в Linux можно различными способами, некоторые из которых мы сегодня рассмотрим. Начнем с самого простого.&lt;h3&gt;Hostname&lt;/h3&gt;&lt;p&gt;Hostname — утилита командной строки, которая используется для отображения и изменения имени хоста. Посмотреть имя хоста можно с помощью команды:&lt;p&gt;&lt;code&gt;hostname&lt;/code&gt;&lt;p&gt;Этой же командой можно изменить текущее имя, достаточно в качестве аргумента указать новое имя:&lt;p&gt;&lt;code&gt;hostname newname&lt;/code&gt;&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2024/12/hostname1.png&gt;&lt;img decoding=async class=&#34;alignnone wp-image-16452&#34; title=&#34;временное изменение имени хоста&#34; src=https://windowsnotes.ru/wp-content/uploads/2024/12/hostname1.png alt=&#34;временное изменение имени хоста&#34; width=685 height=64 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2024/12/hostname1.png 857w, https://windowsnotes.ru/wp-content/uploads/2024/12/hostname1-768x72.png 768w&#34; sizes=&#34;(max-width: 685px) 100vw, 685px&#34;&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;Однако внесенные таким образом изменения будут действовать только до перезагрузки системы. После перезагрузки старое имя вернется.&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2024/12/hostname11.png&gt;&lt;img fetchpriority=high decoding=async class=&#34;alignnone wp-image-16469&#34; title=&#34;man hostname&#34; src=https://windowsnotes.ru/wp-content/uploads/2024/12/hostname11.png alt=&#34;man hostname&#34; width=685 height=215 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2024/12/hostname11.png 959w, https://windowsnotes.ru/wp-content/uploads/2024/12/hostname11-768x241.png 768w&#34; sizes=&#34;(max-width: 685px) 100vw, 685px&#34;&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;Имя хоста хранится в файле /etc/hostname, однако программы не используют его напрямую. Файл /etc/hostname читается только один раз, во время загрузки, для инициализации имени хоста ядра. Активное имя хоста фактически хранится в ядре. Команда hostname устанавливает параметр sysctl kernel.hostname путем записи в /proc/sys/kernel/hostname, и именно там все программы будут искать текущее имя хоста. При этом в /etc/hostname имя хоста останется без изменений, и при перезагрузке оно вернется обратно.&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2024/12/hostname18.png&gt;&lt;img decoding=async class=&#34;alignnone wp-image-16487&#34; title=/proc/sys/kernel/hostname src=https://windowsnotes.ru/wp-content/uploads/2024/12/hostname18.png alt=/proc/sys/kernel/hostname width=685 height=65 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2024/12/hostname18.png 859w, https://windowsnotes.ru/wp-content/uploads/2024/12/hostname18-768x72.png 768w&#34; sizes=&#34;(max-width: 685px) 100vw, 685px&#34;&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;&lt;strong&gt;Примечание&lt;/strong&gt;. Файлы, расположенные в каталогах /proc/ и /sys/ образуют так называемую виртуальную файловую систему. Их задача состоит в том, чтобы считывать информацию от ядра, помещенную в виртуальные файлы, и записывать информацию в виртуальные файлы — для передачи ядру. В частности /sys/ предназначен для обеспечения доступа к внутренним объектам ядра, особенно к тем, которые представляют различные устройства в системе. Таким образом, ядро ​​может обмениваться различной информацией — состояние каждого устройства (например, находится ли оно в режиме энергосбережения), его тип (напр. является ли оно съемным устройством) и т. д. Каталог /proc/ описывает текущее состояние ядра — файлы в нем содержат информацию о процессах, запущенных в системе, и ее оборудовании.&lt;h3&gt;Hostnamectl&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;systemd-hostnamed.service&lt;/strong&gt; — служба, которая отвечает за ряд параметров системы, в том числе и за имя хоста. Для управления этой службой используется утилита командной строки hostnamectl, с помощью которой можно посмотреть и изменить имя хоста и связанные с ним настройки.&lt;p&gt;Hostnamectl различает три разных имени хоста:&lt;p&gt;• Статическое (Static) — то самое имя, которое задается при установке системы и которое хранится в /etc/hostname;&lt;br&gt;• Красивое (Pretty) — имя хоста в свободной форме. Может использоваться для описания системы, хранится в /etc/machine-info;&lt;br&gt;• Временное (Transient) — динамическое имя, устанавливается ядром системы при конфигурации (напр. по DHCP или mDNS). Если задано статическое имя хоста, отличное от &lt;span id=span-87-157 class=&#34;ct-span oxy-stock-content-styles&#34;&gt;localhost&lt;/span&gt;, то временное имя использоваться не будет.&lt;p&gt;Узнать имя хоста можно командой:&lt;p&gt;&lt;code&gt;hostnamectl&lt;/code&gt;&lt;p&gt;или&lt;p&gt;&lt;code&gt;hostnamectl --status&lt;/code&gt;&lt;p&gt;Кроме имени хоста команда информацию о системе, такую как версия ОС, архитектуру процессора и т.п. Если надо вывести только статическое имя хоста, то команда будет такой:&lt;p&gt;&lt;code&gt;hostnamectl --static&lt;/code&gt;&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2024/12/hostname2.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16453&#34; title=&#34;утилита hostnamectl&#34; src=https://windowsnotes.ru/wp-content/uploads/2024/12/hostname2.png alt=&#34;утилита hostnamectl&#34; width=685 height=221 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2024/12/hostname2.png 857w, https://windowsnotes.ru/wp-content/uploads/2024/12/hostname2-768x247.png 768w&#34; sizes=&#34;auto, (max-width: 685px) 100vw, 685px&#34;&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;Задать новое имя хоста можно командой:&lt;p&gt;&lt;code&gt;hostnamectl set-hostname newname&lt;/code&gt;&lt;p&gt;Если не указывать тип, то по умолчанию будет задано статическое имя.&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2024/12/hostname3.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16454&#34; title=&#34;изменение имени хоста с помощью hostnamectl&#34; src=https://windowsnotes.ru/wp-content/uploads/2024/12/hostname3.png alt=&#34;изменение имени хоста с помощью hostnamectl&#34; width=685 height=208 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2024/12/hostname3.png 859w, https://windowsnotes.ru/wp-content/uploads/2024/12/hostname3-768x233.png 768w&#34; sizes=&#34;auto, (max-width: 685px) 100vw, 685px&#34;&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;Статическое и временное имена имеют довольно жесткие ограничения. Они могут иметь длину максимум 64 символа и включать в себя только буквенно-цифровые символы (A–Z, a–z, 0–9) и дефисы (-). В отличии от них красивые имена имеют минимальные ограничения — они могут включать в себя любой символ UTF8 и практически не ограничены по длине. Например можно задать вот такое имя:&lt;p&gt;&lt;code&gt;hostnamectl set-hostname &amp;#34;Very pretty name!&amp;#34;&lt;/code&gt;&lt;p&gt;&lt;span class=Y2IQFc lang=ru&gt; &lt;a href=https://windowsnotes.ru/wp-content/uploads/2024/12/hostname4.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16455&#34; title=&#34;pretty hostname&#34; src=https://windowsnotes.ru/wp-content/uploads/2024/12/hostname4.png alt=&#34;pretty hostname&#34; width=685 height=218 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2024/12/hostname4.png 859w, https://windowsnotes.ru/wp-content/uploads/2024/12/hostname4-768x244.png 768w&#34; sizes=&#34;auto, (max-width: 685px) 100vw, 685px&#34;&gt;&lt;/a&gt;&lt;/span&gt;&lt;p&gt; &lt;p&gt;Как я уже говорил, красивое имя в хранится в /etc/machine-info, в формате переменной.&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2024/12/hostname6.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16457&#34; title=/etc/machine-info src=https://windowsnotes.ru/wp-content/uploads/2024/12/hostname6.png alt=/etc/machine-info width=685 height=26 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2024/12/hostname6.png 836w, https://windowsnotes.ru/wp-content/uploads/2024/12/hostname6-768x29.png 768w&#34; sizes=&#34;auto, (max-width: 685px) 100vw, 685px&#34;&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;Что интересно, если при изменении имени хоста указать некорректное имя, то ошибку мы не получим. Вместо этого статическое имя будет скорректировано, а некорректное имя станет красивым. Для примера выполним команду:&lt;p&gt;&lt;code&gt;hostnamectl set-hostname ubuntu-server_new&lt;/code&gt;&lt;p&gt;Как видите, указанное имя содержит недопустимый для статического имени символ (нижнее подчеркивание). Однако команда отработала без ошибок. А если теперь проверить имена командой:&lt;p&gt;&lt;code&gt;hostnamectl&lt;/code&gt;&lt;p&gt;то мы увидим, что недопустимый символ был удален из статического имени, а также было создано красивое имя с указанным символом.&lt;pre id=tw-target-text class=&#34;tw-data-text tw-text-large tw-ta&#34; data-placeholder=Перевод data-ved=2ahUKEwiOqsXqjKKKAxXJGRAIHc7FF4AQ3ewLegQICRAT aria-label=&#34;Переведенный текст: Hostnamectl может использоваться для запроса и изменения имени хоста системы и связанных с ним настроек. systemd-hostnamed.service(8) и этот инструмент различают три разных имени хоста: «красивое» имя хоста высокого уровня, которое может включать в себя все виды специальных символов (например, «Ноутбук Леннарта»), «статическое» имя хоста, которое является именем пользователя. настроенное имя хоста (например, «lennarts-laptop») и временное имя хоста, которое является резервным значением, полученным из конфигурации сети (например, «node12345678»). Если для статического имени хоста установлено допустимое значение, то временное имя хоста не используется. Обратите внимание, что красивое имя хоста имеет небольшие ограничения на используемые символы и длину, в то время как статические и временные имена хостов ограничены обычно принятыми символами доменных имен Интернета и максимум 64 символами (последнее является ограничением Linux). Используйте systemd-firstboot(1) для инициализации имени хоста системы для смонтированных (но не загружаемых) системных образов. Команды&#34;&gt;&lt;/pre&gt;&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2024/12/hostname12.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16472&#34; title=&#34;ввод некорректного имени хоста&#34; src=https://windowsnotes.ru/wp-content/uploads/2024/12/hostname12.png alt=&#34;ввод некорректного имени хоста&#34; width=685 height=219 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2024/12/hostname12.png 859w, https://windowsnotes.ru/wp-content/uploads/2024/12/hostname12-768x246.png 768w&#34; sizes=&#34;auto, (max-width: 685px) 100vw, 685px&#34;&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;Ну и третий тип имени — временное. В принципе его можно попробовать задать вручную, например командой:&lt;p&gt;&lt;code&gt;hostnamectl set-hostname transname --transient&lt;/code&gt;&lt;p&gt;Команда даже отработает без ошибок, но поскольку у нас уже есть статическое имя, не приведет ни к какому результату.&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2024/12/hostname5.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16456&#34; title=&#34;transient hostname&#34; src=https://windowsnotes.ru/wp-content/uploads/2024/12/hostname5.png alt=&#34;transient hostname&#34; width=685 height=51 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2024/12/hostname5.png 859w, https://windowsnotes.ru/wp-content/uploads/2024/12/hostname5-768x57.png 768w&#34; sizes=&#34;auto, (max-width: 685px) 100vw, 685px&#34;&gt;&lt;/a&gt;&lt;h3&gt;Network manager&lt;/h3&gt;&lt;p&gt;Network Manager — пакет для управления сетевыми подключениями. С его помощью тоже можно сменить имя хоста. Устанавливается пакет командой:&lt;p&gt;&lt;code&gt;apt install network-manager&lt;/code&gt;&lt;p&gt;Дальше есть два варианта. Можно воспользоваться утилитой командной строки nmcli. Для изменения имени хоста надо выполнить команду:&lt;br&gt;&lt;code&gt;&lt;br&gt;nmcli g hostname newname&lt;/code&gt;&lt;p&gt;Затем для того, чтобы изменения применились, надо рестартовать службу systemd-hostnamed:&lt;br&gt;&lt;code&gt;&lt;br&gt;systemctl restart systemd-hostnamed&lt;/code&gt;&lt;p&gt;Ну и проверить изменения можно командой:&lt;br&gt;&lt;code&gt;&lt;br&gt;nmcli g hostname&lt;/code&gt;&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2024/12/hostname16.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16477&#34; title=&#34;замена имени хоста с помощью nmcli&#34; src=https://windowsnotes.ru/wp-content/uploads/2024/12/hostname16.png alt=&#34;замена имени хоста с помощью nmcli&#34; width=685 height=51 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2024/12/hostname16.png 859w, https://windowsnotes.ru/wp-content/uploads/2024/12/hostname16-768x57.png 768w&#34; sizes=&#34;auto, (max-width: 685px) 100vw, 685px&#34;&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;Также можно воспользоваться графическим интерфейсом NetworkManager TUI. Для его открытия надо выполнить команду:&lt;p&gt;&lt;code&gt;nmtui&lt;/code&gt;&lt;p&gt;Затем в открывшемся окне выбрать пункт меню ″Set system hostname″&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2024/12/hostname13.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16474&#34; title=&#34;открытие NMTUI&#34; src=https://windowsnotes.ru/wp-content/uploads/2024/12/hostname13.png alt=&#34;открытие NMTUI&#34; width=476 height=306&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;ввести новое имя&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2024/12/hostname14.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16475&#34; title=&#34;ввод нового имени&#34; src=https://windowsnotes.ru/wp-content/uploads/2024/12/hostname14.png alt=&#34;ввод нового имени&#34; width=476 height=305&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;и подтвердить изменения.&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2024/12/hostname15.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16476&#34; title=&#34;подтверждение нового имени&#34; src=https://windowsnotes.ru/wp-content/uploads/2024/12/hostname15.png alt=&#34;подтверждение нового имени&#34; width=476 height=311&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;После этого закрыть NetworkManager TUI и рестартовать службу systemd-hostnamed.&lt;h3&gt;Редактирование /etc/hostname&lt;/h3&gt;&lt;p&gt;Имя хоста хранится в файле/etc/hostname, из которого оно берется системой при загрузке. И ничто не мешает взять этот файл, открыть его в любом текстовом редакторе, например в nano:&lt;p&gt;&lt;code&gt;nano /etc/hostname&lt;/code&gt;&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2024/12/hostname7.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16458&#34; title=/etc/hostname src=https://windowsnotes.ru/wp-content/uploads/2024/12/hostname7.png alt=/etc/hostname width=685 height=164 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2024/12/hostname7.png 959w, https://windowsnotes.ru/wp-content/uploads/2024/12/hostname7-768x183.png 768w&#34; sizes=&#34;auto, (max-width: 685px) 100vw, 685px&#34;&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;и отредактировать имя хоста.&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2024/12/hostname8.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16459&#34; title=&#34;редактирование /etc/hostname&#34; src=https://windowsnotes.ru/wp-content/uploads/2024/12/hostname8.png alt=&#34;редактирование /etc/hostname&#34; width=685 height=168 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2024/12/hostname8.png 960w, https://windowsnotes.ru/wp-content/uploads/2024/12/hostname8-768x189.png 768w&#34; sizes=&#34;auto, (max-width: 685px) 100vw, 685px&#34;&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;Однако при использовании этого метода изменения не применяться сразу, потребуется перезагрузка.&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2024/12/hostname10.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16461&#34; title=&#34;имя хоста до перезагрузки&#34; src=https://windowsnotes.ru/wp-content/uploads/2024/12/hostname10.png alt=&#34;имя хоста до перезагрузки&#34; width=685 height=67 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2024/12/hostname10.png 858w, https://windowsnotes.ru/wp-content/uploads/2024/12/hostname10-768x75.png 768w&#34; sizes=&#34;auto, (max-width: 685px) 100vw, 685px&#34;&gt;&lt;/a&gt;&lt;h3&gt;Заключение&lt;/h3&gt;&lt;p&gt;И в заключение еще пара нюансов, о которых нужно помнить.&lt;p&gt;После изменения имени хоста любым из перечисленных способов надо открыть файл /etc/hosts, найти в нем строки, содержащие старое имя, и изменить его на новое. Если этого не сделать, то возможна некорректная работа некоторых системных служб.&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2024/12/hostname9.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16479&#34; title=&#34;редактирование файла hosts&#34; src=https://windowsnotes.ru/wp-content/uploads/2024/12/hostname9.png alt=&#34;редактирование файла hosts&#34; width=685 height=168 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2024/12/hostname9.png 960w, https://windowsnotes.ru/wp-content/uploads/2024/12/hostname9-768x189.png 768w&#34; sizes=&#34;auto, (max-width: 685px) 100vw, 685px&#34;&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;Если система была сконфигурирована с помощью пакета cloud-init, то необходимо в файле /etc/cloud/cloud.cfg для строки&lt;span id=span-87-157 class=&#34;ct-span oxy-stock-content-styles&#34;&gt;&lt;strong&gt; preserve_hostname&lt;/strong&gt; поставить значение &lt;strong&gt;true&lt;/strong&gt;. В противном случае любые изменения имени хоста после перезагрузки не сохранятся.&lt;/span&gt;&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2024/12/hostname17.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16481&#34; title=cloud.cfg src=https://windowsnotes.ru/wp-content/uploads/2024/12/hostname17.png alt=cloud.cfg width=685 height=288 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2024/12/hostname17.png 960w, https://windowsnotes.ru/wp-content/uploads/2024/12/hostname17-768x323.png 768w&#34; sizes=&#34;auto, (max-width: 685px) 100vw, 685px&#34;&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;Вот как то так 🙂</description>
      <author>Kirill</author>
      <guid>https://windowsnotes.ru/linux/kak-izmenit-imya-xosta-v-ubuntu/</guid>
      <pubDate>Thu, 19 Dec 2024 12:21:43 +0000</pubDate>
    </item>
    <item>
      <title>Проверяем доступность порта UDP с помощью утилиты PortQry</title>
      <link>https://windowsnotes.ru/programs/proveryaem-dostupnost-porta-udp-s-pomoshhyu-utility-portqry/</link>
      <description>&lt;p&gt;В операционных системах Windows есть множество инструментов для диагностики сетевых проблем, но иногда этих инструментов бывает недостаточно. Поэтому сегодня рассмотрим утилиту PortQry, предназначенную для устранения неполадок с сетевыми подключениями. Рассматривать будем на конкретном примере, взятом из практики.&lt;p&gt;&lt;span id=more-16413&gt;&lt;/span&gt;&lt;p&gt;Итак, есть подозрения на проблему с DNS, и нам надо ее решить. Симптомы — не разрешаются внешние DNS-имена. В качестве основного DNS указан сервер Google (8.8.8.8) и нам надо проверить его доступность.&lt;p&gt;Для диагностики работоспособности DNS-сервера отправляем на него запрос с помощью утилиты nslookup и видим, что он не отвечает, соответственно адреса внешних ресурсов не резолвятся.&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2024/11/portqry1.png&gt;&lt;img fetchpriority=high decoding=async class=&#34;alignnone wp-image-16425&#34; title=&#34;проверка разрешения имени&#34; src=https://windowsnotes.ru/wp-content/uploads/2024/11/portqry1.png alt=&#34;проверка разрешения имени&#34; width=690 height=242 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2024/11/portqry1.png 857w, https://windowsnotes.ru/wp-content/uploads/2024/11/portqry1-768x269.png 768w&#34; sizes=&#34;(max-width: 690px) 100vw, 690px&#34;&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;Проверяем доступность сервера. Пинг проходим успешно.&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2024/11/portqry2.png&gt;&lt;img decoding=async class=&#34;alignnone wp-image-16424&#34; title=&#34;проверка доступности DNS сервера&#34; src=https://windowsnotes.ru/wp-content/uploads/2024/11/portqry2.png alt=&#34;проверка доступности DNS сервера&#34; width=690 height=190 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2024/11/portqry2.png 857w, https://windowsnotes.ru/wp-content/uploads/2024/11/portqry2-768x211.png 768w&#34; sizes=&#34;(max-width: 690px) 100vw, 690px&#34;&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;Для проверки портов я обычно использую telnet, но сейчас для наглядности возьму PowerShell командлет Test-NetConnection. Проверяем доступность сервера по 53 порту и видим, что он открыт.&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2024/11/portqry3.png&gt;&lt;img decoding=async class=&#34;alignnone wp-image-16423&#34; title=&#34;проверка доступности порта с помощью powershell&#34; src=https://windowsnotes.ru/wp-content/uploads/2024/11/portqry3.png alt=&#34;проверка доступности порта с помощью powershell&#34; width=690 height=153 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2024/11/portqry3.png 857w, https://windowsnotes.ru/wp-content/uploads/2024/11/portqry3-768x170.png 768w&#34; sizes=&#34;(max-width: 690px) 100vw, 690px&#34;&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;Пока все идет по плану 🙂&lt;p&gt;Но Test-NetConnection, как и горячо любимый мной telnet-клиент, умеет проверять только протокол TCP, а DNS-сервера для запросов используют UDP.&lt;p&gt;&lt;strong&gt;Примечание.&lt;/strong&gt; Поскольку UDP-пакеты имеют небольшой размер, и не могут превышать 512 байт, для передачи данных, превышающих 512 байт, требуется протокол TCP.  Поэтому DNS использует TCP для передачи зон, а для обычного разрешения имен используется UDP.&lt;p&gt;И вот тут на сцену выходит PortQry. Это утилита командной строки, предназначенная для диагностики проблем с сетевой доступностью. Она умеет проверять состояние портов TCP и UDP как на локальном, так и на удаленном компьютере.&lt;p&gt;Сторонней утилиту назвать не поворачивается язык, поскольку ее разработчиком является сама компания Microsoft. Соответственно скачать утилиту можно с их официального сайта. На данный момент доступна вторая версия утилиты &lt;a href=&#34;https://www.microsoft.com/en-us/download/details.aspx?id=17148&#34; target=_blank rel=noopener&gt;PortQryV2&lt;/a&gt;.&lt;p&gt;Установки утилита не требует, а дистрибутив представляет из себя обычный самораспаковывающийся архив. Для использования PortQry надо согласиться с лицензионным соглашением&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2024/11/portqry4.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16422&#34; title=&#34;лицензионное соглашение&#34; src=https://windowsnotes.ru/wp-content/uploads/2024/11/portqry4.png alt=&#34;лицензионное соглашение&#34; width=300 height=280&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;и распаковать утилиту в любое удобное место.&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2024/11/portqry5.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16421&#34; title=&#34;распаковка утилиты PortQry&#34; src=https://windowsnotes.ru/wp-content/uploads/2024/11/portqry5.png alt=&#34;распаковка утилиты PortQry&#34; width=275 height=167&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;Дальше остается только перейти в каталог с утилитой и запустить ее. Запуск без параметров выводит справочную информацию.&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2024/11/portqry12.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16433&#34; title=&#34;вывод справки&#34; src=https://windowsnotes.ru/wp-content/uploads/2024/11/portqry12.png alt=&#34;вывод справки&#34; width=690 height=588 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2024/11/portqry12.png 857w, https://windowsnotes.ru/wp-content/uploads/2024/11/portqry12-768x654.png 768w&#34; sizes=&#34;auto, (max-width: 690px) 100vw, 690px&#34;&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;Утилита может работать в нескольких режимах. Начнем с простого режима командной строки. В этом режиме формат команды проверки доступности портов на удаленном сервере следующий:&lt;p&gt;&lt;code&gt;PortQry&lt;/code&gt;&lt;code class=lang-console&gt;-n &amp;lt;name&amp;gt; [options]&lt;/code&gt;&lt;code&gt;&lt;/code&gt;&lt;p&gt;где основные опции команды:&lt;p&gt;&lt;code&gt;-n &amp;lt;name&amp;gt;&lt;/code&gt; – имя или IP-адрес компьютера для запроса. Это единственный обязательный параметр для режима командной строки. Это значение не может содержать пробелы;&lt;br&gt;&lt;code&gt;-e &amp;lt;port_number&amp;gt;&lt;/code&gt; — порт для запроса. Может иметь значение от 1 до 65535, по умолчанию используется 80;&lt;br&gt;&lt;code&gt;-p &amp;lt;protocol&amp;gt;&lt;/code&gt; —  протокол запроса. Это иметь значение TCP, UDP или BOTH, по умолчанию используется TCP.&lt;code class=lang-console&gt;&lt;/code&gt;&lt;p&gt;Для проверки доступности DNS-сервера 8.8.8.8 по 53 порту UDP выполним следующую команду:&lt;p&gt;&lt;code&gt;PortQry&lt;/code&gt;&lt;code class=lang-console&gt;-n 8.8.8.8 -e 53 -p UDP&lt;/code&gt;&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2024/11/portqry6.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16420&#34; title=&#34;проверка доступности UDP порта с помощью PortQry&#34; src=https://windowsnotes.ru/wp-content/uploads/2024/11/portqry6.png alt=&#34;проверка доступности UDP порта с помощью PortQry&#34; width=690 height=271 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2024/11/portqry6.png 857w, https://windowsnotes.ru/wp-content/uploads/2024/11/portqry6-768x301.png 768w&#34; sizes=&#34;auto, (max-width: 690px) 100vw, 690px&#34;&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;По результату запроса для указанного порта PortQry возвращает одно из трех состояний:&lt;p&gt;&lt;strong&gt;• Listening&lt;/strong&gt; – указанный порт доступен и принимает входящие подключения, ответ от него получен;&lt;br&gt;• &lt;strong&gt;Not&lt;/strong&gt; &lt;strong&gt;Listening&lt;/strong&gt; – по указанному адресу нет процесса (службы и т.п.), который принимает подключения на заданном порту. При проверке доступности ресурса по ICMP утилита PortQry получила ответ Destination Unreachable с кодом Port Unreachable;&lt;br&gt;&lt;strong&gt;• Filtered&lt;/strong&gt; – утилита PortQry не получила ответа от указанного порта, либо ответ был отфильтрован. Т.е. на целевой системе указанный порт никто не слушает, либо доступ к нему ограничен, например  файерволом. По умолчанию PortQry запрашивает TCP-порт три раза, а UDP-порт один раз, прежде чем возвращает ответ &lt;strong&gt;Filtered&lt;/strong&gt;.&lt;p&gt;В нашем случае ответ Filtered, т.е. удаленный ресурс доступен, но по указанному порту не отвечает. Что собственно и подтверждает наши подозрения 🙂&lt;p&gt;Добавив ключ -i можно запустить утилиту в интерактивном режиме:&lt;p&gt;&lt;code&gt;PortQry&lt;/code&gt;&lt;code class=lang-console&gt;-i -n 8.8.8.8 -e 53 -p UDP&lt;/code&gt;&lt;p&gt;и выполнить запрос командой&lt;p&gt;&lt;code&gt;q&lt;/code&gt;&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2024/11/portqry7.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16419&#34; title=&#34;проверка доступности UDP порта с помощью PortQry в интерактивном режиме&#34; src=https://windowsnotes.ru/wp-content/uploads/2024/11/portqry7.png alt=&#34;проверка доступности UDP порта с помощью PortQry в интерактивном режиме&#34; width=690 height=354 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2024/11/portqry7.png 857w, https://windowsnotes.ru/wp-content/uploads/2024/11/portqry7-768x394.png 768w&#34; sizes=&#34;auto, (max-width: 690px) 100vw, 690px&#34;&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;В интерактивном режиме можно на лету менять параметры запроса. Для примера изменим адрес сервера:&lt;p&gt;&lt;code&gt;node 77.88.8.8&lt;/code&gt;&lt;p&gt;протокол:&lt;p&gt;&lt;code&gt;set protocol=both&lt;/code&gt;&lt;p&gt;и еще раз отправим запрос:&lt;p&gt;&lt;code&gt;q&lt;/code&gt;&lt;p&gt;Как видите, этот DNS-сервер доступен по всем портам.&lt;p&gt;Ну и для выхода из интерактивного режима надо набрать:&lt;p&gt;&lt;code&gt;exit&lt;/code&gt;&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2024/11/portqry8.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16418&#34; title=&#34;работа с PortQry в интерактивном режиме&#34; src=https://windowsnotes.ru/wp-content/uploads/2024/11/portqry8.png alt=&#34;работа с PortQry в интерактивном режиме&#34; width=690 height=379 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2024/11/portqry8.png 857w, https://windowsnotes.ru/wp-content/uploads/2024/11/portqry8-768x422.png 768w&#34; sizes=&#34;auto, (max-width: 690px) 100vw, 690px&#34;&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;В итоге диагностика успешно проведена, проблемы выявлена и устранена. А я еще немного расскажу об утилите.&lt;p&gt;При работе в интерактивном режиме можно использовать готовые профили служб. Для примера проверим наш многострадальный DNS-сервер. Запустим утилиту в интерактивном режиме:&lt;p&gt;&lt;code&gt;PortQry&lt;/code&gt;&lt;code class=lang-console&gt;-i&lt;/code&gt;&lt;p&gt;укажем адрес сервера:&lt;p&gt;&lt;code&gt;node 8.8.8.8&lt;/code&gt;&lt;p&gt;и запустим проверку с помощью предустановленного профиля DNS:&lt;p&gt;&lt;code&gt;q dns&lt;/code&gt;&lt;p&gt;Эта команда проверяет указанный сервер по 53 порту TCP и UDP и эквивалентна команде:&lt;p&gt;&lt;code&gt;PortQry -n 8.8.8.8 -p both -e 53&lt;/code&gt;&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2024/11/portqry14.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16437&#34; title=&#34;использование профиля службы&#34; src=https://windowsnotes.ru/wp-content/uploads/2024/11/portqry14.png alt=&#34;использование профиля службы&#34; width=690 height=540 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2024/11/portqry14.png 857w, https://windowsnotes.ru/wp-content/uploads/2024/11/portqry14-768x601.png 768w&#34; sizes=&#34;auto, (max-width: 690px) 100vw, 690px&#34;&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;Профили есть для следующих служб.&lt;table border=1 cellspacing=0 cellpadding=2&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Профиль&lt;th&gt;Порты для запроса&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;dns&lt;td&gt;TCP-порт 53, UDP-порт 53&lt;tr&gt;&lt;td&gt;ftp&lt;td&gt;TCP-порт 21&lt;tr&gt;&lt;td&gt;imap&lt;td&gt;TCP-порт 143&lt;tr&gt;&lt;td&gt;ipsec&lt;td&gt;UDP-порт 500&lt;tr&gt;&lt;td&gt;isa&lt;td&gt;TCP-порт 1745, UDP-порт 1745&lt;tr&gt;&lt;td&gt;ldap&lt;td&gt;TCP-порт 389, UDP-порт 389&lt;tr&gt;&lt;td&gt;l2tp&lt;td&gt;UDP-порт 1701&lt;tr&gt;&lt;td&gt;mail&lt;td&gt;TCP-порты 25, 110 и 143&lt;tr&gt;&lt;td&gt;pop3&lt;td&gt;TCP-порт 110&lt;tr&gt;&lt;td&gt;rpc&lt;td&gt;TCP-порт 135, UDP-порт 135&lt;tr&gt;&lt;td&gt;smtp&lt;td&gt;TCP-порт 25&lt;tr&gt;&lt;td&gt;snmp&lt;td&gt;UDP-порт 161&lt;tr&gt;&lt;td&gt;sql&lt;td&gt;TCP-порт 1433, UDP-порт 1434&lt;tr&gt;&lt;td&gt;tftp&lt;td&gt;UDP-порт 69&lt;/table&gt;&lt;p&gt; &lt;p&gt;Также PortQry умеет не просто стучаться по указанным портам, но и производить расширенную диагностику для некоторых сетевых служб. Например при отправке запроса на SMTP-сервер она не только покажет состояние порта, но и выведет приветственный баннер:&lt;p&gt;&lt;code&gt;PortQry&lt;/code&gt;&lt;code class=lang-console&gt;-n smtp.yandex.ru -e 25&lt;/code&gt;&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2024/11/portqry9.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16417&#34; title=&#34;проверка доступности SMTP&#34; src=https://windowsnotes.ru/wp-content/uploads/2024/11/portqry9.png alt=&#34;проверка доступности SMTP&#34; width=690 height=251 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2024/11/portqry9.png 854w, https://windowsnotes.ru/wp-content/uploads/2024/11/portqry9-768x280.png 768w&#34; sizes=&#34;auto, (max-width: 690px) 100vw, 690px&#34;&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;А при обращении к контроллеру домена по 389 порту отправит LDAP-запрос:&lt;p&gt;&lt;code&gt;PortQry -n srv01.test.local -e 389 -p udp&lt;/code&gt;&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2024/11/portqry10.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16416&#34; title=&#34;проверка доступности LDAP&#34; src=https://windowsnotes.ru/wp-content/uploads/2024/11/portqry10.png alt=&#34;проверка доступности LDAP&#34; width=690 height=613 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2024/11/portqry10.png 857w, https://windowsnotes.ru/wp-content/uploads/2024/11/portqry10-768x682.png 768w&#34; sizes=&#34;auto, (max-width: 690px) 100vw, 690px&#34;&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;Еще в PortQry есть локальный режим, с помощью которого можно диагностировать проблемы на локальной системе. Например следующая команда выведет список всех открытых портов на локальном компьютере:&lt;p&gt;&lt;code&gt;PortQry -local&lt;/code&gt;&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2024/11/portqry13.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16436&#34; title=&#34;вывод состояния локальных портов&#34; src=https://windowsnotes.ru/wp-content/uploads/2024/11/portqry13.png alt=&#34;вывод состояния локальных портов&#34; width=690 height=403 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2024/11/portqry13.png 857w, https://windowsnotes.ru/wp-content/uploads/2024/11/portqry13-768x448.png 768w&#34; sizes=&#34;auto, (max-width: 690px) 100vw, 690px&#34;&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;&lt;strong&gt;Примечание.&lt;/strong&gt; В документации заявлено, что с помощью параметра &lt;code&gt;-wport&lt;/code&gt; можно выполнить проверку состояния указанного порта, а параметр &lt;code&gt;-wpid &lt;/code&gt; выводит состояние всех портов, связанных с указанным процессом на локальном хосте. Но тут есть нюанс — ни на одной системе у меня эти параметры не сработали, при попытке выполнить команду я стабильно получал сообщение ″Port to process mapping is not supported on this system″.&lt;p&gt;Ну и для тех, кто не любит набирать команды вручную, есть &lt;a href=https://download.microsoft.com/download/3/f/4/3f4c6a54-65f0-4164-bdec-a3411ba24d3a/portqryui.exe target=_blank rel=noopener&gt;PortQryUI&lt;/a&gt; — вариант PortQry с графической оболочкой. Устанавливается так же, как и консольный вариант утилиты, при запуске открывается окошко, в котором надо указать имя или IP адрес удаленного сервера, порт и протокол для проверки. Также можно выбрать из списка предустановленны профиль службы.&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2024/11/portqry11.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16415&#34; title=&#34;запуск PortQry в графическом режиме&#34; src=https://windowsnotes.ru/wp-content/uploads/2024/11/portqry11.png alt=&#34;запуск PortQry в графическом режиме&#34; width=470 height=513&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;В графическом режиме утилита возвращает следующие коды состояния:&lt;ul&gt;&lt;li&gt;&lt;strong&gt;0 (0x00000000)&lt;/strong&gt; –  соединении успешно установлено, порт доступен. Аналогично состоянию &lt;strong&gt;Listening&lt;/strong&gt;;&lt;li&gt;&lt;strong&gt;1 (0x00000001)&lt;/strong&gt; – порт недоступен. Нет процесса, который принимает подключения на заданном порту, либо хост недоступен. Аналогично состоянию &lt;strong&gt;Not&lt;/strong&gt; &lt;strong&gt;Listening;&lt;/strong&gt;&lt;li&gt;&lt;strong&gt;2 (0x00000002&lt;/strong&gt; –  не получен ответ от указанного порта, либо ответ был отфильтрован. Аналогично состоянию &lt;strong&gt;Filtered&lt;/strong&gt;.&lt;/ul&gt;&lt;p&gt;Как видите, утилита PortQry одна может заменить кучу инструментов для диагностики сетевых проблем, а в случае с UDP она вообще незаменима. На сайте Microsoft можно найти подробную &lt;a href=https://learn.microsoft.com/ru-ru/troubleshoot/windows-server/networking/portqry-command-line-port-scanner-v2 target=_blank rel=noopener&gt;документацию&lt;/a&gt; и &lt;a href=https://learn.microsoft.com/ru-ru/troubleshoot/sql/database-engine/connect/using-portqrytool-sqlserver target=_blank rel=noopener&gt;примеры использования&lt;/a&gt; утилиты. Так что крайне рекомендую.</description>
      <author>Kirill</author>
      <guid>https://windowsnotes.ru/programs/proveryaem-dostupnost-porta-udp-s-pomoshhyu-utility-portqry/</guid>
      <pubDate>Mon, 02 Dec 2024 09:51:37 +0000</pubDate>
    </item>
    <item>
      <title>Структура и базовые принципы работы DNS</title>
      <link>https://windowsnotes.ru/other/struktura-i-bazovye-principy-raboty-dns/</link>
      <description>&lt;p&gt;Разбираясь с одной, не очень стандартной проблемой, связанной с DNS, обнаружил у себя некоторые пробелы в знаниях. Решил их восполнить, в результате чего и появилась эта статья 🙂&lt;p&gt;&lt;span id=more-16336&gt;&lt;/span&gt;&lt;p&gt;Начнем издалека.&lt;p&gt;Компьютеры и прочие сетевые устройства для общения между собой используют IP-адреса. Но обычному пользователю гораздо проще и удобнее запомнить имя сетевого ресурса, чем непонятный набор цифр, из которых состоит его IP-адрес. Однако, для того, чтобы обращаться к сетевым узлам по имени, необходим механизм, сопоставляющий именам узлов их IP-адреса.&lt;p&gt;Идея использования имени хоста вместо его сетевого адреса появилась еще во времена ARPAnet. Правда тогда для этой цели использовался обычный текстовый файл HOSTS.TXT, который сопоставлял имена узлов с числовыми адресами компьютеров в ARPAnet. За поддержку файла отвечал Сетевой информационный центр (NIC, Network Information Center) Стэнфордского исследовательского института (SRI, Stanford Research Insitute).&lt;p&gt;Единственным источником, распространявшим этот файл, являлся узел SRI-NIC. Администраторы ARPAnet просто посылали изменения электронной почтой в NIC и периодически синхронизировали свои файлы HOSTS.TXT с копией на узле SRI-NIC с помощью протокола FTP. Присылаемые изменения добавлялись в файл HOSTS.TXT один или два раза в неделю.&lt;p&gt;Однако по мере роста сети эта схема становилась все менее работоспособной. Размер файла увеличивался пропорционально количеству узлов в сети. Кроме того, рос информационный поток, связанный с необходимостью обновления файла на узлах, поскольку появление каждого нового узла требовало синхронизации данных на всех узлах сети с данными SRI-NIC.&lt;p&gt;И вот в 1984 году на замену HOSTS.TXT пришла система доменных имен &lt;strong&gt;(Domain Name Services, DNS)&lt;/strong&gt;. Что примечательно, от файла hosts не отказались полностью, он до сих пор присутствует во всех операционных системах Windows и Linux. Правда теперь он является необязательным и скорее дополнительным инструментом при работе с сетью.&lt;p&gt;Что же из себя представляет DNS?&lt;h3&gt;Структура DNS&lt;/h3&gt;&lt;p&gt;Система доменных имен (DNS) — это распределенная база данных, представляющая собой пространство имен, содержащее все сведения, необходимые для поиска любого имени клиента. Поэтому DNS имеет иерархическую структуру, выглядящую следующим образом:&lt;p&gt;&lt;span class=&#34;BxUVEf ILfuVd&#34; lang=ru&gt;&lt;span class=hgKElc&gt;&lt;strong&gt;• Корневая (Root) зона DNS&lt;/strong&gt; – исходная точка для всего DNS. Технически представляет собой файл, содержащий перечень имен и IP-адресов всех доменов верхнего уровня в системе DNS;&lt;br&gt;&lt;/span&gt;&lt;/span&gt;&lt;strong&gt;• Доменные зоны верхнего или первого уровня (top-level domain, TLD) —&lt;/strong&gt; национальные и международные доменные зоны, такие как &lt;strong&gt;.ru&lt;/strong&gt;, .&lt;strong&gt;com&lt;/strong&gt;, или .&lt;strong&gt;org&lt;/strong&gt;. Они включают в себя все доменные имена, входящие в эту зону. В любую доменную зону может входить неограниченное количество доменов;&lt;br&gt;&lt;strong&gt;•&lt;/strong&gt; &lt;strong&gt;Доменные зоны второго уровня &lt;/strong&gt;–  то, что обычно и называют доменом, например &lt;strong&gt;google.com&lt;/strong&gt; или &lt;strong&gt;yandex.ru&lt;/strong&gt;;&lt;br&gt;&lt;strong&gt;• Доменные зоны третьего уровня и ниже &lt;/strong&gt;– по простому поддомены, например &lt;strong&gt;api.google.com&lt;/strong&gt; или &lt;strong&gt;mail.yandex.ru&lt;/strong&gt;. Могут быть доменные зоны 4, 5 уровней и так далее. Теоретически число уровней может достигать 127.&lt;p&gt;За каждую ступень иерархии отвечают разные сервера:&lt;p&gt;• &lt;strong&gt;Корневые (Root) сервера&lt;/strong&gt; — обеспечивают работу корневой зоны. Они находятся на вершине иерархии и являются начальной точкой для всех DNS-запросов. &lt;span class=ILfuVd lang=ru&gt;&lt;span class=hgKElc&gt;Существует всего &lt;b&gt;13&lt;/b&gt; идентификаторов корневых серверов, исторически обозначаемых от a.root-servers.net до m.root-servers.net, которыми управляют 12 независимых организаций, именуемых операторами корневых серверов (RSO)&lt;/span&gt;&lt;/span&gt;. Каждый корневой сервер DNS (за исключением B.root) состоит из множества хостов-реплик, размещаемых в различных локациях сети Интернет и имеющих один IP-адрес. Корневые серверы содержат информацию о доменах верхнего уровня (TLD) и направляют запросы к соответствующим серверам;&lt;br&gt;&lt;strong&gt;• Сервера верхнего уровня&lt;/strong&gt; — стоят следующими в иерархии после корневых серверов. Сервера верхнего уровня обеспечивают организацию и управление доменными зонами верхнего уровня и перенаправляют запросы к авторитетным серверам, которые содержат детальную информацию о доменах второго уровня;&lt;br&gt;&lt;strong&gt;• Авторитетные (Authoritative) сервера&lt;/strong&gt; — на следующем уровне находятся авторитетные DNS-сервера. Это сервера, на которых собственно и хранятся DNS-записи для конкретной зоны. Например, авторитетный сервер для &lt;strong&gt;contoso.com&lt;/strong&gt; содержит записи, которые указывают на IP-адреса, связанные с этим доменом. Таким образом, именно авторитетные сервера предоставляют окончательную информацию, необходимую для завершения DNS-запроса.&lt;h3&gt;Делегирование&lt;/h3&gt;&lt;p&gt;Чтобы DNS-сервер отвечал на запросы о любом имени, он должен иметь прямой или косвенный путь к каждой зоне в пространстве имен. Эти пути создаются с помощью делегирования. Делегирование — это запись в родительской зоне, которая содержит список серверов имен, заслуживающих доверия для зоны на следующем уровне иерархии. Делегирование позволяют серверам в одной зоне ссылаться на серверы в других зонах.&lt;p&gt;Технически делегирование выражается в выделении части дерева в отдельную зону, и размещении этой зоны на DNS-сервере, управляемом отдельным лицом или организацией. При этом в родительскую зону включаются склеивающие (glue) ресурсные записи (NS и А), содержащие указатели на DNS-сервера дочерней зоны, а вся остальная информация, относящаяся к дочерней зоне, хранится уже на DNS-серверах этой зоны.&lt;p&gt;Для примера возьмем домен &lt;strong&gt;contoso.com&lt;/strong&gt;. Обратите внимание на точку в конце доменного имени. Это не опечатка, точкой обозначается домен верхнего уровня (корневой домен).&lt;p&gt;Корневая зона содержит делегирование в зону&lt;strong&gt; com&lt;/strong&gt;. Делегирование в корневой зоне сообщает корневому серверу, что для поиска зоны &lt;strong&gt;com&lt;/strong&gt; он должен связаться с сервером первого уровня, отвечающим за эту зону. Аналогичным образом, делегирование в зоне &lt;strong&gt;com&lt;/strong&gt; сообщает серверу этой зоны, что для поиска зоны &lt;strong&gt;contoso.com&lt;/strong&gt; он должен связаться с авторитетным сервером Contoso.&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2024/10/forvarding1.png&gt;&lt;img fetchpriority=high decoding=async class=&#34;alignnone wp-image-16396 size-full&#34; title=&#34;Делегирование DNS&#34; src=https://windowsnotes.ru/wp-content/uploads/2024/10/forvarding1.png alt=&#34;Делегирование DNS&#34; width=271 height=348&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;Система зон и делегирований создает иерархическое дерево, представляющее собой пространство имен DNS. Каждая зона представляет слой в иерархии, и каждое делегирование представляет ветвь дерева. Используя иерархию зон и делегирований, корневой сервер DNS может найти любое имя в пространстве имен DNS. Корневая зона включает делегирования, которые непосредственно или косвенно ведут ко всем остальным зонам в иерархии. Любой сервер, который может запрашивать корневой сервер DNS, может использовать сведения в делегированиях, чтобы найти любое имя в пространстве имен.&lt;h3&gt;Корневые подсказки&lt;/h3&gt;&lt;p&gt;Классический путь DNS-запроса выглядит следующим образом — клиент обращается к DNS-серверу, прописанному у него в сетевых настройках. DNS-сервер проверяет, не делегирован ли запрашиваемый домен ему, и если делегирован — то сам отвечает на запрос. Если же нет, то обращается к корневым серверам и запрашивает у них адреса серверов первого уровня для данной зоны. Получив запрошенные адреса, он так же обращается к серверам первого уровня и запрашивает у них авторитетные для нужной зоны сервера. И уже после этого делает запрос непосредственно на авторитетный сервер, обслуживающий нужный домен, а полученный ответ возвращает клиенту.&lt;pre id=tw-target-text class=&#34;tw-data-text tw-text-large tw-ta&#34; data-placeholder=Перевод aria-label=&#34;Переведенный текст&#34; data-ved=2ahUKEwjG4LfJj4uIAxUxEEQIHYl5DyEQ3ewLegQICBAT&gt;&lt;/pre&gt;&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2024/10/forvarding2.png&gt;&lt;img decoding=async class=&#34;alignnone wp-image-16400 size-full&#34; title=&#34;Корневые подсказки (Root Hints)&#34; src=https://windowsnotes.ru/wp-content/uploads/2024/10/forvarding2.png alt=&#34;Корневые подсказки (Root Hints)&#34; width=392 height=425&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;Для того, чтобы DNS-сервер смог найти корневые сервера, как раз и нужны корневые подсказки &lt;strong&gt;(Root Hints)&lt;/strong&gt;. Они представляют из себя список IP-адресов серверов, считающихся авторитетными на корневом уровне иерархии DNS. Корневые подсказки заранее предустановлены в операционной системе, например в Windows они хранятся в файле CACHE.DNS который находится в папке \Windows\System32\Dns, а в Linux их можно найти в /usr/share/dns/root.hints, хотя тут могу и ошибаться.&lt;p&gt;Технически файл с подсказками представляет из себя обычный текстовый файл, в котором прописано сопоставление имя сервера — его IP-адрес.&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2024/08/forvarding4.png&gt;&lt;img decoding=async class=&#34;alignnone wp-image-16347&#34; title=&#34;root hints&#34; src=https://windowsnotes.ru/wp-content/uploads/2024/08/forvarding4.png alt=&#34;root hints&#34; width=700 height=522 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2024/08/forvarding4.png 874w, https://windowsnotes.ru/wp-content/uploads/2024/08/forvarding4-768x573.png 768w&#34; sizes=&#34;(max-width: 700px) 100vw, 700px&#34;&gt;&lt;/a&gt;&lt;h3&gt;Рекурсивные и итеративные запросы&lt;/h3&gt;&lt;p&gt;В DNS используятся следующие типы запросов:&lt;h4&gt;Итеративный (прямой) запрос&lt;/h4&gt;&lt;p&gt;DNS-клиент посылает DNS-серверу доменное имя и просит вернуть либо IP-адрес для этого имени, либо адрес DNS-сервера, авторитетного для этого домена. При этом запрашиваемый сервер DNS не опрашивает другие серверы для получения ответа. Так работают корневые сервера и сервера верхнего уровня.&lt;p&gt;Итеративный запрос позволяет DNS-серверу вернуть лучший ответ, который он может дать, на основе данных своего кэша или зоны. Если запрашиваемый DNS-сервер не имеет точного соответствия запрашиваемому имени, наилучшая возможная информация, которую он может вернуть, — это ссылка (то есть указатель на DNS-сервер, авторитетный для более низкого уровня пространства имен). Затем DNS-клиент может запросить DNS-сервер, для которого он получил ссылку. Он продолжает этот процесс до тех пор, пока не найдет DNS-сервер, ответственный за запрошенное имя, или пока не произойдет ошибка или условие тайм-аута. Этот процесс иногда называют «обходом по дереву», и этот тип запроса обычно инициируется DNS-сервером, который пытается разрешить рекурсивный запрос имени для DNS-клиента.&lt;h4&gt;Рекурсивный запрос&lt;/h4&gt;&lt;p&gt;DNS-клиент посылает DNS-серверу доменное имя и просит возвратить IP-адрес запрошенного домена. При этом запрашиваемый сервер может обращаться к другим DNS серверам. При рекурсивном запросе имени DNS-клиент требует, чтобы DNS-сервер ответил клиенту либо запрошенной записью ресурса, либо сообщением об ошибке, указывающим, что запись или имя домена не существует, т.е. DNS-сервер не может просто направить DNS-клиента на другой DNS-сервер. Таким образом, если DNS-сервер не имеет запрошенной информации при получении рекурсивного запроса, он запрашивает другие серверы до тех пор, пока не получит информацию или пока запрос имени не завершится неудачей. Рекурсивные запросы имен обычно выполняются DNS-клиентом к DNS-серверу или DNS-сервером, который настроен для передачи неразрешенных запросов имен на другой DNS-сервер, в случае DNS-сервера, настроенного на использование сервера пересылки.&lt;p&gt;На следующем рисунке показан пример итеративных и рекурсивных запросов.&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2024/10/forvarding5.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16402 size-full&#34; title=&#34;Рекурсивные и итеративные запросы&#34; src=https://windowsnotes.ru/wp-content/uploads/2024/10/forvarding5.png alt=&#34;Рекурсивные и итеративные запросы&#34; width=392 height=425&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;В примере происходят следующие события:&lt;p&gt;— Клиент обращается к DNS-серверу с рекурсивным запросом имени &lt;strong&gt;name.contoso.com&lt;/strong&gt;. Сервер должен вернуть либо ответ, либо сообщение об ошибке.&lt;br&gt;— DNS-сервер проверяет свой кэш и зоны на наличие ответа, но не находит его, поэтому обращается к авторитетному (корневому) серверу  с итеративным запросом &lt;strong&gt;name.contoso.com&lt;/strong&gt;&lt;strong&gt;.&lt;br&gt;— &lt;/strong&gt;Корневой сервер не знает ответа, поэтому отвечает ссылкой на сервер, авторитетный для зоны &lt;strong&gt;.com&lt;/strong&gt;.&lt;br&gt;— DNS-сервер обращается к серверу, ответственному за зону &lt;strong&gt;.com&lt;/strong&gt;, с итеративным запросом &lt;strong&gt;name.contoso.com&lt;/strong&gt;&lt;strong&gt;.&lt;br&gt;— &lt;/strong&gt;Авторитетный для зоны &lt;strong&gt;.com&lt;/strong&gt; сервер также не знает точного ответа, поэтому он отвечает ссылкой на сервер, авторитетный для зоны &lt;strong&gt;contoso.com.&lt;br&gt;— &lt;/strong&gt;DNS-сервер обращается к серверу, ответственному за &lt;strong&gt;contoso.com.&lt;/strong&gt;, с итеративным запросом &lt;strong&gt;name.contoso.com&lt;/strong&gt;&lt;strong&gt;.&lt;br&gt;— &lt;/strong&gt;Авторитетный сервер сервер &lt;strong&gt;contoso.com.&lt;/strong&gt; знает точный ответ, поэтому он отвечает запрошенным IP-адресом.&lt;br&gt;— DNS-сервер отвечает на запрос клиента IP-адресом &lt;strong&gt;name.contoso.com&lt;/strong&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;p&gt;Любой DNS-сервер должен отвечать на итеративные запросы. Возможно настроить DNS отвечать и на рекурсивные запросы. Если DNS-сервер не настроен отвечать на рекурсивные запросы, он обрабатывает их как итеративные.&lt;h3&gt;Кэширование и время жизни&lt;/h3&gt;&lt;p&gt;Когда сервер обрабатывает рекурсивный запрос, ему может потребоваться отправить несколько запросов, чтобы найти окончательный ответ. Полученную в процессе информацию сервер сохраняет в кэш, где она хранится в течении определенного времени, полученного в результате запроса. Это время называется временем жизни (Time to Leave, TTL) и указывается в секундах. TTL — это время, в течении которого данные в кэше DNS-сервера остаются актуальными и их можно использовать, не обращаясь с повторным запросом к авторитетному DNS-серверу.&lt;p&gt;Примерно вот так выглядит содержимое кэша DNS-сервера на базе Windows.&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2024/08/forvarding6.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16354&#34; title=&#34;кэш DNS-сервера&#34; src=https://windowsnotes.ru/wp-content/uploads/2024/08/forvarding6.png alt=&#34;кэш DNS-сервера&#34; width=700 height=670&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;Как только данные кэшируются DNS-сервером, он начинает уменьшать TTL от исходного значения, чтобы знать, когда следует удалить данные из кэша. Когда DNS-сервер отвечает на запрос своими кэшированными данными, он включает в них оставшийся TTL, чтобы запрашивающий сервер тоже смог кэшировать эти данные и использовать их в течении оставшегося времени жизни.&lt;p&gt;Время жизни данных определяет администратор сервера основной зоны DNS, содержащей эти данные. Чем меньше значения TTL, тем чаще обновляется информация о домене и, соответственно, тем более она актуальна. Однако при уменьшении TTL повышается нагрузка на сервера DNS и увеличивается трафик. Поэтому нет общих рекомендаций по установке TTL, оно выбирается индивидуально, исходя из из требований к актуальности данных и нагрузке на сеть. Например, для динамически изменяющихся данных, таких как биржевые сводки или новости, предпочтительнее использовать меньшее значение TTL, чтобы обеспечить их своевременное обновление. В то же время, для статического контента, который не меняется часто, можно установить более длительный TTL, что уменьшит количество запросов к серверу и ускорит загрузку страниц для пользователей.&lt;p&gt;Помимо кэширования решенных запросов DNS-сервера также могут кэшировать отрицательные ответы, то есть информацию о том, что определенный набор записей ресурсов или DNS-имя домена не существует. &lt;strong&gt;Отрицательное кэширование (Negative Caching) &lt;/strong&gt;может сократить время ответа на отрицательные результаты поиска, а также уменьшить сетевой трафик.&lt;p&gt;Отрицательное кэширование описано в &lt;a href=https://datatracker.ietf.org/doc/html/rfc1034 target=_blank rel=noopener&gt;RFC 1034&lt;/a&gt; и &lt;a href=https://datatracker.ietf.org/doc/html/rfc2308 target=_blank rel=noopener&gt;RFC 2308&lt;/a&gt;. RFC 1034 описывает, как кэшировать отрицательные ответы, и делает отрицательное кэширование необязательным. А вот RFC 2308 требует, чтобы DNS-сервера кэшировали отрицательные ответы, если они кэшируют какие-либо ответы, а также описывает способ, с помощью которого серверы имен пересылают кэшированные отрицательные ответы. Как и при обычном кэшировании, им также необходимо начать уменьшать TTL.&lt;p&gt;Кэширование выполняют не только серверы DNS, но и клиенты, так что любая рабочая станция, которая недавно запрашивала разрешение DNS-имени, будет помнить его в течении его срока жизни. При повторном запросе DNS-клиент также использует данные из своего кэша вместо того, чтобы каждый раз направлять запрос DNS-серверу.&lt;p&gt;Эта иерархия кэширования, которая выполняется на каждом сервере и клиенте DNS, вовлеченном в процесс разрешения имен, поддерживает работоспособность системы доменных имен в целом.&lt;h3&gt;Пересылка&lt;/h3&gt;&lt;p&gt;Метод разрешения имен с корневыми подсказками и делегированием очень гибок и универсален, однако он имеет ряд недостатков. Используя свои корневые подсказки, DNS-сервера отправляют запросы за пределы внутренней сети, в результате чего внутренняя информация DNS может быть скомпрометирована. Помимо проблемы безопасности и конфиденциальности, этот метод может привести к большому объему внешнего трафика, что является дорогостоящим и неэффективным для сети с медленным подключением к Интернету.&lt;p&gt;Пересылка (Forwarding) позволяет обойти эти ограничения и маршрутизировать разрешение имен через определенные DNS-сервера (сервера пересылки) вместо использования корневых подсказок. Сервер пересылки (Forwarder) — это DNS-сервер в сети, используемый для пересылки запросов для разрешения внешних имен на DNS-серверы за пределами этой сети.&lt;p&gt;Назначая DNS-сервер в качестве сервера пересылки, мы делаем его ответственным за обработку внешнего трафика, тем самым ограничивая доступ наружу для остальных DNS-серверов. Кроме того, в процессе разрешения имен сервер пересылки накапливает большой кеш внешней информации DNS, с помощью которого разрешает значительную часть внешних DNS-запросов. Это уменьшает интернет-трафик в сети и время ответа для DNS-клиентов.&lt;p&gt;DNS-сервер, настроенный для использования сервера пересылки, ведет себя иначе, чем при использовании корневых подсказок. Процесс разрешения имен с использованием сервера пересылки выглядит следующим образом:&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2024/10/forvarding3.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16403 size-full&#34; title=&#34;Пересылка (forwarding)&#34; src=https://windowsnotes.ru/wp-content/uploads/2024/10/forvarding3.png alt=&#34;Пересылка (forwarding)&#34; width=501 height=464&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;— Клиент запрашивает у своего DNS-сервера адрес для имени &lt;strong&gt;name.contoso.com.&lt;br&gt;&lt;/strong&gt;— DNS-сервер получает запрос от клиента и пытается разрешить его, используя основную и дополнительную зоны, которые он размещает, а также свой кэш;&lt;br&gt;— Если запрос не может быть решен с использованием этих локальных данных, DNS-сервер  перенаправляет запрос на другой DNS-сервер, назначенный в качестве сервера пересылки, отправляя ему рекурсивный запрос. Это отличается от итеративного запроса, который DNS-сервер отправляет другому DNS-серверу во время стандартного разрешения имен, без использования пересылки;&lt;br&gt;— Сервер пересылки не является доверенным для &lt;strong&gt;contoso.com.&lt;/strong&gt; и не имеет ответа в своем кэше, поэтому он использует корневые подсказки для поиска IP-адреса корневого сервера DNS;&lt;br&gt;— Сервер пересылки отправляет итеративный запрос корневому DNS-серверу для разрешения имени &lt;strong&gt;name.contoso.com.&lt;/strong&gt; Корневой сервер DNS возвращает ссылку на сервер Com, на котором размещена зона &lt;strong&gt;com.&lt;br&gt;— &lt;/strong&gt;Сервер пересылки отправляет итеративный запрос на сервер Com для разрешения имени name.contoso.com.  Сервер Сom возвращает ссылку на сервер Contoso, на котором размещается зона &lt;strong&gt;contoso.com.&lt;/strong&gt;&lt;br&gt;— Сервер пересылки отправляет на сервер Contoso итеративный запрос для разрешения имени name.contoso.com. Сервер Contoso находит ответ в файлах зоны и возвращает ответ на сервер пересылки.&lt;br&gt;— Получив искомую информацию, сервер пересылки возвращает результат исходному DNS-серверу.&lt;br&gt;— Исходный DNS-сервер возвращает результат клиенту.&lt;p&gt;В случае, если сервер пересылки по какой либо причине недоступен, DNS-сервер некоторое время будет ждать от него ответа, а потом пойдет по стандартному пути и попробует связаться с DNS-серверами, указанными в его корневых подсказках.&lt;h3&gt;Условная пересылка&lt;/h3&gt;&lt;p&gt;Хотя условная пересылка (conditional forwarding) и  является частным случаем пересылки, тем не менее о ней стоит упомянуть отдельно.&lt;p&gt;Условная пересылка — это пересылка запросов в соответствии с DNS-именем в запросе. Например, DNS-сервер можно настроить на пересылку всех получаемых им запросов на разрешение имен в домене contoso.com на IP-адреса авторитетных для этого домена DNS-серверов. При этом процесс разрешения имен будет выглядеть следующим образом:&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2024/10/forvarding7.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16404 size-full&#34; title=&#34;Условная пересылка (Conditional forwarding)&#34; src=https://windowsnotes.ru/wp-content/uploads/2024/10/forvarding7.png alt=&#34;Условная пересылка (Conditional forwarding)&#34; width=392 height=425&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;— Клиент запрашивает у своего DNS-сервера адрес для имени &lt;strong&gt;name.contoso.com.&lt;br&gt;&lt;/strong&gt;— DNS-сервер получает запрос от клиента и пытается разрешить его собственными силами, проверяя свои зоны и кэш;&lt;br&gt;— Если запрос не может быть решен с использованием локальных данных, DNS-сервер перенаправляет запрос на сервер Contoso, указанный как сервер условной пересылки для &lt;strong&gt;contoso.com&lt;/strong&gt;;&lt;br&gt;— Сервер Contoso является доверенным для &lt;strong&gt;contoso.com., &lt;/strong&gt;поэтому он находит у себя нужную информацию и возвращает результат исходному DNS-серверу;&lt;br&gt;— Исходный DNS-сервер возвращает результат клиенту.&lt;p&gt;Как видите, при использовании условной пересылки запрос сразу отправляется на нужные сервера, без использования делегирований и корневых подсказок, в результате сокращается время ответа и уменьшается нагрузка на сервер. В отличии от обычной пересылки условная пересылка в основном используется во внутренней сети, для ускорения разрешения имен между родственными доменами. Принцип работы условной пересылки в чем то похож на делегирование, но в отличие от делегирования, где требуется строгое соблюдение иерархии, условная пересылка может использоваться для любых доменных имен.</description>
      <author>Kirill</author>
      <guid>https://windowsnotes.ru/other/struktura-i-bazovye-principy-raboty-dns/</guid>
      <pubDate>Mon, 21 Oct 2024 09:42:40 +0000</pubDate>
    </item>
    <item>
      <title>Как перенести раздел восстановления Windows</title>
      <link>https://windowsnotes.ru/windows-10/kak-perenesti-razdel-vosstanovleniya-windows/</link>
      <description>&lt;p&gt;Если зайти в оснастку управления дисками современной операционной системы Windows, например такой как Windows 11, то можно увидеть, что системный диск разбит довольно своеобразным образом.&lt;p&gt;&lt;span id=more-16369&gt;&lt;/span&gt;&lt;p&gt;Сразу за разделом с операционной системой стоит так называемый раздел восстановления (Recovery Partition).&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2024/10/recover1.png&gt;&lt;img fetchpriority=high decoding=async class=&#34;alignnone wp-image-16371&#34; title=&#34;Управление дисками Windows Server 2022&#34; src=https://windowsnotes.ru/wp-content/uploads/2024/10/recover1.png alt=&#34;Управление дисками Windows Server 2022&#34; width=600 height=381&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;Что такое раздел восстановления и для чего он нужен?&lt;p&gt;Раздел восстановления Windows — это специальный раздел на системном диске, предназначенный для восстановления работоспособности операционной системы в случае проблем с загрузкой.&lt;p&gt;Раздел восстановления содержит в себе среду восстановления Windows (Windows RE), в которую входит набор инструментов для восстановления системы. В том случае если операционная система, по какой либо причине, не может загрузиться, вы можете загрузить компьютер в режиме восстановления и попытаться с помощью этих инструментов ее починить.&lt;span class=Y2IQFc lang=ru&gt; &lt;/span&gt;&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2024/10/recover3.png&gt;&lt;img decoding=async class=&#34;alignnone wp-image-16373&#34; title=&#34;Окно восстановления системы&#34; src=https://windowsnotes.ru/wp-content/uploads/2024/10/recover3.png alt=&#34;Окно восстановления системы&#34; width=430 height=299&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;Раздел восстановления используется в Windows довольно давно, но изначально он размещался в начале диска, до операционной системы. Это позволяло без проблем расширять системный диск в случае необходимости. Однако при таком размещении разделов Windows не могла расширить раздел восстановления, когда системе не хватало места для необходимых данных, и создавала дополнительный раздел на диске, в результате чего в одной операционной системе могло быть несколько разделов восстановления.&lt;p&gt;Поэтому Microsoft рекомендует размещать раздел восстановления на системном диске, сразу после раздела с Windows. Это позволяет операционной системе изменять раздел, если для будущих обновлений потребуется больший по размеру образ для восстановления. А начиная с Windows версии 2004 при установке операционной системы раздел восстановления по умолчанию создается в конце системного диска, после раздела с операционной системой.&lt;p&gt;В результате подобного разбиения диска становится невозможно расширить системный раздел. Даже если на диске есть свободное место, использовать его не получится, поскольку этому мешает раздел восстановления. И это является большой проблемой, особенно для виртуальных машин, где расширение диска является стандартной операцией.&lt;p&gt;Для примера возьмем виртуальную машину с Windows Server 2022. Увеличим размер диска на 10ГБ, зайдем в оснастку управления дисками и попробуем расширить системный раздел. Как видите, это невозможно, поскольку между системным разделом и свободным местом находится раздел восстановления.&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2024/10/recover2.png&gt;&lt;img decoding=async class=&#34;alignnone wp-image-16372&#34; title=&#34;контекстное меню управления диском&#34; src=https://windowsnotes.ru/wp-content/uploads/2024/10/recover2.png alt=&#34;контекстное меню управления диском&#34; width=600 height=453&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;К счастью эту ситуацию можно исправить. Для начала откроем командную консоль и отключим восстановление командой:&lt;p&gt;&lt;code&gt;reagentc /disable&lt;/code&gt;&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2024/10/recover4.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16374&#34; title=&#34;отключение восстановления&#34; src=https://windowsnotes.ru/wp-content/uploads/2024/10/recover4.png alt=&#34;отключение восстановления&#34; width=650 height=99 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2024/10/recover4.png 817w, https://windowsnotes.ru/wp-content/uploads/2024/10/recover4-768x117.png 768w&#34; sizes=&#34;auto, (max-width: 650px) 100vw, 650px&#34;&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;При этом образ восстановления будет выгружен в файл &lt;strong&gt;Winre.wim&lt;/strong&gt; и сохранен на диск, в папку &lt;strong&gt;C:\Windows\System32\Recovery&lt;/strong&gt;.&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2024/10/recover5.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16375&#34; title=&#34;содержимое раздела восстановления&#34; src=https://windowsnotes.ru/wp-content/uploads/2024/10/recover5.png alt=&#34;содержимое раздела восстановления&#34; width=650 height=187 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2024/10/recover5.png 812w, https://windowsnotes.ru/wp-content/uploads/2024/10/recover5-768x221.png 768w&#34; sizes=&#34;auto, (max-width: 650px) 100vw, 650px&#34;&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;Затем запускаем утилиту diskpart:&lt;p&gt;&lt;code&gt;diskpart&lt;/code&gt;&lt;p&gt;выводим список дисков:&lt;p&gt;&lt;code&gt;list disk&lt;/code&gt;&lt;p&gt;и выбираем системный диск, на котором должен находиться раздел восстановления:&lt;p&gt;&lt;code&gt;sel disk 0&lt;/code&gt;&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2024/10/recover6.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16376&#34; title=&#34;запуск diskpart, выбор диска&#34; src=https://windowsnotes.ru/wp-content/uploads/2024/10/recover6.png alt=&#34;запуск diskpart, выбор диска&#34; width=650 height=288 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2024/10/recover6.png 817w, https://windowsnotes.ru/wp-content/uploads/2024/10/recover6-768x340.png 768w&#34; sizes=&#34;auto, (max-width: 650px) 100vw, 650px&#34;&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;Затем выводим список разделов на выбранном диске:&lt;p&gt;&lt;code&gt;list part&lt;/code&gt;&lt;p&gt;В полученном списке находим раздел восстановления и выбираем его:&lt;p&gt;&lt;code&gt;sel part 4&lt;/code&gt;&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2024/10/recover7.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16377&#34; title=&#34;выбор раздела&#34; src=https://windowsnotes.ru/wp-content/uploads/2024/10/recover7.png alt=&#34;выбор раздела&#34; width=650 height=231 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2024/10/recover7.png 816w, https://windowsnotes.ru/wp-content/uploads/2024/10/recover7-768x273.png 768w&#34; sizes=&#34;auto, (max-width: 650px) 100vw, 650px&#34;&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;Ну и наконец удаляем выбранный раздел:&lt;p&gt;&lt;code&gt;del part override&lt;/code&gt;&lt;p&gt;и еще раз проверяем список разделов. Как видите, раздела восстановления больше нет.&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2024/10/recover8.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16378&#34; title=&#34;удаление раздела восстановления&#34; src=https://windowsnotes.ru/wp-content/uploads/2024/10/recover8.png alt=&#34;удаление раздела восстановления&#34; width=650 height=211 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2024/10/recover8.png 819w, https://windowsnotes.ru/wp-content/uploads/2024/10/recover8-768x249.png 768w&#34; sizes=&#34;auto, (max-width: 650px) 100vw, 650px&#34;&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;Теперь заходим в оснастку управления дисками и видим, что свободное место доступно&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2024/10/recover9.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16379&#34; title=&#34;проверка удаления раздела в оснастке управления дисками&#34; src=https://windowsnotes.ru/wp-content/uploads/2024/10/recover9.png alt=&#34;проверка удаления раздела в оснастке управления дисками&#34; width=600 height=365&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;и можно беспрепятственно расширить системный диск.&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2024/10/recover10.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16380&#34; title=&#34;расширение раздела&#34; src=https://windowsnotes.ru/wp-content/uploads/2024/10/recover10.png alt=&#34;расширение раздела&#34; width=600 height=444&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;В принципе можно просто удалить раздел восстановления и занять все свободное дисковое пространство. На работу ОС это никак не повлияет, а при необходимости всегда можно загрузить режим восстановления с любого загрузочного диска или образа с дистрибутивом Windows.&lt;p&gt;А можно оставить немного свободного места (примерно 700-900МБ) и вернуть раздел на место, что мы и сделаем. Для этого на оставшемся месте создадим новый раздел&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2024/10/recover11.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16381&#34; title=&#34;выбор раздела под восстановление&#34; src=https://windowsnotes.ru/wp-content/uploads/2024/10/recover11.png alt=&#34;выбор раздела под восстановление&#34; width=625 height=364 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2024/10/recover11.png 782w, https://windowsnotes.ru/wp-content/uploads/2024/10/recover11-768x448.png 768w&#34; sizes=&#34;auto, (max-width: 625px) 100vw, 625px&#34;&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;без буквы диска&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2024/10/recover12.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16382&#34; title=&#34;создание раздела восстановления&#34; src=https://windowsnotes.ru/wp-content/uploads/2024/10/recover12.png alt=&#34;создание раздела восстановления&#34; width=600 height=432&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;с настройками по умолчанию. Обзовем его Recovery.&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2024/10/recover13.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16383&#34; title=&#34;разбиение раздела восстановления&#34; src=https://windowsnotes.ru/wp-content/uploads/2024/10/recover13.png alt=&#34;разбиение раздела восстановления&#34; width=600 height=434&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;Теперь перейдем в свойства диска&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2024/10/recover14.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16384&#34; title=&#34;открытие свойств диска&#34; src=https://windowsnotes.ru/wp-content/uploads/2024/10/recover14.png alt=&#34;открытие свойств диска&#34; width=600 height=368&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;и уточним тип таблицы размещения файлов — GPT или MBR.&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2024/10/recover15.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16385&#34; title=&#34;свойства диска, тип таблицы размещения файлов&#34; src=https://windowsnotes.ru/wp-content/uploads/2024/10/recover15.png alt=&#34;свойства диска, тип таблицы размещения файлов&#34; width=320 height=363&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;Возвращаемся обратно в diskpart и выводим список разделов:&lt;p&gt;&lt;code&gt;list part&lt;/code&gt;&lt;p&gt;Находим свежесозданный раздел и переходим на него:&lt;p&gt;&lt;code&gt;sel part 4&lt;/code&gt;&lt;p&gt;теперь для диска GPT изменяем ID раздела, чтобы Windows опознала его как раздел восстановления:&lt;p&gt;&lt;code&gt;set id=de94bba4-06d1-4d40-a16a-bfd50179d6ac&lt;/code&gt;&lt;p&gt;Дополнительно требуется скрыть диск и пометить его как обязательный раздел, для этого нам нужно установить атрибут &lt;span class=Y2IQFc lang=ru&gt;GPT:&lt;/span&gt;&lt;p&gt;&lt;code&gt;gpt attributes=0x8000000000000001&lt;/code&gt;&lt;p&gt;Если же диск MBR, то назначить раздел восстановления можно командой:&lt;p&gt;&lt;code&gt;set id=27&lt;/code&gt;&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2024/10/recover16.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16386&#34; title=&#34;создание раздела восстановления&#34; src=https://windowsnotes.ru/wp-content/uploads/2024/10/recover16.png alt=&#34;создание раздела восстановления&#34; width=650 height=365 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2024/10/recover16.png 818w, https://windowsnotes.ru/wp-content/uploads/2024/10/recover16-768x431.png 768w&#34; sizes=&#34;auto, (max-width: 650px) 100vw, 650px&#34;&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;Теперь подключаем обратно образ восстановления:&lt;p&gt;&lt;code&gt;reagentc /enable&lt;/code&gt;&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2024/10/recover17.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16387&#34; title=&#34;включение восстановления&#34; src=https://windowsnotes.ru/wp-content/uploads/2024/10/recover17.png alt=&#34;включение восстановления&#34; width=650 height=99 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2024/10/recover17.png 818w, https://windowsnotes.ru/wp-content/uploads/2024/10/recover17-768x117.png 768w&#34; sizes=&#34;auto, (max-width: 650px) 100vw, 650px&#34;&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;И проверяем его состояние:&lt;p&gt;&lt;code&gt;reagentc /info&lt;/code&gt;&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2024/10/recover19.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16389&#34; title=&#34;вывод информации о разделах восстановления&#34; src=https://windowsnotes.ru/wp-content/uploads/2024/10/recover19.png alt=&#34;вывод информации о разделах восстановления&#34; width=650 height=222 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2024/10/recover19.png 818w, https://windowsnotes.ru/wp-content/uploads/2024/10/recover19-768x262.png 768w&#34; sizes=&#34;auto, (max-width: 650px) 100vw, 650px&#34;&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;В итоге мы и системный диск расширили, и раздел восстановления сохранили.&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2024/10/recover18.png&gt;&lt;img loading=lazy decoding=async class=&#34;alignnone wp-image-16388&#34; title=&#34;проверка разделов&#34; src=https://windowsnotes.ru/wp-content/uploads/2024/10/recover18.png alt=&#34;проверка разделов&#34; width=600 height=365&gt;&lt;/a&gt;&lt;p&gt; &lt;p&gt;Вот как то так 🙂</description>
      <author>Kirill</author>
      <guid>https://windowsnotes.ru/windows-10/kak-perenesti-razdel-vosstanovleniya-windows/</guid>
      <pubDate>Fri, 11 Oct 2024 13:01:06 +0000</pubDate>
    </item>
    <item>
      <title>Генерация пароля заданной длины и сложности с помощью PowerShell</title>
      <link>https://windowsnotes.ru/powershell-2/generaciya-parolya-zadannoj-dliny-i-slozhnosti-s-pomoshhyu-powershell/</link>
      <description>&lt;p&gt;Е&lt;span class=EzKURWReUAB5oZgtQNkl data-src-align=39:2&gt;сли&lt;/span&gt; &lt;span class=EzKURWReUAB5oZgtQNkl data-src-align=42:3&gt;необходимо&lt;/span&gt; &lt;span class=EzKURWReUAB5oZgtQNkl data-src-align=55:5&gt;сбросить&lt;/span&gt; &lt;span class=EzKURWReUAB5oZgtQNkl data-src-align=61:9&gt;пароли&lt;/span&gt; &lt;span class=EzKURWReUAB5oZgtQNkl data-src-align=71:2&gt;или&lt;/span&gt; &lt;span class=EzKURWReUAB5oZgtQNkl data-src-align=74:6&gt;создать большое количество&lt;/span&gt; &lt;span class=EzKURWReUAB5oZgtQNkl data-src-align=81:3&gt;новых&lt;/span&gt; &lt;span class=EzKURWReUAB5oZgtQNkl data-src-align=85:5&gt;пользователей&lt;/span&gt;&lt;span class=EzKURWReUAB5oZgtQNkl data-src-align=90:1&gt;,&lt;/span&gt; это легко можно сделать с помощью &lt;span class=EzKURWReUAB5oZgtQNkl data-src-align=142:10&gt;Powershell&lt;/span&gt;&lt;span class=EzKURWReUAB5oZgtQNkl data-src-align=152:1&gt;.&lt;/span&gt; Cегодня мы рассмотрим 3 способа создания паролей в &lt;span class=EzKURWReUAB5oZgtQNkl data-src-align=214:10&gt;PowerShell&lt;/span&gt;.&lt;p&gt;&lt;span id=more-16316&gt;&lt;/span&gt;&lt;p&gt;&lt;span class=EzKURWReUAB5oZgtQNkl data-src-align=231:8&gt;— Простой генератор паролей, выдающий произвольный пароль заданной длины;&lt;/span&gt;&lt;br&gt;&lt;span class=EzKURWReUAB5oZgtQNkl data-src-align=302:6&gt;— Г&lt;/span&gt;&lt;span class=EzKURWReUAB5oZgtQNkl data-src-align=325:9&gt;енератор&lt;/span&gt; &lt;span class=EzKURWReUAB5oZgtQNkl data-src-align=316:8&gt;паролей&lt;/span&gt; &lt;span class=EzKURWReUAB5oZgtQNkl data-src-align=335:4&gt;с&lt;/span&gt; &lt;span class=EzKURWReUAB5oZgtQNkl data-src-align=340:10&gt;предопределенным&lt;/span&gt; &lt;span class=EzKURWReUAB5oZgtQNkl data-src-align=361:3&gt;набором&lt;/span&gt; &lt;span class=EzKURWReUAB5oZgtQNkl data-src-align=351:9&gt;символов;&lt;/span&gt;&lt;br&gt;&lt;span class=EzKURWReUAB5oZgtQNkl data-src-align=378:9&gt;— Генератор&lt;/span&gt; &lt;span class=EzKURWReUAB5oZgtQNkl data-src-align=369:8&gt;паролей&lt;/span&gt;&lt;span class=EzKURWReUAB5oZgtQNkl data-src-align=388:4&gt;,&lt;/span&gt; &lt;span class=EzKURWReUAB5oZgtQNkl data-src-align=393:6&gt;позволяющий&lt;/span&gt; &lt;span class=EzKURWReUAB5oZgtQNkl data-src-align=403:7&gt;задать&lt;/span&gt; &lt;span class=EzKURWReUAB5oZgtQNkl data-src-align=415:6&gt;количество&lt;/span&gt; &lt;span class=EzKURWReUAB5oZgtQNkl data-src-align=425:9&gt;прописных&lt;/span&gt;&lt;span class=EzKURWReUAB5oZgtQNkl data-src-align=434:1&gt;,&lt;/span&gt; &lt;span class=EzKURWReUAB5oZgtQNkl data-src-align=436:9&gt;строчных&lt;/span&gt;&lt;span class=EzKURWReUAB5oZgtQNkl data-src-align=445:1&gt;,&lt;/span&gt; &lt;span class=EzKURWReUAB5oZgtQNkl data-src-align=447:7&gt;числовых&lt;/span&gt; &lt;span class=EzKURWReUAB5oZgtQNkl data-src-align=455:3&gt;и&lt;/span&gt; &lt;span class=EzKURWReUAB5oZgtQNkl data-src-align=459:7&gt;специальных&lt;/span&gt; &lt;span class=EzKURWReUAB5oZgtQNkl data-src-align=467:10&gt;символов.&lt;/span&gt;&lt;h3&gt;Простой генератор паролей&lt;/h3&gt;&lt;p&gt;Самый простой вариант, с использованием встроенного генератора паролей. В этом варианте используем метод  GeneratePassword класса &lt;a href=&#34;https://learn.microsoft.com/en-us/dotnet/api/system.web.security.membership?view=netframework-4.8.1&#34; target=_blank rel=noopener&gt;System.Web.Security.Membership&lt;/a&gt;:&lt;p&gt;&lt;code&gt;function Get-Password {&lt;br&gt;param (&lt;br&gt;[Parameter(Mandatory)]&lt;br&gt;[int] $length, #password length&lt;br&gt;[int] $special = 1 #special&lt;br&gt;)&lt;br&gt;Add-Type -AssemblyName &amp;#39;System.Web&amp;#39;;&lt;br&gt;$password = [System.Web.Security.Membership]::GeneratePassword($length, $special);&lt;br&gt;return $password;&lt;br&gt;}&lt;/code&gt;&lt;p&gt;В итоге получаем произвольный пароль заданной длины. Но методу GeneratePassword можно передать только 2 аргумента — длину и минимальное количество нестандартных символов. В ситуации, когда есть жесткие требования к сложности пароля (например парольная политика AD) этот способ может не подойти.&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2024/08/randpass1.png&gt;&lt;img fetchpriority=high decoding=async class=&#34;alignnone wp-image-16322&#34; title=&#34;простой генератор паролей&#34; src=https://windowsnotes.ru/wp-content/uploads/2024/08/randpass1.png alt=&#34;простой генератор паролей&#34; width=665 height=90 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2024/08/randpass1.png 831w, https://windowsnotes.ru/wp-content/uploads/2024/08/randpass1-768x104.png 768w&#34; sizes=&#34;(max-width: 665px) 100vw, 665px&#34;&gt;&lt;/a&gt;&lt;h3&gt;Генератор паролей с предопределенным набором символов&lt;/h3&gt;&lt;p&gt;Здесь мы используем класс &lt;a href=&#34;https://learn.microsoft.com/en-us/dotnet/api/system.security.cryptography.randomnumbergenerator?view=net-8.0&#34; target=_blank rel=noopener&gt;RandomNumberGenerator&lt;/a&gt;, который реализует криптографический генератор случайных чисел. Пароль будем создавать с помощью метода Create:&lt;p&gt;&lt;code&gt;function Get-Password {&lt;br&gt;param (&lt;br&gt;[Parameter(Mandatory)]&lt;br&gt;[int] $length #password length&lt;br&gt;)&lt;/code&gt;&lt;p&gt;&lt;code&gt;#password charset&lt;br&gt;$charSet = &amp;#39;abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789{]+-[*=@:)}$^%;(_!&amp;amp;#?&amp;gt;/|.&amp;#39;.ToCharArray();&lt;/code&gt;&lt;p&gt;&lt;code&gt;#generate password&lt;br&gt;$rng = [System.Security.Cryptography.RandomNumberGenerator]::Create();&lt;br&gt;$bytes = New-Object byte[]($length);&lt;br&gt;$rng.GetBytes($bytes);&lt;br&gt;$result = New-Object char[]($length);&lt;/code&gt;&lt;p&gt;&lt;code&gt;for ($i = 0 ; $i -lt $length ; $i++) {&lt;br&gt;$result[$i] = $charSet[$bytes[$i]%$charSet.Length];&lt;br&gt;}&lt;br&gt;return (-join $result);&lt;br&gt;}&lt;/code&gt;&lt;p&gt;В этом варианте мы можем контролировать используемый при генерации пароля набор символов, но результат все так же непредсказуем.&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2024/08/randpass2.png&gt;&lt;img decoding=async class=&#34;alignnone wp-image-16327&#34; title=&#34;генератор паролей с предопределенным набором символов&#34; src=https://windowsnotes.ru/wp-content/uploads/2024/08/randpass2.png alt=&#34;генератор паролей с предопределенным набором символов&#34; width=665 height=92 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2024/08/randpass2.png 831w, https://windowsnotes.ru/wp-content/uploads/2024/08/randpass2-768x106.png 768w&#34; sizes=&#34;(max-width: 665px) 100vw, 665px&#34;&gt;&lt;/a&gt;&lt;h3&gt;Генератор паролей с контролируемыми параметрами&lt;/h3&gt;&lt;p&gt;Используем тот же подход, что и в предыдущем способе, но немного его доработаем, включим в него проверку на соответствие заданным параметрам:&lt;p&gt;&lt;code&gt;function Get-Password {&lt;br&gt;param (&lt;br&gt;[Parameter(Mandatory)]&lt;br&gt;[ValidateRange(4,[int]::MaxValue)]&lt;br&gt;[int] $length, #length&lt;br&gt;[int] $upper = 1, #number of uppercase&lt;br&gt;[int] $lower = 1, #number of lowercase&lt;br&gt;[int] $numeric = 1, #number of numeric&lt;br&gt;[int] $special = 1 #number of special&lt;br&gt;)&lt;br&gt;if($upper + $lower + $numeric + $special -gt $length) {&lt;br&gt;throw &amp;#34;number of upper/lower/numeric/special char must be lower or equal to length&amp;#34;;&lt;br&gt;}&lt;br&gt;# password charset&lt;br&gt;$uCharSet = &amp;#34;ABCDEFGHIJKLMNOPQRSTUVWXYZ&amp;#34;; #uppercase&lt;br&gt;$lCharSet = &amp;#34;abcdefghijklmnopqrstuvwxyz&amp;#34;; #lowercase&lt;br&gt;$nCharSet = &amp;#34;0123456789&amp;#34;; #numeric&lt;br&gt;$sCharSet = &amp;#34;/*-+,!?=()@;:._&amp;#34;; #special&lt;br&gt;$charSet = &amp;#34;&amp;#34;;&lt;br&gt;if($upper -gt 0) { $charSet += $uCharSet }&lt;br&gt;if($lower -gt 0) { $charSet += $lCharSet }&lt;br&gt;if($numeric -gt 0) { $charSet += $nCharSet }&lt;br&gt;if($special -gt 0) { $charSet += $sCharSet }&lt;/code&gt;&lt;p&gt;&lt;code&gt;#pasword generate&lt;br&gt;$charSet = $charSet.ToCharArray();&lt;br&gt;$rng = [System.Security.Cryptography.RandomNumberGenerator]::Create();&lt;br&gt;$bytes = New-Object byte[]($length);&lt;br&gt;$rng.GetBytes($bytes);&lt;/code&gt;&lt;p&gt;&lt;code&gt;$result = New-Object char[]($length);&lt;br&gt;for ($i = 0 ; $i -lt $length ; $i++) {&lt;br&gt;$result[$i] = $charSet[$bytes[$i] % $charSet.Length]&lt;br&gt;}&lt;br&gt;$password = (-join $result);&lt;/code&gt;&lt;p&gt;&lt;code&gt;# pasword validation&lt;br&gt;$valid = $true;&lt;br&gt;if($upper -gt ($password.ToCharArray() | Where-Object {$_ -cin $uCharSet.ToCharArray() }).Count) { $valid = $false }&lt;br&gt;if($lower -gt ($password.ToCharArray() | Where-Object {$_ -cin $lCharSet.ToCharArray() }).Count) { $valid = $false }&lt;br&gt;if($numeric -gt ($password.ToCharArray() | Where-Object {$_ -cin $nCharSet.ToCharArray() }).Count) { $valid = $false }&lt;br&gt;if($special -gt ($password.ToCharArray() | Where-Object {$_ -cin $sCharSet.ToCharArray() }).Count) { $valid = $false }&lt;/code&gt;&lt;p&gt;&lt;code&gt;if(!$valid) {&lt;br&gt;$password = Get-Password $length $upper $lower $numeric $special;&lt;br&gt;}&lt;br&gt;return $password;&lt;br&gt;}&lt;/code&gt;&lt;p&gt;Вот теперь мы можем полностью контролировать генерируемый пароль, например исключить из него спецсимволы, или использовать только буквы в нижнем регистре.&lt;p&gt;&lt;a href=https://windowsnotes.ru/wp-content/uploads/2024/08/randpass3.png&gt;&lt;img decoding=async class=&#34;alignnone wp-image-16331&#34; title=&#34;генератор паролей с контролируемыми параметрами&#34; src=https://windowsnotes.ru/wp-content/uploads/2024/08/randpass3.png alt=&#34;генератор паролей с контролируемыми параметрами&#34; width=665 height=121 srcset=&#34;https://windowsnotes.ru/wp-content/uploads/2024/08/randpass3.png 833w, https://windowsnotes.ru/wp-content/uploads/2024/08/randpass3-768x140.png 768w&#34; sizes=&#34;(max-width: 665px) 100vw, 665px&#34;&gt;&lt;/a&gt;</description>
      <author>Kirill</author>
      <guid>https://windowsnotes.ru/powershell-2/generaciya-parolya-zadannoj-dliny-i-slozhnosti-s-pomoshhyu-powershell/</guid>
      <pubDate>Sun, 18 Aug 2024 19:04:19 +0000</pubDate>
    </item>
  </channel>
</rss>