
Guia próprio atualizado para criptografia de disco completo no RuNet V0.2.
Estratégia de caubói:
[A] блочное системное шифрование Windows 7 установленной системы;
[B] блочное системное шифрование GNU/Linux (Debian) sistema instalado (incluindo /inicialização);
[C] Configuração GRUB2, proteção de bootloader com assinatura/autenticação/hashing digital;
[D] remoção – destruição de dados não criptografados;
[E] backup universal de sistema operacional criptografado;
[F] ataque <no item [C6]> alvo - bootloader GRUB2;
[G]documentação útil.
╭───Esquema da #sala 40# :
├──╼ Windows 7 установленная — шифрование полное системное, не скрытое;
├──╼ GNU/Linux установленная (Debian и производные дистрибутивы) — criptografia completa do sistema, não oculta(/, incluindo /boot; troca);
├──╼ bootloaders independentes: o bootloader VeraCrypt está instalado no MBR, o bootloader GRUB2 está instalado na partição estendida;
├──╼não é necessária instalação/reinstalação do sistema operacional;
└──╼software criptográfico utilizado: VeraCrypt; Configuração de criptografia; GnuPG; Cavalo marinho; Hash profundo; GRUB2 é gratuito/gratuito.
Вышеописанная схема частично решает проблему «выносной boot на флэшку», позволяет наслаждаться зашифрованными OS Windows/Linux и обмениваться данными по «зашифрованному каналу» из одной ОС в другую.
Ordem de inicialização do PC (uma das opções):
- ligar a máquina;
- carregando o bootloader VeraCrypt (верный ввод пароля продолжит загрузку Windows 7);
- pressionar a tecla "Esc" carregará o bootloader GRUB2;
- Carregador de inicialização GRUB2 (выбор дистрибутива/ GNU/Linux/CLI), exigirá autenticação do superusuário GRUB2 <login/senha>;
- após autenticação bem-sucedida e seleção da distribuição, você precisará inserir uma senha para desbloquear “/boot/initrd.img”;
- depois de inserir senhas sem erros, o GRUB2 "exigirá" uma entrada de senha (третьего по счету, пароль BIOS или пароль учётки пользователя GNU/Linux – not consider) для разблокирования и загрузки ОС GNU/Linux, или автоматическая подстановка секретного ключа (duas senhas + chave ou senha + chave);
- внешнее вторжение в конфигурацию GRUB2 заморозит процесс загрузки GNU/Linux.
Problemático? Ok, vamos automatizar os processos.
Ao particionar um disco rígido (tabela MBR) Um PC não pode ter mais de 4 partições principais, ou 3 principais e uma estendida, bem como uma área não alocada. Uma seção estendida, diferentemente da principal, pode conter subseções (unidades lógicas=partição estendida). Em outras palavras, a “partição estendida” no HDD substitui o LVM para a tarefa em questão: criptografia completa do sistema. Se o seu disco estiver dividido em 4 partições principais, você precisará usar lvm ou transformar (com formatação) seção do principal ao avançado, ou use sabiamente todas as quatro seções e deixe tudo como está, obtendo o resultado desejado. Mesmo se você tiver uma partição em seu disco, o Gparted irá ajudá-lo a particionar seu HDD (para seções adicionais) sem perda de dados, mas ainda com uma pequena penalidade por tais ações.
O esquema de layout do disco rígido, em relação ao qual todo o artigo será verbalizado, é apresentado na tabela a seguir.

Tabela (nº 1) de partições de 1 TB.
Você deveria ter algo semelhante também.
sda1 - partição principal nº 1 NTFS (criptografado);
sda2 - marcador de seção estendida;
sda6 - disco lógico (tem o bootloader GRUB2 instalado);
sda8 - swap (arquivo de troca criptografado/nem sempre);
sda9 - teste de disco lógico;
sda5 - disco lógico para curiosos;
sda7 — ОС GNU/Linux (перенесенная ОС на зашифрованный логический диск);
sda3 — главный раздел №2 с ОС Windows 7 (criptografado);
sda4 - seção principal nº 3 (в нем располагалось незашифрованная GNU/Linux, используется под бэкап/не всегда).
[А] Блочное системное шифрование Windows 7
A1. VeraCrypt
Carregando de , ou do espelho versão de instalação do software criptográfico VeraCrypt (no momento da publicação do artigo v1.24-Update3, a versão portátil do VeraCrypt não é adequada para criptografia do sistema). Verifique a soma de verificação do software baixado
$ Certutil -hashfile "C:VeraCrypt Setup 1.24.exe" SHA256
e compare o resultado com o CS postado no site do desenvolvedor VeraCrypt.
Se o software HashTab estiver instalado, é ainda mais fácil: RMB (Configuração VeraCrypt 1.24.exe)-properties - soma hash de arquivos.
Para verificar a assinatura do programa, o software e a chave pgp pública do desenvolvedor devem estar instalados no sistema ; .
A2. Instalando/executando o software VeraCrypt com direitos de administrador
A3. Selecionando parâmetros de criptografia do sistema para a partição ativaVeraCrypt – Система – Зашифровать системный раздел/диск – Обычный – Зашифровать системный раздел Windows – Мультизагрузка – (aviso: “Usuários inexperientes não são recomendados a usar este método” e isso é verdade, concordamos “Sim”) – Disco de inicialização (“sim”, mesmo que não, ainda assim “sim”) – Число системных дисков «2 и более» – Несколько систем на одном диске «Да» – Не Windows загрузчик «Нет» (na verdade, “Sim”, mas os carregadores de inicialização VeraCrypt/GRUB2 não compartilharão o MBR entre si; mais precisamente, apenas a menor parte do código do carregador de inicialização é armazenada na trilha de inicialização/MBR, a parte principal dele é localizado no sistema de arquivos) – Inicialização múltipla – Configurações de criptografia…
Se você se desviar das etapas acima (bloquear esquemas de criptografia do sistema), o VeraCrypt emitirá um aviso e não permitirá que você criptografe a partição.
Na próxima etapa em direção à proteção de dados direcionada, realize um “teste” e selecione um algoritmo de criptografia. Se você tiver uma CPU desatualizada, provavelmente o algoritmo de criptografia mais rápido será o Twofish. Se a CPU for poderosa, você notará a diferença: a criptografia AES, de acordo com os resultados dos testes, será várias vezes mais rápida que seus concorrentes criptográficos. AES é um algoritmo de criptografia popular; o hardware das CPUs modernas é especialmente otimizado tanto para “secreto” quanto para “hacking”.
VeraCrypt suporta a capacidade de criptografar discos em uma cascata AES(Dois peixes)/e outras combinações. Em uma CPU Intel antiga de dez anos atrás (sem suporte de hardware para criptografia em cascata AES, A/T) A diminuição do desempenho é essencialmente imperceptível. (para CPUs AMD da mesma época/~parâmetros, o desempenho é ligeiramente reduzido). O sistema operacional funciona de forma dinâmica e o consumo de recursos para criptografia transparente é invisível. Em contraste, por exemplo, há uma diminuição notável no desempenho devido ao ambiente de desktop de teste instável instalado Mate v1.20.1 (ou v1.20.2 não me lembro exatamente) в GNU/Linux, или из-за работы подпрограммы телеметрии в Windows7↑. Обычно искушенные пользователи до шифрования проводят тесты на производительность железа. Например, в Aida64/Sysbench/systemd-analyze blameи сравнивают с результатами этих же тестов после криптования системы, тем самым, для себя опровергая миф, «системное шифрование — это вредно». Замедление машины и неудобство ощутимо при резервном копировании/восстановлении зашифрованных данных, потому что сама по себе операция «системного резервного копирования данных» измеряется не в мс, и добавляются те самые <расшифровать/зашифровать на лету>. В конечном итоге каждый пользователь, которому разрешено возиться с криптографией, устанавливает баланс алгоритма шифрования относительно удовлетворения поставленных задач, степени своей паранойи и удобством пользования.
É melhor deixar o parâmetro PIM como padrão, para que ao carregar o sistema operacional você não precise inserir os valores exatos da iteração todas as vezes. VeraCrypt usa um grande número de iterações para criar um “hash realmente lento”. Um ataque a um “caracol criptográfico” usando o método de força bruta/tabelas arco-íris só faz sentido com uma senha curta e “simples” e a lista de caracteres pessoais da vítima. O preço a pagar pela força da senha é o atraso na digitação da senha correta ao carregar o sistema operacional. (монтирование томов VeraCrypt в GNU/Linux — существенно быстрее).
Software gratuito para implementação de ataques de força bruta (extraia a senha do cabeçalho do disco VeraCrypt/LUKS) Hashcat. John, o Estripador, não sabe como “quebrar o Veracrypt” e, ao trabalhar com LUKS, não entende a criptografia Twofish.
Devido à força criptográfica dos algoritmos de criptografia, cypherpunks imparáveis estão desenvolvendo software com um vetor de ataque diferente. Por exemplo, extraindo metadados/chaves da RAM (inicialização a frio/ataque de acesso direto à memória), Existem softwares gratuitos e não livres especializados para esses fins.
По окончанию настройки/генерации «уникальных метаданных» шифруемого активного раздела, VeraCrypt предложит перезагрузить ПК и протестировать работоспособность своего загрузчика. После reboot-а/старта Windows, VeraCrypt подгрузится в режиме ожидания, останется лишь подтвердить процесс шифрования — Y.
Na etapa final da criptografia do sistema, o VeraCrypt oferecerá a criação de uma cópia de backup do cabeçalho da partição criptografada ativa na forma de “veracrypt Rescue Disk.iso” - isso deve ser feito - neste software tal operação é um requisito (no LUKS, como requisito - infelizmente é omitido, mas é enfatizado na documentação). O disco de resgate será útil para todos, e para alguns mais de uma vez. Perda (reescrita de cabeçalho/MBR) резервной копии заголовка навсегда лишит доступа к дешифрованному разделу с OS Windows.
A4. Criando um USB/disco de resgate VeraCryptПо умолчанию VeraCrypt предлагает прожечь «метаданные ~2-3мБ» на компакт-диск, но не у всех людей есть диски или приводы DWD-ROM-ы, а создание загрузочной флэшки «VeraCrypt Rescue disk» для кого-то окажется техническим сюрпризом: Rufus/GUIdd-ROSA ImageWriter и другой подобный софт — не смогут справиться с поставленной задачей, потому что помимо копирования смещенных метаданных на загрузочную флэшку, нужно из образа сделать copy/paste за пределами файловой системы usb-накопителя, короче, правильно скопировать MBR/дорожу на брелок. Из-под ОС GNU/Linux создать загрузочную флэшку, можно воспользовавшись утилитой «dd», глядя на эту табличку.

