WSL: что такое и как использовать подсистему Windows для Linux

  Дмитрий Бушуев  | 

Шифрование диска

BitLocker Device Encryption — это инструмент Microsoft для шифрования диска полностью, он встроен в Windows 10 Pro и Enterprise.

У BitLocker есть несколько недостатков:

  • Если BitLocker Device Encryption не был предварительно установлен на вашем компьютере, установка и настройка могут вызвать трудности. На сайте Microsoft есть список устройств с предустановленным Bitlocker;
  • На разных устройствах функции Bitlocker могут отличаться, все зависит от вашей материнской платы;
  • Как упоминалось ранее, BitLocker работает только с Windows 10 Professional и Enterprise.

Есть альтернатива – программа VeraCrypt, у которой нет таких недостатков:

  • Установить VeraCrypt значительно проще, чем BitLocker;
  • VeraCrypt не зависит от комплектующих вашего компьютера;
  • VeraCrypt работает на любой версии Windows 10.

VeraCrypt — это бесплатная программа с открытым исходным кодом (FOSS). Не вдаваясь в спор как «открытый исходный код против закрытого исходного кода», с нашей точки зрения, программное обеспечение FOSS обычно считается более безопасным. Кроме того, оно бесплатно. После установки VeraCrypt нужно будет просто вводить пароль при каждом запуске компьютера.

Учитывая все это, в следующем пункте мы расскажем, как установить VeraCrypt.

Шифрование трафика в Linux, методика обхода блокировок

Есть много способов обхода блокировки сайтов и обеспечения приватности в сети. Такие термины, как TOR, VPN, прокси, у всех на слуху. Чтобы подключить и настроить их, не требуется специальных знаний, но существуют и более изящные решения. Сегодня я расскажу о методике обхода блокировок в Linux с маскировкой трафика и покажу несколько скриптов для автоматизации этого. Их можно без труда перенести на Raspberry Pi, чтобы сделать умный маршрутизатор.

Эта статья не является руководством. Она написана исключительно с целью ознакомить вас с некоторыми функциональными возможностями маршрутизации в системах не несут никакой ответственности за результат использования описанных здесь методов и приемов.

Linux предоставляет огромный набор функций для маршрутизации и инструментов ее конфигурирования. Опытные сисадмины знают об этом и используют арсенал Linux на полную катушку. Но и многие даже продвинутые пользователи не догадываются, сколько удобства могут принести все эти замечательные возможности. Сегодня мы создадим таблицы маршрутизации и опишем правила прохода по ним, а также автоматизируем администрирование этих таблиц. Итак, наши творческие планы:

  • определимся с тем, что нам требуется: установим необходимые пакеты и разберемся, зачем они нужны;
  • изучим общий принцип работы связки;
  • настроим защищенный канал VPN с использованием OpenVPN + stunnel;
  • составим списки адресов и опишем области их применения;
  • создадим скрипт для быстрого добавления домена или IP-адреса в списки IPSet с добавлением в таблицу маршрутизации и включением в правила перенаправления;
  • используем SSH для предоставления безопасного канала связи в эти ваши интернеты.
  • Шифрование трафика в Linux

    Что нам понадобится, чтобы все работало, и желательно — комфортно? Само собой, iptables, куда же без него. Еще iproute2, он и позволит нам насоздавать кучу таблиц. IPSet потребуется для того, чтобы не городить огород из множества правил iptables.

    Что есть что

    • iptables — утилита командной строки. Базовое средство управления работой файрвола для ядер Linux.
    • iproute2 — набор утилит для управления параметрами сетевых устройств в ядре Linux.
    • IPSet — инструмент для работы со списками IP-адресов и сетевых портов в сетевом фильтре. Формирует список в специальном формате для передачи файрволу.
    • stunnel — инструмент организации шифрованных соединений для клиентов или серверов, которые не поддерживают TLS или SSL. Stunnel перехватывает незашифрованные данные, которые должны были отправиться в сеть, и шифрует их. Программа работает как в Unix-системах, так и в Windows. В качестве шифрования использует OpenSSL для реализации базового протокола TLS и SSL.
    • OpenVPN — VPN-сервер с поддержкой шифрования библиотекой OpenSSL. Клиентские части доступны практически на всех платформах. Умеет работать через прокси типа Socks, HTTP, через NAT и сетевые фильтры.

    Про все эти утилиты можно отыскать много информации в интернете, причем с примерами настроек в самых разных вариантах. Мы станем использовать iptables для маркировки пакетов. У нас будут два варианта настройки. Первый — когда машина, на которой выполняется обход, сама подключена к VPN. Второй вариант — когда в сети находится узел (виртуалка, Raspberry Pi или любой другой хост с Linux), играющий роль маршрутизатора. Далее мы разберем эти варианты чуть подробнее.

    Коротко о двух вариантах

    Клиент и сервер будут устанавливать зашифрованный канал связи по 443-му порту (stunnel) и передавать внутри OpenVPN по 995-му порту. Снаружи это должно выглядеть как обычный HTTPS.

