В
лекции 13, "Подключение почтового сервера к
провайдеру Internet", были рассмотрены методы
подключения почтового сервера под управлением ОС
Linux к провайдеру сети Internet. После
подключения и настройки электронная почта сможет
циркулировать между вашей сетью и Internet. И
если вы решили, что на этом обязанности
администратора почтовой системы заканчиваются,
то вы ошиблись — все только начинается.
Администратор системы электронной почты должен
постоянно следить за работой почтового сервера.
Одной из важнейших повседневных задач является
обслуживание учетных записей пользователей. Еще
одна важная задача — отслеживание файлов отчетов
о работе различных служб в системе. В
зависимости от выбранного вами типа подключения
к сети Internet, возможно, придется также
отслеживать попытки несанкционированного доступа
на ваш почтовый сервер со стороны хакеров и
спамеров. Всегда будьте готовы столкнуться со
спамерами, наводняющими почтовые ящики
бесполезными сообщениями или использующими ваш
почтовый сервер для их транзита. Как видите,
работа для администратора почтовой системы
всегда найдется. В этой лекции описываются
некоторые методики и алгоритмы, которые помогут
администратору почтовой системы поддерживать
сервер в рабочем состоянии.
Обслуживание
учетных записей пользователей
Все
пользователи, принимающие почту через ваш
почтовый сервер, должны иметь зарегистрированные
в системе идентификатор пользователя и пароль. В
обязанности администратора системы электронной
почты входит удаление и добавление новых
идентификаторов пользователя. В зависимости от
правил, принятых в вашей организации, это может
выполняться ежедневно или один раз в год. В
любом случае время от времени возникает
необходимость в добавлении или удалении учетных
записей пользователей. Кроме того, довольно
часто встречаются пользователи, которые забывают
свои пароли доступа к серверу, поэтому вам
придется выполнять определенные процедуры по
управлению учетными записями.
Файл учетных
записей в ОС Linux
По
умолчанию в ОС Linux учетные записи
пользователей хранятся в файле /etc/passwd.
Этот файл уже упоминался в лекции 12, "Установка
и конфигурирование POP3 и IMAP". В листинге 14.1
представлен пример стандартного файла /etc/passwd.
1
root:unaoBNGut6giH2:0:0:root:/root:/bin/bash
2 bin:*:1:1:bin:/bin:
3 daemon:*:2:2:daemon:/sbin:
4 adm:*:3:4:adm: /var/adm:
5 lp:*:4:7:lp:/var/spool/lpd:
6 sync:*:5:0:sync:/sbin:/bin/sync
7 shutdown:*:6:0: shutdown:/sbin:/sbin/shutdown
8 halt:*:7:0: halt :/sbin:/shin/halt
9 mail:*:8:12:mail:/var/spool/mail:
10 news:*:9:13:news:/usr/lib/news:
11 uucp:*:10:14:uucp:/var/spool/uucppublic:
12 operator:*:11:0:operator:/root:/bin/bash
13 games:*:12:100:games:/usr/games:
14 man:*:13:15:man:/usr/man:
15 postmaster:*:14:12:postmaster:/var/spool/mail:/bin/bash
16 nobody:*:65535:100:nobody:/dev/null:
17 ftp:*:404:1::/home/ftp:/bin/bash
18 rich:cLafgrY5tfHiw:501:101:Rich
B.:/home/rich:/bin/bash
19 usenet:*:502:13:News master:/home/usenet:/bin/bash
20 bbs:*:503:200:BBS User:/home/bbs:/home/bbs:/bin/bash
21 barbara:*:504:100:Barbara B.:/home/barbara:/bin/bash
22 katie:*:505:100:Katie B.:/home/katie:
/bin/bash
23 jessica:Ru7vx4rgypupg:506:100:Jessica
B.:/home/jessica:/bin/bash
24 haley:WfNervHPbUxUk:507:100:Haley
S.:/home/haley:/bin/bash
25 riley:VHA1qqu/pqjMU:508:100:Riley
M.:/home/riley:/bin/bash
26 chris:5MLvL/waxN276:509:100:Chris
W.:/home/chris:/bin/bash
27 matthew:nZF35ripKCbXQ:510:100:Matthew
W.:/home/matthew:/bin/bash
28 alex:9QJ.MQWbSDBG.:511:100:Alex P.:/home/alex:/bin/bash
Листинг 14.1.
Пример файла /etc/passwd
В
листинге 14.1 представлен общий формат файла
/etc/passwd. В
каждой строке файла содержится информация об
учетной записи пользователя. Вся информация с
помощью двоеточий разбивается на отдельные поля.
Первое поле в учетной записи содержит имя
пользователя, под которым он регистрируется в
системе. Во втором поле содержится пароль
пользователя в зашифрованном виде. Вы, наверное,
уже обратили внимание, что некоторые учетные
записи в поле пароля имеют символ "звездочка" (*).
Это означает, что для учетной записи
зашифрованный пароль не используется и
достаточно лишь символа (*).
В третьем поле указывается номер идентификатора
пользователя, по которому в ОС Linux
осуществляется управление доступом к файлам. В
четвертом поле содержится номер идентификатора
группы, к которой относится данный пользователь.
В следующем разделе мы более подробно рассмотрим
функционирование групп пользователей в ОС Linux.
Остальные поля используются для определения
различных параметров пользователя. В пятом поле
содержится текстовое описание учетной записи;
обычно здесь указывается полное имя пользователя,
которому принадлежит учетная запись, это
помогает администратору почтовой системы
документировать подобную информацию. В шестом
поле определяется местоположение рабочего
каталога пользователя. Если пользователи вашей
системы работают с почтовыми ящиками по
протоколу IMAP (см. лекцию 7, "Протокол IMAP"),
то каждый пользователь должен иметь отдельный
рабочий каталог. Это необходимо для того, чтобы
программное обеспечение для работы с IMAP в ОС
Linux могло создавать в рабочем каталоге
пользователя необходимые папки. Каждому
пользователю должны быть также назначены
соответствующие права доступа к своему рабочему
каталогу — право на чтение из каталога и на
запись в него.
В
последнем поле определяется программа оболочки
для работы в ОС Linux, которая будет запускаться
при входе пользователя в систему. При обращении
к почтовому серверу на базе ОС Linux желательно
задавать пользователям программу оболочки
bash (находится в
/bin/bash),
которая является стандартной для ОС Linux.
Некоторые опытные администраторы почтовых систем
предпочитают создавать сложные оболочки, которые
не позволяют пользователям получать
несанкционированный доступ в систему. Однако
подобные методики не рассматриваются в этой
книге.
Теневые пароли
Вероятно, вы заметили один из недостатков файла,
в котором хранятся учетные записи пользователей
в ОС Linux, — он доступен для просмотра любому
пользователю системы. Благодаря этому программы
регистрации пользователей в системе могут
обращаться к файлу /etc/passwd
и сравнивать введенные пароли с реальными
паролями для входа в систему. Некоторые
пользователи, охваченные жаждой экспериментов,
могут скопировать себе файл паролей и попытаться
с помощью одной из программ для взлома паролей,
которых сегодня в Internet великое множество,
получить пароли других пользователей системы.
Это всегда создает потенциальную угрозу (в
особенности для руководящих работников, которые,
как правило, не утруждают себя запоминанием
сложных паролей).
Для
решения этой проблемы в большинстве
дистрибутивов Linux предлагается алгоритм
аутентификации с применением файла теневых
паролей. Файл теневых
паролей представляет собой отдельный файл,
в котором содержатся пароли пользователей и
другая информация, относящаяся к работе с ними.
Таким образом, пароли не хранятся в файле
/etc/passwd.
Простым пользователям системы на базе ОС Linux
файл теневых паролей не виден, они не могут
получить его копию и попытаться взломать его. В
листинге 14.2 представлен пример файла теневых
паролей.
1
root:$1$wkRtbOwr46TSWmezOiXx.ZGAtG/zGKU1:10863:0:99999:7:-1:-1
:134537880
2 bin:*:10863:0:99999:7:::
3 daemon:*:10863:0:99999:7:::
4 adm:*:10863:0:99999:7:::
5 lp:*:10863:0:99999:7:::
6 sync:*:10863:0:99999:7:::
7 shutdown:*:10863:0:99999:7:::
8 halt:*:18863:0:99999:7:::
9 mail:*:10863:0:99999:7:::
10 news:*:10863:0:99999:7:::
11 uucp:*:10863:0:99999:7:::
12 operator:*:10863:0:99999:7:::
13 games:*:10863:0:99999:7:::
14 gopher:*:10863:0:99999:7:::
15 ftp:*:10863:0:99999:7:::
16 nobody:*:10863:0:99999:7:::
17 postgres:!!:10863:0:99999:7:::
18 lists:!!:10863:0:99999:7:::
19 xfs:!!:10863:0:99999:7:::
20 rich:LMQOvbvbnZpZrls:10863:0:99999:7:::
21 barbara:$1$ORlQdo1l$GK/H8tjwPGCBUUHMEjXWe1:10863:0:99999:7:::
22 katie:$1$XEd8PKaP$AuwsgfeN3UBcKjBOGeLId1:10882:0:99999:7:::
23 jessica:$1$ashasfha4hasfhasfhw$asfgas44gs:
10885:0:99999:7:: :
Листинг 14.2.
Пример файла теневых паролей
В
листинге 14.2 представлен общий формат файла
теневых паролей. В большинстве дистрибутивов ОС
Linux по умолчанию это файл
/etc/shadow. Как и
в обычном файле /etc/passwd,
в каждой его строке содержится информация об
одной учетной записи пользователя. Вся
информация разделяется на поля с помощью
двоеточий. В первом поле указывается имя
пользователя учетной записи. Это поле должно в
точности совпадать с таким же полем в файле
/etc/passwd. Во
втором поле содержится зашифрованный пароль.
Возможно, вы уже заметили разницу между
зашифрованными паролями из листингов 14.1 и
14.2. Дело в том, что ОС Linux, из которой взят
файл, представленный в листинге 14.2,
сконфигурирована для шифрования паролей с
помощью алгоритма MD5. Алгоритм MD5 предлагает
более сложное для взлома шифрование паролей, по
сравнению со стандартным методом шифрования,
принятым в UNIX, который по умолчанию
используется и в ОС Linux.
Помимо функции укрывания паролей от чужих глаз,
файл shadow можно
использовать и для других целей. В зависимости
от применения тех или иных утилит ОС Linux,
назначение остальных полей в файле
shadow может
меняться. Так, третье поле показывает количество
дней, прошедших с 1 января 1970 года, до дня
последнего изменения пароля. В четвертом поле
всем пользователям, представленным в примере,
задано значение 0. Это говорит о том, что все
они могут изменять свои пароли самостоятельно
без вмешательства администратора. Если в этом
поле указать значение 1, то пользователи не
смогут самостоятельно изменять свои пароли. В
пятом поле указывается количество дней, которые
пройдут с 1 января 1970 года, до дня, когда
истекает срок действия пароля. Всем учетным
записям, приведенным в примере, заданы
наибольшие возможные значения этого поля.
В
шестом поле указано количество дней до истечения
срока действия пароля, за которые система должна
выдать предупреждение о приближающемся окончании
срока действия пароля. В седьмом поле
указывается количество дней с момента истечения
срока действия пароля до того момента, когда
система прекратит допуск пользователя с
недействительным паролем. Восьмое поле
используется для паролей, срок действия которых
истек, и содержит количество дней, прошедших с 1
января 1970 года, до дня, когда пароль был
признан недействительным.
Однако при использовании файла
shadow имеется и
обратная сторона медали: любая программа,
которая требует проверки идентификатора
пользователя, должна получить возможность чтения
пароля из этого файла. К таким программам
относятся пакеты, реализующие функции серверов
FTP, POP3 и IMAP. К счастью, в большинстве
сетевого программного обеспечения уже
реализованы эти возможности.
Пароли
пользователей электронной почты
Администратор
системы электронной почты может использовать
файл теневых паролей для управления
применением паролей среди пользователей
почтовой системы. Необходимо помнить о том,
что не все пользователи, работающие с
электронной почтой, подключаются к почтовому
серверу в интерактивном режиме, поэтому
изменение паролей пользователей может
оказаться более сложной задачей, чем вы
думали.
Файл group
Еще
один файл, важный с точки зрения администратора
почтовой системы, — файл
/etc/group. В нем указывается к каким
группам принадлежат те или иные пользователи.
Группирование пользователей позволяет задавать
права доступа к определенным файлам не каждому
пользователю отдельно, а группе пользователей,
что намного удобней. Пример файла
/etc/group
представлен в листинге 14.3.
1 root::0:root
2 bin::1:root,bin,daemon
3 daemon::2:root,bin,daemon
4 sys::3:root,bin,adm
5 adm::4:root,adm,daemon
6 tty::5:
7 disk::6:root
8 lp::7:daemon,lp
9 mem::8:
10 kmem::9:
11 wheel::l0:root
12 mail::12:mail
13 news::13:news
14 uucp::14:uucp
15 man::5:
16 games::20:
17 gopher::30:
18 dip::49:
19 ftp::50:
20 nobody::99:
21 users::100:
22 postgres:x:101:
23 utmp:x:102:
24 lists:x:500:
25 floppy:x:19:
26 console:x:11 :
27 xfs:x:103:
28 pppusers:x:230:
29 popusers:x:231:
30 slipusers:x:232:
31 slocate:x:21:
32 rich::501:
33 dba:x:502:
34 oinstall:x:503:oracle
35 oracle:x:504:
36 pop:x:505:
Листинг 14.3.
Пример файла /etc/group
В
листинге 14.3 представлен общий формат файла
group для ОС
Linux. В каждой строке описывается отдельная
группа пользователей. Вся информация о группе
находится в полях, разделенных двоеточиями. В
первом поле содержится имя группы пользователей.
Во втором поле содержится пароль для этой группы
пользователей. Если это поле пустое, то для
доступа к файлам, принадлежащим группе, пароль
не требуется. Как видно из листинга 14.3, в
приведенном файле group
используются теневые пароли (определенные буквой
x). В третьем поле
содержится идентификатор группы, который
присваивается членам группы для организации
доступа к файлам и каталогам. В четвертом поле
указываются идентификаторы пользователей,
принадлежащих к группе. Так, например, в строке
34 пользователь oracle
принадлежит группе
oinstall, но, кроме того, он имеет
собственную группу с именем
oracle. То есть
один пользователь может быть членом нескольких
групп.
Группы и
пользователи электронной почты
При работе с
почтовым сервером возможность объединения
пользователей в группы практически не
используется. Иногда безопаснее создавать
каждому пользователю свою группу — это
предотвратит случайное разрешение
совместного доступа к файлам. Использование
групп представляется целесообразным лишь для
обеспечения совместного доступа к почтовым
ящикам пользователям одного отдела или
подразделения компании без предоставления им
специальных прав доступа.
Утилиты для
обслуживания учетных записей пользователей
Если в имеющейся у вас версии Linux не
применяются теневые пароли, то добавление и
удаление учетных записей можно осуществлять
путем редактирования файла
/etc/passwd.
Однако мы настоятельно рекомендуем не делать
этого. Ошибки, допущенные при редактировании
этого файла, могут привести в негодность вашу
систему. Лучше всего с этой целью использовать
специальные утилиты для удаления и добавления
учетных записей. Причем они, как правило,
работают и в системах с теневыми паролями, и без
таковых.
Наиболее часто вам придется сталкиваться с
утилитой useradd.
Эта утилита, как вы уже догадались, используется
для добавления учетных записей в систему под
управлением ОС Linux. Формат утилиты
useradd следующий:
useradd [-c
comment][-d home_dir]
[-e expire_date][-f inactive_time]
[-g initial_group][-G group[,...]]
[-m [-k skeleton_dir] | -M][-s shell]
[-u uid [-o]][-n][-r] login
В
табл. 14.1 дается описание параметров,
используемых с утилитой
useradd.
Таблица 14.1. Параметры useradd
Параметр |
Описание |
-c |
Добавление
комментария в запись в файле
passwd |
-d |
Задание рабочего
каталога |
-e |
Дата истечения срока
действия пароля |
-f |
Количество дней с
момента истечения срока действия
пароля до прекращения доступа по
данному паролю |
-g |
Группа по умолчанию |
-G |
Список других групп,
которым может принадлежать данный
идентификатор пользователя |
-m |
Создание рабочего
каталога пользователя, если он не
был создан ранее |
-k skeldir |
Использование
альтернативного каталога
skel |
-M |
Рабочий каталог
пользователя не создается, если он
не был создан ранее |
-n |
В Red Hat Linux
группа с тем же именем, к которой
принадлежит пользователь, не может
быть создана |
-r |
Создание системной
учетной записи |
-s |
Определение оболочки
для входа в систему |
-u |
Определение
идентификатора пользователя |
В
листинге 14.4 представлен пример создания новой
учетной записи в ОС Linux с применением утилиты
useradd.
1 [root@shadrach
/root]# useradd -c "Riley M." riley
2 [root@shadrach /root]# cat /etc/passwd |
grep riley
3 riley:x:504:506:Riley
M.:/home/riley:/bin/bash
4 [root@shadrach /root]# cat /etc/group |
grep riley
5 riley:x:506:
6 [root@snadracn /root]# ls -al /home/riley
7 total 21
8 drwx------ 5 riley riley 1024 Nov 1 16:48
.
9 drwxr-xr-x 7 root root 1024 Nov 1 16:48 ..
10 -rw-r--r-- 1 riley riley 1899 Nov 1 16:48
.Xdefaults
11 -rw-r--r-- 1 riley riley 24 Nov 1 16:48 .bash_logout
12 -rw-r--r-- 1 riley riley 230 Nov 1 16:48
.bash_profile
13 -rw-r--r-- 1 riley riley 434 Nov 1 16:48
.bashrc
14 -rw-r--r-- 1 riley riley 2626 Nov 1 16:48
.emacs
15 drwxr-xr-x 3 riley riley 1024 Nov 1 16:48
.kde
16 -rw-r--r-- 1 riley riley 1416 Nov 1 16:48
.kderc
17 -rw-r--r-- 1 riley riley 185 Nov 1 16:48
.mailcap
18 -rw-r--r-- 1 riley riley 3846 Nov 1 16:48
.vimrc
19 -rw-r--r-- 1 riley riley 397 Nov 1 16:48
.zshrc
20 drwxr-xr-x 5 riley riley 1024 Nov 1 16:48
Desktop
21 drwxr-xr-x 2 riley riley 1024 Nov 1 16:48
tmp
22 [root@shadrach /root]#
Листинг 14.4.
Создание новой учетной записи пользователя
В
строке 1 листинга 14.4 задается команда на
создание нового пользователя с именем
riley и с текстом
комментария, который будет добавлен в поле
комментария создаваемой учетной записи. В этом
примере идентификатор пользователя и оболочки
для входа в систему заданы равными значениям по
умолчанию. В строке 3 выведена соответствующая
этой учетной записи строка из файла
/etc/passwd. Для
нового пользователя добавлена новая строка со
следующим идентификационным номером (504)
и со следующим номером идентификатора группы (506).
По умолчанию утилитой
useradd создается рабочий каталог
пользователя с именем
/home/riley. В качестве оболочки для
входа этого пользователя в систему по умолчанию
устанавливается /bin/bash.
Задав в строке 6 команду для просмотра
содержимого только что созданного рабочего
каталога, вы увидите несколько файлов, которые
были созданы вместе с ним. И откуда только
взялось столько установок по умолчанию!?
С
помощью параметра -D,
заданного с командой
useradd, можно просмотреть все значения
по умолчанию, которые используются при создании
новой учетной записи. В листинге 14.5
представлен пример работы такой команды.
1 [root@shadrach
/root]# useradd -D
2 GROUP=100
3 HOME=/home
4 INACTIVE=-1
5 EXPIRE=
6 SHELL=/bin/bash
7 SKEL=/etc/skei
8 [root@shadrach /root]#
Листинг 14.5.
Пример выполнения команды useradd -D
В
строке 3 листинга 14.5 представлено
местоположение рабочего каталога пользователя по
умолчанию, к которому утилита
useradd добавляет
имя пользователя, создавая таким образом рабочий
каталог для нового пользователя. При
необходимости можно изменить местоположение
рабочего каталога пользователя. Скорее всего,
вас как администратора почтовой системы
заинтересует строка 7, где объявлен каталог,
который является шаблоном рабочего каталога
пользователя. Другими словами, при создании
рабочего каталога пользователя копируется
содержимое именно этого каталога. В листинге
14.6 представлено содержимое каталога
/etc/skel.
1 [root@shadrach
/root]# ls -al /etc/skel
2 total 23
3 drwxr-xr-x 5 root root 1024 Sep 29 05:18 .
4 drwxr-xr-x 31 root root 3072 Nov 1 16:48
..
5 -rw-r--r-- 1 root root 1899 Apr 27 1999 .Xdefaults
6 -rw-r--r-- 1 root root 24 Jul 13 1994 .bash_logout
7 -rw-r--r-- 1 root root 230 Aug 22 1998
.bash_profile
8 -rw-r--r-- 1 root root 434 May 17 21:15
.bashrc
9 -rw-r--r-- 1 root root 2626 Apr 27 1999
.emacs
10 drwxr-xr-x 3 root root 1024 Sep 29 05:18
.kde
11 -rw-r--r-- 1 root root 1416 May 17 14:44
.kderc
12 -rw-r-.r-- 1 root root 185 May 18 10:16
.mailcap
13 -rw-r—-r-- 1 root root 3846 May 11 12:49
.vimrc
14 -rw-r--r-- 1 root root 397 Apr 27 1999
.zshrc
15 drwxr-xr-x 5 root root 1024 Sep 29 05:18
Desktop
16 drwxr-xr-x 2 root root 1024 May 18 10:12
tmp
17 [root@shadrach /root]#
Листинг 14.6.
Пример каталога /etc/skel
Как
видите, содержимое каталога из листинга 14.6
очень напоминает содержимое каталога,
представленного в листинге 14.4. Утилита
useradd берет
содержимое каталога
/etc/skel и копирует его в создаваемый
рабочий каталог пользователя. В каталоге
/etc/skel
содержится несколько файлов конфигурации, с
помощью которых пользователи подключаются к
системе и организуют сеансы из графической
оболочки X Window, и отсутствуют файлы,
определяющие конфигурацию клиента электронной
почты.
Для
упрощения работы с рабочими каталогами (особенно
при использовании протокола IMAP, когда почтовые
папки хранятся в рабочих каталогах
пользователей) можно удалить файлы шаблонов из
каталога /etc/skel.
Тогда при добавлении нового пользователя в его
рабочий каталог никакие файлы помещаться не
будут.
Предупреждение
Хотя для
пользователей электронной почты очистка
каталога skel
оправдана и желательна, для других
пользователей сервера (особенно работающих в
среде X Window) могут понадобиться файлы из
этого каталога. Если на вашем почтовом
сервере имеются и те, и другие пользователи,
то желательно использовать утилиту
useradd с
параметром -k
и отдельно создать для почтовых
пользователей пустой каталог
skel.
При создании учетных записей пользователей
каждому из них выдается пароль для входа на
почтовый сервер. Помните, что программа
useradd создает
только учетную запись пользователя. Для задания
пароля нужно использовать другую программу. По
умолчанию учетная запись пользователя закрыта
для доступа, пока к ней не будет назначен пароль
доступа. Для назначения паролей идентификаторам
пользователей применяется программа
passwd. Формат
программы passwd
следующий:
passwd username,
где username — имя
пользователя, которому необходимо изменить
пароль доступа. Для того чтобы изменять пароли
другим пользователям, необходимо войти в систему
с правами пользователя
root. Программа требует ввода нового
пароля для пользователя, а затем во избежание
ошибок просит ввести его повторно.
Графические
утилиты для обслуживания учетных записей
Для большинства дистрибутивов ОС Linux, в
которых поддерживается работа с графическими
оболочками, имеются графические утилиты для
обслуживания учетных записей пользователей. Так,
например, в Mandrake Linux имеется программа
kuser. Для работы
с ней необходимо либо зарегистрироваться в
системе с правами root,
либо воспользоваться командой для смены текущего
идентификатора пользователя на идентификатор
пользователя root.
На рис. 14.1 представлено основное окно
программы kuser.
Рис. 14.1. Главное окно программы kuser
В
главном окне отображаются все пользователи
системы на базе ОС Linux. С помощью программы
kuser можно
добавлять, удалять и модифицировать учетные
записи пользователей системы. При нажатии на
кнопку Добавить (Add) и указании нового
имени пользователя вызывается окно Свойства
пользователя (User properties). Оно показано
на рис. 14.2. В окне Свойства пользователя
задаются те же значения учетной записи, что и
при работе с утилитой
useradd и файлом
/etc/passwd.
Рис. 14.2. Окно Свойства пользователя
программы kuser
Выбрав вкладку Дополнительные (Extended),
вы можете изменить различные значения для данной
учетной записи в файле
/etc/shadow. На рис. 14.3 представлен
внешний вид окна Свойства пользователя с
вкладкой Дополнительные.
Рис. 14.3. Окно Свойства пользователя с
вкладкой Дополнительные
На
рис. 14.3 вы видите несколько полей в окне
Свойства пользователя с вкладкой
Дополнительные. Здесь все даты сроков
действия паролей вводятся в обычном формате, и
нет необходимости в сложных вычислениях с
привлечением даты 1 января 1970 года. Если в
вашей системе не используются теневые пароли, то
эти поля будут недоступны.
На
рис. 14.4 изображена вкладка Группы (Groups)
окна Свойства пользователя. В ней
выводятся все группы пользователей, имеющиеся на
сервере. Здесь администратор почтовой системы
может указать для нового пользователя
принадлежность к той или иной группе.
Рис. 14.4. Вкладка Группы окна Свойства
пользователя
И,
наконец, на рис. 14.5 представлено окно
Редактирование настроек по умолчанию (Edit
defaults) программы
kuser. В нем администратору
предоставляется возможность задания начальных
параметров для учетной записи, как и в случае
параметра -D для
команды useradd.
Здесь вы можете задать оболочку и рабочий
каталог для нового пользователя, а также
запретить копирование файлов из каталога
/etc/skel в
рабочий каталог новых пользователей, что весьма
удобно для администратора почтовой системы.
Рис. 14.5. Окно Редактирование настроек
по умолчанию программы kuser
Мониторинг
почтового сервера
В
обязанности администратора почтовой системы
входит мониторинг работы сервера электронной
почты. Иногда это оказывается довольно
трудоемкой задачей. На почтовом сервере, как
правило, одновременно происходит несколько
событий, и отслеживать их задача довольно
трудная. Во-первых, необходимо постоянно следить
за соединением с сетью Internet, чтобы быть
уверенным в нормальной циркуляции почты между
локальным сервером электронной почты и сетью
Internet. Кроме того, здесь же можно наблюдать
попытки несанкционированного проникновения на
ваш сервер хакеров или попытки его использования
спамерами. Во-вторых, особое внимание следует
уделить работе сервисов POP3 или IMAP, с помощью
которых пользователи общаются с почтовым
сервером. Что же касается почтовых ящиков
пользователей, то обеспечение необходимого для
работы дискового пространства тоже входит в
перечень задач, решаемых администратором.
Таким образом, администратор почтовой системы
должен отслеживать все эти процессы и быстро
реагировать в случае возникновения каких-либо
проблем. К счастью, в ОС Linux имеется несколько
утилит, облегчающих жизнь почтового
администратора. В этом разделе мы рассмотрим
программы формирования системных отчетов в ОС
Linux, с помощью которых администратор системы
электронной почты может проводить мониторинг
работы почтового сервера и выявлять проблемы по
мере их появления.
Программа
syslogd
В
операционной системе Linux программа
syslogd
отслеживает все события, которые происходят в
системе, и протоколирует их в файлах отчетов
системы. Как администратор системы электронной
почты вы обязаны уметь анализировать файлы
отчетов и выявлять с их помощью проблемы в
работе тех или иных служб. Просмотр и анализ
файлов отчетов хотя бы раз в день должны войти у
вас в привычку.
Обычно программа syslogd
запускается процессом
init во время загрузки системы и работает
в фоновом режиме. В большинстве версий ОС Linux
она запускается по умолчанию. Проверить,
запущена ли она на вашем сервере, можно с
помощью команды:
ps ax | more
По
этой команде будут отображены все процессы,
которые в данный момент запущены в системе. При
запуске программа syslogd
считывает свой файл конфигурации, где
описываются типы сообщений, помещаемых в файлы
отчета, и способы их формирования.
Системные события, которые подлежат
протоколированию в файлах отчета, могут быть
заданы администратором почтовой системы. Можно
создавать столько файлов отчетов, сколько вам
покажется необходимым. В каждом из этих файлов
должна содержаться информация об определенных
системных событиях или о работе только одной из
служб системы. В табл. 14.2 приведены типы
системных событий, которые встречаются в ОС
Linux.
Таблица 14.2. Типы системных событий в
syslogd
Событие |
Описание |
auth |
События систем
аутентификации и безопасности |
authpriv |
Частные события
систем аутентификации и безопасности |
cron |
События
демон-процесса
cron |
daemon |
События системных
демон-процессов |
kern |
События, связанные с
ядром системы |
lpr |
События, связанные с
работой принтера |
mail |
События в работе
почтовых программ |
mark |
Внутренние проверки
целостности системных ресурсов |
news |
События в работе
программ для чтения новостей |
syslog |
Внутренние события
программы
syslogd |
user |
События на уровне
пользователей |
uucp |
События в работе
программ UUCP |
local n |
Локальные события (n
принимает значения от
0 до
7 ) |
Каждое событие имеет приоритет, который
назначается в соответствии с важностью для
работы системы того или иного события. В табл.
14.3 представлены все виды приоритетов от самого
низкого (debug) до
самого высокого (emerg).
Более низкий приоритет события означает менее
важные для работы системы события, а высокий
приоритет — события, критичные для работы
системы.
Таблица 14.3. Типы приоритетов в syslogd
Приоритет |
Описание |
debug |
События при отладке
работы системы |
info |
События
информационного характера (уведомления) |
notice |
Обычные сообщения |
warning |
Предупреждения |
err |
Сообщения об ошибках |
crit |
Критические условия
для работы системы |
alert |
Сигналы тревоги |
emerg |
Неустранимые ошибки в
работе системы |
В
последующих разделах мы рассмотрим работу
программы syslogd
и способы ее конфигурирования для формирования
различных файлов отчета.
Параметры
syslogd
Формат команды на запуск следующий:
syslogd options,
где options — это
список параметров, с помощью которых можно
управлять поведением программы
syslogd. Все
возможные параметры
syslogd представлены в табл. 14.4.
Таблица 14.4. Параметры syslogd
Параметр |
Описание |
-a socket |
Определяет
дополнительные порты, с которыми
возможно соединение |
-d |
Включает режим
отладки |
-f config |
Использовать файл
конфигурации, указанный с помощью
команды
config |
-h |
Пересылать сообщения
с удаленных хостов на другие
почтовые узлы |
-l hostlist |
Список хостов,
которые заносятся в файл отчетов
только с именами хостов |
-m interval |
Устанавливает метку
времени MARK
в файле отчетов (установка в
0
запрещает формирование меток времени) |
-n |
Запрещает
автоматический запуск в фоновом
режиме |
-p socket |
Определяет
альтернативный порт, который может
использоваться для подключения
syslogd
с удаленного узла |
-r |
Разрешает выдачу
подтверждения при организации
syslogd
-соединения с удаленным узлом |
-s domainlist |
Определяет список
доменных имен, которые должны быть
удалены перед занесением в файл
отчета |
-v |
Выдает номер версии
syslogd |
Сервер под управлением ОС Linux имеет
возможность работать в режиме удаленного сервера
syslogd. По
умолчанию эта функция отключена. Если запустить
syslogd с
параметром -r, то
это позволит серверу на базе ОС Linux получать
отчеты о работе удаленных систем и помещать их в
свои файлы отчетов. Эта возможность может
пригодиться, если имеется несколько серверов на
базе ОС Linux и вы желаете получать отчеты об их
работе в определенный каталог на одном из этих
серверов.
Предупреждение
Будьте
осторожны при применении параметра
-r, если
имеется прямое соединение с сетью Internet.
Широко распространенная хакерская атака
предполагает посылку большого числа
фальшивых отчетов о работе системы на порт
syslog
удаленной системы, что приводит к
переполнению дискового пространства и
отказам в ее работе.
По
умолчанию во время запуска программа
syslogd считывает
файл конфигурации, где определяются действия,
которые она должна предпринять в определенной
ситуации. В следующем разделе описаны форматы
файла конфигурации
syslogd.
Файл
конфигурации syslogd
Файл конфигурации syslogd
по умолчанию находится в
/etc/syslogd.conf. В нем содержатся
директивы, с помощью которых программе
syslogd
указывается, какие типы событий и каким образом
документировать в файлах отчетов. Формат файла
/etc/syslogd.conf
следующий:
event.priority
action
Каждая строка в файле
/etc/syslogd.conf представляет различные
действия. В зависимости от типа и приоритета
системного события могут выполняться такие
действия:
- сообщение
о событии выводится на системную консоль;
- сообщение
о событии помещается в соответствующий файл
отчета;
- сообщение
о событии отправляется на удаленный хост,
где ведется обобщение отчетов.
Файл конфигурации представляет собой комбинации
системных событий и действий, которые должны
выполняться программой
syslogd. В листинге 14.7 приведен пример
файла /etc/syslogd.conf.
1 # Log all kernel
messages to the console.
2 # Logging much else clutters up the
screen.
3 kern.* /dev/console
4
5 # Log anything (except mail) of level info
or higher.
6 # Don't log private authentication
messages!
7 *.info;mail.none;authpriv.none
/var/log/messages
8
9 # The authpriv file has restricted access.
10 authpriv.* /var/log/secure
11
12 # Log all the mail messages in one place.
13 mail.* /var/log/maillog
14
15 # Everybody gets emergency messages, plus
log them on another
16 # machine.
17 *.emerg *
18 *.emerg @meshach.smallorg.org
19
20 # Save mail and news errors of level err
and higher in a
21 # special file.
22 uucp,news.crit /var/loq/spooler
Листинг 14.7.
Пример файла /etc/syslogd.conf
В
листинге 14.7 представлен файл
/etc/syslogd.conf
для системы Mandrake Linux 6.0. В строках 1 и 2
вы видите, как задаются комментарии в файле
конфигурации. Подобные строки не обрабатываются
программой syslogd.
В строке 3 заданы символы "звездочка", которые
обозначают что все сообщения, касающиеся работы
ядра, независимо от их приоритета, будут
посылаться на системную консоль.
Строка 7 представляет собой пример задания
сложной конфигурации. В одной строке может
задаваться несколько событий. Пары событий и их
приоритетов разделяются двоеточием. Так,
например, первая пара —
*.info. Здесь определяются все приоритеты
событий, начиная с приоритета
info и выше.
Помните, что более высокие приоритеты
указываются в конце строки конфигурации.
Вторая пара — mail.none,
— вероятно, выглядит немного странно. Наверное,
у вас возник вопрос, почему мы не упомянули о
приоритете none.
Однако с помощью этого слова в данном случае
исключаются все события, касающиеся работы
почты, независимо от их приоритета. То есть
определенные ранее параметры не касаются событий
почтовой системы на сервере. Следующая пара —
authpriv.none —
выполняет те же действия. Таким образом, запись
в строке 7 определяет, что все события в
системе, за исключением
mail и authpriv,
будут записываться в файл отчетов
/var/log/messages
с приоритетом info
и выше.
В
строках 10 и 13 определяются действия по ведению
файлов отчетов событий типа
mail и
authpriv. В строке
10 указывается, что все события типа
authpriv с любым
приоритетом будут фиксироваться в файле
/var/log/secure. В
строке 13 определяется, что все события при
работе с почтой с любым приоритетом будут
помещаться в отдельный файл
/var/log/maillog.
Представленная схема ведения файлов отчетов
весьма удобна при анализе системных событий.
Вероятно, как администратор почтовой системы вы
пожелаете собирать все сведения о работе почты в
определенный каталог на сервере. Это можно
осуществить с помощью приведенных ниже примеров
конфигурации.
В
строке 18 дается пример использования удаленного
сервера syslog для
хранения файлов отчетов. Все сообщения с
наивысшим приоритетом будут посылаться на узел
meshach.smallorg.org.
Если локальный сервер выдал сообщение с
наивысшим приоритетом, что означает появление
неустранимой ошибки, то вы даже не сможете
прочесть файл отчета на нем. Выход очевиден:
посылать сообщения о критичных сбоях в работе
системы на другой узел (при условии, что
возникшая га сервере ошибка позволяет это
сделать).
Защита от
хакеров и спамеров
Одной из сложнейших задач, возлагаемых на
администратора системы электронной почты,
является защита целостности почтового сервера и
предотвращение попыток несанкционированного
доступа к нему. Очевидно, что пользователи
почтового сервера должны быть ограждены от
малейших внешних воздействий, которые могут
привести к потере или порче информации из их
почтовых ящиков. Довольно часто администратор
почтовой системы обнаруживает, что источник
нелегальной активности на сервере находится в
файлах отчетов. В листинге 14.8 представлен
фрагмент файла
/var/log/maillog с почтового сервера на
базе Mandrake Linux.
1 Nov 2 19:09:12
shadrach sendmail[5365]: NOQUEUE: "wiz"
command from [192.168.1.15] (192.168.1.15)
2 Nov 2 19:09:14 shadrach sendmail[5365]:
NOQUEUE: "debug"
command from [192.168.1.15] (192.168.1.15)
Листинг 14.8.
Фрагмент файла отчета о сеансе SMTP
В
листинге 14.8 показаны две попытки
несанкционированного доступа к программе
sendmail через сеть. В обоих случаях хакер
использовал старые "хакерские" команды
"wiz" и
"debug", которые
уже давно запрещены для выполнения программой
sendmail. Проанализировав файл отчета, вы можете
определить адрес, с которого были направлены эти
команды. Далее общепринятая практика
предполагает информирование вашего провайдера
Internet об этих попытках несанкционированного
доступа к вашему почтовому серверу. С
определенной долей вероятности ваш провайдер
сможет отследить источник, откуда
предпринимаются попытки взлома вашего сервера.
Помимо этих сообщений, в файле отчетов о работе
sendmail вы можете найти и другие сообщения. В
листинге 14.9 приведен пример попытки
проникновения на сервер POP3.
1 Nov 2 16:24:49
shadrach ipop3d[5373]: port 110 service init
from 192.168.1.15
2 Nov 2 16:24:49 shadrach ipop3d[5373]:
Login failure user=rich host=[192.168.1.15]
3 Nov 2 16:24:52 shadrach ipop3d[53731:
AUTHENTICATE LOGIN failure
host=[192.168.1.15]
4 Nov 2 16:24:52 shadrach
ipop3d[5373]:Command stream end of file
while reading line user"??? host=[192.168.1.15]
5 Nov 2 16:24:55 shadrach ipop3d[5374]: port
110 service init from 192.168.1.15
6 Nov 2 16:24:55 shadrach ipop3d[5374]:
Login failure user=rich host=[192.168.1.15]
7 Nov 2 16:24:58 shadrach ipop3d[5374]:
AUTHENTICATE LOGIN failure
host=[192.168.1.15]
Листинг 14.9.
Пример файла отчета о сеансе POP3
В
листинге 14.9 представлен файл отчета о событиях
в системе электронной почты. Здесь вы видите,
как пользователь, который не знает своего пароля,
пытается войти в систему. Обратите внимание, что
в строках 2 и 6 программа для работы с POP3
сгенерировала предупреждающие сообщения о том,
что в доступе на сервер пользователю отказано, и
зафиксировала IP-адрес компьютера, с которого
осуществлялись попытки подключения к серверу.
Если бы это был реальный хакер, то ваш провайдер
Internet смог бы отследить его IP-адрес и
определить, откуда были предприняты попытки
несанкционированного доступа к вашему серверу.
Резюме
Итак, мы выяснили, что администрирование
почтовой системы заключается не только в
установке и настройке почтовых программ. Учетные
записи пользователей также должны создаваться и
обслуживаться администратором почтовой системы.
В ОС Linux существует несколько способов
обслуживания учетных записей пользователей. Так,
изменять существующие и добавлять новые учетные
записи из командной строки вы можете с помощью
утилиты useradd. В
графической среде X Window также имеется утилита
для управления учетными записями —
kuser. Обе утилиты
создают новые учетные записи в файле
/etc/passwd и, в
зависимости от используемой вами системы, в
файле /etc/shadow
создаются еще и пароли. Кроме того,
администратор почтовой системы также должен
вести наблюдение за файлами отчетов в системе и
в случае нестандартного поведения со стороны
сервера либо его пользователей предпринимать
адекватные действия. Любые проблемы в работе
программного или аппаратного комплекса сервера
должны быть своевременно локализованы.
Необходимо также отслеживать все попытки
несанкционированного доступа к серверу.
Многочисленные безуспешные попытки получения
доступа к серверу или соединения с ним явный
признак того, что либо пользователи вскоре
позвонят вам с вопросом, либо вы являетесь
свидетелем попытки взлома вашего почтового
сервера.
|