Создание спасательного диска в среде Windows — иначе. Разработчик VeraCrypt не включил решение этой задачки в официальную по «rescue disk», но предложил решение другим путем: выложил дополнительное ПО по созданию «usb rescue disk» в свободный доступ, на своем форуме VeraCrypt. Архивариус этого ПО для Windows – «создание usb veracrypt rescue disk». После сохранения rescue disk.iso начнется процесс блочного системного шифрования активного раздела. Во время шифрования работа ОС не останавливается, перезагрузка ПК не требуется. По завершению операции криптования, активный раздел становится полностью зашифрованным, можно пользоваться. Если при запуске ПК не появляется загрузчик VeraCrypt, и не помогает операция восстановления заголовка, то проверьте флаг «boot», он должен быть установлен на раздел, где присутствует Windows (independentemente da criptografia e outro sistema operacional, consulte a tabela nº 1).
На этом описание блочного системного шифрования с ОС Windows закончено.
[B] LUKS. Шифрование GNU/Linux (~Debian) sistema operacional instalado. Algoritmo e etapas
Для того чтобы зашифровать установленный Debian/производный дистрибутив, требуется сопоставить подготовленный раздел с виртуальным блочным устройством, перенести на сопоставленный диск GNU/Linux, и установить/настроить GRUB2. Если у вас не голый сервер, и вы дорожите своим временем, то пользоваться необходимо GUI, а большинство терминальных команд, описанных ниже, подразумевается водить в «режиме Чак-Норрис».
B1. Загрузка ПК с live usb GNU/Linux
“Conduza um teste criptográfico para desempenho de hardware”
lscpu && сryptsetup benchmark 
Se você for o feliz proprietário de um carro potente com suporte de hardware AES, os números serão parecidos com o lado direito do terminal; se você for um feliz proprietário, mas com hardware antigo, os números serão parecidos com o lado esquerdo.
B2. Particionamento de disco. montagem / formatação de disco lógico fs HDD para Ext4 (Gparted)
B2.1. Criando um cabeçalho de partição sda7 criptografadoDescreverei os nomes das partições, aqui e mais adiante, de acordo com minha tabela de partições postada acima. De acordo com o layout do seu disco, você deve substituir os nomes das partições.
Mapeamento de criptografia de unidade lógica (/dev/sda7 > /dev/mapper/sda7_crypt).
#Fácil criação de uma “partição LUKS-AES-XTS”
cryptsetup -v -y luksFormat /dev/sda7Opções:
* luksFormat - inicialização do cabeçalho LUKS;
* -y -passphrase (não chave/arquivo);
* -v -verbalização (exibição de informações no terminal);
* /dev/sda7 – seu disco lógico da partição estendida (туда, куда планируется перенос/шифрование GNU/Linux).
Algoritmo de criptografia padrão <LUKS1: aes-xts-plain64, Chave: 256 bits, hash de cabeçalho LUKS: sha256, RNG: /dev/urandom> (depende da versão do cryptsetup).
#Проверка default-алгоритма шифрования
cryptsetup --help #самая последняя строка в выводе терминала.Se não houver suporte de hardware para AES na CPU, a melhor escolha seria criar uma “partição LUKS-Twofish-XTS” estendida.
B2.2. Criação avançada de “partição LUKS-Twofish-XTS”
cryptsetup luksFormat /dev/sda7 -v -y -c twofish-xts-plain64 -s 512 -h sha512 -i 1500 --use-urandom Opções:
* luksFormat - inicialização do cabeçalho LUKS;
* /dev/sda7 é o seu futuro disco lógico criptografado;
* -v verbalização;
* -y senha;
* -c selecione algoritmo de criptografia de dados;
* -s tamanho da chave de criptografia;
* -h algoritmo de hash/função criptográfica, RNG usado (--use-urandom) para gerar uma chave de criptografia/descriptografia exclusiva para o cabeçalho do disco lógico, uma chave de cabeçalho secundária (XTS); uma chave mestra exclusiva armazenada no cabeçalho do disco criptografado, uma chave XTS secundária, todos esses metadados e uma rotina de criptografia que, usando a chave mestra e a chave XTS secundária, criptografa/descriptografa quaisquer dados na partição (exceto título da seção) armazenado em aproximadamente 3 MB na partição do disco rígido selecionada.
* -i iterações em milissegundos, em vez de "quantidade" (o atraso no processamento da senha afeta o carregamento do sistema operacional e a força criptográfica das chaves). Para manter um equilíbrio de força criptográfica, com uma senha simples como “Russo” você precisa aumentar o valor -(i); com uma senha complexa como “?8dƱob/øfh” o valor pode ser diminuído.
* —use-urandom gerador de números aleatórios, gera chaves e salt.
Após mapear a seção sda7 > sda7_crypt (a operação é rápida, pois um cabeçalho criptografado é criado com aproximadamente 3 MB de metadados e isso é tudo), será necessário formatar e montar o sistema de arquivos sda7_crypt.
B2.3. Comparação
cryptsetup open /dev/sda7 sda7_crypt
#выполнение данной команды запрашивает ввод секретной парольной фразы.
opções:
* abrir - corresponde à seção “com nome”;
* /dev/sda7 -disco lógico;
* sda7_crypt – mapeamento de nome usado para montar a partição criptografada ou inicializá-la quando o sistema operacional inicializa.
B2.4. Formatando o sistema de arquivos sda7_crypt para ext4. Montando um disco no sistema operacional(Nota: você não poderá trabalhar com uma partição criptografada no Gparted)
#форматирование блочного шифрованного устройства
mkfs.ext4 -v -L DebSHIFR /dev/mapper/sda7_crypt
opções:
* -v -verbalização;
* -L - rótulo da unidade (que é exibido no Explorer entre outras unidades).
Em seguida, você deve montar o dispositivo de bloco criptografado virtual /dev/sda7_crypt no sistema
mount /dev/mapper/sda7_crypt /mntTrabalhar com arquivos na pasta /mnt criptografará/descriptografará automaticamente os dados em sda7.
É mais conveniente mapear e montar a partição no Explorer (GUI nautilus/caja), a partição já estará na lista de seleção de disco, tudo o que resta é inserir a senha para abrir/descriptografar o disco. O nome correspondente será selecionado automaticamente e não “sda7_crypt”, mas algo como /dev/mapper/Luks-xx-xx...
B2.5. Backup do cabeçalho do disco (cerca de 3 MB de metadados)Um dos mais importante operações que precisam ser feitas sem demora - uma cópia de backup do cabeçalho “sda7_crypt”. Se você substituir/danificar o cabeçalho (por exemplo, instalando GRUB2 na partição sda7, etc.), os dados criptografados serão completamente perdidos sem qualquer possibilidade de recuperá-los, pois será impossível gerar novamente as mesmas chaves; as chaves são criadas de forma única.
#Бэкап заголовка раздела
cryptsetup luksHeaderBackup --header-backup-file ~/Бэкап_DebSHIFR /dev/sda7
#Восстановление заголовка раздела
cryptsetup luksHeaderRestore --header-backup-file <file> <device> opções:
* luksHeaderBackup — comando header-backup-file -backup;
* luksHeaderRestore —comando header-backup-file -restore;
* ~/Backup_DebSHIFR – arquivo de backup;
* /dev/sda7 - partição cuja cópia de backup do cabeçalho de disco criptografado deve ser salva.
Nesta etapa, a <criação e edição da partição criptografada> está concluída.
B3. Перенос ОС GNU/Linux (sda4) para uma partição criptografada (sda7)
Crie uma pasta /mnt2 (Nota - ainda estamos trabalhando com live usb, sda7_crypt está montado em /mnt), и монтируем наш GNU/Linux в /mnt2, который необходимо зашифровать.
mkdir /mnt2
mount /dev/sda4 /mnt2
Realizamos a transferência correta do sistema operacional usando o software Rsync
rsync -avlxhHX --progress /mnt2/ /mntAs opções de Rsync estão descritas no parágrafo E1.
Além disso, necessário desfragmentar uma partição de disco lógico
e4defrag -c /mnt/ #после проверки, e4defrag выдаст, что степень дефрагментации раздела~"0", это заблуждение, которое может вам стоить существенной потери производительности!
e4defrag /mnt/ #проводим дефрагментацию шифрованной GNU/Linux Estabeleça uma regra: faça e4defrag no GNU/LInux criptografado de vez em quando se você tiver um HDD.
Перенос и синхронизация [GNU/Linux > GNU/Linux-зашифрованная] на этом шаге закончены.
В4. Настройка GNU/Linux на зашифрованном разделе sda7
После успешного переноса ОС /dev/sda4 > /dev/sda7 необходимо войти в GNU/Linux на зашифрованном разделе, и осуществить дальнейшую настройку (sem reiniciar o PC) em relação a um sistema criptografado. Ou seja, esteja em live usb, mas execute comandos “relativos à raiz do sistema operacional criptografado”. “chroot” irá simular uma situação semelhante. Para receber rapidamente informações sobre qual sistema operacional você está trabalhando atualmente (criptografado ou não, pois os dados em sda4 e sda7 estão sincronizados), dessincronize o sistema operacional. Crie em diretórios raiz (sda4/sda7_crypt) arquivos de marcadores vazios, por exemplo, /mnt/encryptedOS e /mnt2/decryptedOS. Verifique rapidamente em qual sistema operacional você está (inclusive para o futuro):
ls /<Tab-Tab>B4.1. “Simulação de login em um sistema operacional criptografado”
mount --bind /dev /mnt/dev
mount --bind /proc /mnt/proc
mount --bind /sys /mnt/sys
chroot /mnt
B4.2. Verificando se o trabalho é realizado em um sistema criptografado
ls /mnt<Tab-Tab>
#и видим файл "/шифрованнаяОС"
history
#в выводе терминала должна появиться история команд su рабочей ОС.B4.3. Criando/configurando swap criptografado, editando crypttab/fstabComo o arquivo de troca é formatado toda vez que o sistema operacional é iniciado, não faz sentido criar e mapear a troca para um disco lógico agora e digitar comandos como no parágrafo B2.2. Para Swap, suas próprias chaves de criptografia temporárias serão geradas automaticamente a cada inicialização. Ciclo de vida das chaves swap: desmontagem/desmontagem da partição swap (+limpeza de RAM); ou reinicie o sistema operacional. Configurando swap, abrindo o arquivo responsável pela configuração dos dispositivos criptografados em bloco (análogo a um arquivo fstab, mas responsável pela criptografia).
nano /etc/crypttab nós editamos
#"nome do destino" "dispositivo de origem" "arquivo de chave" "opções"
troca /dev/sda8 /dev/urandom troca,cipher=twofish-xts-plain64,size=512,hash=sha512
Opções
* swap - nome mapeado ao criptografar /dev/mapper/swap.
* /dev/sda8 - use sua partição lógica para swap.
* /dev/urandom - gerador de chaves de criptografia aleatórias para swap (a cada nova inicialização do sistema operacional, novas chaves são criadas). O gerador /dev/urandom é menos aleatório que /dev/random, afinal /dev/random é usado ao trabalhar em circunstâncias paranóicas perigosas. Ao carregar o sistema operacional, /dev/random retarda o carregamento por vários ± minutos (veja análise do systemd).
* swap,cipher=twofish-xts-plain64,size=512,hash=sha512: -a partição sabe que é swap e está formatada “de acordo”; Algoritmo de criptografia.
#Открываем и правим fstab
nano /etc/fstab
nós editamos
# swap estava em / dev / sda8 durante a instalação
/dev/mapper/swap nenhum swap sw 0 0
/dev/mapper/swap é o nome que foi definido no crypttab.
Troca criptografada alternativa
Se por algum motivo você não quiser desistir de uma partição inteira por um arquivo de troca, você pode seguir um caminho alternativo e melhor: criar um arquivo de troca em um arquivo em uma partição criptografada com o sistema operacional.
fallocate -l 3G /swap #создание файла размером 3Гб (почти мгновенная операция)
chmod 600 /swap #настройка прав
mkswap /swap #из файла создаём файл подкачки
swapon /swap #включаем наш swap
free -m #проверяем, что файл подкачки активирован и работает
printf "/swap none swap sw 0 0" >> /etc/fstab #при необходимости после перезагрузки swap будет постоянныйA configuração da partição swap está concluída.
B4.4. Настройка зашифрованной GNU/Linux (правка файлов crypttab/fstab)O arquivo /etc/crypttab, conforme escrito acima, descreve dispositivos de bloco criptografados que são configurados durante a inicialização do sistema.
#правим /etc/crypttab
nano /etc/crypttab
se você correspondeu à seção sda7>sda7_crypt como no parágrafo B2.1
# "nome do destino" "dispositivo de origem" "arquivo de chave" "opções"
sda7_crypt UUID=81048598-5bb9-4a53-af92-f3f9e709e2f2 none luks
se você correspondeu à seção sda7>sda7_crypt como no parágrafo B2.2
# "nome do destino" "dispositivo de origem" "arquivo de chave" "opções"
sda7_crypt UUID=81048598-5bb9-4a53-af92-f3f9e709e2f2 none cipher=twofish-xts-plain64,size=512,hash=sha512
se você correspondeu à seção sda7>sda7_crypt como no parágrafo B2.1 ou B2.2, mas não deseja inserir novamente a senha para desbloquear e inicializar o sistema operacional, então em vez da senha você pode substituir uma chave secreta/arquivo aleatório
# "nome do destino" "dispositivo de origem" "arquivo de chave" "opções"
sda7_crypt UUID=81048598-5bb9-4a53-af92-f3f9e709e2f2 /etc/skey luks
descrição
* nenhum - informa que ao carregar o sistema operacional, é necessário inserir uma senha secreta para desbloquear o root.
* UUID - identificador de partição. Para descobrir seu ID, digite no terminal (lembre-se de que, a partir de agora, você estará trabalhando em um terminal em um ambiente chroot, e não em outro terminal USB ativo).
fdisk -l #проверка всех разделов
blkid #должно быть что-то подобное
/dev/sda7: UUID=«81048598-5bb9-4a53-af92-f3f9e709e2f2» TYPE=«crypto_LUKS» PARTUUID=«0332d73c-07»
/dev/mapper/sda7_crypt: LABEL=«DebSHIFR» UUID=«382111a2-f993-403c-aa2e-292b5eac4780» TYPE=«ext4»
esta linha é visível ao solicitar blkid do terminal USB ativo com sda7_crypt montado).
Você pega o UUID do seu sdaX (não sdaX_crypt!, UUID sdaX_crypt - será deixado automaticamente ao gerar a configuração grub.cfg).
* cipher=twofish-xts-plain64,size=512,hash=sha512 -luks criptografia no modo avançado.
* /etc/skey - arquivo de chave secreta, que é inserido automaticamente para desbloquear a inicialização do sistema operacional (em vez de inserir a terceira senha). Você pode especificar qualquer arquivo de até 8 MB, mas os dados serão lidos <1 MB.
#Создание "генерация" случайного файла <секретного ключа> размером 691б.
head -c 691 /dev/urandom > /etc/skey
#Добавление секретного ключа (691б) в 7-й слот заголовка luks
cryptsetup luksAddKey --key-slot 7 /dev/sda7 /etc/skey#Проверка слотов "пароли/ключи luks-раздела"
cryptsetup luksDump /dev/sda7
Vai parecer algo assim:
(faça você mesmo e veja por si mesmo).
cryptsetup luksKillSlot /dev/sda7 7 #удаление ключа/пароля из 7 слота/etc/fstab contém informações descritivas sobre vários sistemas de arquivos.
#Правим /etc/fstab
nano /etc/fstab
# "sistema de arquivos" "ponto de montagem" "tipo" "opções" "dump" "passar"
# / estava em / dev / sda7 durante a instalação
/dev/mapper/sda7_crypt / erros ext4=remount-ro 0 1
opção
* /dev/mapper/sda7_crypt - o nome do mapeamento sda7>sda7_crypt, que é especificado no arquivo /etc/crypttab.
A configuração do crypttab/fstab está concluída.
B4.5. Editando arquivos de configuração. Momento chaveB4.5.1. Editando a configuração /etc/initramfs-tools/conf.d/resume
#Если у вас ранее был активирован swap раздел, отключите его.
nano /etc/initramfs-tools/conf.d/resume
e comente (se existir) "#" linha "currículo". O arquivo deve estar completamente vazio.
B4.5.2. Editando a configuração /etc/initramfs-tools/conf.d/cryptsetup
nano /etc/initramfs-tools/conf.d/cryptsetupdeve combinar
# /etc/initramfs-tools/conf.d/cryptsetup
CRYPTSETUP=sim
exportar CRYPTSETUP
B4.5.3. Editando a configuração do /etc/default/grub (esta configuração é responsável pela capacidade de gerar grub.cfg ao trabalhar com /boot criptografado)
nano /etc/default/grub adicione a linha “GRUB_ENABLE_CRYPTODISK=y”
valor 'y', grub-mkconfig e grub-install verificarão unidades criptografadas e gerarão comandos adicionais necessários para acessá-los no momento da inicialização (insmods ).
deve haver uma semelhança
GRUB_DEFAULT = 0
GRUB_TIMEOUT = 1
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="acpi_backlight=fornecedor"
GRUB_CMDLINE_LINUX = "quiet splash noautomount"
GRUB_ENABLE_CRYPTODISK=y
B4.5.4. Editando a configuração /etc/cryptsetup-initramfs/conf-hook
nano /etc/cryptsetup-initramfs/conf-hook verifique se a linha comentou <#>.
No futuro (e mesmo agora este parâmetro não terá nenhum significado, mas às vezes interfere na atualização da imagem initrd.img).
B4.5.5. Editando a configuração /etc/cryptsetup-initramfs/conf-hook
nano /etc/cryptsetup-initramfs/conf-hookadicionar
KEYFILE_PATTERN=”/etc/skey”
UMASK=0077
Isto irá empacotar a chave secreta "skey" em initrd.img, a chave é necessária para desbloquear a raiz quando o sistema operacional inicializa (caso não queira digitar a senha novamente, a chave “skey” é substituída pelo carro).
B4.6. Atualizar /boot/initrd.img [versão]Para empacotar a chave secreta em initrd.img e aplicar correções de cryptsetup, atualize a imagem
update-initramfs -u -k all ao atualizar initrd.img (como dizem “É possível, mas não é certo”) aparecerão avisos relacionados ao cryptsetup ou, por exemplo, uma notificação sobre a perda de módulos Nvidia - isso é normal. Após atualizar o arquivo, verifique se ele realmente foi atualizado, veja a hora (em relação ao ambiente chroot./boot/initrd.img). Atenção! antes de [update-initramfs -u -k all] certifique-se de verificar se o cryptsetup está aberto /dev/sda7 sda7_crypt - este é o nome que aparece em /etc/crypttab, caso contrário, após a reinicialização, ocorrerá um erro de busybox)
Nesta etapa, a configuração dos arquivos de configuração está concluída.
[C] Instalando e configurando GRUB2/Proteção
C1. Se necessário, formate a partição dedicada para o bootloader (uma partição precisa de pelo menos 20 MB)
mkfs.ext4 -v -L GRUB2 /dev/sda6C2. Monte /dev/sda6 em /mntEntão trabalhamos em chroot, então não haverá diretório /mnt2 na raiz e a pasta /mnt estará vazia.
monte a partição GRUB2
mount /dev/sda6 /mntSe você tiver uma versão mais antiga do GRUB2 instalada, no diretório /mnt/boot/grub/i-386-pc (outra plataforma é possível, por exemplo, não “i386-pc”) sem módulos criptográficos (resumindo, a pasta deve conter módulos, incluindo estes .mod: cryptodisk; luks; gcry_twofish; gcry_sha512; subscription_test.mod), neste caso, o GRUB2 precisa ser agitado.
apt-get update
apt-get install grub2
Importante! Ao atualizar o pacote GRUB2 do repositório, quando questionado “sobre como escolher” onde instalar o bootloader, você deve recusar a instalação (motivo - tentativa de instalar o GRUB2 - em “MBR” ou em live usb). Caso contrário, você danificará o cabeçalho/carregador do VeraCrypt. Após atualizar os pacotes GRUB2 e cancelar a instalação, o carregador de boot deve ser instalado manualmente no disco lógico e não no MBR. Se o seu repositório tiver uma versão desatualizada do GRUB2, tente é do site oficial - não verifiquei (funcionou com os bootloaders GRUB 2.02 ~BetaX mais recentes).
C3. Instalando GRUB2 em uma partição estendida [sda6]Você deve ter uma partição montada [item C.2]
grub-install --force --root-directory=/mnt /dev/sda6 opções
* —force - instalação do bootloader, ignorando todos os avisos que quase sempre existem e bloqueando a instalação (sinalizador obrigatório).
* --root-directory - instalação do diretório para a raiz do sda6.
* /dev/sda6 - sua partição sdaХ (não perca o <espaço> entre /mnt /dev/sda6).
C4. Criando um arquivo de configuração [grub.cfg]Esqueça o comando "update-grub2" e use o comando completo de geração de arquivo de configuração
grub-mkconfig -o /mnt/boot/grub/grub.cfg após concluir a geração/atualização do arquivo grub.cfg, o terminal de saída deve conter linha(s) com o sistema operacional encontrado no disco («grub-mkconfig» возможно найдет и подхватит ОС с live usb, если у вас мультизагрузочная флэшка с Windows 10 и кучей живых дистрибутивов — это нормально). Se o terminal estiver “vazio” e o arquivo “grub.cfg” não for gerado, então este é o mesmo caso quando há bugs GRUB no sistema (e provavelmente o carregador do branch de teste do repositório), reinstale o GRUB2 de fontes confiáveis.
A instalação da "configuração simples" e a configuração do GRUB2 estão concluídas.
C5. Proof-test зашифрованной ОС GNU/LinuxКорректное завершаем криптомиссию. Аккуратно покидаем зашифрованную GNU/Linux (sair do ambiente chroot).
umount -a #размонтирование всех смонтированных разделов шифрованной GNU/Linux
Ctrl+d #выход из среды chroot
umount /mnt/dev
umount /mnt/proc
umount /mnt/sys
umount -a #размонтирование всех смонтированных разделов на live usb
reboot Após reiniciar o PC, o bootloader VeraCrypt deve carregar.