Шифрование трафика в LinuxИллюстрация работы stunnel + OpenVPN

Шифрование трафика в Linux, методика обхода блокировок

И вот тут можно реализовать две схемы подключения.

Вариант 1. На клиентской машине iptables будет маркировать пакеты неким флагом, если адреса в пакетах и списках IPSet совпадут, и передавать их для маршрутизации.

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

Вариант 2. В качестве клиента выступит хост в локальной сети (виртуалка, Raspberry Pi или какое-нибудь другое устройство). Он будет указан в качестве основного шлюза на компьютерах, с которых нужен доступ к ресурсам через VPN. Получив запрос для IP-адреса из списка, шлюз включит NAT и отправит такой трафик в VPN. Остальной трафик будет маршрутизироваться до шлюза по умолчанию без NAT.

Для Linux-систем мы можем оставить шлюз по умолчанию и установить у себя IPSet и iproute2, а потом настроить их аналогично настройкам «промежуточного» хоста-маршрутизатора. В этом случае на уровне клиента будет отбираться трафик по тому же списку IPSet. То есть то, что в списке, будет отправляться на промежуточный хост-маршрутизатор и далее в VPN. Остальное будет маршрутизироваться по умолчанию.

Симметричное шифрование файлов в OpenSSL

Данный вид шифрования выполняется командой enc. Кстати она также задействуется при создании ключей, если выбрано их шифрование — это шифрование выполняется с помощью enc.

Для шифрования используется команда следующего вида:

openssl enc -ШИФР -in ДЛЯ-ШИФРОВАНИЯ -out ЗАШИФРОВАНЫЕ-ДАННЫЕ

Для расшифровки похожая команда, но с опцией -d, также ЗАШИФРОВАНЫЕ-ДАННЫЕ теперь являются входными, а на выходе РАСШИФРОВАННЫЕ-ДАННЫЕ:

openssl enc -ШИФР -d -in ЗАШИФРОВАНЫЕ-ДАННЫЕ -out РАСШИФРОВАННЫЕ-ДАННЫЕ

В качестве ШИФРА рекомендуют aes-256-cbc, а полный список шифров вы можете посмотреть командой:

openssl enc -list

Ещё настоятельно рекомендуется использовать опцию -iter ЧИСЛО. Она использует указанное ЧИСЛО итераций для пароля при получении ключа шифрования. Высокие значения увеличивают время, необходимое для взлома пароля брут-форсом зашифрованного файла. Эта опция включает использование алгоритма PBKDF2 для получения ключа. Указывать можно большие значения — десятки и сотни тысяч.

Пример шифрования файла шифром aes-256-cbc, зашифрованные данные будут помещены в файл с именем , при получении ключа шифрования используется десять миллионов итераций (на моём железе выполнение команды заняло несколько секунд):

openssl enc -aes-256-cbc -in -out -iter 10000000

