- Windows Subsystem for Linux Installation Guide for Windows 10
- Simplified Installation for Windows Insiders
- Manual Installation Steps
- Step 1 — Enable the Windows Subsystem for Linux
- Step 2 — Check requirements for running WSL 2
- Step 3 — Enable Virtual Machine feature
- Step 4 — Download the Linux kernel update package
- Step 5 — Set WSL 2 as your default version
- Step 6 — Install your Linux distribution of choice
- Install Windows Terminal (optional)
- Set your distribution version to WSL 1 or WSL 2
- Troubleshooting installation
- Linux Admin — Удаленное управление
- Удаленное управление консолью
- Удаленное управление GUI
- Создание основы безопасности с помощью SSH для удаленного консольного доступа
- Установите и настройте SSH для удаленного доступа
- Настройте VNC для удаленного администрирования CentOS
- Настройте SSH-туннель через VNC
- Используйте SSH Tunnel для удаленного X-Windows
Windows Subsystem for Linux Installation Guide for Windows 10
There are two options available for installing Windows Subsystem for Linux (WSL):
Simplified install (preview release): wsl —install
The wsl —install simplified install command requires that you join the Windows Insiders Program and install a preview build of Windows 10 (OS build 20262 or higher), but eliminates the need to follow the manual install steps. All you need to do is open a command window with administrator privileges and run wsl —install , after a restart you will be ready to use WSL.
Manual install: Follow the six steps listed below.
The manual install steps for WSL are listed below and can be used to install Linux on any version of Windows 10.
If you run into an issue during the install process, check the Troubleshooting installation section at the bottom of this page.
Simplified Installation for Windows Insiders
The installation process for Windows Subsystem for Linux has been significantly improved in the latest Windows Insiders preview builds of Windows 10, replacing the manual steps below with a single command.
In order to use the wsl —install simplified install command, you must:
- Join the Windows Insiders Program
- Install a preview build of Windows 10 (OS build 20262 or higher).
- Open a command line windows with Administrator privileges
Once those requirements are met, to install WSL:
- Enter this command in the command line you’ve opened in Admin mode: wsl.exe —install
- Restart your machine
The first time you launch a newly installed Linux distribution, a console window will open and you’ll be asked to wait for files to de-compress and be stored on your PC. All future launches should take less than a second.
CONGRATULATIONS! You’ve successfully installed and set up a Linux distribution that is completely integrated with your Windows operating system!
The —install command performs the following actions:
- Enables the optional WSL and Virtual Machine Platform components
- Downloads and installs the latest Linux kernel
- Sets WSL 2 as the default
- Downloads and installs a Linux distribution (reboot may be required)
By default, the installed Linux distribution will be Ubuntu. This can be changed using wsl —install -d . (Replacing with the name of your desired distribution.) Additional Linux distributions may be added to your machine after the initial install using the wsl —install -d command.
To see a list of available Linux distributions, enter wsl —list —online .
Manual Installation Steps
If you are not on a Windows Insiders build, the features required for WSL will need to be enabled manually following the steps below.
Step 1 — Enable the Windows Subsystem for Linux
You must first enable the «Windows Subsystem for Linux» optional feature before installing any Linux distributions on Windows.
Open PowerShell as Administrator and run:
We recommend now moving on to step #2, updating to WSL 2, but if you wish to only install WSL 1, you can now restart your machine and move on to Step 6 — Install your Linux distribution of choice. To update to WSL 2, wait to restart your machine and move on to the next step.
Step 2 — Check requirements for running WSL 2
To update to WSL 2, you must be running Windows 10.
- For x64 systems: Version 1903 or higher, with Build 18362 or higher.
- For ARM64 systems: Version 2004 or higher, with Build 19041 or higher.
- Builds lower than 18362 do not support WSL 2. Use the Windows Update Assistant to update your version of Windows.
To check your version and build number, select Windows logo key + R, type winver, select OK. Update to the latest Windows version in the Settings menu.
If you are running Windows 10 version 1903 or 1909, open «Settings» from your Windows menu, navigate to «Update & Security» and select «Check for Updates». Your Build number must be 18362.1049+ or 18363.1049+, with the minor build # over .1049. Read more: WSL 2 Support is coming to Windows 10 Versions 1903 and 1909. See the troubleshooting instructions.
Step 3 — Enable Virtual Machine feature
Before installing WSL 2, you must enable the Virtual Machine Platform optional feature. Your machine will require virtualization capabilities to use this feature.
Open PowerShell as Administrator and run:
Restart your machine to complete the WSL install and update to WSL 2.
Step 4 — Download the Linux kernel update package
Download the latest package:
If you’re using an ARM64 machine, please download the ARM64 package instead. If you’re not sure what kind of machine you have, open Command Prompt or PowerShell and enter: systeminfo | find «System Type» . Caveat: On non-English Windows versions, you might have to modify the search text, for example, in German it would be systeminfo | find «Systemtyp» .
Run the update package downloaded in the previous step. (Double-click to run — you will be prompted for elevated permissions, select вЂyes’ to approve this installation.)
Once the installation is complete, move on to the next step — setting WSL 2 as your default version when installing new Linux distributions. (Skip this step if you want your new Linux installs to be set to WSL 1).
Step 5 — Set WSL 2 as your default version
Open PowerShell and run this command to set WSL 2 as the default version when installing a new Linux distribution:
Step 6 — Install your Linux distribution of choice
Open the Microsoft Store and select your favorite Linux distribution.
The following links will open the Microsoft store page for each distribution:
From the distribution’s page, select «Get».
The first time you launch a newly installed Linux distribution, a console window will open and you’ll be asked to wait for a minute or two for files to de-compress and be stored on your PC. All future launches should take less than a second.
CONGRATULATIONS! You’ve successfully installed and set up a Linux distribution that is completely integrated with your Windows operating system!
Install Windows Terminal (optional)
Windows Terminal enables multiple tabs (quickly switch between multiple Linux command lines, Windows Command Prompt, PowerShell, Azure CLI, etc), create custom key bindings (shortcut keys for opening or closing tabs, copy+paste, etc.), use the search feature, and custom themes (color schemes, font styles and sizes, background image/blur/transparency). Learn more.
Set your distribution version to WSL 1 or WSL 2
You can check the WSL version assigned to each of the Linux distributions you have installed by opening the PowerShell command line and entering the command (only available in Windows Build 18362 or higher): wsl -l -v
To set a distribution to be backed by either version of WSL please run:
Make sure to replace with the actual name of your distribution and with the number ‘1’ or ‘2’. You can change back to WSL 1 at anytime by running the same command as above but replacing the ‘2’ with a ‘1’.
The update from WSL 1 to WSL 2 may take several minutes to complete depending on the size of your targeted distribution. If you are running an older (legacy) installation of WSL 1 from Windows 10 Anniversary Update or Creators Update, you may encounter an update error. Follow these instructions to uninstall and remove any legacy distributions.
If wsl —set-default-version results as an invalid command, enter wsl —help . If the —set-default-version is not listed, it means that your OS doesn’t support it and you need to update to version 1903, Build 18362 or higher. If you are on Build 19041 for ARM64, this command may fail when using PowerShell in which case you can use a Command Prompt instead to issue the wsl.exe command.
If you see this message after running the command: WSL 2 requires an update to its kernel component. For information please visit https://aka.ms/wsl2kernel . You still need to install the MSI Linux kernel update package.
Additionally, if you want to make WSL 2 your default architecture you can do so with this command:
This will set the version of any new distribution installed to WSL 2.
Troubleshooting installation
Below are related errors and suggested fixes. Refer to the WSL troubleshooting page for other common errors and their solutions.
Installation failed with error 0x80070003
- The Windows Subsystem for Linux only runs on your system drive (usually this is your C: drive). Make sure that distributions are stored on your system drive:
- Open Settings -> **System —>Storage ->More Storage Settings: Change where new content is saved
WslRegisterDistribution failed with error 0x8007019e
- The Windows Subsystem for Linux optional component is not enabled:
- Open Control Panel ->Programs and Features ->Turn Windows Feature on or off -> Check Windows Subsystem for Linux or using the PowerShell cmdlet mentioned at the beginning of this article.
Installation failed with error 0x80070003 or error 0x80370102
- Please make sure that virtualization is enabled inside of your computer’s BIOS. The instructions on how to do this will vary from computer to computer, and will most likely be under CPU related options.
- WSL2 requires that your CPU supports the Second Level Address Translation (SLAT) feature, which was introduced in Intel Nehalem processors (Intel Core 1st Generation) and AMD Opteron. Older CPUs (such as the Intel Core 2 Duo) will not be able to run WSL2, even if the Virtual Machine Platform is successfully installed.
Error when trying to upgrade: Invalid command line option: wsl —set-version Ubuntu 2
- Enure that you have the Windows Subsystem for Linux enabled, and that you’re using Windows Build version 18362 or higher. To enable WSL run this command in a PowerShell prompt with admin privileges: Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux .
The requested operation could not be completed due to a virtual disk system limitation. Virtual hard disk files must be uncompressed and unencrypted and must not be sparse.
- Deselect “Compress contents” (as well as “Encrypt contents” if that’s checked) by opening the profile folder for your Linux distribution. It should be located in a folder on your Windows file system, something like: USERPROFILE%\AppData\Local\Packages\CanonicalGroupLimited.
- In this Linux distro profile, there should be a LocalState folder. Right-click this folder to display a menu of options. Select Properties > Advanced and then ensure that the “Compress contents to save disk space” and “Encrypt contents to secure data” checkboxes are unselected (not checked). If you are asked whether to apply this to just to the current folder or to all subfolders and files, select “just this folder” because you are only clearing the compress flag. After this, the wsl —set-version command should work.
In my case, the LocalState folder for my Ubuntu 18.04 distribution was located at C:\Users \AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc
Check WSL Docs GitHub thread #4103 where this issue is being tracked for updated information.
The term ‘wsl’ is not recognized as the name of a cmdlet, function, script file, or operable program.
- Ensure that the Windows Subsystem for Linux Optional Component is installed. Additionally, if you are using an ARM64 device and running this command from PowerShell, you will receive this error. Instead run wsl.exe from PowerShell Core, or Command Prompt.
Error: This update only applies to machines with the Windows Subsystem for Linux.
- To install the Linux kernel update MSI package, WSL is required and should be enabled first. If it fails, it you will see the message: This update only applies to machines with the Windows Subsystem for Linux .
- There are three possible reason you see this message:
- If the Linux kernel package is missing in the %SystemRoot%\system32\lxss\tools folder, you will encounter this error. Resolve it by installing the Linux kernel update MSI package in step #4 of these installation instructions. You may need to uninstall the MSI from ‘Add or Remove Programs’, and install it again.
- Консольное управление
- Управление GUI
You are still in old version of Windows which doesn’t support WSL 2. See step #2 for version requirements and links to update.
WSL is not enabled. You will need to return to step #1 and ensure that the optional WSL feature is enabled on your machine.
After you enabled WSL, a reboot is required for it to take effect, reboot your machine and try again.
Error: WSL 2 requires an update to its kernel component. For information please visit https://aka.ms/wsl2kernel .
—>
Linux Admin — Удаленное управление
Говоря об удаленном управлении в CentOS в качестве администратора, мы рассмотрим два метода:
Удаленное управление консолью
Удаленное управление консолью означает выполнение задач администрирования из командной строки через службу, такую как ssh. Чтобы эффективно использовать CentOS Linux, как администратор, вам нужно хорошо разбираться в командной строке. Linux в своей основе был разработан для использования с консоли. Даже сегодня некоторые системные администраторы предпочитают мощь команды и экономят деньги на оборудовании, выполняя обычные Linux-боксы без физического терминала и без установленного графического интерфейса.
Удаленное управление GUI
Удаленное управление графическим интерфейсом обычно выполняется двумя способами: либо удаленным сеансом X-Session, либо протоколом уровня приложения GUI, таким как VNC. У каждого есть свои сильные и слабые стороны. Однако по большей части VNC является лучшим выбором для администрирования. Это позволяет графическое управление из других операционных систем, таких как Windows или OS X, которые изначально не поддерживают протокол X Windows.
Использование удаленных сеансов X является родным для оконных менеджеров X-Window и DesktopManager, работающих на X. Однако вся архитектура сеансов X в основном используется в Linux. Не каждый системный администратор будет иметь под рукой портативный компьютер Linux для установки удаленного сеанса X. Поэтому чаще всего используется адаптированная версия VNC Server.
Самые большие недостатки VNC: VNC изначально не поддерживает многопользовательскую среду, такую как удаленные X-сеансы. Следовательно, для доступа GUI к конечным пользователям удаленные XSessions будут лучшим выбором. Однако в основном мы занимаемся удаленным администрированием сервера CentOS.
Мы обсудим настройку VNC для нескольких администраторов против нескольких сотен конечных пользователей с удаленными X-сессиями.
Создание основы безопасности с помощью SSH для удаленного консольного доступа
Теперь ssh или Secure Shell являются стандартом для удаленного администрирования любого сервера Linux. SSH в отличие от telnet использует TLS для аутентификации и сквозного шифрования сообщений. При правильной настройке администратор может быть уверен, что и его пароль, и сервер доверены удаленно.
Перед настройкой SSH, давайте немного поговорим о базовой безопасности и наименьшем общем доступе. Когда SSH работает на порте по умолчанию 22; скорее, чем позже, вы начнете подвергаться атакам методом перебора словаря по общим именам пользователей и паролям. Это только идет с территорией. Независимо от того, сколько хостов вы добавляете в свои запрещенные файлы, они будут ежедневно приходить с разных IP-адресов.
Имея несколько общих правил, вы можете просто сделать некоторые активные шаги и позволить злодеям тратить свое время. Ниже приведены несколько правил безопасности, которым необходимо следовать при использовании SSH для удаленного администрирования на рабочем сервере.
Никогда не используйте общее имя пользователя или пароль. Имена пользователей в системе не должны быть системными по умолчанию или связаны с адресом электронной почты компании, например: [email protected]
Корневой доступ или административный доступ не должны быть разрешены через SSH. Используйте уникальное имя пользователя и su для root или учетной записи администратора после аутентификации через SSH.
Политика паролей обязательна: сложные пароли пользователей SSH, такие как: «Это и есть, а также GUD & P @ ssW0rd & 24 & me». Меняйте пароли каждые несколько месяцев, чтобы исключить вероятность атак с использованием грубой силы.
Отключить заброшенные или неиспользованные учетные записи в течение длительного периода времени. Если у менеджера по найму есть голосовая почта с указанием, что он не будет давать интервью в течение месяца; например, это может привести к технически подкованным людям, у которых много времени.
Смотрите ваши логи ежедневно. Как системный администратор, каждое утро просматривайте журналы системы и безопасности не менее 30-40 минут. Если вас спросят, дайте всем знать, что у вас нет времени, чтобы не быть активным. Эта практика поможет изолировать предупреждающие знаки до того, как проблема окажется перед конечными пользователями и прибылью компании.
Примечание о безопасности Linux. Любой, кто интересуется администрированием Linux, должен активно следить за текущими новостями и технологиями Cyber-Security. В то время как мы в основном слышим о взломе других операционных систем, небезопасная версия Linux — это популярное сокровище для киберпреступников. Обладая мощью Linux на высокоскоростном интернет-соединении, опытный киберпреступник может использовать Linux для усиления атак на другие операционные системы.
Установите и настройте SSH для удаленного доступа
Шаг 1 — Установите SSH Server и все зависимые пакеты.
Шаг 2. Сделайте безопасное регулярное использование для добавления доступа к оболочке.
Примечание. Мы добавили нового пользователя в группу wheel, что позволило ему войти в root после аутентификации доступа SSH. Мы также использовали имя пользователя, которое невозможно найти в общих списках слов. Таким образом, наша учетная запись не будет заблокирована при атаке по SSH.
Файл с настройками конфигурации для сервера sshd — это / etc / ssh / sshd_config .
Части, которые мы хотим отредактировать изначально:
Шаг 3 — Перезагрузите SSH-демон sshd .
Рекомендуется установить льготный период выхода из системы на 60 минут. Некоторые сложные задачи администрирования могут превышать значение по умолчанию, равное 2 минутам. Нет ничего более разочаровывающего, чем тайм-аут сеанса SSH при настройке или исследовании изменений.
Шаг 4 — Давайте попробуем войти в систему, используя учетные данные root.
Шаг 5 — Мы больше не можем входить удаленно через ssh с правами root . Итак, давайте войдем в нашу непривилегированную учетную запись пользователя и su в корневой учетной записи.
Шаг 6. Наконец, давайте удостоверимся, что служба SSHD загружается при загрузке, а firewalld разрешает внешние соединения SSH.
Теперь SSH настроен и готов к удаленному администрированию. В зависимости от границы вашего предприятия может потребоваться настроить устройство границы фильтрации пакетов, чтобы разрешить удаленное администрирование SSH за пределами корпоративной локальной сети.
Настройте VNC для удаленного администрирования CentOS
Есть несколько способов включить удаленное администрирование CentOS через VNC в CentOS 6-7. Самый простой, но самый ограниченный способ — это просто использовать пакет, называемый vino . Vino — это приложение для подключения к виртуальной сети для Linux, разработанное на платформе Gnome Desktop. Следовательно, предполагается, что установка была завершена с помощью Gnome Desktop. Если Gnome Desktop не был установлен, сделайте это, прежде чем продолжить. По умолчанию Vino будет установлен с графическим интерфейсом Gnome.
Чтобы настроить совместное использование экрана с Vino в Gnome, мы хотим перейти в системные настройки CentOS для совместного использования экрана.
Примечания к настройке VNC Desktop Sharing —
Отключить Новые подключения должны запрашивать доступ — эта опция потребует физического доступа для подтверждения каждого подключения. Эта опция предотвратит удаленное администрирование, если кто-то не находится на физическом рабочем столе.
Включить Требовать пароль — это отдельно от пароля пользователя. Он будет контролировать доступ к виртуальному рабочему столу и по-прежнему требовать пароль пользователя для доступа к заблокированному рабочему столу (это полезно для безопасности).
Переадресация портов UP & P: если доступно, оставьте отключенным — Переадресация портов UP & P будет отправлять запросы Universal Plug and Play для устройства уровня 3, чтобы автоматически разрешать соединения VNC с хостом. Мы не хотим этого.
Убедитесь, что Vino прослушивает порт VNC 5900.
Давайте теперь настроим наш брандмауэр, чтобы разрешить входящие соединения VNC.
Наконец, как вы можете видеть, мы можем подключить наш CentOS Box и администрировать его с помощью клиента VNC в Windows или OS X.
Столь же важно соблюдать те же правила для VNC, что и для SSH. Как и SSH, VNC постоянно сканируется по диапазонам IP-адресов и проверяется на наличие слабых паролей. Также стоит отметить, что оставление входа в систему CentOS по умолчанию с тайм-аутом консоли помогает в обеспечении безопасности удаленного VNC. Поскольку злоумышленнику понадобятся VNC и пароль пользователя, убедитесь, что ваш пароль для общего доступа к экрану отличается и его так же сложно угадать, как и пароль пользователя.
После ввода пароля общего доступа к экрану VNC мы также должны ввести пароль пользователя для доступа к заблокированному рабочему столу.
Примечание по безопасности — по умолчанию VNC не является зашифрованным протоколом. Следовательно, соединение VNC должно быть туннелировано через SSH для шифрования.
Настройте SSH-туннель через VNC
Настройка SSH Tunnel обеспечит уровень шифрования SSH для туннелирования через VNC-соединение. Еще одна замечательная особенность — это использование сжатия SSH для добавления еще одного уровня сжатия в обновления экрана графического интерфейса VNC. Более безопасный и быстрый способ всегда полезен при администрировании серверов CentOS!
Итак, от вашего клиента, который будет инициировать соединение VNC, давайте настроим удаленный SSH-туннель. В этой демонстрации мы используем OS X. Сначала нам нужно sudo -s для root .
Введите пароль пользователя, и теперь у нас должна быть корневая оболочка с приглашением # —
Теперь давайте создадим наш SSH-туннель .
Давайте разберем эту команду —
ssh — запускает локальную утилиту ssh
-f — ssh должен запускаться в фоновом режиме после полного выполнения задачи
[email protected] — удаленный пользователь ssh на сервере CentOS, на котором размещены службы VNC
-L 2200: 192.168.1.143: 5900 — Создать наш туннель [Локальный порт]: [удаленный хост]: [удаленный порт службы VNC]
-N говорит SSH, что мы не хотим выполнять команду в удаленной системе
После успешного ввода пароля удаленного пользователя ssh создается наш ssh-туннель . Теперь о крутой части! Для подключения мы указываем наш VNC-клиент на локальный хост на порту нашего туннеля, в данном случае на порт 2200. Ниже приведена конфигурация на VNC-клиенте для ноутбука Mac —
И, наконец, наше удаленное VNC Desktop Connection!
Крутая вещь в SSH-туннелировании — его можно использовать практически для любого протокола. Туннели SSH обычно используются для обхода фильтрации выходных и входных портов интернет-провайдером, а также для трюковых приложений уровня IDS / IPS, в то же время обходя мониторинг другого сеансового уровня.
Ваш Интернет-провайдер может фильтровать порт 5900 для некоммерческих учетных записей, но разрешить SSH на порту 22 (или можно запустить SSH на любом порту, если порт 22 отфильтрован).
IPS и IDS уровня приложения смотрят на полезную нагрузку. Например, общее переполнение буфера или SQL-инъекция. Сквозное SSH-шифрование будет шифровать данные прикладного уровня.
SSH Tunneling — отличный инструмент в наборе инструментов администратора Linux для достижения цели. Однако, как администратор, мы хотим изучить возможность блокировки доступа менее привилегированных пользователей, имеющих доступ к SSH-туннелированию.
Примечание по безопасности администратора. Ограничение SSH-туннелирования — это то, что требует обдумывания со стороны администратора. Оценка того, зачем пользователям нужен SSH Tunneling; какие пользователи нуждаются в туннелировании; наряду с практической вероятностью риска и наихудшим воздействием.
Это сложная тема, выходящая за рамки учебника начального уровня. Исследование на эту тему рекомендуется для тех, кто хочет достичь высших эшелонов администрирования CentOS Linux.
Используйте SSH Tunnel для удаленного X-Windows
Дизайн X-Windows в Linux действительно аккуратный по сравнению с Windows. Если мы хотим управлять удаленным Linux-модулем из другого Linux-модуля, мы можем воспользоваться механизмами, встроенными в X.
X-Windows (часто называемая просто «X») предоставляет механизм для отображения окон приложений, происходящих из одного блока Linux, в часть отображения X на другом блоке Linux. Таким образом, через SSH мы можем запросить пересылку приложения X-Windows на дисплей другого Linux-бокса по всему миру!
Чтобы запустить приложение X удаленно через ssh-туннель, нам просто нужно запустить одну команду —
Синтаксис — ssh -X [пользователь] @ [хост], и на хосте должен быть запущен ssh с действительным пользователем.
Ниже приведен скриншот GIMP, работающего на рабочей станции Ubuntu через удаленный туннель XWindows ssh.
Довольно просто запускать приложения удаленно с другого сервера Linux или рабочей станции. Также можно запустить весь сеанс X и получить всю рабочую среду удаленно несколькими способами.
Безголовые программные пакеты, такие как NX
Конфигурирование альтернативных дисплеев и рабочих столов в X и менеджерах рабочего стола, таких как Gnome или KDE
Этот метод чаще всего используется для безголовых серверов без физического отображения и действительно выходит за рамки начального уровня промежуточного уровня. Тем не менее, полезно знать о доступных вариантах.