*Ввод пароля для активного раздела — начнется загрузка ОС Windows.
*Нажатие клавиши «Esc» передаст управление GRUB2, при выборе зашифрованной GNU/Linux – потребуется пароль (sda7_crypt) для разблокировки /boot/initrd.img (если grub2 пишет uuid «не найден» — это проблема загрузчика grub2, его следует переустановить, например, с тестовой ветки/стабильный и пд).

*Dependendo de como você configurou o sistema (ver parágrafo B4.4/4.5), após inserir a senha correta para desbloquear a imagem /boot/initrd.img, você precisará de uma senha para carregar o kernel/root do SO, ou o segredo a chave será automaticamente substituída por "skey", eliminando a necessidade de inserir novamente a senha.

(tela “substituição automática de chave secreta”).
*Далее понесется знакомый процесс загрузки GNU/Linux с аутентификацией учетки пользователя.

*Após autorização do usuário e login no sistema operacional, você precisa atualizar /boot/initrd.img novamente (ver B4.6).
update-initramfs -u -k allE no caso de linhas extras no menu GRUB2 (da captação OS-m com live usb) livrar-se deles
mount /dev/sda6 /mnt
grub-mkconfig -o /mnt/boot/grub/grub.cfg
Краткий итог по системному шифрованию GNU/Linux:
- GNU /Linuxinux зашифрован полностью, включая /boot/kernel and initrd;
- a chave secreta está empacotada em initrd.img;
- esquema de autorização atual (ввод пароля на разблокировку initrd; пароль/ключ на загрузку ОС; пароль авторизации учетки Linux).
A criptografia do sistema "Configuração simples do GRUB2" da partição do bloco está concluída.
C6. Configuração avançada do GRUB2. Proteção de bootloader com assinatura digital + proteção de autenticaçãoGNU /Linux зашифрован полностью, но загрузчик шифровать нельзя – такое условие продиктовано BIOS. По этой причине цепочная зашифрованная загрузка GRUB2 невозможна, но возможна/доступна простая цепочная загрузка, с точки зрения защиты – не нужно [см. П. F].
Para o GRUB2 “vulnerável”, os desenvolvedores implementaram um algoritmo de proteção do bootloader de “assinatura/autenticação”.
- Quando o bootloader é protegido por “sua própria assinatura digital”, a modificação externa de arquivos ou uma tentativa de carregar módulos adicionais neste bootloader fará com que o processo de inicialização seja bloqueado.
- Ao proteger o bootloader com autenticação, para selecionar o carregamento de uma distribuição ou inserir comandos adicionais na CLI, você precisará inserir o login e a senha do superusuário GRUB2.
C6.1. Proteção de autenticação do bootloaderVerifique se você está trabalhando em um terminal em um sistema operacional criptografado
ls /<Tab-Tab> #обнаружить файл-маркерcrie uma senha de superusuário para autorização no GRUB2
grub-mkpasswd-pbkdf2 #введите/повторите пароль суперпользователя. Obtenha o hash da senha. Algo assim
grub.pbkdf2.sha512.10000.DE10E42B01BB6FEEE46250FC5F9C3756894A8476A7F7661A9FFE9D6CC4D0A168898B98C34EBA210F46FC10985CE28277D0563F74E108FCE3ACBD52B26F8BA04D.27625A4D30E4F1044962D3DD1C2E493EF511C01366909767C3AF9A005E81F4BFC33372B9C041BE9BA904D7C6BB141DE48722ED17D2DF9C560170821F033BCFD8
monte a partição GRUB
mount /dev/sda6 /mnt edite a configuração
nano -$ /mnt/boot/grub/grub.cfg verifique na pesquisa de arquivos se não há sinalizadores em nenhum lugar em “grub.cfg” (“-unrestricted” “-user”,
adicione no final (antes da linha ### END /etc/grub.d/41_custom ###)
"definir superusuários = "root"
hash raiz password_pbkdf2."
Deveria ser algo assim
# Este arquivo fornece uma maneira fácil de adicionar entradas de menu personalizadas. Basta digitar o
# entradas de menu que você deseja adicionar após este comentário. Tenha cuidado para não mudar
# a linha 'exec tail' acima.
### END /etc/grub.d/40_custom ###### COMEÇAR /etc/grub.d/41_custom ###
if [ -f ${diretório_config}/custom.cfg]; então
fonte ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f $prefix/custom.cfg ]; então
fonte $prefixo/custom.cfg;
fi
definir superusuários = "root"
password_pbkdf2 root grub.pbkdf2.sha512.10000.DE10E42B01BB6FEEE46250FC5F9C3756894A8476A7F7661A9FFE9D6CC4D0A168898B98C34EBA210F46FC10985CE28277D0563F74E108FCE3ACBD52B26F8BA04D.27625A4D30E4F1044962D3DD1C2E493EF511C01366909767C3AF9A005E81F4BFC33372B9C041BE9BA904D7C6BB141DE48722ED17D2DF9C560170821F033BCFD8
### END /etc/grub.d/41_custom ###
#
Se você costuma usar o comando “grub-mkconfig -o /mnt/boot/grub/grub.cfg” e não deseja fazer alterações no grub.cfg todas as vezes, insira as linhas acima (Senha de login) no script do usuário GRUB na parte inferior
nano /etc/grub.d/41_custom gato <<EOF
definir superusuários = "root"
password_pbkdf2 root grub.pbkdf2.sha512.10000.DE10E42B01BB6FEEE46250FC5F9C3756894A8476A7F7661A9FFE9D6CC4D0A168898B98C34EBA210F46FC10985CE28277D0563F74E108FCE3ACBD52B26F8BA04D.27625A4D30E4F1044962D3DD1C2E493EF511C01366909767C3AF9A005E81F4BFC33372B9C041BE9BA904D7C6BB141DE48722ED17D2DF9C560170821F033BCFD8
EOF
Ao gerar a configuração “grub-mkconfig -o /mnt/boot/grub/grub.cfg”, as linhas responsáveis pela autenticação serão adicionadas automaticamente ao grub.cfg.
Esta etapa conclui a configuração da autenticação GRUB2.
C6.2. Proteção de bootloader com assinatura digitalPresume-se que você já tenha sua chave de criptografia pgp pessoal (ou crie essa chave). O sistema deverá possuir software criptográfico instalado: gnuPG; Cleópatra/GPA; Cavalo marinho. O software Crypto tornará sua vida muito mais fácil em todos esses assuntos. Seahorse - versão estável do pacote 3.14.0 (versões superiores, por exemplo, V3.20, estão com defeito e apresentam bugs significativos).
A chave PGP precisa ser gerada/iniciada/adicionada apenas no ambiente su!
Gerar chave de criptografia pessoal
gpg - -gen-keyExporte sua chave
gpg --export -o ~/perskeyMonte o disco lógico no sistema operacional se ainda não estiver montado
mount /dev/sda6 /mnt #sda6 – раздел GRUB2limpe a partição GRUB2
rm -rf /mnt/Instale o GRUB2 no sda6, colocando sua chave privada na imagem principal do GRUB “core.img”
grub-install --force --modules="gcry_sha256 gcry_sha512 signature_test gcry_dsa gcry_rsa" -k ~/perskey --root-directory=/mnt /dev/sda6 opções
* --force - instala o bootloader, ignorando todos os avisos que sempre existem (sinalizador obrigatório).
* —modules="gcry_sha256 gcry_sha512 subscription_test gcry_dsa gcry_rsa" - instrui o GRUB2 a pré-carregar os módulos necessários quando o PC for inicializado.
* -k ~/perskey -caminho para a “chave PGP” (depois de colocar a chave na imagem, ela pode ser excluída).
* --root-directory -define o diretório de inicialização para a raiz do sda6
/dev/sda6 - sua partição sdaX.
Gerando/atualizando grub.cfg
grub-mkconfig -o /mnt/boot/grub/grub.cfgAdicione a linha “trust /boot/grub/perskey” ao final do arquivo “grub.cfg” (forçar o uso da chave pgp.) Como instalamos o GRUB2 com um conjunto de módulos, incluindo o módulo de assinatura “signature_test.mod”, isso elimina a necessidade de adicionar comandos como “set check_signatures=enforce” à configuração.
Deveria ser algo assim (linhas finais no arquivo grub.cfg)
### COMEÇAR /etc/grub.d/41_custom ###
if [ -f ${diretório_config}/custom.cfg]; então
fonte ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f $prefix/custom.cfg ]; então
fonte $prefixo/custom.cfg;
fi
confiar em /boot/grub/perskey
definir superusuários = "root"
password_pbkdf2 root grub.pbkdf2.sha512.10000.DE10E42B01BB6FEEE46250FC5F9C3756894A8476A7F7661A9FFE9D6CC4D0A168898B98C34EBA210F46FC10985CE28277D0563F74E108FCE3ACBD52B26F8BA04D.27625A4D30E4F1044962D3DD1C2E493EF511C01366909767C3AF9A005E81F4BFC33372B9C041BE9BA904D7C6BB141DE48722ED17D2DF9C560170821F033BCFD8
### END /etc/grub.d/41_custom ###
#
O caminho para “/boot/grub/perskey” não precisa ser apontado para uma partição de disco específica, por exemplo hd0,6; para o próprio bootloader, “root” é o caminho padrão da partição na qual o GRUB2 está instalado (veja definir podridão=..).
Assinando GRUB2 (todos os arquivos em todos os diretórios /GRUB) com sua chave “perskey”.
Uma solução simples sobre como assinar (para explorador nautilus/caja): instale a extensão “seahorse” para Explorer do repositório. Sua chave deve ser adicionada ao ambiente su.
Abra o Explorer com sudo “/mnt/boot” – RMB – sinal. Na tela fica assim