Введите, а затем подтвердите пароль для шифрования:

В результате будет создан зашифрованный файл .

Для расшифровки файла и сохранения данных в файл :

openssl enc -aes-256-cbc -d -in -out -iter 10000000

Если файл успешно расшифрован, то не будет выведена никакая дополнительная информация.

В случае неудачной расшифровки будет показано примерно следующее:

bad decrypt 140381536523584:error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt:crypto/evp/evp_enc.c:583:

Возможные причины ошибки:

  • неверный пароль
  • неверный алгоритм для расшифровки
  • неправильно указано количество итераций с опцией -iter
  • неверно указан файл для расшифровки

Обратите внимание, что для расшифровки также нужно указать опцию -iter с тем же самым значением, которое было указано при шифровании. Конечно, можно не использовать опцию -iter при шифровании (а, следовательно, и при расшифровке), но в этом случае шифрование считается ненадёжным! Не рекомендуется пропускать опцию. Если у вас слабое железо ИЛИ если файл будет расшифровываться на слабом железе, то вам необязательно использовать такие большие значения -iter — укажите хотя бы десятки или сотни тысяч (например, полмиллиона).

Предыдущие команды для шифрования и расшифровки могут запускаться чуть иначе:

openssl ШИФР

Например:

openssl aes-256-cbc -in -out -iter 10000000

То есть пропускается слово enc, и перед шифром убирается дефис. Обе команды равнозначны.

Зашифрованный файл представляет собой бинарные данные, которые не получится передать, например, в текстовом сообщении (в чате). Используя опцию -a (или её псевдоним -base64), можно закодировать зашифрованные данные в кодировку Base64:

openssl enc -aes-256-cbc -in -out -iter 10000000 -a

Содержимое полученного файла можно открыть любым текстовым редактором и переслать в мессенджере или в чате.

Для расшифровки также нужно указать опцию -a:

openssl enc -aes-256-cbc -d -in -out -iter 10000000 -a

Чтобы просто закодировать бинарный файл в кодировку base64:

openssl enc -base64 -in -out

Чтобы раскодировать этот файл:

openssl enc -base64 -d -in -out

Чтобы зашифровать файл используя указанный ПАРОЛЬ в команде (не интерактивный режим):

openssl enc -aes128 -pbkdf2 -d -in -out -pass pass:ПАРОЛЬ

Зашифровать файл, затем закодировать его с помощью base64 (например, его можно отправить по почте), используя AES-256 в режиме CTR и с получением производной ключа PBKDF2:

openssl enc -aes-256-ctr -pbkdf2 -a -in -out

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

openssl enc -aes-256-ctr -pbkdf2 -d -a -in -out -pass file:<ФАЙЛ-С-ПАРОЛЕМ>

Кому не стоит переходить на Linux

Есть три весомых причины не переходить на Linux и остаться на “винде”.

Во-первых, если вы играете в топовые игры. Только крутые современные проекты могут удержать вас на Windows, поиграть в популярные сетевые игры вроде CS:GO, Dota 2, Team Fortress 2 или War Thunder можно и на Linux. Есть для бесплатной ОС как порты так и официально выходящие версии многих стратегий, симуляторов, аркад и экшенов.

Если игры для вас не самое главное и вы не против сыграть во что-то 2-5 летней давности, то можно смело переходить на Linux.

Во-вторых, если вы используете специализированное ПО, которые работает только под Windows. Всевозможные узконаправленные приложения, бухгалтерские или управленческие программы, ПО для взаимодействия с банками хоть и устанавливаются на Linux с определенными костылями, рисковать стабильностью рабочих инструментов вряд ли кто-то захочет.

Кому не стоит переходить на Linux

Не радостная ситуация и с распространенным программным обеспечением для профессионалов. То же Photoshop или Pixelmator на Linux заменить практически не чем. Лучший из графических редакторов GIMP имеет довольно скромные возможности, остается только пытаться запустить нужное приложение через среду WINE.

