Проблемы при регистрации на сайте? НАЖМИТЕ СЮДА!                               Не проходите мимо весьма интересного раздела нашего сайта - проекты посетителей. Там вы всегда найдете свежие новости, анекдоты, прогноз погоды (в ADSL-газете), телепрограмму эфирных и ADSL-TV каналов, самые свежие и интересные новости из мира высоких технологий, самые оригинальные и удивительные картинки из интернета, большой архив журналов за последние годы, аппетитные рецепты в картинках, информативные Интересности из Интернета. Раздел обновляется ежедневно.                               Всегда свежие версии самых лучших бесплатных программ для повседневного использования в разделе Необходимые программы. Там практически все, что требуется для повседневной работы. Начните постепенно отказываться от пиратских версий в пользу более удобных и функциональных бесплатных аналогов.                               Если Вы все еще не пользуетесь нашим чатом, весьма советуем с ним познакомиться. Там Вы найдете много новых друзей. Кроме того, это наиболее быстрый и действенный способ связаться с администраторами проекта.                               Продолжает работать раздел Обновления антивирусов - всегда актуальные бесплатные обновления для Dr Web и NOD.                               Не успели что-то прочитать? Полное содержание бегущей строки можно найти по этой ссылке.                              

Приручаем Ctrl-Alt-Del

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

Невозможно охватить все возможные варианты событий, но можно внести небольшие изменения в систему для контроля за наиболее очевидными путями нарушения безопасности.

Рассмотрим методы защиты от несанкционированных перезагрузок систем.

Мало ли для чего, может пригодится;)...

Каждый, кто подойдет к клавиатуре Linux-машины, может нажать клавиши Ctrl-Alt-Del и перезагрузить систему без входа в нее, в то время как машины под управлением Windows, если они заблокированы, требуют корректной регистрации (либо текущего пользователя, либо пользователя с административными привилегиями) перед тем, как вы сможете перезагрузить систему. И это даже не обязательно должно использоваться со злым умыслом: часто люди, привыкшие к Windows NT/2000/XP и иже с ними, нажимают Ctrl-Alt-Del в сессии X-Windows для блокировки экрана или для доступа к менеджеру задач, а вместо этого видят ужасное сообщение "The system is going down for reboot NOW!" и последующее уничтожение их работы, которую они не успели сохранить.

Во многих дистрибутивах Linux клавиатурная комбинация Ctrl-Alt-Del настроена на перезагрузку системы. И если это приемлемо для однопользовательской домашней системы, то для рабочего места в офисе или даже серверов представляет ненужный риск, поскольку не требует корректной регистрации пользователя.

Для предотвращения такого поведения мы будем перехватывать нажатия Ctrl-Alt-Del и вместо перезагрузки выполнять свой собственный скрипт. Он будет контролировать несанкционированные попытки перезагрузки и протоколировать их.

Для этого нужно написать небольшой скрипт и внести изменения в конфигурационный файл '/etc/inittab', после этого остается добавить ротацию файла журнала (если вы пользуетесь 'logrotate'), чтобы все было в порядке.

Скрипт для интерпретатора bash, который выполняет всю необходимую работу, назовем 'audit_cad.sh':

#!/bin/sh

# генератор сообщений о попытке перезагрузки через "Ctrl-Alt-Del"

# v0.7 (23/06/2003)

# Автор: Dean Wilson

#set -x # раскомментируйте эту строку для отладки

==============================

# используемые внешние программы

LOGGER=/usr/bin/logger

TR=/usr/bin/tr

DATE=/bin/date

BASENAME=/usr/bin/basename

==============================

# проверка внешних зависимостей

function usage {

for BINLOC in $LOGGER $TR $DATE $BASENAME

do

if [ ! -f "$BINLOC" ];then

printf "Failed to find '$BINLOC' This script requires this to run\n"

ERROR=1

continue

fi

if [ ! -x "$BINLOC" ];then

printf "'$BINLOC' does not seem to be executable, please fix\n"

ERROR=1

continue

fi

done

}

==============================

# измените это, если хотите поменять приоритет для сообщения, которое передается syslog

FAC=user

LEVEL=crit

# получить имя приложения без пути

APP=$($BASENAME "$0")

# сообщение для журнала

MSG="Ctrl-alt-delete was triggered and caught by $APP"

# расположение внешнего non-syslog-журнала

LOGFILE=/var/log/shutattempt

==============================

# если скрипт вызван с ключом "-c", проверить наличие необходимых программ

if [ "$1" == "-c" ];then

usage

if [ -n "$ERROR" ];then

RETCODE=1

else

RETCODE=0

fi

# никогда не запускать после проверки

exit $RETCODE

fi

# записать дату/время во внешний журнал

$($DATE +'%b %d %T ' | $TR -d '\n' >>$LOGFILE)

# работаем

$LOGGER -p ${FAC}.${LEVEL} -t $APP -s $MSG 2>>$LOGFILE

exit 0

Он может вызываться в двух вариантах. С параметром '-c' он проверит наличие всех необходимых ему программ. Это наилучший метод убедиться, что ваша система удовлетворяет всем требованиям.

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