A chave em si é “/mnt/boot/grub/perskey” (copiar para o diretório grub) também deve ser assinado com sua própria assinatura. Verifique se as assinaturas do arquivo [*.sig] aparecem no diretório/subdiretórios.
Usando o método descrito acima, assine “/boot” (nosso kernel, initrd). Se o seu tempo vale alguma coisa, esse método elimina a necessidade de escrever um script bash para assinar “muitos arquivos”.
Para remover todas as assinaturas do bootloader (se algo deu errado)
rm -f $(find /mnt/boot/grub -type f -name '*.sig')Para não assinar o bootloader após atualizar o sistema, congelamos todos os pacotes de atualização relacionados ao GRUB2.
apt-mark hold grub-common grub-pc grub-pc-bin grub2 grub2-commonNesta etapa <proteger bootloader com assinatura digital> a configuração avançada do GRUB2 é concluída.
C6.3. Teste de prova do bootloader GRUB2, protegido por assinatura digital e autenticaçãoGRUB2. При выборе какого-либо дистрибутива GNU/Linux или вход в CLI (linha de comando) Será necessária autorização de superusuário. Depois de inserir o nome de usuário/senha corretos, você precisará da senha do initrd

Captura de tela da autenticação bem-sucedida do superusuário GRUB2.
Se você adulterar qualquer um dos arquivos GRUB2/fazer alterações no grub.cfg, ou excluir o arquivo/assinatura, ou carregar um module.mod malicioso, um aviso correspondente aparecerá. GRUB2 pausará o carregamento.

