Навигация
Системное Администрирование Решения на открытых кодах Структура сети Компьютерные сети малых предприятий Сеть с централизованным управлением Управление с помощью групповых политик Организация почтового обслуживания Взаимодействие с глобальной сетью Безопасность Виртуализация Парядок настройки и определения неисправностей Средства управления системами Автоматизация установки программного обестичения Решение проблем с компьютером Разное
 
 
Избранное
Pathping. Traceroute на стероидах.
FreeNAS: создаём сетевое хранилище (NAS)
Iperf - утилита для тестирования пропускной способности сети.
Средство против «сетевой слепоты»
Преимущества и недостатки RAID 6
Дисковые массивы RAID
Надежнее, чем RAID 5
Унификация корпоративных коммуникаций
Exchange и SAN: не все так просто
Cisco против Meru
 
 
Решения на открытых кодах » Linux - Защита Linux от несанкционированного консольного доступа

Есть две вечные темы, о которых пишет почти каждый автор “блога про linux” — туннели в ssh и сброс пароля root путём загрузки в режиме single user. Как правило, второй рецепт провоцирует обширные обсуждения на тему незащищённости Linux от действий злоумышленников при наличии физического доступа к компьютеру.

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

Итак, как же можно минимально обезопасить свой компьютер?

  1. Отключите загрузку с CD-ROM и флэшек и установите пароль на BIOS. Это не позволит злоумышленнику изменить порядок загрузки устройств и загрузиться со своей флэшки или компакт-диска. Однако всегда можно сбросить память BIOS, выковыряв батарейку из материнской платы, поэтому не следует полагаться на пароль BIOS’а в долгосрочной перспективе.
  2. Установите пароль на редактирование параметров загрузки grub. Система будет загружаться в обычном порядке, но никто не сможет изменить параметры загрузки, выбрав вариант загрузки и нажав кнопку “e”:
    1. сгенерируйте пароль с помощью утилиты grub-md5-crypt:
      $ grub-md5-crypt
      Password:
      Retype password:
      {full-story}/Zwx$i0LAHSrpXKfT.JBZHCXpf1
    2. Добавьте получившийся пароль в общий раздел /boot/grub/menu.lst в виде строки:
      password --md5 {full-story}/Zwx$i0LAHSrpXKfT.JBZHCXpf1
    3. Если у вас есть небезопасные дополнительные режимы загрузки (например, альтернативные операционные системы типа windows, или загрузка с параметром single), можно в описание этих режимов добавить параметр lock, который запретит пользователям выбирать этот вариант загрузки без ввода пароля. Пароль можно задать в этом же разделе, или оставить общий.
    4. Обратите внимание, что если файл menu.lst генерируется программой update-grub, как это сделано в Debian или Ubuntu, то вместо указания директивы lock в каждом варианте загрузки необходимо установить специальные параметры в разделе настройки upgrade-grub: lockalternative, lockold или kopt. Формат этих параметров и механизм работы update-grub подробно описаны в /boot/grub/menu.lst и man update-grub.
  3. Если у пользователя root на вашей машине есть пароль, пусть система запрашивает этот пароль при входе в single-user mode. Если в вашем дистрибутиве используется старый стиль инициализации через inittab (к таким системам относится большая часть дистрибутивов, кроме последних версий Ubuntu, Fedora и Debian, перешедших на Upstart), убедитесь, что в /etc/inittab присутствует строчка, подобная следующей:
    ~~:S:wait:/sbin/sulogin

    Эта инструкция говорит процессу init, что в однопользовательском режиме необходимо запускать программу /sbin/sulogin, которая запрашивает пароль суперпользователя. Но если пароль у root’а отсутствует, как, например, в Ubuntu, то sulogin пропускает в систему без запроса пароля. Поэтому обладателям современных дистрибутивов остаётся утешаться тем, что через пароль grub довольно сложно прорваться.

  4. Отключите интерактивную загрузку. В системах, основанных на RedHat (RHEL, Centos, Fedora), пользователь может нажать I перед началом загрузки сервисов и rc.sysinit при старте каждого сервиса будет спрашивать, нужно ли стартовать этот сервис. Эта фича отключается в файле /etc/sysconfig/init исправлением/добавлением параметра PROMPT:
    PROMPT=no
  5. Отключите Ctrl+Alt+Del. Любой бездельник может перезагрузить ваш компьютер (и испортить uptime), просто перейдя на виртуальную консоль и нажав три заветные кнопки. Этого риска можно избежать, настроив свой /etc/inittab или, в случае использования upstart, соответствующий файл в /etc/event.d (у меня этот файл так и называется — control-alt-delete). Необходимо просто закомментировать строчку, содержащую описание действия для события ctrlaltdel (или control-alt-delete в Upstart.). Или заменить это действие на команду отправки сообщения в syslog:
    /usr/bin/logger -p auth.info "Ctrl+Alt+Del pressed

    После внесения изменения в /etc/inittab нужно послать процессу init сигнал перечитать этот файл:

    init q

    Для Upstart никаких уведомлений об изменении конфигурации не нужно.

  6. Установите таймаут для логина в консоли. В оболочке bash есть переменная окружения TMOUT, которая устанавливает период неактивности (в секундах) — если от пользователя не поступило никакого ввода в течение указанного времени, процесс bash самоубивается. В /etc/profile.d можно поместить исполняемый файл logintimeout.sh примерно следующего содержания:
    if [ x"$SSH_REMOTE_USER" = x ] ; then
        TMOUT=300
        export TMOUT
    fi

    Таким образом, консольные пользователи будут “выкидываться” через 5 минут бездействия. Подобным образом можно установить период неактивности в других шеллах, а также в ssh (параметр ClientInactiveTimeout в sshd_config). Однако мне кажется, что подобные фокусы могут лишь раздражать вас и ваших пользователей, не принося реальной пользы, и стоит ограничиться установкой такого таймаута только для логинов с консоли.

  7. Установите vlock и приучите себя и коллег использовать его перед тем, как отлучиться от консоли более чем на 30 секунд. Команда vlock блокирует текущую виртуальную консоль; чтобы разблокировать ее, нужно ввести пароль пользователя или root’а (если он есть, конечно). vlock -a вообще запрещает переключаться на другие консоли (например, с помощью комбинации Alt+F7).
  8. Не забывайте о блокировке графического интерфейса.
    1. установите разумный период бездействия (5 — 10 минут), по истечении которого запускается хранитель экрана
    2. установите пароль на хранитель экрана
    3. выведите ярлык блокировки на видное место
    4. назначьте и запомните сочетание клавиш для блокировки экрана (в Gnome это Ctrl+Alt+L)

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




 
 
 
 
Поиск по сайту
Google Поиск


Яндекс поиск
 
 
Полезное
 
 
 
 
 
systemzone.ru 2014