1. Вот список необходимых для работы программ:

— /usr/bin/logger

— /usr/bin/tr

—· /bin/date

— /usr/bin/basename

Из них всех ручного редактирования может потребовать только программа basename, которая часто находится либо в каталоге '/usr/bin', либо в каталоге '/bin'. Обычно скрипт в режиме проверки запускается при установке в систему для того, чтобы убедиться, все ли в порядке. Поскольку скрипт выполняется от пользователя root, стоит проверить права доступа. В идеале они должны быть равными -rwx------. Чтобы установить их, введите команду 'chmod 0700 audit_cad.sh'.

Если же скрипт вызывается без параметров, он делает запись в общесистемном журнале ('syslog') с указанными пользователем уровнем и типом и в отдельном файле '/var/log/ shutattempt'. Это вариант, вызывающийся при нажатии Ctrl-Alt-Del.

Будем считать, что наш скрипт находится в каталоге '/usr/local/sbin/', куда мы его и помещаем. Если вы хотите изменить эти или другие параметры, просто откройте скрипт в редакторе и вносите необходимые изменения. Все настройки описаны в комментариях.

Теперь, когда скрипт настроен и находится на своем месте, нужно изменить обработчик события Ctrl-Alt-Del в файле '/etc/inittab'. Нас интересует строка, говорящая процессу 'init', как обрабатывать нажатие Ctrl-Alt-Del. В большинстве дистрибутивов идентификатор этого события обозначается как 'ca', а вся строка выглядит примерно так: "ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now". Важной частью этой записи является последнее поле, начинающееся с '/sbin/shutdown'. Чтобы изменить поведение системы, замените значение этого поля на полное имя скрипта 'audit_cad.sh'. Должно получиться что-то вроде "ca:12345:ctrlaltdel:/usr/local/sbin/audit_cad.sh".

После внесения указанных изменений нужно сообщить процессу 'init' об изменениях в его конфигурации. Проще всего это сделать, выполнив команду 'telinit q', которая заставляет процесс 'init' перечитать свою конфигурацию.

Теперь можно проверить наши изменения. Перед этим вам следует закрыть все пользовательские приложения — например, редакторы. Если вы где-то допустили ошибку при редактировании, система перезагрузится, поэтому лучше быть уверенным, что ваша работа не исчезнет. Когда будете готовы, нажмите Ctrl-Alt-Del, и никакой видимой реакции быть не должно.

Если ваша система продолжает работать, проверьте системный журнал (обычно это файл '/var/log/messages' или '/var/log/syslog') и отдельный журнальный файл скрипта 'audit_cad.sh', чтобы убедиться в правильном протоколировании события. Если же ваша машина таки перезагрузилась — проверьте все изменения и повторите попытку.

Когда у вас все заработает, останется последнее: автоматизировать обработку журнального файла. Все это может различаться: от настройки программ 'SWATCH' или 'logwatch' для посылки автоматических отчетов до настройки ротации журнального файла.

Ниже приведен простой пример настройки системы 'logrotate' (подходит как для Redhat, так и для Debian):

daily

rotate 7

compress

delaycompress

/var/log/shutattempt {

nomail

notifempty

missingok

create 0600 root root

}

Добавьте этот файл, предварительно назвав его audit_cad, в ваш каталог 'logrotate'.

Обычно это '/etc/logrotate.d'. После этого можно не беспокоиться о том, что журнальный файл слишком сильно разрастется.

Хотя эта технология и позволяет обнаружить попытку перезагрузки системы, у нее есть свои минусы. Так, вы не знаете, кто именно пробует перезагрузить машину, и нет никакой возможности определить это. Процесс 'init' выполняется от имени пользователя 'root', потому никаких данных о пользователе вы получить не можете.

Внеся незначительные изменения в 'audit_cad.sh', можно получить вывод команд w или who на момент нажатия Ctrl-Alt-Del, но он не так полезен, как кажется: ведь вы получаете список правомерных пользователей, а чтобы нажать Ctrl-Alt-Del, совершенно не нужно регистрироваться на машине.

Другим моментом является то, насколько явно вы хотите показывать существование данного скрипта. Возможно, не стоит афишировать его присутствие в системе?

Тогда назовите его 'shutdown' и сохраните где-нибудь в нестандартном месте.

За полной информацией о формате и назначении файла 'inittab' обратитесь к манам (команда 'man 5 inittab'), а чтобы узнать полный список поддерживаемых параметров команды 'telinit', прочтите 'man 8 telnint'. Если вы не знакомы с программой 'logrotate', начните с ее страницы руководства (команда 'man 8 logrotate').

Источник

Статейка хоть и старенькая, но думаю полезная.

Автор: alexschka
.:: Статистика ::.
Пользователи
HTTP: 5
IRC: 3
Jabber: 0
( состояние на 07:56 )
ADSL-газета: Ежедневно свежие анекдоты, гороскоп, погода, новости, ТВ-программа, курс валют

Интересности из Интернета: Интересные статьи на разнообразные темы, найденные на просторах интернета

Компьютерная консультация

Единый личный кабинет