Captura de tela, uma tentativa de interferir no GRUB2 “de fora”.
Durante a inicialização "normal" "sem intrusão", o status do código de saída do sistema é "0". Portanto, não se sabe se a proteção funciona ou não (ou seja, “com ou sem proteção de assinatura do bootloader” durante o carregamento normal, o status é o mesmo “0” - isso é ruim).
Como verificar a proteção da assinatura digital?
Uma maneira inconveniente de verificar: falsificar/remover um módulo usado pelo GRUB2, por exemplo, remover a assinatura luks.mod.sig e obter um erro.
A maneira correta: vá para a CLI do bootloader e digite o comando
trust_list Em resposta, você deverá receber uma impressão digital “perskey”; se o status for “0”, então a proteção de assinatura não funciona, verifique novamente o parágrafo C6.2.
Nesta etapa, a configuração avançada “Protegendo o GRUB2 com assinatura digital e autenticação” é concluída.
C7 Método alternativo de proteção do bootloader GRUB2 usando hashO método "Proteção/Autenticação do carregador de inicialização da CPU" descrito acima é um clássico. Devido às imperfeições do GRUB2, em condições paranóicas ele é suscetível a um ataque real, que darei a seguir no parágrafo [F]. Além disso, após atualizar o sistema operacional/kernel, o bootloader deve ser assinado novamente.
Protegendo o bootloader GRUB2 usando hash
Vantagens sobre os clássicos:
- Maior nível de confiabilidade (o hash/verificação ocorre apenas a partir de um recurso local criptografado. Toda a partição alocada no GRUB2 é controlada para quaisquer alterações e todo o resto é criptografado; no esquema clássico com proteção/autenticação do carregador de CPU, apenas os arquivos são controlados, mas não gratuitos espaço, no qual “algo” algo sinistro” pode ser adicionado).
- Registro criptografado (um log criptografado pessoal legível é adicionado ao esquema).
- velocidade (a proteção/verificação de uma partição inteira alocada para GRUB2 ocorre quase instantaneamente).
- Automação de todos os processos criptográficos.
Desvantagens sobre os clássicos.
- Falsificação de assinatura (teoricamente, é possível encontrar uma determinada colisão de função hash).
- Aumento do nível de dificuldade (по сравнению с классикой требуется чуть больше навыков владения в ОС GNU/Linux).
Como funciona a ideia de hashing GRUB2/partição
A partição GRUB2 é “assinada”; quando o sistema operacional é inicializado, a partição do carregador de boot é verificada quanto à imutabilidade, seguida pelo login em um ambiente seguro (criptografado). Se o bootloader ou sua partição estiver comprometido, além do log de intrusão, será iniciado o seguinte:
Coisa.
Uma verificação semelhante ocorre quatro vezes ao dia, o que não carrega recursos do sistema.
Usando o comando “-$ check_GRUB”, uma verificação instantânea ocorre a qualquer momento sem registro, mas com saída de informações para a CLI.
Usando o comando “-$ sudo subscription_GRUB”, o carregador/partição de boot GRUB2 é instantaneamente assinado novamente e seu log atualizado (necessário após a atualização do sistema operacional/inicialização) e a vida continua.
Implementação de um método hash para o bootloader e sua seção
0) Vamos assinar o bootloader/partição GRUB montando-o primeiro em /media/username
-$ hashdeep -c md5 -r /media/username/GRUB > /podpis.txt1) Criamos um script sem extensão na raiz do sistema operacional criptografado ~/podpis, aplicamos a ele os direitos de segurança 744 necessários e proteção infalível.
Preenchendo seu conteúdo
#!/bin/bash
#Проверка всего раздела выделенного под загрузчик GRUB2 на неизменность.
#Ведется лог "о вторжении/успешной проверке каталога", короче говоря ведется полный лог с тройной вербализацией. Внимание! обратить взор на пути: хранить ЦП GRUB2 только на зашифрованном разделе OS GNU/Linux.
echo -e "******************************************************************n" >> '/var/log/podpis.txt' && date >> '/var/log/podpis.txt' && hashdeep -vvv -a -k '/podpis.txt' -r '/media/username/GRUB' >> '/var/log/podpis.txt'
a=`tail '/var/log/podpis.txt' | grep failed` #не использовать "cat"!!
b="hashdeep: Audit failed"
#Условие: в случае любых каких-либо изменений в разделе выделенном под GRUB2 к полному логу пишется второй отдельный краткий лог "только о вторжении" и выводится на монитор мигание gif-ки "warning".
if [[ "$a" = "$b" ]]
then
echo -e "****n" >> '/var/log/vtorjenie.txt' && echo "vtorjenie" >> '/var/log/vtorjenie.txt' && date >> '/var/log/vtorjenie.txt' & sudo -u username DISPLAY=:0 eom '/warning.gif'
fiExecute o script de su, o hash da partição GRUB e seu bootloader serão verificados, salve o log.
Vamos criar ou copiar, por exemplo, um “arquivo malicioso” [virus.mod] para a partição GRUB2 e executar uma verificação/teste temporário:
-$ hashdeep -vvv -a -k '/podpis.txt' -r '/media/username/GRUBA CLI deve ver uma invasão da nossa -cidadela-#Log cortado na CLI
Ср янв 2 11::41 MSK 2020
/media/username/GRUB/boot/grub/virus.mod: Moved from /media/username/GRUB/1nononoshifr
/media/username/GRUB/boot/grub/i386-pc/mda_text.mod: Ok
/media/username/GRUB/boot/grub/grub.cfg: Ok
hashdeep: Audit failed
Input files examined: 0
Known files expecting: 0
Files matched: 325
Files partially matched: 0
Files moved: 1
New files found: 0
Known files not found: 0 #Como você pode ver, “Arquivos movidos: 1 e auditoria falhou” aparece, o que significa que a verificação falhou.
Devido à natureza da partição que está sendo testada, em vez de “Novos arquivos encontrados” > “Arquivos movidos”
2) Coloque o gif aqui > ~/warning.gif, defina as permissões para 744.
3) Configurando o fstab para montar automaticamente a partição GRUB na inicialização
-$ sudo nano /etc/fstabLABEL=GRUB /media/nomedeusuário/GRUB ext4 padrões 0 0
4) Girando o registro
-$ sudo nano /etc/logrotate.d/podpis /var/log/podpis.txt {
diariamente
girar 50
tamanho 5M
próxima data
comprimir
compressão retardada
diretório antigo /var/log/antigo
}/var/log/vtorjenie.txt {
mensal
girar 5
tamanho 5M
próxima data
diretório antigo /var/log/antigo
}
5) Adicione um trabalho ao cron
-$ sudo crontab -e'/inscrição'
0 */6 * * * '/podpis
6) Criando aliases permanentes
-$ sudo su
-$ echo "alias подпись_GRUB='hashdeep -c md5 -r /media/username/GRUB > /podpis.txt'" >> /root/.bashrc && bash
-$ echo "alias проверка_GRUB='hashdeep -vvv -a -k '/podpis.txt' -r /media/username/GRUB'" >> .bashrc && bash
Após atualização do sistema operacional -$ apt-get upgrade assinar novamente nossa partição GRUB
-$ подпись_GRUB
Neste ponto, a proteção hash da partição GRUB está completa.
[D] Limpeza - destruição de dados não criptografados
Exclua seus arquivos pessoais tão completamente que “nem mesmo Deus possa lê-los”, segundo o porta-voz da Carolina do Sul, Trey Gowdy.
Como sempre, existem vários “mitos e ", sobre como restaurar dados após terem sido excluídos de um disco rígido. Se você acredita em feitiçaria cibernética ou é membro da comunidade Dr web e nunca tentou a recuperação de dados depois de terem sido excluídos/substituídos (por exemplo, recuperação usando R-studio), então é improvável que o método proposto seja adequado para você, use o que estiver mais próximo de você.
После успешного переноса GNU/Linux на зашифрованный раздел, старую копию необходимо удалить без возможности восстановления данных. Универсальный способ очистки: софт для Windows/Linux свободное GUI ПО .
Быстро formatar a seção, cujos dados precisam ser destruídos (via Gparted) inicie o BleachBit, selecione “Limpar espaço livre” - selecione a partição (ваш sdaX с прошлой копией GNU/Linux), o processo de remoção será iniciado. BleachBit - limpa o disco de uma só vez - é disso que “precisamos”, mas! Isso só funciona em teoria se você formatou o disco e o limpou no software BB v2.0.
Atenção! BB limpa o disco, deixando metadados; nomes de arquivos são preservados quando os dados são eliminados (Ccleaner - não deixa metadados).
E o mito sobre a possibilidade de recuperação de dados não é inteiramente um mito.Bleachbit V2.0-2 бывший пакет unstable OS Debian (e qualquer outro software semelhante: sfill; limpe-Nautilus - também foram notados neste negócio sujo) na verdade, tinha um bug crítico: a função de "limpeza de espaço livre" funciona incorretamente em unidades HDD/Flash (ntfs/ext4). Softwares desse tipo, ao liberar espaço livre, não sobrescrevem todo o disco, como muitos usuários pensam. E alguns (Muito de) dados excluídos O SO/software considera esses dados como dados não excluídos/do usuário e, ao limpar o “OSP”, ignora esses arquivos. O problema é que depois de tanto tempo limpar o disco "arquivos excluídos" podem ser recuperados mesmo depois de mais de 3 passagens de limpeza do disco.
На GNU/Linux в Bleachbit 2.0-2 надежно работают функции безвозвратного удаления файлов и каталогов, но не очистка свободного пространства. Для сравнения: на Windows в ПО CCleaner функция «ОСП для ntfs» работает исправно, и Бог действительно не сможет прочитать удаленные данные.
E assim, para remover completamente "comprometedor" dados antigos não criptografados, Bleachbit precisa de acesso direto a esses dados, então, use a função “excluir arquivos/diretórios permanentemente”.
Для удаления «удаленных файлов штатными средствами ОС» в Windows используйте CCleaner/BB с функцией «ОСП». В GNU/Linux над этой проблемой (excluir arquivos excluídos) você precisa praticar sozinho (exclusão de dados + uma tentativa independente de restaurá-los e você não deve confiar na versão do software (se não for um marcador, então um bug)), somente neste caso você será capaz de entender o mecanismo desse problema e se livrar completamente dos dados excluídos.
Não testei o Bleachbit v3.0, o problema pode já ter sido corrigido.
Bleachbit v2.0 funciona honestamente.
Nesta etapa, a limpeza do disco está concluída.
[E] Backup universal de sistema operacional criptografado
Cada usuário tem seu próprio método de backup de dados, mas os dados criptografados do sistema operacional exigem uma abordagem um pouco diferente para a tarefa. Softwares unificados, como Clonezilla e softwares similares, não podem funcionar diretamente com dados criptografados.
Declaração do problema de backup de dispositivos de bloco criptografados:
- универсальность — одинаковый алгоритм/ПО резервного копирования для Windows/Linux;
- возможность работать в консоли с любой live usb GNU/Linux без необходимости дополнительного скачивания ПО (mas ainda recomendo GUI);
- segurança das cópias de segurança - as “imagens” armazenadas devem ser criptografadas/protegidas por senha;
- o tamanho dos dados criptografados deve corresponder ao tamanho dos dados reais que estão sendo copiados;
- extração conveniente dos arquivos necessários de uma cópia de backup (não há necessidade de descriptografar a seção inteira primeiro).
Por exemplo, backup/restauração através do utilitário “dd”
dd if=/dev/sda7 of=/путь/sda7.img bs=7M conv=sync,noerror
dd if=/путь/sda7.img of=/dev/sda7 bs=7M conv=sync,noerrorCorresponde a quase todos os pontos da tarefa, mas de acordo com o ponto 4 não resiste a críticas, pois copia toda a partição do disco, inclusive o espaço livre - não é interessante.
Например, резервная копия GNU/Linux через архиватор [tar» | gpg] удобно, но для бэкапа Windows нужно искать другое решение — не интересно.
E1. Универсальное резервное копирование Windows/Linux. Связка rsync (Grsync)+VeraCrypt томAlgoritmo para criar uma cópia de backup:
- criando um contêiner criptografado (volume/arquivo) VeraCrypt para sistema operacional;
- transferir/sincronizar o sistema operacional usando o software Rsync para o contêiner criptográfico VeraCrypt;
- se necessário, enviando o volume VeraCrypt para www.
A criação de um contêiner VeraCrypt criptografado tem suas próprias características:
criando um volume dinâmico (доступно создание ДТ только в Windows, использовать можно и в GNU/Linux);
criando um volume regular, mas há a exigência de um “caráter paranóico” (de acordo com o desenvolvedor) – formatação de contêiner.
Динамический том создается практически мгновенно в ОС Windows, но при копировании данных из ОС GNU/Linux > VeraCrypt ДТ, в целом производительность операции резервного копирования снижается существенно.
Um volume Twofish normal de 70 GB é criado (digamos apenas, na potência média do PC) para HDD ~ em meia hora (a substituição dos dados do contêiner anterior em uma única passagem ocorre devido a requisitos de segurança). Из VeraCrypt Windows/Linux убрали функцию быстрого форматирования тома при его создании, поэтому создание контейнера возможно только через «перезапись в один проход», либо создание слабопроизводительного динамического тома.
Crie um volume VeraCrypt regular (não dinâmico/ntfs), não deve haver problemas.
Настраиваем/создаем/открываем контейнер в VeraCrypt GUI> GNU/Linux USB ao vivo (том будет автомонтирован в /media/veracrypt2, том ОС Windows монтирован в /media/veracrypt1). Создаем зашифрованную резервную копию ОС Windows с помощью GUI rsync (grsync)marcando as caixas.

