Денис Колисниченко - Linux-сервер своими руками
Теперь рассмотрим исходный текст этой программы.
Листинг 21.2. Программа newclient#!/bin/bash
# Управление игровым залом — добавление нового клиента
# Распространяется по лицензии GPL
# (с) 2002 Denis Kolisnichenko, [email protected]
# Шрифт для отображения сообщения
FONT="-cronyx-fixed-*-*-*-*-*-*-*-*-*-*-koi8-r"
# Размеры окна
GM="700x70"
# Сообщение
MSG="Ваше время вышло. В течение 5 минут вы можете оплатить дополнительное время"
if [ $# –It 4 ] ; then
{ echo "Usage: newclient warntime time user num";
exit 1;
}
fi;
# Спим
sleep $1
# Отображаем предупреждение, поскольку время warntime вышло
xmessage –display server:$4 –fn $FONT –geometry $GM –bg black –fg green $MSG
sleep $2
P=`ps -–user $3 | grep –i gnome-session | /bin/awk –F " " '{ print $1 }' `
echo $P
# Убиваем сессию пользователя
kill –9 $P
echo "Time of user $3 is out"
Запуск программы:
newclient 3540 3600 game1 1
newclient 55m 60m game2 2
newclient 55m 1h game3 3
newclient 23h 1d game4 4
При запуске программы нужно указать четыре параметра. Первый из них — это время, через которое будет отображено сообщение. Сообщение можно изменить по своему вкусу, отредактировав значение переменной MSG (также, как и другие переменные). Следующий параметр — это время, по истечению которого пользователь будет «отрублен» от системы. Время можно указывать в секундах, в минутах (суффикс т), часах (суффикс h), днях (суффикс d).
Третий и четвертый параметры — это соответственно имя пользователя и номер дисплея. Номер дисплея будет совпадать с номером пользователя, если вы настроите систему согласно моим рекомендациям. Например, если имя пользователя game1, то номер дисплея — 1.
Обратите внимание на следующую строку программы:
xmessage –display server:$4 –fn $FONT –geometry $GM –bg black –fg green $MSG
Данная строка обеспечивает отображение сообщения MSG на дисплее с номером $4 компьютера server. X-терминал посетителя будет подключен как раз к дисплею с номером $4. При этом посетитель увидит на экране примерно то, что показано на рис. 21.15.
Рис. 21.15. Предупреждение об истечении времени
Следующий аспект, на который вам нужно обратить внимание — это оконная среда пользователя. Если пользователь использует среду Gnome, то в списке процессов пользователя будет процесс gnome-session. Если завершить этот процесс, пользователь будет отключен от системы. На этом и основывается данный метод работы программы. В листинге 21.2 подразумевается, что пользователь использует среду Gnome:
Р=`ps –user $3 | grep –i gnome-session | /bin/awk –F " " '{print $1 }' `
Если ваши посетители используют среду KDE, измените эту строку на аналогичную ей:
P=`ps –user $3 | grep –i kdeinit | /bin/awk –F " " '{ print $1 }'`
Как проконтролировать, какую среду использует посетитель? Очень просто: при установке системы установите одну из сред: или KDE, или Gnome. Можно также изменить исходный текст программы newclient, добавив соответствующую проверку, но зачем усложнять себе жизнь?
Еще раз рассмотрим запуск программы. Данную программу можно запускать в фоновом режиме, освободив консоль:
newclient 55m 60m game1 1 &
Эта команда будет выполняться в фоновом режиме. Как только выйдет время (1 час), на консоли вы увидите сообщение:
Time of user game1 is out
21.7.3. Ограничение доступа пользователя
Операционная система Linux обладает достаточно высокими средствами защиты информации, поэтому, используя стандартную конфигурацию (обыкновенный пользователь, а не суперпользователь), вы обеспечите высокий уровень безопасности. Другими словами, по поводу безопасности можете не волноваться: пользователь все равно ничего не сделает такого, что может повлечь за собой разрушение системы. Единственное, что я могу порекомендовать, переместите файлы /usr/bin/mc и /usr/bin/kcontrol-panel в каталог пользователя root: посетителю незачем изучать аналог Norton Commander для Linux и тем более настраивать среду KDE.
22
Антивирусная защита
22.1. Антивирусные программы
Можно сказать, что популярность той или иной операционной системы определяет количество вирусов, которые предназначены для этой системы. Действительно, чем распространеннее операционная система, тем больше вирусов для нее написано. И это вполне оправдывает логику вирусописателей: никто не будет писать вирус для операционной системы, если ее используют всего несколько десятков или сотен человек.
С ростом популярности операционной системы Linux увеличился и ее «вирусный рейтинг». Если раньше считалось, что не существует вирусов, «обитающих» в Unix-подобной среде, то в последнее время ситуация несколько изменилась. Одними из самых распространенных вирусов для Linux являются: Bliss, Lion, Nuxbee, Ramen, RST и Satyr. Большинство вирусов для Linux являются «червями», то есть сетевыми вирусами, которые распространяются по сети с помощью тех или иных сетевых служб, например, службы электронной почты. Я не буду описывать каждый из вирусов — об этом вы можете прочитать на сайте http://www.avp.ru.
Самыми популярными отечественными антивирусными программами являются AVP и DrWeb. Последняя известна еще со времен DOS-подобных операционных систем. Разработчики данных программ выпустили версии AVP («Лаборатория Касперского», http://www.avp.ru) и DrWeb («Лаборатория Данилова», http://www.drweb.ru) для Linux.
Обе программы являются мощным барьером для всех типов вирусов, но я почему-то предпочитаю AVP, хотя в книге будет описана работа с обоими антивирусами.
Программа AVP для Linux (как и DrWeb для Linux) помимо специфических для Linux вирусов «знает» также вирусы для операционной системы Windows. Конечно, в Linux эти вирусы работать не будут, но данная возможность очень полезна при установке антивируса на почтовом сервере: ведь инфицированные файлы могут быть отправлены локальным пользователям, большинство из которых работает в операционной системе Windows. Кроме того, обе программы обладают функцией эвристического анализа, которая позволяет находить вирусы, которые еще не известны программе, а имеют черты, свойственные вирусам.
22.1.1. Программа DrWeb для Linux
Теперь перейдем непосредственно к процессу антивирусной проверки. Сначала будет рассмотрен DrWeb, а затем — AVP. В следующем п. 22.2 будет рассмотрена антивирусная проверка входящей электронной почты.
Установка DrWeb ничего необычного в себе не таит:
rpm -ihv drwebd-4.27-linux.i386.rpm
Естественно, номер версии у вас будет отличаться. Самую последнюю версию вы можете достать на сайте лаборатории Данилова — www.drweb.ru. Программа DrWeb обычно устанавливается в каталог /opt/drweb. Затем вы должны получить ключ drweb32.key, другими словами, купить ключ. Это тоже можно сделать на вышеуказанном сайте. Конечно, вы можете достать ключ любым другим способом, но это уже ваши заботы. Данный ключ вам нужно скопировать в каталог /opt/drweb, а потом файл drweb32.key скопировать в файлы drweb.key и drwebd.key:
cp ./drweb32.key /opt/drweb
cp /opt/drweb/drweb32.key /opt/drweb/drweb.key
cp /opt/drweb/drweb32.key /opt/drweb/drwebd.key
Затем откройте в любом текстовом редакторе файл /opt/drweb/drweb.ini и установите нужные вам параметры. Я рекомендую установить следующий параметр:
OutputMode = Terminal
По умолчанию данный параметр имеет значение Color, но лучше все-таки установить значение Terminal. При этом обеспечивается более «удобоваримый» вывод на терминал.
Теперь можно проверить работу антивируса:
/opt/drweb/drweb /root/cih.exe
Как видно из отчета (см. рис. 22.1), антивирус DrWeb проверил один файл /root/cih.ехе и нашел в нем вирус Win95.CIH.1035. DrWeb не вылечил ни одного файла (Cured: 0), не удалил ни одного файла (Deleted: 0), не переименовал и не переместил (Renamed: 0 и Moved: 0). Проверка не заняла много времени (0 секунд), а скорость сканирования составила 45 Кб/с.
Рис. 22.1. Антивирус DrWeb
Если у вас нет вируса для тестирования, вы можете воспользоваться стандартным файлом проверки — test.com. Если почему-то данный файл у вас отсутствует, создайте текстовый файл и добавьте в него всего одну строку:
Х50!Р%@АР[4PZX54(Р^)7СС)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$Н+Н*
Затем сохраните его под именем test.com. В результате проверки данного файла вы должны получить сообщение:
EICAR Test File (Not a Virus!)
Последнее, что вам осталось настроить — это автоматическое обновление антивирусных баз данных. Антивирусные базы данных содержат образцы вирусов, с помощью которых антивирус идентифицирует тот или иной тип вируса. Эти базы доступны для всех пользователей по адресу: http://www.dials.ru/drweb/free.
Однако обновлять базы вручную — это занятие неблагодарное, поэтому настройте свою систему так, чтобы она самостоятельно обновляла антивирус. Специально для этой цели существует модуль update.pl. Он должен быть установлен в каталоге /opt/drweb/update.