Личный блог Suvan`a.

Работая и играя с Linux... И что из этого иногда получается.

Физическая безопасность.

Рубрика: Безопасность -> Основные меры защиты Linux
Метки: | |
Вторник, 12 мая 2009 г.
Просмотров: 6455

     Рекомендации по физической безопасности, написанные здесь, подойдут практически для любой системы, не только Linux, но основной уклон сделан в сторону Linux.

     Почему именно физическая безопасность? Можно ли полностью доверять сотрудникам компании? А что если когда-нибудь кто-то подойдет к компьютеру и нажмет «Ctrl» + «Alt» + «Del» или, что еще хуже, «Reset». В первом случае система хотя бы корректно завершит свою работу, а во втором...

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


  • Настроить BIOS, включив загрузку с дискеты или CD-ROM.
  • Передать ядру некоторые нежелательные параметры, например, single для перехода в однопользовательский режим. В этом режиме он получит доступ к консоли root и система даже не запросит пароль.
  • Загрузить систему с загрузочного диска (дискеты или CD-ROM). А это может быть не установочный диск с Windows XP, a Live-CD с Linux. Подмонтировав корневую файловую систему к своей, хакер сможет сделать с ней все, что захочет, в том числе и перезаписать файлы /etc/passwd и /etc/shadow.
  • Украсть жесткий диск, содержащий нужные данные.
  • Установить keylogger'ы для перехвата введенных с клавиатуры данных, в том числе и паролей.
  • Получить доступ к незавершенной сессии root.

     Сервер без CD-ROM и FLOPPY.

     Нужно физически отключить CDROM и Floppy на сервере, это не даст возможности хакеру загрузиться со своего диска. Причем «физически отключить» означает не отключить питание или шлейф, а вытащить эти устройства из системного блока. Сам системный блок нужно запломбировать, чтобы хакер не попытался установить внешние CD-ROM или Floppy.

     Специальные корпуса.

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

     Месторасположение.

     Сервер нужно размещать в помещении с ограниченным доступом — в охраняемой, вентилируемой комнате.

     KEYLOGGER'Ы.

     Аппаратные keylogger'ы - это маленькие устройства, подключаемые к пор­ту PS/2, к которому подключается клавиатура. Клавиатура, в свою очередь, подключается к keylogger'y. Keylogger'ы запоминают введенные пользователем символы в энергонезависимой памяти.

     Дальше хакер может извлечь keylogger и прочитать содержащуюся в нем информацию, в том числе и введенные пароли. Keylogger - это маленькое цилиндрическое устройство такого же диаметра, как и PS/2-порт.

     Нужно отключить клавиатуру - если не видно ничего лишнего, значит, keylogger не подключен.

     Настройки BIOS.

     Большинство пользователей и администраторов устанавливают пароль BIOS, предотвращающий загрузку и/или изменение параметров BIOS. Лучше устанавливать пароль на изменение параметров BIOS, но не на загрузку системы. Если вы где-нибудь отдыхаете, а сервер в результате перепада напряжения или сбоя системы перезагрузился? По SSH уже никак не войти и не нажать кнопочку Power на системном блоке. Придется ехать на работу и включать сервер. Вот тогда-то можно пожалеть о том, что эта опция установлена.

Установкой одного пароля делу не поможешь. Взломать его легко - на 5 секунд отключить батарейку, которая находится на систем­ной плате. Следовательно, нужно не забывать о замках и пломбах.

     Правда, BIOS некоторых производителей поддерживает так называемые master-пароли (или инженерные пароли) - они подходят в любом случае. Цель master-паролей состоит как раз в том, чтобы не приходилось сбра­сывать BIOS, если пароль забыт. Вот известные инженерные пароли: Award, AWARD_SW, AMI, AM_SW, bios, cmos, j262. Узнать инженерный пароль можно на сайте производителя материнской платы. Также пароли BIOS поддаются brute-force атаке. Для этого существуют две утилиты, работающие под DOS и Linux - CmosPwd(http://www.cgsecurity.org) и !BIOS (http://www.11a.nu).

     Загрузчики.

     Наиболее популярные загрузчики операционной системы Linux - это GRUB и LILO. Оба загрузчика дают возможность установить пароль на загрузку системы.

Для включения пароля в LILO необходимо отредактировать файл /etc/lilo.conf, добавив в него строку password=пapoль. Также нужно указать, когда нужно будет запрашивать пароль:

  • Restricted - пароль будет запрошен, если пользователь попытается указать некоторые параметры ядра.
  • Mandatory — пароль будет запрошен при загрузке системы.

     Рекомендуется использовать опцию Restricted, чтобы не было проблем с автоматической перезагрузкой системы.

     Пример файла конфигурации /etc/lilo.conf:

boot=/dev/hda

map=/boot/map

default="linux"

keytable=/boct/ru4.kit

prompt

nowarn

tiraeout=100

message=/boot/messaqe

image=/boot/vmlinuz label="linux" root=/dev/hda5

     initrd=/boot/initrd.img

     append="devfs=mount acpi=ht splash=silent" vga=7 8 8 read-only

     password=*12345* restricted

imager/boot/vmlinuz

     label="failsafe"

     root=/dev/hda5

     initrd=/boot/initrd.img

     append="failsafe acpi=ht devfs=nomount"

     read-only

     password=*12345*

     restricted

     После изменения файла конфигурации нужно перезаписать LILO: для этого вводится команду lо. Также нужно убедиться, что файл /etc/lilo.conf доступен для чтения только пользователю root (chmod 600 /etc/lilo.conf), так как он содержит пароль в открытом виде.

     Чтобы добавить пароль в GRUB, в файл /etc/grub.conf добавляется строка:

password <ПАРОЛЬ>

или

password -md5 <ПАРОЛЬ>

в зависимости от того, используется хэшированный пароль или нет. В первом случае можно просто написать пароль как есть — в открытом виде. Во втором нужно записать хэш пароля, для этого запускается grub и вводится команда md5crypt:

grub> md5crypt

Password: ***********

Encrypted: $l$bNG71wkT$dIAeMw7.vlg0sT,3O!dp6K0

     Отключение «CTRL» + «ALT» + «DEL».

     На всех х86-машинах комбинация «Ctrl» + «Alt» + «Del» используется для перезагрузки машины. Но можно задать поведение системы на нажатие этой комбинации клавиш. Чтобы отключить эту комбинацию, нужно просто открыть /etc/inittab и найти строку:

са::ctrlaltdel:/sbin/shutdown -t5 -r now

И закомментировать ее. Чтобы изменения вступили в силу, перезапускаем init:

# init q

     Запрос пароля в однопользовательском режиме.

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

     Чтобы система запрашивала пароль пользователя root при переходе в однопользовательский режим, ye;yj добавить в /etc/inittab следующие строки:

ls :S:wait:/etc/rc.d/init.d/rc S ~~:S:respawn:/sbin/sulogin

     Беспарольный доступ полезен, если часто забывается пароль, но лучше его все-таки не забывать.

     Автовыход из системы.

     Использование этой функции — отличная идея, как для обычных пользователей, так и для пользователя root. Как часто забываешь завершить сеанс и выходишь из комнаты? А в это время кто-то другой может воспользоваться этим сеансом.

     Переменная окружения TMOUT задает время в секундах, по истечении которого будет выполнен автоматический выход из системы. Если добавить команду:

export TMOUT = 1800

в файл /etc/profile, то автоматический выход из системы любого пользователя будет произведен через 30 минут (1800 секунд). Если же это сильно мало, можно задать ограничения для каждого пользователя отдельно — для этого достаточно добавить эту же строку в файл -V . bashrc (который находится в домашнем каталоге пользователя).

     Блокировка сессии.

     При работе с X Window нельзя забывать использовать хранитель экрана. Можно спокойно отлучиться на пару минут, и при этом быть спокойным, что никто не работает этом месте.

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