Aguarde a conclusão do processo. Assim que o backup for concluído, teremos um arquivo criptografado.
Аналогично создать резервную копию ОС GNU/Linux, скинув галочку в GUI rsync «совместимость с Windows".
Atenção! контейнер Veracrypt для «бэкапа GNU/Linux» создавать в файловой системе ext4. Se você fizer um backup em um contêiner NTFS, ao restaurar essa cópia, perderá todos os direitos/grupos de todos os seus dados.
Todas as operações podem ser realizadas no terminal. Opções básicas para rsync:
* -g -salvar grupos;
* -P —progress — status do tempo gasto trabalhando no arquivo;
* -H - copia hardlinks como estão;
* -a -modo de arquivo (vários sinalizadores rlptgoD);
* -v -verbalização.
Если хочется монтировать «том Windows VeraCrypt» через консоль в ПО cryptsetup, можно создать alias (su)
echo "alias veramount='cryptsetup open --veracrypt --tcrypt-system --type tcrypt /dev/sdaX Windows_crypt && mount /dev/mapper/ Windows_crypt /media/veracrypt1'" >> .bashrc && bash
Теперь по команде «veramount pictures» появится запрос на ввод парольной фразы, и в ОС-у подмонтируется, зашифрованный системный том Windows.
Mapear/montar o volume do sistema VeraCrypt no comando cryptsetup
cryptsetup open --veracrypt --tcrypt-system --type tcrypt /dev/sdaX Windows_crypt
mount /dev/mapper/Windows_crypt /mntMapear/montar partição/contêiner VeraCrypt no comando cryptsetup
cryptsetup open --veracrypt --type tcrypt /dev/sdaY test_crypt
mount /dev/mapper/test_crypt /mntВместо alias-а добавим (скрипт в автозагрузку) системный том с ОС Windows и логический криптованный диск ntfs в автозагрузку GNU/Linux
Crie um script e salve-o em ~/VeraOpen.sh
printf 'Ym9i' | base64 -d | cryptsetup open --veracrypt --tcrypt-system --type tcrypt /dev/sda3 Windows_crypt && mount /dev/mapper/Windows_crypt /media/Winda7 #декодируем пароль из base64 (bob) и отправляем его на запрос ввода пароля при монтировании системного диска ОС Windows.
printf 'Ym9i' | base64 -d | cryptsetup open --veracrypt --type tcrypt /dev/sda1 ntfscrypt && mount /dev/mapper/ntfscrypt /media/КонтейнерНтфс #аналогично, но монтируем логический диск ntfs.
Distribuímos os direitos “corretos”:
sudo chmod 100 /VeraOpen.shCrie dois arquivos idênticos (mesmo nome!) em /etc/rc.local e ~/etc/init.d/rc.local
Preenchendo os arquivos
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will «exit 0» on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
sh -c "sleep 1 && '/VeraOpen.sh'" #после загрузки ОС, ждём ~ 1с и только потом монтируем диски.
exit 0Distribuímos os direitos “corretos”:
sudo chmod 100 /etc/rc.local && sudo chmod 100 /etc/init.d/rc.local Всё, теперь при загрузке GNU/Linux нам ненадо вводить пароли на монтирование зашифрованных дисков ntfs, диски монтируются автоматом.
Заметка кратко о том, что описано выше в п.E1 по шагам (но теперь для OS GNU/Linux)
1) Создать том в фс ext4 > 4gb (для файла) Linux в Veracrypt [Криптоящик].
2) Reinicie para USB ativo.
3) ~$ cryptsetup open /dev/sda7 Lunux #mapping partição criptografada.
4) ~$ mount /dev/mapper/Linux /mnt #монтирование шифрованного раздела в /mnt.
5) ~$ mkdir mnt2 #criando um diretório para um backup futuro.
6) ~$ cryptsetup open —veracrypt —type tcrypt ~/CryptoBox CryptoBox && mount /dev/mapper/CryptoBox /mnt2 #Mapeie um volume Veracrypt chamado “CryptoBox” e monte o CryptoBox em /mnt2.
7) ~$ rsync -avlxhHX —progress /mnt /mnt2/ #operação de backup de uma partição criptografada para um volume Veracrypt criptografado.
(p/s/ Atenção! Если вы переносите шифрованную GNU/Linux с одной архитектуры/машины на другую, например, Intel > AMD (то есть разворачиваете бэкап с одного шифрованного раздела на другой шифрованный раздел Intel > AMD), não esqueça Depois de transferir o sistema operacional criptografado, edite a chave substituta secreta em vez da senha, talvez. a chave anterior ~/etc/skey - não caberá mais em outra partição criptografada, e não é aconselhável criar uma nova chave “cryptsetup luksAddKey” em chroot - uma falha é possível, apenas em ~/etc/crypttab especifique em vez de “/etc/skey” temporariamente “none” ", após rebotar e fazer login no sistema operacional, recrie sua chave curinga secreta novamente).
Как ветераны IT незабываем отдельно делать бэкапы заголовков зашифрованных разделов ОС Windows/Linux, или шифрование обернется против Вас самих.
Nesta etapa, o backup do sistema operacional criptografado é concluído.
[F] Ataque ao bootloader GRUB2
detalhesSe você protegeu seu bootloader com uma assinatura digital e/ou autenticação (ver ponto C6.), isso não protegerá contra acesso físico. Os dados criptografados ainda estarão inacessíveis, mas a proteção será ignorada (redefinir proteção de assinatura digital) GRUB2 permite que um cibervilão injete seu código no bootloader sem levantar suspeitas (a menos que o usuário monitore manualmente o estado do bootloader ou crie seu próprio código de script arbitrário robusto para grub.cfg).
Algoritmo de ataque. Intruso
* Inicializa o PC a partir do live usb. Qualquer mudança (infrator) arquivos notificarão o verdadeiro proprietário do PC sobre a intrusão no bootloader. Mas uma simples reinstalação do GRUB2 mantendo o grub.cfg (e a capacidade subsequente de editá-lo) permitirá que um invasor edite qualquer arquivo (nesta situação, ao carregar o GRUB2, o usuário real não será notificado. O status é o mesmo <0>)
* Monta uma partição não criptografada, armazena “/mnt/boot/grub/grub.cfg”.
*Reinstala o bootloader (removendo "perskey" da imagem core.img)
grub-install --force --root-directory=/mnt /dev/sda6 * Retorna “grub.cfg” > “/mnt/boot/grub/grub.cfg”, edita se necessário, por exemplo, adicionando seu módulo “keylogger.mod” à pasta com módulos do carregador, em “grub.cfg” > linha "insmod keylogger". Ou, por exemplo, se o inimigo for astuto, depois de reinstalar o GRUB2 (todas as assinaturas permanecem no lugar) ele constrói a imagem principal do GRUB2 usando "grub-mkimage com opção (-c)." A opção “-c” permitirá que você carregue sua configuração antes de carregar o “grub.cfg” principal. A configuração pode consistir em apenas uma linha: redirecionamento para qualquer “modern.cfg”, misturado, por exemplo, com ~400 arquivos (módulos+assinaturas) na pasta "/boot/grub/i386-pc". Nesse caso, um invasor pode inserir código arbitrário e carregar módulos sem afetar “/boot/grub/grub.cfg”, mesmo que o usuário tenha aplicado “hashsum” ao arquivo e o exibido temporariamente na tela.
Um invasor não precisará hackear o login/senha do superusuário GRUB2; ele apenas precisará copiar as linhas (responsável pela autenticação) "/boot/grub/grub.cfg" para o seu "modern.cfg"
definir superusuários = "root"
password_pbkdf2 root grub.pbkdf2.sha512.10000.DE10E42B01BB6FEEE46250FC5F9C3756894A8476A7F7661A9FFE9D6CC4D0A168898B98C34EBA210F46FC10985CE28277D0563F74E108FCE3ACBD52B26F8BA04D.27625A4D30E4F1044962D3DD1C2E493EF511C01366909767C3AF9A005E81F4BFC33372B9C041BE9BA904D7C6BB141DE48722ED17D2DF9C560170821F033BCFD8
E o proprietário do PC ainda será autenticado como superusuário GRUB2.
Carregamento em cadeia (bootloader carrega outro bootloader), como escrevi acima, não faz sentido (destina-se a uma finalidade diferente). O bootloader criptografado não pode ser carregado devido ao BIOS (inicialização em cadeia reinicia GRUB2 > GRUB2 criptografado, erro!). Porém, se você ainda usa a ideia de carregamento em cadeia, pode ter certeza de que é o criptografado que está sendo carregado. (não modernizado) "grub.cfg" da partição criptografada. E isso também é uma falsa sensação de segurança, pois tudo o que está indicado no “grub.cfg” criptografado (carregamento do módulo) soma-se aos módulos que são carregados do GRUB2 não criptografado.
Se você quiser verificar isso, aloque/criptografe outra partição sdaY, copie GRUB2 para ela (a operação grub-install em uma partição criptografada não é possível) e em "grub.cfg" (configuração não criptografada) mudar linhas como estas
menuentry 'GRUBx2' --class parrot --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-382111a2-f993-403c-aa2e-292b5eac4780' {
carregar_vídeo
insmod gzio
se [ x$grub_platform = xxen ]; então insmod xzio; insmod lzopio; fi
insmod part_msdos
disco criptográfico insmod
luxo insmod
insmod gcry_twofish
insmod gcry_twofish
insmod gcry_sha512
insmod ext2
cryptomount -u 15c47d1c4bd34e5289df77bcf60ee838
set root=’cryptouuid/15c47d1c4bd34e5289df77bcf60ee838′
normal /boot/grub/grub.cfg
}
linhas
* insmod - carregando os módulos necessários para trabalhar com um disco criptografado;
* GRUBx2 - nome da linha exibida no menu de boot do GRUB2;
* cryptomount -u 15c47d1c4bd34e5289df77bcf60ee838 -veja. fdisk -l(sda9);
* definir root - instalar root;
* normal /boot/grub/grub.cfg - arquivo de configuração executável em uma partição criptografada.
A confiança de que é o “grub.cfg” criptografado que está carregado é uma resposta positiva à inserção da senha/desbloqueio “sdaY” ao selecionar a linha “GRUBx2” no menu GRUB.
Ao trabalhar na CLI, para não se confundir (e verifique se a variável de ambiente “set root” funcionou), crie arquivos de token vazios, por exemplo, na seção criptografada “/shifr_grub”, na seção não criptografada “/noshifr_grub”. Verificando na CLI
cat /Tab-TabConforme observado acima, isso não ajudará no download de módulos maliciosos se tais módulos acabarem no seu PC. Por exemplo, um keylogger que será capaz de salvar as teclas digitadas em um arquivo e misturá-lo com outros arquivos em “~/i386” até que seja baixado por um invasor com acesso físico ao PC.
A maneira mais fácil de verificar se a proteção de assinatura digital está funcionando ativamente (não redefinido), e ninguém invadiu o bootloader, digite o comando na CLI
list_trusted em resposta recebemos uma cópia do nosso “perskey”, ou não recebemos nada se formos atacados (você também precisa marcar "set check_signatures=enforce").
Uma desvantagem significativa desta etapa é inserir comandos manualmente. Se você adicionar este comando ao “grub.cfg” e proteger a configuração com uma assinatura digital, a saída preliminar do instantâneo da chave na tela terá um tempo muito curto e você poderá não ter tempo de ver a saída após carregar o GRUB2 .
Não há ninguém em particular a quem fazer reivindicações: o desenvolvedor em sua a cláusula 18.2 declara oficialmente
“Observe que mesmo com a proteção por senha do GRUB, o próprio GRUB não pode impedir que alguém com acesso físico à máquina altere a configuração do firmware da máquina (por exemplo, Coreboot ou BIOS) para fazer com que a máquina inicialize a partir de um dispositivo diferente (controlado pelo invasor). GRUB é, na melhor das hipóteses, apenas um elo em uma cadeia de inicialização segura."
GRUB2 — слишком перегружен функциями, которые могут дать чувство ложной безопасности, а его развитие уже опередило по функциональности ОС MS-DOS, а ведь это всего лишь загрузчик. Забавно, что GRUB2 — «завтра» может стать ОС, а загружаемые GNU/Linux виртуальными машинами для него.
Um breve vídeo sobre como redefini a proteção de assinatura digital do GRUB2 e declarei minha intrusão a um usuário real (Eu te assustei, mas em vez do que é mostrado no vídeo, você pode escrever um código arbitrário inofensivo/.mod).