В-третьих, если вы используете редкое оборудование. Подавляющее большинство компонентов компьютера без труда подружатся с Linux и будут работать без проблем. Однако, специфические графические планшеты, карты нелинейного монтажа или сложная аудиоаппаратура, с большой долей вероятности, просто на заведутся.

Если же вы используете популярные модели железа, ситуацию исправят несколько команд в терминале.

Во всех остальных случаях можете смело качать дистрибутив Linux и пробовать.

[D] Зачистка — уничтожение нешифрованных данных

Удалите свои личные файлы так полностью, что «даже Бог не может их прочитать», по словам представителя Южной Каролины Трей Гауди.

Как обычно существуют разные «мифы и легенды», о восстановлении данных после их удаления с жесткого диска. Если вы верите в киберколдоство, или являетесь прихожанином Dr web сообщества и никогда не пробовали восстановление данных после их удаления/перезаписи (например, восстановление с помощью R-studio), тогда предложенный способ вряд ли вам подойдет, пользуйтесь тем, чем вам ближе.

Универсальный способ очистки: софт для Windows/Linux свободное GUI ПО форматируем раздел, данные на котором нужно уничтожить (с помощью Gparted), запускаем BleachBit, выбираем «Очистка свободного пространства» – выбираем раздел (ваш sdaX с прошлой копией GNU/Linux), запустится процесс зачистки. После успешного переноса GNU/Linux на зашифрованный раздел, старую копию необходимо удалить без возможности восстановления данных. так работает только в теории, если вы форматировали диск и чистили в ПО BB v2. BleachBit — протирает диск в один проход — это то, что «нам нужно», Но! 0.

BB протирает диск, оставляя метаданные, имена файлов при ликвидации данных сохраняются (Ccleaner — не оставляет метаданных). Внимание!

И миф о возможности восстановления данных является не совсем мифом.

Bleachbit бывший пакет unstable OS Debian (и любой другой подобный софт: sfill; wipe-Nautilus -тоже были замечены в этом грязном деле ) на самом деле имел критическую ошибку: функция «свободная очистка пространства» работает некорректно на HDD/Флэшках (ntfs/ext4). ПО подобного рода при очистке свободного места перезаписывают не весь диск, как многие пользователи думают. И некоторые (много) удаленные данные ОС/ПО считают эти данные неудаленными/пользовательскими и при очистке «ОСП» пропускают эти файлы. Проблема в том, что после такой, долгой по времени, очистки диска «удаленные файлы» можно восстановить даже через 3+ прохода протирания GNU/Linux в Bleachbit надежно работают функции безвозвратного удаления файлов и каталогов, но не очистка свободного пространства. Для сравнения: на Windows в ПО CCleaner функция «ОСП для ntfs» работает исправно, и Бог действительно не сможет прочитать удаленные данные.

В GNU/Linux над этой проблемой (удаление удаленных файлов) вам необходимо получить практику самостоятельно (удаление данных+самостоятельная попытка их восстановления и не стоит полагаться на версию ПО (если не закладка, то баг)), только в таком случае вы сможете понять механизм этой проблемы и избавиться от удаленных данных окончательно. И так, чтобы основательно удалить «компрометирующие» старые нешифрованные данные, необходим прямой доступ Bleachbit к этим данным, далее, воспользоваться функцией «удаление файлов/каталогов безвозвратно».Для удаления «удаленных файлов штатными средствами ОС» в Windows используйте CCleaner/BB с функцией «ОСП».

0 не проверял, возможно, проблему уже поправили. Bleachbit v3.

На этом шаге «зачистка диска» завершена.

Tails

Любимый инструмент проекта Tor

   Анонимизация соединений при помощи Tor

   Может использоваться с зашифрованного USB-носителя

   Firefox дополнен плагинами конфиденциальности

