Системное администрирование / Шифрование данных в Linux
netboot:/# apt-get install openssh-server
В данной статье рассмотрен один из вариантов шифрования данных в Linux.
Источник: habrahabr.ru,
получено с помощью rss-farm.ru
Статья не претендует на прописную истину и не открывает ничего нового.
Описывается идея и показан пример ее реализации.
Собственно, основная идея:
При изъятии(воровсте) оборудования (винчестер, либо компьютер целиком) возможность получить какую либо информацию должна полностью отсутствовать. Тоесть, злоумышленник не должен получить вообще никакой информации, любой носитель информации должен быть полностью зашифрован.
Варианты с загрузочными флэшками сразу были отклонены по идеологическим причинам, так как не всегда есть возможность оперативно отключить её.
В итоге была выбрана схема с загрузкой по сети.
Задача:
Обеспечить шифрование данных находящихся на Windows сервере.
Пример реализации:
1.Выполняем загрузку по сети (pxe + nfs)
2.Запускаем sshd и ждем монтирования зашифрованых разделов
3.Через ssh монтируем криптованые разделы
4.Запускаем виртуальную машину VirtualBox с Windows на борту
Исходные данные:
Сеть: 192.168.1.0/24
Основной шлюз: 192.168.1.1
DNS: 192.168.1.1
Сервер удаленной загрузки: 192.168.1.13 (загружающий сервер)
Сервер с криптоваными данными: 192.168.1.14 (загружаемый сервер)
Все нижеописанное будет происходить на сервере с предустановленным Debian Lenny.
Устнавливаем и настраиваем dhcp сервер для сетевой загрузки.
netboot:~# apt-get install dhcp3-server
netboot:~# mcedit /etc/dhcp3/dhcpd.conf
option domain-name-servers 192.168.1.1;
default-lease-time 86400;
max-lease-time 604800;
authoritative;
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.20 192.168.1.60;
filename "pxelinux.0";
next-server 192.168.1.13;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
option routers 192.168.1.1;
}
Далее устанавливаем и конфигурируем tftp сервер.
netboot:~# apt-get install tftpd-hpa
netboot:~# mcedit etc/default/tftpd-hpa
RUN_DAEMON="yes"
OPTIONS="-l -s /opt/vcrypt/boot"
Для сетвевой загрузки нам потребуется файл pxelinux.0 из пакета syslinux
Устанавливаем пакет syslinux. И настраиваем pxe.
netboot:~# apt-get install syslinux
netboot:~# mkdir -p /opt/vcrypt/boot
netboot:~# cp /usr/lib/syslinux/pxelinu>x.0 opt/vcrypt/boot/
netboot:~# mkdir /opt/vcrypt/boot/pxelinux>.cfg
netboot:~# touch /opt/vcrypt/boot/pxelinux>.cfgdefault
netboot:~# mcedit /opt/vcrypt/boot/pxelinux>.cfgdefault
DEFAULT vcrypt
TIMEOUT 30
PROMPT 1
LABEL vcrypt
KERNEL vmlinuz
APPEND root=/dev/nfs nfsroot=192.168.1.13:/opt>vcrypt/ initrd=initrd.img ip=192.168.1.14::192.168.>1.1:255.255.255.0:
Смысл данного конфига: по умолчанию загружаем секцию vcrypt, в которой указано какое ядро и рам диск использовать, и что корневой раздел у нас находится на удаленном nfs сервере.
С настройкой tftp и pxe мы закончили, теперь установим и настроим nfs сервер.
netboot:~# apt-get install nfs-kernel-server nfs-common portmap
netboot:~# mcedit /etc/exports
/opt/vcrypt 192.168.1.14(rw,no_root_s>quash,async,no_subtree_ch
Указываем, к какой именно директории и для кого мы открываем доступ.
netboot:~# invoke-rc.d nfs-kernel-server reload
Перезагружаем nfs сервер, что бы он обработал новый конфиг.
Теперь осталось установить систему, которую и будем удаленно загружать. Самый простой вариант воспользоваться утилитой debootstrap.
netboot:~# apt-get install debootstrap
Процесс установки прост как пять копеек, указываем архитектуру, дистрибутив, куда устанавливать и зеркало (откуда брать пакеты).
netboot:~# debootstrap --arch i386 lenny /opt/vcrypt/ ftp.us.debian.org/debian
По завершении работы debootstrap в папке /opt/vcrypt/ будет почти готовая к работе система.
Делаем chroot в только что установленную систему
netboot:~# LANG=C chroot /opt/vcrypt/ /bin/bash
Настраиваем часовой пояс, сеть и ресолв, задаем hostname и обновляем кэш apt
netboot:/# nano /etc/default/rcS
TMPTIME=0
SULOGIN=no
DELAYLOGIN=no
UTC=no
VERBOSE=no
FSCKFIX=no
RAMRUN=no
RAMLOCK=no
netboot:/# dpkg-reconfigure tzdata
netboot:/# nano /etc/network/interfaces
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.1.14
netmask 255.255.255.0
gateway 192.168.1.1
netboot:/# nano /etc/resolv.conf
nameserver 192.168.1.1
netboot:/# echo cryptserv > /etc/hostname
netboot:/# apt-get update
Устанавливаем и настраиваем локали.
Я выбрал только en_US.UTF8 и ru_RU.UTF8. Для соблюдения полной кошерности — дефолтной выставил en_US.UTF8.
netboot:/# apt-get install locales
netboot:/# dpkg-reconfigure locales
Создаем файл конфигурации установки ядра и устанавливаем ядро
netboot:/# touch /etc/kernel-img.conf
netboot:/# nano /etc/kernel-img.conf
do_symlinks = yes
relative_links = yes
do_bootloader = no
do_bootfloppy = no
do_initrd = yes
link_in_boot = no
netboot:/# apt-get install linux-image-2.6.26-2-686
Конфигурируем initrd для загрузки по сети. Хочу отметить, что все манипуляции мы производим исключительно в chroot системе.
netboot:/boot# nano /etc/initramfs-tools/init>ramfs.conf
MODULES=netboot
BUSYBOX=y
KEYMAP=n
BOOT=nfs
DEVICE=eth0
NFSROOT=auto
Удаляем старый и генерируем новый initrd, хотя удалить можно и по рабоче-крестьянски:
rm /boot/initrd.img-`uname -r`
но я еще с детства недолюбливаю команду rm
netboot:/# update-initramfs -v -c -k `uname -r` -d
netboot:/# update-initramfs -v -c -k `uname -r`
Делаем символические ссылки на ядро и рамдиск
netboot:/# cd /boot
netboot:/boot# ln -s vmlinuz-2.6.26-2-686 vmlinuz
netboot:/boot# ln -s initrd.img-2.6.26-2-686 initrd.img
Устанавливаем luks
netboot:/# apt-get install cryptsetup hashalot
Задаем root пароль и устанавливаем ssh server
netboot:/# passwd
netboot:/# apt-get install openssh-server
После вышеописанных манипуляция сервер удаленной загрузки полность готов к эксплуатации.
Если загрузка прошла успешно, то по адресу 192.168.1.14 у вас будет полностью рабочий сервер с запущенным sshd.
Логинимся и настриваем шифрование:
h1g@h1g-laptop:~$ ssh -l root 192.168.1.14
Заполняем диск случайными данными, для затруднения выявления зашифрованных данных.
Можно еще проверить на бэд блоки, но это уже на Ваше усмотрение.
cryptserv:~# dd if=/dev/urandom of=/dev/sda
Cоздаем зашифрованный раздел (жесткий диск, носитель)
cryptserv:~# cryptsetup --verbose --verify-passphrase luksFormat /dev/sda
Надеюсь, Вы будете использовать пас фразу длинной не менее 15 символов, состояющую из цифр и букв разного регистра.
Открываем зашифрованное устройство и ассоциаруем его с виртуальным устройством /dev/mapper/vcrypt. Создаем файловую ссистему. Создаем точку монтирования
cryptserv:~# cryptsetup luksOpen /dev/sda vcrypt
cryptserv:~# mkfs.ext3 -j -m 1 -O dir_index,filetype,sparse>_super dev/mapper/vcrypt
cryptserv:~# mkdir /home/crypt
cryptserv:~# mount /dev/mapper/vcrypt /home/crypt/
Далее устанавливаем, VirtualBox. К моему глубокому сожалению не Sun, Oracle VirtualBox
cryptserv:~# echo "deb download.virtualbox.org/v>irtualboxdebian lenny non-free" >> /etc/apt/sources.list
cryptserv:~# wget -q download.virtualbox.org/v>irtualboxdebian/oracle_v>box.asc -O- | apt-key add -
cryptserv:~# apt-get install virtualbox-3.2
Создаем контейнер для виртуальной машины. Пускай он будет называться Bender1 с шаблоном для Win2k3 сервер
cryptserv:~# VBoxManage createvm --name bender1 --ostype Windows2003 —register
Выделяем контейнеру 1 гб оперативной памяти, выставляем доступ к сети посредством сетевого моста, включаем виртуальный rdp сервер на 3389 порту
cryptserv:~# VBoxManage modifyvm bender1 --memory 1024 --floppy disabled --audio none --nic1 bridged --bridgeadapter1 eth0 --vram 12 --accelerate3d off --boot1 disk --acpi on --cableconnected1 on --usb off --vrdp on --vrdpport 3389 --vtxvpid on
Создаем IDE контролер для нашей виртуальной машины
cryptserv:~# VBoxManage storagectl bender1 --name "IDE Controller" --add ide
Создаем виртуальный жесткий диск размеров 20 гб и подключаем его к контроллеру
cryptserv:~# VBoxManage createhd --filename /home/crypt/bender1.vdi --size 20480 --register
cryptserv:~# VBoxManage storageattach bender1 --storagectl "IDE Controller" --port 0 --device 0 --type hdd --medium /home/crypt/bender1.vdi
Подключаем легальный установочный DVD образ к контроллеру.
cryptserv:~# VBoxManage storageattach bender1 --storagectl "IDE Controller" --port 1 --device 0 --type dvddrive —medium /home/crypt/some_legal_wi>ndows_image.iso
Выставляем загрузку с легального DVD образа
cryptserv:~# VBoxManage modifyvm bender1 --boot1 dvd
Теперь все готово к запуску «Бендера»
cryptserv:~# VBoxManage startvm bender1 --type vrdp
Подключаемся к rdp серверу и наслаждаемся установкой легальной win2k3. Процесс установки и настроки win2k3 сервера описывать не вижу смысла.
h1g@h1g-laptop:~$ rdesktop -k en-us 192.168.1.14:3389
После удачной установки посылаем «Бендеру» сигнал завершения работы
cryptserv:~# VBoxManage controlvm bender1 acpipowerbutton
Переключаем на загрузку диска
cryptserv:~# VBoxManage modifyvm bender1 --boot1 disk
Пример скриптов для включения и выключени виртуальной машины.
cryptserv:~# cat start_vm.sh
cryptserv:~# cat shutdown_vm.sh
Опять же, повторюсь, здесь приведен пример базовой настройки системы. Не описана настройка файервола, привязки tftp сервера к маку загружаемого сервера, ссш сервера, шифрования «загружаемой системы» и др.
Это каждый администратор решает для себя сам.
Тут полет Вашей паранойи фантазии никто не ограничивает, но нужно помнить, что не все препараты одинаково полезны.
А так же :
Технологии переговоров.
Стратегии, убеждения, игры.
Переговоры - это один из ключевых моментов в деятельности бизнесмена, а умение их вести - одно из важнейших умений. Успешность бизнеса напрямую зависит от способности договориться с партнерами, инвесторами, клиентами, иногда с конкурентами. Переговоры - это один из ключевых моментов в деятельности бизнесмена, а умение их вести - одно из важнейших умений.
Democrats shuffling pre-election delivery to avail seniors (AP)
Подскажите по кроссовкам Timberland...
- Возможно ли предвидеть будущее?
- НЕКОТОРЫЕ ПРАВОВЫЕ АСПЕКТЫ ДЕЯТЕЛЬНОСТИ ПРЕДПРИЯТИЯ
- SUSEDI SMETENI VIAGROM Svingeri u osamdesetim-Av.1...
- История Царского села
- я в контакте http://vkontakte.ru/id62690119 добавляйтесь))) скачать наши треки на
- Или тулзы типа YZ Dock(как зовётся их родитель из макоса не знаю).
- Dept. Of Agriculture Wants To Trick Kids Into Eating Better
- Секрет забывчивости
- на, может послужить прекрасным сред
- Историческая география