Conclusões:
1) Блочное системное шифрование для Windows — реализовать проще, а защита одним паролем удобнее, чем защита несколькими паролями при блочном системном шифровании GNU/Linux, справедливости ради: последнее автоматизировано.
2) Escrevi o artigo tão relevante e detalhado simples руководство к полнодисковому шифрованию VeraCrypt/LUKS on one home the machine, которое, на сегодняшний день лучшее в рунете (IMHO). В руководстве > 50k знаков поэтому в нём не рассматривались некоторые интересные главы: о криптографах, которые исчезают/держатся в тени; о том, что в разных книжках GNU/Linux мало/не пишут о криптографии; о ст.51 конституции РФ; о /banimento , sobre por que você precisa criptografar “root/boot”. O guia acabou sendo bastante extenso, mas detalhado. (descrevendo até mesmo etapas simples), por sua vez, isso economizará muito tempo quando você chegar à “criptografia real”.
3) Полнодисковое шифрование проводил на Windows 7 64; GNU/Linux Parrot 4x; GNU/Debian 9.0 / 9.5.
4) Implementou um ataque bem-sucedido em sua Carregador de inicialização GRUB2.
5) O tutorial foi criado para ajudar todos os paranóicos do CIS, onde trabalhar com criptografia é permitido em nível legislativo. E principalmente para aqueles que desejam implementar a criptografia completa de disco sem demolir seus sistemas configurados.
6) Reformulei e atualizei meu manual, que é relevante em 2020.
[G] Documentação útil
- (Fevereiro de 2012 RU)
- /usr/share/doc/cryptsetup(-run) [recurso local] (официальная подробная документация по настройке шифрования GNU/Linux с помощью cryptsetup)
- (краткая документация по настройке шифрования GNU/Linux с помощью cryptsetup)
- (documentação do archlinux)
- (página de manual do arco)
- (página de manual do arco)
- .
Метки: полное шифрование диска, шифрование раздела, полнодисковое шифрование Linux, полное системное шифрование LUKS1.
Apenas usuários registrados podem participar da pesquisa. por favor
Você está criptografando?
17,1%Criptografo tudo que posso. Estou paranóico.14
34,2%Eu criptografo apenas dados importantes.28
14,6%Às vezes criptografo, às vezes esqueço.12
34,2%Não, eu não criptografo, é inconveniente e caro.28
82 usuários votaram. 22 usuários se abstiveram.
Fonte: habr.com