Tails (сокр. от «The Amnesic Incognito Live System») — это live-дистрибутив Linux (ранее известный как Incognito) на базе Debian, который, вместе с ранее упомянутой Qubes OS, считается одним из самых продвинутых дистрибутивов в области обеспечения безопасности. Он может быть запущен с DVD-диска или USB-флешки в live-режиме, поэтому вам не нужно беспокоиться о том, что на компьютере есть вирусы, потому что Tails работает независимо от другой операционной системы и никогда не использует жесткий диск. Без Tails почти всё, что вы делаете, может оставить следы на компьютере:

   сайты, которые вы посещали, даже в приватном режиме;

   файлы, которые вы открывали, даже если вы их удалили;

   пароли, даже если вы используете менеджер паролей;

   все устройства и сети Wi-Fi, которые вы использовали.

Tails же никогда ничего не записывает на жесткий диск и работает только из памяти компьютера. Когда вы завершите работу с Tails и захотите выключить компьютер, то его память автоматически полностью очистится, стирая за собой все возможные оставленные вами следы.

Tails

Все соединения маршрутизируются через анонимную сеть Tor, которая скрывает ваше местоположение. Приложения в Tails также были тщательно отобраны для повышения вашей конфиденциальности, например:

   KeePassX — менеджер паролей;

   Paperkey — утилита командной строки, используемая для экспорта и последующей печати на бумаге секретных ключей OpenPGP;

   Claws Mail — почтовый клиент, шифрующий ваши письма;

   Electrum — биткоин-кошелек;

   LUKS — специальная программа для шифрования дисков;

   GnuPG — утилита шифрования информации (файлов и текстов);

   Aircrack-ng — программа для аудита беспроводных сетей и другие утилиты.

Существует также небольшое количество приложений для повседневной работы, такие как: почтовый клиент Mozilla Thunderbird, графический редактор GIMP, аудиоредактор Audacity и офисный пакет LibreOffice.

Как активировать Bash в Windows 10

Процесс использования Linux из Windows 10 в основном разделен на две части. Первым из них является активация подсистемы Linux для Windows. Для этого в разделе поиска Windows 10 мы должны искать » Компоненты Windows », Чтобы открыть инструмент, который позволяет нам включать или отключать расширенные системные инструменты и сервисы.

В появившемся новом окне нам нужно будет активировать два поля. Первый будет Hyper-V, , чтобы активировать гипервизор Windows 10, а второй будет Подсистема Windows для Linux .

Как активировать Bash в Windows 10

Мы принимаем изменения, перезагружаем ПК по запросу, и когда компьютер снова запускается, он будет готов к запуску Linux. При желании мы можем сделать то же самое, выполнив следующую команду в окне PowerShell с разрешениями администратора:

/online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

И с появлением WSL2 мы также можем активировать эту консоль с помощью простой команды CMD:

Как активировать Bash в Windows 10

wsl —install

Скачать Linux на Windows 10

У нас уже активирован WSL, но на данный момент он бесполезен. Чтобы начать использовать его, нам нужно загрузить дистрибутив, который мы хотим установить в нашей Windows 10. Хотя понемногу появляется больше дистрибутивов, адаптированных к этой подсистеме, количество доступных альтернатив все еще довольно ограничено. И не стоит скачивать их с какого-либо сайта, но мы должны загрузить их из Магазинов Microsoft.

Как активировать Bash в Windows 10

Мы можем найти все дистрибутивы для WSL из Microsoft Store, набрав «Linux» в браузере магазина.

Основные распределения, которые мы можем найти, следующие.

Мы загружаем нужный дистрибутив из магазина и устанавливаем его в Windows 10. Он будет готов начать использовать его. Но прежде всего мы собираемся убедиться, что мы используем версию 2 WSL, чтобы иметь возможность пользоваться ее преимуществами. Мы можем сделать это, открыв окно PowerShell с разрешениями Администратора и выполнив следующую команду, изменив «distro» на имя загруженного нами дистрибутива.

Как активировать Bash в Windows 10

wsl —set-version distro 2

Если мы не знаем название дистрибутива, мы можем увидеть все те, которые мы установили с помощью команды:

wsl —list —quiet

Как активировать Bash в Windows 10

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

Первое использование

При первом открытии дистрибутива запускается автоматический процесс установки и настройки , Этот процесс не займет много времени, и в какой-то момент он попросит нас указать имя пользователя и пароль что мы хотим дать это.

Как активировать Bash в Windows 10

После этой начальной конфигурации наш Linux внутри Windows 10 будет готов к его использованию. Но прежде всего мы должны обнови это. Мы можем сделать это легко, как обновить Linux на реальном компьютере или виртуальной машине. Достаточно будет выполнить:

sudo apt update && sudo apt upgrade

Как активировать Bash в Windows 10

Виртуальные файловые системы: EncFS, Aufs, NFS и ZFS

Если пользователю необходимо решить задачи, которые не требуют непременного наличия ФС в ядре, применяется модуль FUSE (filesystem in userspace). Он создает ФС в пространстве пользователя. Виртуальные ФС, как правило, поддерживают шифрование и сетевое администрирование. Сегодня на рынке существует целый спектр виртуальных ФС для ряда задач:

  • EncFS — шифрует файлы, а затем выполняет сохранение зашифрованных файлов в необходимую пользователю директорию.
  • Aufs (AnotherUnionFS) — объединяет несколько ФС (то же самое может делать с папками) в одну.
  • NFS (Network Filesystem) — выполняет монтирование ФС удаленно.
  • ZFS (Zettabyte File System) — ФС, созданная для ОС Solaris. Главные плюсы: отсутствие фрагментации, управление снапшотами и пулами хранения, изменяющийся размер блоков. Используется посредством FUSE.

Simple DNSCrypt для Windows

Для Windows также можно использовать Simple DNSCrypt — инструмент для настройки шифрования DNSCrypt на компьютерах Windows с помощью простого в использовании интерфейса.

Simple DNSCrypt позволяет настраивать прокси-сервер DNSCrypt (dnscrypt-proxy) на компьютерах Windows с помощью дружественного и удобного приложения.

Работа с конфиденциальной информацией на компьютере предполагает применение эффективных мер безопасности для защиты ваших документов.

Так как один из наиболее удобных способов для повышения общего уровня безопасности заключается в использовании специализированного ПО, Вы можете положиться на Simple DNSCrypt для получения желаемых результатов.

Обратите внимание, что для корректной работы приложения требуется Интернет-подключение.

Как это работает в «Андроиде»?

В Android вы также включаете шифрование в приложении «Настройки». Его местоположение варьируется, в зависимости от модели устройства и его версии. Найдите вариант с именем Encrypt Device или Encrypt Phone и коснитесь его. Если на вашем Android-устройстве установлена ​​SD-карта, вы также должны увидеть, что опция ее защиты шифрует это внешнее хранилище.

Для использования шифрования требуется ввести пароль, который будет требоваться при перезапуске или включении устройства, но для разблокировки из спящего режима.

Это означает, что вы также должны установить пароль разблокировки для вашего девайса Android. Вы можете сделать это в приложении «Настройки». Для этого нажмите «Безопасность» или эквивалентный параметр, затем выберите «Блокировка экрана» или эквивалентную опцию. Затем выберите ПИН-код, Пароль или Отпечатки пальцев (если ваше устройство поддерживает такой идентификатор) и настройте свой пароль. Обязательно установите время блокировки, в течение которого устройство может простаивать до того, как потребуется пароль. Найдите параметр Automatically Lock или что-то подобное, находящийся в разделе «Безопасность» приложения «Настройки».

В стандартном приложении настроек Android 6 Marshmallow нажмите «Безопасность» на главном экране, затем «Зашифровать телефон» и следуйте дальнейшим инструкциям. На устройствах Samsung в приложении 5 Android Lollipop нажмите «Заблокировать экран и безопасность», затем «Другие параметры безопасности», после этого — «Зашифровать устройство».

Читайте также:  Как редактировать текстовые файлы в Linux