You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

6.8 KiB

+++ title = "Установка Arch Linux с шифрованием и ключом на флешке" date = "2019-11-21T20:22:14+05:00" draft = false tags = ["Arch", "Luks"] categories = [ "Linux" ] description = "" +++

План

  1. Введение
  2. Железо и софт
  3. Установка
  4. Заключение

Введение

Начнем с того что данные должны находиться на шифрованном жестком диске. Это как минимум. Лучше диск должен быть съемным, причем быстро. Хорошо если ключ шифрования имеет большую длину и вводиться без ошибок. Да, нужно иметь 2 ос, одну для работы а вторую для остальных дел. Вторая ос, это Linux которая находится на шифрованном съемном диске, лучше всего SSD. В данное время некоторые ноутбуки все еще оснащаются DVD приводом, так вот его лучше снять и поставить вот такую штуку DVD HDD

Необходимое железо и софт

Все ясно, оборудование которое понадобится

  1. Ноут
  2. Флешка (На нее запилю установочный образ Arch Linux)
  3. Жесткий диск (Arch на шифрованном разделе + /boot на отдельном разделе этого диска)
  4. Карта microSD для записи ключа шифрования
  5. Второй ноут с которого буду ставить все через сеть (Ну лень мне набивать команды вручную, легче копировать через буфер).

Скачиваю образ арча. И программу для записи ее на флешку. Запиливаю образ на флешку. Вставляю в ноут жесткий диск на который ставлю Arch, Флеш-карточку microSD и флешку с установочным образом.

Установка

Гружусь с флешки.

Когда загрузил ноут с флешки

Wifi-menu — Подключаюсь к wi-fi
ping -c4 ya.ru — Проверяю пинг
Ifconfig -a — Смотрю адрес интерфейса
passwd root — Задаю пароль суперпользователя
systemctl start sshd.service — запуск SSH демона    

На другом ноуте подключаюсь к wi-fi и подключаюсь к серверу

ssh root@IP_ADRESS_SERVER

Смотрю все разделы которые определились

fdisk -l
/dev/sda — Флешка образом Arch (с нее ставим Arch Linux)
/dev/sdb — Жесткий диск на который ставлю систему
/dev/sdc — Флешка для хранения ключа

Затру рандомом весь жесткий, да это очень долго так что лучше на ночь закинуть.

shred --verbose --random-source=/dev/urandom --iterations=3 /dev/sdb
cfdisk /dev/sdb

Выбираю DOS

И вот таким образом разбиваю хард

/dev/sdb1 boot 3G
/dev/sdb2      15G

Шифрую жесткий диск

cryptsetup --verbose --cipher aes-xts-plain64 --key-size 512 --hash sha512 --iter-time 5000 --use-random luksFormat /dev/sdb2

Тут небольшое отступление, здесь необходимо сгенерировать хороший стойкий пароль, который лучше закинуть в картинку с помощью стенографии или нацарапать в подвале)))

Подключаю шифрованный раздел

cryptsetup open --type luks /dev/sdb2 cryptroot

Далее форматирую диски.

mkfs.ext2 /dev/sdb1 — /boot раздел
mkfs.ext4 /dev/mapper/cryptroot — /root раздел
mkfs.ext2 /dev/sdc — флешка, на которой находится ключ

Монтирую файловую систему

mount -t ext4 /dev/mapper/cryptroot /mnt
mkdir -p /mnt/boot
mkdir -p /mnt/key
mount -t ext2 /dev/sdb1 /mnt/boot 
mount -t ext2 /dev/sdc /mnt/key

Ставлю систему

pacstrap -i /mnt base base-devel sudo mc htop glances dialog wpa_supplicant grub

Генерация fstab

genfstab -U -p /mnt >> /mnt/etc/fstab

Chroot

arch-chroot /mnt

Ставлю локали

sed -i 's/#en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/g' /etc/locale.gen
locale-gen
echo LANG=en_US.UTF-8 > /etc/locale.conf
export LANG=en_US.UTF-8

Ставлю время

rm -v /etc/localtime
ln -s /usr/share/zoneinfo/Europe/Moscow /etc/localtime
hwclock --systohc —utc

Имя хоста

echo HostName > /etc/hostname

Добавлю простого пользователя

useradd -m -g users -G wheel,games,power,optical,storage,scanner,lp,audio,video -s /bin/bash User_Name

Пароль User_Name

passwd User_Name

и пароль root

paswd root

В права в sudo

nano /etc/sudoers -> %wheel ALL=(ALL)

Записываю рандомные данные в файл ключа

dd if=/dev/urandom of=/boot/boot.bin bs=1024 count=2

Добавляю файл ключа на криптованный раздел

cryptsetup luksAddKey /dev/sdb2 /boot/boot.bin

Добавляю вот такую строчку в /etc/mkinitcpio.conf

HOOKS=(base udev autodetect modconf block encrypt lvm2 filesystems keyboard fsck)

Смотрим uuid флеш-карточки microSD, команда blkid

Записывавем в файл /etc/default/grub вот такую строчку

GRUB_CMDLINE_LINUX="cryptdevice=/dev/sdb2:main cryptkey=/dev/disk/by-uuid/uuid_раздела_флеш_карты**:ext2:/boot.bin"**

еще пару строчек

GRUB_ENABLE_CRYPTODISK=y
GRUB_CRYPTODISK_ENABLE=y

Последние штрихи, надо поставить grub и сконфигурировать начальный загрузочный диск системы.

mkinitcpio -p linux
grub-install --recheck /dev/sdb
grub-mkconfig --output /boot/grub/grub.cfg

Заключение

Выходим и ребутим ноут. В BIOS выбираем загрузку с быстросьемного SSD. После того как проскочил GRUB вставляю флеш карту, и когда появляеться приглашение на Login в системе вынимаем ее.