Академический Документы
Профессиональный Документы
Культура Документы
Санкт-Петербург
«БХВ-Петербург>
2006
УДК 681.3.06
ББК 32.973.202
СП
Стахнов А. А.
СП Сеть для офиса и Linux-сервер своими руками. — СПб.:
БХВ-Петербург, 2006. — 320 с : ил.
ISBN 5-94157-668-4
Описывается установка, конфигурирование и настройка Linux-сервера для
небольшой локальной офисной сети, где клиентские машины работают под
управлением Microsoft Windows. Рассмотрен жизненный цикл небольшой ком-
пании, которая расширяется, и по мере расширения усложняются задачи, воз-
ложенные на сервер организации. Освещены практические аспекты установки
и администрирования серверов: почтового, web-, файлового, печати. При опи-
сании конфигурирования сервера используются 2 варианта решения задачи —
с помощью графических программ удаленного администрирования и посредст-
вом конфигурационных файлов.
УДК 681.3.06
ББК 32.973.202
Настройка маршрутизатора 76
Кэшируюший DNS-сервер 77
Настройка сетевых параметров 78
Файл host.conf 78
Файл /etc/hosts 79
Файл /etc/resolv.conf 79
Установка DNS-сервера 79
Настройка кэширующего DNS-сервера 79
Файл /etc/named.conf 80
Файл/etc/127.0.0 81
Запуск named 82
Определение стратегии,
выбор дистрибутива
и аппаратного обеспечения
Аппаратное обеспечение
Начнем мы с "железа". Не знаю как у вас, а в наших пенатах хозяева фирм
могут позволить себе неслабую мебель, евроремонт, приличные автомоби-
ли и не могут позволить себе приличный Интернет, компьютеры, монито-
ры и периферию. Жизнь такая, тяжелая. В результате, системный админи-
стратор должен выкручиваться и собирать компьютеры из всякого старого
хлама. Особо это касается бюджетных учреждений. Поэтому я буду оттал-
киваться от цены, скажем, в 350—450 долларов США. Давайте не будем
спорить и размахивать руками — знаю я, что такое "правильный" сервер.
Я не возражаю, если вы сможете достать ProLiant, но рассчитывать нужно
на минимум.
Что нам нужно? Если планируется, что сервер также будет и рабочим ме-
стом системного администратора, то это потребует дополнительных за-
трат — на монитор, дополнительную оперативную память и более емкий
жесткий диск. Итак, в табл. 1.1 приведена приблизительная конфигурация
нашего компьютера, способного служить многоцелевым сервером и одно-
временно рабочим местом системного администратора.
12 Глава 1
Программное обеспечение
Первым делом необходимо определиться, какой дистрибутив будет исполь-
зоваться для установки на наш сервер. Я не буду останавливаться на клас-
сификации всех систем, подробно рассматривать их особенности, плюсы
и минусы их использования. Тем, кому это интересно, могу порекомендо-
вать Интернет или мою книгу "Linux". Здесь же я кратко расскажу о группах
дистрибутивов и постараюсь объяснить, почему я выбрал Fedora Core в ка-
честве решения для сервера.
Люди, в первый раз обратившие свое внимание на Linux, с ужасом узнают,
что Linux — это ядро операционной системы, которое везде одинаково
(правда, есть варианты ядра реального времени, есть с повышенной безо-
пасностью, но в целом — ядро одно), а вот дистрибутивов великое множест-
во. Что подразумевается под этим словом? Дистрибутив — это инсталляци-
онная программа, набор приложений, схема их обновления, политика
(безопасности, разбиения диска, вариантов установок и т. д.), тот или иной
менеджер пакетов, стратегия развития, и самое главное — подгонка разно-
родных программ для нормальной совместной работы. Многие думают,
что в мире Windows такого нет. На самом деле Windows 2000 Workstation,
Windows 2000 Server, Windows XP Home и Windows XP Home Edition — это
дистрибутивы. Ядро системы одинаковое, различен только набор приложе-
ний и политика (убраны или добавлены некоторые возможности).
J_4 Глава 1
Стратегия установки ПО
После того как мы определились с "железом" и дистрибутивом, перейдем
к стратегии инсталляции программного обеспечения.
В программе-установке системы есть специальный пункт — Server (Сервер),
при выборе которого будут устанавливаться пакеты, предназначенные для
конфигурации системы в режиме "среднестатистического сервера". В сле-
дующей главе я расскажу, как установить сервер, используя эту возмож-
ность, и, как альтернатива, будет рассмотрен ручной выбор пакетов.
Основной посылкой при установке является минимализм и пошаговый подход.
Сначала мы устанавливаем минимальный набор программ, необходимый и
достаточный для функционирования сервера, настраиваем нужные службы,
а в каждой главе я ставлю задачу, например, организовать доступ в Интер-
нет для локальной сети через коммутируемое соединение, и мы устанавли-
ваем необходимые для этого пакеты, конфигурируем их, не забывая о безо-
пасности системы.
Прошу прощения заранее — я не буду рассматривать установку графической
системы и графические конфигураторы, поскольку помимо сотен мегабайт
необходимого дополнительного программного обеспечения, мы автоматиче-
ски увеличим вероятность взлома системы или количество проблем, вызы-
ваемых неправильным функционированием программ. Но самое главное —
вы не получите тех знаний, которые необходимы для понимания принципов
Определение стратегии, выбор дистрибутива и аппаратного обеспечения 19_
Как видите, задач достаточно много. Но, как говорят китайцы, — "даже путь
в тысячу ли начинается с первого шага ". Шагом, марш!
Ссылки
В целом, по поводу выбора дистрибутива и аппаратного обеспечения, ниче-
го особенного я посоветовать не могу. Читайте информацию на сайтах про-
изводителей, подпишитесь на новостную группу, пообщайтесь на форумах
и сайтах, посвященных Linux. Но есть один универсальный совет — "выби-
райте тот дистрибутив, который хорошо знает ближайший гуру" (С). Народ-
ная мудрость.
О www.Iinux.org.ru — один из основных русскоязычных web-сайтов, посвя-
щенных Linux.
• www.linux.org — web-сайт о Linux.
• www.linuxdocs.org — web-сайт, содержащий много литературы о Linux.
• www.linuxrsp.ru — русскоязычный web-сайт.
О www.redhat.com — web-сайт Red Hat.
О www.altlinux.ru — официальный web-сайт Alt Linux.
О www.asplinux.ru — официальный web-сайт ASP Linux.
D www.citforum.ru — здесь вы найдете большое собрание русскоязычной
документации и книг, в том числе посвященных Linux.
Глава 2
Установка
и первоначальная
настройка сервера
В этой главе мы произведем установку нашего сервера, причем будем рас-
сматривать два варианта установки: с помощью графического интерфейса
и в текстовом режиме. И две стратегии — установка по умолчанию и само-
стоятельный выбор пакетов.
Первичную настройку сервера будем производить как во время, так и после
установки системы. В нашем случае это будут: настройка сетевого интер-
фейса, настройка брандмауэра, DNS (Domain Name System, доменная сис-
тема имен), маршрутизация.
Установка дистрибутива.
Стандартный вариант
В этом разделе мы рассмотрим наиболее легкий, с точки зрения пользовате-
ля, вариант установки сервера. Минимальные телодвижения, минимальное
вмешательство в процесс установки — "за нас уже подумали". Для быстрого
старта системы самое то, правда, в дальнейшем придется почистить систему,
кое-что добавить, но несомненным плюсом этого подхода является мобиль-
ность развертывания системы — полчаса и сервер готов.
Fedora
СО R
CliineseiSlmplIf 1ел)
Clilncse(Tr-aditianal)
i .4 1.-4 I..\l
Пптпмлтичг-пкпг.: iirt.t6ur.HUf
1
Перед тем, как программа уст&ноаки вмюлмит
1 1
Вы выбрали удаление ьсех разделов (ВСЕХ
ространитиа
Устройство Ha
•«MM UnlGrniiM
LU : swap
IV LogUolBB •MOM ext3 /
/dev/hda
Mat 1 • 13 1В1П ext3 /boot
hdaZ 65Z 5812И physical v
Очень спорное разбиение диска и вот почему — если диск не разбит на не-
сколько томов, каждый из которых предназначен для отдельного каталога
дерева каталогов Linux, то при переполнении жесткого диска система не
сможет нормально функционировать, поскольку должны создаваться вре-
менные файлы, куда-то записываться файлы журналов, где-то храниться
базы данных и т. д. и т. п. Поэтому рекомендуется либо назначать квоты
дискового пространства для каждого пользователя, либо выделить отдельные
дисковые тома под некритичные для функционирования сервера каталога.
Обычно всегда выделяется каталог /boot, так же рекомендуют выделить либо
Установка и первоначальная настройка сервера 29
весь каталог /var, либо его части, например, /var/samba или /var/http, и ка-
талог /home. Тем не менее, если вы будете устанавливать квоты на дисковое
пространство или административными методами не допускать переполнения
жесткого диска, можно оставить разбиение в таком виде, как предлагает ин-
сталлятор. Как пользоваться программой Disk Druid, мы узнаем в разделе
графической инсталляции. После разбиения диска появится экран, изобра-
женный на рис. 2.12.
Шли,; •.:!;:;:;.:.,;..
Первичней M1S:
Вторичньм DN;i:
Тротичньм [HIS:
2 3ак. 1500
34 Глава 2
\ Имя компьютера
( ) автоматически по DHCP
Разрешив exfi(iHu»ir.
Икса ininn
галочку в пункте System clock uses UTC (Системные часы используют Уни-
версальные временные координаты) и нажимаем ОК.
Далее мы должны ввести пароль пользователя root (рис. 2.28).
Ппдгвепоите плроль:
1 Редакторы
и инженерны)
1 Графические среастаа Интернет
« ] Тестовые сревстаа Интернет
Внимание
root — суперпользователь, аналогичный пользователю Администратор в Win-
dows. Он может ВСЕ! Поэтому очень рекомендую выбрать нормальный пароль,
длиной 7 и более символов.
* НпЧаяо !(г.тпт»ки \—
Полиьм протокол установки плиеи системы
после перезагрузки Кудет нлхлаитьем в
/runt/inst.\11 . Ing. Возможно вам
понадобится к нему обратиться.
перечисленные перезагрузка
"Перезагрузка"
Придияжить
-) астлмоик* пакета
Байт Время
48Э швгм 8:23:51
8 .:..:.: •:•''•; m В:ВВ:83
18ШМ 8:Z3:4?
Ипя: foiits-K0I8-R-l.B-7-ncwrc)i
Рлэпер: i — 1 Сиена CD-FC
Сведения:
Вставите пожалуйста Fedora Core лиси
Э лля щюаолхении.
Вг.его
Заверши
истллос
1
•' I ' otoeo I •
Fedora
Тг» Install or upgrade it! graphical node, p r e s s t h e <EHTER> key.
Fedora
Welcome to
Fedora Core
During this installation, you can f
Fedora
use your mouse or keyboard to n
navigate through the various I
screens.
Fedora
What language would you like ta use during the installation
Language Selection process?
: j Croatian (Hrvatski)
Czech E^eStira)
Danish (Dan.sk)
•i; Dutch (Nedcriands)
:
I Estonian (ee&ti ked)
| Finnish (swomi)
French (Francais)
| German (Deutsch)
I Gujarati (^VIKII)
I Hindi 8HI)
| J Hungarian (magyar)
1 Icelandic (fslenska)
:l Release Notes
Fedora
<
' Выберите общееистемную раскладку клавиатуры.
Настройка
: Italian (it2)
клавиатуры ;Japanese
Latin American
Fedora
Персональны п хомлью тер
установки обратитесь к
документации.
Скрыть ^правку
Fedora
Разбиение диска
Одним из самых больших •;
препятствий для новичков в В
Автоматическое разбитие будет выполнено иа основе
установке Linux является ;|
аыбранмого вами типа установки. Вы также можете
разметка диска. Процесс Е изменить "разбиение в соответствии с вашими нуждами.
пройдет более гладко при 1
проведении автоматического I Утилита ручного разбиения диска, Disk Druid, позволяет
настроить разделы s интерактианом окружении, Вы
разбиения диска.
монета установить типы файловых систем, точки
монтирования и многое другое.
Если вы выберите
% Автоыатическав разбиение
автоматическую разметку,
О Ручное разбиение программой Qjt$k Dfuitf
вам не нужно будет
использовать программы
разметки для назначения
точек монтирования,
создания разделов и
распределения места для
Fedora
Разбиение диска
Одним из самых бол
препятствий для нов!
Таблица разделов на устройстве sda нечитаема. Для • :о на основа
установке Linux явля *>
; создания новы* разделов устройство должно быть : % можете
разметка диска. Про; • • инициализирована. ВСЕ ДАННЫЕ на этом устройстве • "•;•• ш и нуждами.
пройдет более гладк| "• ''"':. б у д у т у т е р я н ы , ' •• : •• • :" •••••.••• • .• .. •••.•
Внимание
Fedora
Настройка
95 MBMMoctefc VMwarg,VMwar« Virtual Si
разметки диска
Выберите, куда вы хотите
установить Fedora Core.
Если вы выбрали
автоматическое разбиение
диска яы.млжятв..шдАя. . j Скрыть устройства RAID/участников группы LVM т
ЩСкрыть справку • . • • :
.":'•• \Щ Назад jg& Далее |
Fedora
Настроим
р а З М е Т К И Точка монтирования: ;|
I Есливынезне . . ;;;:;::::::::;::•;::;::::::::::::;:::::::::::
провести раз** Размер {Мбайт): jlOO
вам н у ж н а пом : ДJ,on оиц.т рплч&ръ '" "•" •:
использований i # ' * и к с . размер
| инструментар^ \:Q заполнить все пространство до (Мбайт)!
: проведения рй j
О Занять все доступное пространство
| вручную, обра-. •
I документации; .1..1Сделат& первичным разделом
j Если вы выбра -
автоматическое разбиение \Щ f-*;; ••• ••••
G
цдо^цы.дожАде.ад£а, Ш Скрыть устройства RAi^ysacTHHKOB группы LVM
Fedora
Настройка
Drive ,*i*Wsda (4095 М 8) {Mtxwr VMwar», VM*«№ VITHMI S >
разметки диска • sda5 sda6
И 99Б MB №9 MB 400 MB 2036 MB
Fedora
Загрузчик GRUB будет установлен на s вменить загрузчик
Настройка
Вы можете настроить загрузчик для загрузки других
начального отэрациоимсчх систем. Это пэтамит выбран?
операционную систему из списка при загрузке. Чтобы
загрузчика добавить другу о операционную с ис тему, которая на
быт г&кфулемд аетомии-ихаи нажмете кнопку
По умолчанию "Добавить". Чтобы выбрать ОС, загружаемую по
умолчанию, установите параметр 'По умолчанию" для
устанавливается загрузчик
' ЗТоЙОС... • • • •••:•:• •• :
операционной системы
GRUB. Если вы не хотите По умолчанию Ярлык . {Устройство
устанавливать GRUB, Fedora Core /ttev/sda6
Изменить
нажмите кнопку Сменить
загрузчик.
Fedora
Секевош устроие* ш
Настройка сети
Fedora
Настройка сети
A4«.««poiai»
Устройство
при загрузке
Все сетевые устройства, :|
имеющиеся в системе,
автоматически определеГ
! программой установки и
показаны в списке Сетев! П Иопольэовать DHCP
устройства). g j Д К Т И В И З ИрОВВТЬ При ЗйГруЭКв
•,' нового:
Fedora
Брандмауэр может помочь предотвратить иеа&ториэованкый доступ к
вашему компьютеру из внешнего мира. Включить брандмауэр? .
Настройка
. •': О Ё в э брандмауэра
брандмауэра #; Цключить враидмауэр
системой и сетью и
определяет, к каким
• Веб-сервер (HTTP, HTTPS1
ресурсам вашего
О Передача файлов (FTP)
компьютера удаленный
D Почтовый сервер (SMTP)
пользователь в сети может
иметь доступ. Грамотно
настроенный брандмауэр Опйхс Улучшенной Безопасностью (SEUnu*) позволяет точнее
сильно повышает управлять безопасностью,, чем традиционные Linux системы.
безопасность вашей Вы можете настроить его в выключенном состоянии, в
'котором только формируются сообщения о том, что, должно
системы.
быть запрещено, или в полностью включенном состоянии.
@[С1;рыть£прав)су| о]
Fedora
Выдерите основной яаыс для этой системы: English (USA) :. v
Поддержка
Выберите дополнительные языки, которые йудут
дополнительных использоваться е»тои системе:
LJ bngtish (Botswana)
языков I О English (Canada)
I D English (Denmark)
Выберите язык, который I D English (Great Britain)
будет использоваться в I G English (Hong Kong)
качестве основного языка ] П EnaJish (India)
системы после установки. i] D Engfish dtdand)
Если вы установите I П English <Ncw Zealand)
поддержку нескольких П English (Philippines)
('-] English (Singapore)
языков, после установки
| D English (South Africa)
можно будет сменить
основной язык.
D English (Zimbabwe)
D Estonian
{ Программа установки D Faraese (Faroe Islands)
позволяет установить П Finnish
; поддержку нескольких Q^French (Belgium)
Fedora
Вы можете прокрутить
список географических Укажите, пожалуйста, ближайший к вам город
названий и выбрать нужную Щ
временную зону.
•ыть справку
Fedora
Учетная запись root используется для
Подтвердите:
Используйте учетную запись Е
суперпользователя только
I
для администрирования. По I
I
завершении установки
создайте вида одну, не
административную, учетную §
запись для обычной работы I
I
и пользуйтесь командой su I
1
- для работы в качестве
администратора, если что-то В
надо быстро исправить. Это
простое правило,
соблюдение которого сведет [
к минимуму возможность
Fedora
Оконные менеджеры
Выбор групп • Сист«ма X Window [O'41]
пакетов f-0) Установите эту группу пакетов, чтобы получить
^w графический интерфейс пользователя (X)
i
ЗСкрытыгправку 3 НОВОГО j
Fedora
ПЗКбТОВ '• Группы пакетов могут включать как обязательные., так и необязательные
j компоненты. Обязательные компоненты всегда выбраны, если выбрана
: группа пакетов.
Выбор г р у п п ы j Выберите необязательные компоненты для установки:
умолчанию и д;..
удалить дополнительные
...пякяхы и х а т п й ГПУППЫ
ь ^правку
Fedora
Все готово к
установке
Fedora
Все готово к
установке
"Нового!
Fedora
г
Установка пакетов
Мы содрали всю информацию,
необходимую для установки
Fedora
Fedora Core в систему. Процесс
установки может оказаться
длительным,это зависит от
кол-ва пакетов, которые надо о
установить.
Fedora
Установка пакетов
Мы собрали всю информацию,
необходимую для установки
Fedora Core в систему. Про1
установки может оказаться
длительным,ето зависит от
кол-ва пакетов, которые надо Вставьте пожалуйста Fedora Cone
:йиск Здяя продолжения. .
установить.
oaoroj
«У]' ::::jt»HTO нового |V £- [
Рис. 2.57. Смена инсталляционных компакт-дисков
56 Глава 2
Fedora
Fedora
Персональный компьютер
Тип установки Прекрасно подходки дни настольных йпорга.гианы*
установки обратитесь к
документации.
С* рыть inpae* у
Fedora
- Оконные менеджеры
Выбор групп О Системах Window (№41]
пакетов гШ\ Установите эту группу пакетов, чтобы получить
«*•* графический интерфейс пользователя (X)
|Скрыть
Fedora
end machines.
Выбор
ПЗКбТОВ '• Группы пакетов йогу i эключать как: обязательные, так и необязательные
' компоненты. Обязательные компоненты всегда выбраны, если выбрана
1 группа пакетов. . • •".: ' ' • ".. :.' .•''•'•.'.' ••..•.:•.•
Выбор группы i Выберите необязательные компоненты для установки:
: ;
(приложений},! •! ' """ '" '"щ:
хотите у с т » Ц Обязательные пакеты
Дополнителы
Полный размер;
просмотра, как
пакеты устано; \ Ш Отменить :
умолчанию и д| .;,. _.
удалить дополнительные
Полный размер: 2;260М
.ЛЯКЙТЫИ'Я -ЗТП.Й ГПУППЫ ,...:L*J
'^Чтонового
Fedora
предыдущими выпусками Red Hat Enterprise Linux.
Выбор rj:
ПЗКбТОВ i Группы пакетов могут акпючать как обязательные, так и нйобнэатепвньи
i компоненты. Обязательные компоненты всегда выбраны, если выбрана
: группа пакетов. .."• -•••• '•••'••-. .-.••. .'• \ ••
Выбор группы | ВыбврйтУнеобязательные компоненты для установки;
{Приложений),! [ i ^ "si»:^ ш^иириванииьпйскв дда/1Ок.1ч^вуинюх фйянов-;
умолчанию и д;
удалить дополнительные Ш
нового
Резюме
В этой главе мы рассмотрели, различные варианты инсталляции дистрибути-
ва, выяснили, чем они отличаются друг от друга, и произвели инсталляцию
нашего сервера в минимальной конфигурации, а так же произвели первич-
ную настройку сетевых параметров. В дальнейшем мы будем наращивать
функциональность нашего сервера. Кстати, процесс инсталляции дистрибу-
тива "вручную" занял порядка 20—25 минут.
Глава 3
Настройка разделяемого
коммутируемого модемного
соединения для общего
сетевого пользования
В этой главе мы настроим модемное соединение и организуем доступ ло-
кальной сети в Интернет, произведем конфигурирование брандмауэра для
защиты нашей локальной сети, произведем установку и настройку DNS-
сервера.
Подключение к Интернету
После установки сервера нужно заняться делом — сервер не самоцель,
а всего лишь инструмент. Сначала мы идем к бухгалтеру и просим денег на
внешний модем, подключаемый к последовательному порту. Почему имен-
но такой модем? Почему не внутренний, не внешний US В?
Давайте разберемся, какие вообще бывают модемы для коммутируемого со-
единения, их достоинства и недостатки.
Внешние модемы
Внешние модемы делятся на два класса:
• модемы, подключаемые к последовательному порту;
• модемы, подключаемые к USB.
Рассмотрим достоинства и недостатки внешних модемов.
Внутренние модемы
Внутренние модемы можно разделить по реализации математической обра-
ботки сигнала и по интерфейсам подключения модемов. В общем случае,
внутренние модемы делятся на две категории — аппаратные (hardware) и
программные (soft или win) модемы. Первые — полные аналоги внешнего
модема, за исключением того, что они реализованы в виде плат расширения.
Второй тип — порождение подхода "экономика должна быть экономной".
1
Автоматический определитель номера.
Настройка разделяемого коммутируемого модемного соединения... 65
ЗЗак.1500
66 Глава 3
Связь с провайдером
Для подключения локальной сети к Интернету с помощью модема обычно
используют два варианта. Первый из них предназначен для тех, кто платит
за трафик, а второй используется теми, кто оплачивает время.
В первом случае выход в Интернет осуществляется с помощью стандартного
для Linux набора программ — pppd, chat и, возможно, еще нескольких до-
полнительных сценариев. Происходит это следующим образом — вначале
маршрутизатор дозванивается до провайдера и устанавливает с ним связь по
РРР-протоколу. После установления соединения полученным каналом мо-
жет пользоваться любой компьютер в нашей локальной сети. Канал удержи-
вается до тех пор, пока не выключится маршрутизатор или администратор
явным образом не разорвет соединение.
Второй вариант — модификация первого, в англоязычной литературе он но-
сит название dial on demand (звонок по требованию). Для его организации
дополнительно используется программа diald, с помощью которой можно
организовать работу таким образом, что если в течение заранее обусловлен-
ного времени не происходит обмена данными между локальной сетью
и Интернетом, то diald разрывает соединение. При первой же попытке
пользователя подключиться к внешним ресурсам, diald снова дозванивается
и устанавливает связь.
debug
crtscts
defaultroute
Команды pppd
Далее мы рассмотрим основные команды программы pppd (табл. 3.2).
Команда Описание
Asyncmap 0 Async-карта символов — 32-bit hex; каждый бит — сим-
вол, который надо представить в виде escape-
последовательности, чтобы pppd мог его принять
Auth Требует от удаленной стороны назвать себя перед тем,
как начнется обмен пакетами
bsdcomp о Определяет использование сжатия передаваемого тра-
фика. На обычном модемном соединении не использу-
ется, позволяет в некоторых случаях почти в два раза
увеличить количество передаваемых данных за единицу
времени
c h a p - i n t e r v a l ин- Определяет, что pppd будет заново вызывать удаленную
тервал сторону каждые интервал секунд
c h a p - r e s t a r t интер- Устанавливает интервал рестарта CHAP (пауза возоб-
вал новления передач challenges) в интервал секунд
chap-max-challenge Устанавливает максимальное число передач CHAP
значение challenge
connect <программа> Определяет программу для установки соединения
70 Глава 3
Команда Описание
Crtscts Предписывает использовать аппаратное управление по-
током данных для управления потоком данных на после-
довательном порту
Debug Предписывает увеличить уровень отладки. Если эта оп-
ция есть, pppd будет записывать в журнал все прибыв-
шие и отправленные пакеты в понятной для человека
форме. Пакеты регистрируются в лог-файлах через
syslog. Эта информация может быть перенаправлена
в файл соответствующей установкой /etc/syslog.conf
disconnect Предписывает запустить данную программу после того,
<программа> как pppd завершил связь
domain имя_домена Добавляет имя домена к имени машины
ipcp-max-configure Устанавливает максимальное число передач IPCP (Inter-
значение net Protocol Control Protocol, протокол управления прото-
колом IP) configure-request
ipcp-max-terminate Устанавливает максимальное число передач IPCP
значение terminate-request
ipcp-max-failure Устанавливает максимальное число IPCP configure-NAK,
значение возвращенных перед началом отправки вместо
configure-Rejects
ipcp-restart Устанавливает интервал перезапуска IPCP в интервал
интервал секунд
Local Предписывает не использовать линии управления моде-
мом
Lock Предписывает, что pppd должен использовать замок в
стиле UUCP для последовательного устройства
Login Предписывает использовать базу данных паролей для
идентификации удаленной стороны
Modem Предписывает использовать линии управления модемом
mru число Устанавливает значение MRU (Maximum Receive Unit,
максимально принимаемый пакет) в число. При догово-
ренности pppd запросит удаленную сторону отправлять
пакеты не более чем по число байт. Минимальное зна-
чение MRU — 128. Значение MRU по умолчанию — 1500.
Для медленных соединений рекомендуется 296 (40 байт
для заголовка TCP/IP плюс 256 байт данных)
mtu число Устанавливает значение MTU (Maximum Transmit Unit-
максимально передаваемый пакет) в число. Пока другая
сторона не попросит меньшее значение при договоре о
MRU, pppd будет требовать у сетевого кода ядра отправ-
лять пакеты данных не более чем по число байт через
сетевой интерфейс РРР
Настройка разделяемого коммутируемого модемного соединения... 71
Команда Описание
Команда Описание
-detach Предписывает не переходить в фоновый режим
-ip Предписывает не договариваться об IP-адресе
-mru Запрещает договариваться о MRU
-рар Предписывает отказаться от РАР-аутентификации
-рс Запрещает сжатие полей протокола
Настройка diald
Чтобы лучше понять то, что мы будем делать дальше, немного о принципе
работы программы diald. Программа создает соединение на псевдотерминале
и устанавливает маршрутизацию на получившийся интерфейс. После этого
она начинает отслеживать пакеты, проходящие по виртуальному каналу.
Если кто-то пытается выйти в Интернет, diald перехватывает данные, анали-
зирует их и на основе правил, определяемых администратором, присваивает
им определенные тайм-ауты. Далее пакеты отправляются по назначению,
а тайм-ауты заносятся в так называемый набор соединения. Как только в на-
боре появляется первый тайм-аут, diald начинает дозваниваться до провайдера
и пытается установить соединение, в случае успеха демон переустанавливает
маршрутизацию на реальный канал. Таким образом, связь с внешним миром
оказывается установленной.
Набор соединения постоянно обновляется — истекшие тайм-ауты удаляют-
ся, новые поступают. И так продолжается пока, по какой-либо причине,
передача данных не прекратится. Тайм-аутов в наборе становится все мень-
ше и меньше, и когда последний из них оканчивается, diald разрывает связь.
Теперь перейдем непосредственно к конфигурированию. Этот процесс со-
стоит из трех частей:
• создание сценария соединения — файл /etc/diald/connect;
П настройка основной конфигурации — файл /etc/diald.conf;
• настройка правил тайм-аутов — файл /etc/diald/standard.filter.
Комплексное тестирование
После проделанных манипуляций настало время проверить — правильно ли
настроены наши программы. Для этого на компьютере желательно временно
отключить все настройки брандмауэра (если вы, конечно, установили его).
Затем необходимо запустить программу diald и попытаться выйти в "боль-
шой мир". Можно использовать браузер lynx (и зайти, например, на сайт
www.bhv.ru), можно — программу ping.
Если все было настроено корректно, то после ввода предыдущей команды
модем должен начать дозваниваться до провайдера. Через некоторое время
связь будет установлена. Однако практически всегда lynx выдает сообщение
о том, что не может соединиться с удаленным сервером! В данном случае —
это нормальное явление. Дело в том, что при РРР-соединении с динамиче-
скими IP-адресами в силу определенных особенностей первый пакет обыч-
но бывает утерян и не доходит до адресата. В результате мы ждем ответа от
сервера, а он об этом и не подозревает. Достаточно повторить введенную
ранее команду, чтобы все заработало.
Далее нам необходимо убедиться, что модем аккуратно разорвет соединение
по прошествии трех минут. Дождавшись конца загрузки web-страницы, за-
сечем время. Примерно через три минуты diald должен разорвать соедине-
ние. Если у вас все прошло именно таким образом, значит, система работает
как надо. В противном случае проанализируйте последние строки системно-
го журнала (/var/log/messages).
Указанными действиями мы проверили корректную работу только с нашего
сервера. Для того чтобы проверить, что все работает правильно, попробуем
повторить описанную процедуру и на других компьютерах сети. Реакция
diald должна быть аналогичной. Если что-то пошло не так, проверьте кор-
ректность настройки протокола TCP/IP на машине, в частности — настрой-
ки сетевого шлюза, которые должны указывать на наш сервер.
Настройка маршрутизатора
На самом маршрутизаторе (это наш сервер, если кто-то еще не понял) мы
должны в таблицу маршрутизации прописать, что все, что приходит из на-
шей локальной сети и не вписывается в адреса локальной сети необходимо
отсылать на наше внешнее устройство. Ключевое слово для всего этого хо-
зяйства NAT (Network Address Translate, преобразование сетевых адресов) и
masquerading (маскарадинг). Что же нам нужно сделать? Сначала необходи-
мо убедиться, что в ядре включена поддержка маршрутизации IP-пакетов.
Проверить это можно следующей командой:
cat /proc/sys/net/ipv4/ip_forward
Настройка разделяемого коммутируемого модемного соединения... 77
Кэшируюший DNS-сервер
DNS — это доменная система имен. DNS преобразует символическое имя
в IP-адрес и наоборот. Для чего это нужно? Человеку легче запомнить нечто
осмысленное, например www.checkitnow.ru, чем 213.162.145.242, а для ком-
пьютера проще передать 4 байта адреса, чем 50—60 байт имени.
DNS-сервер представляет собой базу данных, в которой хранится соответст-
вие символического имени IP-адресу. В сети существуют десятки тысяч
DNS-серверов, которые обмениваются между собой информацией. DNS —
это иерархическая система. Вершина записывается как "." (точка) и произ-
носится как root (корень). В корне существует некоторое количество доме-
нов верхнего уровня (Top Level Domains, TLDs), наиболее известными из
которых являются org, com, edu, gov, mil, net, ru, ua и т. п.
При поиске машины запрос обрабатывается рекурсивно, начиная с корня.
Чтобы найти адрес машины moshkin.bins.ru, DNS-сервер проверяет свою
78 Глава 3
Файл host.conf
Этот файл предназначен для того, чтобы система могла определить, каким
образом она будет получать информацию об именах и IP-адресах. Следую-
щая запись в файле host.conf означает, что при поиске хостов сначала про-
изойдет обращение к /etc/hosts, а только потом к DNS-серверу:
order hosts,bind
Файл /etc/hosts
В этом файле должны находиться пары "1Р-адрес-имя":
127.0.0.1 localhost localhost.localdomain
192.168.0.1 user
192.168.0.2 user2
Файл /etc/resolv.conf
В этом файле должны находиться строки, подобные приведенным ниже:
search lazy.ru
nameserver 213.166.195.22
Установка DNS-сервера
Нам необходимо проверить наличие следующих пакетов: bind и bind-utils.
Как это делается, вы уже знаете — с помощью команды rpm -qi имя пакета.
Если эти пакеты не найдены, то ищем их сперва на дисках с дистрибутивом
(для Fedora Core 3 они находятся на первом диске), и устанавливаем коман-
дой rpm - i имя пакета.
Файл /etc/named.conf
Это основной конфигурационный файл DNS-сервера, в нашем случае он
должен содержать следующие строки:
options {
directory "/var/named";
zone "." {
type hint;
file "root.hints" ;
zone "0.0.127.in-addr.arpa" {
type master;
file "127.0.0";
};
Строка d i r e c t o r y указывает bind, в каком каталоге искать файлы. Все
файлы, используемые впоследствии, будут иметь путь относительно этого
каталога.
Строка zone "O.o.i27.in-addr.arpa" показывает, что bind также отвечает за
обратную зону для подсети 127.*.*.*, является в ней мастером, и файл опи-
сания зоны — 127.0.0.
Секция zone "." самая важная. Она описывает, в каком файле лежат адреса
корневых DNS-серверов, которые отвечают за зоны первого уровня.
Файл, названный /var/named/root.hints, должен находиться в указанном ка-
талоге и содержать приблизительно следующую информацию:
6D IN NS CROOT-SERVERS.NET.
6D IN NS J.ROOT-SERVERS.NET.
6D IN NS K.ROOT-SERVERS.NET.
6D IN NS L.ROOT-SERVERS.NET.
6D IN NS M.ROOT-SERVERS.NET.
6D IN NS A.ROOT-SERVERS.NET.
6D IN NS H.ROOT-SERVERS.NET.
6D IN NS B.ROOT-SERVERS.NET.
6D IN NS C.ROOT-SERVERS.NET.
6D IN NS D.ROOT-SERVERS.NET.
6D IN NS E.ROOT-SERVERS.NET.
6D IN NS I.ROOT-SERVERS.NET.
Настройка разделяемого коммутируемого модемного соединения... 81_
6D IN NS F.ROOT-SERVERS.NET.
Файл /etc/127.0.0
127.0.0 — это файл, который отвечает за преобразование IP-адресов в сим-
волические имена. Файл 127.0.0 должен выглядеть следующим образом:
@ IN SOA ns.lazy.ru. hostmaster.lazy.ru. (
1 Serial
8Н Refresh
2Н Retry
1W Expire
ID) Minimum TTL
IN NS ns.lazy.ru.
1 PTR localhost
О у зоны серийный номер равен 1 (обычно для него используют дату по-
следней правки зоны — на него опираются другие серверы, которые по-
лучают информацию с нашего сервера);
• другие серверы будут обновлять информацию о нашем сервере с перио-
дичностью в 8 часов;
• при неудачном обновлении следующая попытка будет произведена через
2 часа;
О зона будет считаться содержащей недостоверную информацию, если не
обновится через 1 неделю;
П но не менее чем через 1 день;
О строка IN NS ns.lazy.ru. показывает, что авторитетным сервером для
этой зоны является ns.lazy.ru., и именно ему надо рассылать обновле-
ния зоны ns. lazy. ru;
• строка i PTR locaihost. показывает, что хост с адресом 1 в зоне 127.0.0.
Имеет ИМЯ l o c a i h o s t .
Запуск named
После правки конфигурационных файлов можно запускать сервер. Наберите
/etc/init.d/named s t a r t без опций и нажмите клавишу <Enter>. Затем
запускаем программу nslookup:
$ nslookup
Default Server: locaihost
Address: 127.0.0.1
Name: userl.ya.ru
Address: 213.166.195.55
Non-authoritative answer:
Name: userl.ya.ru
Address: 213.166.195.55
Web-сервер Apache
В качестве web-сервера в UNIX сообществе в основном используется
Apache, который распространяется по лицензии GNU. По статистическим
данным более половины всех web-серверов в Интернет созданы на базе
Apache. У него очень много достоинств — он кроссплатформенный, мощ-
ный и легкий в настройке.
В качестве альтернативы для Linux-платформы можно использовать TUX,
который тесно интегрирован с ядром Linux, что позволило резко увеличить
количество обрабатываемых запросов за единицу времени. Однако у этого
сервера есть несколько минусов, в том числе:
• работает только под Linux;
• неотлаженный код;
• мало дополнительных возможностей, по сравнению с Apache.
Конфигурация
Установка web-сервера для дистрибутивов, использующих RPM-пакеты,
стандартна — необходимо найти нужный пакет и произвести установку сер-
вера командой:
rpm - i <имя пакета>
86 Глава 4
^ Примечание ^j
После настройки необходимо, чтобы сервер перечитал конфигурационные
файлы, это происходит либо при запуске, либо при получении сигнала -HUP
или -USR1. Если Apache находится в работе, то при изменении конфигурации
его рекомендуется перезапустить командой k i l l - U S R I , поскольку при таком
перезапуске сервера текущие соединения завершаются обычным образом,
а новые клиенты будут работать уже с новыми конфигурационными файлами.
Файл access.conf
В access.conf содержатся директивы, описывающие права доступа к катало-
гам и файлам web-сервера. Обычно создается каталог /\у\у\у/<имя_сервера>/,
потому что при такой организации проще ориентироваться в структуре
файлов.
Файл access.conf содержит секции Directory, Location и Files, которые
ограничены одноименными директивами. В их параметрах могут исполь-
зоваться символы "?" и "*", а также регулярные выражения, предваряемые
тильдой "~". В секции Directory помещаются инструкции, относящиеся
к определенному каталогу на диске, в секции Location — относящиеся
к виртуальному пути, в секции F i l e s — относящиеся к файлу или группе
файлов. Например:
<Directory /www/room.ru>
# директивы, относящиеся ко всем документам, хранящимся в
# каталоге /www/roora.ru и вложенных в него
</Directory>
<Location /cgi-bin>
# директивы, относящиеся ко всем документам, доступным по
Установка Apache и Webmin 87
<Files /www/room.ru/form.htm>
# директивы, относящиеся к файлу form.htm из каталога
# /www/room.ru
</Files>
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /www>
Options All
AllowOverride All
order allow, deny
allow from all
</Directory>
Файл srm.conf
Файл srm.conf содержит директивы, связанные с общими настройками
структуры каталогов сервера. Обычно они не изменяются.
Файл httpd.conf
Конфигурационный файл httpd.conf является основным и содержит на-
стройки, связанные с работой web-сервера, виртуальных серверов, а также
88 Глава 4
ServerRoot "/etc/httpd"
Timeout 120
Время тайм-аута в секундах. Обычно этого значения вполне достаточно для
нормального функционирования сервера.
Listen 80
Показывает, что сервер слушает 80 порт. При желании, можно задать еще
IP-адрес, например, 192.168.0.1:80. А можно задать несколько портов или
адресов, которые слушает сервер.
User apache
Group apache
ServerAdmin rootSlocalhost
DocumentRoot "/var/www/html"
AccessFileName .htaccess
ErrorLog logs/error_log
Webmin
Здесь мы рассмотрим систему администрирования с web-интерфейсом, ко-
торая очень понравится начинающему администратору. Достоинством этого
решения являются графический интерфейс, собранные в одном месте на-
стройки всего, что есть в системе, модульность (что позволяет убрать не-
нужное и добавить необходимое), достаточно простое управление системой
и, наконец, доступ к системе с любого компьютера, подключенного к ло-
кальной сети или Интернет. Минусами этого решения являются: графиче-
ский интерфейс, собранные в одном месте настройки всего, что есть в сис-
теме, доступ к системе с любого компьютера, подключенного к локальной
сети или Интернет. Противоречие? На самом деле нет и вот почему.
Графический интерфейс — это красиво, здорово и удобно. Но, поскольку
Webmin рассчитан на удаленное администрирование, то, например, ночью
из дома на модемном соединении достаточно неприятно тянуть 20—30 Кбайт
картинок для каждой страницы. Но не это главное — проблема графическо-
го интерфейса в подмене понятий и снижении порога знаний. Казалось бы
хорошо, но не для всех случаев. Простейший пример — web-сервер вышел
из строя (соответственно Webmin не работает), и чтобы что-то поправить
в настройках, нужно, во-первых, знать, что и где посмотреть, чтобы опреде-
литься, в чем проблема. А во-вторых, знать, что и где подкрутить, чтобы все
заработало как нужно. К сожалению, постоянная работа с графическим ин-
терфейсом таких знаний вам не даст.
Доступ к системе из Интернета. Казалось бы, здорово, можно сидя дома,
в интернет-клубе или в аэропорту оперативно посмотреть, что делается на
сервере, поправить что-то или настроить. Но для того, чтобы сервер не
взломали, нужно приложить огромные усилия. И ведь нет гарантии, что
в интернет-клубе нет сканера клавиатуры, благодаря которому пароль адми-
нистратора окажется у неизвестного через 20 минут.
По-видимому, исходя из минусов системы, разработчики дистрибутива
не включили пакет Webmin в дистрибутив Fedora Core, поэтому мы идем
Установка Apache и Webmin 91
Пакет успешно установился и подсказал нам, что для того, чтобы получить
доступ к Webmin на локальном компьютере, необходимо в браузере зайти на
страницу по адресу localhost: 10000 По умолчанию, после установки, к Webmin
можно подключиться с любого компьютера, что мы и сделаем (рис. 4.1).
Мы должны ввести имя и пароль пользователя, которому разрешен доступ
к Webmin. После инсталляции это пользователь root. В дальнейшем, при
конфигурации пакета, можно поменять пользователя или разрешить доступ
сразу нескольким пользователям.
\ J чн тшр HLM 9t
• ' > ™ » . . • : ';;:.:,.:... ••
Ч-- , -i LI *—
Страница Webmin
После ввода пароля мы попадаем на страницу конфигурации Webmin
(рис. 4.2). Как вы видите, система изначально англоязычная. Ничего страш-
ного, заходим в Change Language and Theme и выбираем нужный нам язык
(рис. 4.3). Здесь же можно поменять оформление всей системы.
Далее следует страница конфигурации Webmin (рис. 4.4). Пойдем по по-
рядку.
Журнал действий Webmin. Позволяет записывать действия, осуществляемые
пользователями, указывать, для каких пользователей вести запись действий,
для каких модулей, в какое время производить запись (рис. 4.5).
Настройка Usermin. Usermin — это пакет от тех же разработчиков, предна-
значенный для работы с учетными записями. Поскольку мы не устанавлива-
ли Usermin, то нам собственно нечего делать в этом модуле.
Настройка Webmin
Как видите, возможностей по конфигурированию прилично (рис. 4.6). Я не
буду подробно описывать каждую возможность, остановлюсь только на ос-
новных моментах.
Управление доступом по IP. Здесь мы можем (и должны) ограничить доступ
к Webmin определенным набором IP-адресов, с которых могут подключаться
пользователи (рис. 4.7). Сразу после установки нет ограничений на доступ
по IP-адресу. На рисунке видно, что я ограничил доступ нашей локальной
сетью (192.168.0.0) и локальной машиной (127.0.0.1)
Внешний вид. Здесь мы настраиваем внешний вид Webmin (рис. 4.8). Можно
поменять цвет ссылок, рамок и тому подобного.
Список категорий. Здесь мы можем переименовать или удалить категории
Webmin, задать свою категорию, которую можно наполнить своими модуля-
ми (рис. 4.9).
File Locking. Здесь можно задать запрет для конкурентного изменения не-
сколькими процессами файлов и каталогов. Обычно это необходимо только
для некоторых, специфических файлов.
Установка Apache и Webmin 95
Wtbtll» Msrvcr JHIVK». Thi> map be acruMiy if JTMI haw reetnUv ш r t u t o i Perl.
Ml 'О*Оч«0 HlKll *. «» v
;. ;•••;;'....'..'.. З В !.'
Mih is амия*. il UlM
© © G»О О О
n. qucryn » сср»ер>- Wrbinin с ипредсясякыа шфегив I I ' Кроне CiiGcrкнж< xjqxutia Рнккаауашмниьп м е м ktiHiKvicpui (канриыер fiKi.hai-^mi/ н
nuvcTn [P tHW|4*teii H U M З.»кя« W 2 . U • W * i ! t f f t i W i 4 m Hant.iw.jn.Mi рипнмл)c i c i psipen«rh лсктуи к Miunty « ммр> -гаям» с rot nqpftt*. •лалелкншн
ыиирыл аи « к р к re. мшбеяни ecmi ш к.шииртср aot гушем H I Interact В г^млимиии- учас ли&и) пилучмиокЙ каш ii^tun
in1
. . . .... . . . . ,
|0m . '"
. .... ,,. .
i
:
. • ' • • ' • , • ' • ! ' • • '. :
I J!
1
9
мииули и «i мшмн ы«у г (Sun, ушчонм. Сели уцшитси w«oynh. нжзмднй копии, то икн таки Оущп ущкни. Б и т иидачи. Оия у
жгн1.и.и1*11>.erowpHK мм Пркавк1псрсуст1шо1ип>«п>.
4 3ак. 1500
98 Глава 4
Порт и адрес. Эта страница — еще один способ взять под контроль доступ
к Webmin (рис. 4.10). Если система имеет несколько сетевых интерфейсов,
можно указать, по какому сетевому интерфейсу и какому порту будет осу-
ществляться доступ.
Модули Webmin. Тут можно установить дополнительные модули Webmin,
которые мы можем иметь в виде файлов, скачать из Интернета по НТТР-
или FTP-протоколам (рис. 4.11). Так же можно сделать копию существую-
щего модуля, для того чтобы изменить некоторые настройки (например,
у нас несколько DSL-модемов). И, конечно же, удалить ненужные модули
и их копии.
Обновление Webmin. Как понятно из названия, здесь можно настроить авто-
матическое обновление Webmin (рис. 4.12). Или обновить вручную, с сохра-
нением всех настроек. Можно проверить и установить модули, которые бы-
ли изменены с момента последнего обновления.
Темы Webmin. Здесь можно поменять оформление Webmin, как из списка
тем, присутствующих в системе, так и новых, которые есть у вас в виде
файла или которые можно загрузить из Интернета.
Шифрование SSL. Здесь можно настроить SSL (Secure Sockets Layer, слой
безопасных соединений), правда, только в том случае, если используемый
браузер поддерживает эту возможность и настроен для работы с SSL.
Журнал. Здесь настраивается журнал событий Webmin — ведутся записи по
действиям пользователей, отслеживается работа с модулями (рис. 4.13).
Операционная система и переменные окружения. На этой странице Webmin
можно указать, какой дистрибутив используется (рис. 4.14). Это позволяет
правильно отслеживать пути к исполняемым файлам и переменным окру-
жения.
Аутентификация. Эта страница — еще один рубеж защиты. Здесь мы опреде-
ляем задержку между вводом пароля, количество попыток ввода пароля,
время бездействия, по истечении которого произойдет автоматическое от-
ключение и многое другое (рис. 4.15).
Проверка ссылок. Здесь можно включить проверку — не выставлен ли адрес
сервера с запущенным Webmin где-нибудь в Интернете.
Авторизация по сертификатам. Здесь можно настроить авторизацию по сер-
тификатам SSL. Для этого необходимо настроить на web-сервере поддерж-
ку SSL.
Прокси-сервер. Если у вас нет прямого выхода в Интернет, здесь можно
указать прокси-серверы, через которые осуществляется доступ. Это необхо-
димо в том случае, если вы используете скачивание файлов Webmin из Ин-
тернета.
Язык. Здесь определяем язык вывода информации и кодовую страницу.
Установка Apache и Webmin 99
fr* t- >•
-.».
: ; : : . ; : • ; ;
ПРММ
1 ~ W-<« pa» »n-1i IBM.h» «•«#•<••
! .. - ^-, f.
mtiguxltai fin
, • a . ,******•
• й* V *hnp '«-*'
'.•• E* . - - •- H. •
• * •
- ,.^., - 0$ :;..;: ^. J« htip.'. a X» •«
шин
*>*.*. ItaMN
ш - * ^щщц
Страница Система
На этой странице сгруппированы модули, отвечающие за систему в целом.
Внешний вид этой страницы представлен на рис. 4.17.
Рис. 4.17. Страница Система
л.
LDAP Users and Groups. Этот модуль предназначен для работы с системой
LDAP (Light Weight Directory Access Protocol, облегченный протокол службы
каталогов).
Загрузка и завершение работы системы. Здесь определяется, какие сценарии
выполняются при старте и завершении работы системы (рис. 4.20). С помо-
щью этого модуля можно создать новый сценарий, запустить либо остано-
вить выбранные сценарии, переключить уровень выполнения системы, пе-
регрузить ее, либо вообще завершить ее работу.
Пользователи и группы. Этот модуль предназначен для управления пользова-
телями (рис. 4.21) и группами (рис. 4.22) компьютера. Здесь можно доба-
вить, изменить информацию или удалить пользователя или группу.
Расписание заданий Сгоп. Этот модуль предназначен для управления систе-
мой Стоп — выполнение заданий по определенному расписанию (рис. 4.23).
Страницы руководства. Этот модуль позволяет производить поиск в различ-
ных системах документации, находящихся на этом компьютере (рис. 4.24).
Незаменимая вещь, если вы подзабыли параметры команды или тонкости
настройки системы.
Log File Rotation. Система управления ротацией файлов журналов. Можно
определить, с какой периодичностью архивируют файлы журналов, когда
удаляются старые журналы и т. п.
Менеджер ПО. Этот модуль отвечает за установку и удаление программных
пакетов (рис. 4.25). С его помощью можно производить поиск установлен-
ных пакетов по имени, установить новое приложение из файла, либо скачав
из Интернета, можно определить, к какому пакету принадлежит файл с
именем, введенным в соответствующее поле формы.
А можно просмотреть дерево пакетов (рис. 4.26) и посмотреть описание вы-
бранного вами пакета (рис. 4.27).
Процесс инициализации (init). С помощью этого модуля можно покопаться в
init-файле системы (рис. 4.28). Вам вряд ли понадобится туда залазить, но
знать о такой возможности необходимо.
Резервное копирование. Если вы установили в своей системе специальные
пакеты резервного копирования, с помощью этого модуля можно будет ими
управлять.
Файловые системы. Этот модуль позволяет подключать и отключать тома,
настраивать их для автоматического подключения, а также показывает уже
подключенные файловые системы (рис. 4.29).
Аутентификация РАМ. Этот модуль позволяет работать с модулями аутенти-
фикации РАМ (Pluggable Authentication Modules).
Монитор служб MON. Если в системе установлен специальный монитор
служб, то именно этот модуль позволит вам его настроить.
Установка Apache и Webmin 105
«I,
V.1
-i-
Еы_
;
.,' ива, if.
•fWY •'1;:' л»
Г
а. л.
ш> "
л. Т
• •
aaj • fff я.
•ш
• • »>
« > •
••.
«м н.
йша
т, д.
д.
я
Б** 5
1• ••••••вмншяшм
1 гм •ввввв
....1« шд ко
I1I1P-1 ••
.'..........ВНИИ
• • • ;
ял : ммГ
к .*.,.„
:
ms -ч. I» •о.
I:'.' ^ . кмм <*.
и>
..: .:
ы'~ «.
ш ввязвя
я
IUS ; .
—. Й ^ О Т . '
: L
••\.: : Q- :.i:^i;
;:
SvoiSS'b'-Ssi
а1 «и «•р
19 ».-,••: ••••:•'• •;.
:
М51КГ. ' ^ If
• ~ ";.
ЮЛ и С №
и
S '» t IPl^ti. 1 ' :'• ••^•^'••^••'•V^'Y::::
с »•*«)'
4* /
5:лш
•1 Itau ..> .Л. I ,.«
И
да » ttuuin
;
:
л-'.»»»--;» т«";;у:.:.; ;; •
• И > . : »,»»»»•'
у :
v,"..,» .V,.M*.-!>„«•:.' -^K:v".; :r
:
v«vS- : : ; Г';• : "•' о
: , , • • • . • • • • '..
.» . - . - " •
-• » • •
k . i w W » * * . > : . ; * . ? •••••
';
S i ••
•Ч».»*.-
имнйп*«ст.Н1*М
Г Hi мгп,ж«.но«.иМ
Г СЛрш.«Ы!рЧШ.|[
•BJH^wiwit^/j
••••
ИР *^№ у 1 * • Р'ЧЧЬ IflidV IW^On ,,,,.iV... . ,,, ... . \Zi:- ™. .
'-"* * * <J^«dwu^>Tm«we
•МВШВЕЯКШ • - - • • • • • • - . . . "
•К Атиюпели
ЙИ Appltwiwii
Ш Uaubuet
SS finjinotring
Nn
S i loleriui
Stf Mutbmcttu
бЙ I'nulucltvik)
Ш PuhLihlng
| г,„.
• ь НЧК4Ш
а
о .. _.,
и" и .« .-.,
а ••-<*и7"\:/Л'• -.;- v5i"™imai
.
в и" ">»mm i * ( ^ ^ " :
..,- :: : ': ' .••''•'; :"V: :; ."i: : : : ..•'
8 - •. • v,i.*.'i •
' "';..'.7 ''Х'-З^ШШ'''"^:"'":'
«1 ь ••-'• l'k-t . . . ••'
«г В
ч l;i'..U.J '"..'.:'' n я я- , . ^ .
•И
; . - • - • - • ; . ; ; • ; . ;
ш;-
; . ^ % . - * • . . ' ' • " ' '
t ! л ч ; Т "•:~'"-11- ta<»«..'i>iv
it гкн,л.«„.»''"'У:":. ? : ;
".' •::••••:••:••;•;/'.:•••:••
> '•
>• >ц.;»м..„'.'|^и5®5Й:'1"Т;3;У-1-}
.- .». • . . - . . . , . , . . . . . . . . . . . . . . • • •
1
i юл^апзн, счииОки ь иастрсжкс нл J T »крсвя;»>» систем) я HC|KI&UII}CIKKOBJWC t i
Службы
Этот раздел посвящен управлению разнообразными сетевыми службами,
используемыми в системе (рис. 4.32). Как и в других разделах, здесь уста-
навливаются все модули пакета, даже если такой службы нет в системе.
Frox FTP Proxy. Модуль управления службой переадресации FTP-запросов.
•i11•1
: 4
Ди&инл. мст^Я ФиДя жугмам дяж а
"I
"MM""'' ... Ш 1
i
1
4- lid П 1 'JJI | 1» клал и фойэи* *>рявля! и»трой«1 WdMllur.
t* E« »«, о»
Сеть
Этот раздел посвящен управлению сетью, сетевыми устройствами, защитой
и ограничениями сетевых соединений (рис. 4.40). Как и в других разделах,
здесь устанавливаются все модули пакета, даже если такой службы нет
в системе.
ADSL Client. Модуль, предназначенный для конфигурации ADSL-
соединений (если таковые вообще есть).
Kerberos5. Конфигурирование сервера сетевой аутентификации.
Shorewall Firewall. Модуль для управления брандмауэром Shorewall.
Межсетевой экран (firewall). Модуль для управления брандмауэром, исполь-
зующим возможности ядра операционной системы Linux и пакета iptables
(рис. 4.41). Позволяет добавлять, изменять и удалять правила фильтрации,
временно приостанавливать действия выбранных правил и т. п. (рис. 4.42).
Bandwidth Monitoring. Модуль для проверки сетевых соединений.
РРР Dialup Client. Этот модуль позволяет настроить модемное соединение
(рис. 4.43) и произвести тонкую подстройку для нужного соединения (рис. 4.44).
L,°"
Ы (OUTPUT1
ж *ирсдклте* ни вднв пршшш.
Цс1ИЧК« М - Г 1HM11~1-!N?UT
Stip;i вУ invert is Haitian
„... J
Сеч* Ф I* IT
I.-M,- . . ,« • • - : . ; . : . .:-..-•• •: ' ! * « • • ; • iT
;
' "
i.T
г . .«л»» u i u i -».- -.„-.». (a : XT
it XT
ь ww«««ii new ,>-™.>4,BI HJMIUIU, i f If
Ш ж ; : :••••: . • •
Шкмтж на -ТУ кнопку i^nnr.T*' < « i i j i n e m i м дгЛс-шие пкииприпедеимиП «.цфч1)Т<"(ин He*veien<i[(t чкрнил. Вес
: .
(.'уамишушнис в шннмй момент гфяыи» буд)т «<^«нисиы и шмеиекы нияимн.
Ha*«me m 4iy Bmrnty примле! hч;Г.р<к>- рышсирнкжкпий синфигурицнп к вхщмий вданный«смет.
;
- j » J "*• Да <~ Н и OiipijKJiMT Оуает лн нсяскпжД -жран шлжшл njin ajupj-jju-ctrrtUM turn ист.
R»W Fit»»* j Cllt k Ihio bunim bi с)ыг *U uitlinc fitewxU rule. «Ы .el up new (i>lc. Г<к a h o t inir*I Иц
hiwiix
|.....
;1 : : 1
•<.>:« >v .•:.•••;::'гГ :. . ' :':.;
а вы
fftf'iVfrfl ICC n«i
;•.••
• •
НИ'!*.)
1
!• ' I * * '
Оборудование
Раздел отвечает в большей степени за работу с жесткими дисками в том или
ином аспекте, но здесь же находится система управления временем, на-
стройка сервера голосовой почты и работа с записывающими CD/DVD-
устройствами (рис. 4.49).
Linux RAID. Модуль, отвечающий за создание и управление RAID-системой
(Redundant Array of Independent Disks, матрица независимых накопительных
дисков с избыточностью).
Запись на компакт-диски. В этом модуле можно настроить записывающий
CD/DVD-привод и при необходимости записать компакт-диск.
Установка Apache и Webmin 123
• I ••.,! 4
• • . • . . ;- - : . : : • : •
© О G1 О С ОС
Кластер
Этот раздел, изображенный на рис. 4.55, отвечает за работу кластера серве-
ров, основанных на Linux.
Прочее
Последний раздел, в котором собрано все то, что не вошло в остальные раз-
делы (рис. 4.56).
Как видите, система Webmin позволяет удаленно сотворить с сервером
практически все, что угодно. Поэтому не рекомендуется разрешать к ней
доступ из Интернета или, по крайней мере, принять серьезные меры по ог-
раничению доступа к столь мощному инструменту посторонних личностей.
И тем не менее я настаиваю на том, чтобы вы умели и могли конфигуриро-
вать сервер и его службы в текстовом режиме. Графика — это приятный бо-
нус, которого может и не быть, а текстовая консоль всегда есть и доступна
даже на самых низкоскоростных соединениях.
Установка Apache и Webmin 127
Dm ^
•••••• - • -
-•< • ^
-
Й two*. ,-*«.
Ъ €> О о о
1 Ш<ъйяш к.
Установка Samba
Установка Samba проблем не вызывает — достаточно при инсталляции
Linux выбрать соответствующий пакет. В нашем случае, так как сервер уста-
навливался по минимуму, установим его самостоятельно. Как обычно, есть
дилемма — или устанавливаем из дистрибутива, или ищем свежую версию.
В дистрибутиве пакет Samba находится на первом диске и называет-
ся samba-3.0.8-0.prel.3.i386.rpm. Однако сетевая файловая система вещь
достаточно критичная к ошибкам, поэтому я бы все-таки рекомендовал
поискать в Интернете более свежую версию. К примеру, вот тут —
http://download.fedora.redhat.eom/pub/fedora/linux/core/updates/3/i386, или на
сайте ALTLinux. Теперь устанавливаем:
rpm -i samba-3.0.10-l.fc3.i386.rpm
5 3ак. 1500
130 Глава 5
# This is the main Samba configuration file. You should read the
# smb.conf(5) manual page in order to understand the options listed
# here. Samba has a huge number of configurable options (perhaps too
# many!) most of which are not shown in this example
# Any line which starts with a ; (semi-colon) or a # (hash)
# is a comment and is ignored. In this example we will use a #
# for commentary and a ; for parts of the config file that you
# may wish to enable
# NOTE: Whenever you modify this file you should run the command "test-
parm"
# to check that you have not many any basic syntactic errors.
#
#======================= Global Settings ==============================
[global]
# It should not be necessary to spell out the print system type unless
# yours is non-standard. Currently supported print systems include:
# bsd, sysv, pip, lprng, aix, hpux, qnx
printing = lprng
# Uncomment this if you want a guest account, you must add this to
/etc/passwd
# otherwise the user "nobody" is used
; guest account = pcguest
# this tells Samba to use a separate log file for each machine
# that connects
log file = /var/log/samba/%m.log
# Security mode. Most people will want user level security. See
# security_level.txt for details.
security = user
# Use password server option only with security = server or
# security = domain
; password server = <NT-Server-Name>
# Most people will find that this option gives better performance.
# See speed.txt and the manual pages for details
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
# DNS Proxy — tells Samba whether or not to try to resolve NetBIOS names
# via DNS nslookups. The built-in default for versions 1.9.17 is yes,
# this has been changed in version 1.9.18 to no.
dns proxy = no
[coinm]
comment = Common place
path = /home/samba/comm
valid users = root yura katya lena alst
public = no
writable = yes
printable = no
create mask = 0775
directory mask= 0775
force group = office
[hp]
comment = HP LaserJet 1200 Series PCL6
136 Глава 5
path = /var/spool/samba
printer = lp
public = no
printable = yes
printer driver=HP LaserJet 1200 Series PCL6
printer driver location=\\%h\printer$
[printer$]
path=/home/samba/hplj1200
public=yes
brows eable=yes
Секция [global]
Секция [global] назначает переменные, которые Samba будет использовать
для определения доступа ко всем ресурсам. Рассмотрим переменные секции
[global].
О workgroup = Kontora. Переменная workgroup содержит имя Windows NT-
домена или имя рабочей группы, к которой будет принадлежать сервер
Samba.
П netbios name = server. Переменная netbios name задает имя сервера
для отклика по протоколу NetBIOS. He делайте его таким же, как и имя
рабочей группы.
О server s t r i n g = Kontora Samba Server. Переменная server string CO-
держит описание сервера (комментарий).
П hosts allow = 192.168.1. Переменная hosts allow содержит список
IP-адресов компьютеров и сетей, разделенных пробелом, которые имеют
право подключаться к ресурсам вашего сервера.
Настройка общего доступа к дисковому пространству сервера - Samba 137
( Замечание )
Протокол NetBIOS, в принципе, предназначен для одноранговой сети, т. е. та-
кой сети, где все компьютеры равноправны. Тем не менее в NetBIOS преду-
138 Глава 5
Секция [homes]
Секция [homes] позволяет удаленным пользователям получить доступ
к своим домашним каталогам на Linux-машине. Для этого пользователь
должен быть зарегистрирован в Linux-системе. Рассмотрим переменные
секции [homes].
П comment = Home Directories. Эта переменная просто комментирует со-
держимое данной секции.
П browseable = по. Переменная browseable запрещает просматривать ка-
талог посторонним пользователям.
• writable = yes. Переменная writable разрешает записывать в домаш-
ний каталог.
• valid users = yura vasya a l s t . Переменная valid users задает СПИСОК
пользователей, для которых разрешен доступ к своим домашним катало-
гам; в принципе, параметр не обязательный.
Секция [comm]
Секция [comm] отвечает за каталог, доступный всем пользователям Samba.
Это своего рода аналог FTP, куда могут записывать и откуда могут читать
пользователи. Разберем подробнее данную секцию.
• comment = common place. Эта переменная просто комментирует содер-
жимое данной секции.
• path = /home/samba/comm. Переменная path определяет каталог, который
используется для совместного доступа.
П valid users = root yura katya alst. Переменная valid users СОДер-
жит список пользователей, которым разрешен доступ к общему ресурсу.
О public = no. Запрещает остальным пользователям получать доступ к дан-
ному ресурсу.
• writable = yes. Разрешает запись в общий ресурс.
• p r i n t a b l e = no. Указывает, что разделяемый ресурс не является печа-
тающим устройством.
П create mask = 0775. Маска для создания файлов на разделяемом ресурсе.
• directory mask = 0775. Маска для создания каталогов на разделяемом
ресурсе.
• force group = office. Переменная force group определяет, что файлу,
создаваемому или копируемому на общий ресурс, принудительно задает-
ся принадлежность к группе office, для того чтобы любой пользователь,
который входит в данную группу, мог изменить или удалить файл.
140 Глава 5
Секция [imp]
Секция [tmp] предназначена для создания разделяемого ресурса, в который
могли бы записывать все пользователи. Как видно из приведенного далее
описания, она отличается от секции [comm] отсутствием списка пользовате-
лей и значением переменной public.
comment = Temporary file space
path = /tmp
read only = no
public = yes
Пароли пользователей
Сервер Samba подразумевает использование нескольких типов безопасности.
В частности, переменная encrypt password определяет, какой механизм ав-
торизации будет использован. Если переменной encrypt password присвоено
значение по, то авторизация пользователей производится исходя из учетных
записей Linux, хранящихся в файлах /etc/passwd и /etc/shadow. При таком
типе авторизации пользователя пароли передаются по сети в незашифро-
ванном виде, что несколько упрощает настройку, но резко снижает безопас-
ность системы. В дополнение к этому, такой тип авторизации требует изме-
нений в системном реестре в Windows 95, Windows 98, Windows NT. Далее
приведены изменения, которые необходимо внести в системный реестр:
• Windows 95
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\VNETSUP]
"EnablePlainTextPassword"=dword:00000001
• Windows 98
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services WxD\VNETSUP]
"EnablePlainTextPassword"=dword:00000001
• Windows NT
tHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Rdr\Parameters]
"EnablePlainTextPassword"=dword:00000001
• Windows 2000
[HKEY_LOCAL_MACHINE\SYSTEMXCurrentControlSet\Services\LanmanWorkStatio
n\Parameters]
"EnablePlainTextPassword"=Data: 0x01
В том случае, если переменной encrypt password присвоено значение
yes, авторизация пользователя происходит с использованием файла
/etc/samba/smbpasswd, и передача паролей происходит в зашифрован-
ном виде.
Настройка общего доступа к дисковому пространству сервера - Samba • 141
Принтеры
Все принтеры, которые определены в файле /etc/printcap, становятся дос-
тупными после того, как вы добавите следующую секцию в конфигурацион-
ный файл smb.conf:
[printers]
path = /var/spool/lpd
writeable = no
guest ok = no
printable = yes
142 Глава 5
Server Comment
Утилиты
Как и у других подобных проектов, для пакета Samba существует достаточно
много сторонних утилит, позволяющих упростить конфигурирование и дос-
туп к ресурсам. Вот список утилит и программ, в той или иной мере отно-
сящихся к пакету Samba:
П smbstatus — утилита для мониторинга Samba;
• SWAT — инструмент для конфигурирования Samba через web-интерфейс;
• smbpasswd — управление паролями Samba;
144 Глава 5
Webmin
Как уже упоминалось в предыдущей главе — Webmin имеет модуль управле-
ния сервером Samba. Внешний вид модуля изображен на рис. 5.2.
НАЖМИТЕ Н4 tiy книиху дл* псршапускн % | А(ч>таюших сержри* Samha. Эта актшяшруст «се шмомнил гекущп насцижк. ЭТА
;ini6wc ^чюллнеши с к-*«рм:рии, штиму если пы не шткгс нрямешпь и.шежниа лряып сейцш, иояпжлнтс 1 мялуту, и S
я» в*
JRedHel, Ife.
Следующий важный для нас модуль — Сеть Windows (рис. 5.4). Как видно
из рисунка, здесь мы определяем имя рабочей группы, имя и описание сер-
вера, безопасность, службы и т. п.
Аутентификация — этот модуль также очень важен для нас. Здесь мы опре-
деляем, шифруются пароли или нет, можно назначить свою программу
аутентификации, разрешить отображение имен пользователей Linux на Win-
dows-имена (рис. 5.5).
Следующий момент — облегчение жизни администратора. Допустим, у вас
в системе уже есть некоторое количество пользователей, и после установки
Samba необходимо каждого пользователя прописать в базе пользователей.
146 Глава 5
6 Q O C О О
t* у- *> в — . I», a»
:
• • • ; • • « ;
e ооо с О О
Длниа» форм* пч)яолл«тВ*14СНнч>1Ч)Н1нр жап, ещккк rvuimwnrw* Unix н Sanh«, Бели Я 11ИЩ fipplU». T» ПНОС
•юлъинагвдеА нснояыуени orwnMtwd спи '<нмкыгыо«и№.мАипаршмй. The !м1Ы uwa not i> funvtit van cunUim uicrnИЛК4. UIDl, ^TOIIp l i t wi)>r«Aud*Ouii |,Nl|D
1 Ш пилкам 1сл«а>4яв
! Den»
L
Ы ^ Г I |1 ' П И !•! 1ППП I I «!• II I ЦИ11 1Щ-11Ц I l l l l ^ l l l linillllMl I Hill 1
(S l-f »«км'шмш,м««|>,|
Программное обеспечение
Для работы по протоколу FTP необходимо две программы — сервер и клиент.
Клиентских программ очень много: от простейших, работающих в команд-
ной строке, до имеющих весьма развитый графический интерфейс. Любой
современный браузер способен выступать в роли FTP-клиента. Поэтому на
клиентских программах останавливаться не будем, а перейдем сразу к про-
граммному обеспечению FTP-сервера.
Пакет vsftp
В последние дистрибутивы, в качестве стандартного FTP-сервера, входит
vsftpd (Very Secure FTP Daemon), позволяющий обслуживать как аноним-
ные запросы, так и запросы от пользователей, зарегистрированных на сер-
вере и имеющих полноценный доступ к его ресурсам. Пакет называется
vsftpd-2.0.1-5.i386.rpm и находится на третьем диске дистрибутива. Уста-
навливается он как обычно, при помощи утилиты rpm. При установке пакета
автоматически создается каталог, который будет корневым при анонимном
152 Глава 6
Файл etc/vsftpd/vsftpd.conf
Это основной конфигурационный файл, его пример приведен ниже.
# The default compiled in settings are fairly paranoid. This sample file
# loosens things up a bit, to make the ftp daemon more usable.
# Please see vsftpd.conf.5 for all compiled in defaults.
#
# READ THIS: This example file is NOT an exhaustive list of vsftpd op-
tions .
# Please read the vsftpd.conf.5 manual page to get a full idea of
# vsftpd's capabilities.
#
# Allow anonymous FTP? (Beware - allowed by default if you comment this
# out).
anonymous_enable=YES
#
# Uncomment this to allow local users to log in.
local_enable=YES
#
# Uncomment this to enable any form of FTP write command.
write_enable=YES
#
# Default umask for local users is 077. You may wish to change this, to
# 022, if your users expect that (022 is used by most other ftpd's)
local_umask=022
#
# Uncomment this to allow the anonymous FTP user to upload files. This
# only has an effect if the above global write enable is activated. Also,
# you will obviously need to create a directory writable by the FTP user.
#anon_upload_enable=YES
#
# Uncomment this if you want the anonymous FTP user to be able to create
# new directories.
#anon_mkdir_write_enable=YES
#
# Activate directory messages - messages given to remote users when they
Настройка общего доступа к дисковому пространству сервера - FTP-сервер 153
pam_service_name=vsftpd
userlist_enable=YES
#enable for standalone mode
listen=YES
tcp_wrappers =YES
Настройка общего доступа к дисковому пространству сервера - FTP-сервер 155_
Файл etc/vsftpd.ftpusers
Этот файл содержит список пользователей, которым ЗАПРЕЩЕНО пользо-
ваться FTP-сервером. Обычно это следующие системные пользователи: root,
bin, daemon, adm, lp, sync, shutdown, halt, mail, news, uucp, operator, games,
nobody.
156 Глава 6
Файл etc/vsftpd.user_list
Если переменная в конфигурационном файле имеет значение
useriist_deny=NO, в этом файле содержатся список пользователей, которым
разрешен доступ к FTP-серверу. Если же userlist_deny=YES (именно такое
значение по умолчанию), то файл содержит список пользователей, которым
запрещено пользоваться FTP-сервером.
Пакет wu-ftp
Программный пакет wu-ftp (Washington University at Saint Louis FTP daemon)
написан в Вашингтонском университете. Ранее поставлялся вместе с дист-
рибутивом, сейчас от него отказались. Тем не менее многие продолжают
использовать этот пакет и в Webmin есть его поддержка. Для настройки па-
кета используют несколько конфигурационных файлов.
Файл ftpaccess
Этот конфигурационный файл используется для определения прав доступа.
Здесь определяется, какие и сколько пользователей могут получить доступ
к серверу, а также важные элементы настройки безопасности. Рассмотрим
некоторые конфигурационные параметры, используемые в этом файле.
Управление правами доступа:
• autogroup <имя_группы> <класс> . . . — в том случае, если анонимный
пользователь является членом указанного класса, то сервер использует
заданную группу, что позволяет анонимным пользователям из разных
классов получать доступ к различным наборам каталогов;
• deny <шаблон_адресов> <файл_с_текстом_сообщения> — запретить ДОС-
туп клиентов с указанного адреса с выдачей текста сообщения;
• guestgroup <имя_группы> . . . — если реальный пользователь является
членом указанной группы, то с ним поступают так же, как с анонимным.
Вместо имени можно использовать номер группы, перед которым надо
поставить знак процента, или интервал номеров, или звездочку для всех
групп;
• guestuser <имя_пользователя> ... — аналогично guestgroup, НО ИС-
пользуется имя реального пользователя;
• realgroup <имя_группы> ... — инвертирует действие guestgroup И
guestuser;
• realuser <имя_пользователя> ... — инвертирует действие guestgroup И
guestuser;
• defumask umask [ <класс> ] — задание umask — параметра применяемо-
го при создании файлов;
Настройка общего доступа к дисковому пространству сервера - FTP-сервер 157
Файл ftpservers
Этот файл определяет набор файлов конфигурации для каждого виртуально-
го сервера. Каждая строка в данном конфигурационном файле описывает
виртуальный сервер и состоит из двух полей:
• имя и IP-адрес виртуального сервера;
• имя каталога, содержащего конфигурационные файлы. Имена файлов
фиксированы: ftpaccess, ftpusers, ftpgroups, ftphosts, ftpconversions. Если
какой-либо конфигурационный файл отсутствует, то вместо него исполь-
зуется конфигурационный файл основного сервера.
Файл ftpconversions
В этом файле каждая строка описывает возможное преобразование файлов
"на лету" и состоит из 8 полей, разделенных двоеточиями:
• удаляемый префикс;
• удаляемый суффикс;
• добавляемый префикс;
• добавляемый суффикс;
• используемая для преобразования внешняя программа и ее параметры;
• типы преобразуемого файла:
• T_REG — обычный файл;
• T_ASCII — текстовый;
• T_DIR — каталог или сочетание перечисленных типов;
• опции: O_COMPRESS, O_UNCOMPRESS, O_TAR или их сочетание;
• комментарий к строке преобразования.
Настройка общего доступа к дисковому пространству сервера - FTP-сервер 161
Файл ftpgroups
Этот файл используется для поддержки функционирования нестандартных
команд типа SITE GROUP И SITE GPASS. В файле ftpgroups находятся строки,
состоящие из трех полей, разделенных двоеточием:
П задаваемое клиентом имя группы;
• зашифрованный пароль группы;
• реальное имя группы.
Файл ftphosts
Этот файл предназначен для ограничения доступа к FTP-серверу с опреде-
ленных IP-адресов. Используется всего две команды:
О a l l o w <имя_пользователя> <шаблон_1Р-адреса> . . . — разрешить доступ;
П d e n y <имя_пользователя> <шаблон_1Р-адреса> ... — з а п р е т и т ь доступ.
Файл ftpusers
Этот файл предназначен для запрета доступа к FTP-серверу некоторым ре-
альным пользователям. Обычно используется для повышения безопасности
системы, чтобы исключить доступ пользователей типа root, news и т. п.
Безопасность
Во время конфигурации очень желательно продумать систему безопасности,
зачастую, при неправильной настройке, FTP-сервер становится тем слабым
местом, через которое осуществляется прорыв безопасности вашей операци-
онной системы.
Чрезвычайно важно, чтобы анонимные и гостевые пользователи не имели
доступа к реальному командному процессору. Тогда, даже если они по каким-
либо причинам смогут покинуть окружение FTP, то не смогут выполнить ни-
каких посторонних задач. Для обеспечения этого требования убедитесь, что
в файле /etc/passw у пользователей guest и anonymous в поле, где находится
командная оболочка пользователя, находится что-то типа /dev/null. Файл
ftpusers должен содержать список следующих псевдопользователей, которым
будет отказано в подключении к FTP-серверу: root, bin, daemon, adm, lp, sync,
shutdown, halt, mail, news, uucp, operator, games, nobody.
Обычно FTP-сервер разрешает загрузку файлов на сервер (upload) всем
пользователям. Однако необходимо запретить пользователям загружать свои
файлы в некоторые каталоги (а иногда и во все). Для этого в файле ftpaccess
необходимо прописать опцию upload с ключом по и указать каталог, на ко-
торый налагается запрет. Иногда желательно запретить пользователям полу-
чение с FTP-сервера некоторых каталогов и файлов. Для этого в файле
ftpaccess добавляем строку noretrieve с каталогом, куда необходимо запре-
тить доступ пользователям.
6 3ак. 1500
Глава 7
Настройка
сетевого принтера
Из самого словосочетания "сетевые принтеры" понятно, что это принтеры,
которые каким-то образом подключены к локальной сети, и компьютеры,
подключенные к ней же, могут распечатывать на них документы. Принтеры
бывают разные: матричные, струйные, лазерные, сублимационные и т. д.
Они могут использовать разные интерфейсы для подключения: последова-
тельный, параллельный, USB, Ethernet, SCSI, FireWire и др. Производители
принтеров продолжают увеличивать набор проблем, то протокол свой при-
думают, то с целью удешевления создадут win-принтер. И во всем этом при-
ходится разбираться. Поэтому, прежде чем покупать/подключать принтер
к Linux-серверу, необходимо посмотреть в Интернете, поддерживается ли он
в Linux.
Принтер может стать сетевым, по меньшей мере, тремя путями:
1. В принтер встроена Ethernet-карта и специальное программное обеспече-
ние для работы в сети.
2. Принтер подключен к специальному устройству — принт-серверу, кото-
рый представляет собой специализированный компьютер, с одной сторо-
ны подключенный в локальную сеть, а с другой стороны к нему подклю-
чаются принтеры.
3. Принтер подключен к компьютеру, на котором установлено и настроено
программное обеспечение, позволяющее компьютерам из сети произво-
дить печать на этом принтере.
Далее мы рассмотрим настройку и использование сетевого принтера для
последнего случая. Ethernet-принтер рассматривать не будем, поскольку он
не подходит по условиям задачи — его стоимость составляет более 1000 дол-
ларов. А вариант с принт-сервером отклоняем, потому что для подключения
к нему нет необходимости производить настройку на сервере.
164 Глава 7
Настройка LPD
Начнем с простого: настроим струйный принтер DeskJet 400 фирмы Hewlett-
Packard. Будем считать, что пакет LPD уже установлен в вашей операцион-
ной системе, поскольку он входит во множество дистрибутивов, как стан-
дартная система печати.
Для добавления очереди печати вы должны добавить запись в файл
/etc/printcap и создать новый буферный каталог в каталоге /var/spool/lpd.
Запись в файле /etc/printcap выглядит следующим образом:
# ЛОКАЛЬНЫЙ d e s k j e t 4 0 0
lp|dj|deskjet:\
:sd=/var/spool/lpd/dj:\
:псс#0:\
:lp=/dev/lpO:\
:sh:
:шх#О:\
:lp=/dev/lpO:\
:if=/var/spool/lpd/dj/filter:\
:sh:
Учет ресурсов
Обычно в больших фирмах принято хранить информацию о том, кто, когда
и сколько печатал. Стандартный пакет LPD предоставляет мало возможно-
стей для учета. С его помощью вы можете указать для этого имя файла, ис-
пользуя атрибут af= в printcap, но, по большому счету, это не решение про-
блемы. Пожалуй, лучший вариант — использовать фильтр, который может
писать данные в файл учета ресурсов, а вы будете обрабатывать этот файл
позже каким-нибудь сценарием обработки статистики.
168 Глава 7
Samba
Поскольку мы считаем, что основной потребитель услуг сервера это
Windows-клиенты, то нам нужно сделать доступным наш принтер для них.
Для этого нам необходимо отредактировать в файле smb.conf секцию
[printers]:
[printers]
path = /var/spool/lpd/dj
writeable = no
guest ok = no
printable = yes
Этим мы просто указали, что очередь печати находится там, куда указывает
переменная path, и этот объект используется в качестве принтера.
Глава 8
Организация
почтового сервера
Задача, которая будет рассмотрена в этой главе, простая — максимально
удобно организовать прием и отправление электронной почты сотрудников,
с учетом того, что у нас нет своего доменного имени, и мы пока пользуемся
модемным соединением.
Что же мы хотим получить? Поскольку у нас нет своего домена, мы не мо-
жем создать у себя полноценный почтовый сервис. Наши сотрудники полу-
чат бесплатные почтовые ящики, например, на www.maO.ru или www.gmail.com.
И будут они, к примеру, petrov@mail.ru, sidorov@mail.ru, boss@gmail.com,
admin@list.ru. Казалось бы, ничего страшного, администратор резво пробе-
жится по компьютерам, и все настроит. Но, к примеру, захотел отдел про-
даж еще один почтовый ящик, а для отдела кадров нужно три, причем
в разных доменах. И каждый решает, как ему удобно проверять почту: один —
утречком, другой — каждые 10 минут. В результате у администратора про-
блемы — вносить в почтовые клиенты множество учетных записей, и модем
постоянно то соединяется, то разъединяется. Одним словом — анархия. Но
умные люди придумали, как с этим бороться. Оказывается, очень просто —
на нашем сервере мы заводим учетные записи: для начальства, бухгалтерии,
кадров и т. п. Почтовые клиенты наших пользователей настраиваем так,
чтобы сервер, через который отправляют почту и принимают, был нашим
внутренним сервером (192.168.0.1). А на нем ставятся следующие службы:
1. Программа, которая забирает почту со всех внешних почтовых ящиков
и раскладывает ее в соответствующие внутренние.
2. Службу РОРЗ (Post Office Protocol, почтовый интернет-протокол) или
ШАР (Internet Mail Access Protocol, протокол интерактивного доступа
к электронной почте) для того, чтобы внутренние клиенты могли без
проблем забрать свою почту.
3. Настраиваем SMTP-агент (Simple Mail Transfer Protocol, простой прото-
кол электронной почты), чтобы он организовал очередь исходящих сооб-
щений и отправлял их только тогда, когда есть соединение с Интернетом.
170 Глава 8
SMTP
SMTP был разработан для обмена почтовыми сообщениями в сети Интер-
нет. Он не зависит от транспортной среды и может использоваться для дос-
тавки почты в сетях с протоколами, отличными от TCP/IP. Взаимодействие
в рамках SMTP строится по принципу двусторонней связи, которая устанав-
ливается между отправителем и получателем почтового сообщения. При
этом отправитель инициирует соединение и посылает запросы на обслужи-
вание, а получатель на эти запросы отвечает.
Как и множество других протоколов, команды и ответы протокола SMTP
передаются в ASCII-кодах (American Standard Code for Information Inter-
change, американский стандартный код обмена информации) и представля-
ют собой небольшой набор английских слов. Протокол, помимо отправки
почты, поддерживает переадресацию, прямую посылку сообщения на тер-
минал, обработку ошибок и некоторые другие возможности.
РОРЗ
Протокол обмена почтовой информацией, РОРЗ, предназначен для получе-
ния почты из почтовых ящиков пользователей на их рабочие места при по-
мощи программ-клиентов. Таким образом, по SMTP пользователи отправ-
ляют корреспонденцию, а по РОРЗ — получают письма из своих почтовых
ящиков. Этот протокол так же основан на установлении двусторонней свя-
зи, команды и ответы протокола передаются в ASCII-кодах и представляют
собой небольшой набор английских слов.
Организация почтового сервера 171
Протокол IMAP
Еще одним протоколом разбора почты является протокол ШАР — почто-
вый протокол интерактивного доступа, который по своим возможностям
похож на РОРЗ, но разрабатывался как более надежная альтернатива по-
следнему. Он обладает более широкими возможностями по управлению
процессом обмена сообщениями с сервером. Главным отличием его от РОРЗ
является возможность поиска нужного сообщения и разбор заголовков со-
общения непосредственно на почтовом сервере.
Программное обеспечение
Как и многое другое, взаимодействие между участниками обмена почтового
сообщения основано на технологии клиент-сервер. Можно выделить три
независимых этапа:
• взаимодействие по SMTP между почтовым клиентом и почтовым транс-
портным агентом;
• взаимодействие между транспортными агентами в процессе доставки
почты;
• получение сообщения из почтового ящика пользователя почтовым кли-
ентом по протоколам РОРЗ или ШАР.
Итак, начнем с конца — установки и настройки РОРЗ-сервера.
РОРЗ
Как ни странно, РОРЗ и ШАР идут в Fedora Core в одном пакете, который
называется cyrus-imapd-2.2.6-2.FC3.6.i386.rpm. Установка его тривиальна.
Настройка, в нашем случае, вообще не требуется.
fetchmail
Есть такая утилита, называется fetchmail, — она предназначена для того,
чтобы с помощью всех известных почтовых протоколов забирать почту
с почтовых серверов, и потом отдать ее локальному МТА-агенту. То есть
fetchmail забирает почту с удаленного сервера, потом подключается к 25 порту
на localhost и отдает программе sendmail почту, которая уже обычными пу-
тями попадает в локальные почтовые ящики пользователей. Варианта на-
стройки fetchmail, по меньшей мере, два — либо для каждого локального
пользователя создается свой конфигурационный файл, либо централизован-
ная настройка. Рассмотрим оба варианта.
172 Глава 8
Программа sendmail
Основным средством рассылки почты является программа sendmail, которая
является одной из старейших и сложных в конфигурации. Она позволяет
организовать почтовую службу локальной сети и обмениваться почтой
с другими серверами почтовых служб через специальные шлюзы, sendmail
может быть настроена для работы с различными почтовыми протоколами.
Обычно это протоколы UUCP и SMTP, sendmail может интерпретировать
два типа почтовых адресов:
• почтовые адреса SMTP;
• почтовые адреса UUCP.
Программу можно настроить для поддержки:
• списка адресов-синонимов;
• списка адресов рассылки пользователя;
Организация почтового сервера 173
DHCP
• Адреса TFTP-серверов.
П Адреса web-серверов.
А также большое количество второстепенных параметров, полное описание
которых можно найти в документации на DHCP-сервер.
DHCP-сервер
Начнем описание программного обеспечения с серверной части, как наибо-
лее трудоемкой в настройке и более ответственной. Программное обеспече-
ние DHCP-сервера входит, практически, в любой современный дистрибу-
тив. Если же вы не обнаружили его на дисках, можно загрузить его с сайта
Internet Software Consortium (разработчика DHCP) — www.isc.org.
Установка пакета не должна вызвать никаких сложностей. После нее нужно
убедиться, что демон dhcpd будет автоматически стартовать при загрузке
операционной системы. За конфигурацию dhcpd отвечают два файла:
/etc/dhcpd.conf и /var/lib/dhcp/dhcpd.leases.
Файл dhcpd.conf
В этом файле содержатся все настройки DHCP-сервера. Сначала опишем
эти настройки, а после рассмотрим типичные конфигурационные файлы.
Итак, файл dhcpd.conf содержит конфигурационную информацию для де-
мона dhcpd. Он представляет собой текстовый ASCII-файл. Комментарием
является строка, начинающаяся с символа "#". Конфигурационные пере-
менные состоят из двух частей: параметров и значений, заканчивающихся
точкой с запятой. Глобальные параметры, действие которых распространя-
ется на все группы, размещаются вначале данных, до описания групп. Вна-
чале файла можно определить параметры, действие которых будет распро-
страняться на все группы данных:
• ddns-update-style none — разрешает либо запрещает использование
динамического обновления DNS;
П option domain-name "t es t .o rg " — этот параметр задает имя домена,
в котором функционирует DHCP-сервер. В дальнейшем можно не указы-
вать в переменной host полное имя хоста;
О option domain-name-servers имена DNS-серверов — параметр определя-
ет список DNS-серверов, используемых DHCP-сервером при разрешении
символических имен;
• option netbios-name-servers список IP-адресов — ЭТОТ параметр, если
клиент использует протокол NetBIOS, определяет список WINS-серверов;
П option netbios-node-type цифровое значение — параметр определяет
порядок использования параметра netbios-name-servers:
• 1 — использование широковещательных запросов вместо WINS-сервера;
180 Глава 9
group {
параметры группы . . .
host vasya.test.org {
параметры хоста . . .
}
host petya.test.org {
параметры хоста ..
Здесь:
D subnet ip-адрес netmask маска сети — этот параметр определяет адрес под-
сети и маску, для которой DHCP-сервер будет выдавать динамические IP-
адреса. В конфигурационном файле может быть несколько записей subnet:
• range IP-адрес начала диапазона IP-адрес конца диапазона — па-
раметр задает диапазон IP-адресов, из которых сервер может выдавать
адреса для данной подсети. Параметр range необязательный, при его
отсутствии диапазон динамически выдаваемых IP-адресов определяет-
ся исходя из подсети и ее маски;
• option domain-name "test.org" — этот параметр задает имя домена,
в котором функционирует DHCP-сервер. В дальнейшем можно не
указывать в переменной host полное имя хоста;
• option nis-domain " t e s t . o r g " — если присутствует поддержка NIS,
можно задать домен подсети;
• option routers ip-адрес — параметр содержит список IP-адресов
маршрутизаторов;
• option subnet-mask маска подсети — параметр позволяет задать мас-
ку подсети;
• option domain-name-servers имена DNS-серверов — параметр опре-
деляет список DNS-серверов, используемых DHCP-сервером при раз-
решении символических имен;
• range dynamic-bootp IP-адрес начала диапазона IP-адрес конца
диапазона — этот параметр задает диапазон адресов для клиентов, ко-
торые производят загрузку по протоколу ВООТР;
182 Глава 9
Файл dhcpd.leases
Файл dhcpd.leases представляет собой базу данных, в которой хранятся запи-
си о клиентах и арендованных ими IP-адресах. Запись представляет собой
несколько строк следующего вида:
lease 192.168.0.27 {
starts 5 2005/03/20 09:14:54;
ends 5 2005/03/27 09:14:54;
hardware ethernet 00:60:67:75:40:37;
uid 01:00:60:67:75:40:37;
client-hostname "Test";
}
где:
• lease 192.168.0.27 — показывает, какой IP-адрес взят в аренду;
• s t a r t s 5 2005/03/20 09:14:54 — начало срока аренды (в данном случае
20 марта 2005 года в 9 часов 14 минут и 54 секунды);
• ends 5 2005/03/27 09:14:54— предполагаемый конец аренды (если
клиент не запросит продления аренды). Легко заметить — время аренды
равно 7 суток;
DHCP 183_
DHCP-клиент
DHCP-клиент уже встроен в операционную систему Windows. Настройка
его элементарна — при конфигурировании сетевого интерфейса выбираем
настройки IP. И выставляем две метки, как показано на рис. 9.1.
Мы просто ставим две метки — Получить IP-адрес автоматически и Полу-
чить адрес DNS-сервера автоматически. Этого достаточно, чтобы наш клиент
получил автоматически все настройки при старте операционной системы от
нашего DHCP-сервера.
©ПолучетьIP-aapec автоматически
.- •© Использовать следующий IP-адрес:
i .ополнительно...
ОК Отмена
DNS
По стандартам для поддержки домена необходимо наличие двух DNS-
серверов: первичного и вторичного. Это необходимо для надежности функ-
ционирования DNS-служб — если один сервер по каким-то причинам не-
доступен, то второй берет на себя обслуживание запросов по домену.
А вот стратегии организации DNS для вашего домена firma.ru могут быть
различными. Самый простой для администратора, но не самый дешевый, —
прописать свой домен на DNS-серверах провайдера. При этом следует учи-
тывать, что некоторые провайдеры прописывают домены клиентов в оба
своих сервера, а некоторые — только в первичный, либо только во вторич-
ный. Другой вариант — один DNS-сервер настроить у себя, а второй —
у кого-то еще. В частности, на Украине есть бесплатный первичный
(http://primaryns.kiev.ua) и два вторичных сервера (http://secondary.net.ua и
http://ns2.trifle.net). Мы рассмотрим конфигурирование первичного DNS-
сервера на собственном примере.
Файл /etc/named.conf
Для нашего сервера данный файл должен содержать следующие строки:
options {
directory "/var/named";
zone "localhost" IN {
188 Глава 10
type master;
file "localhost.zone";
allow-update { none; };
zone "0.0.127.in-addr.arpa" IN {
type master;
file "named.local",-
allow-update { none; };
include "/etc/rndc.key";
//it*********************************
// Our domains *
zone "firm.ru" IN {
type master;
file "firm.ru";
allow-transfer { 195.66.200.0/24; } ;
};
/y**********************************
// Office LAN *
//A*********************************
zone "firma" IN {
type master;
file "firma";
allow-transfer { none; };
allow-guery { 192.168.0.0/24; } ;
};
zone "0.168.192.in-addr.arpa" IN {
type master;
file "firma";
allow-transfer { none; };
allow-query { 192.168.0.0/24; };
руют по нему свои записи по зоне firma.ru), при изменении записей в зоне
не извещает другие серверы и использует для описания зоны файл firma.ru.
Секция zone "firma" определяет, что наш DNS-сервер предназначен для
зоны firma, и является в ней мастером, при изменении записей в зоне не
извещает другие серверы и использует для описания зоны файл firma (наша
локальная сеть), и не разрешает получать другим DNS-серверам информа-
цию об этой зоне.
Секция zone "0.168.192.in-addr.arpa" определяет, что наш DNS-сервер
поддерживает реверсную зону o.i68.i92.in-addr.arpa, является в ней мас-
тером, при изменении записей в зоне не извещает другие серверы и исполь-
зует для описания зоны файл 192.168.0.
IN NS ns. tirma.ua.
IN NS ns. te.net.ua.
IN NS nsl .tenet.Odessa.ua.
IN MX 10 firma.firma.ru.
IN MX 20 relay3.te.net.ua.
IN A 195 .66.200.100
ns IN A 195 .66.200.100
www IN CNAME ns
firma IN CNAME ns
localhost A 127. 0.0, 1
ns A 192. 168. 0.1
IN NS ns.firma.
IN TXT "firma local domain"
IN A 192.168.0.1
ns IN A 192.168.0.1
server IN CNAME ns
Файл /etc/named.conf
В этом файле для домена CDfree.ru появится такая запись:
//л*********************************
// Secondary *
//**********************************
zone "cdfree.ru" IN {
type slave;
masters { 195.108.80.22; };
file "cdfree.ru";
14400 ; r e t r y (4 hours)
3600000 ; expire (5 weeks 6 days 16 hours)
86400 ,- minimum (1 day)
)
NS cgo.te.ru.
A 195.108.80 .22
MX 10 cgo.te. r u .
$ORIGIN cdfree.ru.
ns A 195.108.80 . 2 2
www A 195.108.80 . 2 2
Этот файл синхронизируется с содержимым соответствующего файла пер-
вичного DNS-сервера.
Некоторые тонкости
Того, что мы рассмотрели, вполне достаточно для настройки небольшого
DNS-сервера, тем не менее разберем еще несколько полезных вещей, кото-
рые необходимо знать.
ns A 192.168.0.1
MX 10 mail
HINFO "Pentium3" "RH 9"
www CNAME ns
User A 192.168.0.3
MX 10 mail
HINFO "p3" "Windows2000"
TXT "Developer computer home t e l 223344"
Помимо знакомых вам строчек появились строки, содержащие HINFO, CNAME
и тхт.
• HINFO — информация о компьютере (Host INFOrmation) состоит из двух
частей: первая часть — это информация об оборудовании машины, а вто-
рая — описывает программное обеспечение и операционную систему
Сетевые настройки сервера, маршрутизация и DNS 193
7 3ак 1500
194 Глава 10
Реверсная зона
Не забывайте об обратной (реверсной) зоне! Очень неприятно, когда по
этой причине вы не сможете воспользоваться FTP-сервером или получите
сообщения о нарушениях системы защиты.
Иерархические поддомены
Если в вашей организации используется более одной подсети, то вам при-
дется задать несколько доменов in-addr.arpa. Создание поддоменов, под-
чиненных первичному домену, целесообразно также при наличии в вашей
организации нескольких отделов или подразделений. Это облегчит монито-
ринг сети, а также упростит организацию доступа в сеть и установку защит-
ных фильтров. Конечно, если ваша сеть состоит всего из нескольких ма-
шин, смысла в создании иерархии доменов просто нет.
Инструменты
Для тех, кто не хочет подробно изучать настройку DNS с помощью конфи-
гурационных файлов, существуют доступные инструменты, позволяющие
вносить изменения, особо не задумываясь. Произведите поиск, и вы навер-
няка найдете десяток-другой программ для удаленного администрирования
DNS-сервера, в том числе и имеющих графическую "дружественную" обо-
лочку. В частности, исходный код на языке HTML для создания инструмен-
тария по управлению службой DNS можно найти в Интернете по адресу
http://webdns.lcs.mit.edu/cgi-bin/webdns/. Существует также универсальная
программа для администрирования множеством сервисов через Интернет —
Webmin.
Глава 11
Почта
define('PROCMAIL_MAILER_PATH','/usr/bin/procmail')dnl
FEATURE(redirect)dnl
FEATURE(always_add_domain)dnl
FEATURE('blacklist_recipients')dnl
FEATURE('dnsbl', 'dnsbl.nj abl.org')dnl
FEATURE('dnsbl','drbl.online.com.ua')dnl
FEATURE('dnsbl', 'bl.spamcop.net', '"Spam blocked see:
http://spamcop.net/bl.shtml?"$&{client_addr}')dnl
dnl FEATURE('accept_unresolvable_domains')dnl
А вот эта запись запрещает прием почты с адресов, для которых не смогли
получить их символическое имя.
INFUT_MAIL_FILTER('clamav-milter', 'S=local:/var/clamav/clmilter.socket,
F=,T=S:4m;R:4m;E:10m')
Эта запись должна быть вам знакома — она предназначена для того, чтобы
антивирусная программа clamav проверяла поступающую почту. В целом же
конфигурационный файл будет иметь приблизительно такой вид:
dnl This is the sendmail macro config file. If you make changes to this file,
dnl you need the sendmail-cf rpm installed and then have to generate a
dnl new /etc/sendmail.cf by running the following command:
dnl
dnl m4 /etc/mail/sendmail.mc > /etc/sendmail.cf
dnl
include('/usr/share/sendmail-cf/m4/cf .m4')
VERSIONIDf'linux setup for FedoraCore3 Linux')dnl
OSTYPE('linux')
dnl Uhcomment and edit the following line if your mail needs to be sent out
dnl through an external mail server:
dnl define)'SMART_HOST','smtp.your.provider')
define('confDEF_USER_ID',''8:12'')dnl
undefine('UUCP_RELAY')dnl
undefinef'BITNET_RELAY')dnl
define('confAUTO_REBUILD')dnl
define('confTO_CONNECT', 'lm')dnl
define('confTRY_NULL_MX_LIST',true)dnl
define('confDONT_PROBE_INTERFACES',true)dnl
define('PROCMAIL_MAILER_PATH','/usr/bin/procmail')dnl
Почта 199_
define('ALIAS_FILE', '/etc/aliases')dnl
dnl define('STATUS_FILE!, '/etc/mail/statistics')dnl
define('UUCP_JlAILER_I4AX', '2000000')dnl
define('confUSERDB_SPEC', '/etc/mail/userdb.db1)dnl
define('confPRIVACY_FLAGS', 'authwarnings,novrfy,noexpn,restrictqrun')dnl
define('confAUTH_OPTIONS', 'A')dnl
define('_FFR_MILTER', true)
dnl TRUST_AUTH_KECH('DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
dnl define('confAUTH_MECHANISMS', 'DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
dnl define('confTO_QUEUEWARN', '4h')dnl
dnl define('confTO_QUEUERETURN', '5d')dnl
dnl define('confQUEUEJLA', '12')dnl
dnl define('confREFUSE_LA', '18')dnl
dnl FEATURE(delay_checks)dnl
FEATURE('no_default_msa','dnl')dnl
FEATURE('smrsh','/usr/sbin/smrsh')dnl
FEATURE('mailertable','hash -o /etc/mail/mailertable.db')dnl
FEATURE('virtusertable','hash -o /etc/mail/virtusertable.db')dnl
FEATURE(redirect)dnl
FEATURE(always_add_domain)dnl
FEATURE(use_cw_f ile)dnl
FEATURE <use_ct_file)dnl
dnl The '-t' option will retry delivery if e.g. the user runs over his
quota.
FEATURE(local_procmail,'','procmail -t -Y -a $h -d $u')dnl
FEATURE('access_db','hash -o /etc/mail/access.db')dnl
FEATURE('blacklist_recipients')dnl
FEATURE('dnsbl','dnsbl.njabl.org')dnl
FEATURE('dnsbl','drbl.online.com.ua')dnl
FEATURE('dnsbl', 'bl.spamcop.net', '"Spam blocked see:
http://spamcop.net/bl.shtml?"$&{client_addr}')dnl
EXPOSED_USER('root')dnl
dnl This changes sendmail to only listen on the loopback device 127.0.0.1
dnl and not on any other network devices. Comment this out if you want
dnl to accept email over the network.
dnl DAEMON_OPTIONS('Port=smtp,Addr=127.0.0.1, Name=MTA')
dnl NOTE: binding both IPv4 and IPv6 daemon to the same port requires
dnl a kernel patch
dnl DAEMON_OPTIONS('port=smtp,Addr=::1, Name=MTA-v6, Family=inet6')
200 Глава 11
dnl We strongly recommend to comment this one out if you want to protect
dnl yourself from spam. However, the laptop and users on computers that do
dnl not have 24x7 DNS do need this.
dnl FEATURE('accept_unresolvable_domains')dnl
dnl FEATURE('relay_based_on_MX')dnl
INPUT_MAIL_FILTER('clamav-milter', 'S=local:/var/clamav/clmilter.socket,
F=,T=S:4m;R:4m;E:10m')
MAILER(smtp)dnl
MAILER(procmail)dnl
Cwlocalhost.localdomain
Что еще интересного? Вот есть такой файл — local-host-names. Если загля-
нем в него, то увидим следующее:
# local-host-names - include all aliases for your machine here.
firma.ru
primer.ru
alst.od.ua
alst.odessa.ua
FTP
Пакет vsftp
Для конфигурирования используются один основной файл и несколько до-
полнительных.
Файл etc/vsftpd/vsftpd.conf
Это основной конфигурационный файл, пример которого приведен ниже.
# The default compiled in settings are fairly paranoid. This sample file
# loosens things up a bit, to make the ftp daemon more usable.
# Please see vsftpd.conf.5 for all compiled in defaults.
#
# READ THIS: This example file is NOT an exhaustive list of vsftpd options.
# Please read the vsftpd.conf.5 manual page to get a full idea of vsftpd's
# capabilities.
202 Глава 12
#
# Allow anonymous FTP? (Beware - allowed by default if you comment this out).
anonymous_enable=NO
#
# Uncomment this to allow local users to log in.
local_enable=YES
#
# Uncomment this to enable any form of FTP write command.
write_enable=YES
#
# Default umask for local users is 077. You may wish to change this to 022,
# if your users expect that (022 is used by most other ftpd's)
local_umask=022
#
# Uncomment this to allow the anonymous FTP user to upload files. This only
# has an effect if the above global write enable is activated. Also, you
# will obviously need to create a directory writable by the FTP user.
anon_upl oad_enabl e=NO
#
# Uncomment this if you want the anonymous FTP user to be able to create
# new directories.
anon_mkdir_write_enable=NO
#
# Activate directory messages - messages given to remote users when they
# go into a certain directory.
dirmessage_enable=YES
#
# Activate logging of uploads/downloads,
xferlog_enable=YES
#
# Make sure PORT transfer connections originate from port 20 (ftp-data).
# connect_from_port_20=YES
# If you want, you can arrange for uploaded anonymous files to be owned
# by a different user. Note! Using "root" for uploaded files is not
# recommended!
#chown_uploads=YES
#chown_username=whoever
#
# You may override where the log file goes if you like. The default is
FTP 203
# shown below.
#xferlog_file=/var/log/vsftpd.log
#
# If you want, you can have your log file in standard ftpd xferlog format
xferlog_std_format=YES
#
# You may change the default value for timing out an idle session.
#idle_session_timeout=600
#
# You may change the default value for timing out a data connection.
#data_connection_timeout=120
#
# It is recommended that you define on your system a unique user which the
# ftp server can use as a totally isolated and unprivileged user.
#nopriv_user=ftpsecure
#
# Enable this and the server will recognise asynchronous ABOR requests. Not
# recommended for security (the code is non-trivial). Not enabling it,
# however, may confuse older FTP clients.
#async_abor_enable=YES
#
# By default the server will pretend to allow ASCII mode but in fact ignore
# the request. Turn on the below options to have the server actually do ASCII
# mangling on files when in ASCII mode.
# Beware that turning on ascii_download_enable enables malicious remote parties
# to consume your I/O resources, by issuing the command "SIZE /big/file" in
# ASCII mode.
# These ASCII options are split into upload and download because you may wish
# to enable ASCII uploads (to prevent uploaded scripts etc. from breaking),
# without the DoS risk of SIZE and ASCII downloads. ASCII mangling should be
# on the client anyway..
#ascii_upload_enable=YES
#ascii_download_enable=YES
#
# You may fully customise the login banner string:
#ftpd_banner=Welcome to blah FTP service.
#
# You may specify a file of disallowed anonymous e-mail addresses. Apparently
# useful for combatting c e r t a i n DoS a t t a c k s .
204 Глава 12
#deny_email_enable=YES
# (default follows)
#banned_email_file=/etc/vsftpd.banned_emails
#
# You may specify an explicit list of local users to chroot() to their
# home directory. If chroot_local_user is YES, then this list becomes a
# list of users to NOT chroot().
#chroot_list_enable=YES
# (default follows)
#chroot_list_file=/etc/vsftpd.chroot_list
#
# You may activate the "-R" option to the builtin Is. This is disabled by
# default to avoid remote users being able to cause excessive I/O on large
# sites. However, some broken FTP clients such as "ncftp" and "mirror" assume
# the presence of the "-R" option, so there is a strong case for enabling
# it.
#1s_recurs e_enable=YES
Файл etc/vsftpd.ftpusers
Этот файл содержит список пользователей, которым ЗАПРЕЩЕНО пользо-
ваться FTP-сервером. Обычно это следующие системные пользователи: root,
bin, daemon, adm, lp, sync, shutdown, halt, mail, news, uucp, operator, games,
nobody.
Файл etc/vsftpd.userjist
Если переменная в конфигурационном файле имеет значение
useriist_deny=NO, то в этом файле содержится список пользователей, кото-
рым разрешен доступ к FTP-серверу. Если же useriist_deny=YES (именно
такое значение по умолчанию), то файл содержит список пользователей,
которым запрещено пользоваться FTP-сервером.
Для того чтобы мы смогли получить доступ к нашему серверу извне, необ-
ходимо для нашего брандмауэра задать правило, разрешающее прохождение
FTP-пакетов. Это делается просто — добавляем следующие правила для iptables:
iptables -A INPUT -p tcp -m multiport —sports 20,21 -j ACCEPT
iptables -A OUTPUT -p tcp -m multiport -s OUTIP —dports 20,21 -j ACCEPT
service iptables save
Web-сервер Apache
Если можно без всего этого обойтись, либо вероятность неприятностей (об-
рыв кабеля, отсутствие света и т. п.) мала, то решение организовать на на-
шем сервере web-сайт напрашивается само. Подразумевается, что количест-
во одновременных запросов не более 10—30 в минуту, web-страницы
небольшие и генерируемый поток не превышает 2/3 пропускной способно-
сти нашей выделенной линии. Плюс сайт может пережить "отсутствие"
в Интернете какое-то время.
Конфигурация Apache
Итак, возможны два варианта: первый — на нашем сервере только один
web-сайт и второй — их несколько.
Единственный web-сайт
Первый вариант простой — я просто приведу часть конфигурационного
файла и расскажу, что к чему.
Файл httpd.conf
Полный текст конфигурационного файла нам не нужен, поэтому все не
нужное для наших целей я заменю точками.
#
# Based upon the NCSA server configuration files originally by Rob
# McCool.
#
# This is the main Apache server configuration file. It contains the
# configuration directives that give the server its instructions.
# See <URL:http://httpd.apache.org/docs-2.0/> for detailed information
# about the directives.
#
# Do NOT simply read the instructions in here without understanding
# what they do. They're here only as hints or reminders. If you are
# unsure consult the online docs. You have been warned.
#
# The configuration directives are grouped into three basic sections:
# 1. Directives that control the operation of the Apache server process
# as a whole (the 'global environment').
# 2. Directives that define the parameters of the 'main' or 'default'
# server, which responds to requests that aren't handled by a virtual
# host.
Web-сервер Apache 209
ServerRoot "/etc/httpd"
Timeout 120
Listen 80
#
# If you wish httpd to run as a different user or group, you must run
# httpd as root initially and it will switch.
#
# User/Group: The name (or #number) of the user/group to run httpd as.
210 Глава 13
#
# ServerAdmin: Your address, where problems with the server should be
# e-mailed. This address appears on some server-generated pages, such
# as error documents, e.g. admin@your-domain.com
#
ServerAdmin admin@firm.ru
#
# ServerName gives the name and port that the server uses to identify itself.
# This can often be determined automatically, but we recommend you specify
# it explicitly to prevent problems during startup.
#
# If this is not set to valid DNS name for your host, server-generated
# redirections will not work. See also the UseCanonicalName directive.
#
# If your host doesn't have a registered ENS name, enter its IP address here.
# You will have to access it by its address anyway, and this will make
# redirections work in a sensible way.
#
ServerName www.firm.ru:80
DocumentRoot "/var/www/html"
AccessFileName .htaccess
Вот этого кусочка нам будет достаточно для стандартной настройки сервера.
Рассмотрим значения параметров.
П serverRoot "/etc/httpd" — указывает на конфигурационный каталог,
который использует Apache.
• Timeout 120 — время ожидания реакции от клиента, после которого со-
единение закрывается.
• Listen 80 — список портов, которые слушает сервер, можно задать
несколько.
• user apache — определяет пользователя, от имени которого работает
сервер.
П Group apache — определяет группу.
О serverAdmin admin@firm.ru — адрес электронной почты администратора.
• serverName firm.ru: 80 — задает имя и порт для web-сайта.
П DocumentRoot W a r /www/html" — указывает корневую директорию для
документов web-сайта.
• AccessFiieName .htaccess — определяет файл, при наличии которого
считываются ограничения на доступ к web-сайту.
11
• scriptAiias /cgi-bin/ " /var/www/cgi-bin/ — путь к каталогу сценариев.
Если вам захочется заняться тонкой настройкой сервера, то советую обра-
титься к документации, расположенной на web-сайте www.apache.org.
212 Глава 13
Несколько web-сайтов
(виртуальные web-серверы)
Итак, что такое виртуальные web-сервера и для чего они нужны? Если идти
классическим путем, то в том случае, когда вы захотите помимо web-сайта
www.firma.ru завести себе еще www.e-shop.firma.ru, вам придется купить еще
один IP-адрес, выделить отдельный сервер, либо завести на уже сущест-
вующем сервере еще одну копию Apache. Эти действия приведут, во-
первых, к увеличению накладных расходов, во-вторых, к дополнительной
трате ресурсов. Для удешевления была придумана и реализована схема вир-
туальных web-серверов. Как это работает?
В сети есть один web-сервер, сконфигурированный так, чтобы он прослуши-
вал один IP-адрес и в зависимости от того, к какому web-сайту происходит
запрос, выдавал бы соответствующие страницы. Это дает и экономию
в ресурсах, деньгах и простоту настройки. Однако обратной стороной медали
является то, что при взломе сервера будет нанесен больший вред, поскольку
злоумышленник получает доступ к десяткам или даже сотням web-сайтов.
Виртуальные серверы могут иметь один и тот же IP-адрес и разные домен-
ные имена, а могут иметь и разные IP-адреса. Для описания адресов и до-
менных имен виртуальных серверов служат директивы ServerName, Server-
Alias, NamevirtualHost и virtuaiHost. Они необходимы, только если вам
нужно установить более одного виртуального сервера.
Директива ServerName, находящаяся вне секций virtuaiHost, определяет
имя основного сервера, корневой каталог которого задан директивой
DocumentRoot в файле srm.conf. Виртуальные серверы наследуют настройки
основного; при необходимости специальной настройки соответствующие ди-
рективы помещаются в секции virtuaiHost, относящейся к данному серверу.
Ниже приведен фрагмент конфигурационного файла для виртуальных сер-
веров с различными IP-адресами:
ServerName www.root.ru
<VirtualHost 192.168.0.1>
DocumentRoot /www/root.ru
ServerName www.root.ru
ErrorLog /var/log/error_log.root.ru
</VirtualHost>
<VirtualHost 192.168.11.6>
Web-сервер Apache 213
DocumentRoot /www/r.ru
ServerName www.r.ru
ErrorLog /var/log/error_log.r.ru
CustomLog /var/log/access_log.r.ru combined
</VirtualHost>
ServerName www.root.ru
NameVirtualHost 192.168.0.2
<VirtualHost 192.168.0.2>
DocumentRoot /www/root.ru
ServerName www.root.ru
ErrorLog /var/log/error_log.root.ru
CustomLog /var/log/access_log.root.ru combined
</VirtualHost>
<VirtualHost 190.168.0.2>
DocumentRoot /www/r.ru
ServerName www.r.ru
ServerAlias *.r.ru
ErrorLog /var/log/error_log.r.ru
CustomLog /var/log/access_log.r.ru combined
</VirtualHost>
Настройка DNS
В связи с вводом в эксплуатацию web-сайта необходимо кое-что изменить
в настройках нашей DNS-зоны. Хорошим тоном считается возможность по-
лучать доступ как по адресу www.firma.ru, так и просто firma.ru. В связи
с этим необходимо добавить следующую запись:
www IN А наш внешний IP-адрес
Такую запись можно добавить также для почтового и FTP-сервера.
Глава 14
Прокси-сервер
Если вы настроите свой браузер для работы через прокси-сервер, то при за-
просе некоторого документа из Интернета, если кто-то уже обращался с по-
добным запросом, вы получите документ незамедлительно, с максимальной
скоростью, на которую способно ваше сетевое подключение, потому что вы
получите копию документа, взятую из кэша прокси-сервера. Если же в кэше
данного документа нет, то запрос будет переадресован web-серверу, на кото-
ром хранится оригинал, при этом его копия будет записана в кэш. Чем боль-
ше пользователей пользуются прокси-сервером, тем более существенной
становится его помощь. Согласно статистике, количество обращений пользо-
вателей к одним и тем же документам в Интернет приближается к 60%.
Многие прокси-серверы обладают еще одним интересным свойством — они
могут обмениваться информацией между собой, что существенно ускоряет
доступ к данным, хранящимся на удаленных или сильно загруженных сер-
верах.
Прокси-сервер предоставляет следующие возможности:
• централизованный выход в Интернет через один сервер в сети;
• локальное хранение часто просматриваемых документов для увеличения
скорости загрузки страниц;
• возможность регулировать пропускную способность канала в зависимо-
сти от его нагрузки;
• авторизованный доступ в Интернет;
• возможность обмена данными кэша.
Что касается динамически формируемой информации, то не все прокси-
серверы обрабатывают ее корректно, однако большинство из них имеют
большое количество настроек и обладают множеством интеллектуальных ал-
горитмов, позволяющих работать с любыми данными.
Наиболее распространенным прокси-сервером, доступным под лицензией
GNU, является Squid.
216 Глава 14
Squid
Squid — это высокопроизводительный кэширующий прокси-сервер, под-
держивающий протоколы FTP, gopher и HTTP. Squid сохраняет часто
запрашиваемые данные в оперативной памяти компьютера, что позволяет
увеличить производительность, кэширует DNS-запросы (это свойство инте-
ресно для тех, кто не имеет своего DNS-сервера). Помимо вышеперечис-
ленных возможностей, поддерживает SSL, расширенный контроль доступа
и полную регистрацию запросов.
Одной из ключевых возможностей пакета Squid является использование
протокола ICP (Internet Cache Protocol, протокол интернет-кэширования),
что позволяет создать иерархию серверов Squid для дополнительной эконо-
мии пропускной способности канала. Поддерживаемые функции:
П кэширование HTTP, FTP;
• SSL;
CJ иерархия кэшей;
• ICP, HTCP (HyperText Cache Protocol), CARP (Cache Array Routing Protocol),
WCCP (Web Cache Control Protocol), Cache digests1;
О прозрачность;
• гибкий контроль доступа;
• HTTP-серверное ускорение;
• SNMP;
• кэширование DNS-запросов;
• возможность ограничения трафика.
Установка Squid не вызывает проблем. После конфигурирования необходи-
мо будет его запустить с помощью команды service. Также не забывайте
прописать старт службы при включении операционной системы при помо-
щи утилиты ntsysv.
Сетевые параметры
Сетевые параметры имеют несколько настроек.
• http_port 3128 — порт для запросов клиентов.
• icp_port 3130 — порт для ICP-запросов. В том случае, если не предпо-
лагается использовать иерархию прокси-серверов, необходимо указать
нулевой порт.
• htcp_port 4827 — порт для общения с соседями через ТСР-протокол.
• mcast_groups 239.128.16.128 224.о. 1.20 — адреса групп, используемые
для получения ICP.
• passive_ftp on | off — режим пассивного FTP. Необходимо включить
в том случае, если Squid находится за брандмауэром.
Размер кэша
Раздел предназначен для определения параметров кэша — размера, исполь-
зования, времени хранения информации и т. п.
• cache_mem 8 мв — объем оперативной памяти, используемой для хране-
ния обрабатываемых объектов;
• cache_swap_high 95 — при достижении данного уровня заполнения кэша
(в процентах) начинается ускоренный процесс очистки кэша от устарев-
ших объектов;
• cache_swap_low 90 — процесс удаления старых объектов заканчивается,
если достигнут заданный уровень (в процентах);
Я maximum_object_size 4096 кв — максимальный размер кэшируемого
объекта;
• minimum_object_size о кв — минимальный размер кэшируемого объек-
та; файлы меньшего размера не сохраняются;
• ipcache_size 1024 — размер кэша для IP-адресов;
• ipcache_high 95 — верхний уровень заполнения IP-кэша для алгоритма
удаления старых объектов;
• ipcache_iow 90 — нижний уровень заполнения IP-кэша для алгоритма
удаления старых объектов.
Время ожидания
В этом разделе задаются различные временные параметры Squid:
О connect_timeout 120 seconds — время ожидания соединения с сервером;
• siteseiect_timeout 4 seconds — максимальное время на выбор URL;
• read_timeout 15 minutes — сколько времени разрешается ждать сле-
дующего байта от сервера;
О request_timeout зо seconds — сколько разрешается ждать запроса по-
сле установления соединения;
О ciient_lifetime I day — сколько времени разрешать клиенту быть при-
соединенным к Squid; соединение обрывается, даже если происходит пе-
редача данных;
О haif_ciosed_ciients on — разрешать наполовину закрытые соедине-
ния — например чтение есть, а запись уже закрыта;
• shutdown_lifetime зо seconds — сколько времени продолжать обслужи-
вание после получения сигнала SIGTERM ИЛИ SIGHUP.
Права доступа
Права доступа определяются следующими строками:
• http_access allow | deny [! ]aclname — Кому разрешать ДОСТУП ПО HTTP;
П icp_access allow| deny [! ]aclname — кому разрешать доступ ПО ICP;
• miss_access allow|deny [!]aclname— кому разрешить Получать ответ
MISS;
• cache_peer_access cache-host allow|deny [!]aclname— ОфЭНИЧИТЬ за-
просы к данному соседу;
• proxy_auth_realm Squid proxy-caching web server — строка текста, KOTO-
рая будет выдана на экран клиента при запросе имени/пароля доступа
к кэшу.
Параметры администрирования
Параметры администрирования определяются следующими строками:
О cache_mgr email — почтовый адрес, на который будет послано письмо,
если у Squid возникнут проблемы;
• cache_effective_user nobody — если запускается Squid от имени root, то
заменить UID на указанный;
• cache_effective_group nogroup — если запускается Squid от группы root,
то заменить GID на указанный;
О visible_hostname имя-хоста — это имя будет упоминаться в сообщениях
об ошибках;
Прокси-сервер 221
Transparent proxy
Transparent proxy — это таким образом настроенный прокси-сервер, что его
использование прозрачно для пользователей. То есть пользователям не при-
Прокси-сервер 223
Squid — k rotate
Файл store.log
Файл store.log используется для хранения информации обо всех кэшируемых
объектах. Единицей информации о соединении является строка. Строка со-
стоит из одиннадцати полей. Ниже приведены поля с пояснениями:
• Time — время в UNIX-формате (время с 1 января 1970 года в миллисе-
кундах);
• action — действие:
• RELEASE — удален из кэша;
• SWAPOUT — сохранен на диск;
• SWAPIN — был на диске, загружен в память;
8 3ак. 1500
226 Глава 14
Файл useragent.log
Предназначен для хранения информации о том, какими браузерами пользу-
ются клиенты. Малоинтересен в практическом плане, разве что для получе-
ния статистики.
Нестандартные применения
Функциональность программы Squid не ограничивается только функцией
прокси-сервера. У нее есть достаточно много других интересных примене-
ний. В этом разделе мы рассмотрим только некоторые из них.
Борьба с баннерами
Наверняка вам встречались web-сайты, на которых нужной информации
было от силы на килобайт, а рекламных баннеров (зачастую анимирован-
ных) — 5—6. Хорошо когда канал большой и бесплатный. Когда же пользу-
ешься обычным коммутируемым соединением, да еще платишь за соедине-
ние из своего кармана, каждый килобайт начинаешь считать. В этом случае
можно настроить локальный сервер Squid таким образом, чтобы не проис-
ходила закачка ненужных баннеров. Этого можно добиться несколькими
способами.
На месте баннеров показываются разорванные картинки или перекрещен-
ные прямоугольники (неполученные файлы). Определяем web-сайты бан-
нерных сетей и создаем для них регулярные выражения. Создаем в каталоге
/usr/local/Squid/etc следующие файлы:
П banners_path_regex — содержит по одному регулярному выражению на
строку;
• banners_regex — содержит по одному регулярному выражению на строку;
Прокси-сервер 227
Конечно, все это можно сделать более элегантно, однако данный метод ра-
ботает, а настроить можно за пару минут.
где:
• pool — номер пула, для которого определяются каналы;
• t o t a l — ширина канала на всех;
• net — ширина канала на подсеть;
• ind — ширина канала на отдельный адрес;
О r e s t — скорость заполнения (байт/с);
• max — объем "емкости" (байт).
Обработка статистики
В стандартную поставку пакета Squid входят сценарии, написанные на Perl,
позволяющие создавать отчеты о работе программы Squid:
• access-extract.pl — получает на стандартный ввод журнал access.log и вы-
дает на стандартный вывод промежуточный результат;
• access-summary.pl — получает на вход результат работы access-extract.pl
и делает из него красивый отчет.'
Программа MRTG
Еще одна программа, позволяющая получать при соответствующей настрой-
ке отчеты о работе Squid. Вывод осуществляется в виде web-страниц.
Глава 15
Протокол NNTP
Протокол NNTP описывается в документе RFC 977, а стандарт обмена со-
общениями в Usenet в документе RFC 1036. NNTP предназначен для рас-
сылки, подписки, поиска и доставки новостей на основе TCP по технологии
клиент-сервер, использует стандартные сообщения, описанные в RFC 850.
Единицей хранения на сервере является статья.
Рассмотрим стандартный сценарий обмена информацией по NNTP. Пусть
есть два или более хоста (один из них выступает в роли клиента, осталь-
ные — серверы). Процедура обмена начинается с запроса на получение спи-
ска новых групп новостей, для чего выдается команда NEWGROUPS. Затем кли-
ент делает запрос командой NEWNEWS О наличии новых статей из групп,
представляющих интерес. Сервер высылает список статей, клиент обрабатывает
232 Глава 15
Сервер новостей
Серверов новостей несколько, как способных поддерживать очень большие
базы сообщений и большое количество одновременно подключенных поль-
зователей, так и небольших, предназначенных для маленькой локальной
сети и пары десятков подключений. Для первой группы характерна трудо-
емкость в настройке и отладке сервера, для второй группы — простота.
К первой группе можно отнести CNews и INN. Ко второй leafnode, Suck.
Поскольку мы не собираемся становиться мегапровайдерами, от рассмотре-
ния первой группы мы откажемся. Для тех, кому это интересно, я рекомен-
дую обратиться к моим предыдущим книгам. Нам же необходимо простое и
быстрое решение для небольшой локальной сети.
leafnode
Домашняя страница этого проекта — http://leafnode.sourceforge.net/. По-
скольку нам интересен наиболее свежий вариант, скачиваем его с сайта
ALTLinux. Установка, как обычно, не занимает много времени. Чем же ин-
тересен этот сервер для нас? Во-первых, в отличие от других серверов, он
очень прост в настройке, и занимает мало места. Кстати, существует так же
вариант и для Windows NT. Во-вторых, он скачивает только те группы, на
которые подписаны его пользователи, что позволяет экономить на трафике.
И в-третьих, сервер это делает только тогда, когда есть подключение к Ин-
тернету, т. е. не пытается самостоятельно дозвониться к провайдеру и ска-
чать информацию.
236 Глава 15
INN
Если же вы решитесь настроить INN, то я порекомендую вам свою книгу
"Сетевое администрирование Linux". Здесь же я затрону одну тему, которую
не описал в своей предыдущей книге.
Если вы договорились с провайдером о том, что он разрешит вам взаимо-
действовать с его NNTP-сервером на уровне обмена данных между сервера-
ми — великолепно! Но обычно провайдер не предоставляет такой возмож-
ности. Что же делать? Есть программа, которая позволяет подключаться
к NNTP-серверу провайдера, как обычный клиент забирает с него необхо-
димую информацию и раскладывает ее в соответствующие файлы сер-
вера INN.
Называется эта программа Suck и ее домашняя страница —
http://home.comcast.net/~bobyetman/index.html. Помимо того, что она забира-
ет новостные статьи, она позволяет отправлять на сервер провайдера статьи.
Также существует еще одна разновидность программы — SuckMT, сайт ко-
торой http://oss.basjes.nl/SuckMT/. Чем же она лучше оригинальной утили-
ты? Она поддерживает многопоточность, что позволяет забирать от провай-
дера несколько статей сразу.
Глава 16
NTP. Синхронизация
времени через сеть,
настройка временной зоны
Для грамотно настроенной сети предприятия характерен учет всех мелочей,
особенно когда эти мелочи таковыми не являются. В частности, системные
дата и время компьютера. При разнообразных "разборах полетов" приводят
различные журналы действий пользователя, и при неправильной настройке
системного времени грош цена таким данным. Можно, конечно, настройку
времени производить вручную, однако через пару-тройку недель вам это
наскучит. Особенно неприятно, когда компьютеров несколько десятков,
и время у всех должно быть синхронизировано. Для синхронизации систем-
ного времени создателями Интернета была предусмотрена специальная
служба — NTP.
Классы обслуживания
Служба точного времени имеет несколько классов обслуживания клиентов:
• multicast — предназначен для использования в быстрой локальной сети
с множеством клиентов, где отсутствует необходимость в высокой точно-
сти. Принцип действия — один или более NTP-серверов рассылают ши-
роковещательное сообщение, клиенты определяют время, предполагая,
что задержка составляет несколько миллисекунд. Сервер не принимает
ответных NTP-сообщений;
• procedure-call — предназначен для получения высокоточного времени.
NTP-клиент посылает запрос на сервер точного времени, который обра-
батывает запрос и немедленно посылает ответ. Сервер не синхронизиру-
ется с клиентом;
П symmetric — предназначен для использования серверами точного време-
ни. Представляет собой динамически реконфигурируемую иерархию сер-
веров точного времени. Каждый сервер точного времени синхронизирует
своих соседей и синхронизируется своими соседями в соответствии
с правилами выбора соседей. Активный режим используется серверами
точного времени низшего уровня с заранее определенными адресами со-
седей, пассивный режим используется серверами точного времени, близ-
кими к первому уровню и взаимодействующими с соседями с заранее
неизвестными адресами.
Рекомендуемая конфигурация
Рекомендуемая конфигурация подразумевает наличие трех местных серверов
точного времени, соединенных между собой, каждый из которых подключен
к двум различным внешним серверам. Клиенты службы точного времени
подключаются к каждому местному серверу точного времени.
Сервер xntpd
Для UNIX-платформы, в том числе и Linux, существует сервер точного вре-
мени, носящий название xntpd. Этот сервер полностью реализует стандарт
RFC 1305 и имеет расширенные возможности, которые планируется вклю-
чить в следующую версию стандарта. Входит в стандартную поставку боль-
шинства дистрибутивов Linux. Установка тривиальна. Файл конфигура-
ции — /etc/ntp.conf.
Конфигурация сервера
Поскольку варианты конфигурирования сервера зависят от класса обслужи-
вания, сервер имеет достаточно много настроек, которые в основном содер-
жатся в конфигурационном файле /etc/ntp.conf.
Класс symmetric
Этот класс предназначен для конфигурирования сервера точного времени
В режиме symmetric.
peer <address> [key <key>] [version <version>] [prefer]
[minpoll <minpoll>] [maxpoll <maxpoll>]
Здесь:
D <address> — адрес симметричного сервера;
О <key> — 32-битный ключ для поля аутентификации (по умолчанию от-
сутствует);
О prefer — предпочитать данный сервер при прочих равных условиях;
242 Глава 16
Класс procedure-call
Этот класс предназначен для конфигурирования сервера точного времени
В режиме procedure-call.
server address [key <key>] [version <version>] [prefer] [mode
<mode>]
Класс multicast
Предназначен для настройки режима multicast. Обычно используется
в локальных сетях.
• broadcast <address> [key <key>] [version <version>] [ttl <ttl>]
• <address> — адрес симметричного сервера;
• <key> — 32-битный ключ для поля аутентификации (по умолчанию
отсутствует);
• <version> — версия протокола;
• <tti> — время жизни пакета.
• broadcastclient [<address>] <address> — адрес клиента, получающего
информацию;
• broadcastdelay <секунд> — позволяет самостоятельно указать задержку
в распространении пакета.
Общие параметры
Опишем общие параметры настройки сервера xntpd:
О d r i f t f i l e <driftfile> — определяет файл, в котором хранится и извле-
кается при запуске сдвиг частоты местных часов;
О enable/disable auth/monitor/pll/pps/stats — ВКЛЮЧИТЬ/ВЫКЛЮЧИТЬ
режим работы:
• auth — с неупомянутыми соседями общаться только в режиме аутен-
тификации;
NTP. Синхронизация времени через сеть, настройка временной зоны 243
Публичные NTP-серверы
Список публичных серверов точного времени можно найти в Интернете.
В любом случае вам придется протестировать серверы из этого списка, что-
бы определить задержки и качество соединения. Попробуйте сначала полу-
чить список серверов точного времени вашего провайдера (провайдеров).
В списке литературы приведена ссылка на список серверов точного времени
первого и второго уровней, можно попробовать синхронизироваться от них.
Клиентские программы
для синхронизации времени
Сам по себе сервер точного времени бесполезен, если у пользователей от-
сутствует программное обеспечение для синхронизации. В настоящее время
практически для всех операционных систем есть программы получения вре-
мени с NTP-серверов. Некоторые из них приведены далее.
246 Глава 16
UNIX/Linux
Для этих операционных систем можно на компьютере установить сервер
xntpd и настроить его для получения точного времени. У этого решения есть
как достоинства, так и недостатки. Положительным моментом является то,
что мы можем максимально точно синхронизировать время и построить
отказоустойчивую конфигурацию. Отрицательный момент — достаточно
сложное конфигурирование сервера и относительно большой объем зани-
маемой оперативной памяти компьютера.
Более простой вариант — воспользоваться утилитой ntpdate. Она небольшая
по размерам и простая в конфигурировании. С ее помощью можно получить
достаточно точное время — расхождение порядка 100 миллисекунд. Для
синхронизации времени достаточно выполнить следующую команду:
ntpdate -В <ntp> <ntp2> <ntp3>
Apple
Для компьютеров фирмы Apple есть клиент NTP, называющийся macntp.
Windows
Для операционной системы Windows существует несколько десятков клиен-
тов службы точного времени. В частности, программа AboutTime, кото-
рую можно получить по адресу www.listsoft.ru/programs/536/. Или про-
грамма AnalogX Atomic TimeSync, получить которую можно по адресу
www.analogx.com/contents/download/network/ats.htm. А можно воспользовать-
ся программой Dimension 4 — www.thinkman.com/~thinkman.
В Windows XP встроен свой клиент, который самостоятельно синхрони-
зируется с внешним сервером, определенным производителем операци-
онной системы. Для настройки необходимо зайти в Панель управления,
выбрать иконку Дата и время и щелкнуть на вкладке Время Интернета
(рис. 16.1).
Здесь мы должны установить флажок Выполнять синхронизацию с сервером
времени в Интернете, а чуть ниже — вписать адрес нужного нам NTP-
сервера (если, конечно, вас не устраивает сервер имени Microsoft).
NTP. Синхронизация времени через сеть, настройка временной зоны 247
ок Отмена
Сервер Samba —
контроллер домена
Несколько ранее мы уже производили настройку Samba для работы в одно-
ранговой (равноправной) сети. Наряду с положительными моментами (лег-
кость настройки, независимость от сервера) тут есть и отрицательные — для
нормальной работы необходимо на каждом компьютере прописывать поль-
зователей и производить администрирование — права доступа, пароли, ог-
раничения. В общем, для трех компьютеров это терпимо, для двадцати уже
нет. Захотелось шефу для любимой бухгалтерши открыть доступ к докумен-
там всех сотрудников — бегай по всем компьютерам, назначай права. А если
после отпуска шеф забыл пароль, попробуй, уговори его пройтись по всем
компьютерам и ввести 40 раз пароль — узнаешь, где премия зимует.
Для данной проблемы придумали множество решений. Одно из них от Mi-
crosoft —Active Directory1 — достаточно обширное и гибкое. К сожалению,
сервер Samba пока не поддерживает данную технологию. Частично это мож-
но поправить, используя LDAP, но все равно полной совместимости с Win-
dows Server 2000/2003 не получится. Поэтому просто рассмотрим случай,
когда Samba выступает в качестве первичного контроллера домена, что по-
зволит нам централизованно управлять списком пользователей сети.
Конфигурирование Samba
в качестве первичного
контроллера домена
Ранее мы рассмотрели основные моменты конфигурирования сервера в ка-
честве простого сервера, предоставляющего в пользование свои ресурсы.
В этом разделе мы будем конфигурировать Samba таким образом, чтобы
1
Продукт компании Microsoft, предназначенный для обеспечения управления, за-
щиты, доступа и разработки компонентов сети.
250 Глава 17
[global]
; основные настройки сервера
netbios name = domain_pdc
workgroup = test
; настройки безопасности
security = user
Windows 9x
Конечно, тяжело сейчас найти компьютер с установленным Windows 98, но,
тем не менее, какая-то часть старой техники еще функционирует, и не ис-
252 Глава 17
Windows 2000/XP
В целом, настройка сетевых параметров аналогична, необходимо указать,
что компьютер входит в домен test, и при входе ввести имя учетной записи
и пароль.
Контроль и аудит
Прокси-сервер
Установку прокси-сервера мы уже рассматривали, поэтому что-то вам будет
уже знакомо. Итак, что же мы можем сделать с его помощью? В первую
очередь, поскольку полученные данные кэшируются, то таким образом мы
можем сэкономить. Поскольку у нас уже используется DHCP-сервер, одной
из возможностей которого есть выдача клиентам адреса прокси-сервера, на-
страивать ничего не нужно.
254 Глава 18
Еще один вариант transparent proxy — это таким образом настроенный про-
кси-сервер, что его использование полностью прозрачно для пользователей.
Это имеет как хорошую сторону — пользователям не придется дополни-
тельно настраивать соединение, так и плохую — не все ресурсы будут ото-
бражаться корректно. Для организации transparent proxy необходимо, чтобы
транзитные пакеты, предназначенные для 80 порта, попадали на его вход.
Борьба с баннерами
Следующий этап экономии — удаление баннеров с просматриваемых стра-
ниц. Средний баннер занимает 15—30 Кбайт, так что при просмотре
100 страниц в день экономия на баннерах составит порядка 36—72 Мбайт
в рабочий месяц. Вроде бы и не густо, но в целом комплексе мер это дает
существенную экономию. Борьбу с баннерами можно производить разными
методами:
П настроить отдельный прокси-сервер, с ограничением баннеров;
• совместить ограничение баннеров с transparent proxy;
• организовать прокси-сервер на локальной системе для ограничения бан-
неров.
Подробную информацию см. в разд. "Борьба с баннерами" гл. 14.
Организация доступа
к web-ресурсам по паролю
Как уже упоминалось ранее, Squid очень гибок, благодаря наличию ACL-
правил. Это нам, в частности, дает возможность ограничить доступ пользо-
вателей к ресурсам по паролю. Что для этого нужно? Список пользователей,
их пароли и специальные правила в конфигурационном файле Squid, благо-
даря которым и будет происходить авторизация. В простейшем случае это
организуется следующим образом:
authenticate_program /usr/local/squid/bin/ncsa_auth
Квотирование трафика
Один из вариантов управления трафиком — выдача квот для каждого поль-
зователя. Использование квотирования позволяет жестко ограничить по-
требляемый трафик и поэтому можно и не организовывать всяческие удале-
ния баннеров, доступы по паролю и т. п. Одним из наиболее удачных, на
мой взгляд, пакетов — это NeTAMS.
Программа NeTAMS
Пакет можно найти по адресу www.netams.com. Скачать его в виде RPM-файла
можно по адресу www.altlinux.ru/index.php?module=sisyphus&package=netams.
Что же он умеет? На этот вопрос лучше всего ответит цитата с официально-
Контроль и аудит 257
Программа MRTG
MRTG создает HTML-страницу с отображением загрузки канала за сутки,
неделю, месяц и год. Для этого используется написанный на Perl сценарий,
который опрашивает маршрутизатор, а программа, написанная на С, обра-
батывает получившийся результат и создает встроенные в HTML-страницу
изображения в формате GIF/PNG. Помимо собранной информации, пакет
MRTG может обрабатывать информацию и из других источников (cpuinfo,
df, squid и т. п.) и строить графики.
Большим преимуществом данной программы является постоянный размер
журналов, в которых более старая информация хранится с меньшими под-
робностями. Внешний вид получаемых графиков приведен на рис. 18.1.
9 Зак 1500
258 Глава 18
fc 2 9 °' e r Ь МО.ОИ
3 140.0 В
6 8 10 l i 14 16 .18 20 22 6 8 10 П 14 16 18 20 22 0 2
bnk-loioM-lw-ra
Конфигурирование MRTG
Для конфигурирования программы MRTG используется файл mrtg.cfg, па-
раметры которого будут рассматриваться ниже. Как обычно, будут приведе-
ны только ключевые параметры, с полным списком можно ознакомиться
в документации, прилагаемой к этому программному пакету.
Правила записи параметров в конфигурационном файле:
• ключевое слово — в начале строки;
• двоеточие — разделитель, идущий сразу за ключевым словом;
• строка продолжения начинается с пробела;
• строки комментария начинаются с символа "#".
Итак, файл mrtg.cfg может содержать следующие команды:
П include: имя_файла — подключаемый файл;
Контроль и аудит 259
Программа RRDtool
Этот программный пакет обеспечивает хранение и отображение данных мо-
ниторинга — загрузку каналов, температуру и любую другую зависящую от
времени последовательность данных. Задумывалась как повторная, но более
правильная реализация MRTG. Объем хранимых данных не увеличивается со
временем — ячейки хранения используются циклически. В отличие от MRTG,
программа не упаковывает старые данные самостоятельно, сбор информации
и генерация HTML-кода также производятся с помощью внешних средств.
Параметры передаются в командной строке или через утилиту stdin.
262 Глава 18
Подсчет трафика
Иногда необходимо подсчитать трафик по клиентам, особенно когда орга-
низуется подключение домовой локальной сети или несколько небольших
фирм совместно покупают выделенную линию для подключения к провай-
деру. К сожалению, стопроцентного совпадения подсчитанного трафика
с данными провайдера добиться вряд ли удастся, поскольку приведенные
ниже способы подсчета трафика дают разные результаты. Правда, погреш-
ность подсчета обычно не превышает 5%.
Есть несколько вариантов подсчета трафика:
• по данным, взятым из SNMP;
• по данным, взятым из Cisco;
• по данным, взятым из /proc/tty/driver/serial;
• по данным, взятым из radacct (radius-accounting/ OutOctets);
• по iptables;
• с помощью nacctd.
Существует пакет, предназначенный для подсчета IP-трафика через прото-
кол SNMP. Он так и называется — универсальный счетчик IP-трафика че-
рез SNMP. Как уже отмечалось ранее, для этого можно использовать пакет
NeTAMS. Помимо этих двух пакетов, есть большое количество программ,
в частности, IpTraf, useripacct, netacct, ipacct.
Глава 19
Настройка входящего
модемного соединения
Мы уже умеем настраивать систему таким образом, чтобы она выступала
в роли шлюза для локальной сети. Но нам часто необходимо получить дос-
туп к локальной сети организации, например, из дома или из дома выйти
в Интернет через корпоративную сеть. Для этого нужно установить про-
грамму, которая умеет поднимать трубку по входящему звонку и совершать
некоторые дополнительные действия. Одной из таких программ является
mgetty, умеющая, помимо всего прочего, посылать и принимать факсы, а
также с помощью голосового модема принимать и отправлять голосовую
почту (voice mail).
Настройка mgetty
Обычно mgetty, как и ррр, входит в стандартную поставку дистрибутива.
Единственное, что необходимо проверить, был ли пакет mgetty скомпилиро-
ван с опцией -DAUTO_PPP, и если нет, то пакет необходимо перекомпили-
ровать (в дистрибутиве Fedora Core mgetty скомпилирован с нужной нам
опцией).
После установки mgetty нам следует отредактировать конфигурационные
файлы. В файле /etc/mgetty+sendfax/login.config мы должны написать сле-
дующее:
/AutoPPP/ — а_ррр /usr/sbin/pppd auth refuse-chap require-pap login
- - /bin/login @
Эта строка указывает mgetty:
• после установления входного соединения необходимо вызвать программу
pppd;
П для пользователя требуется авторизация;
• аутентификацию по протоколу CHAP отклонять и требовать авторизации
по протоколу РАР.
264 Глава 19
Настройка pppd
С настройкой pppd вы уже ознакомились ранее. Поэтому, чтобы не повто-
ряться, просто приведем соответствующие конфигурационные файлы
с небольшими комментариями. Файл options.ttySO должен содержать сле-
дующие данные:
# Устройство
lock
login
auth
modem
crtscts
-chap
+pap
#.наш интерфейс : удаленный интерфейс
192.168.0.200:192.168.0.201
# маска подсети
Настройка входящего модемного соединения 265
netmask 255.255.255.0
# адрес сервера DNS для клиента Windows
ms-dns 192.168.0.1
где:
• userl — имя пользователя, причем он должен существовать в системе
с установленным модемом;
• user2 — сервер, на котором будет проводиться аутентификация, в нашем
случае вместо сервер.домен необходимо поставить имя сервера, прини-
мающего входящее соединение;
• "" — отсутствие пароля указывает на то, что пароли необходимо брать из
файла /etc/shadow;
• * — абонент может производить аутентификацию с любого IP-адреса.
Вот и все — вы стали провайдером, причем сильно облегчили жизнь поль-
зователям Windows, поскольку IP-адрес и адрес DNS-сервера вы выдаете
автоматически, кроме того, отпадает потребность в использовании сценария
для соединения.
Настройка Callback-сервера
Вы настроили свой Dial-in-сервер, попользовались им какое-то время и за-
хотели облегчить кошелек фирмы и сохранить свой в неприкосновенности.
Например, в вашем городе повременная оплата и часами работать в Интер-
нете из дома дорого, а руководство вашей организации не возражает против
того, чтобы вы работали за ее счет. Дело за малым — организовать ваш сер-
вер таким образом, чтобы не вы ему звонили, а он вам. В западной литера-
туре такой сервер называется Callback-сервером (сервер обратного звонка).
Функционирует он следующим образом. Сначала клиент дозванивается че-
рез модем к Callback-серверу. Модем на сервере настроен на прием входя-
щих звонков. После установки соединения сервер предлагает клиенту прой-
ти аутентификацию. Клиент подключается к нему как особый Callback-
пользователь. После этого модем на сервере обрывает связь, и сам звонит
клиенту по номеру, который закреплен за компьютером клиента (либо оп-
ределился с помощью АОН). Модем на клиентском компьютере готов при-
нять обратный звонок, и после установления соединения происходит по-
вторная авторизация. По окончании аутентификации устанавливается РРР-
соединение. Далее клиент работает обычным образом.
266 Глава 19
Конфигурация Callback-сервера
После того как настройка Dial-in-сервера завершена, необходимо выполнить
следующие действия:
1. Создать нового пользователя back.
2. Создать пустой файл с именем callback.conf в /etc/mgetty/.
3. В файл /etc/mgetty/login.config добавить следующую строку:
back /usr/sbin/callback -S 1234567
После ключа -s указывается номер, по которому сервер должен сделать
обратный звонок клиенту.
Конфигурация клиентов
Поскольку сервер мы уже сконфигурировали, необходимо сконфигуриро-
вать клиента и проверить, каким же образом работает обратный звонок.
Начнем с операционной системы Linux.
Конфигурирование Linux-клиента
Для конфигурирования Linux-клиента необходимо выполнить следующее:
• Создать файл /etc/ppp/options, в котором должны быть такие строки:
lock
defaultroute
noipdefault
modem
115200
crtscts
debug
passive
Доступ к удаленным
компьютерам
Любая UNIX-подобная операционная система может предоставлять удален-
ный доступ, начиная от простейшего консольного режима и заканчивая ра-
ботой системы X Window, от простого редактирования текста до полного
администрирования удаленной системы. В мире UNIX в порядке вещей,
когда администратор сервера месяцами не имеет физического контакта
с сервером и тем не менее он ежедневно удаленно производит мониторинг,
обновление программного обеспечения и администрирование сервера. Для
этих целей используются несколько программных пакетов и протоколов:
Telnet, SSH и некоторые другие.
Telnet
Под Telnet понимают трехкомпонентную систему, состоящую из:
• Telnet-клиента;
• Telnet-сервера;
• Telnet-протокола.
Telnet-протокол
Telnet-протокол является протоколом приложения, использует транспорт-
ный протокол TCP и описан в стандарте RFC 854. Авторы стандарта гово-
рят, что назначение Telnet — дать общее описание, насколько это только
возможно, двунаправленного, восьмибитного взаимодействия, главной
целью которого является обеспечение стандартного метода взаимодействия
терминального устройства и терминал-ориентированного процесса. При
этом данный протокол может быть использован и для организации взаи-
модействий "терминал-терминал" (связь) и "процесс-процесс" (распределен-
ные вычисления).
270 Глава 20
Программа-клиент telnet
Программа telnet — стандартный Telnet-клиент, входящий во все операци-
онные системы UNIX-семейства и в практически все операционные систе-
Доступ к удаленным компьютерам 271
Команда Описание
Open <host> Начать Telnet-сессию с машиной <host> по порту <port>.
[ <port>] Адрес машины можно задавать как в форме IP-адреса, так
и в форме доменного адреса
close Завершить Telnet-сессию и вернуться в командный режим
Quit Завершить работу программы telnet
z "Заморозить" Telnet-сессию и перейти в режим интерпрета-
тора команд локальной системы. Из этого режима можно
выйти по команде E x i t
Mode <type> Если значение <type> равно l i n e , то используется буфе-
ризованный обмен данными, если c h a r a c t e r — обмен не
буферизованный
? [<command>] Список команд или описание конкретной команды
h e l p [<command>]
Send <argument> Данная команда используется для ввода команд и сигналов
протокола Telnet, которые указываются в качестве аргумента
Программа-сервер telnetd
telnetd — это сервер, обслуживающий Telnet-протокол. Для этого, обычно,
используется ТСР-порт 23, но программу можно сконфигурировать на ис-
пользование другого порта. При установке взаимодействия с удаленным
клиентом telnetd обменивается командами настройки: включение режима
эха, обмен двоичной информацией, тип терминала, скорость обмена, пере-
менные окружения.
OpenSSH
Это некоммерческая реализация протокола SSH с открытым кодом. Про-
граммный пакет способен работать с протоколами SSH1 и SSH2. Имеется
также поддержка r-команд. Для большинства дистрибутивов пакет OpenSSH
включен в стандартную инсталляцию.
Конфигурирование OpenSSH
Конфигурирование OpenSSH очень сильно зависит от концепции обеспече-
ния безопасности и необходимости поддержки протокола старого типа. По-
скольку использование протокола SSH1 из-за найденных уязвимостей не
рекомендуется — при конфигурировании необходимо запретить его исполь-
зование. Также рекомендуется запретить использование r-команд и всего,
что с ними связано. При конфигурировании OpenSSH необходимо произве-
сти настройку сервера и клиента. Конфигурационный файл сервера называ-
ется sshd_config, а клиента — ssh_config.
Файл sshd_config. Файл sshd_config задает параметры SSH-серверу и может
содержать внушительный список различных параметров. Далее приведены
его основные конфигурационные параметры:
О AllowGroups <список-имен-групп-через-пробел> — ВХОД разрешен ТОЛЬ-
КО пользователям, чья группа входит в этот список;
• AiiowTcpForwarding yes/no — разрешает или запрещает маршрутизацию
ТСР-пакетов;
• AllowUsers <список-имен-через-пробел> — ВХОД разрешен только пере-
численным пользователям;
• AuthorizedKeysFile <имя-файла-с-публичным-ключом> — задает ИМЯ
файла, содержащего публичный ключ;
П Banner <сообщение-перед-аутентификацией> — текст сообщения, ВЫВО-
ДИМОГО сервером перед аутентификацией клиента;
• ciphers — список алгоритмов симметричного шифрования для SSH2:
aesl28-cbc, 3des-cbc, blowfish-cbc, castl28-cbc, arcfour;
• clientAliveinterval <секунд> — определяет интервал в секундах, через
который сервер будет производить проверку, произошло или нет отклю-
чение клиента;
274 Глава 20
Программа ssh-keygen
Программа ssh-keygen предназначена для генерации, преобразования и управ-
ления ключами. По умолчанию генерирует RSA-ключ. При генерации за-
прашивается парольная фраза. Число бит по умолчанию — 1024. Имя файла
для хранения публичного ключа образуется из имени файла для частного
ключа добавлением суффикса .pub. Ключ хоста должен иметь пустую па-
рольную фразу.
Возможные строки запуска:
О генерирует ключ по указанному пользователем алгоритму:
ssh-keygen [-t r s a l | d s a | r s a ] [-b <бит>] [-N <ларольная-фраза>]
[-C <комментарий>] [-f <имя-файла-записи>] [-q]
• изменяет комментарий:
ssh-keygen -с [-Р <парольная-фраза>] [-С <комментарий>]
[-f <файл-с-ключами>]
О читает приватный или публичный ключ в формате OpenSSH и преобра-
зует его в формат SecSh для экспорта в другие реализации SSH:
ssh-keygen -e [-f <файл-с-ключами>]
• читает приватный или публичный ключ в формате SSH2 или SecSh и
преобразует его в формат OpenSSH:
ssh-keygen - i [-f <файл-с-ключами>]
• позволяет изменить парольную фразу:
ssh-keygen -p [-P <старая-парольная-фраза>] [-N <новая-парольная-
фраза>]
[-f <файл-с-ключами>]
П читает приватный OpenSSH DSA ключ и выдает OpenSSH DSA публич-
ный ключ:
ssh-keygen -у [-f <файл-с-ключами>]
Программа ssh-agent
Программа ssh-agent позволяет производить RSA/DSA-аутентификацию.
Она запускается в начале сессии и устанавливает переменные окружения,
с помощью которых остальные программы могут использовать ее для авто-
матической аутентификации SSH. Параметром является имя команды и ее
аргументы, выполнение ssh-agent останавливается при завершении команды.
282 Глава 20
Программа ssh-add
Эта программа используется для добавления приватных ключей. Она запра-
шивает парольную фразу, расшифровывает приватный ключ и посылает его
ssh-agent. Если терминал недоступен, но определена переменная DISPLAY, TO
для ввода парольной фразы используется программа, определенная пере-
менной SSH_ASKPASS. Таким образом, парольная фраза запрашивается толь-
ко один раз за сеанс, а не при каждом вызове ssh/scp/sftp.
Опции командной строки ssh-add:
О имя файла — имя файла с приватным ключом, по умолчанию использу-
ется ~/.ssh/identity;
• -L — выдает публичные ключи, хранящиеся в ssh-add;
• -а — удаляет приватный ключ;
• -D — удаляет все ключи.
Программа sftp
Программа sftp является клиентом для SFTP-сервера (Secure File Transfer
Protocol, защищенный протокол передачи файлов), который должен быть
описан в опции Subsystem в конфигурационном файле sshd.
Программа sftp позволяет пересылать файлы в режиме, подобном FTP-
протоколу, однако она осуществляет все операции поверх SSH. К сожале-
нию, данный вариант FTP пока не получил широкого распространения.
Опции командной строки:
• [<пользователь>%\<имя-хоста>{:<каталог>/] — задает аналогично FTP
имя пользователя, хост, к которому производится подключение, и ката-
лог подключения;
• -ь <имя-файла> — позволяет читать команды из файла вместо стандарт-
ного устройства ввода;
• -с — разрешает использовать сжатие пересылаемых файлов;
Программа scp
Программа scp является аналогом программы гер и осуществляет копирова-
ние файлов между хостами, причем оба могут быть удаленными. Способы
аутентификации аналогичны SSH. Вызывает SSH для организации канала
передачи данных. Имя файла записывается в виде:
[[<лользоваталь>@]<хост>:]<файл>
284 Глава 20
Программа ssh-keyscan
Программа ssh-keyscan позволяет собрать публичные ключи хостов, имена
хостов задаются в качестве параметров или в файле. Опрос производится
параллельно. Опции командной строки:
• -t <тип-ключа> — задает тип шифрования ключа (RSA1, RSA, DSA);
• -т <секунд> — определяет тайм-аут;
• -f <имя - файла >— определяет файл, в котором каждая строка содержит
имя или адрес хоста;
• -4 — использовать IPv4;
П -б — использовать IPv6;
• -р <удаленный-порт> — определяет порт.
Windows SSH-клиент
Поскольку мы занимаемся сопряжением Windows и Linux, то почти навер-
няка управлять сервером вам придется из Windows. К сожалению, в стандарт-
ной поставке этой операционной системы нет SSH-клиента и нам необходи-
мо искать альтернативу, желательно бесплатную. И она, конечно же, есть —
это великолепная программа, называемая PuTTY. Скачать программу, раз-
Доступ к удаленным компьютерам 285
Selection
;
j Colours Default Settings
Й Connection Lesozavodsk
Proxy
Telnet
Rlogin
8 SSH
j Auth
i™ Tunnels
Close window on exit:
U Bugs О Always О Never © Only on clean exit
Как видите, все достаточно просто. Окно программы условно можно раз-
бить на три части — левую, верхнюю и центральную. В верхней части мы
задаем имя хоста, к которому собираемся подключаться, и порт, к которому
286 Глава 20
VNC
Еще одна возможность удаленного доступа к компьютерам — это программа
VNC (Virtual Network Computing). К теме нашей книги она, казалось бы, не
относится, поскольку работает только с графическими средами, но, тем не
менее, я считаю, что вы должны знать о такой возможности, поскольку этот
пакет может работать под множеством операционных систем. Домашняя
страница программы — www.realvnc.com или www.uk.research.att.com/vnc.
Пакет состоит из двух частей — клиента и сервера. Сервер устанавливается
на компьютерах, к которому вы хотите подключаться, клиент — на том
компьютере, за которым вы будете работать. Доступ к серверу ограничен
паролем. Благодаря этому пакету вы получаете на клиентской машине пол-
ное отображение экрана компьютера, к которому вы подключились и може-
те управлять мышью и клавиатурой на удаленной машине, т. е. полностью
работать на удаленном компьютере.
Глава 21
Расширенное управление
доступом к файлам
Стандартные средства организации прав доступа к файлам в UNIX-
подобных операционных системах зачастую не удовлетворяют требованиям
некоторых системных администраторов. Проблема заключается в том, что
определение прав доступа к файлам сводится к установке девяти битов,
с помощью которых можно задать права доступа для владельца файла, груп-
пы, к которой принадлежит владелец файла, а также для всех остальных.
Часто необходимо настроить доступ к файлу достаточно сложным обра-
зом — допустим, три человека из трех разных групп имеют право делать
с файлом все что угодно, десять человек из других групп могут открывать файл
на чтение, а еще десять — только выполнять. Для всех других пользователей
ЮЗак. 1500
290 Глава 21
file: home/vasya
owner: vasya
group: users
user::rwx
user:usl:rwx
user:us2:
group::
group: usrs2 : r-x
mask:rwx
other:
Дополнительные возможности
Кроме основных опций запуска, обе команды имеют большое количество
дополнительных. Мы не будем останавливаться на этих возможностях, по-
скольку пакет динамично изменяется, и вполне возможно, что он уже обла-
дает большими возможностями по сравнению с теми, которые присутство-
вали на момент написания книги. К тому же пакет управления правами
доступа вряд ли понадобится обычному пользователю или администратору
небольшой локальной сети, а администратор большой фирмы должен быть
в состоянии самостоятельно разобраться в возможностях любого программ-
ного пакета.
Утилиты администрирования сети и обеспечения безопасности 293
Шифрование
Традиции — вещь очень неоднозначная. Иногда они помогают жить и ус-
пешно развиваться, иногда они просто странные или бесполезные, а ино-
гда — весьма вредны. То же самое можно сказать и о сетевых протоколах —
традициях компьютерного мира.
Большая часть существующих сетевых протоколов разрабатывалась по
компьютерным меркам в чуть ли не доисторическую эпоху, когда о сете-
вых взломах и сетевом шпионаже можно было прочитать только в научной
фантастике. Как результат — подавляющая часть данных в Интернет пере-
дается в открытом виде. И как обратная сторона медали — существует
множество утилит для прослушивания сетевого трафика. Многие из них
умеют сами анализировать перехватываемые данные. С помощью таких
утилит можно получить пароли пользователей для различных сетевых
служб, тексты электронных писем, файлы, сообщения, переданные по
ICQ, и т. д. и т. п. Защитить себя от такого прослушивания можно с по-
мощью шифрования.
Наиболее распространенным протоколом шифрования является SSL, разра-
ботанный Netscape Communications. Чаше всего он используется для шиф-
ровки HTTP (HTTPS), но также может применяться для создания защи-
щенных соединений с SMTP, POP3, IMAP и другими высокоуровневыми
сетевыми протоколами. Программа, осуществляющая поддержку протокола
SSL почти для любых серверных и клиентских приложений под Linux и
Windows, называется Stunnel. Основное ее применение состоит в создании
надежного шифрованного канала между двумя и более хостами в сетях, где
существует угроза прослушивания трафика.
Еще один вариант, уже ранее описанный, — использование SSH для приема
и передачи файлов в защищенном режиме. Это, конечно, не полноценный
туннель, но как один из вариантов вполне применим.
Еще одна альтернатива — использование VPN. Виртуальная частная сеть
позволяет организовать виртуальную сеть со своей IP-адресацией и шифро-
ванием всего трафика. Существует, по крайней мере, две реализации этого
протокола — РРТР и IPSec.
Stunnel
Для работы Stunnel необходим OpenSSL, который устанавливается при ин-
сталляции операционной системы Linux (по крайней мере, в дистрибутиве
Red Hat Linux). Пакет Stunnel также, обычно, входит в состав дистрибутива
в виде RPM-пакета. Рекомендуется получить с сайта разработчика послед-
нюю версию программного пакета.
294 . Глава 21
Сертификаты
Программа Stunnel имеет возможность проверки подлинности сертификатов
тех хостов, к которым или с которых идет подключение. Для этого предна-
значена опция командной строки -v. После -v необходимо указать уровень
проверки сертификата. Он может иметь следующие значения:
• о — никакой проверки наличия и подлинности сертификата не произво-
дится;
• 1 — сертификат проверяется на подлинность, если присутствует. Если
сертификат не является подлинным — соединение не устанавливается;
П 2 - проверяется присутствие сертификата и его подлинность. Если сер-
тификат отсутствует или не является подлинным — соединение не уста-
навливается;
• з — проверяется присутствие сертификата и его наличие в списке прове-
ренных сертификатов. Если сертификат отсутствует или его нет в списке
проверенных сертификатов — соединение не устанавливается.
Сертификат создается при сборке пакета и помещается вместе с секретным
ключом, используемым при расшифровке входящего трафика, в файл
stunnel.pem.
Более полную информацию по этому программному обеспечению смотрите
в документации, идущей в комплекте с Stunnel.
SATAN
Одна из старейших утилит сканирования. Говорят, что автора этого пакета
уволили из фирмы, где он работал, из-за того, что он выложил SATAN на
свой web-сайт.
SATAN может работать на нескольких операционных системах. Считается ус-
таревшим, но тем не менее для проверки правильности основных сетевых на-
296 Глава 21
Portsentry
Еще один программный продукт, предназначенный для обнаружения ска-
нирования сетевых портов. Основные возможности программы Portsentry:
• обнаруживает практически все известные виды сканирования компьютеров;
• в реальном времени блокирует компьютер, производящий сканирование,
посредством установленного на атакуемом компьютере брандмауэра,
команду запуска которого можно задать в файле конфигурации;
П записывает в журнал операционной системы посредством syslogd инфор-
мацию об атаке;
П может вызывать любую указанную в файле конфигурации программу,
в ответ на сканирование или подключение к защищенному сетевому порту.
Установка и настройка
Процесс установки подробно описан в документации на программу и не
вызывает трудностей, поэтому сразу перейдем к настройке программы.
Основной конфигурационный файл программы Portsentry называется
portsentry.conf. Содержимое файла portsentry.conf представляет собой не-
сколько строк, каждая из которых имеет вид:
ОПЦИЯ = "значение"
Запуск
Portsentry можно запускать в трех различных режимах. Режимы задаются
в командной строке при вызове Portsentry. Одновременно можно задать
только один режим работы для одного протокола:
• Classic — при работе в этом режиме Portsentry открывает порты, указан-
ные в TCP_PORTS или UDP_PORTS, и ждет соединения. При попытке под-
ключиться к такому порту происходит блокировка удаленного хоста. Этот
режим работы задается опциями командной строки - t c p — для ТСР-
портов и -udp — для UDP-портов;
• Enhanced Stealth Scan Detection — этот режим используется для проверки
перечисленных в TCP_PORTS ИЛИ UDP_PORTS портов на предмет подключе-
ния или сканирования. Выявляет почти все виды Stealth-сканирования,
а не только сканирование подключением. В отличие от режима Classic,
не держит открытыми порты, поэтому получает достоверную информа-
цию о них. Задается опциями командной строки - s t e p — для ТСР-
портов и -sudp — для UDP-портов;
• Advanced Stealth Scan Detection — этот режим используется для проверки
всех портов в промежутке от 1 до ADVANCED_PORT_TCP ИЛИ
ADVANCED_PORT_UDP. Порты, открытые другими программами и перечис-
ленные В ADVANCED_EXLUDE_TCP ИЛИ ADVANCED_EXCLUDE_UDP, ИСКЛЮЧЭЮТСЯ
из проверки. Любой компьютер, попытавшийся подключиться к порту
в этом промежутке, тут же блокируется. Задается опциями командной
строки - a t c p — для TCP-портов и -audp — для UDP-портов.
Сетевая статистика
Очень часто администратору необходимо получить развернутую информа-
цию по сетевому трафику — кто, когда, сколько и по какому протоколу от-
правлял или принимал информацию. Все это можно получить из системных
журналов и с помощью специальных программных решений.
Утилиты администрирования сети и обеспечения безопасности 299
NeTraMet
Этот программный пакет позволяет подсчитывать трафик по IP-адресам в
локальной сети раздельно по типам трафика: SMTP, ICMP, HTTP, FTP,
UDP, TCP и т. п. Также существует возможность подробного регистрирова-
ния трафика.
Программный пакет состоит из нескольких частей:
• NeTraMet — программы-сборщика трафика. Собирает и хранит в опера-
тивной памяти статистику с сетевых интерфейсов сервера;
• NeMaC — программы-менеджера сборщика NeTraMet. NeMaC собирает
статистику и записывает ее в журнал;
• srl — компилятора правил для NeMaC;
• fd_filter — программы обработки журналов NeMaC;
О fd_extract — программы обработки результатов fd_filter.
Протоколирование
Нет смысла тратить много времени на защиту компьютера от взлома и не
обращать внимания на систему протоколирования событий. Каким образом
вы сможете узнать о попытке и способе взлома, не используя инструментов
для ведения журналов? В этом разделе мы познакомимся с одним из них —
демоном syslogd.
Демон syslogd является частью пакета sysklogd, в который входят две про-
граммы: syslogd и klogd. Syslogd отвечает за протоколирование сообщений
системы, a klogd — ядра.
Демон syslogd
Демон syslogd запускается автоматически при старте системы и обеспечивает
протоколирование событий, которое используется большинством программ.
Демон syslogd пишет сообщения в файлы /var/log/*, в зависимости от на-
строек. Обычно записи в журнале, создаваемом syslogd, содержат следующие
поля: дата и время, имя компьютера, программа, сообщение.
Файл конфигурации
По умолчанию используется файл конфигурации /etc/syslog.conf. Вы можете
указать другой файл конфигурации с помощью опции -£. Типичный файл
конфигурации приведен ниже.
# Все сообщения ядра операционной системы выводить на консоль
#kern.* /dev/console
300 Глава 21
# Протоколирование аутентификации.
# Файл протокола /var/log/secure
authpriv.* /var/log/secure
Сетевое протоколирование
Для обеспечения повышенной защищенности сети все сообщения можно
хранить не на локальном компьютере, а передавать по сети на специальный
сервер, на котором будет находиться база журналов компьютеров, подклю-
ченных к сети.
Для передачи сообщений используется протокол UDP. Для нормального
функционирования необходимо в файле /etc/service снять комментарий со
строки syslog 514/udp. После этого необходимо внести изменения в файл
конфигурации /etc/syslog.conf — вместо файлов протоколов используйте пара-
метр ©hostname, где hostname — это имя компьютера, на который будут пе-
ренаправлены сообщения.
Имя узла желательно указать в файле /etc/hosts, поскольку демон syslogd
обычно стартует раньше, чем DNS-сервер.
Демон klogd
Демон klogd предназначен для перехвата и протоколирования сообщений
ядра Linux. По умолчанию демон klogd вызывается системным вызовом для
того, чтобы препятствовать отображению всех сообщений на консоль.
Это не распространяется на критические сообщения ядра (kernel panic).
Эти сообщения в любом случае будут отображены на консоли.
Rootkit
Rootkit (набор инструментов администратора) — это набор утилит, которые
взломщик устанавливает на взломанном компьютере после получения пер-
воначального доступа. Rootkit обычно содержит сетевой sniffer (утилиту,
способную получать и обрабатывать весь сетевой трафик вашей локальной
сети, вне зависимости от того, какому компьютеру адресованы сетевые па-
кеты) для прослушивания сетевого трафика, программы для модификации
журналов, позволяющие скрыть присутствие взломщика на вашем компью-
тере, и специально модифицированные системные утилиты, замещающие
основные утилиты системы, например ps, netstat, ifconfig, killall, login.
Основное назначение rootkit — позволить взломщику возвращаться во взло-
манную систему и получать доступ к ней, не будучи при этом обнаруженным
системным администратором. Обычно для этого используется модифициро-
ванная версия telnetd или sshd. Модифицированный сервис будет использо-
вать сетевой порт, отличный от того, который этот демон по умолчанию про-
слушивает. Большинство версий rootkit снабжены модифицированными
системными программами, которые замещают существующие во взломанной
системе. Конкретный набор модифицируемых системных утилит весьма зави-
сит от версии rootkit и нужд и квалификации взломщика, но, как правило,
заменяются программы ps, w, who, netstat, Is, find, login и др., которые могут
быть использованы для контроля работы взломанной системы.
Для усложнения обнаружения подмены системных утилит большинство
rootkit, производя замену системных утилит на модифицированные версии,
устанавливают точно такие же даты их создания и размеры файлов, поэтому
простой список файлов с датой их создания, модификации и размером ни-
какой пользы в обнаружении подмены системных утилит не принесет. Ис-
ходя из этого, пожалуй, лучший способ обнаружения подмены системных
утилит — получить контрольную сумму файлов в системе и сохранить этот
список в надежном месте — на другом компьютере или на компакт-диске.
В принципе можно воспользоваться возможностями, предоставляемыми менед-
жером пакетов RPM — контрольной суммой пакета, рассчитанной по алгоритму
MD5. При этом используются контрольные суммы пакетов, хранящиеся в базе
данных установленных RPM. Как легко заметить, данный способ не подходит
для обнаружения опытных взломщиков. Причин к тому две.
П В вашей системе могут быть установлены программы не из RPM,
а скомпилированные из исходных кодов — совершенно очевидно, что
Утилиты администрирования сети и обеспечения безопасности 303
Обнаружение rootkit
Мы нарисовали достаточно мрачную картину — получается, что после взло-
ма системы сделать для ее излечения ничего не возможно? К счастью, не
все так плохо.
Сначала необходимо определить сам факт взлома системы. Возможным по-
следствием взлома вашего компьютера и установки на нем rootkit может
стать изменение в поведении системных утилит. Например, некоторые ути-
литы отказываются запускаться от имени пользователя, которому было раз-
решено пользоваться этими утилитами. Или ваша любимая утилита top ста-
ла выглядеть несколько иначе. Другие очень настораживающие признаки —
изменение показателей сетевого трафика, а также резкое уменьшение сво-
бодного места на жестком диске.
Сканирование портов
После обнаружения взлома первое, что необходимо сделать после смены
паролей, — лишить взломщика возможности проникновения в систему че-
рез сетевые порты. Поскольку взломанный компьютер не вызывает доверия,
просканировать сетевые порты необходимо с другого компьютера. Проще
всего это сделать с помощью программы nmap. Для этого достаточно вы-
полнить следующую команду:
nmap -р 1-65535 192.168.0.1
304 Глава 21
Использование RPM
Хотя чуть ранее мы утверждали, что использование RPM для обнаружения
rootkit — дело бесперспективное, это не совсем так. RPM можно применить
для быстрой проверки. Если он не найдет ничего подозрительного — вос-
пользуемся другими средствами, если найдет — и на том спасибо — будем
знать, что у нас не так в системе. RPM записывает и проверяет контроль-
ную сумму всех файлов в пакете, включая те файлы, которые должны изме-
няться с течением времени.
После обнаружения
Что делать после обнаружения rootkit? Единственно верный способ изба-
виться от последствий взлома — заново полностью переустановить операци-
онную систему и установить все обновления пакетов для вашего дистрибу-
тива. Однако не всегда есть возможность проделать такие действия сразу —
квартальный отчет, непрерывное производство, болезнь администратора, да
мало ли что еще.
Утилиты администрирования сети и обеспечения безопасности 305
LIDS
LIDS (Linux Intrusion Detection/Defense System) — система обнаружения
и защиты от вторжения. Представляет собой дополнение к ядру операцион-
ной системы Linux, добавляющее дополнительные возможности для увели-
чения безопасности операционной системы. LIDS позволяет запретить или
ограничить доступ к файлам, памяти, устройствам, сетевым интерфейсам,
запущенным приложениям и т. п. пользователю root, что дает возможность
надежно оградить даже взломанную операционную систему от дальнейшего
вмешательства.
В отличие от других средств защиты операционной системы Linux, эту систе-
му невозможно отключить, не зная пароля администратора LIDS, который
в зашифрованном виде хранится в специальном файле, видимом только дан-
ной системой. Точно так же защищены и конфигурационные файлы. Даже
узнав каким-то образом пароль администратора, отключить систему можно,
только находясь непосредственно за компьютером.
LIDS позволяет распределять права доступа к файлам на уровне программ,
а не на уровне пользователей, а также запретить перезапуск операционной
системы, загрузку/выгрузку модулей ядра и многое другое. Информация обо
всех действиях, имеющих отношение к защищаемым объектам, помимо
записи в журналах может немедленно отправляться по электронной почте.
Помимо всего прочего, в LIDS присутствует встроенный детектор сканиро-
вания сетевых портов.
Установка
После получения пакета необходимо разархивировать его и обновить исход-
ные тексты ядра операционной системы Linux. После этого следуйте инст-
рукции — там все понятно — компилируем, устанавливаем.
306 Глава 21
Конфигурирование LIDS
После установки LIDS в каталоге /etc появляется каталог lids, содержащий
следующие конфигурационные файлы:
П lids.cap — предназначен для хранения текущих значений установок;
П lids.net — предназначен для настройки отправки электронных сообщений
системой LIDS;
• lids.pw — в этом файле записан в зашифрованном виде пароль админист-
ратора. Изменять этот файл можно только с помощью lidsadm;
• lids.conf — файл содержит текущие установки правил доступа. Изменять
этот файл можно только с помощью lidsadm.
308 Глава 21
Возможности
Возможности (capabilities) определяют способность программ совершать
какие-либо действия. LIDS позволяет использовать по отношению к про-
граммам большое количество возможностей. В частности, поддерживается
перезагрузка компьютера, изменение владельца файла, загрузка или выгруз-
ка модулей ядра и многое другое.
Текущие установки возможностей хранятся в файле lids.cap в формате:
[ + | - ] Номер:возможность
Здесь:
О + — включает возможность;
• отключает возможность.
Редактировать файл lids.cap можно с помощью любого текстового редактора.
Включение возможности влияет на все программы без исключения, а вы-
ключение влияет на все программы, кроме тех, которым напрямую указана
данная возможность с помощью правил доступа lidsadm.
Сразу после установки LIDS файл lids.cap содержит включенными следую-
щие возможности:
О CAP_CHOWN — разрешает программам изменять владельца и группу вла-
дельца файла;
П CAP_DAC_OVERRIDE — разрешает программам, запускаемым пользователем
root, не принимать во внимание режимы доступа к файлам. При отклю-
чении пользователь root теряет возможность изменять любые файлы, не-
взирая на права доступа;
• CAP_DAC_READ_SEARCH — то же самое, что и предыдущая возможность,
только по отношению к каталогам;
• CAP_FOWNER — разрешает операции с файлами, когда владелец файла
должен совпадать с пользователем, совершающим операцию;
• CAP_FSETID — разрешает установку SUID- или SGID-бита на файлах, не
принадлежащих пользователю root;
• CAP_KILL — разрешает процессам пользователя root "убивать" чужие про-
цессы;
• CAP_SETGID — разрешает программам пользователя root изменять группу,
под которой они работают;
• CAP_SETUID — управляет возможностью программ пользователя root из-
менять пользователя, под которым они работают;
• CAP_SETPCAP — разрешает программам менять возможности;
О CAP_LINUX_IMMUTABLE — разрешает снимать атрибуты S_IMMUTABLE И
S_APPEND с файлов;
Утилиты администрирования сети и обеспечения безопасности 309
Правила доступа
Все управление LIDS осуществляется с помощью программы — lidsadm.
Lidsadm работает в двух режимах — настройки правил доступа и ввода
команд администрирования. Установки правил доступа находятся в файле
/etc/lids/lids.conf. Для просмотра текущих установок правил доступа необхо-
димо выполнить следующую команду:
lidsadm -L
LIST
Subject ACCESS TYPE Object
Portsentry
Программа предназначена для обнаружения попыток сканирования портов
и организации адекватного (с точки зрения администратора) ответа. Основ-
ные возможности Portsentry:
П обнаруживает практически все известные виды сканирования UNIX-
машин;
• в реальном времени блокирует хост, с которого происходит сканирование
портов, посредством установленного на атакуемом компьютере бранд-
мауэра;
• записывает в LOG-файлы посредством syslogd информацию об атаке;
312 Глава 21
LogSentry
Программа LogSentry предназначена для автоматического мониторинга жур-
налов и уведомления системного администратора с помощью электронной
почты о подозрительных происшествиях в системе. Гибко настраивается.
Tripwire
Программный пакет Tripwire предназначен для обнаружения изменения
файлов, позволяя обнаруживать порчу данных и взломы. База данных кон-
трольных сумм файлов шифруется, что предотвращает ее подделку взлом-
щиками.
Непосредственно после установки операционной системы необходимо уста-
новить tripwire, которая, используя правила, определенные политикой безо-
пасности, создает базу данных, содержащую информацию обо всех файлах
в системе (список файлов может задаваться администратором) — размер, кон-
трольная сумма, дата модификации и т. п. После создания базы данных она
ежедневно сравнивается с текущим состоянием файловой системы, позволяя
обнаружить добавленные, измененные и удаленные файлы. Получаемые при
этом отчеты могут быть просмотрены с различной степенью детализации.
Пакет tripwire входит в состав практически всех современных дистрибутивов
Linux.
AIDE
Пакет AIDE — система обнаружения вторжений, основанная на использо-
вании мониторинга изменения контрольных сумм защищаемых файлов опе-
рационной системы. Система AIDE разработана таким образом, что полная
инсталляция ее помещается на одной дискете, что позволяет избежать вме-
шательства взломщика в функционирование программы.
Функционально программа является аналогом tripwire, только имеет более
простые конфигурационные файлы и интерфейс.
RSBAC
RSBAC — это надстройка над ядром Linux и комплект утилит управления,
позволяющие создать на базе Linux защищенную систему. Реализация меха-
Утилиты администрирования сети и обеспечения безопасности 313
Security-Enhanced Linux
Security-Enhanced Linux (SELinux) имеет аналогичное с RSBAC назначение
и представляет собой дополнения к ядру, а также набор утилит. Разработка
продвигается Агентством Национальной Безопасности США (National Security
Agency, NSA). SELinux обеспечивает гибкую мандатную архитектуру управ-
ления доступом, использующую язык описания конфигураций политики
безопасности. По сравнению с RSBAC менее гибкая, зато имеет очень хо-
рошую предопределенную политику безопасности. Ее настройка достаточно
сложна и невозможна без изучения специального языка конфигурации.
Глава 22
Борьба
с нежелательной почтой
Надеюсь, что такое нежелательная почта или спам вам объяснять не нужно.
Каждому приходило достаточно большое количество писем с предложением
посетить какие-то семинары, за один день выучить английский, купить за-
вод в Подмосковье и т. п. Когда их штук десять в месяц — забавно, и уда-
лить их не составляет труда. Однако когда их порядка 10 в день, то это уже
проблема, причем проблема, которая ложится на плечи администратора.
В этой главе мы попытаемся найти решение, причем такое, чтобы "один раз
и на всю жизнь". Какие же можно предложить способы?
Самый простой — договориться с провайдером, чтобы вся почта, приходящая
на наш домен, проверялась и фильтровалась у него. Решение самое простое в
плане трудозатрат и самое дорогое с финансовой точки зрения, поскольку
провайдер, наверняка, потребует ежемесячной оплаты за эту услугу.
Вариант второй — в каждом почтовом клиенте существует возможность вес-
ти "черные списки", в частности в Outlook Express есть такая функция —
список блокируемых отправителей. Однако это тоже не решение, поскольку
вам придется для каждого письма и для каждого почтового клиента руками
определять — можно или нет принимать письмо от данного пользователя.
Помимо этого, есть еще одно соображение — в спаме поле письма FROM
почти на 100% поддельное, и осуществлять по нему сортировку почтовых
сообщений бесполезно.
Третий вариант — у каждого пользователя установить специальную про-
грамму, которая на основе анализа содержимого письма будет с очень высо-
кой вероятностью определять нежелательную почту. Но, опять это "но", что-
бы эта программа хорошо работала, ее нужно обучить, что, учитывая
количество пользователей, проделать достаточно трудно.
Поэтому наша цель — централизованная обработка писем на нашем почто-
вом сервере. Для защиты от спама есть, по меньшей мере, два варианта —
это использование RBL (Realtime Blackhole List, черный список реального
времени) и интеллектуальных программ вроде SpaniAssassin.
316 Глава 22
RBL
Черные списки были первым эффективным средством борьбы со спамом.
Первый такой сервис появился еще в 1997 году. Смысл этого сервиса заклю-
чается в том, что имеется централизованный список "плохих" IP-адресов,
с которых не рекомендуется принимать почту, и доступ к этому списку осу-
ществляется в реальном времени по протоколу DNS. Использующие RBL
почтовые серверы в момент приема очередного сообщения запрашивают ин-
формацию об IP-адресе отправителя и на основании ответа либо принимают,
либо отвергают письмо. Большинство серверных почтовых программ, в част-
ности sendmail и fetchmail, в настоящее время могут работать с RBL.
Вроде все просто и логично. Однако недостаток на самом деле здесь огро-
мен — сообщение принимается или отвергается только на основании IP-
адреса посылающей письмо стороны. В результате, если какой-то почтовый
сервер попал в RBL-список, то ВСЯ почта с этого сервера не принимается
всеми почтовыми службами, использующими данный RBL.
В настоящее время существует множество RBL, в основном отличающихся
политикой администрации. Как же можно оценить их качество? Оценивать
можно двояко. Во-первых, по количеству отфильтрованного спама. Этот
показатель любят приводить маркетологи и провайдеры решений. А во-
вторых, и это для пользователя более важный параметр, количество ложных
срабатываний, т. е. сколько хороших писем с точки зрения пользователя
было опознано службой как спам и не доставлено адресату. К сожалению,
о втором параметре пользователь адекватно не информируется, зачастую он
узнает об этой проблеме при общении по другим каналам с респондентом,
а контракт или срочная информация не дошли по адресу. Поэтому настой-
чиво рекомендую не применять этот метод фильтрации, а использовать про-
граммы типа Spamassassin.
SpamAssassin
Существует несколько независимых пакетов, предназначенных для анализа
поступающих писем на предмет спама. Одним из признанных в этой облас-
ти программ и является SpamAssassin (www.spamassassin.org). В чем же ее
достоинство? Программа имеет развитую систему контекстного лингвисти-
ческого анализа, систему обучения и самообучения. Помимо этого она может
работать совместно с другими программами анализа содержимого писем.
Каким образом SpamAssassin работает? При поступлении письма, к примеру,
1
в sendmail, МТА-агент по механизму Milter API передает нашей программе-
1
Milter API — интерфейс, предоставляющий внешним программным приложениям
доступ к почтовым сообщениям, обрабатываемым sendmail. Тем самым он позво-
ляет осуществлять дополнительную обработку и редактирование содержимого и ме-
таданных почтового сообщения.
Борьба с нежелательной почтой 317