Книга
Книга
М^УЧИТЕЛЬ
g/lH
СЕТЬ для ОФИСАИ LINUX^EPBEPсвбимИПШками
Алексей СтахновАлексей СтахновАнтивирусная зашитаАнтивирусная зашитаПракгическое руководство для начинающего администратораПракгическое руководство для начинающего администратора■ Инсталляция Linux-cepsepa в короткие сроки
Алексей Стахнов
Алексей Стахнов
Антивирусная зашита
Антивирусная зашита
Пракгическое руководство для начинающего администратора
Пракгическое руководство для начинающего администратора
Настройка выделенной линии
• Настройка серверов: почтового, web-, файлового, печати
» Безопасность сервера и сети
Алексей Стахнов
СЕТЬ для ОФИСА и LINUX-CEPBEP своими руками
Санкт-Петербург<БХВ-Петербург»2006
УДК 681.3.06
ББК 32.973.202
СИ
Стахнов А* А.
Cl 1 Сеть для офиса и Linux-сервер своими руками. — СПб/
БХВ-Петербург, 2006, — 320 с.: ил,
ISBN 5-94157-668-4
Описывается установки, конфигурирование м настройка Linux-cepoepa для небольшой локальной офисной сети, где клиентские машины работают под управлением Microsoft Windows. Рассмотрен жизненный цикл небольшой компании, которая расширяется^ и по мере расширения усложняются заддчи, возложенные на сервер организации. Освещены практические аспекты установки и администрирования серверов: почтового, web-, файлового, печати* При опи^ сании конфигурирбаания сервера используются 2 варианта решения задачи — с помощью графических программ ушшеиного администрирования и ггосрслсг- пом конфигуранионных файлов.
必”г начинающих администраторов
УДК 68L3.Q6
ВВК 32.973.202
Группа подготовки издания:
Главный редактор
Зим, глазного редактора Зав. редакцией Редактор Компьютерная версткл Корректор Оформление обложки Зав. производством
Екатерина Кондукава Евгений Рыбаков Григорий Добин Консмвнтин Костенко Натальи Караваевой Зинаида Дмитриева Елены Беляевой Николай Тверских
Лицензия ИД № 02429 от24,О7кСЮк Подписано ■ пенять 05J2.05.
Формат 70х1001/1в. Печать офсетная. Усл, л«ч,力.25,&力開》3000 ко. Зака № 15 0 0"5ХВ”Питербу^г\ 1S4354, Санкт-Петербург, ул. Есенина, 56.
Саннтарно-зпидвмиологнческое заклочени* нт продукцию№ 77.9$.02.953.Д.00в421.11.04 ОТ11.112004「♦ выдано Федерапмой службойпо надзору в сфер* защиты пра* потребителей и благополучмл человека.
Отпечатано с готовых диапозитивовя ГУП 'Типографий "Наука'1199034, Сан кт・ГИ^бур「,9 линн% 12
[SBN 5-94157-668-4[SBN 5-94157-668-4С бшшов А-人,2006
[SBN 5-94157-668-4
[SBN 5-94157-668-4
С Оформление, щдателъствл 'БХВ^ПетербурН- 2006
Оглавление
Глава L Определение стратегии, выбор дистрибутива и аппаратного обеспечения11
Аппаратное обеспечение11
Программное обеспечение13
Стратегия установки ПО18
Ссылки20
Глава 2・ Установка и первоначальиая настройка сервера21
Установка дистрибутива. Стандартный вариант21
Текстовый интерфейс установки21
Графический интерфейс установки43
Установка дистрибутива "вручную"56
Резюме61
Глава 3. Настройка разделяемого коммутируемого модемного соединения для общего сетевого пользования63
Подключение к Интернету63
Внешние модемы63
Модемы, подключаемые к последовательному порту63
Модемы, подключаемые к USB64
Внутренние модемы64
Настройка модемного соединения65
Связь с провайдером66
Схема организации подключения локальной сети66
Настройка связи с провайдером67
Команды pppd69
Настройка diald72
Создание сценария соединения: /etc/diald/connect72
Настройка основной конфигурации: /etc/diald.conf74
Настройка правил тайм-аутов: /etc/diald/standard.filter75
Комплексное тестирование76
Настройка маршрутизатора76
Кэшируюший DNS-сервер77
Настройка сетевых параметров...78
Файл host.conf78
Файл /etc/hosts79
Файл /etc/resolv.conf79
Установка DNS-сернера79
Настройка кэширующего DNS-сервера79
Файл /etc/named.conf80
Файл /etc/127.0.081
Запуск named82
Глава 4. Установка 制曜匕he и Webmin85
Web-сервер Apache .85
Конфигурация85
Файл access.conf86
Файл srmxonf87
Файл httpd.conf.87
Webmin90
Страница Webmin92
Настройка Webmin94
Страница Система101
Службы11]
СетьН7
Оборудование122
Кластер126
Прочее126
Глава 5. Настройка общего доступа к дисковому пространству сервера — Samba129
Установка Samba129
Файл конфигурации smbxonf 130
Секция [global!136
Секция [homes}139
Секция [сотт]139
Секция 〃用р/140
Пароли пользователей140
Добавление пользователей Samba14J
Принтеры141
Использование ресурсов Samba142
Утилиты143
Webmin144
Антивирусные программы, clamav148
Глава 6・ Настройка общего доступа к дисковому пространству сервера ——FTP-сервер151
Программное обеспечение151
Файл etc/vsftpd/vsftpd хоп f152
Файл etc/vsftpd,ftpusers155
Файл etc/vsftpd - user list156
Пакет wu-ftp156
Файл ftpaccess156
Файл ftpservers160
Файл ftpconversions160
Файл ftpgroups161
Файл ftphosts161
Файл ftpusers161
Глава 7. Настройка сетевого принтера163
Способы вывода на принтер164
Система печати CUPS164
Программный пакет LPD164
Учет ресурсов167
Настройка сетевого принтера168
Samba168
Глава 8・ Организации почтового сервера169
SMTP170
POP3170
Протокол IMAP171
Программное обеспечение171
POP3171
fecchmait171
Программа sendmail172
Принцип работы программы sendmail173
Настройка программы sendmail173
Глава 9・ DHCP177
Архитектура и формат сообщений177
Режимы выдачи IP-адресов177
Параметры конфигурации DHCP клиента178
Файл dhcpd.conf179
Файл dhcpdJeases
Пример файла dhcpdxonf
Глава 10. Сетевые настройки сервера, маршрутизащ1Я и DNS
Организация связи по выделенному каналу DNS Настройка первичного DNS-сервера
Файл /etc/named.conf
Файл /etc/named/firma.ru
Файл /var/named/fi rma
Файл / va 17 пае d/ firm a, rev
Настройка вторичного DNS-сервера
Файл /etc/namedxonf
Файл /etc/паnied/CDfree.ru
Некоторые тонкости
Записи ресурсов службы DNS
Реверсная зона
Два сервера DNS Иерархические поддомены Используйте серверы кэширования Инструменты
Глава 1L Почта
12
1821831821835 6 77790011122444458 888889999999999991Д 11 ]Л —1 1J li 11 11 Т1 —1 ^1 и 11 11 1L 1Х 11 ^15 6 77790011122444458 888889999999999991Д 11 ]Л —1 1J li 11 11 Т1 —1 ^1 и 11 11 1L 1Х 11 ^111Пакет vsftp201
182
183
182
183
5 6 7779001112244445
8 88888999999999999
1Д 11 ]Л —1 1J li 11 11 Т1 —1 ^1 и 11 11 1L 1Х 11 ^1
5 6 7779001112244445
8 88888999999999999
1Д 11 ]Л —1 1J li 11 11 Т1 —1 ^1 и 11 11 1L 1Х 11 ^1
1
1
Файл etc/vsftpd/vsftpdxonf201
Файл etc/vsftpd. ftpusers205
Файл etc/vsftpd.user_list205
Глава 13. Web-сервер M&che207
Конфигурация Apache208
Единственный web-сайт208
Файл httpdxonf208
Несколько web-сайтов (виртуальные web-серверы)212
Нястройка DNS. 213
Глава 14- Прокси-сервер215
Squid216
Конфи гур и рован ие пакета Squid216
Сетевые параметры217
Имена и размеры файлов217
Параметры внешних программ218
Время ожидания219
ACL — Access Control List219
Права доступа220
Параметры администрирования220
Параметры для работы в режиме ускорителя web-сервера221
Пример конфигурации Squid221
Transparent proxy222
Ключи запуска Squid223
Файлы журналов Squid224
Файл access Jog224
Файл store Jog225
Файл useragent.log226
Нестандартные применения226
Борьба с баннерами226
Разделение внешнего канала227
Обработка статистики228
Программа Squid Cache and Web Utilities (SARG)228
Программа MRTG229
Глава 15, NNTP, Сервер новостей231
Протокол NNTP231
Основные команды протокола NNTP232
leafnode235
INN237
Глава 16. NTP. Синхронизация времени через сеть, настройка временной зоны239
Сетевой протокол времени239
Классы обслуживания240
Обеспечение достоверности данных240
Рекомендуемая конфигурация241
Сервер xntpd241
Конфигурация сервера241
Класс symmetric241
Класс procedure-call242
Класс multicast242
Общие параметры242
Обеспечение безопасности сервера245
Публичные NTP-серверы245
Клиентские про!раммы для синхронизации времени245
UNIX/Linux246
Apple246
Windows246
Глава 17, Сервер Samba — контроллер домена249
Конфигурирование Samba в качестве первичного контроллера домена249
Настройка клиентских компьютеров251
Windows 9х251
Windows 2000/ХР2 5 2
Управление учетными записями252
Глава 18* Контроль и аудщт253
Прокси-сервер253
Борьба с баннерами254
Разделение внешнего канала254
Организация доступа к web-ресурсам по паролю255
Запрет на скачивание определенных файлов256
Запрет на посещение определенных web-сайтов256
Квотирование трафика256
Программа NeTAMS256
Мониторинг загрузки каналов257
Программа MRTG257
Конфигурирование MRTG258
Программа RRDtool261
Подсчет трафика262
Глава 19. Настройка входящего модемного соединения 263
Настройка mgetty263
Настройка pppd264
Настройка Callback-сервера265
Конфигурация Callback-сервера266
Конфигурация клиентов266
Конфигурирование Linux-клиента266
Конфигурирование клиента MS Windows267
Глава 20. Доступ к удаленным компьютерам269
Telnei
Telnet-протокол
Про грамма-клиент telnet
Программа-сервер telnetd
Применение Telnet и безопасность
Протоколы SSH и OpenSSH272
Принцип работы SSH272
OpenSSH273
Конфигурирование OpenSSH273
Ключи запуска SSH-сервера279
Ключи запуска SSH-клиента279
Программы^ входящие в пакет OpenSSH281
Программа ssh^keygen281
Программа ssh-agent281
Программа ssh-add282
Программа sflp282
Программа scp283
Программа ssh-keyscan284
Windows SSH-клиент284
VNC287
Глава 21. Утилиты адмиЕшстрирования сети к обеспечения безопасности289
Расширенное управление доступом к файлам289
Установка Linux ACLs290
Установка и изменение прав доступа291
Дополнительные возможности292
Шифрование293
Stunnel:293
Организация шифрованного туннеля294
Stunnel и приложения, поддерживающие SSL294
Сертификаты295
Утилиты сканирования и защитысети295
SATAN295
Portsentry296
Установка и настройка296
Сетевая статистика298
NeTraMet299
Прото|с.оли.ровилис- ^.^.......^.i*ii*i»ik,*..^.^..^.._....*..b*iii«+iii»i»299
Демон sysiogd299
Файл конфигурации299
Сетевое протоколирование301
Демон klogd301
Защита системы после взлома301
Обнаружение rootkit303
Сканирование портов303
Использование RPM304
Сканер для rootkit304
После обнаружения304
LIDS305
Установка305
Конфигурирование LIDS307
Возможности308
Правила доступа310
Portsentry311
LogSentry312
Tripwire312
AIDE312
RSBAC312
Security-Enhanced Linux313
Глава 22. Борьба с нежелательной почтой315
RBL316
SpamAssassin316
Список литературы319
Глава 1
Определение стратегии, выбор дистрибутива и аппаратного обеспечения
В этой главе мы закладываем базу нашего строения — выбираем аппаратное обеспечение, дистрибутив, используемый при установке и модернизации системы, и определяемся — чем же будет заниматься наш сервер, какие службы на нем будут исполняться.
Аппаратное обеспечение
Начнем мы с "железа", Не знаю как у вас, а в наших пенатах хозяева фирм могут позволить себе неслабую мебель, евроремонт, приличные автомобили и не могут позволить себе приличный Интернет, компьютеры, мониторы и периферию. Жизнь такая, тяжелая, В результате, системный администратор должен выкручиваться и собирать компьютеры из всякого старого хлама. Особо это касается бюджетных учреждений. Поэтому я буду отталкиваться от цены, скажем, в 350—450 долларов США. Давайте не будем спорить и размахивать руками ——знаю я, что такое "правильный" сервер. Я не возражаю^ если вы сможете достать ProLiant, но рассчитывать нужно на минимум.
Что нам нужно? Если планируется, что сервер также будет и рабочим местом системного администратора, то эта потребует дополнительных затрат —на монитор, дополнительную оперативную память и более емкий жесткий диск. Итак, в табл. L1 приведена приблизительная конфигурация нашего компьютера, способного служить многоцелевым сервером и одновременно рабочим местом системного администратора.
Таблица 1.1, Пр統мерная конфигурация сервера
Наименование
Описаниа
Цена, $ США
Материнская плата
ASUS Р4Р800-МХ S-47S {i865GV/ICH5) mATX 800 МГц, ЗРС1, 4 DDR (РС3200) DC, SATA, 8USB, 6ch AC97, SVGA, LAN 10/100
73
Процессор
CPU Intel Celeron 1800 (128 Кбайт, 400 МГц) Socket-47B box, cooler
68
ОЗУ
Модуль DDRAM 256 Мбайт 400 МГц <PC3200> Samsung
52
Жестк1Лй диск
HDD 40GB Samsung SpinPoint PL40 SP0411N, Ultra DMA 133, 60GB/plattert 2 Мбайт, 7200 rpm
55
CD-ROM
CD-RW Drive 52x/32x/52x LITEON LTR-5238S (int} IDE)
29
Дискавад
3t5" SONY
9
Корпус
Case Midi-tower ATX 6058 CA Black {4x5.25"+2x3.5"+5x3.5"(Hldden)) 300WT Pentium-4 475x182x425mm (LxWxH)
30
Монитор
Монитор 17" LG ez T711B Flatron (16й, 0.2mm, max 1280x1024 66Hz) TCO99
130
Клавиатура
Mitsumr Business KSX-4 (for Windows 98,104 key) рус/укр/лат PS/2
7
Мышь
Мышь( Mitsumi Mouse Optical Scroll PS/2 (OEM) black
9
ИБП
ARC Back-UPS CS 350VA (BK350EI) USB Control, Soft, фкшьтр тел. линии
60
Итого
522
А теперь я поясню таблицу и выбор аппаратного обеспечения. Во-первых, компоненты подобраны качественные и с максимальной гарантией. Во-вторых, материнская плата на системной логике от Intel со встроенным видео, интегрировакной сетевой картой поддерживает двухканальный доступ к ОЗУТ процессоры Pentium 4 последних модификаций и AGP-разъем для видеокарты, что может послужить в дальнейшем для модернизации. В-третьих, этой конфигурации хватит "за глаза" серверу, на котором не будут выполняться мощные приложения типа Oracle.
На самом деле кокфигурация тоже не без изъяна — если кет проблем с деньгами, я бы порекомендовал корпус фирмы АОреп или Chieftec — раза в дна дороже, чем приведенный в таблице, но лучше как по исполнению, так и по металлу, а плавное — великолепные и надежные блоки питания.
Тем не менее корпуса Codegen являются проверенным решением, и большинством сборщиков компьютеров признаны достаточно надежными.
Что делать, если денег маловато? Если вы точно знаетет что вам не придется использовать сервер в качестве рабочего места администратора, то смело отказывайтесь от клавиатуры, мыши и монитора* В результате итоговая сумма уменьшится до 376 долларов США. Если же стоит задача сэкономить деньги любой ценой, даже с некоторой потерей надежности или времени восстановления системы, отказываемся от дисковода, меняем планку памяти —вместо Samsung на KingMax (дешевле на 6—7 долларов, гарантия не 3 года, а 2,и меняем жесткий диск ——берем тот же Samsung, только со скоростью вращения шпинделя не 7 20 0, а 5400 оборотов в минуту. В результате этого получим стоимость порядка 358 долларов США. На ^рационализатор- скме" предложения бухгалтерии/руководства отказаться от пишущего привода в пользу обычного CD-ROM посмотрите с укором — пишущий привод вам понадобится для изготовления резервных копий системы и данных. Возможность комфортно, быстро и своевременно сохранить важные данные (и как результат — восстановить 日 случае форс-мажорных обстоятельств) намного дороже экономии в десять долларов* Также не поддавайтесь на провокации и не вздумайте отказываться от источника бесперебойного питания —— экономии на 60 долларов, а в случае скачка напряжения —— потери на сотни.
Программное обеспечение
Первым делом необходимо определиться, какой дистрибутив будет исполь* зоваться для установки на наш сервер. Я не буду останавливаться на классификации всех систем, подробно рассматривать их особенности, плюсы и минусы их использования. Тем, кому это интересно, могу порекомендовать Интернет или мою книгу “Linux: Здесь же я кратко расскажу о группах дистрибутивов н постараюсь объяснить, почеглу я выбрал Fedora Core в ка* честве решения для сервера.
Люди, в первый раз обратившие свое внимание на Linux, с ужасом узнают, что Linux ——это ядро операционной системы, которое везде одинаково (правда, есть варианты ядра реального времени, есть с повышенной безопасностью, но в целом — ядро одно), а вот дистрибутивов великое множество. Что подразумевается под этим словом? Дистрибутив ——это инсталляционная программа, набор приложений, схема их обновления, политика (безопасности, разбиения диска5 вариантов установок и т. д,), тот или иной менеджер пакетов, стратегия развития, и самое главное ——подгонка разнородных программ для нормальной совместной работы. Многие думают^ что в мире Windows такого нет. На самом деле Windows 2000 Workstation, Windows 2000 Server, Windows XP Home и Windows XP Home Edition — это дистрибутивы. Ядро системы одинаковое, различен только набор приложений и политика (убраны или добавлены некоторые возможности).
В чем прелесть дистрибутива? Поскольку ядро Linux и программы для него распространяются под лицензией GNU (GNU is Not UNIX, лицензия, подразумевающая распространение и модификацию программ с обязательным предоставлением всего исходного кода пользователям, с возможностью его свободной модификации), идеальным вариантом является компиляция ядра и используемых программ под конкретный экземпляр компьютера. Однако такое могут себе позволить не очень много людей — я думаю, пара десятков тысяч. Помимо того, что необходимо иметь громадные, я не побоюсь сказать, энциклопедические знания, нужна еще чертова уйма временя. Только компиляция ядра, оптимизированного для нашего сервера, займет часов восемь —сначала грамотно настроить все параметры, потом настроить опции компилятора, библиотек, далее сама компиляция. И хорошо^ если с первого раза вы получите удовлетворяющий вас результат, В среднем *巴,в установленной Linux-системе насчитывается порядка 1000—2500 пакетов. Представьте, сколько займет времени компиляция всего этого добра. Тем не менее энтузиасты разработали несколько дистрибутивов, которые при установке производят компиляцию из исходных текстов всего и вся, максимально оптимизируя под ваш экземпляр компьютера. Для профи-энтузиаста — очень заманчивый вариант. Но не для нас. Нам необходимо, в идеале, получить живую снстему за пару^тройку часов, потом уже в более спокойной обстановке постепенно наращивать возможности сервера. В случае же сборки из исходных кодов нам понадобится несколько дней.
Самым сложным» после исамосборных дистрибутивов" (Linux From Scratch), является Slackware — очень правильный, с простой и понятной философией: 'Экономика должна быть экономной1^ он подразумевает минимум накладных расходов при инсталляции, сопровождении и обноалении пакетов. Относительно нетребователен к аппаратной части. Как луковица состоит из слоев, так и здесь ——сначала идет набор самых необходимых пакетов, потом набор сетевых пакетов^ потом служб и т, д> и т* п. В результате получаются очень компактные системы, где нет ничего лишнего. Оборотная сторона медали — пакеты ・tgz представляют собой просто архивы с исходными кодами программ. Для работы с ними необходимо очень хорошо знать логику функционирования и конфигурационные файлы системы, ручная правка которых является нормой (оболочки-конфигураторы выбиваются мз логики дистрибутива — поставить их можно, но их использование не соответствует идеологии Slackware). Политика сборщика такова, что появление новой версии системы ——достаточно редкое явление, и происходит тогда, когда проистекают глобальные изменения — смена версии ядра (с 2,4 на 2.6), появление новой версии GTK и т. д, С одной стороны это плохо, мир Linux очень динамичен, новые версии программ появляются почти ежедневно. С другой стороны, система считается чуть ли не эталоном надежности и стабильности, и эту репутацию сборщик всеми силами старается поддерживать.
Далее ——группа дистрибутивов, основанных на Debian. Они, пожалуй, очень сбалансированы как для серверного, так и для десктопного применения. Ориентированы на опытного пользователя. В целом несколько проще в освоении, чем Slackware, менее требовательны (по сравнению опять же со Slackware) к объему знаний, поддерживают свою систему пакетов (deb). Как обычно, упрощение в установке и администрировании тянет за собой более сложную структуру представления данных и появления тяжел о вес ности — добавляются разные адм и нистратор ы пакетов, системы по управлению и администрированию программ и служб. Достоинством Debian янляется, во-первых, набор программ, входящих в него (порядка десяти компактдисков), во-вторых, политика формирования и поддержки. Дистрибутив имеет две ветки ——стабильную, носящую свое кодовое имя, проверенную и отлаженную, рекомендованную к использованию, но выходящую достаточно редко. И нестабильную ветку, достоинством которой является практически моментальное обновление пакетов (при появлении новых версий программ), огромнейший репозитарий программ, а также сквозная совместимость пакетов. Таким образом, если хочется надежной и проверенной системы, то ставится стабильная версия. Если же нужно что-то экзотическое, либо самое новое ——берем версии программ из репозитария ——самое свежее, правда, не всегда до конца отлаженное. Сборщики Debian стараются действовать по пословице "я волки сыты, и овцы иель「,что в целом им удается — дистрибутив достаточно популярен.
Группа дистрибутивов Red Hat. Пожалуй, самая многочисленная группа и самая коммерчески успешная. В целом не все то хорошо, что хорошо продается — это мы можем наблюдать повсеместно. Но в данном случае системы, основанные на Red Hat, заняли прочную нишу как в десктопной части рынка, так и в серверной. Дистрибутивы группы Red Hat ориентированны на неопытного пользователя ——простая система установки (в основном, графическая), простота настройки, благодаря различным графическим ин- сталляторам/конфигураторам, неплохая система пакетов — RPM (Red Hat Package Manager, менеджер пакетов Red Hat). Достоинством такого подхода является "понижение порога вхождения4 для пользователей — любой без проблем сможет установить операционную систему на типовой компьютер. Недостатком является несколько накрученная система конфигурации и, как следствие, уклон в графический режим, что служит причиной увеличения занимаемого места на жестком диске. Тем не менее, судя по популярности дистрибутивов этой группы, преимущества перевешивают недостатки.
Давайте перечислим основных игроков (по распространенности).
口 Red Hat. Компания Red Hat некоторое время назад отказалась от универсального дистрибутива, предназначенного для установки и на десктоп, и на сервер. Вместо этого она стала поддерживать Fedora Core — проект, полностью основанный на Red Hat, собираемый группой независимых разработчиков. Red Hat предоставляет место для web-сайта, помогает
в создании и тестировании пакетов, написании документации. Себе Red Hat оставила корпоративный сегмент, для которого выпускаются несколько версий системы, ориентированной на решения для рабочих станций, на обычные серверные решения и специальные, особо защи* щенные, серверные решения. Поскольку корпоративный рынок кон^ сервативен, то новые версии выходят достаточно редко. Основные нововведения обкатываются a Fedora Core, а удачные решения и пакеты программ в дальнейшем переносятся в коммерческие решения. Red Hat проводит следующую политику по отношению к пользователю —поддерживается любой дистрибутив, даже выпущенный несколько лет назад.
О Mandrake или Mandriva ——французский дистрибутив, базирующийся на Red Hat. Основное его назначение — установка на домашний или офисный компьютер, причем в качестве графической оболочки используется KDE. В связи с этим, основной упор на графические чкрасивостин и различные программы, используемые дома и на рабочем месте,
□ Alt Linux — российский дистрибутив, базирующийся на Red Hat. Политика по части сопровождения является смесью подходов Debian и Red Hat — от первого взята концепция стабильного, медленно обновляемого дистрибутива и репозитария самых свежих пакетов, называемого Sisyphus. От второго — практика создания нескольких вариантов системы. Далее я просто цитирую официальный сайт Alt Linux.
ALT Linux 2.4 Master (BOX) — универсальный дистрибутив GNU/Linux, включающий в себя множество подготовленных к эксплуатации программных решений для серверов и рабочих станций. ALT Linux 2,4 Master ——решение для профессионалов, ценящих свое время и желающих полностью сохранить контроль над системой. Master традиционно пользуется популярностью среди разработчиков, профессиональных системных администраторов, опытных пользователей, специалистов^ работающих в области ИТ-образования.
ALT Unux 23 SOHO Server — готовое решение, предназначенное для организации сервера доступа в Интернет как для небольших сетей, так и для сетей масштаба предприятия. Среди многих серверных компонентов усилена функция межсетевого экрана, ALT Linux 2.3 SOHO Server поставляется в коробке с печатной документацией. В стоимость включена техническая поддержка по электронной почте в течение 60 дней с момента первого обращения.
ALT Unux Junior 23 — дистрибутив для рабочих станций и домашних компьютеров, для начинающих и опытных пользователей, простой в установке и использовании. ALT Linux Junior 2.3 распространяется в двух вариантах: в коробочных версиях с печатной документацией и в компактных jewel-упаковках.
ALT Unux 2*3 Compact ——однодисковый дистрибутив для домашнего и офисного использования, идеально подходящий для предустановки на рабочие станции и ноутбуки. В состав ALT Linux 2.3 Compact входит оптимальная подборка свободных офисных и web-приложений.
ALT Linux “Утес-К" — универсальный защищенный дистрибутив Linux, сертифицированный ГТК по 5 классу СВТ защиты конфиденциальной информации, пригодный для использования как в качестве сервера, так и рабочей станции.
ALT Linux Castle — защищенный серверный дистрибутив на основе системы RSBAC (Rule Set Based Access Control, расширение защиты для ядра Linux).
О ASP Linux — российский дистрибутив, базирующийся на Red Hat. Поли* тика по сопровождению копирует подход Red Hat. Выпускается несколько вариантов системы, список и краткий обзор которых приведен ниже.
ASPLinux Server П — дистрибутив оптимизирован для создания корпоративных серверов различных классов и поддерживает различные серверные архитектуры, включая многопроцессорные, и системы с большими объемами памяти* Централизованная настройка большинства служб и программ существенно облегчает их установку, использование и администрирование.
ASPLinux Server — стабильное и надежное решение для построения корпоративной сети, включающей почтовый сервер, web-сервер, сервер печати, сервер приложений, сервер баз данных. Включает утилиту централизованной настройки служб и программ, уменьшая сложность настройки, использования и администрирования.
ASPUnux vlO Deluxe — наиболее полный вариант дистрибутива ASPLinux vlO. Это идеальный помощник специалиста, которому необходим надежный и мощный инструмент для решения любой задачи, какой бы сложной она не являлась. Этот дистрибутив с одинаковым успехом может быть использован для установки как на рабочей станции, там и на сервере предприятия малого или среднего бизнеса*
ASPLinux vlO Standard — вариант дистрибутива ASPLinux vlO, подготовленный для установки на компьютеры корпоративных или домашних пользователей. Этот дистрибутив предназначен для тех, кто хочет работать в Linux каждый день, кто хочет знать о нем больше, но не обладает навыками программиста или системного администратора.
« ASPUnux vlO Express — вариант дистрибутива ASPLinux vlO, одинаково подходящий как тем, кто только знакомится с мирам Linux, так и тем* кто уже знаком с ним настолько, что не нуждается в посторонней помощи. Традиционная мощь и надежность решений от ASPLinux сочетаются в нем с простотой установки и настройки, доступной даже неподготонпен ному пользователю.
ASPUnux vlO Greenhom — вариант дистрибутива ASPLinux vlO, загружающийся прямо с компакт-диска и не требующий установки на винчестер. Это идеальное средство для тех, кто только знакомится с ОС Linux и тех, кому, по каким-то причинам, нужно срочно воспользоваться предоставляемыми этой ОС возможностями. Несмотря на то, что ASPLinux vlO Greenhorn не нужно устанавливать на жесткий диск, используя его можно без проблем работать с программами и файлами, размещенными на жестком диске.
Как видите, все три группы интересны по-своему. Однако я позволю себе волевым решением выбрать Fedora Core. Объясню почему. Во-первых, я адресую книгу не очень опытному пользователю, что автоматически исключает Slackware и ставит под сомнение использование Debian. Во-вторых, из трех дистрибутивов, основанных на Red Hat, первичным является Fedora Core, остальные выходят позже его 内,в основном, используют пакеты от Fedora Core. В-третьих, к сожалению, не все российские дистрибутивы лишены т,ошибок'\ И в-четвертых, процесс установки и настройки в них очень схож, поэтому нет никаких проблем, используя описание процесса настройки к установки Fedora Core, установить и настроить, к примеру, Alt Linux. А благодаря максимальной совместимости, мы можем в ASP Linux или Fedora Core установить пакеты, взятые из репозитария Alt Linux Sisyphus.
Стратегия установки ПО
После тога как мы определились с ижелезоми и дистрибутивом, перейдем к стратегии инсталляции программного обеспечения,
В программе-установке системы есть специальный пункт — Server (Сервер), при выборе которого будут устанавливаться пакеты, предназначенные для конфигурации системы в режиме *'среднестатистического сервера”. В следующей главе я расскажу, как установить сервер, используя эту возможность, и, как альтернатива, будет рассмотрен ручной выбор пакетов.
Основной посылкой при установке является минимализм и пошаговый подход. Сначала мы устанавливаем минимальный набор программ, необходимый и достаточный для функционирования сервера, настраиваем нужные службы, а в каждой главе я ставлю задачу, например, организовать доступ в Интернет для локальной сети через коммутируемое соединение, и мы устанавли^ ваем необходимые для этого пакеты, конфигурируем их, не забывая о безопасности системы.
Прошу прощения заранее — я не буду рассматривать установку графической системы и графические конфигураторы^ поскольку помимо сотен мегабайт необходимого дополнительного программного обеспечения, мы автоматически увеличим вероятность взлома системы или количество проблем, вызываемых неправильным функционированием программ. Но самое главное — вы не получите тех знаний, которые необходимы для понимания принципов
функционирования системы. Тем не менее я не на столько кровожаден —— мы рассмотрим процесс конфигурирования некоторых аспектов через web- интерфейс.
Задачи, стоящие перед нами, я взял из жизни. Это типичный цикл роста небольшой фирмы, которая динамично разиивается и обрастает компьютерами и задачами, решаемыми на них. Сперва у фирмы поязляется модемное подключение к Интернету, которое необходимо "раздать" на все компьютеры сети. Параллельно нужно организовать общее дисковое пространстно, доступное сотрудникам офиса, доступ к сетевому принтеру. В дальнейшем, при развитии фирмы} у нас появляется выделенное постоянное подключение к Интернету и, как следствие, потребность в своем web-сайте, электронной почте, FTP-сервере (File Transfer Protocol, протокол передачи файлов), удаленном администрировании. И при этом не следует забывать, что основные потребители услуг, предоставляемых нашим серверома ——компьютеры с операционной системой Windows.
Итак, наши задачи, которые стоят перед нами и которые мы методично и последовательно будем решать.
L Установка и первоначальная настройка сервера.
Настройка коммутируемою модемного соединения м организация шлюза для выхода в Интернет*
Установка web-сервера Apache и Webmin — программы лля конфигурирования системы через web-интерфейс*
Настройка общего доступа к дисковому пространству сервера.
Настройка сетевого принтера*
Организация простейшего почтового сервера.
工 Установка и настройка DHCP-сервера (Dynamic Host Configuration Protocol, протокол динамической конфигурации хоста).
Переход на выделенную линию и перенастройка уже установленных служб и добавление новых.
Настройка прокси-сервера.
Настройка NNTP-сервера (Network News Transfer Protocol, сетевой протокол передачи новостей) или сервер новостей.
Настройка NTP (Network Time Protocol, сетевой протокол времени) для синхронизации времени через сеть и настройки временной зоны.
Настройка контроллера домена*
Контроль и аудит системы,
Настройка входящего модемного соединения.
Утилиты администрирования и обеспечения безопасности.
Как видите, задач достаточно много. Но, как говорят китайцы,——"даже путь в тысячу ли начинается с первого тага 二 Шагом Л марш!
Ссылки
В целом, па поводу выбора дистрибутива и аппаратного обеспечения, ничего особенного я посоветовать не могу. Читайте информацию на сайтах производителей, подпишитесь на новостную группу, пообщайтесь на форумах и сайтах, посвященных Linux. Но есть один универсальный совет — "вьг5н・ райте тот дистрибутив, который хорошо знает ближайший гуру" (С). Народная мудрость.
口 wwwJinux.org.ru — один из основных русскоязычных web-сайтов, посвященных Linux,
口 wwwJinux.org — web-сайт о Linux*
口 wwwJinuxdocs.oi^ — web-сайт, содержащий много литературы о Linux.
口 www.iinuxrsp.ru ——русскоязычный web-сайт,
口 www.redhat.com ——web-сайт Red Hat.
口 www.altlinux.ru — официальный web-сайт Alt Linux.
口 www■卿Шшх.「и ——официальный web-сайт ASP Linux.
□ wwwxitforum.ru ——здесь вы найдете большое собрание русскоязычной документации и книг, в том числе посвященных Linux.
Глава 2
Установка и первоначальная настройка сервера
В этой главе мы произведем установку нашего сервера, причем будем рассматривать два варианта установки: с помощью графического интерфейса н в текстовом режиме. И две стратегии —— установка по умолчанию и самостоятельный выбор пакетов*
Первичную настройку сервера будем производить как во время, так н после установки системы. В нашем случае это будут: настройка сетевого интерфейса, настройка брандмауэра^ DNS (Domain Name System, доменная система имен), маршрутизация.
Установка дистрибутива.
Стандартный вариант
В этом разделе мы рассмотрим наиболее легкий, с точки зрения пользователя, вариант установки сервера. Минимальные телодвижения, минимальное вмешательство в процесс установки ——"за нас уже подумали". Для быстрого старта системы самое то. правда, в дальнейшем придется почистить систему, кое-что добавить, но несомненным плюсом этого подхода является мобильность развертывания системы —— полчаса н сервер готов.
Текстовый интерфейс установки
Заранее прошу прощения, но дальше пойдет большое количество графического материала. Здесь действует принцип ——лучше один раз увидеть, чем сто раз услышать, Также, поскольку процесс инсталляции очень похож в обоих типах интерфейса, некоторые вещи будут дублироваться, а некоторые я опишу только для одного из них.
Итак, у вас на руках свежесобранный сервер. Первое, что необходимо вам сделать — зайти в BIOS и грамотно его настроить- Второе — в том же BIOS временно установить в качестве первого устройства загрузки CD-ROM. Уже давно все дистрибутивы поставляются на за1рузочных компакт-дисках^ поэтому нет необходимости возиться с загрузочными дискетами. Вставляем компакт-диск в CD-ROM, перегружаем компьютер и видим строку приглашения (рнс. 2.1).
Fedora
Tlii II . Е ji J J141Цг>|,丁 diI rt ч [ r:^li ■ I >1 I ui.iii-[",,,•, 1hr ,.卜H 】g 1,, bi-1.'
TnI f^-1 -111"I'i("| r,'ill-,z 1 н :. I,"”h・.I ','j-:1 huiKl~xl ■, F. rit kH -
'll,-,,I |н' I ii iii : 11 i|i >.,-{|・・.I I < I11 iL In h ・u I、" *r”, till iie ti... t I i?ii
Рис* 2*1. Строка приглашения
Давайте злймемся расшифровкой. Внизу экрана мы видим командную строку, в которой мы можем вводить команды. Если в течение некоторого вре^ мен и (порядка минуты) ничего не будет введено, дистрибутив самостоятель^ но начнет установку в графическом режиме. В средней части экрана находится сообщение о том, что для начала инсталляции или обновления уже установленной системы в графическом режиме необходимо просто нажать клавмшу <Enter>. Чтобы проделать то же самое в текстовом режиме, необходимо ввести linux text и нажать клавишу <Emer>. Помимо этого сушествуют дополнительные возможности, о которых вы можете узнать, нажав соответствуюшие функциональные клавиши (или прочитав во вставке), Вводим в командной строке linux text, нажимаем клавишу <Enter> и получаем экран, изображенный на рис. 2+2.
В этот момент дистрибутив опрашивает все аппаратное обеспечение компь* ютера, определяет его тип и выводит полученньге данные на экран. Как правило, на этом этапе никакого кримина^ча не происходит, н после тестирования железа мы получаем зкран〕изображенный на рис. 2+3.
Система определила, что инсталляция производится с компакт-диска, н предлагает произвести проверку носителя. Это имеет смысл, если у вас со-
мнительные болванки, либо старый CD-ROM. Если же вы уверены а своем аппаратном обеспечении, то смело нажимайте кнопку Skip* Нас приветствуют (рис. 2.4)! Здесь можно вернуться к предыдущему пункту, но мн нажимаем ОК и переходим к экрану> изображенному на рис- 2*5*
Рис. 2.2. Определение дистрибутивом аппаратного обеспечения
Рис. 2.3. Тестирование носителяh с которого производится инсталляция
Рис. 2.4. Приветствие
I есЬьгл (.rirc I U ) r.HHP Ht:il Hcl, 1 nt..
Chh'rm,. 7;小〉hi"2:tn el^crcnts 】<SpflCf:> sclt:i:ts 1《门2> next кг гем “
Рис. 2Л. Выбор языка, на котором будет происходить инсталляция
Нам предлагают выбрать язык, на котором будут выводиться все сообщения в процессе инсталляции. В отлкчле от Windows, в большинстве Linux-систем не принято для каждого языка делать отдельный дистрибутив, что с одной
У心тн&£?к君ип^ртонзпальнаянастр出^ка сервера 25 стороны прилично увеличивает его размер, а с другой — позволяет установить любой из более чем 50 языковых интерфейсов. Выбираем русский и нажимаем кнопку ОК.
F,/;» ■> ^ ш г ". J /Hili Hi'ii Hi'T , I ”;.
、丁:/,〉.J;nJ t £'-ib> E$:*mj ."":,":“T“”” ;《:•;]〃”*” *,,・;“],;<I' 1,.'?上.,货"屮,力>1“ :"-.*〃“
Рис, 2.6. Выбор раскладки клавиатуры
Далее нам предлагают определиться с раскладкой клавиатуры, подключенной к компьютеру (рис. 2.6). К сожалению, здесь нельзя автоматически определить тип клавиатуры, понажимав на некоторые клавиши, В дальнейшем раскладку можно поменять с помощью с оотаетствую щ их ути лиг В нашем же случае это не принципиально — на сервере русский язык вам практически не понадобится, поэтому выбираем ml. Нажимаем ОК и переходим к следующему этапу (рис. 2.7}.
Здесь мы выбираем тип устанавливаемой системы. Мы можем выбрать один из четырех типов:
Personal Desktop — система используется на домашнем или офисном компьютере.
Workstation — система используется на рабочей станции,
Server — система используется в качестве сервера.
Custom — самостоятельно определяем устанавливаемые пакеты.
Что это нам дает? Создатели дистрибутива проанализировали, какие пакеты чаще всего используются б представленных трех вариантах м сгруппировали их таким образом, что, выбран нужный тип системы, мы уже получаем
на 90% готовый к использованию набор программного обеспечения. Также нам остамяют возможность самостоятельно добавить или убрать некоторые пакеты. Выбираем Server и двигаемся к следующему экрану (рис. 2.8).
I'trhHF 门“п: (Г ) г!И|11 "|T H"L. Inr..
《Trlh》/《fltt T,iti> rti:M{l| llirfirtl ТППЧ ; l'bjJiH.r:> IU“;ny I < П <! > I. in 3L1 |Hll|tu'« "4”IH
Рис, 2,7. Выбор типа инсталляции
Рис. 2・8» Разбиение жесткого диска на разделы
Здесь мы можем выбрать из двух возможностей — либо система сама разобьет на разделы жесткий диск так, как это предусматривает политика создателей дистрибутива, либо мы это сделаем вручную, самостоятельно. На данном этапе выберем Автоматическое разбиение н посмотрим, что будет дальше (рис, 29).
Тс h,- bi 11 Г. I h •> МГ1М” trpfТс h,- bi 11 Г. I h •> МГ1М” trpf(rk 口111-1 打:/ ir / , J
Тс h,- bi 11 Г. I h •> МГ1М” trpf
Тс h,- bi 11 Г. I h •> МГ1М” trpf
11“ ; /:“h” I ■ > EililhU^I : *■ f; 1 .< ■ 4. JLf -Jil puridH № I'^EI
Рис. 2.9* Выбор диска и стратегии его очистки
и: '- (1:1|;Г|1 н |Г . !
r.Tjb,/口1 i t lhh> НЕ’#"” 3",.rii:HT“fir ; <>imi.c> ub#“卩;《FT/> cnriiip^j^iH -iU|r,iH
Рис. 2ЛО. Предупреждение об удалении разделов диска
И что же мы видим? Внизу экрана присутствует список жестких дисков. В нашем случае ——один IDE-диск с именем hda. Принципы наименования дисков можно найти в литературе, в частности в моей книге “Linux".
В верхней части — три варианта использования места на жестком диске. Поскольку у нас новый компьютер, выбираем Удалить все разделы на этой системе и переходим к следующему экрану.
Здесь нас пугают потерей всех данных на диске (рис* 2,10)» но это не должно смущать — винчестер-то новый, на нем еще нет никакой информации. Смело жмем ОК и переходим на следующий уровень (рис. 2.11).
Здесь мы видим окно программы Disk Dniid — с ее помощью можно производить низкоуровневые операции с диском. Инсталлятор решил, что нам достаточпо трех разделов ——корневого, загрузочного (где лежит ядро системы) и swjip-раздел а.
LtiklT'd СиГа.' “」门川,| |卜中 Ibt г I HI.
Рис. 2>11. Пpeдулреждение об удалении разделов диска
Очень спорное разбиение диска и вот почему ——если диск не разбит на несколько томов, каждый из которых предназначен для отдельного каталога дерева каталогов Linux, то при переполнении жесткого диска система не сможет нормально функционировать;, поскольку должны создаваться временные файл^, куда-то записываться файлы журналов, где-то храниться базы данных и т. а. и т. п. Поэтому рекомендуется либо назначать квоты дискового пространства для каждого пользователя, либо выделить отдельные дисковые тома под некритичные для функционирования сервера каталога. Обычно всегда выделяется каталог /boots так же рекомендуют выделить либо
весь каталог /var, либо его части, например, /var/sajnba или /var/http, н каталог /home. Тем не менее, если вы будете устанакливать квоты на дисковое пространство или административными методами не допускать переполнения жесткое диска, можно оставить разбиение в таком виде, как предлагает инсталлятор, Как пользоваться программой Disk Druid, мы узнаем в разделе графической инсталляции. После разбиения диска появится экран, изображенный на рис. Z12*
If'i ':*ч I !:■! !■ и: I jijU i |:4 >1 л., г . । ;п
<Т,тBjz ::(Я 1. S^h^ hi?xxvi ..чн-игн111йи t <¥屮1匕匕、融<k屮;Г”;",с 巾:口屮旧曾口 jup^w
Рис. 2,12. Выбор шла загрузчика
Здесь необходимо выбрать, устанавливать загрузчик или нет. Загрузчик — это специальная программа, позволяющая» во-первых, загружать операционные системы при включении компьютера; во-вторых, если установлено несколько операционных систем, выбирать из списка необходимую; н・третьм)^ передавать ядру операционной системы дополнительные параметры; в-четвертых, установить пароль на загрузку (для сервера не рекомендуется). Если же мы не установим загрузчик, то с жесткого диска без дополнительных телоавижений (специального днска) загрузиться не удастся.
На рис- 2J3 изображен экран, в котором можно добавить параметры, которые будут передаваться ядру при его загрузке. Обычно это используется при наличии в аппаратуре нестандартных устройств —— специальных контроллеров, плат видеозахвата и др.
Далее следует установка пароля на загрузку операционной системы (рис. 2Л4), в нашем случае я не рекомендую этого делать. Объясняю почему ——сервер обычно работает круглосуточно, в автоматическом режиме. К примеру, пропал сеет в выходные, источник бесперебойного питания
(ИБП) корректно выключил питание в тот момент, когда батареи разрядились, Дали напряжение — ИБП подал питание, а при старте компьютера загрузчик запрашивает пароль. И никого нет, и получается, что наш сервер простоял выходные без дела.
Рис, 2*13* Выбор типа загрузчикаРис, 2*13* Выбор типа загрузчика
Рис, 2*13* Выбор типа загрузчика
Рис, 2*13* Выбор типа загрузчика
j>.pdujc'*l (.OrL 〔匕}门”「j m:J H'iL. I >1J..
,窸 г ь,к” 炉“丿尊、t:e : 肾》*,窸 г ь,к” 炉“丿尊、t:e : 肾》*沌靈jf;髪整2;沌靈jf;髪整2;
,窸 г ь,к” 炉“丿尊、t:e : 肾》*
,窸 г ь,к” 炉“丿尊、t:e : 肾》*
沌靈jf;髪整2;
沌靈jf;髪整2;
<ТдЬ>^<П 11 1вЪУ ncxjin a,№r「”TSHX I <Spauu> Hb・iGp 1 <Г1^> глг!Д1|К11мй анпсн
Рис. 2 J4. Установка пароля на загрузчик операционной системы
После этого мы выбираем, какая из операционных систем будет загружаться по умолчанию (если их несколько) и как они будут называться в списке загрузчика (рис. 2.15, Это мы оставляем без изменений. Затем указываем, где будет находиться на жестком диске загрузчик операционной системы (рис. 2.16)* Оставляем Основвая загрузочвая запись (MBR).
'I ,;Е 1 1 ь II т 卜/“Hl Ij J Ilk, JI г..
「①,,t〕r ил 114ПНГТ к““"кп ; 仆/> icuMtb nn ifHU/iT<iM“w : ClQ i nrn ?к»п”〉
Рис, 2.15. Выбор загружаемой операционной системы по умолчанию
рч bhi'.-.-i s.5 И " «」/НН" К,м Е" . 1Е.
:T.th >.'《〃 11 Та b) nrXjlt] тленен Т|»пи ] <Хр/Г{-> ”bE;”卩 I < I' Li? ■ fjii^U |нщ^|ы ГК卩nN
Рис. 2.16. Выбор места размещения загрузчика операционной системы
FcihMM Cure {口 匕电廿寸 Ikd Hnl. Inc.
Рис. 2.17. Настройка сетевого интерфейса
А вот теперь приступаем к настройке некоторых параметров операционной системы. На рис. 2」7 мы видим форму для настройки нашего сетевого устройства. В Linux сетевые карты имеют имена вида ethx, где х — номер. Нумерация начинается с нуля. В нашем случае это сетевая карта, которая 'смотрит4 в локальную сеть. По умолчанию программа установки предполагает, что в нашей сети уже есть DHCP-сервер, н что наш компьютер будет при запуске получать от него динамически назначаемый IP-адрес, Но ведь это не так! Это наш компьютер в дальнейшем будет выступать в роли DHCP-сервера. Посему необходимо назначить ему IP-адрес и маску подсети.
О принципах назначения адресов^ что такое блоки адресов и тому подобное, вы можете прочитать в моей книге "Linux"- Пока же примите как данное — есть блок IP-адресов вида 192.168.xxx.xxx, где ххх цифра от 0 до 255. Эти адреса предназначены для использования в локальных сетях* Адреса вида J92.168.ххх+0 и 192, J68.ххх.255 ——специальные и не используются для назначения компьютерам. Маска подсети определяет, к какому участку сети компьютер может обращаться напрямую. Для локальной сети обычна иегюль^ зуют маску 255.255.255.0, означающую, что компьютер с адресом, к примеру, 192.168.345 может общаться с компьютерами, начиная от 192,1683,1 и заканчивая 192.】 68.3.254.
Немножко об адресации. Обычно шлюзу сети (маршрутизатору) назначается IP-адрес вида 19Z168.WC.1. Хотя это и не обязательно (стандартами не оговаривается), но в Microsoft с этим не согласны и на компьютерах под управлением Windows, которые работают маршрутизаторами, ПРИНУДИТЕЛЬНО устава или вают такой 1Р-адрес.
Поскольку наш сервер, помимо всего прочего, будет работать маршрутизатором, не будем оригинальничать и выдадим ему в качестве IP-адреса 192.168.0.1, а в качестве маски подсети — 255.25 5.25 5.0 (рис. 2J8).
lLEhdoi'^ l.uir: 11: I,:l卅d Hr" Hit I.. 1“匸.
<T»^b>zСПИ-Tftb> есхлп ат:гн:нтпн” I <S|hirtT> пь»叩 I 《F12> гпплднинн зк阿н
Рис. 2.IS. Настройка сетевого интерфейса
ifflniii 丁“「门 u;i Z^fHl KrJ Плt . Iшт
«Т,小"+1t Т.Л> hi-«Т,小"+1t Т.Л> hi-•,巾mtT“HH t《+;№“、「〉Hh/,”" 1 <+"1/} eh,儿!|kiiMA :«K[iikH
«Т,小"+1t Т.Л> hi-
«Т,小"+1t Т.Л> hi-
Рис. 2Л9. Настройка шлюза и первичного DMS-сервера
2 Зак 1500
Следующий этап — определяем шлюз и DNS-сервер. В качестве шлюза указываем 192.168*0.1,так как у нас нет постоянного соединения с Интернетом. Первичный DNS-сервер ——то же самое (рис. 2.19).
Следующий момент — назначение имени компьютера (рис, 2*20). Можно задать его вручную, например, LanServer (рис. 2.21), а можно вообще не за* давать. При наличии DHCP-сервера имя можно получать автоматически.
Теперь переходим к обаране. Сборщики дистрибутива позаботились о безопасности системы, и предлагают нам включить брандмауэр для защиты от попыток взлома извне. В целом здравое решение и не стоит от него отказы^ виться. Только для грамотной обороны необходимо знать» как и ат чего защищаться. По построению надежной защиты существует десяток достаточна объемных книг, к которым я вас и отсылаю.
Поскольку мы включили брандмауэр (рис. 2.22), нам предлагают определиться, какие службы нашего сервера Moiyr быть доступны извне (рис. 2.23). Как вияно из рисунка — набор очень скуден:
защищенный удаленный доступ к компьютеру или SSH (Secure Shell);
口 web-сервер;
口 FTP-сервер;
почтовый сервер.
р'еЗигп Jmu《匸1 方Hl №3 H i L, gr
<l7ih〉/《fdt Tii h > rtHfntf тпнмри тлпи i <S|iiir e^ > Rhf7i}p :《F1Y> |:“”1|“1傅i^x : "“hi”
Рис. 2.21. Назначение имени компьютеру
Kndttr.i i rirc IC) ZHHd Red Hcl> Inc.
I 《『itcffH t Tnb> hcxji炉 ?гутп:“тснх ;《Hprtc*} 10>用门卩「 <F12> |:门广配|>«睜 удмн
fudtn-a J.ljit- К.) ;:HH1 H,:r; Mil r hll:.
《T,1,h},《门 I t•丁,\h〉lirrtJl" ifirnr+l TUIIM : v.:;W".「> Hl.riiip ;《,」/> 「"ITUWlll 戸口 iK|MH
Рис. 2.23. Разрешение доступа извне для некоторых служб
На первый взгляд, изобилия не наблюдается. Мы из всего этого добра разрешим только SSH, поскольку ПОСЛЕ инсталляции системы дисковод, клавиатура и монитор будут отключены от сервера, а управлять им мы будем через SSH. По поводу скудности — приведены стандартные службы универсального сервера для небольшого офиса. Добавлять что-то специфическое, например, доступ к базам данных (БД), не имеет смысла — это потенциальная брешь в защите системы. А если вдруг вам захотелось открыть, к примеру, порт, который слушает MySQL, — значит вы опытный администратор, и поправить таблицу правил брандмауэра не составит большого труда. Как вы увидите далее, в конце настройки нашего сервера мы все-таки откроем все эти службы для доступа извне.
Следующий этап ——увеличение безопасности изнутри (рис. 2.24). SELinu* (Security Enhanced Linux)——Linux с расширенной безопасностью, увеличивает надежность функционирования системы в целом, в частности, отслеживает наличие небезопасных действий и осуществляет более строгий контроль над распределением памяти между задачами.
Следующий шаг ——выбор дополнительных языков» которые будут использоваться при работе (рис, 2,25). Здесь все просто —— выбираем дополнительный язык английский н хватит. На самом деле, нам никто не мешает выбрать хоть пятьдесят языкоз, но нужно ли такое вавилонское столпотворение на сервере, с которым работают максимум 3—4 администратора? Следующий момент ——выбор основного языка системы (рис. 2.26).
$i,h"F ( 1И'г Г.,,"!Wi 僞3 u.if . Ini
1Т"Р〉Г$自}t ・ТкЬ> мему :ян*н:нтнп* ;《*“]“色? ffrftuy ; fF12> i;ni:口4MlM订 пкрпн
Рис, 2.24. Включение режима расширенной безопасностиоперационной системой SELinux)
Н ^ПГ.1 门1Г,・ 1「,/НН1 Щ г1 J1.1t , ||亡
<Kih>z^ni t T«>h> нг^лц зпсиситони 3 <3рис;с> нь/“р ! CFIZ〉сл^цукияй :,к同“
|>(1пг<1 Слгг (С)』;l〉,q lird ИД , I нс L
<Tiltl >^<ftlt ■ l'b!l>) НГТ11Ч :H":tir“TR”H ; (Sjl.U r7> Eilrfi4J[l I <F】/> ГПС^1р4й1>4Н 3K尸“”
Рис, 2.26. Выбор основного языка системы
ГеИогп Curi: fCi /НН" 16 rd Unt, I “г:.
<Tiih >/■«! J t - Tcib> HGXflU элстгнти Тами I 《;卩口匸口〉пьГир t <F12> unn口仲”口 ztHpun
Рис. 2.27. Выбор часового пояса
Теперь настало время для времени (простите за каламбур). Мы должны выбрать часовую зону, н которой находимся (рис. 2.27). Выбор часового пояса привязан к определенным городам. Выбираем город-ориентир, убираем
галочку в пункте System clock uses UTC (Системные часы используют Уни- зерсальные временные координаты) и нажимаем ОК.
Далее мь【должны ввести пароль пользователя root (рис. 2.28).
I'rrl.- ri r.ifri' io гНН1 bird 11л1, Iiil .
<T,ib>z<rt 11 1jb> hl: 1сд|^ глиннмтпнн I <S|hiL i^> BirEci卩 1 《Fl上〉гчи^тршри знр^и
Рис» 2・28・ Вводим пароль пользователя root
Г |'|Ъ 1{Ь.Ъ l.n「L 4 I I .-Ь(ГЦ1 Hr:d ll|k t d I Hf-
dl卩nK£“>,《•:*,< > EbtfiD卩; <FZ> DnKtiiHt rp^nniN t <F1Z> глга. rtKjKiH
Рис. 2.29. Выбор устанавливаемых пакетов программ
Внимание
root ——суперпользователь, аналогичный пользователю Администратор a Windows. Он может ВСЕ! Поэтому очень рекомендую выбрать нормальный пароль, длиной 7,более символов.
Наконец добрались до установки пакетов программного обеспечения (рис. 2.29). Здесь все просто — ставим галочки напротив нужных групп пакетов, снимаем напротив ненужных, вверху пишется общая емкость устанавливаемых пакетов. Внизу списка есть галочка Вее, с ее помощью можно выбрать все имеющиеся пакеты. К сожалению, текстовый вариант установки на "втором плане" и не все возможности, предоставленные в графическом режиме, присутствуют в нем. Но об этом позже. Пока же, как я и писал ранее, придерживаемся по зозможности политики инсталлятора, ничего не меняем, а просто нажимаем ОКТ
Г(ЬГ'1ЛМ Li III ' 1 L 1 . JIH 1 Hl,/ 11.1 1. . I П[
《Tiih》,Y»lt тrh】НнГ 川 I :"е тжтенк L e力""士)duGnp 1 <「1W)1国1::"屮011^厶 ^F.p>tH
Рис. 2*30* Информациоиное окно инсталлятора
Получили окошко с сообщением, что полный протокол инсталляции операционной системы будет находиться в /root/install.log (рис* 2.30). Нужная вещь для "разбора полетов'1.
После этого последнее китайское предупреждение ——нам сообщают, какие диски необходимы для инсталляции, и, если вы вдруг испугались последствий, можно отказаться от установки (рис. 2.31).
Все! Понеслись! Нам сообщают, какой пакет устанавли вается в данный момент, его краткое описание, размер, общее количество устанооленных и оставшихся пакетов и приблизительное время инсталляции (рис. 2.32). Во время установки системы можно попить чаю/кофе/коньяк по вкусу!
]■ rd ! 11 >1 {.I Hff 11 I ГГЯИ'} Xud H“E. Ini
■^ !■ I h :■ ■■ ЧЬI E T“h、 Hirsi" jiir'Mi'ii Т.111Ц I 《:;肘1“|・> FkfilHH: : ■■ ]'■ I.' ■ I FUTlig 叫.1" 'Hji.ih
Рис, 2.31, Необходимые диски для инсталляции
। с J”「八(Iнг it j ;:ннв k「j I[Lj
《'『<,Ь〉/《П11-Tab〉rrtiunj :*м;г*:мт《нн J《Ypau・:> H^tiup I "】<•:、匕",:川1«11MM :.“,уин
F е rdt ег ci Cm; LL 1」*I”I fU 11“ I , I лг..
《T“L?/《RI l」1‘4七> m:хдц члененTririH ; у ^р<н r> i“m"屮 I 《F12> i.nt-jiniru^a'i :ih.|jcih
Рис, 2.33. Смена мнетапляцмонных компакт-дисков
ii t.4hj[ л I. ere ill,軍心 iMil 2t, I",
<L» lur> JUIH HC]IU.1l!I pl|:'fKL4
Рио, 2.34. Установка закончена
Во время инсталляции самостоятельно выдвинется лоток CD-ROM, и нам предложат вставить следующий диск и нажать ОК (рис. 2.33). После окончания нам выводится сообщение о том, что установка прошла успешно, и предлагают перезагрузить компьютер (рис. 2.34).
Графический интерфейс установки
Переходим к графическому варианту установки системы. Начинается точно так же, как и текстовый вариант — вставляем компакт-диск и перегружаем компьютер (рис. 2.35).
Fedora
7 ■ Ii i I ■ 1 ■ 1!I I ir'сци; ['< ИIг •屮卄 г h м •,I iгн i"i, ргч г ■ ■: I Е* • '. hNT*;M > h •炉
!,,з, I ■■1: -it'>цн < c , ;.; II ;i ;「:.:『 nr,;h-( ^jn ■ : Iihiix t”T < F.N TKH >
I 'E ^i ■IИ и 11 ГI I П k kr-^i .I : .' ■ ■ 1 !“ • I I Sf I »Г' I hi rJ '■r l i< I IL^ и I I 111 h .
Рио. 2*35. Строка приглашения дистрибутива
Нажимаем клавишу <Enter> и начинаем графическую инсталляцию. Первые 2—3 шага общие с текстовым режимом — командная строка вначале и опре^ деление аппаратного обеспечения. Нам точно так же предлагают проверить компакт-диски на ошибки, нажимаем Skip.
Нас приветствуют! Окно устроено просто ——слева вертикальная полоса с текстом, поясняющим, что делается, и в центральной части окна собственно то, с нем мы работаем на данном этапе (рис. 2.36), Нажимаем ОК и получаем экран, изображенный на рис. 2.37.
Нам предлагают выбрать язык, с помощью которого будут выводиться все сообщения б процессе инсталляции. Выбираем русский и нажимаем ОК. Далее нам предлагают выбрать общесистемную раскладку клавиатуры (рис. 2.38)* Выбираем, нажимаем ОК и переходим к следующему этапу (рис. 2.39)*
Здесь мы выбираем тип устанавливаемой системы. В отличие от текстового режима, все типы инсталляции на русском языке, с кратким пояснением. Выбираем вариант Сервер и двигаемся к следующему ткр&ну (рнс. 2.40).
Fedora
Iг
■ Welcome to .
i Fedora Care
! During this insmllailan. you can:: ! use your mouse or keyboard to ■. i navi^^tE through (he various |, :screen乐■
L ThcTthkey ahWNs youn> 偉 г move around th« screen, th* Я :Up and Down anew keys to 臘 )5crdi through fbt5, t And * key« 1| ! expand and cnlUpH lists. 庫 ;while Space and Enter »c*ecis 陽 i or eeovm from teldcdtm л 圍 ;hmh^hted ^tem. Ytm can 11ю 图 I use the Aft-X key command И I comblnaiion as a wa^oF 圈 dlckirm on buttems 纵 m 嘛Fng И i other screen sefecttoni, where 潛 i Xis repfac^d with any樓
;underlined l«tter >pp«wlnsffl
j Choose the lin$uag« you would;Uke 出 u&e during this Hi芻』Hation+j Choose the lin$uag« you would;Uke 出 u&e during this Hi芻』Hation+
j Choose the lin$uag« you would
;Uke 出 u&e during this Hi芻』Hation+
j Choose the lin$uag« you would
;Uke 出 u&e during this Hi芻』Hation+
Рис. 2.36. Приветствие
Fedora
J Language Selection | g ^^'心倣》”s巌送骐4
I ВцЦрмл (Б-ьгт#сам)
:< jUM*e 爆M«}
「 C EneufSIM*也(Wi4州电
f |сЫппеГГтк1Вогн|)(*0ФХ)
С E&htn (HfVtISkc)
Uz℃h [亡МЬм)
Danish (Damk) 厂:Dutch tNtdtHjndsj
Eitorajn Cw.$tk “eh Finnish (soomU French (FewkvJ German tDcuuch) ? Gt|a^ (渣*m 严ММ} I Hungarian (лшду^ i kelaFidit (tslemki}
Fedora
НастройкаНастройкаклавиатурыЗь«б 粵w pecucrvaAiey клавиатуры (квлринарн Russian), которая будет мспол 1>зовй т ься в вашей системв.клавиатурыЗь«б 粵w pecucrvaAiey клавиатуры (квлринарн Russian), которая будет мспол 1>зовй т ься в вашей системв.• Вмвнрй!. ГГЕ тю.吁&吗*m・* nFNT*iftnV)IUUW№ (Н№^ЯЙ1(1к||^:НфЙ* IWVHlUli Й!*й^эир Ти »'4yi tiitrh ]^стпией№» imflHHf№4»4f>iiBhi 融 иожет.1мв^ь e»«i« сшшА 户raaiint 伊・)мвкее gy «*■ Mt м»6l»po4N・■ Щ||б1рИЧ>ТТЖ ГМНЙ!电匕,・岫片** WMrAH^UM , &(w«wo«ii уегвпнк йелй^чоеш* №»』м ^шйммй*»,• Вмвнрй!. ГГЕ тю.吁&吗*m・* nFNT*iftnV)IUUW№ (Н№^ЯЙ1(1к||^:НфЙ* IWVHlUli Й!*й^эир Ти »'4yi tiitrh ]^стпией№» imflHHf№4»4f>iiBhi 融 иожет.1мв^ь e»«i« сшшА 户raaiint 伊・)мвкее gy «*■ Mt м»6l»po4N・■ Щ||б1рИЧ>ТТЖ ГМНЙ!电匕,・岫片** WMrAH^UM , &(w«wo«ii уегвпнк йелй^чоеш* №»』м ^шйммй*»,
Настройка
Настройка
клавиатуры
Зь«б 粵w pecucrvaAiey клавиатуры (квлринарн Russian), которая будет мспол 1>зовй т ься в вашей системв.
клавиатуры
Зь«б 粵w pecucrvaAiey клавиатуры (квлринарн Russian), которая будет мспол 1>зовй т ься в вашей системв.
• Вмвнрй!. ГГЕ тю.吁&吗*m・* nFNT*iftnV)IUUW№ (Н№^ЯЙ1(1к||^:НфЙ* IWVHlUli Й!*й^эир Ти »'4yi tiitrh ]^стпией№» imflHHf№4»4f>iiBhi 融 иожет.1мв^ь e»«i« сшшА 户raaiint 伊・)мвкее gy «*■ Mt м
»6l»po4N・
■ Щ||б1рИЧ>ТТЖ ГМНЙ!电匕,・岫片** WMrAH^UM , &(w«wo«ii уегвпнк йелй^чоеш* №»』м ^шйммй*»,
• Вмвнрй!. ГГЕ тю.吁&吗*m・* nFNT*iftnV)IUUW№ (Н№^ЯЙ1(1к||^:НфЙ* IWVHlUli Й!*й^эир Ти »'4yi tiitrh ]^стпией№» imflHHf№4»4f>iiBhi 融 иожет.1мв^ь e»«i« сшшА 户raaiint 伊・)мвкее gy «*■ Mt м
»6l»po4N・
■ Щ||б1рИЧ>ТТЖ ГМНЙ!电匕,・岫片** WMrAH^UM , &(w«wo«ii уегвпнк йелй^чоеш* №»』м ^шйммй*»,
.Llalian 也由S
;.flitdn AnwMcjn
一? МасккпапW
二:…№nИ
上中"1й
b PaluSueseг ;
.Puq«U tfnbtnpt>圖
/:! ":*m
I i Ruf ;ЙЛ 优Р1251)
:q Redan (Мкн&сй)
[jR財slankuH
! ;:Rnstian0u2)
.:Slovakkin
■ ; Svrediih
.I•函孤鼻I
Рис. 2.38. Выбор раскладки клавиатуры
Fedora
Тип установки
Выберите тил устамомк, который нпиОол^а Пйлнй ;состмтстц/вт ышим I потребностям.
I Установка унич: о жиг всю :ране« сюхряманную информацию на шбренных :рш» делах.
! Для получения бопве ;пьдро^нт информации о ■ раэпичиях между классанн 'уст*нав*м обрат нт век к j докуиентации
Fedora
I Разбиение диска
! Опнмм из самых бапьзмх
:грвпАТствий для новичков а
■ уетановь# Linux и&ляется риметка диска. Процесс продает балле гладко при праведен им автоыагичцскогр разбиений дней.
Если вы выберите
■ aBTOhiaiMwotyic разметку, ■ мм 卜婚 н^хно будет
■ кйп^льзивауь программы
■ разметки для назначения
I точои; ыонт нраванияь ■ соэдвнин разделов и ■ рнспрзлепениА ивста ппа
j福咧呼^1 !3遍麻風
宀е・Мм 7m融『例t喈锦i:二
y碑” W*two pil立鹏屏8* 喇电幽項岬啲七寸1:
产吃史聘Ы.(m碘中2ц碘翔减麻工丁
'・山離£姉00m..伽iir事可йш^А而质端:奇就1 '
М№Г>ФОШЫМ И МНСГМ ДР^ГМ1 ' '二
毒&таа“ча»4* &№*0й
;8S:%
Рис. 2,40. Выбор стратегии разбиения жесткого диска на разделы
Fedora
■ Разбиение диска
Одним вд нмых 加川
LfM;:MC4l%.;‘
I препятствий для ноя■
GM Unux 叫:侑)Т-в^»Д» ‘ /Зя
「:•中,,9мдм*гиовмх p«呷rt* 器gkmajwutMWf.>мй«г*.
I ряэметка дисжа.Про1: ^^^. Ш^ЦммНь
:пройдет бол#е глпд^.проведении лвтомат^риОиания Д|«ка,
I Если ш выберите j■
I *»гомАтиче»ую put ■ вам не нужно будет ' ;иопйльэовагь Претр* ;рымотки дли нязнвченип
I точек ш)к:мрова^ийг i соадвнкя рвзаапоБ м ! раслрвДФления м寻ст白 для
一电10再蹄编一?丁尸: •卜讨^.「一山仁,
тдйсйМм*о)шйп^шйал砌gw* dor麻($ [.
гдыиим ВСВХДЛЙй№'Л
I*^而鼻I I血。н]
Здесь мы можем выбрать из двух вариантов — либо система сама разобьет на разделы жесткий диск, как это предусматривает политика создателей дистрибутива, либо мы это сделаем вручную, самостоятельно. Для понимания процесса разбиения диска выберем ручное разбиение диска. Поскольку опе^ рации с жестким диском могут привести к полной потере данных, нас страшно пугают л сообщают, что данные мотуг быть потеряны (рис. 2.41). Смело переходим в программу Disk Druid (рис* 2.42).
Будем самостоятельно разбивать жесткий диск на разделы. Для этого выбираем в списке жестких дисков нужный нам (в нашем случае это единственный диск) и нажимаем Создать. Появится окно, изображенное на рис. 2.43, Что мы здесь видим? Окно для ввода точки монтирования. Это список с уже заранее определенными точкам и ? но если вы не найдете нужной, то просто введите в этом поле ту, которая вам необходима. Далее, выбираем тип файловой системы ext3 и определяем размер дискового раздела. Вот что у нас получилось (рис. 2.44),
После разбиения диска появится экран, изображенный на рис. 245. Здесь настраивается загрузчик, его параметры и пароль.
Теперь приступаем к настройке некоторых параметров операционной системы, На рис. 2.46 мы видим форму для настройки нашего сетевого устройства. Здесь, в отличие от текстового режима, совмещено несколько параметр ров — сетевой адрес, имя компьютера. DNS и шлюз (рис. 2.47),
Следующий этап ——настройка брандмауэра и включение SELinux (рис. 2.48)* Далее выбор допалнительных языков, которые будут использоваться а системе, и задание языка интерфейса (рис. 2.49). Здесь все просто ——выбираем дополнительный и основной язык системы.
Теперь настроим время — мы должны выбрать часовую зону, в которой находимся (рис. 2,50). Выбор часового пояса привязан к определенным городам. Выбираем город-ориентир, можно просто щелкнуть на соответствующем городе на карте мира, и нажимаем ОК.
Сейчас мы должны ввести пароль пользователя root (рис. 2.51).
Внимание
root— суп ер пол ьзователь t аналогичный пользователю Администратор в Windows. Он может ВСЕ1 Поэтому очень рекомендую выбрать нормальный пароль, длиной 7 и более символов.
Наконец добрались до установки пакетов программного обеспечения (рис. 2.52). Здесь, в отличие от текстового варианта, можно, ломимо выбора группы пакетов, еще и выбирать пакеты внутри группы (рис, 2*53). Внизу списка есть варианты — Установить все и Минималы1ая установка.
Fedora
:Настройка
I разметки даска
Выверите, купв вы могите установить Fedora Jre.
i Если еы неэнаат^ кн*
! прочисти разн«псу диска или ■ вам нужн^ помощь по
i жпольз^ванмю
;инструментария для
'про^^дения разив тки
I вручную,白ВрвТКЮСЬК j документации
■ Если № Быбрапм
! affTOK8TM40CK;oe раэбиеннв
\ л иски ли ,нл *Я1 е-пибо_ .
[jB^pwThjanpi^
Fedora
! Настройй! ;разметки
.•:广 Xktlm« ДИСКМ■ b fdevJ址
CM.
■當冃咖* FtAiD/Tw
Ci обшнов прост р мегао
40(
蜀 [18”?尸炉*г* Емр^ч师ay rpynw 朋1 ■■
.1 噸产 I
Рис. 2・42> Программа Disk Druid
—Ml,
:Если вы
Пт“н l:b Fl二川亦
вам нужна mg мспользомни^
I JI “|也牝¥沪峭Т+广》“г ■ ■ r I— . —■
Есл* вы не ак# провести рв":Л?>,冲•^MtaWt
;автомятичесаде рв^и«ннв ^7^7;^Г ;.;二;;£ ;二:」j.「:
1丛产弋.十卢广*:丁4 с宀,.罚 D^Wb>TP^T** М^чит™"" rpym WM
Выберит», m口师屮东小
4045 MB VWnra. ZM* 耕+ \〃他印1 8
-инструмент вр^ 七 31rtto^作 **а1Pleти* 傾耽
I проведениям !一 . 一
: Ошшгг*маДд«тут1Е*праогрм^тш
J вр/чную+сбрв1 ■1 ,
I工先卄811 "球i i
Fedora
Настройка
разметки диска
Выбермге, куда &ы хотите ysBHQNKTb Fedora Core.
Если вы не знзатвь как
■ проенсти рйзмйТЕу диска или
-вам нужна помощь по ? ИСПСЛЬЭОМНМЮ
:инструмент арии дл^>
проведения раэмэтги вручную, обратитесь 工 документ вции.
гатрвйетм
]▼ /dwfwU
МнЫ^1
伸"力3
/dwAdd
ь |』$йэ4
/llEV/bdl^
Еслияш^ыбрвямS
0 втом вти чв сков роз Е&иен ие№
:. .{Илеки■.屮.照01日必门・、♦?♦7™:回
Fedora
Настройка
:начального
i загрузчика
/dtn/sdaC
or
<№М9 №Мыа
XlW
ФощиггГ:
Ркширмньл
E3
Тмк*жмМ RWT.
□ 5шт.決相喻亍噴ЯМ 汕誦Нем 丽М国М
Ркс. 2・44・ Разделы жесткого диска
эвгрутпк GRUB булат уетвИДЦЙнд謚;底и盡诂而二]
;По уиопчами» i уст вываливается аагруачик j операционной оистаны
GRUB. Если вы н4 хотите устанавливать GRUB, на.жмите кнопку Сменить
MTpyvMlL
Вы можете таюке выбрать, кекая ОС (^сли у вас Их н»сг<злько) должна загружаться по умолчанию. Поагэвьтв отметку По
艷 ・(й*н нктрви¥ь ,аф^мж дм мг>ужн 碑утих waMUw«utwc«wAttik 8ra воайн|йг «м*ЙЬ
矛吧值艇尸 tea* сАпфЛим *raiQ№m^a紙除修ку *Д0№нг 土 乂皿《Ивнп g ^^1^пм умолАпча, уат«найт« гйхмтр ・П”* 宙интГ лпя
«то* ОС.
歌.佈;謚瀛臓齧“『畸磁聲就[圈叩・J
两
Fedora Core Me*/s<kt6
巾编理* FMiWXpyawa眇叫нт戰 fvm
'ронокФтни ощ^ мру, Д«ув^^ 0Й№*№«п« ■'
j三册[产 20*呻!(re# ycgwr■.概*彳州:.у二•, 注二用勺押*旧呻宀5TF9 ;[變嬰师^^:卜,■
§ □ Йктрсмп дрйопштиьнм ntpM«t>twp¥»4Ma
恒函礴碉1£』成麺司
Fedora
Настройка сетиНастройка сети
Настройка сети
Настройка сети
Все сатавыа устройства, имеющиеся в систем,
итоматиче^хи №1р*д«л«ны программой уотачжх н посм^н в списка Отмы» устройстм>.
Чтобы настроить сетвшм усгройствс. сначала □тив-гьта его,,昼т@・ наямита Иммнитъ. На 叫>&н・ Пра・М хитерфейс* &ы смажете выбрать иопсльэомть IP ядр«с и вт.вую мшу| тпучвнхыа no DHCPh или м*от* их
Рис. 2.46. Настройка сети
Fedora
Все сетевые усгройстм, ■ хм42щиеея в cwr・“, в»79матически опред«яе < про<ршмоА устайами и I покоявны в списке С*т«* j устроАстм}.
;Настройка сети
g』逐二二:
I 1[1..1' A 1 11И V I Lt;
устройстао. сначала i DTMBibra «го, gTdM нах I Иэмемить. Нв экране ■ Прян** интерфейса вы 'сможете выбрать
^^^т
Чтобы настроить сетемм「: 麻*唸各理
;■ mg
I ислольющть IP «ЙР&СМ
:сетег^о мвсху, получвнныв ■ ло DHCP^ ипи в*асги их
Рис. 2.47* Настройка сетевого интерфейса
Fedora
Настройка брандмауэра
产 ^iw*H¥Bp *и«т mara^ янмк^аттй нейг«рнк«нмй ^ k ^UMM^MW^ 関k「卜bsg
6рАН口廿@^8Р (ОН Ж4 ft№W«ll) ноисоднтся между мш“ системой и сетью *
алределявт.к едким р«аурС*м Muwra к,・лъют0^а удаленный попьзоштелъ в^ети ножат иметь доступ. Грамотно настравнный браядывуэр сипьно повьпиавт бамльсностъ шшвй
еиат.нм
Выберите подходящий ^ля
L酵明《电勺餌以腦喫哮
Fedora
□ B«0««f)Mp (НИР. MTTPS1
□ Парадвча 4ч*"ов 问^
口 ПочтяыА w* (SMTP)
Т」||加1".|m1»M《№疗111 ^^Ю^* «6淞pei*J3p淞 х 敏Мнохцйh^巧:汕力谖「'
'■■У Е»^> ВмоГ№«ТЪflt Ч«мТриКЦИОННШ Ьпик ЙЙ0ТМм1 济* 聲 M*«t. нвтроЕ Е ■ .■^кмммвм лвтсняи, i
? Wm 1”М)申“曲р/ю面龜喚ИН*© Е МТ4 ДМЖИ0 j0Ы№ «апршмкк иди 曾 MMratwikMHaKHM баетикик
Рис. 2.48. Настройка брандмауэра
'Поддержка
дополнительных
языков
! Выбермтв цэык, гоюрый будет испспъ»в«тьсяя качестве bchqbmqfq яэыив системы послауст«но*кич Если g устдкадите поддержку нескольких авахт посп・ установки ьюжно б у дот сменить DCMOBHOH язык.
! Прсграмив установки ;ноаилмт установить ! поддержку ЕЕШИМ
B^teEfltfwtmift тк для агон 晔丁宀:| Eoj^^UW !*
加*m吋吁吧I"班晒
:毗 noizK^i^a:E@QiiiH4沁
Е2М|0гий7
Engfiih №nn»*j
En^ih (Geui Brim nJ
口 E*$h (Hong Копф
Eh^Mi DMH
□ Eng狂h/&鹏
口 E崛tth (New E«atan0
口 Ef4^$h {Р^к*пв)
匸】En^hGi仲pot}
[::诃心三-I
□ En^ih®mb^M«)
□ Esuni^n
口 Fawsc (Fmt Islands}
口 Rnnhh
□ Н₽*сИ,{ВЙ)Щ
jCTMtthM—.titiii
Рис. 2.49. Выбор дополнительных языков
4二,Г W“” 用м ; г".“У4二,Г W“” 用м ; г".“УВы мо*ет。прокрутить список географических назван на и выбрать нужную вреиенную^сну.Вы мо*ет。прокрутить список географических назван на и выбрать нужную вреиенную^сну.g№i^^^ 6»*4纱 к”g№i^^^ 6»*4纱 к”Евтги/UOKUQЕвтги/UOKUQ;“? ]|普巾紳@;“? ]|普巾紳@
4二,Г W“” 用м ; г".“У
4二,Г W“” 用м ; г".“У
Вы мо*ет。прокрутить список географических назван на и выбрать нужную вреиенную^сну.
Вы мо*ет。прокрутить список географических назван на и выбрать нужную вреиенную^сну.
g№i^^^ 6»*4纱 к”
g№i^^^ 6»*4纱 к”
Евтги/UOKUQ
Евтги/UOKUQ
;“? ]|普
巾紳@
;“? ]|普
巾紳@
Fedora
:8ы можете 1“*€ выбрать опцию Систвымые часы исгюлмуюг UTC WTJ е*е RWCTHoe квк Всемирное
Косрднмнрованное Врвмя. ■ поз налит сцстама корректно ■ обрабатывать ларялод на :лвтнвв^имнев время). ■ выберите эту опцию, вели ! вплвратмые часы I ]гстамовлвны пс UTC4 а не i установлены по ыветноыу i времени.
Рис, 2.50. Выбор часового пояса
Fedora
i Пароль
! пользователя root
:Испспмуйтв учвтн/ю запись I супврлопьэовйТвпя гапмо
I для адыинмстръфотмиЯь По
I эаяершвнии установи ;создайте вще одну, не ;вдм1лнистратмвнук>4 учвтнуп :запись для обычюй рийоты [и пользуетесь еснбндой su j - для работы а Евчестм
администратора, е<^и htgkq надо быстра исправить. Эта проста правило, м4лк>дйние которого падет i к минимуму ралийжмость
Рыс. 2・51・ Вводим пароль пользователя root
Fedora
I"一一…Г"
;Выбор групп:
;пакетов足卓
j Выбор группы ттаке т св彳
I (приложений^ клторыв вы
i хотите ycraHQBHib^ Что^ы. а
:отметить группу пакетов, ;
I щйлкиитв па квадратику,$ ■■■
jп назван
'Если группа отмгченн,/
i jmixhd нажать кнопку.
'Дополнительно для::
■ проомогрп. ыиие именно '
-пакеты установлены по;
умчпчвнию и добавь ^白浦
:удалить дополнит ель ныв :置; 』*膜屮.t^~«rr 9 mшппн」図 |^^Мя^й^[:上函向可 *1“;.
;Оконные менеджер к
门 Сжт**и X Window
M】
Устнмитв зу групп/ MK»TOBL чтобы ПОЛЕЧИТ* грО串…《скмй “нтарф4Йа попьзовмол。闵
□ Грйфичнкяц 0р«*в CNQME
强"】
CNQME - «то мощный графический мнгирфвйа пальзамтАлл, вуз* ипючвет лпмет^ рьбсмий пточ. систвмнш пне т аг рлнны и 俨中иумми^ лан<дм4р ф|йли.
PH】
К DE - Tro «оцмый грвфичоский кктарфвйс, >7 ・>t notbiW * авбя панель прнлохмни丸 р破W 川 с гоп, с метам ныв >hi-iui и гркфичаский кннщжар фай
□ XFCE
А I吋由H&ght desktop envlronmwn iW wwk^ Ц ал bow
ncwwif|pvw:ttMM
I
Рис. 2.52* выбор устанавливаемых групп пакетов программ
Fedora
飞1丁丁
Выбор Г|
di "“"MO ItCrUM N C L'fHJJlGl П .!巾”・屮 ”,T
пакетов
8 Mop группу (приложений},
ХОТИТЕ fCHBHI
Г|^ПЙЫ>ЙИГ1М|' wrr ммявт# & оМмг 崛g 涵& ш^ф^^й мммшмтк Oteung^g*1M^整 wa n响*中《福输*
ЬкНрив мй#«мгвйим«нпйммты дл* устенмкм:
⑵衿*d»er - Консольний клмнт
WwbDAV;
отметить груш;-] щелкните по к啮
рядим с йй ни
穹 eflnks ■ Тогстлый М«уз却 ИМ«рн・т
□ фс. м ммт 帆口 mt.
風 feichlDBH - УГИЛИТ1 ПрИ4М| и атприян ШМТЬЦ
Если гр/nne。1 можно нажать Дсгюпннтель1 просмотра, kqi пжмвты устано
■ < 门"га ■ Прогр*ым« проонвтра с границ WWW а твадтион ражими 爲 S muti • Почтоамй кпнвнт для гкешото режим
刃 П пс^р - VaoatfHirtHC тшанный FTP^k ли № тг
.J 厘 Nm - A ehrudid InteriHt new, гвшкг.
По&М* PUMPL VMM ,
I *др»и:
а
■ yg/w^HJo и к.;亠“.3;;“_._日 удалить депоггнитвльны«Ж
:^п«к RXZ М^СЕЛЙ~С0УЛДЫ* з 川…--:皿
•:包
门喃t即沁脸,家血:
Рис. 2*53. Выбор устанавливаемых пакетов программ
Fedora
Все готово к
i установке
;Предупреждение: Послй j н^жятий кнопки Д*лм :;програмца установки начнет :Записывать опсфацийнную ;систему на хваткий диск(и) и ;проиа^встнот*ewy6уА白т невоэмажно. Если вы решили к& праю водите ует&нмх 汽 то это паследнАй
;воэмажность для бваепйсмсга otitsaa от
押 таньвм
Чтобы пререат^ установку,
Fedora
Рис» 2Л4. Информационное окно инсталлятора
Все готово к
установке
Предупреждений: П4..:.' нажатий кнопки Дше \ ^ программа产m晔■u飞 эдписывшь опвр&цм^; оисгену на жесткий j
ПрОЮМСТЙОТЫвН^ fi<f ... . r невоаыожма. Если bJ - нз производить уита| то »то последняя ; В04Н0ЖНОС1 ь дл* Ё . бмопяснего отказа 舒"
;уствионки.
Е f^ ii ^гмгк-и у т I”,”;《и;. 1 wn *“”“、
"吋M
綬津s*iMfg^「
- ;c ':.
gЙ пр庐喇Й碱*微尊 施加*•时1п&nй m ■: ■ ммличня вй^«ч>фМ1Й^ЯИ№^ li^hM^ f ;累
ПФ**Гру**а?
^йЦ|фд^^(А
Й>й^тш*рм' ■ :疗却用1(賦№上 J* м^рЦШц^ь^:." 1
j Чтобы пр«рьать уатвиовк/, Ж
陵謚匈翼jBM^£z
Рис, 2.56. Установка пакетов
Fedora
Пбз/фмпятц ydvaht]4ta:stt«puM-
Удимта «о« н«иг4ли (цнемты или CD410HL катерн* иопвлы^мга^ при уетмоан, м нажмите ,Пере^?炒纯诉 п*р&|Гр w бм?мш.
|鏡竅翼沔呼望星“二」袈然/ё1
Рис. 2.58. Инсталляция в графическом режиме закончена
Получили окошко с сообщением, что полный протокол инсталляции операционной системы будет находиться в /root/instalklog (рис. 2.54). Нужная вещь для "разбора полетов", Также создается специальный файл для утилиты kickstart. Эта утилита предназначена для автоматической установки дистрибутива, что позволяет без ручного вмешательства, массово устанавливать систему на однотипные рабочие места.
После этого нам сообщают, какие диски необходимы для инсталляции, и, если вы вдруг испугались последствий, еще можно перегрузить компьютер, отказавшись от установки (рис. 2.55).
Во время инсталляции на экран выводится информация о том, какой пакет устанавливается в данный момент, его краткое описание и размер (рис. 2.56). В случае необходимости самостоятельно выдвинется лоток CD- ROM, и нам предложат вставить следующий диск и нажать ОК (рис, 2.57), После окончания нам выводится сообщение о том, что установка прошла успешно^ и предлагают перезагрузить компьютер (рис. 2.58).
Установка дистрибутива "вручную"
Этот вариант практически не отличается от предыдущих. Первая точка расхождения ——разбиение диска вручную. К сожалению, стратегии разбиения
диска сильно зависят от назначения сервера. А переиграть неудачное разбиение по прошествии времени не совсем тривиальная задача. Такое, к сожалению, случается, когда пытаются перепрофилировать сервер. Например, был сервер общего назначения, под каталог /var выделили 2 гёайт, его назначают FTP-сервером и оказывается, что под файлы нужно 20 Гбайт, а на этом разделе столько места нет. Также бывает5 что выделяют только один дисковый раздел. Но это чревато проблемами, когда какое-то приложение начинает отъедать дисковое пространство и не оставляет свободного места на диске.
Что обычно делают ——выделяют отдельный небольшой раздел (порядка 100 Мбайт) под /boot; под каталоги пользователей (/home) выделяют место, к примеру, из расчета 100 Мбайт на пользователя; под /tmp, в зависимости от задач, обычно хватает 500 Мбайт; под /var 30 Гбайт ——тут хранятся файлы FTP-сервера, HTTP-сервера и т. п*; под корневой каталог порядка 3—4 ГбаЙг
Если же вы собираетесь тщательно следить за сервером и использовать дисковые квоты t то можно сделать всего 2—3 раздела.
Вторая точка расхождения более существенная — это выбор устанавливаемого программного обеспечения. Здесь нужна внимательность. Нужно четко осознавать, для чего нужен тот или иной пакет, что мы хотим сделать на нашем сервере, возможные проблемы с безопасностью. На данном этапе будем устанавливать рабочую конфигурацию минимального размера, которая будет постепенно наращиваться и модернизироваться.
Далее будет рассмотрен графический вариант установки, и для каждого набора пакетов я буду приводить только оставляемые пакетьц с комментария* ми для чего и почему*
Итак, выбираем тип установки Выборочная (рис. 2.59). После этого мы опять проходим этап с настройкой брандмауэра, сетевой карты, DNS, загрузчика и, наконец, достигаем, собственно, окна выбора пакетов (рис* 2.60).
Как вы видите, пакеты разбиты на классы, в которых есть группы пакетов. Вот они:
口 Оконные менеджеры
Система X Window
Графическая среда GNOME
Графическая среда KDE
XFCE
口 Приложения
Редакторы
Научные и инженерные
Fedora
Тип установки
Выберите тип установки, который нвибомв полно саатмтствувт вашим потребностям.
Дврмймпшы* мнмытр
г:: ~7?^Лт.>«^кй^Ш<^^.Ш1^^
;/станошеа уничтожит всю
;ранее сохраненную
'ннфйрмаЕДИЮ На выбранных :разделах.
.Д^я получений балее
,подробней ЫнфорцицИЙ й рвмпкнках между классами
;уотановки обратитесь к
;舒0нк茫伝』
f耀窃学哂薰鱼整露F*.
::1Щ卩懒唸1询竺色电嘲*I遜堂耍J叫哈I *■^密1湧_
■ документаций,
I面£3/同,宙师 繭阂
Рис. 2.50. Выборочная инсталляция дистрибутива
Fedora
;Выбор групп
пакетов
* Выбор группы пакетов
i (приложений}, KDTOpblV Uri хотите #5*н◎酣ть. Чтсву :отметить группу лакетовь I и^лкнытв по квпддатику :рядом с ее киванием.
£,伸次 группа отмвчймвь
:иожна нажать кнопку :Дополнительно длл .лроаиотраг какие именно пакеты устшоалвны па
;умепчехню м добавить или 'удалить допапнит9льны«
彳.,3* 久ТМ№*.ат,А rnufiam.
К”ТЪ£ПРМКУ
:0кбнн貝т Ыен^джеры
□ Системе х window
R«]
Уствмнига му группу пногмр «тМн получить грвфмчккий **т«рф««в пбльмнатщ 因
□ Грйфнчпи 0吧* GHOME:
ГИ4]
GNOME • #то моцный гр*фич«зкий имгврф>)1а поъашт^ля, ито^ый юч*1 панель, мбочнт стол, актамньм пакгегрдимн и гр«фич«кий “нвдж«р фкйлы.
□ Грмфцы«к*я лрвда КОЕ
КОЕ • .та нощнья графиккмй иитарфМСн мппчашхй 7 Мл пвмпь припажаний^ рабочий о топ, ойсциные >н(чки и графичккмй h«mw«p фАЙПЯ.
□ КГС£
A (tghSweJtfhl Ssig environnw# Ihal w«ki wdl on low
Полный puH^i'XtbiM ;■
Графические средства Интернета
Текстовые средства Интернета
Офисные приложения
Звук и видео
Подготовка публикаций
Графика
Игры и развлечения
口 Серверы
Средства настройки сервера
Веб*сервер
Сервер электронной почты
Файловый сервер для Windows
Сервер DNS
Сервер FTP
Ваз* данных PostgreSQL
Ваза данных MySQL
Сервер новости
Сетевые серверы
Устаревшие сетевые серверы
О Программиршанне
Средства разработки
Разработка ПО для X
Разработка с использованием GNOME
Средства для разработки KDE
XFCE Software Development
口 Система
Средства администрирования
Системные средства
Поддержка печати
О Разное
Все
Минимальная конфигурация
Fedora
;;夕 «nd rnickanu.
:Выбор г|
e I-"№" ЙГ〕'"屮卄1七卩m
пакетов
! Выбор группы ;(при/1йж«ний;,
「》№^审35悔^^»e№^#1^№(«^ * J ・ ме^йг^й^. кшпамнтк Обмжгмыша mtftttMuttii к«гд# •ыбранм, «с пи анбряиа, грума
Выбрит* НМ0лит«№НМ ЧОЫПОМНГЫ ДМ уегшнвици:
1ОПОЛЗИТФЛЬН。
IOTHIS УС7ЦНО1
TWWhMW* MK4HV
отметин» груп
Еггло -Ткетпый редактор GNU Emars.
ЩЙЛКНЙТФ по
рядом С SB
К卜;£th . WHTflptf ХИНЫ督扌肛0,Hblt> РШКТ1У. ДОС;ЙТочно gccr吋 Я ИСПШ1Ь>СШ1
*£□ rudit - Гркфмчестий гкстяый рщактор с кнт“中** Motkf :^CJ vim XU ■ Ворсич рвдвктйра VIM дни X Wlmkw Systrm.
просмотра, koi ■;:
пл кеты устано
уиалч*нию м 凡
;удалить дополнитальньн
х. р#Е1ЫШ IVLaTnd-rrUflVlW.-^.-..
iU^HiMMia 圖;
,IflM'fiatieXbHS
Дополнитель^::,飞
Пойныкримр! ^19Ш
N бмнмп
П«мия puwtp: ^й^ОМ
;叨 vimenhancod - Дополненни мрсих ◎叫вятсра УМ ^С XErruci • Ткстс&ый радомт“ XEzc土
Если гр/ппв □!
:не*к。нежить
可 Е^ЁТ
I庭晶$前石];J迎發瀛li]
•I f jlMaAjI !► g№ I
Рис* 2*61* Быбор текстовых редакторов
Fedora
павдшуаинн ВЫПу(^4ШИ й^'Н'н'£Мф^
J Выбор г|
◊"*』"••* 'v;ni ty'KHt*fl「.口©必£;曾;「
пакетов
;Выбор группы ! (приложений}, :хотите тана
-T>|rrtM niere жм*ут M*«W ・ Н^ gB也t*«w^ тик н«Е«цй&■鹏ИЦ* 三 :^Wv^n* Окмтмькы»*вмм^мА wffAa.wepBHM. если кйФ^м ■ ■ rpjtwriiwaffo»,
:'вы^«ркт・ нмвнитмшк «МПОЙМТЫ 0 устшки:
^LJ'»3IA!'J'UH^>HiffpUFHH1flV^Etl№k'M-51RrnUL,Hpi№|HMv< tptfJi/tW:i|
J71 me - Фай поем к«нод*вр * шиуиьниг с<$амчк* с друж«егимнни иигврф^;
口тhdiитв rpyni ■,匸} *™^ ' MUti №ял?г Traffic Grapher
щвлкниТв no nj ^口■ ^р<згриив упрмпвнии сияиныин нкнтшнш* SCSL
計□ rwi-jnmjMirih -гпапцшщм using SNMP, XET5NMP 口
рядом C SB И&Х-j
.О пт» - Инс труивнт анмих» с >ти и ск янер бвзогчсност к nmip-frartend ■ Ok4 Гн nmap.
idOjdPrt - Ичлруыект, звпускяющнй 吋вринш нв ннртуапь^юй конгапи<1
[оползиTaftnH^ '
••IkiuiIW 皿岫;
:Белы группа di ;ыожно нажать :Дополнителы
МЗ#»*0£Ец 七
,ярррматрв, ни, ---
пакеты устам或:
j умолчвниюидЬЛ;!
i удалить дополнктальные
L пдк^ thi.Mi 鼻扌〃叫 Fvnnx^- * *
ПотпАрммйр: *СТЫ
Теперь пройдемся по классам. В классе Оконные менеджеры мы ничего не выбираем, поскольку на нашем сервере нам не нужны графические системы и оболочки.
Класс Приложения. Тут из всего добра нас интересует только раздел Редакторы, в котором мы выберем программы joe и vim (рис, 2.61).
Классы Серверы, Программирование ——здесь мы ничего не устанавливаем. Как уже говорилось ранее, все службы мы будем устанавливать по мере необходимости, а по поводу протраммирования — на сервере небезопасно устанавливать компиляторы, производить компиляцию и отладку программ.
Класс Система, Здесь нас интересует раздел Системные средства (рис. 2.62).
Единственный пакет, который я рекомендую установить, — это тс (от Midnight Commander). Файловый менеджер наподобие Norton Commander или FAR. Достаточно удобный менеджер для людей, не привыкших к командной строке.
Итого у нас получился полный размер инсталляции 613 Мбайт, На самом деле, если вдумчиво после инсталляции поработать, то вполне можно уменьшить объем еще на 100—200 Мбайь но при современных емкостях жестких дисков это уже не принципиально.
Резюме
В этой главе мы рассмотрели, различные варианты инсталляции дистрибутив ва, выяснили, чем они отличаются друг от друга, и произвели инсталляцию нашего сервера в минимальной конфигурации, а так же произвели первичную настройку сетевых параметров. В дальнейшем мы будем наращивать функциональность нашего сервера. Кстати5 процесс инсталляции дистрибутива “вручную” занял порядка 20—25 минут.
Глава 3
Настройка разделяемого
коммутируемого модемного соединения для общего сетевого пользования
В этой главе мы настроим модемное соединение и организуем доступ ло* калькой сети в Интернет, произведем конфигурирование брандмауэра для защиты нашей локальной сети, произведем установку и настройку DNS- сервера.
Подключение к Интернету
После установки сервера нужно заняться делом ——сервер не самоцель, а всего лишь инструмент. Сначала мы идем к бухгалтеру и просим денег на внешний модем, подключаемый к последовательному порту. Почему именно такой модем? Почему не внутренний, не внешний USB?
Давайте разберемся, какие вообще бывают модемы для коммутируемого соединения, их достоинства и недостатки.
Внешние модемы
Внешние модемы делятся на два класса:
□ модемы, подключаемые к последовательному порту;
口 модемы, подключаемые к USB.
Рассмотрим достоинства и недостатки внешних модемов.
Модемы, подключаемые к последовательному порту
Пожалуй, самое старое и соответственно самое обкатанное решение. Модем подключается к компьютеру по последовательному интерфейсу (RS-232),
Содержит в себе аппаратный обработчик сигналов, выполненный на микропроцессоре. Плюсы такого модема:
口 внешнее исполнение. При необходимости очень просто и быстро можно снять модем с одного компьютера и перебросить его на другой;
口 стандартизация. Модем даже самый 1фнавороченныйи можно запустить, не тратя время на установку драйверов и их настройку. При этом, возмож^ но5 мы теряем какие-то специфические функции модема (например, го、 лосовые функции или АОН% но благодаря стандартизации, мы можем очень быстро сменить один модем на другой;
口 индикация. Только во внешних устройствах в наличии такая чудесная вещь, кам индикация. Благодаря ей мы можем видеть, что творится с модемом ——он передает, принимает или вообще завис.
Минусы, большие и не очень:
口 использует устаревший последовательный интерфейс (с точки зрения Intel). В современных материнских платах есть только один последовательный порт, а в скорости и его не будет;
口 внешний блок питания. Потребуется дополнительная розетка.
Модемы, подключаемые к USB
Все, что было сказано по поводу модемов, подключаемых к последовательному порту, можно смело отнести и к модемам, подключаемым к USB. В плюсы можно добавить компактность модема и отсутствие у многих модификаций блока питания (питание берется прямо из USB-разъема). А вот по поводу минусов, он есть, один, но достаточно большой ——для USB- модемов нет единого драйвера, и это осложняет жизнь. Возможен вариант, что для какой-то конкретной модели модема драйвера для Linux нет, либо он реализован частично. Помимо этого, за USB-модемами многих производителей замечена ошибка в работе ——периодически система теряет соединение, и для исправления этой ситуации, зачастую, приходится руками отсоединять модем и заново подключать к компьютеру.
Внутренние модемы
Внутренние модемы можно разделить по реализации математической обработки сигнала и по интерфейсам подключения модемов, В общем случае, внутренние модемы делятся на две категории —— аппаратные (hardware) и программные (soft или win) модемы Первые — полные аналоги внешнего модема, за исключением того, что они реализованы в ваде плат расширения. Второй тип —— порождение подхода ''экономика должна быть экономной".
I Актоматический определитель номера.
Принцип следующий: процессоры нынче мощные, а давайте нею математику модема переложим на них. Благодаря этому модем удешевился, например, дешевые китайские модемы в розницу можно купить за 10—12 долларов. Однако такой подход плохо работает в странах СНГ ——наши телефонные станции/линии зачастую не дают нормально работать внешним вездеходам" за сотню долларов, куда уж тягаться с ними дешевым soft- модемам. Далее, поскольку вся обработка сигналов ложится на центральный процессор, то необходимо достаточно мощное аппаратное обеспечение. До последнего времени производители таких модемов выпускали драйверы только для Windows, однако большинство моделей уже имеют драйверы и для Linux.
Интерфейсы внутренних модемов:
ISA. Сильна устаревший интерфейс, который не используется более 5 лет. Однако еще есть вероятность столкнуться с этим ичудом'\ По возможно^ ста откажитесь от использования модема с таким интерфейсом;
口 PCI. Подавляющее большинство внутренних модемов производится с PCI-интерфейсом и почти все — soft-модемы. Использовать можно только в том случае, если есть драйверы под Linux для этого модема и у вас цифровая АТС с хорошей линией;
AMR* Модемы с таким интерфейсом сложно назвать модемом вообще. От модема остались только блок развязки линии и наборное реле, все остальное ——программная часть. Мне не удалось заставить работать ни одного AMR-модем а, ни под Windows, ни под Linux. От такого варианта следует категорически отказаться.
Определились ——берем внешний последовательный модем. Следующий шаг, зарегистрироваться у какого-то провайдера н приступить к настройке модемного соединения.
Большинство провайдеров при подключении выдают инструкцию по на- сгройке модемного соелинения. Так же почти все провайдеры предостанляют электронный почтовый адрес с размером почтового ящика в 5—20 Мбайт. Об этом палее, по ходу настройки модемного соединения, пока же скажу, что большинство провайдеров работают по PPP-протоколу и настройки, DNS и ]Р-адрес, для пользователя выдаются динамически, в процессе установки соединения.
Настройка модемного соединения
Модем распакован, сервер выключен. Подключаем модем к последовательному порту кабелем, включаем его и затем включаем сервер. В Linux/UNIX последовательный порт нмеет имя вида ttySx, где х — цифра. Таким образом, ttySO соответствует в DOS/Windows СОМ!, ttySl — COM2, ttyS2 — COM3, t£yS3 — COM4. Во время старта операционной системы будет обна-
ружено новое устройство, и Linux произведет необходимые настройки самостоятельно.
Связь с провайдером
Для подключения локальной сети к Интернету с помощью модема обычно используют двз варианта. Первый из них предназначен для тех, кто платит за трафик, а второй используется теми, кто оплачивает время.
В первом случае выход в Интернет осуществляется с помощью стандартного для Linux набора программ — pppd, chat к, возможно^ еще нескольких дополнительных сценариев. Происходит это следующим образом ——вначале маршрутизатор дозванивается до провайдера и устанавливает с ним связь по PPP-протоколу. После установления соединения полученным каналом может пользоааться любой компьютер в нашей локальной сети* Канал удерживается до тех пор, пока не выключится маршрутизатор или администратор явным образом не разорвет соединение-
Второй вариант — модификация первого,日 англоязычной литературе он носит название dial on demand (звонок по требованию). Для его организации дополнительно используется программа diald, с помощью которой можно организовать работу таким образом, что если в течение заранее обусловленного времени не происходит обмена данными между локальной сетью и Интернетом, то diald разрывает соединение. При первой же попытке пользователе подключиться к внешним ресурсам, diald снова дозванивается и устанавливает связь.
Схема организации подключения локальной сети
Ниже приведены требования, которым должно удовлетворять подключение локальной сети к Интернету.
П Возможность доступа в Интернет — модем, телефонный номер и подключение к провайдеру.
口 Набор программ для организации саязи — pppd, chat и diald.
Средство для управления брандмауэром — утилиты ipchains или iptables (эта утилита считается устаревшей, но поддержка в ядре все еще остается).
Теперь, когда цели и средства известны, можно приступать к установке и настройке программ- Для проверки, установлены ли необходимые нам программы в системе, нужно выполнить следующее:
rpm -qi ppp
грт -qi diald
Если такой пакет установлен в системе, то мы получим краткую информацию о нем ——имя, версию, когда установлен* к какой группе программ он
относится, название RPM-пакета и краткое пояснение, для чего он необходим. Если пакет не установлен, то мы получим об этом сообщение, В нашем случае отсутствует diald. В дистрибутиве его тоже нет. Что делать? Идем на сайт www.altUnux.nl, заходим в раздел Sisyphus и в строке поиска набираем diald. В результате мы получим ссылку на пакет diald-к0-ак4^гс*грт в исходных кодах. Если нам лень собирать приложение самостоятельно, идем на сайт www.rpmseek.c0in и в параметрах поиска указываем, что RPM мы хотим для Fedora Core и Red Hat. В результате получим ссылку на diald-0,99.1- 2,i386.rpm. Скачиваем и производим установку командой:
Еп -i diald.-0.99.1-2* i306 *rpm
Настройка связи с провайдером
Настроим подсистему дозвона и соединения с провайдером. Для удобства разобьем работу на два этапа:
L Настройка РРР-соединения.
2. Установка и конфигурирование демона дозвона по требованию (diald).
Для организации связи между провайдером н клиентом необходимо получить данные от провайдера, условно представленные в табл. 3.1.
Таблица 3•工 Необходимые данные для настройки модемного соединения
Необходимые данные
Значения в примере
Имя пользователя (login)
myname
Пароль пользователя (password}
test
IP-адрес пользователя (если есть)
192.168.110.100
IP-адрес DNS“c叩вера
192.168. m
Процесс установления связи между вами и провайдером состоит из следующих этапов:
口 соединения с компьютером провайдера с помощью модема;
口 регистрации пользователя в удаленной системе;
установки РРР-соединения.
Ддя решения этих задач в Linux используется небольшой набор сценариев, каждый из которых выполняет какую-то небольшую функцию. При этом никто не мешает на их базе определить именно те действия, которые необходимы вам при установлении или обрыве соединения.
Размещение сценариев зависит от настройки и предпочтений используемого дистрибутива, В Fedora Core (Red Hat) используются два варианта ——каталог /etc/ррр и /etc/sysconfig/network-scripis. Наименования сценариев могут быть
произвольными и очень часто зависят от предпочтений сборщика дистрибутива или системного администратора.
Для нашего случая будем считать, что у нас есть следующие файлы:
П /eic/ppp/chap-secreis — этот файл используется для аутентификации пользователя провайдером по протоколу CHAP. Обычно содержит имя и пароль пользователя для входа к провайдеру. В нашем случае это будет выглядеть следующим образом: myname * test
口 /etc/ppp/pap-secrets — этот файл используется для аутентификации пользователя провайдером по протоколу РАР+ Обычно содержит имя и пароль пользователя для входа к провайдеру. В нашем случае это будет выгля^ деть следующим образом: myname * test
/etc/ppp/ip-up — данный сценарий используется для соединения с провайдером. Зачастую этот файл содержит только следующую строку: /usr/sbiп/pppd
Здесь можно настроить установление модемом соединения с провайдером или вызвать необходимый сценарий или программу;
/etc/ррр/ip-down — этот файл используется для разрыва соединения с провайдером;
/etc/ppp/options ——это самый сложный и ответственный файл. Он определяет параметры нашего модема, скорость передачи по последовательному интерфейсу данных, настройки программы pppd и некоторые другие параметры. Обычно файл /etc/ppp/options оставляют неизменным, а для конфигурирования параметров соединения создают копию файла с именем /etc/ppp/opiions.itySX, где tiySX — имя последовательного пор- тат к которому подключен наш модем*
Рассмотрим содержимое /etc/ppp/opttons+ttySO (модем подключен к С0М1). 甘 Устройство /dev/ttySQ # Скорость 115200 rnru 1500 # наш интерфейс : удаленный интерфейс 192.168.110 ЛОО 1192.168.110.101 件 маска подсети netmask 255.255.255,0 bsdcomp 0 chap-interval 15
debug
crtscts
defaultroute
Первые две строки определяют последовательный порт, к которому подключен наш модем, и скорость, на которой будет происходить обмен между модемом и последовательным портом*
Далее обратите внимание на строку со следующим содержимым: 19? . 168.110.100: 192 .168. но, 201. Эта строка определяет IP-адреса нашего поел едо вате л ьного интерфейса и провайдера. Такую строку необходимо добавить, если провайдер выдал нам постоянный IP-адрес, также в этом случае необходимо задать маску подсети.
Поскольку наш компьютер является маршрутизатором для локальной сети, необходимо настроить маршрутизацию. Для этого воспользуйтесь программой route и идущей с ней документацией. В том случае (а мы предположили, что точка подключения к провайдеру у нас одна) если у вас одно подключение к провайдеру, то можно в конец файла вписать команду detauitroute, что позволит вам добавить маршрут в системную таблицу маршрутизации, используя удаленную сторону как шлюз.
Команды pppd
Далее мы рассмотрим основные команды программы pppd (табл. 3.2),
Таблица 3.2 Основные команды программы pppd
Команда
Описание
Asyncmap 0
Async-карта символов — 32-bit hex; каждый бит — сим* вол, который надо представить в виде escape- последовательности, чтобы pppd мог его принять
Auth
Требует от удаленной стороны назвать себя перед тем, как начнется обмен пакетами
bsdeomp 0
Определяет использование сжатия передаваемого трафика. На обычном модемном соединении не используется, позволяет в некоторых случаях почти в два раза увеличить количество передаваемых данных за единицу времени
chap-interval мн-
T 巳рвзк
Определяет, что pppd будет заново вызывать удаленную сторону каждые интервал секунд
chap-restart интервал
Устанавливает интервал рестарта CHAP (пауза воэоб* новления передам challenges) в интервал секунд
chap-max-challenge значение
Устанавливает максимальное число передач CHAP challenge
connect <叩门门0占出取旨>
Определяет программу для установки соединения
Таблица 3.2 (продолжение)
Команда
Описвнме
Crtscts
Предписывает использовать аппаратное управление потоком данных для управления потоком данных на последовательном порту
Debug
Предписывает увеличить уровень отладки. Если эта опция естьа pppd будет записывать в журнал все прибывшие 11 отправленные пакеты в понятной для человека форме. Пакеты регистрируются в лог-файлах через syslog. Эта инфорг^ация может быть перенаправлена в файл соответствующей установкой /etc/syslog.conf
disconnect
<программа>
domain ймя_домена ipcp-inax-configure зна tjewwe
Предписывает запустить данную программу после того, как pppd завершил связь
Добавляет имя домена к имени машины
Устанавливает максимальное число передач IPCP (internet Protocol Control Protocol, протокол управления протоколом IP) configure-request
ipcp-max-terminate
6 на 4reh財白
ipcp^max^failure
значение
Устанавливает максимальное число передач IPCP tenriinate-request
Устанавливает максимальное число IPCP configiire-NAK} возвращенных перед началом отправки вместо configure-Rejects
ipcp-restart интервал
Local
Устанавливает интервал перезапуска 1РСР в интервал секунд
Предгилсыеает не использовать линии управления модемом
Lock
Предписывает, что pppd должен использовать замок в стиле UUCP для последовательного устройства
Login
Предписывает использовать базу данных паролей для идентфикации удаленной стороны
Modem
Предписывает использовать линии управлен|ля модемом
mru увело
Устанавливает значение MRU (Maximum Receive Uni% максимально принимаемый пакет) в число. При догово* ренности pppd запросит удаленную сторону отправлять пакеты не более чем по число байт. Минимальное значение MRU — 128. Значение MRU по умолнанмю — 1500, Для медленных соединений рекомендуется 296(40 байт для заголовка TCP/IP плюс 256 байт данных)
mtn число
Устанавливает значение MTU (Maximum Transmit Unit- максимально передаваемый пакет) в число. Пока другая сторона не попросит меньшее значение при договоре о MRU, pppd будет требовать у сетевого кода ядра отправлять пакеты данных не болев чем по число байт через сетевой интерфейс РРР
Таблица М2 (продолжение)
Команда
Описание
паше имя_машины Hoduth
Устанавливает имя машины (для аутентификации)
Не требует удаленную сторону назвать себя перед тем, как начнется обмен пакетами
noipdefalut
Запрещает поведение по умолчанию, когда не указан локальный IP-адрес, которое определяет локальный 1Р= адрес по мм®нм хоста. С этой опцией удаленная сторона должна обеспечить локальный IP-адрес в течение IPCP- переговоров (если она не определена явно в командной строке или в файле options)
pap-restart
интервал
pap-max-authreq значение
Устанавливает интервал возобновления передачи РАР в интервал СВКукд
Устанавливает максимальное число передач РАР authenticate-request (запросов на аутентис|>икацию по протоколу РАР)
passive
Разрешить опцию "passive1F в LCP, С этой опцией pppd будет пытаться инициировать соединение, а если ответ от другой стороны не принят, то pppd будет пассивно ожидать правильный LCP-пакет от другой стороны вместо выхода
silent
С этой опцией pppd не будет передавать LCP-лакеты для инициации соединения, пока не придет правильный LCP- пакет от другой стороны
user
Устанавливает ммн пользователя для аутентификации этой машины на другой стороне, используя РАР- Нельзя использовать вместе с паше
xonxoff
Предписывает использовать программное управление потоком данных для управления потоком данных на последовательном порту
+ch 白 p
+pap
-all
Двусторонняя СНАР-аутентйфикация
Двусторонняя РАР-аутентификация
Не разрешает договариваться о любых опциях LCP и 1РСР
-chap
-d
Запрещает договариваться о asyncmap
Предписывает отказаться от сИар-аутентификацми
Устанавливает уровень отладки. Если эта опция есть, pppd будет записывать в журнал все прибывшие и отправленные пакеты в понятной для человека форме. Пакеты регистрируются в журнале через syslog. Эта мн- формация может быть перенаправлена в файл соответствующей установкой /etc/syslog.conf
Таблица 3.2 (окончание)
Команда
Описание
-detach
Предписывает не переходьгть в фоновый режим
-ip
Предписывает не договариваться об IP-адресе
-mru
Запрещает договариваться о MRU
BP
Предписывает отказаться от РАР-аутентификации
-pc
Запрещает сжатие полей протокола
Как видите, параметров много и для полного понимания вопроса необходимо изучить документацию.
Настройка diald
Чтобы лучше понять то, что мы будем делать дальше, немного о принципе работы программы diald. Программа создает соединение на псевдотерминале и устанавливает маршрутизацию на получившийся интерфейс. После этого она начинает отслеживать пакеты, проходящие по виртуальному каналу. Если кто-то пытается выйти в Интернет, diald перехватывает данные, анализирует их и на основе правил, определяемых ад ми н истратором, присваивает им определенные тайм-ауты. Далее пакеты отправляются по назначению, а тайм-ауты заносятся в так называемый набор соединения. Как только в наборе появляется первый тайм-аут, diald начинает дозваниваться до провайдера и пытается установить соединение, в случае успеха демон переустанавливает маршрутизацию на реальный канал. Таким образом, связь с внешним миром оказывается установленной.
Набор соединения постоянно обновляется — истекшие тайм-ауты удаляются, новьге поступают. И так продолжается пока, по какой-либо причине, передача данных не прекратится. Тайм-аутов в наборе становится все меньше и меньше, и когда последний из них оканчивается, diald разрывает связь. Теперь перейдем непосредственно к конфигурированию. Этот процесс состоит из трех частей:
создание сценария соединения — файл /etc/diald/connect;
настройка основной конфигурации —— файл /etc/diald.conf;
настройка правил тайм-аутов ——файл /etc/diald/standard.filter.
Создание сценария соединения: /etc/diald/connect
Для организации сеанса связи необходимо выполнить несколько действий: дозвониться по телефону до поставщика услуг, пройти процедуру авторизации и запустить PPP-соединение. Поскольку у разных провайдеров этот
процесс может коренным образом отличаться, то не имеет смысла встраивать эту процедуру в программу. Вместо этого используется внешний сценарий, описывающий процедуру соединения. Для этого достаточно подпра* вить тот сценарий, который входит в стандартную поставку diald. Ниже приведен вариант /etc/diald/connect.
#!/bin/sh
NHT=”ATZ" # Строка инициализации модема РНВЕ=”2223322**# Телефон провайдера
ACCOUNT^ rrmynaweн# имя учетной записи
PASSWORD= н test"# пароль
# Определяем функцию для посылки # сообщений в системный журнал # и в FIFO-канал dimld function message (} [$FIFO ] && echo Mmessage $*" >$FIFO logger -p loca!2,info -t connect ” 甘 Начинаем процедуру связи # Иници ашэируем модем message и *** initializing Modem ***" chat "“ $INIT ОК "" if [ S? != О ] then
message ”!!! Failed to initialise modem !1!B exit 1 fi 件 Пытаемся дозвониться message 计*** Dialing system ***” chat * ABORT 11Ж CARRIER" \ ABORT BUSY \ ABORT "NO DIALTQNE" \ ABORT ERROR \ "” ATDTSPHONE % CONNECT h" case $? Ln 0) message ”*** Connected
message *!I! Chat Error !!!"; exit 1;;
message * I!I Chat Script Error ! ! !"; exit 1;『
message "!!! Chat Timeout ! ! !"; exit 1;;
message "III No Carrier ! !!"; exit 1;;
message "!!! Busy ! ! !" ; exit 1;;
fi) message h1!1 No DialTone !ll"; exit 1;;
7} message "!!! Modem Error ! ! 1" ; exit 1;;
*} esac
# Прохошм авторизацию
message "*** Send login and password ***■
chat \
login: $ACCOUNT \
password: $PASSWORDTIMEOUT 5 ""
if [ $? 1= 0 ] then
inesscige " ! ! ! Failed to send ! i !"
exit 1
# Все проишо удачно!
inessage "*** Protocol started "
Вышеприведенный листинг ——просто сценарий на языке командной оболоч^ ки, который вам необходимо немного адаптировать для наших параметров.
Настройка основной конфигурации: /etc/dlaldxonf
/etc/dialdxonf ——основной конфигурационный файл программы diald, в котором задаются параметры устанавливаемого соединения и определяется поведение программы. Набор команд конфигурации у diald достаточно об- ширент поэтому в приведенном примере будут использованы только необходимые, а подробную информацию по конфигурационным командам можно посмотреть в документации на программу diald.
Содержимое файла diald.conf:
Протокол для связи с провайдером mode ppp
Вести журнал сеансов связи diald*log
accounting-log /var/log/diald.log
Для управления демоном иэ внешних nporpaw
организовать канал FIFO — diald.ctl»
fifo /etc/diald/diaid*ctl
Для дозвона использовать файл /etc/diald/connect
connect /etc/diald/connect
Далее несколько командf описывающих применяемый модем
Поскольку мы уже определили параметры в /etc/ppp/options(
то нижеприведеиные команды необходимо закомментировать во избежание
конфликтов б файле /etc/ррр/options
device /dev/modem
speed 115200
modem
lock
crtscts
Назначаем локальный и удаленный адреса нашего
соединения. Если прм связи с провайдером IP-адрес
для вас выделяется динамически, то здесь можно
поставить лю^ле свободные адреса из диапазона,
оговоренного при настройке нашей TCP/IP-сети.
При запуске PPP diald сам выставит корректные значения
local 192,168,110.100
remote 192.168.110.101
Провайдер дает нам динамичесьсий IP dynamic
Установить маршрут по умолчанию
на виртуальное соединение defaultroute
ft Максимальное количество неудачных попыток дозвона
dial-fail-limit 10
Задержка между попытками дозвона
redi al-1imeout 5
время ожидания завершения сценария connect
connect-1 imeou t 120
Файл с правилами для тайм-аутов include /etc/diald/standard,filter
Настройка правил тайм-аутов: /etc/diald/standard.fliter
Следующее, что вы должны сделать — произвести настройку правил таймаутов, Это самый сложный момент настройки diald, так как требует знания внутренней структуры IP-пакетов- Однако разработчики diald позаботились о пользователях, и стандартный файл standard.filter имеет вполне приемлемые для большинства случаев настройки. Оставив в нем все? как ест瓦 мы получим набор правил, рассчитанный на трехминутную паузу между окончанием активности в Интернете и разрывам связи с провайдером.
Комплексное тестирование
После проделанных манипуляций настало время проверить ——правильно ли настроены наши программы. Для этого на компьютере желательно временно отключить все настройки брандмауэра (если вы, конечно, установили его). Затем необходимо запустить программу diald и попытаться выйти в т'боль- шой мир". Можно использовать браузер lynx (и зайти, например, на сайт www.bhv^ru), можно — программу ping.
Если все было настроено корректно, то после ввода предыдущей команды модем должен начать дозваниваться до провайдера. Через некоторое время связь будет установлена. Однако практически всегда lynx выдает сообщение о том, что не может соединиться с удаленным сервером! В данном случае — это нормальное явление. Дело в том, что при PPP-соединении с динамическими IP-адресами в силу определенных особенностей первый пакет обычно бывает утерян и не доходит до адресата. В результате мы ждем ответа от сервера, а он об этом и не подозревает. Достаточно повторить введенную ранее команду, чтобы все заработало.
Далее нам необходимо убедиться? что модем аккуратно разорвет соединение по прошествии трех минут. Дождавшись конца загрузки web-страницы, засечем время. Примерно через три минуты diald должен разорвать соединение. Если у вас все прошло именно таким образом, значит, система работает как надо. В противном случае проанализируйте последние строки системного журнала (/var/log/messages).
Указанными действиями мы проверили корректную работу только с нашего сервера. Для того чтобы проверить, что все работает правильно, попробуем повторить описанную процедуру и на других компьютерах сети. Реакция diald должна быть аналогичной. Если что-то пошло не так, проверьте корректность настройки протокола TCP/IP на машине» в частности —— настройки сетевого шлюза, которые должны указывать на наш сервер.
Настройка маршрутизатора
На самом маршрутизаторе (это наш сервер, если кто-то еще не понял) мы должны в таблицу маршрутизации прописать, что все, что приходит из нашей локальной сети и не вписывается в адреса локальной сети необходимо отсылать на наше внешнее устройство* Ключевое слово для всего этого хозяйства NAT (Network Address Translate, преобразование сетевых адресов) и masquerading (маскарадинг). Что же нам нужно сделать? Сначала необходимо убедиться, что 丹 ядре включена поддержка маршрутизации IP-пакетов. Проверить это можно следующей командой:
cat /proc / sys /net/ ipv4 7 ip_forward
если вы полнили 0, то маршрутизация выключена. Для включения нужно выполнить команду:
echo 1 >/proc/sys/net/ipv4/ip_forward
Включается маскарадинг в iptables очень просто:
iptables -A FORWARD -s 192.168,0.0/24 -j ACCEPT
iptables -A FORWARD V 192,168.0.0/24 -j ACCEPT
И, наконец:
iptables ~t nat -A POSTROUTING -o pppO -s 192.168.0.0/24 -j MASQUERADE
Эти команды разрешают компьютерам локальной сети выходить в Интернет,
Однако, если вы помните, во время инсталляции, при настройке брандмауэра, мы запретили практически все. Теперь пришел черед разрешать. Для того чтобы внутренние компьютеры могли ходить на web-серверы (80 порт), нам необходимо выполнить следующую команду:
IPTABLES -A INPUT --protocol tcp --dport 80 -j ACCEPT
IPTABLES 亠A INPUT --protocol ssh --dport 22 -j ACCEPT
Вторая команда разрешает использование SSH (22 порт). Таким образом, если вы хотите разрешить доступ, к примеру, к почтовому серверу, вам нужно задать соответствующее правило, указав протокол и используемый порт. Возможно вам это покажется трудоемким, на каждый чих лезть на сервер и прописывать разрешающее правило, но зато вы будете уверены, что к вам или от вас поступает только ограниченный и контролируемый вами трафик.
Кэшируюший DNS-сервер
DNS —— это доменная система имен. DNS преобразует символическое имя в IP-адрес и наоборот. Для чего это нужно? Человеку лепге запомнить нечто осмысленное, например wwwxheckitnow.ru, чем 213J62J45.242, а дл貝 компьютера проще передать 4 байта адреса, чем 50—60 байт имени.
DNS-сервер представляет собой базу данных, в которой хранится соответствие символического имени IP-адресу, В сети существуют десятки тысяч DNS-сернеров, которые обмениваются между собой информацией. DNS — это иерархическая система. Вершина записывается как I” (точка) и произносится как root (корень), В корне существует некоторое количество доменов верхнего уровня (Top Level Domains, TLDs)} наиболее известньлми из которых являются orgs com, edu, gov, mil, net, ru, ua и т. п.
При поиске машины запрос обрабатывается рекурсивно, начиная с корня. Чтобы найти адрес машины moshkin.bins.ru, DNS-сервер проверяет свою
базу. Если в базе не оказалось нужной нам записи» то отправляется запрос на корневой сервер, который выдает список DNS-серверов, обслуживающих домен ги. Далее отправляется запрос (адрес выбирается по определенному алгоритму или берется первый в полученном списке), чтобы узнать, какие DNS-серверы обслуживают зону bins*ru. Затем узнается IP-адрес хоста mosh kin.bins.m. А чтобы в следующий раз не повторять этот поиск, полученную пару пимя-1Р-адрест, наш DNS-сервер сохраняет в своей базе данных.
При обратной задаче, по IP-адресу узнать символическое имя,——опять используется DNS-сервер. Для этих целей сушествует псевдодомен in-addnarpa и в нем точно так же прописываются адреса, только порядок следования цифр обратный. Например, для адреса 213.162.145,242 запрос получится как к 242」45」62.213・in-addr・arp&, а схема поиска ответа остается такая же.
По своим функциональным обязанностям различают два вида DNS^ серверов:
П кэширующий DNS-cepeep, который йспользуется для локального хранения запрошенных пользователем пар т,имя-1Р-адресч, что при интенсивном общении со многими web-серверами позволяет экономить время на запросах* Кэширующий DNS-сервер не отвечает на внешние запросы;
П обычный DNS-cepeep — это полнофункциональный сервер, позволяющий по лучать, передавать и синхронизировать данные с другими DNS-cepBepaMH*
Настройка сетевых параметров
Поскольку DNS-сервер очень сильно завязан на всю сетевую инфраструктуру, его работоспособность зависит от правильной конфигурации сети. В современных дистрибутивах, если вы выбрали соответствующий тип установки, конфигурирование производится автоматически* Однако разработчик дистрибутива рассчитывает на абстрактную среднестатистическую систему, которой, как показывает практика, не существует. Поэтому следует убедиться, что с сетевыми настройками у вас все в порядке, вследствие чего рассмотрим основные файлы, отвечающие за конфигурацию сети.
Файл hostconf
Этот файл предназначен для того, чтобы система могла определить^ каким образом она будет получать информацию об именах и 1Р'йдресах. Следующая запись в файле hostxonf означает, что при поиске хостов сначала произойдет обращение к /etc/hosts, а только потом к DNS-серверу:
order hosts,bind
Запись должна быть именно такая, поскольку возможен случай, что по какой-либо причине нет доступа к DNS-серверу (например, он еще не запушен), а уже есть необходимость воспользоваться сетью.
Файл /etc/hosts
В этом файле должны находиться пары и1Р-адрес~имя":
.0.0.1 localhost localhost.localdonain
192,16В.0.1 user
192.16S,0Л user2
Причем обязательно должна присутствовать следующая строка:
.0.0.1 localhost localhost.loaaldomain
Этот файл позволяет делать преобразование "имя-1Р-адреси без обращений к DNS-серверу, что обычно используется в небольших локальных сетях.
Файл /ete/resolv.conf
В этом файле должны находиться строки, подобные приведенным ниже: search lazy.ru
nameserver 213.166.195.22
В строке, которая начинается со слова search, указывается, какое доменное имя будет принято по умолчанию. Так, если вы напишете useri5 то система сразу попытается обратиться к компьютеру userl .lazy.ru. После search можно указывать несколько имен. В следующей строчке указываются адреса DNS* серверов (обычно провайдера), к которым будет обращаться ваша машина.
Установка DNS-сервера
Нам необходимо проверить наличие следующих пакетов: bind и bind-utils. Как это делается, вы уже знаете — с помощью команды rpm -qi имя пакета. Если эти пакеты не найдены] то ищем их сперва на дисках с дистрибутивом (для Fedora Core 3 они находятся на первом диске), и устанавливаем команд ДОЙ rpm -i имя пакета*
Настройка кэширующего DNS-сервера
Кэширующий DNS-сервер предназначен для нахождения пары *'имя-1Р- адрес*' в своей базе или на других серверах и сохранения пары у себя в базе. При этом он сконфигурирован таким образом, что только принимает данные извне сети, но не отдает информацию наружу. Такого типа серверы используются для уменьшения времени ожидания ответа и рекомендуются при медленном соединении или в том случае, когда внешний DNS-сервер перегружен- Рассмотрим конфи гура ни он н ы е файлы.
Файл /etc/namedxonf
Это основной конфигурационный файл DNS-сервера, в нашем случае он должен содержать следующие строки: options {
directory H/var/nainedlh ;
zone ".,f {
type hint;
file Hroot,hints0;
zone "0・0.127.in-addr.nrpa" { type master; £ile n127,0.0"г
Строка directory указывает bind, в каком каталоге искать файлы. Все файлы, используемые впоследствии, будут иметь путь относительно этого каталога.
Строка zone flo.o.i27.in-addr.arpa4 показывает, что bind также отвечает за обратную зону для подсети 127*,*.*, является в ней мастером5 и файл описания зоны — 127.0*0.
Секция zone ”самая важная. Она описывает, в каком файле лежат адреса корневых DNS-серверов, которые отвечают за зоны первого уровня.
Файл, названный /var/named/root,hints, должен находиться в указанном каталоге и содержать приблизительно следующую информацию:
NS
G. ROOT-SERVERS .NET.
NS
J,ROOT-SERVERS.NET.
NS
К .ROOT-SERVERS. NET.
HS
L * ROOT- SERVERS, NET.
NS
M. HOOT-SERVERS-NET*
NS
A. RCXJT-SERVERS. NET.
NS
H. ROOT-SERVERS . NET *
MS
В.ROOT-SERVERS.NET.
NS
C. ROOT-SERVERS . NET.
NS
D・ ROOT-SERVERS.NET.
KS
E,R8T— SERVERS. NET,
6D
N ^ N ^ N N 工 工 工 工 工 工 D D D □ D D 6 6 6 6 6 6
NNN N 工工 工 工 D D D D 6 6 6 6
6D IK NSF.ROOT-SERVERS.NET.
G. ROOT亠SERVERS . NET.
5w6dl6h IN A192 *112.36*4
J. ROOT-SERVERS, NET ・
5w6dl6h IN A198.41.0.10
К .ROOT-SERVERS .NET.
5w6dl6h IN А 193.0Л4.129
L . ROOT-SERVERS. NET.
5w6dl6h IN A198.32.64.12
M. ROOT-SERVERS. NET.
5w6dl6h IK A202Л2.27.33
A, ROOT,gERVERg .WET .
5w6dl6h IN A198.41.0.4
H. ROOT-SERVERS . NET •
5%8dI6h IN A128.63-2.53
B.ROOT-SERVERS .NET .
5w6dl6h IK A128.9.0.107
C . ROOT,SERVERS .NET .
5w6dl6h 工® A192.33.4+12
D. ROOT-SERVERS . NET.
5w6dl6h IN A128.8.10.90
E, ROOT-SERVERS .NET .
5w6dl6h TN A192.203.23 0 Д0
I .RCXJT-SERVERS.NET,
5w6dl6h IN A192.36.14S.17
F , ROOT - SERVERS . NET +
5w6dl6h IN A192.5.5.241
Этот файл описывает
имена корневых серверов имен по всему миру. Их
список периодически изменяется. Поэтому данный файл необходимо время от времени корректировать.
Для получения файла root.liints существует по меньшей мере два пути: либо забрать его по FTP с сервера internic, либо выполнить команду:
dig @rs, intemic .net * ns >root,hints
Файл /etc/127.0.0
127.0.0 一 это файл, который отвечает за преобразование TP-адресов в символические имена. Файл 127.0,0 должен выглядеть следующим образом:
INSOA ns.lnzy.ru. hostmaster.lazy.ru k (
1;Serial
BH;Refresh
2H;Ketry
1W;Expire
1口);MiniinumTTL
工N
1
NSns,lazy,ru.
PTRlocalhost,
Эта запись обозначает следующее:
□ @ указывает^ что описываем сами себя;
口 описываемая зона поддерживается сервером с именем ns. 1агу .ru;
口 отвечает за нее администратор, доступный по адресу hostmaster@iazy. ru (первая точка заменяет @);
口 у зоны серийный номер равен 1 (обычно для него используют дату по следней правки зоны — на него опираются другие серверы, которые получают информацию с нашего сервера);
口 другие серверы будут обновлять информацию о нашем сервере с периодичностью в в часов;
при неудачном обновлении следующая попытка будет произведена через 2 часа;
口 зона будет считаться содержащей недостоверную информацию, если не обновится через 1 неделю;
но не менее чем через т день;
口 строка in ns ns.iazy.ru, показывает, что авторитетным сервером для этой зоны является ns.iazy^ru,, и именно ему надо рассылать обновления зоны ns * lazy. ru;
口 строка 1 ptr localhost, показывает, что хост с адресом 1 в зоне 127 ,о.о< имеет имя localhost.
Запуск named
После правки конфигурационных файлов можно запускать сервер. Наберите /etc/init .d/named start без опций и нажмите клавишу <Enter>. Затем запускаем программу nslookup:
$ nslookup
Default Server: localhost
Address:127.0.0,1
Если вы увидели нечто похожее на мониторе — система работает. Каждый раз» когда вы изменяете файл namedxonf, необходимо перезапустить named, используя команду /etc/init.d/named restart. Теперь проверимкак функционирует наш кэширующий сервер, для этого введем:
a us总rl*ya.ru
Server: 213,166.195*22
Address: 213.166.195 ・ 22
Kame: userl.ya.ru
Address: 213,166,195,55
При этом программа nslookup попросила наш DNS-сервер посмотреть информацию о данном хосте. У себя сервер этой информации не нашел, а нашел у DNS-сервера провайдера, который имеет IP-адрес 213.166.19522.
Если вы повторно попросите узнать адрес компьютера userl.ya.ш, то получите такой ответ:
> uaerl,ya.ru
Server: localhost
Address: 127 *0.0,1
Non-authari tat ive answer t
Name: userl,ya*ru
Address: 213.166 ・195,55
В ЭТОТ раз ВЫ получили сообщение Non-^uthoritative answer. Это значит, что во второй раз запрос к внешним DNS-серверам не делался, а был про- изяеден поиск в кэше. Поскольку вы увидели это сообщение, наш кэширующий DNS-сервер нормально функционирует. Получив положительный результат, можно завершить работу программы nslookup, дав команду exit.
Глава 4
Установка Apache и Webmin
В этой главе описывается установка и использование двух пакетов ——web- сервера Apache и системы удаленного администрирования с web-интерфейсом Webmiii. Их использование даст вам возможность быстро, не особо вникая в тонкости, конфигурировать сервер, находясь за любым компьютером в нашей сети» а в перспективе ——в любой точке земного шара, где есть Интернет,
Web-сервер Apache
В качестве web-сервсра в UNIX сообществе в основном используется Apache, который распространяется по лицензии GNU+ По статистическим данным более половины всех web^cepuepoB в Интернет создана на базе Apache. У него очень много лостоинств — он кроссплатформенный, мощный и легкий в настройке.
В качестве шьтернативы для Linux-платформы можно использовать TUX, который тесно интегрирован с ядром Linux, что позволило резко увеличить количество обрабатываемых запросов за елннииу времени. Однако у зго『о сервера есть несколько минусов, в том числе:
口 работает только под Linux;
口 неотлаженный код;*
мало дополнительных возможностей, по сравнению с Apache.
Конфигурация
Установка web-сервера д,чя дистрибутивов, использующих RPM-пакеты, стандартна ——необходимо найти нужнын пакет и произнеси! установку сервера командой:
Конфигурирование сервера достаточно сложно — несколько сотен команд и параметров, некоторые крайне редко используются. Однако для нашего случая достаточно немного поправить стандартную конфигурацию сервера. Поэтому далее я просто опишу, что и где мы правим для запуска Webmin.
工 Примечание 二
После настройки необходимо, чтобы сервер перечитал конфигурационные файлы, это происходит либо при запуске, либо при получении сигнала -HUP млн -USR1. Если Apache находится а работе, то при изменении конфигурации его рекомендуетсп перезапустить командой kill -usri, поскольку при таком перезапуске сервер昌 текущие соединенип завершаютсп обычным образом, а новые клиенты будут работать ужв с новыми конфигурационными файлами.
Конфигурация сервера задается в файлах httpd.conf, srmxonf, access.conf и .htaccess. Файл httpd.conf предназначен для общей настройки, srnixonf содержит описание доступных рес^сов, a accessxonf — права доступа к ресурсам. Однако в современных версиях сервера любая директива конфигурации может лежать в любом из этих файлов. Сейчас de facto все директивы конфигурации содержатся в файле httpdxonf
Некоторые модули могут иметь свои отдельные файлы конфигурации (например, rnod_charset требует файлы, хранящие таблицы перекодировки).
Файл access.conf
В access.conf содержатся директивы, описывающие права доступа к каталогам и файлам web-сервера* Обычно создается каталог /www/< и мя_сервера>/, потому что при такой организации проще ориентироваться в структуре файлов.
Файл access.conf содержит секции Directory, Location И Files, которые ограничены одноименными директивами. В их параметрах могут использоваться символы ”?" и ”** а также регулярные выражения, предваряемые тильдой ”~”. В секции Directory помещаются инструкции, относящиеся к определенному каталогу на диске, в секции Location — относящиеся к виртуальному пути, в секции Files ——относящиеся к файлу или группе файлов. Например:
<Directory /ww/rocm * m>
学 директивы, относящиеся ко всем документам, 乂ранящимся в # каталоге /www/room*ru и вложенных в него
</Directory>
<Location /cgi-bin>
# директивы, относящиеся ко всем документам, доступным по
用 адресу http:// <имя сервера > / eg i ~ bi п / <пу т ь_к_фай л у > </Location>
<Files /vn^/room.ru/form,htin>
директивы, относящиеся к файлу form.htm из каталога # /ww/rocm,ru
</Files>
Различие между секциями Directory И Location состоит в том, что первая относится к каталогам на диске, вггорая — к виртуальному пути (URL, Uniform Resource Locator)} который браузер запрашивает у web-сервера. И в той, и в другой могут присутствовать директивы order, allow и deny, которые позволяют ограничить доступ к каталогу или URL с различных машин.
При отсутствии специальных требований к безопасности можно указать options ан в секции <Directory /ww>, иначе нужно описать параметры каждого каталога отдельно.
Приведем пример файла accessxonf:
# access.conf — Apache HTTP server configuration file
^Directory />
Options FoilowSymLinks
AllowOvexride None
</Directory>
<Directory /www>
Cptions All
AllowOverride All order allow, deny allow frm all </Directory>
Файл srm.conf
Файл srni.conf содержит директивы, связанные с общими настройками структуры каталогов сервера. Обычно они не изменяются.
Файл httpd.conf
Конфигурационный файл httpd.conf является основным и содержит настройки, связанные с работой web-сервера, виртуальных серверов, а также
всех его программных модулей. Кроме того, именно в нем настраивается перекодирование русских букв при передаче от сервера к клиенту и обратно. Далее я приведу урезанный конфитурационный файл с краткими пояснениями*
Файл условно разбит на 3 секции. Первая секция начинается следующим комментарием:
## Section 1: Global Environment
The directives in this section affect the overall operation of Apache# # such as the number of concurrent requests it can handle or where it # can find its configuration files.
ServerRoot h /etc/httpd1'
Эта директива показывает, где находятся конфигурационные файлы сервера.
Timeout 120
Время тайм-аута в секундах. Обычно этого значения вполне достаточно для нормального функционирования сервера.
Listen ВО
Показывает, что сервер слушает 80 порт. При желании, можно задать еще IP-адрес, например, 192.168.0,1:80. А можно задать несколько портов млн адресов, которые слушает сервер.
Здесь описываются загружаемые модули. Модулей много и, возможно, не все они нужны вам.
Секция номер 2. Основные конфигурационные параметры сервера.
## Section 2: 'Main1 server configuration #
The directives in this section set up the values used by the 'main1
serverf which responds to any requests that aren1t handled by a
<VirtualHost> definition. These values also provide defaults for
any <VirtualHost> containers you may define later in the file.
All of these directives may appear inside <VirtualHost> containers,
in which case these default settings will be overridden for the
virtual host being defined.
User apache
Group apache
Директивы user и Group задают пользователя, от имени которого запускается web-сервер. Без особой нужды менять их нет необходимости*
ServerAdmin root&localhost
Эта директива определяет адрес администратора web-сервера, на который пользователи Moiyr отсылать электронные письма. Этот адрес в большинстве случаея будет отображаться на страницах с сообщениями об ошибках.
DocumentRoot r,/var/www/htmlH
Параметр определяет каталог, где находятся HTML-документы, отображаемые web-сервером.
AccessFileKFame ,htaccess
Параметр определяет имя файла} в котором можно дополнительно описать каталоги4 к которым имеют/не имеют доступ пользователи web-сервера*
ErrorLog logs/error_log
Задает файл, пае будут сохраняться все сообщения об ошибках сервера.
## Section 3: Virtual Hosts
VirtualHost : If you want to maintain multiple domains/hostnames on your
machine you can setup VirtualHost containers for them* Most
con f igura t i ons
use only name-based virtual hosts so the server doesnf t need to worry
about
IP addressee. This is indicated by the asterisks in the directives #below.
Секция 3 предназначена для конфигурации виртуальных хостов. Эта секция нам не нужна, поскольку у нас только один web-адрес.
Как видите, на данном этапе менять* практически, ничего не надо, В дальнейшем, нам, конечно, придется кое-что изменить в настройках.
Webmin
Здесь мы рассмотрим систему администрирования с web-интерфейсом, которая очень понравится начинающему администратору. Достоинством этого решения являются графический интерфейс, собранные в одном месте настройки всего, что есть в системе, модульность (что позволяет убрать ненужное и добавить необходимое), достаточно простое управление системой и, наконец, доступ к системе с любого компьютера, подключенного к локальной сети или Интернет. Минусами этого решения являются: графический интерфейс, собранные в одном месте настройки всего, что есть в системе, доступ к системе с любого компьютера, подключенного к локальной сети или Интернет. Противоречие? На самом деле нет и вот почему.
Графический интерфейс ——это красиво, здорово и удобно. Но* поскольку Webmin рассчитан на удаленное администрирование^ то, например, ночью из дома на модемном соединении достаточно неприятно тянуть 2Q—30 Кбайт картинок для каждой страницы. Но не это главное — проблема графического интерфейса в подмене понятий и снижении порога знаний. Казалось бы хорошо, но не для всех случаев. Простейший пример ——web-сервер вышел из строя (соответственно Webmin не работает), и чтобы что-то поправить в настройках, нужно, во-первых, знать, что и где посмотреть, чтобы определиться, в чем проблема. А во-вторых, знать, что и где подкрутить, чтобы все заработало как нужно. К сожалению, постоянная работа с графическим интерфейсом таких знаний вам не даст*
Доступ к системе из Интернета. Казалось бы, здорово^ можно сидя дома, в интернет-клубе или в аэропорту оперативно посмотреть, что делается на сервере, поправить что-то или настроить. Но для того, чтобы сервер не взломали, нужно приложить огромные усилия. И ведь нет гарантии, что в интернет-клубе нет сканера клавиатуры, благодаря которому пароль администратора окажется у неизвестного через 20 минут.
По-видимому, исходя из минусов системы, разработчики дистрибутива не включили пакет Webmin в дистрибутив Fedora Соге> поэтому мы идем
на www.webminxom и скачиваем пакет прямо в виде RPM. После этого в командной строке выполняем следующую команду:
rjcn -i wetrnin-1»190»1,noarch, rpm
предупреждение: wetmin-1.190-1 tnoarch.rpn: подпись DSA VS: NOKEY, key ID Ilf63c51
Operating system is Redh^t Linux Fedora 3
Wehmin Install corp士e七吕* Ycu can now login to https: //localhost .localdcmain: 10000/ as root with your root password.
Пакет успешно установился и подсказал нам* что для того, чтобы получить доступ к Webmin ка локальном компьютере} необходимо в браузере зайти на страницу по адресу localhosblOOOO. По умолчанию, после установки» к Webmin можно подключиться с любого компьютера, что мы и сделаем (рис. 4」). Мы должны ввести имя и пароль пользователя, которому разрешен доступ к Webmin* После инсталляции это пользователь root. В дальнейшем, при конфигурации пакета, можно поменять пользователя или разрешить доступ сразу нескольким пользователям.
Рис. 4.1* Страница ввода имени и пароля пользователя
Страница Webmln
После ввода пароля мы попадаем на страницу конфигурации Webmin (рис. 4.2). Как вы видите, система изначально англоязычная. Ничего страшного, заходим в Change Language and Theme и выбираем нужный нам язык (рис. 4.3). Здесь же можно поменять оформление всей системы.
Далее следует страница конфигурации Webmin (рис, 4.4). Пойдем по порядку.
Журнал действий Webmin. Позволяет записывать действия, осуществляемые пользователями, указывать, для каких пользователей вести запись действий, для каких модулей, в какое время производить запись (рис. 4.5).
Настройка Usermtn. Usermin ——это пакет от тех же разработчиков, предна* значенный для работы с учетными записями. Поскольку мы не устанавливали Usennin, то нам собственно нечего делать в этом модуле.
Рис. 4.2. Страница конфигурации Webmin
Рис. 4・3. Страница конфигурации языка интерфейса Webmin
Рис. 4.4. Страница конфигурации Webmin на русском языке
Рис* 4.5. Страница конфигурации журнала действий
Настройка Webmln
Как видите, возможностей по конфигурированию прилично (рис. 4,6), Я не буду подробно описывать каждую возможность, остановлюсь только на основных моментах.
Управление доступом по IP. Здесь мн можем (и должны) ограничить доступ к Webniin определенным набором IP-адресов, с которых могут подключаться пользователи (рис. 4.7). Сразу после установки нет ограничений на доступ по IP-адресу. На рисунке видно, что я ограничил доступ нашей локальной сетью (192.168.0,0) и локалъйой машиной (127,0,0.1)
Внешний вид. Здесь мы настраиваем внешний вид Webmin (рис. 4.8). Можно поменять цвет ссылок^ рамок и тому подобного.
Список категорий. Здесь мы можем переименовать или удалить категории Webmin, задать свою категорию, которую можно наполнить своими модулями (рис. 45).
File Locking. Здесь можно задать запрет для конкурентного изменения несколькими процессами файлов и каталогов. Обычно это необходимо только для некоторых, специфических файлов.
Рис_ 4.6. Страница Настройка Webmin
Рис. 4.7* Страница Управление доступом по !Р
Рис* 4*10> Страница Порт и адрес
Рис. 4.11. Страница Модули Webmin
4 3良к 1500
Порт н адрес. Эта страница — еще один способ взять под контроль доступ к Webmin (рис. 4.10). Если система имеет несколько сетевых интерфейсов, можно указать, по какому сетевому интерфейсу и какому порту будет осуществляться доступ.
Модули Webmin. Тут можно установить дополнительные модули Webmin, которые мы можем иметь в виде файлов^ скачать из Интернета по НТТР- или FTP-протоколам (рис. 4.11), Так же можно сделать копию существующего модуля, для того чтобы изменить некоторые настройки (например, у нас несколько DSL-модемов), И, конечно же, удалить ненужные модули и их копии.
Обновление Webmin, Как понятно из названия, здесь можно настроить автоматическое обновление Webmin (рис. 4.12). Или обновить вручную» с сохранением всех настроек. Можно проверить и установить модули, которые были изменены с момента последнего обновления.
Темы Webmin. Здесь можно поменять оформление Webmin, как из списка тем, присутствующих в системе, так и новых, которые есть у вас в виде файла или которые можно загрузить из Интернета.
Шифрование SSL. Здесь можно настроить SSL (Secure Sockets Layer, слой безопасных соединений), правда, только в том случае, если используемый браузер поддерживает эту возможность и настроен для работы с SSL.
Журнал. Здесь настраивается журнал событий Webmin — ведутся записи по действиям пользователей, отслеживается работа с модулями (рис. 4」3).
Операционная система и переменные окружения. На этой странице Webmin можно указать, какой дистрибутив используется (рис, 4.14). Это позволяет правильно отслеживать пути к исполняемым файлам и переменным окружения.
Аутентификация. Эта страница ——еще один рубеж зашиты. Здесь мы определяем задержку между вводом пароля, количество попыток ввода пароля, время бездействия, по истечении которого произойдет автоматическое отключение м многое другое (рис. 4.15).
Проверка ссылок. Здесь можно включить проверку — не выставлен ли адрес сервера с запущенным Webmin где-нибудь в Интернете.
Авторизация по сертификатам. Здесь можно настроить авторизацию по сертификатам SSL. Для этого необходимо настроить на web-сервере поддержку SSL.
Прокси-сервер. Если у вас нет прямого выхода в Интернет, здесь можно указать прокси-серверы, через которые осуществляется доступ. Это необходимо в том случае, если вы используете скачивание файлов Webmin из Ин* тернета.
Язык. Здесь определяем язык вывода информации и кодовую страницу.
Рис. 4Л2. Страница Обновление Webmin
ки!1ехифихнеллу епинвахо *fit'fr ри&
нинэжА<1э1о anKHowodeu и ewexotio кннноипебаио eHnnediQ,&卜'» •口%
Рис. 4.16* Страница Категории модулей
Категории модулей. В этом окне отображаются все модули, установленные в Webmin и к какой категории эти модули относятся (рис. 4」6). Здесь можно переместить модули из одной категории в другую.
Анонимный доступ. Этим не рекомендуется пользоваться. Здесь можно определить, какие модули, от имени как можно запускать БЕЗ авторизации. Необходимо крайне осторожно пользоваться этой возможностью.
Пользователи Webmin, Здесь можно определить, какие пользователи могут получить доступ к Webmin.
Серверы Webmin. Используется в том случаи если у вас несколько систем под управлением Webmin.
Страница Система
На этой странице сгруппированы модули, отвечающие за систему в целом. Внешний вид этой страницы представлен на рис. 4.17.
Рис, 4.17, Страница Система
Модулей очень много, но почти все необходимы в работе администратора. Рассмотрим их.
Backup Configurations Files. Этот модуль позволяет сохранить или восстановить конфигурационные файлы модулей Webmin, Как локально, так и по сети.
Дисковые квоты. Этот модуль позволяет управлять дисковыми квотами пользователей. Поскольку мн не предполагаем использования квот, то этот модуль нам не нужен
Пароли. В этом модуле мы, во-первых, видим всех пользователей системы5 а во-вторых, можем изменить их пароли.
Расписание заданий. Это web-интерфейс к команде at. Здесь мы можем задать пользователя, от имени которого выполняется команда, задать саму команду и время, когда ее нужно выполнить (рис. 4」8).
Системный журнал. Этот модуль позволяет нам управлять ведением систем^ ных журналов (рис. 4.19). Разрешить или запретить ведение журналов^ указать, какие сообщения туда записывать5 место размещения журналов и тому подобные вещи.
Рис. 4.1Вь Страница Расписание заданий
LDAP Users and Groups. Этот модуль предназначен иля работы с системой LDAP (Light Weight Directory Access Protocol, облегченный протокол службы каталогов),
Загрузка и завершение работы системы. Здесь определяется, какие сценарии выполняются при старте и завершении работы системы (рис. 4.20)* С помощью этого модуля можно создать новый сценарий, запустить либо остановить выбранные сценарии, переключить уровень выполнения системы, перегрузить ее, либо вообще завершить ее работу.
Пользователи и группы. Этот модуль предназначен для управления пользователями (рис, 4.21) и группами (рис* 4.22) компьютера. Здесь можно добавить, изменить информацию или удалить пользователя или группу.
Расписание заданий Сгоп. Этот модуль предназначен для управления системой Cron ——выполнение заданий по определенному расписанию (рис. 4,23).
Страницы руководства. Этот модуль позволяет производить поиск в различных системах документации, находящихся на этом компьютере (рис. 4.24}・ Незаменимая вещь, если вы подзабыли параметры команды или тонкости настройки системы.
Log File Rotation. Система управления ротацией файлов журналов. Можно определить, с какой периодичностъю архивируют файлы журналов, когда удаляются старые журналы и т- п.
Менеджер ПО, Этот модуль отвечает за установку и удаление программных пакетов (рис. 4.25). С его помощью можно производить поиск установленных пакетов по имени, установить новое приложение из файла, либо скачав из Интернета, можно определить, к какому пакету принадлежит файл с именем, введенным в соответствующее поле формы*
А можно просмотреть дерево пакетов (рис. 4.26) и посмотреть описание выбранного вами пакета (рис. 4.27}+
Процесс инициализации (init). С помощью этого модуля можно покопаться в init-файле системы (рис. 4,28). Вам вряд ли понадобится туда залазить, но знать о такой возможности необходимо.
Резервное копирование. Если вы установили в своей системе специальные пакеты резервного копирования, с помощью этого модуля можно будет ими управлять.
Файловые системы. Этот модуль позволяет подключать и отключать тома, настраивать их для а вта мати чес кого подключения, а также показывает уже подключенные файловые системы (рис. 4.29).
Аутентификация РАМ. Этот модуль позволяет работать с модулями аутентификации РАМ (Pluggable Authentication Modules).
Монитор служб MON. Если в системе установлен специальный монитор служб, то именно этот модуль позволит вам его настроить.
同刊9丄口53 и</э1еао£А1Гои " I%’》,о*&
ганва^ио mxoged ^инатбевсс и вхеАМве вйинвбхэ *。胃・》"n^d
SO*uiujqo^ и wpBd炉 wwohbi勿
Рис. 4.23. Страница Расписание заданий Cron
I^UiS,
3 шЪпЩ M WKtfWWVHh if LHm 4м«м l^hi№
A OHLJ wJtebvf p>k A KU^ * W^h^ *Ml
A № C^IV"*^ 1137 mMt гн^шЕШ *5IW,
胃 д*мп*Д_1Л1_ 14
營 itHtfiTTilTI ■ 4»a■:1区乜| Kt ШЦ2 H HLM11 安wu” H 皿jMfciH BBuLUti И ・М12Ч1Т N maj^
A ftAMMwl щ*5 JVO 11mHl z
A0MJ нгЪбй^^пртк
Пг^пш * Zhh. If М ЦТ4fli ll№ntl Мц
Plta*0*H*V|t*^ ・t0[WM|ttNM№
Рис. 4.26. Дерево установленных пакетов
инс1чвюио инпвои-^еф эинеьгавсЮд '6C*fr ・gd
иИПвсииеиШини eooenodи wx^od丄qbh 'flZ'fr ・》忆
Рис. 4.31 • Управление процессом системы
Процессы, Здесь можно посмотреть запущенные процессы в системе, узнать информацию по использованию памяти системы, загрузке процессора (рис, 430).
Если мы выберем какой-то процесс, то мы увидим всю его подноготную —— размер, приоритет, имя владельца, время выполнения. Сможем управлять процессом, поднимать и опускать приоритет, посылать специальные сигналы либо вообще завершить процесс (рис. 4.31).
Система безопасности. Этот модуль предназначен для работы со следующими системами безопасности — portsentry, hostsentry или lagcheck.
Службы
Этот раздел посвящен упраядению разнообразными сетевыми службами» используемыми в системе (рис. 4.32). Как и в других разделах, здесь устанавливаются все модули пакета> даже если такой службы нет в системе.
Frox FTP Proxy. Модуль управления службой переадресации РТР^запросов.
Рис. 4.32. Управление службами системы
Wd>alizer Logfile Analisys. Модуль управления службой анализов журналов Apache (рис. 4.33). Если она у вас установлена, то вы можете здесь настраивать ее параметры.
Настройка Postfix. Модуль настройки почтовой службы.
Сборцщк почты FetdimML Специальный модуль, позволяющий пользователям автоматически забирать свою почту с нескольких внешние почтовых ящикоб и перенаправлять ее в один локальный почтовый ящик.
Сервер OpenSLF, Open Service Location Protocol — система^ информирующая клиентов об имеющихся службах.
Сервер баз данных MySQL. Этот модуль предназначен для управления сервером БД MySQL и работе с существующими базами данных (рис. 4.34).
Read User Mail. С помощью этого модуля можно получить доступ ко всем почтовым ящикам пользователей компьютера, на котором устанонлен Webmin (рис, 4.35).
Веб-сервер Apache. Модуль для управления web-сервером Apache. Здесь присутствуют настройки на все случаи жизни — какие адреса слушать, по каким портам работать, создание виртуальных серверов, установка корневых каталогов, ограничений и к п.
Настройки QMail. Модуль для настройки почтовой системы QMail.
Сервер CVS. Модуль для настройки системы контроля версий (CVS, Concurrent Version System). Обычно используются разработчиками программного обеспечения*
Сервер ProFTP* Модуль управления FTP-сервером.
Сервер баз данных Pos^reSQL. Модуль дая управления мощным сервером БД PostgreSQL.
SpamAssassin Mail Filter. Модуль для настройки службы для борьбы со спамом* Настроек достаточно много, а внешний вид страницы изображен на рис. 4.36.
Конфигурация Sendmail. Модуль конфигурирования МТА (Mail Transfer Agent, почтовый агент) службы Sendmail (рис. 4.37). Эта служба по праву считается одной из самых сложных в настройке^ и разработчики Webmin постарались облегчить жизнь системному администратору.
Почтовый фильтр Procmail. Модуль для работы с ProcmaiL
Сервер DHCP. Модуль для работы с DHCP-сервером- Настройкой этого сервера мы займемся чуть позже.
Сервер SSH. Этот модуль позволяет произвести настройку SSH-сервера (рис. 438).
Сервер сообщений Jabber. Модуль для настройки сервера мгновенных сообщений Jabber. Интересный аналог ICQ, позволяющий организовать в своей локальной сети систему обмена мгновенными сообщениями.
Рис* 4.33. Анализатор журналов Webalizer
Рис. 4.34. Управление сервером MySQL и базами данных
Рис. 4.35. Почтовые ящики пользователей
Рис. 4.37, Настройка Sendmail
Рис. 4Л9. Настройка прокси-сервера Squid
Squid Analysis Report Generator Модуль управления SARG. Анализатор журналов для прокси-сервера Squid. Результаты выводятся в виде графиков и цифровых данных, которые можно посмотреть через web-интерфейс.
Менеджер списков рассылки Majordomo. Majordomo ——система рассылок почтовых сообщений для подписанных абонентов. Позволяет вести список рассылок, список абонентов, формировать сообщения рассылки, отправлять их немедленно, через какое-то время. Можно настроить отправку серии сообщений в определенные интервалы.
Прокси*сервер Squid. Модуль управления прокси-сервером (рис. 4.39). О нем мы поговорим несколько позже.
Сервер WU-FTP, Модуль управления еще одним FTP-сервером.
Файл-сервер Samba. С помощью этого модуля можно настроить Samba, который позволяет организовать доступ к дисковым ресурсам и принтерам сервера для компьютеров, работающих под управлением операционной системы Windows.
Сеть
Этот раздел посвящен управлению сетью, сетевыми устройствами, защитой и ограничениями сетевых соединений (рис. 4.40). Как и в других разделах, здесь устананливаются все модули пакета, даже если такой службы нет в системе,
ADSL Client. Модуль, предназначенный для конфигурации ADSL- соединений (если таковые вообще есть).
Kerberos5. Конфигурирование сервера сетевой аутентификации.
Sharewall Firewall. Модуль для управления брандмауэром ShorewalL
Межсетевой экран (firewall)^ Модуль для управления брандмауэром, использующим возможности ядра операционной системы Linux и пакета iptables (рис. 4.41)* Позволяет добавлять, изменять и удалять правила фильтрации, временно приостанавливать действия выбранных правил и т. п. (рис* 4.42).
Bandwidth Monitoring, Модуль для проверки сетевых соединений.
PPP Dialup Client. Этот модуль позволяет настроить модемное соединение (рис. 443) м произвести тонкую подстройку для нужного соединения (рис. 4.44).
I I I I Iill I \■ :'|- I J in..-- I и ■ I J,- ■ I 1 'Г'..^5£3TS1|
•聋鼻跟:门-二.出感:一二:二二I
:3福奇段诵淪;、^»*通込1招总/:『:$•:;:;幻;;.•齡改常总卡*尸匸噴竺号隘彥岁;渉:
Рис_ 4.41, Страница настройки брандмауэра (верхняя часть)
Рис. 4,42 k Страница настройки брандмауэра (нижняя часть)
M«^«n, mi bufon
:ЙЖЙ^Й^#^**^ i^iia/%Ш11 ка»я %. IW-uniMi'UKi имц *w мЫ・ &йн «вПаИ
Mitiiftrtiiftiitf鱷|| JHrt i—З;司£W》*Й МИК ШЛЯЧН11 Whvifvr J “k*w 冲F“—,Xu т 工2 ・ HWMI
jjftl蹬施*1嵐id<?Ь^№й «и 1М»Ч а Л ГМ1Г . 1ЧЧЙГП йшШ Е I "им “ Z Ir^rtwM Z — Иц—* *<一
Рис. 4*43* Страница выбора модемного соединения
Рис. 4*45* Страница настройки служб Интернета
鶴皿鶴皿
鶴皿
鶴皿
•曲::畴醇翼-屁喜?獰mJ「•:;,「[-: : '^
绰*:&:卜*‘:期 総,廿事&^二鼻森八^百g
•鼓М<У<・х 货畑;働鼻^*!й* 諸 w.d^M. CMZE
© ◎ с с £ “ О е.
Pwc* 4.47. Страница Сетевые интерфейсы
Сервер РРР+ Модуль, предназначенный для настройки dial-in-сервера —— сервера входящих модемных соединений.
Extended Internet Services. Модуль позволяет разрешить доступ извне для некоторых служб, работающих на сервере (рис. 4.45).
idmapd daemon. Модуль дяя настройки почтового сервера.
PPTP VPN Client. Модуль для настройки VPN-соединения (Virtual Private Network, виртуальная частная сеть) по стандарту Microsoft.
Каталоги NFS. Модуль для управления сетевыми томами NFS.
Сеть. Это особый подраздел. Здесь можно настроить сетевые соединения, маршрутизацию, DNS и вписать необходимые адреса в host-файл сервера (рис. 4.46).
Сетевые интерфейсы. В этом модуле мы видим установленные в системе сете зые интерфейсы, их параметры, активны ли они в данный момент (рис. 4.47).
Маршрутизация и шлюзы. Этот модуль позволяет настроить маршрутизацию на сервере (рис. 4.48).
Клиент DNS, С помощью этого модуля настраиваются записи об используемых системой DNS-серверах.
Адреса уалов. Модуль, позволяющий редактировать host-файл на сервере.
IPsec VPN Configuration. Конфигурирование VPN'Соединений по протоколу IPsec.
PPTP VPN Server, Модуль для настройки VPN-сервера, работающего по протоколу РРТР,
Клиент и сервер NIS, Модуль управления NIS-серверами.
ТУннелн SSL. Модуль для настройки SSL-туннелей*
Оборудование
Раздел отвечает в большей степени за работу с жесткими дисками в том или ином аспекте, но здесь же находится система управления временем, на, стройка сервера голосовой почты и работа с записывающими CD/DVD- ус-цюйствами (рис. 4.49).
Linux RAID. Модуль, отвечающий за создание и управление RAID-системой (Redundant Array of Independent Disks, матрица независимых накопительных дисков с избыточностью),
Запись на компакт-диски. В этом модуле можно настроить записывающий CD/DVD-лривод и при необходимости записать компакт-диск.
рус. 4.49. Страница Оборудование
Рис. 4.51. Страница информации о состоянии жесткого диска
Системное время. Этот модуль позволяет настроить системные дату и время, временную зону, а также организовать синхронизацию времени через Ин^ тернет (рис. 4,50).
SMART Drive Status. Этот модуль позволяет просмотреть SMART- информацию (Self Monitoring Analysis and Reporting Technology, технология самоконтроля анализа и отчета) жесткого диска, а также произвести тестирование оного (рис. 4.51).
Принтеры. Модуль предназначен для установки и настройки принтеров, подключенных к этому компьютеру.
Управление логическими томами. Модуль управления точками монтирования файловой системы*
Загрузчик Linux (GRUB), Позволяет произвести установку и настройку загрузчика GRUB (GRand Unified Bootloader, великий универсальный загрузчик) (рис. 4.52),
Можно добавлять, удалять и изменять пункты меню загрузчика (рис, 4,53).
Разделы на локальных дисках. Модуль позволяет получить информацию о разделах жесткого диска н при необходимости совершать операции с разделами (рис. 4.54).
Загрузчик Linux (LILO). Модуль позволяет произвести установку и на^ стройку загрузчика LILO (Linux Loader, загрузчик Linux).
Сервер голосовой почты. Модуль настройки сервера голосовой почты.
Кластер
Этот раздел, изображенный на рис. 4.55, отвечает за работу кластера серве* ров, основанных на Linux.
Прочее
Последний раздел, в котором собрано все то, что не вошло в остальные раз* делы (рис. 4.56).
Как видите, система Webmin позволяет удаленно сотворить с сервером практически все, что угодно. Поэтому не рекомендуется разрешать к ней доступ мз Интернета или, по крайней мер% принять серьезные меры по ограничению доступа к столь мошному инструменту посторонних личностей. И тем не менее я настаиваю на том, чтобы вы умели и могли конфигуриро* вать сервер и его службы в текстовом режиме* Графика ——это приятный бонус, которого может к не быть, а текстовая консоль всегда есть и доступна даже на самых низкоскоростных соединениях.
Глава 5
Настройка общего доступа к дисковому пространству сервера - Samba
В этой главе мы рассмотрим установку и настройку общего доступа к дисковому пространству сервер% настройку сервера в качестве арбитра одноранговой сети, организацию доступа по паролю, установку антивируса clamav и его настройку на автоматическую проверку ф^лов в общих папках.
Наша задача —— настроить для офиса систему файлообмена. Ее можно решить, по крайней мере, двумя способами, но поскольку наши клиенты —— это компьютеры с операционной системой Windows, то в первую очередь решение будет максимально прозрачное и привычное для них. Так же мы должны продумать защиту Windows от вирусов.
Для того чтобы разрешить доступ Windows-клиентам к дисковому пространству Linux-cepeepaj а при желании и к принтерам, подключенным к нему, необходимо установить пакет Samba,
Установка Samba
Установка Samba проблем не вызывает —— достаточно при инсталляции Linux выбрать соответствующий пакет. В нашем случае, так как сервер устанавливался по минимуму^ установим его самостоятельно* Как обычно, есть дилемма — или устанавливаем из дистрибутива, или ищем свежую версию. В дистрибутиве пакет Samba находится на первом диске и называется 5ат.Ьа>3*0.8»0.ргекЗл386.грп1. Однако сетевая файловая система вещь достаточно критичная к ошибкам, поэтому я бы все-таки рекомендовал поискать в Интернете более свежую версию. К примеру, вот тут — http://downlGad.fedora,redh&t.eoni/pub/fedora/limix/core/updates/3/i386) или на сайте ALTLinux. Теперь устанавливаем: rpm -i samba*3.0,10-1. fc3.1386 .rpm
Рис. 5.1. Настройка запуска сервера Samba при старте операционной системы
Все элементарно. Далее мы должны каким-то образом указать системе, что сервер должен запускаться при старте системы* Проще всего это сделать с помощью программы ntsysv, внешний вил которой изображен на рис. 5.L Демон Samba называется s【nb, нам достаточно установить галочку м нажать на ОК. Запуск службы осуществляется командой: service smb start Запускаются сервисы SMB:( OK ]
Запускаются сервисы NMB:[ OK ]
Как вы уже догадались, останавливается точно так же, только вместо start пишем stop. Однако до тех пор, пока мы не настроили сервер и не определили пользователей — нам не имеет смысла его запускать.
Файл конфигурации smb.conf
Самое трудное, с чем можно столкнуться при настройке Samba,——это создание (или редактирование) файла конфигурации. Все файлы конфигурации находятся в каталоге /etc/samba. Вот список файлов, которые обьг-тно содержатся н этом каталоге:
Imhosts — содержит список хостов н соответствующих им адресов;
,31,31Наитрдйка n&qpe 用铝疗幻旨 кдихиаому 叩8磔2~助 8g呼pa - Samhm
,31
,31
smbpasswd ——содержит пароли пользователей Samba (в зашифрованном виде);
口 smbusers — файл, предназначенный для хранения списка пользователей, которым разрешен доступ к ресурсам Samba;
smbxonf — главный конфигурационный файл сервера.
Примеры конфигурационных файлов, поставляемых с пакетом, находятся в каталоге examples. В большинстве случаев их можно использовать в качестве базы. В листинге 5Л приведен пример конфигурационного файла, который используется на одном из серверов.
This is the main Sairiba configuration file. You should read the
smb.conf (5) manual page in order tc understand the options listed
here. Samba has a huge number of configurable options (perhaps too
many!) west of which are not shown in this exaxr^ple
Any line vhich starts with a ; {semi-colon} or a # (hash)
is a COTinent: and is ignored* In thia ехаир工e we will use a #
for ccementary and a ; for parts q£ the config file that you
may wish to enable
NOTE: Whenever you niodify this file you should run the coninand "test- parm'1
to check that you have not many any basic syntactic errors.
#===========二2=========Global Settings =±=======================二==二= £global]
# workgroup ^ NT -Dorna in -Kame or Workgroup -Name workgroup = Kontora
Description fieldDescription field仲 server string is the equivalent of the NT
Description field
Description field
server string = Kontora Sairiba Server
This option is lipportant for security. It allows you to restrict
connections to machines 血土ch are on your local network. me
following exanple restrict в access tc two C class networks and
the "loopback" interface. For more exan^les of the syntax see
the smb.conf man page hosts allow = 192*168*0.
,非 _ 一 一 _. @да5
if you want to automatically load your printer list rather
thcin setting them up individually then your 11 need this
printcap name = /etc/printcap
load printers = yes
It should not be necessary to spell out the print system type unless
yours is non-standard. Currently supported print systems include ■
bed, sy^Vr pip, Iprng, nix, hpux, qnx
printing = Iprng
Uncomment this if you want m guest account, you nust 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*leg
Put a capping on Che size of the log files (in Kb).
max log size = 0
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>
Password Level allows matching of _n「 characters of the password for
all combinations of upper and lower сане,
; password level = 8
; username level = 6
You may wish to use password encryption. Please read
ENCRYPTION, txt, Win95, txt and WinNT.txt in the Samba documentation.
Do not enable this option unless you Mve read those documents
encrypt passwords = yes
smb passwd file 二 /etc/sainba/smbpasswd
The following are needed to allow password changing from Windows to # update the Linux system password also.
NOTE: Use these with 'encrypt passwords' and 1 smb passwd file' above.
NOTE2: You do NOT need these to allow workstations to change only
the encrypted SMB passwords. They allow the Unix password
to be kept in вупс with the SMB password.
; unix password sync 不 Yes
; passwd program - /usr/bin/passwd %u
Unix users can map to different SMB User names
; username map = /etc / samba /ainbuaers
Using the following line enables you to uustcmise your configuration
on a per machine basis 4 The to gets replaced with the netbios name
of the machine that is connecting ; include = /etc/samba/smb<conf »%m
Most people will find that this option gives better performance.
See speed, txt and the manual pages for details socket options = TCP^ODELAY SO_RCVBUF=8192 SO_SNEfBUF=8192
Configure Samba to use multiple interfaces
If you have multiple network interfaces then you must list them
here. See the man page for details. interfaces = 192.168.1,0/24
Configure remote browse list synchronization here
request announcement to, or browse list sync from:
a specific host or from / to a whole subnet (see below) ; remote browse sync = 192*168.3.25 192.163,5.255
Cause this host to announce itself to local subnets here
; remote announce = 192,168.1 * 255 192 * 168.2.44
Browser Control Options:
set local master to no if you don1t want Saniba to become a master
browser on your network. Otherwise the normal election rules apply ; local master = no
OS Level determines the precedence of this server in master browser
734
elections. The default value should be reasonable ; os level =33
Domain Master specifies Samba to be the Dmain Master Browser. This
allows Samba to collate browse 1£总匕s between subnets * Don't uae this
if you already have a Windows NT dcamain controller doing this job ; domain master = yes
Preferred Master causes Saniba to force a local browser election on ^startup and gives it a slightly higher chance of winning the election ; preferred master = yea
# Enable this if you want Samba to be a domain logon server for # Windows95 workstations.
; dornain logons = yes
# if you enable domain logons then you may want a per*machine or
# per user logon script
# run a specific logon batch file per workstation (machine)
; logon script 二 %m*bat
run a specific logon batch file per username ; logon script = %U.bat
All WetBiOS names must be resolved to IP Addresses
'Name Resolve Order' allows the named resolution mechanism to be # specified the default order is 4host Imhosts wins beast". name resolve order = wins imhosts beast
Windows Internet Hama Serving Support Section:
材 WINS Support - Tells the NMBD con^jonent of Samba to enable it's WINS Server
wins support yes
WINS Server — Tells the NMBD components of Sairiba to be a WINS Client
Mote: Samba can be either a WINS Server, or a WINS Client, but NOT both
; wins server = w.x,y.z
笄 WIN'S Proxy 一 Tells Sawba to answer name resolution queries on
behalf of a non WINS capable client, for this to work there must be
at least one WINS Server on the network- The default is NO. ; wins proxy 二 yes
Ш5 Proxy - tells Sanibet whether or not to try to resolve NetBIOS names # via EKS nslookups, The built-in default for versions 1.9.17 is yes r # this has been changed in version 1.9.IS to no. dn$ proxy 上 no
Case Preservation can be handy - system default is _no_ # MOTE: These can be Bet on a per share basis ; preserve case = no ; short preserve case = no # Default case is normally upper сазе for all DOS files default case = lower # Be very careful with case sensitivity — it can break things I case sensitive 二 no client code page = 866 character set = koi8-r
printer driver file^/home/sairiba/hplj 1200/printers ,def #^=i±==ii=====:s=ssss=:i:====ss===== Share Definitions ^=====:=:========5:=====57=== [homes] comment = Hone Directories browseable 二 no writable = yes valid users = yura katya lena alst
[comml comment = Соттоп place path 二 /heme/sairiba/ccmn valid users 二 root yura katya lena alst public = 口口 writable = yes printable = no create mask = 0775 directory inask= 0775 force group = office [hpj comment 二 HP LaserJet 1200 Series PCL6
path = /var/spool/samba
printer = Ip public - no printable 二 yes printer driver=HF LaserJet 1200 Series PCL5 printer driver location=\\%h\printer$
tprinter$]
pa th=/ home / s arnbe / hpl j 1200 piiblic=yes
browseable=yes
This one is useful for people to share files (tir^]
comment = Temporary file space
path 二 /tnp read only = no public = yes
Как видно из примера, конфигурационный файл разбит на разделы. Каждый раздел начинается с заголовка, такого как [global], (homes] и т. д. Структурой конфигурационный файл сильно напоминает INI-файлы операционной системы Windows. Символы # и ; используются в качестве признаков комментария*
Секция [global]
Секция [global] назначает переменные, которые Samba будет использовать для определения доступа ко всем ресурсам. Рассмотрим переменные секции [global].
口 workgroup = Kontora. Переменная workgroup содержит имя Windows NT- домена или имя рабочей группы, к которой будет принадлежать сервер Samba.
О netbios name Server, Переменная netbios name задает имя сервера для отклика по протоколу NetBIOS. Не делайте его таким же, как и имя рабочей группы.
server String = Kontora Samba Server. Переменная server string CO- держит описание сервера (комментарий).
hosts allow = 192.168.1. Переменная hosts allow содержит список IP-адресов компьютеров и сетей, разделенных пробелом, которые имеют право подключаться к ресурсам вашего сервера*
printing = iprng. Переменная printing определяет тип системы печати; ГТОДцерживаЮТСЯI bsd, sysv, pip, Iprng, hpu*; qnx.
口 guest account = pcguest. Переменная используется» если вы хотите разрешить гостевой вход на сервер. Соответствующего пользователя также прклется завести в Linux-системе (или отобразить на реального пользователя типа nobody через файл /etc/samba/smbusers). Однако, по соображениям безопасности, не рекомендуется разрешать гостевой вход.
log file ^ /var/log/samba/%m.log. Переменная log file указывает серверу создавать файлы журналов отдельно для каждого пользователя, заодно указывает каталог, где они будут создаваться.
max log size - о, Переменная так log size определяет максимальный размер файла журнала (0 —— без ограничений)*
口 security = user. Переменная security используется для задания уровня безопасности системы; обычно применяется уровень user» также используют урОВНИ share, server И domain.
口 password server = <NT-Server-Name>. Переменная password server ИС- ПОЛ ьзуется ТОЛЬКО совместно С security = server ИЛИ security = domain; задает имя сервера паролей.
password level И username level. Переменные password level И username level позволяют задать количество символов пароля и имени пользователя.
口 encrypt passwords = yes* Переменная encrypt passwords позволяет использовать пересылку паролей пользователей в зашифрованном виде; если задать encrypt passwords = по, то пароли пользователей будут пересылаться в незашифрованном виде, что очень плохо с точки зрения безопасности.
smb passwd file 二 /etc/sarnba/srobpasswd. Переменная smb passwd file задает путь и имя файла, содержащего пароли пользователей; поскольку принципы хранения пароля в Linux не позволяют его расшифровать, приходится создавать отдельный файл паролей для пользователей Samba.
口 local master = yes. Переменная local master позволяет Samba стать м acre p-б pay зером для сети, в котором он находится,
口 preferred master = yes* Переменная preferred master позволяет серверу сразу же при запуске устроить перевыборы мастера с наибольшим шансом для себя.
Q Замечание )
Протокол NetBIOS! в принципе, предназначен для одноранговой сети, т* е. такой сети, где все компьютеры равноправны. Тем не менее в NetBIOS преду-
смотрен специальный компьютер, называемый мастер (master), который ведет список компьютеров! подключенных к сети, их разделяемые ресурсы и вновь подключаемые кампыатеры Именно от мастера вновь подключающиеся компьютеры получают список компьютеров в сети w их доступные ресурсы.
□ бпз proxy 二 уез. Разрешает серверу сопоставлять NetBIOS-имена с IP- адресом с помощью DNS,
口 username map = /etc/samba/smbusers. Переменная username map ПОЗВО* ляет задать файл пользователей, в котором ставится соответствие имя Linux-пользователя имени пользователя Samba; обычно в качестве имени пользователя Samba используется имя Linux-пользователя.
□ socket options = TCF_NQDELAY SOJftCVBUF^8192 SO_SNDBUF=8192* Данная переменная используется для тонкой настройки сетевых паршетров, позволяющих несколько улучшить производительность сервера.
口 interfaces = 192.168.1*0/24» Переменная interfaces указывает серверу, с какой сетевой картой (сетью) он имеет дело; используется в том случае, если на сервере установлено несколько сетевых карт из разных локальных сетей.
口 name resolve order = wins Imh口sts beast. Переменная name resolve order определяет порядок получения имен.
口 wins support = yes* Переменная wins support указывает, что сервер Samba выступает в роли WINS-сервера.
口 wins server = w.x.y.z. Переменная wins server определяет 1Р^адрес WINS-сервера; если установлено wins support = yes, то использование переменной wins server запрещено.
default case = lower. Переменная default case определяет регистр имен файлов, создаваемых на ресурсах Samba.
口 case sensitive = no. Переменная case sensitive определяет чувствительность к регистру символов.
口 client code page = 966. Переменная client code page задает кодовую страницу клиента; для DOS-клиента — 866»
口 eharficter set = koi8-r. Переменная character set задает набор символов, используемых сервером.
口 printer driver file=/home/aamba/hplj 1200/printers.def. Переменная printer driver file определяет имя драйвера принтера.
time server = true. Эта переменная предписывает серверу показывать Windows-клиентам, что он выступает для них в роли сервера точного времени.
Секция [homes]
Секция (homes] позволяет удаленным пользователям получить доступ к своим домашним каталогам на Linux-машине. Для этого пользователь должен быть зареги стр ирован в Linux-системе. Рассмотрим переменные секиии (homes].
口 comment = Home Directories. Эта переменная просто комментирует содержимое данной секции.
browseable = по. Переменная browseable запрещает просматривать каталог посторонним пользователям.
writable = yes. Переменная writable разрешает записывать в домашний каталог.
valid users = yura vasya alst+ Переменная valid users задает список пользователей, для которых разрешен доступ к своим домашним каталогам; в принципе, параметр не обязательный.
Секция [comm]
Секция [commi отвечает за каталог, доступный всем пользователям Samba, Это своего рода аналог FTP, куда могут записывать и откуда могут читать пользователи. Разберем подробнее данную секцию.
□ comment = Сотптоп place. Эта переменная просто комментирует содержимое данной секции.
path = /home/samba/comm. Переменная path определяет каталог, который используется для совместного доступа.
口 valid users 工 root yura katya alst. Переменная valid users содержит список пользователей, которым разрешен доступ к общему ресурсу-
□ public 二 по- Запрещает остальным пользователям получать доступ к данному ресурсу*
口 writable 二 yes. Разрешает запись в общий ресурс.
□ printable = по. Указывает, что разделяемый ресурс не является печатающим устройством,
create mask = 0775. Маска для создания файлов на разделяемом ресурсе.
□ directory mask 二 0775. Маска для создания каталогов на разделяемом ресурсе.
force group = office. Переменная force group определяет, что файлу, создаваемому или копируемому на общий ресурс, принудительно задается принадлежность к группе office, для того чтобы любой пользователь, который входит в данную группу, мог изменить или удалить файл.
Секция [tmp]
Секция [шр] предназначена для создания разделяемого ресурса, в который могли бы записывать все пользователи. Как видно из приведенного далее описания, она отличается от секции [comm] отсутствием списка пользователей и значением переменной public,
comment = Temporary file space
path = /5p read only = no public = yes
Пароли пользователей
Сервер Samba подразумевает использование нескольких типов безопасности. В частности, переменная encrypt password определяет, какой механизм авторизации будет использован. Если переменной encrypt password присвоено значение по, то авторизация пользователей производится исходя из учетных записей Linux, хранящихся в файлах /etc/passwd и /etc/shadowb При таком типе авторизации пользователя пароли передаются по сети в незашифрованном виде, что несколько упрощает настройку, но резко снижает безопасность системы. В дополнение к этому, такой тип авторизации требует изменений а системном реестре в Windows 95, Windows 98, Windows NT. Далее приведены изменения, которые необходимо внести в системный реестр:
Windows 95
[HKEY_LOCALJiACHINE\System\CurrentControlSet\Services\VxD\VNETSUPl
ri En abl e P1 a inTex t Pa s sword" = dword 100000001
Windows 98
[HKEY_LOCAL_HACHINE\Syst em\Curren tCon trolSet\Servi ces\VxD \ VMETSU P] "EnablePla inTextPasswordlf =dword; 00000001
Windows NT
IHKEY_LOCAL_JlACHINE\SYSTEM\CurrentContwlSet\Ser^ices\Rdr\Parameters]
"EnablePlainTextPas swordn =dwcrd:00000001
口 Windows 2000
【HKEY_WCAij_JMACHINE \ SYSTEM \ CurrentContro LSet\S ervice s\LaiunanWorkS tatio n\Parameters]
"EnablePlainTextPassword"=Dar:a: 0x01
В том случае, если переменной encrypt password присвоено значение yes5 авторизация пользователя происходит с использованием файла /etc/samba/smbpasswd, и передача паролей происходит в зашифрованном виде.
Почему для использования шифрованных паролей необходимо создавать отдельную базу паролей пользователей Samba? Все дело в методе хранения пароля, Windows-системы хранят зашифрованный пароль, и при аутентифи- каиии пользователя производят сверку паролей. Linux не хранит пароль как таковой, В файле shadow хранится так называемый хэш (hash) пароля, а в последних версиях Linux ——контрольная сумма пароля, рассчитанная по алпэрнтму MD5. И при аутентификации пользователя сравниваются хзтм паролей. Особенность хэша — он необратим, т. е. зная хэш невозможно по нему восстановить пароль. Поэтому приходится отдельно для Samba заводить базу паролей пользователей. Для администратора системы это представляет некоторое неудобство ——еще один повод забыть прописать пользователя а а с другой стороны —— за все надо платить.
Добавление пользователей Samba
Для добавления пользователей в файл /etс/samba/smbpasswd необходимо наличие самого файла /etc/samba/smbpa&swd. Должна также существовать учетная запись пользователя в Linux-системе- Если эти условия соблюдены, следует:
Воспользоваться программой smbpasswd для создания учетной записи: smbpasswd -a user_name
Активировать учетную запись: sinbpasswd 亠е user_name
Эту операцию придется произвести с каждым пользователем. Существуют сценарии, позволяющие перебросить пользователей из файла passwd в файл smbpasswd. Но они только перебрасывают пользователей, а пароли для них все равно придется заводить вручную. Еще один недостаток этих сценариев —— после них придется удалять пользователей типа nobody, root, news и т, п.
Для подключения ресурсов, предоставляемых сервером Samba, используются команды smbciient и smbmount. Обо scex возможностях этих команд можно узнать из соответствующих тап-страниц.
Принтеры
Все принтеры, которьге определены в файле /etc/printcap, становятся доступными после того, как вы добавите следующую секцию в конфигурационный файл smb.conf:
[printers]
path = /var/spool/Ipd writeable 二 no guest ok 二 no printable = yes
Использование ресурсов Samba
Хотя сервер Samba позиционируется как средство доступа Windows- клиентов к ресурсам Цпих-систем» тем не менее, в пакете есть средства для того> чтобы Linux-компьютеры могли также просматривать и подключать соответствующие ресурсы. И что особенно приятно, доступ к ним можно получить и в том случае* когда сервером является машина с Windows.
Программа-клиент для Linux включена в дистрибутив Samba и называется smbclient* Она обеспечивает FTP-подобный интерфейс командной строки. Также существует пакет samba-client^ который позволяет подключать ресурсы с помощью стандартной команды mount/umount ИЛИ smtxnount/smbumount. Для mount/umount нужно указывать параметр -t smbts.
Для того чтобы увидеть доступные ресурсы, выполните команду: /usr/bin/smbclient -L host
где host — это имя машины, ресурсы которой вас интересуют. Данная команда вернет список имен доступных сервисов. Пример команды smbciient: siribclient ziga
Server time is Sat Aug 17 15:58:27 2005
Timezone is UTC+2.0
Password:
Dowain=^ [WORKGROUP] OS= [Windows NT 3.51] Server= [NT LAN Manager 3 * 51]
Server^fZlGA] User^f] Workgroup= [WORKGROUP] Domain []
Sharename
Type
eminent
ADMIN$
Disk
Remote Admin
public
Disk
Public
C$
Disk
Default share
HP
Printer
HF6L
This machine has a browse list:
ServerServerHOPZIGAHOPZIGAComment
Server
Server
HOP
ZIGA
HOP
ZIGA
Samba 3 . Q Jpg
Для использования сервиса выполните следующую команду: /usr/bin/smbclient service <password>
где service ——имя компьютера и ресурса. Например, если вы пытаетесь обратиться к каталогу, который доступен под именем public на машине, названной ziga, то имя ресурса представляет собой \\ziga\public. Поскольку в языке С (а точнее в языке shell) обратный слэш является спецсимволом, то практически необходимо ввести такую строку: /изг/bin/smtclient \\\\2iga\\public </nypasswd>
где <mypas&wd> ——ваш пароль.
В результате вы должны получить приглашение smbclient:
зтЬ: \>
Для получения справки необходимо ввести h и нажать клавишу <Enter>:
smb; \> h
Is
dir
led
cd
pwd
get
mget
put
mput
rename
more
mask
del
rm
irikdir
wd
rmdir
rd
pron^jt
recurse
translate
lowercase
printrtrade
queue
cancel
atat
quit
q
exit
newer
archive
tar
blocksize
tarmode
setmode
help
smb: \>
Как видите, практически все команды дублируют команды FTP-клиента. Утилита smbclient многое позволяет, однако она тяжела в использовании. Если от Windows-сети нужен только доступ к дисковым ресурсам, рекомендуется воспользоваться пакетом Smbft.
В пакет samba-client входят утилиты snibmount и smbumount, которые работают подобно mount и umount. Также есть графическая утилита gn0mЬа —— подобная утилите Сеть в Windows.
Утилиты
Как и у других подобных проектов, для пакета Samba существует достаточно много сторонних утилит, позволяющих упростить конфигурирование и доступ к ресурсам* Вот список утилит н программ, в той или иной мере относящихся к пакету Samba:
smbstatus — утилита для мониторинга Samba;
口 SWAT — инструмент для конфигурирования Samba через web-интерфейс;
口 smbpasswd — управление паролями Samba;
testparm — проверка конфигурационного файла;
口 testprns — проверка конфигурации принтера;
smbtar — утилита резервного копирования;
口 smbclient ——клиент командной строки;
Ksamba 一 KDE-программа, предназначенная для конфигурации;
口 Smbedit — \У1п32-приложение для правки конфитурационного файла Samba;
Webmin — универсальная программа конфигурации через web-интерфейс, в том числе и Samba;
GSMB — графический интерфейс для утилиты smbpasswd;
口 SambaSentinel ——графический интерфейс для утилиты smbstatus.
Webmin
Как уже упоминалось в предыдущей главе — Webmin имеет модуль управления сервером Samba, Внешний вид модуля изображен на рис. 5.2.
Как мы видим из рисунка, мы можем остановить сервер и перегрузить его. Мы подобную операцию уже делали ранее, с помощью консоли. Все возможности я не буду описывать» остановлюсь только на основных. Как видно на рисунке ——в верхней часта находится таблица ресурсов» достугШых для пользователей Samba* Чтобы добавить новый ресурс, нажимаем на соответствующую ссылку и в новом окне (рис. 5.3) заполняем поля.
Рис. 5,3. Добавление раздел口日мо「р ресурса на сервере Samba
Следующий важный для нас модуль — Сеть Wndows (рис. 5.4). Как видно мз рисунка, здесь мы определяем кия рабочей группы, имя и описание сервера, безопасность^ службы и т, и*
Аутешпфнкшщя — этот модуль также очень важен для нас. Здесь мы определяем, шифруются пароли или цет, можно назначить сваю программу аутентификации, разрешить отображение имен пользователей Linux на Windows-имена (рис. 5.5).
Следующий момент — облегчение жизни администратора. Допустим, у вас в системе уже есть некоторое количество пользователей, и после установки Samba необходимо каждого пользователя прописать в базе пользователей.
Рис. 5.4. Настройка сетевых параметров сервера Samba
Рис. 5.5. Аутентификация сервера Samba
Рис. 5-7- Перенос Llnux-пользсвателей в базу данных пользователей Samba
Рис_ 5,8. Изменение пароля псльзсвателн Samba
Это достаточно трудоемко, но есть модуль, позволяющий это сделать быстро (рис. 5,6). При этом система покажет, какие пользователи были пропущены, а какие перенесены (рис. 5.7)* Так же можно отредактировать учетную запись пользователя Samba, к примеру, изменить пароль (рис, 5*8). Еще можно сделать так, что, в дальнейшем, в пользователи Samba автоматически попадали все вновь создаваемые Linux-пользователи.
Таковы базовые возможности по настройке сервера Samba. Для начала вам этого хватит, а в дальнейшем ——изучайте документацию.
Антивирусные программы, clamav
Антивирусов для Linux уже достаточно много. В частности, два ведущих российских производителя антивирусных программ выпустают DrWEB и Kaspersky AV для Linux, Однако это платные антивирусы, а одна из основных задач, стоящих перед нами, — потратить как можно меньше денег.
Признанным лидером среди Open Source антивирусов является clamav (Clani AntiVirus). Официальная страница ——www.clamav.net. Самое интересное, что существует версия и для Windows. Что же мы имеем?
Лицензия GNU General Public License.
Переносимый POSlX-совместимый код, в частности, реализации под Windows и Linux.
口 Проверка файлов "на летун (под Linux и FreeBSD), встроенная поддержка mbo心 maildir и raw-форматов почтовых сообщений.
口 Поддержка проверки архивов (встроенная поддержка форматов RAR (2.0), ZIP, GZIP и BZIP2).
Утилита обновления баз вирусов с поддержкой цифровой подписи.
Как видим —— достаточно "вкусный" набор для бесплатного антивируса, проверка файлов и почты ——то, что нужно для нас. На странице загрузок есть несколько версий сборок под различные дистрибутивы, в том числе и для Fedora Core (http://erash.fce.vutbr.ez/crash-hat/3/clamav/). Скачиваем пакет, устанавливаем и переходим к настройке и тестированию антивируса, clamav не имеет графического интерфейса^ однако для наших целей это не важно.
Установка производится как обычно — с помощью утилиты гр гл. После установки пакета необходимо почитать документацию по его настройке. На самом деле сделать нужно следующее: во-первых, проверить наличие конфигурационных файлов /etc/clamd.conf и /etc/freshclam.conf Первый отвечает за антивирусную программу, второй ——за обновление антивирусных баз из Интернета. По умолчанию все нормально настроено, и изменять эти файлы нет необходимости. Во-вторых, необходимо прописать сам антивирус и модуль его обновления в таблицу инициализации, чтобы они запускались при старте системы Делается это двумя командами:
/sbiл/chkconfig --level 2345 eland on
/sbin/chkconfig --level 2345 freshclam on
Следующий момент — запускаем демон обновления базы, а он при наличии интернет-соединения самостоятельно обновит базы антивирусной программы: service freshclam start
И последнее, запускаем сам антивирус:
service clamd start
Starting Clam AV daemon:f OK J
Bee! Теперь переходим к проверке функционирования. Для этого в комплекте с антивирусом идет несколько файлов, содержащих вирусы. Проверка осуществляется так:
/usr/bin/clamdscan -г /usr/share/doc/clamav^O.S3
Программа clamdscan позволяет проверить указанный каталог рекурсивно. Для того чтобы файлы системы проверялись "н® лету'1, необходимо дополнительно установить модуль Clamuko или Samba Scan. Первый можно найти на сайте www.dazuko.org, а второй на www.opeiumttvlrus.org/pr(4ecte.irfip#8amba-v8cu. И еще, clamav проверяет так же и заархивированные файлы, но архивы RAR — только второй версии. По лицензионным соображениям поддержка версии 3 архива не включена. Если вам очень нужно, то советую обратиться к статье '^Clamav и проверка RAR архивов версии 3" на http://mcmcc.bit.ni/ clam_rar3,html Copyright (С) 2004 МсМСС. Правда, придется самостоятельно собирать из исходных текстов пакет, но это не так сложно, как кажется.
На этом все, переходим к следующей главе*
Глава 6
Настройка общего доступа к дисковому пространству сервера - FTP-сервер
FTP предназначен для передачи файлов в сети Интернет. Он несколько устарел, частично функции передачи файлов взял на себя HTTP, но, несмотря на это, будет использоваться еще долгое время.
FTP, в отличие от большинства других протоколов, для пересылки файла использует два TCP-соединения. Одно соединение для передачи файла, а второе ——для управления процессом передачи- Порт 20 предназначен для пересылки данных, а порт 21 для управляющего соединения. FTP может использовать как TCP-, так и UDP-соединение.
Программное обеспечение
Для работы по протоколу FTP необходимо две программы ——сервер и клиент. (Счиентских программ очень много: от простейших, работающих в командной строке, до имеющих весьма развитый графический интерфейс. Любой современный браузер способен выступать в роли FTP-клиента. Поэтому на клиентских программах останавливаться не будем, а перейдем сразу к про* граммному обеспечению FTP-сервера.
Пакет vsftp
В последние дистрибутивы, в качестве стандартного FTP-сервера, входит vsftpd (Very Secure FTP Daemon), позволяющий обслуживать как анонимные запросы, так и запросы от пользователей, зарегистрированных на сервере и имеющих полноценный доступ к его ресурсам. Пакет называется vsftpd"2-0J-5j386.rpm м находится на третьем диске дистрибутива. Устанавливается он как обычно, при помощи утилиты rpm. При установке пакета автоматически создается каталог^ который будет корневым при анонимном
подключении, — /var/ftp с необходимыми правами доступа. Владельцем этого каталога является пользователь root.
Для конфигурирования используются один основной файл и несколько дополнительных*
Файл etc/vsftpd/vsftpdxonf
Это основной конфигурационный файл, его пример приведен ниже.
The default cowiled 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 cornplled in defaults.
READ THIS; This example file is MOT an exhaustive list of vsftpd options ,
Please read the vsftpd.conf.5 manual page to get a full idea of
vsftpd1s capabilities.
Allow anonymous FTP? (Beware - allowed by default if you comment this
out).
anonymou3_enable=YES
Unccanment this to allow local users to log in.
1ос&1„епаЪ1е=¥Е5
Uncomment this to enable any form of FTP write command* wr i te„en abl e=YES
Default umask for local users is 077. You may wish to change thia to
022, if your users expect that (022 is used by most other ftpd^) local_umask=022
Unc<№iient this to allow the anonymous FTP user to upload files, This
only ha亩 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 0a电E0心工 e=YES
# Uncamment this if you want the anonymous FTP user to be able to create # new directories,
an on_jnkdi r_ynr i te_enable=YES
坤 Activate directory messages - messages given to remote users when they
753753Нзитр嚙ка обц/длр 闵рсту门昌 к^мс/юао^у$р8тра”тву враера 一 F7P-cepggp
753
753
go into a certain directory*
di rme s s age_enabl e =YES
Activate logging of uploads/downloads.
xferl og_enabl e=¥E S
Make sure PORT transfer connections originate from port 20 (ftp-data). connecгощ^ро^^З 0=YES
If you want, you can arrange for uploaded anonymoLis files to be owned
ty a different user. Mote 1 Using "root" for uploaded files is not
recommended!
chowrvjip 10Rds=YES
#chown_usemame=whoever
You may override where the log file goes if you like. The default is
shown below.
xferlog_f i1e-/var/log/vsftpd.1og
If you want, you can have your log file in standard ftpd xferlog format xf er 1 og_s 七工 forma t=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_connsction_timeoi_it=120 '
It is recommended that you define on your system 曰 unique user which
the ftp server can use as a totally isolated and unprivileged user, #nopriv_us er= f tps ecure
Enable this and the server will recognise asynchronous ABOR requests *
Hot 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 ageii^dowload^enable enables malicious remote
parties to consume your I/O resources, by Issuing the command "SIZE
/big/fileN 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* A2c工工
mangling should be on the client anyway.,
#ascii_upload^enabie=YES
#asci i_down 1 oad^_enabie=YES
You may fully customise the login banner string:
ftpcU^anner^Welcctme to blah FTP service,
You may specify a file of disallcwed anonymous e-mail addresses.
Apparently useful for combatting certain DoS attacks.
#deny_ema i l_en ab 1 e=¥ES
(default follows)
#banned^_email_f ile^/etc/v^f tpd.banned^emails
You may specify an explicit list of local users to chroctI) to their # hcmie directory. If chroot_local_uaer is YESf then this list becomes a # list of users to ЫОТ chroot().
#chroat_list_enable=YES
(default follows!
#chroot_list_file-/etc/vsftpd.chroot_list
You may activate the "毋"option to the builtin is. This is disabled by # default to avoid remote users being able to cause excessive I/O on large
sites, Howeverf some broken FTP clients such as "neftp" and "mirrorM
assume the presence of the "-R" ctptian, so there is a strong case for
enabling
ttls^recurse^enable^YES
pam_service_naine=vs f tpd
U5e匸List一巳nRbl曰二YES
enable for standalone mode
listen=¥ES
tcp_wrappers=YES
Разберем конфигурационные параметры,
口 anonymous_enabie^YES* Разрешает или запрещает доступ к серверу без авторизации. Для нашего сервера желательно устанавливать 日 no, В такой конфигурации клиенты получат доступ к любым каталогам файловой системы, для которых такой доступ разрешен, исходя из прав соответст' вующих локальных пользователей. Это могут быть как домашние каталоги, так и системные каталоги. Если в настройках vsftpd разрешена запись 3. ниже), клиенты получат и все права на запись, которыми располагают эти пользователи.
iocai_enabie=YES, Разрешает локальным пользователям использовать FTP-сервер.
write_enabie=YES* Разрешает или запрещает пользователям записывать файлы по FTP. Так же можно ограничивать доступ посредством прав на файлы и каталоги.
口 anon_upload_enablе=YES И anon_mkdir_write_enable=¥ES. Если ЗКТИВИ^ ровать эти дна параметра, анонимные пользователи смогут записывать файлы и создавать новые каталоги. Поскольку нам этого не нужно, то оставляем, как есть.
口 xferiog_enabie=YES, Разрешает вести службе журнал: кто и какие файлы скачивал или загружал на сервер.
cormect_from_port_20=¥ES, Определяет порт, по которому работает FTP- сервер.
口 banned_emai i_f 11 e= / etc/vsftpd. banned_emai 1. Определяет, где расположен файл, содержащий текст приветствия.
chroot_li9t_enable=YES И chroot_List_file=/etc/vsftpd.chroot_list.
Позволяет ограничить возможность пользователей, зарегистрированных локально, перемещаться по дереву каталогов. При этом процесс, работающий с клиентом» будет выполняться в изолированной среде, и поль- эователь будет иметь доступ лишь к своему домашнему каталогу и его подкаталогам,
口 pam_service_name-vsf tpd. Указывает, какой модуль аутентификации используется при авторизации пользователя*
useriist„enabie=YES- Разрешает использование списка пользователей.
Файл etc/vsftpd.ftpusers
Этот файл содержит список пользователей, которым ЗАПРЕЩЕНО пользоваться FTP-сервером. Обычно это следующие системные пользователи: root, bin, daemon, adm. Ip, sync, shutdown, halt, mail. newsf uucp3 operator, games, nobody.
Файл etc/vsftpd.userjist
Если переменная в конфигурационном файле имеет значение user 1 ist_deny=No, в этом файле содержатся список пользователей, которым разрешен доступ к FTP-серверу. Если же us er 1 i s t_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 — параметра применяемого при создании файлов;
口 timeout accept <секунд> — сколько ожидать входного соединения для передачи данных (PASV);
О timeout connect <секунд> —— сколько ожидать устаноаления выходного соединения для передачи данных (PORT);
timeout data <аекунд> — маю: и мольный период неактивности пользователя при передаче данных;
口 timeout idle <секунл> — сколько ожидать следующей команды;
口 timeout maxidie <секунд> — поскольку клиент имеет возможность установить idle самостоятельно, параметр maxidie позволяет установить верхний предел для клиента;
口 timeout RFC931 <секунд> — максимальное время ожидания ответа для протокола ident;
口 limit-time { * ] anonymous | guest } <минут> — ограничение времени сессии. Реальные пользователи не ограничиваются никогда;
О loginfails <число> — после указанного числа неудачных попыток зайти на сервер, сделать запись в журнале и разорвать соединение.
Выдача сообщений клиенту:
口 greeting { full | brief | terse | text <строка> }——определяет, какой текст будет выдаваться в строке приветствия:
full — имя хоста и версия сервера;
brief — имя хоста;
terse ——ничего, кроме факта готовности к обслуживанию;
text ——произвольная строка текста;
口 banner 父財財工中曰应爾丑〉——определяет текст сообщения, выдаваемого клиенту до ввода имени и пароля;
hostname <имя_хоста> — определяет имя хоста по умолчанию (имя локального хоста);.
email <адрее> — адрес электронной почты администратора;
口 message ем^_©自宓лт> { LOGIN | CWD= <имл^каталога> { <клаос> } }— содержимое файла выдается клиенту при входе или смене каталога;
口 readme <имл_файла> ( LOGIN | СЖ)=<ялгя_казалога> { <#слйсс> } }—— при входе или смене каталога сервер информирует клиента о наличии указанного файла и дате создания последней модификации.
Журнализация:
口 log commands список_типов — записывать в журнал все команды клиента, где список_типов — список через запятую слов 工❸al, guest и anonymous;
口 log transfers список_типов список_направлений ——записывать В журнал пересылки файлов, где слисок типов — список через запятую слов real < guest И anonymous; список_направлений ——СПИСОК через запятую СЛОВ incoming И outbound;
口 log security список_типов — записывать в журнал нарушения правил безопасности,где список_типов ——список через запятую СЛОВ real, guest И anonymous;
log sysiog — перенаправлять сообщения о пересылках в syslog вместо файла xferlog;
П log sysiog+xferiog — направлять сообщения о пересылках в syslog и файл xferlog.
Виртуальные серверы:
口 daemonaddress м工р-мареи> — использовать для соединения только указанный адрес;
virtual <1Р-здрес> { root | banner | logfile } <имя_файлй> ——определить соответственно корень файловой системы, файл, содержащий баннер приветствия, и журнал для указанного виртуального сервера;
口 virtual <1Р-адрес> { hostname | email } <строка> ——определить ИМЯ хоста (отображаемое в приветствии) и адрес администратора для указанного виртуального сервера;
口 virtual 《工尸一т』рес> private ——закрыть анонимный доступ по указанному адресу;
口 virtual <1Р-адрес> incmail denialI -адрео——КОГО извещать В случае анонимной загрузки файлов;
口 virtual <1Р-здрес> mail from <етаИ-адрес> — какой обратный адрес подставлять при рассылке сообщений об анонимной загрузке файлов;
口 defaultserver ( deny | allow } <имя_пользователя> — ПО умолчанию доступ разрешен всем;
口 defaultserver private ——закрыть аноНИМНЫЙ доступ;
口 def aultserver incniail <eiuail -адрео——КОГО ИЗ Вешать В случае анонимной загрузки файлов;
defaultserver mailfrom <ешаИ-адрес> — какой обратный адрес подставлять при рассылке сообщений об анонимной загрузке файлов.
Права доступа:
口 ( chmod I delete | overwrite [ rename | umask } { yes | no } <список_типов> —— раэрешить/запретить пользователям выполнять соответствующее действие. По умолчанию —— все разрешено. < Спи со к_ типов >——СПИСОК СЛОВ Через запятую: anonymous f guest, real ИЛИ с1азэ=<имя_кл(асса>;
口 paeawd-check { none | trivial | rfc822 } ( { enforce | warn }) уровень проверки правильности вводимых анонимными пользователями s качестве пароля адресов e-mail м реакция сервера в случае ошибки:
попе — никакой проверки;
trivial — строка должна содержать @;
rfc822 — полная проверка согласно стандарту RFC 822;
warn ——если обнаружена ошибка, то выдавать предупреждение;
enforce — если обнаружена ошибка, то не впускать пользователя;
deny-ста 11 <ешаИ-адрес> — считать данный адрес неправильным;
О path-filter < список - типов >< имл_ ф^ йл а_ со о бще ния> <д/аб-
л оя_ д опус тимых_ име н> <дг^ блсн_н ед о л у с тимых > ... — КОГДЗ ПОЛЬЗОВа» тель типа из списка типов пытается загрузить файл на сервера то сервер проверяет имя файла на соответствие регулярному выражению допустимых имен, указанному в шаблоне, и на несоответствие ни одному из регулярных выражений в шаблонах недопустимых имен;
口 upload [ absolute | relative J I с1а58=<имя-классй> ].,.[—] <корень шаблон_^аталога> { yes | no } owner group mode ( dirs | nodirs ) [ dir_mode ] — определяет каталоги, в которые разреше- но/запрещено записывать файлы пользователям из указанного класса* Вее создаваемые файлы будут иметь соответствующие права доступа и принадлежность;
口 throughput —— позволяет задать скорость передачи определенных файлов на определенные хосты;
口 anonymous-root <корень> [ <кл^са> ]——определяет корневой каталог (chroot) для анонимных пользователей указанного класса и их домашний каталог;
口 guest-root <корень> [ <интервajr-uid> ]・ * * <корень> —— определяет аргумент chroot для гостевых пользователей и их домашний каталог. Можно задавать отдельные uid или интервалы через дефис;
口 deny-uid <интеряал> ... — запрещает доступ к серверу определенным пользователям и может использоваться вместо фа^Ьш ftpusers;
deny-gid <иятераал> - *. — запрещает доступ к серверу определенным группам пользователей н может использоваться вместо файла ftpusers;
口 aiiow-uid <интервал> …一разрешает доступ к серверу определенным пользователям и может использоваться вместо файла ftpusers;
aiicw-gid <интервал> .., — разрешает доступ к серверу определенным группам пользователей и может использоваться вместо файла ftpusers;
口 restricted-uid <интервал> .. * — разрешить реальному или гостевому пользователю доступ вне его домашнего каталога;
restricted-gid <интервал> ….一разрешить группе пользователей доступ вне его домашнего каталога;
unrestricted-iiid <интерзал> -.. — запретить реальному или гостевому пользователю доступ вне его домашнего каталога;
О unrestricted-gid <^нтервал> —— запретить группе пользователей доступ вне е「о домашнего каталога;
口 site-exec-max-lines ^修財匚爾口〉 [ <класс> ]...——ограничивает ЧИСЛО строк, посылаемых командой site exec;
口 dns refusejnisrnatch < фа йл_ c_ co о бще нием> [ override ] — ВЬКДЗБать сообщение, если прямой и обратный адреса клиента не совпадают. Если не указано override, то прекращать сеанс;
口 dns refuse_na_reverse < ф j йл_ с_ со о бхцени ем> [ override ] — выдавать сообщение, если клиент не имеет обратного адреса. Если не указано override, то прекращать(:巳анс.
Файл ftpservers
Этот файл определяет набор файлов конфигурации для каждого виртуального сервера. Каждая строка в данном конфигурационном файле описывает виртуальный сервер и состоит из двух полей:
口 имя к 1Р-адр巳仁 виртуального сервера;
имя каталога, содержащего конфигурационные файлы. Имена файлов фиксированы: ftpaccess, ftpusers, ftpgroups, ftphosts, ftpconversions. Если какой-либо конфигурационный файл отсутствует, то вместо него используется конфигурационный файл основного сервера.
Файл ftpconversions
В этом файле каждая строка описывает возможное преобразование файлов "на лету" и состоит из 8 полей, разделенных двоеточиями:
口 удаляемый префикс;
口 удаляемый суффикс;
口 добавляемый префикс;
口 добавляемый суффикс;
口 используемая для преобразования внешняя программа и ее параметры;
типы преобразуемого файла:
T_REG — обычный файл;
t_ascii ——текстовый;
t_dhr ——каталог или сочетание перечисленных типов;
□ опиии: o_compress, o.uncompress, o__tar или их сочетание;
口 ко\<ментарий к строке преобразования.
Файл ftpgroups
Этот файл используется для поддержки функционирования нестандартных команд типа site group и site gpass. В файле ftpgroups находятся строки, состоящие из трех полей, разделенных двоеточием:
口 задаваемое клиентом имя группы;
口 зашифрованный пароль группы;
口 реальное имя группы.
Файл ftphosts
Этот файл предназначен для ограничения доступа к FTP-серверу с определенных IP-адресов. Используется всего две команды:
口 allow <имя_польэователя> <ша бл он_ IP - адреса > ...——разрешить доступ;
口 deny <икя_ пользо s а те ля> <ша блон_ 1 Р-алреса> ...——запретить доступ.
Файл ftpusers
Этот файл предназначен для запрета доступа к FTP-серверу некоторым ре^ альным пользователям. Обычно используется для повышения безопасности системы, чтобы исключить доступ пользователей типа root, news и т. п-
Безопасность
Во время конфигурации очень желательно продумать систему безопасности, зачастую, при неправильной настройке, FTP-сервер становится тем слабым местом^ через которое осуществляется прорыв безопасности вашей операционной системы.
Чрезвычайно важно, чтобы анонимные и гостевые пользователи не имели доступа к реальному командному процессору. Тогда, даже если они по каким- либо причинам смогут покинуть окружение FTP* то не смогут выполнить никаких посторонних задач. Для обеспечения этого требования убедитесь, что в файле /etc/passw у пользователей guest и anonymous в поле, где находится командная оболочка пользователя, находится что-то типа /dev/null. Файл ftpusers должен содержать список следующих псевдопользователей, которым будет отказано в подключении к FTP-серверу: root, bin, daemon, adm» Ip, $ync* shutdown, halt, mail, news, uucp, operator, games, nobody*
Обычно FTP-сервер разрешает загрузку файлов на сервер (upload) всем пользователям. Однако необходимо запретить пользователям загружать свои файлы в некоторые каталоги (а иногда и во все)* Для этого в файле ftpaccess необходимо прописать опцию upload с ключом по и указать каталог, на который налагается запрет. Иногда желательно запретить пользователям полу^ чение с FTP-сервера некоторых каталогов и файлов. Для этого в файле ftpaccess добавляем строку noretrieve с каталогом, куда необходимо запретить доступ пользователям.
6 翁к.1500
Глава 7
Настройка сетевого принтера
Из самого словосочетания "'сетевые принтеры11 понятно, что это принтеры, которые каким-то образом подключены к локальной сети, и компьютеры, подключенные к ней же, могут распечатывать на них документы* Принтеры бывают разные: матричные, струйные, лазерные, сублимационные и т. д. Они могут использовать разные интерфейсы для подключения: последовательный, параллельный, USB, Ethernet, SCSI, FireWire и др. Производители принтеров продолжают увеличивать набор проблем, то протокол свой придумают, то с целью удешевления создадут win-принтер, И во всем этом приходится разбираться. Поэтому, прежде чем покупать/подключать принтер к Linux-серверу, необходимо посмотреть в Интернете* поддержи вается ли он в Linux.
Принтер может стать сетевым, по меньшей мере, тремя путями:
В принтер встроена Ethemet-карта и специальное протраммное обеспечение для работы в сети.
Принтер подключен к специальному устройству — принт-серверу, который представляет собой специализированный компьютер, с одной стороны подключенный в локальную сеть, в с другой стороны к нему подключаются принтеры,
Принтер подключен к компьютеру, на котором установлено и настроено про!раммное обеспечение^ позволяющее компьютерам из сети производить печать на этом принтере.
Далее мы рассмотрим настройку и использование сетевого принтера для последнего случая. Ethernet-принтер рассматривать не будем, поскольку он не подходит по условиям задачи — его стоимость составляет более 1000 долларов, А вариант с принт-сервером отклоняем, потому что для подключения к нему нет необходимости производить настройку на сервере.
Способы вывода на принтер
Как и для большинства задач, существует несколько способов добиться вывода данных на принтер. Самый простой путь — прямой вывод информации, без всякой предварительной обработки, на порт принтера* Для этого на компьютере, к которому подключен принтер, достаточно выполнить всего лишь следующую команду: cat mytext. txt > /dev/Ip
Как обычно, эта простота кажущаяся. Во-первых, для того чтобы таким образом что-то отправить на печать, необходимо быть пользователем root 一 для остальных пользователей невозможно напрямую работать с файлами устройств. Во-вторых, зачастую вы получите на распечатке сплошную кашу из симвалав. Такое произойдет потому, что любой принтер имеет свой специальный язык управления^ причем этих языков более десятка* Так что выход для данного случая ——использовать специальные утилиты, на вход которых подаются текстовые файлы, а на выходе получают преобразованный с учетом языка управления принтера текст. Однако это крайне неудобно. Поэтому применяют специальные программные пакеты, предназначенные для управления печатью. Именно об этих программных пакетах и пойдет далее речь.
Система печати CUPS
CUPS (Common UNIX Printing System, общая система печати для UNIX) интересна своими богатыми возможностями. В ней реализован пратокал печати, сходный с протоколом HTTP, заменяющий морально устаревший LPD (Line Printer Daemon, демон линейной печати).
Данная система поддерживает форматы Adobe PostScript, PDF, HP-GL/2, TIFF、JPEG, PNG, PBM, PGM, PPM, GIF, SGI, RGB, Sun Raster, Kodak Photo CDTM. Интересным моментом для адм и нистратора является следующие особенности системы:
口 правила управления доступом;
口 наличие системы квот;
авторизация пользователя;
ведение журналов.
Программный пакет LPD
LPD — пожалуй, старейший программный пакет для печати в мире UNIX. Идеология стандартна ——существуют программы-утилиты для управления процессом печати и программа-демон, обеспечивающая печать на нескольких принтерах. Благодаря такому построению программного пакета вы
имеете возможность одновременно работать с несколькими принтерами и настроить сетевую печать. В пакет входят следующие программы:
口 Ipd ——демон системы печати;
口 1рг —— пользовательская утилита печати. Ipr выдает новое задание печати в очередь печати Lpd. Синтаксис команды 1卩工 очень прост:
1рг [ <гшция> ] [ <имя^ файла > .】
Если <имя_фа^ла> не задано, 1рг ожидает ввод данных со стандартного устройства ввода. Это позволяет пользователям перенаправлять вывод команд в очередь печати;
口 Ipq ——утилита для просмотра очереди печати. Команда Ipq, запущенная без аргументов, возвращает содержимое очереди печати принтера по умолчанию;
口 1рс —— утилита контроля lpd* С ее помощью можно производить любые манипуляции с очередью печати: добавлять и удалять задания, останавливать печать, переупорядочивать задания в очереди печати и т. д. 1рс чаще всего используется а системах, где несколько принтеров устанонле- но на один компьютер. Команда 1рс используется а интерактивном режиме, однако никто вам не мешает запускать на выполнение эту команду с опциями» некоторые из которых приведены далее:
disable <option> — запрещает добавление любых новых заданий печати;
down <option> —— запрещает все задания на принтере;
enable <option> — разрешает ввод новых заданий в очередь печати;
quit ИЛИ exit — ПОКИНУТЬ 1рС;
restart <option> ——перезагрузить lpd для данного принтера;
status <opLion> — статус печати принтера;
up <option> —— разрешить все и запустить новый демон lpd;
口 Iprm ——утилита для удаления задания из очереди печати. Команда 1ргш удаляет из очереди все задания печати, владельцем которых является пользователь, выполнивший эту команду. Для того чтобы отменить оди^ ночное заданье печати, надо сначала получить номер задания с помощью команды Lpq, а затем сообщить полученный номер команде iprm.
Функционирует система следующим образом. При запуске операционной системы стартует демон lpd. Используя файл /etc/printcap, он узнает, какие принтеры он будет обслуживать. При запуске 1рг (пользователь что-то выводит на печать) взаимодействует с Lpd через именованный сокет /dev/printer и передает LPD-файл для печати н некоторую информацию о том, кто печатает и как печатать файл. Затем lpd печатает файл на соответствующем принтере в порядке очереди-
Настройка LPD
Начнем с простого: настроим струйный принтер DeskJet 400 фирмы Hewlett* Packard. Будем считать, что пакет LPD уже установлен в вашей операционной системе, поскольку он входит во множество дистрибутивов, как стандартная система печати.
Для добавления очереди печати вы должны добавить запись в файл /eic/printcap и создать новый буферный каталог в каталоге /var/spool/Ipd. Запись в файле /etc/printcap выглядит следующим образом:
ЛОКАЛЬНЫЙ deskjet400
Ip I dj [deskj et : \
:sd=/var/spool/Ipd/dj:\
:mx#0:\ :lp=/dev/lpO:\ :sh:
Приведенная ранее запись определяет принтер с псевдонимами 工口, dj или deskjet, очередь печати размещается в каталоге /var/spool/lpd/dj. Отсутствует ограничение максимального размера задания. Печать производится на устройство /dev/lpO и не сопровождается выводом титульной страницей задания с именем человека, распечатывающего документ> которая добавляется перед распечаткой файла. Как видите — все очень просто. Но существует извечная несовместимость текстовых файлов UNIX и Windows: для UNIX в конце текстовой строки достаточно символа перевода строки, для Windows —необходимо наличие символов возврата каретки и перевода строки. Большинство современных принтеров рассчитаны для использования совместно с Windows, и поэтому для нормальной печати текста нм также необходимо в конце текстовой строки наличие символов возврата каретки и перевода строки* Если не учесть эту особенность, при распечатке текста на принтере получится приблизительно следующее:
Строка номер один
Строка номер два
Строка номер три
Строка номер четыре
Это называется лестничным эффектом, и с ним необходимо бороться. Существует много способов, самый простой ——написать небольшой фильтр, через который перед печатью будет пропускаться наш текстовый файл, а результат —уходить на печать.
Поправим нашу запись в файле /etc/printcap следующим образом:
书 ЛОКАЛЬНЫЙ deskjet400
lpIdjI deskjet:\
:sd=/var/spool/lpd/dj : \
:глх#О: \
:lp=i/dev/lpQ: \
:if=/var/spool/lpd/dj/filter: \
:sh:
В документации к printcap описаны атрибуты принтера if ——входной фильтр и of — выходной фильтр. Как видите, мы определили входной фильтр, расположенный в каталоге /var/spool/lpd/dj/ и носящий имя filter. Этот файл представляет собой две строчки, написанные на языке Perl:
! /usr/bin/perl
while (<STDIN>) {chop $_; print °$_\r\n,r ;};
print "\f";
В результате мы получаем принтер, на котором можно корректно распечатать текстовые файлы, используя встроенные шрифты принтера. Для современного мира это не актуально ——практически всегда используется графическая печать. Обычно печатают документы PostScript или графические файлы На первый взгляд ——нетривиальная задача, но на самом деле все достаточно просто. Вспомните еще раз идеологию UNIX — сколь угодно сложные задачи решать применением пос л едовател ьн ости небольших утилит.
Для решения этой проблемы опять применяется свойство файла printcap — наличие входных и выходных фильтров. Если мы будем использовать фильтр, который может воспринимать произвольные типы файлов как ввод, обрабатывать их в зависимости от формата файла и производить вывод на принтер, мы решим нашу задачу.
Такой фильтр называется магическим фильтром (magic-filter). Существует большое количество магических фильтров, причем наверняка несколько такого типа фильтров находится в вашем дистрибутиве операционной системы. Далее приведены некоторые магические фильтры печати:
Apsfilter — фильтр печати для LPD;
口 IprMagic — фильтр печати с неплохими возможностями. Автоматически определяет тип входного документа, есть поддержка печати через Samba,
Учет ресурсов
Обычно в больших фирмах принято хранить информацию о том, кто, когда и сколько печатал. Стандартный пакет LPD предоставляет мало возможностей для учета. С его помощью вы можете указать для этого имя файла, используя атрибут а£= в printcap, но, по большому счету, это не решение проблемы. Пожалуй, лучший вариант ——использовать фильтра который может писать данные в файл учета ресурсов, а вы будете обрабатывать этот файл позже каким-нибудь сценарием обработки статистики.
Настройка сетевого принтера
Одним из важных свойств пакета LPD является то, что он позволяет осуществлять печать по сети на принтер, физически подключенный к другому компьютеру, принт-серверу или просто сетевому принтеру.
Для того чтобы разрешить удаленным компьютерам печатать на ваш принтер, используя протокол LPD, вы должны перечислить эти компьютеры в файле /etc/hosts.lpd. Помимо этого, вн можете разрешить только определенным пользователям с других компьютеров печатать на наш принтер* Для того чтобы печатать на другом компьютере, вы должны в файле /etc/prmtcap сделать следующую запись:
Удален1-[ый deskj et 40 О
lp|dj |d色号k*匸:\
:sd=/var/spool/Ipd/dj:\
:rm=inachine.out. there. com: \
:rp=pr intemame: \
:lp=/dev/null:\
:sh:
Как видно из приведенного ранее текста, на нашем компьютере существует каталог очереди печати, обслуживаемой Ipd. Это позволяет сохранить и распечатать задания позднее в том случае, если удаленная машина занята или отключена. Также мы определяем имя компьютера, который предоставляет нам свой принтер (machine. out, there. com)5 имя принтера на удаленном компьютере (printername) и показываем, что сетевой принтер не подключен ни к какому ресурсу на нашем компьютере (ip=/dev/nuii).
Samba
Поскольку мы считаем, что основной потребитель услуг сервера это Windows-клиенты, то нам нужно сделать доступным наш принтер для них. Для этого нам необходимо отредакт и ровать в файле smb.conf секцию
[printers J :
[printers]
path = /var/spool/Ipd/dj
■writeable 二 no
guest ok - no
printable = yes
Этим мы просто указали, что очередь печати находится там, куда указывает переменная path, и этот объект используется в качестве принтера.
Глава 8
Организация почтового сервера
Задача, которая будет рассмотрена в этой главе, простая — максимально удобно организовать прием м отправление электронной почты сотрудников, с учетом того, что у нас нет csoero доменного имени, и мы пока пользуемся модемным соединением.
Что же мы хотим получить? Поскольку у нас нет своего домена, мы не можем создать у себя полноценный почтовый сервис. Наши сотрудники получат бесплап4ые почтовые ящики, например, на www.inail.ru или www.gmail.conL И будут они, к примеру, petrov@mail.iu, sidorov@maLLru, boss@gmailxoin, admin@list,ru, Казалось бы, ничего страшного, администратор резво пробежится по компьютерам, и все настроит. Но, к примеру, захотел отдел продаж еще один почтовый ящик, а для отдела кадров нужно три, причем в разных доменах. И каждый решает, как ему удобно проверять почту: один —— утречком> другой ——каждые 10 минут. В результате у администратора проблемы —вносить в почтовые клиенты множество учетных записей, и модем постоянно то соединяется, то разъединяется. Одним словом — анархия. Но умные люди придума-чи. как с этим бороться. Оказывается, очень просто —— на нашем сервере мы заводим учетные записи: для начальства, бухгалтерии, кадров и т. п. Почтовые клиенты наших пользователей настраизаем так, чтобы сервер, через который отправлю ют почту и принимают, был нашим внутренним сервером (【92.168.0」,А на нем ставятся следующие службы:
】.Программа, которая забирает почту со всех внешних почтовых ящиков и раскладывает ее в соответствующие внутренние.
Службу POP3 (Post Office Protocol, почтовый интернет-протокол) или IMAP (Internet Mail Access Protocol, протокол интерактивного доступа к электронной почте) для того, чтобы внутренние клиенты могли без проблем забрать свою почту.
Настраиваем SMTP-агент (Simple Mail Transfer Protocol, простой протокол электронной почты), чтобы он организовал очередь исходящих сообщений и отправлял их только тогда, когда есть соединение с Интернетом.
Вроде бы цели поставлены, понятны и достижимы. А начнем мы, как и принято? с небольшой теоретической части. Основой почтовой службы является система адресов. В Интернете принята система адресов, которая 6з・ зируется на доменном имени машины, подключенной к сети. Например» для пользователя ivan машины с именем ogpu.odessa.ua почтовый адрес будет выглядеть так: ivan@ogpu.odessa.ua.
Почтовый адрес состоит из двух частей: идентификатора пользователя, который записывается перед знаком коммерческого at (@), и доменного адреса компьютера. Существует еше один вариант задания почтового адреса — адрес UUCP (UNIX to UNIX Copy Program, протокол, используемый для обмена между согласованными UNIX-системами), который записывается в виде: odessa.ualogpulivan. Правда протокол UUCP сейчас почти не используется*
Дяя работы электронной почты разработан специальный протокол SMTP — простой почтовый протокол, который является протоколом прикладного уровня и использует транспортный протокол TCP.
SMTP
SMTP был разработан для обмена почтовыми сообщениями в сети Интернет. Он не зависит от транспортной средн и может использоваться для доставки почты в сетях с протоколами, отличными от TCP/IP. Взаимодействие в рамках SMTP строится по принципу двусторонней связи, которая устанавливается между отправителем и получателем почтового сообщения. При этом отправитель инициирует соединение и посылает запросы на обслужи- ваниет а получатель на эти запросы отвечает
Как и множество других протоколов, команды и ответы протокола SMTP передаются в ASCII-кодах (American Standard Code for Information Interchange, американский стандартный код обмена информации) и представляют собой небольшой набор английских слов* Протокол, помимо отправки почты, поддерживает переадресацию, прямую посылку сообщения на тер^ минал, обработку ошибок и некоторые другие возможности.
POP3
Протокол обмена почтовой информацией, POP3, предназначен для получения почты из почтовых ящиков пользователей на их рабочие места при помощи программ-клиентов. Таким образом, по SMTP пользователи отправляют корреспонденцию, а по POP3 — получают письма из своих почтовых ящиков. Этот протокол так же основан на установлении двусторонней связи, команды и ответы протокола передаются в ASCII-кодах и представляют собой небольшой набор английских слов.
Протокол IMAP
Еще одним протоколом разбора почты является протокол IMAP ——почтовый протокол интерактивного доступа, который по своим возможностям похож на POP3, но разрабатывался как более надежная альтернатива последнему. Он обладает более широкими возможностями по управлению процессом обмена сообщениями с сервером. Главным отличием его от POP3 является возможность поиска нужного сообщения % разбор заголовков со* общения непосредствен но на почтовом сервере.
Программное обеспечение
Как и многое другое, взаимодействие между участниками обмена почтового сообщения основано на технологии клиент-сервер. Можно выделить три независимых этапа:
взаимодействие по SMTP между почтовым клиентом н почтовым транспортным агентом;
口 взаимодействие между транспортными агентами в процессе доставки почты;
口 получение сообщения из почтового яшика пользователя почтовым клиентом по протоколам POP3 или IMAP.
Итак, начнем с конца ——установки и настройки РОРЗ-сервера,
POP3
Как нм странно, POP3 и IMAP идут в Fedora Core в одном пакете, который называется сугиз-1тар<1-2.2,6-2.РСЗ*6^386,грт. Установка его тривиальна. Настройка, в нашем случае, вообще не требуется.
fetchmail
Есть такая утилита, называется fetchmaii,—— она предназначена для того, чтобы с помощью всех известных почтовых протоколов забирать почту с почтовых серверов, и потом отдать ее локальному МТА-агенту- То есть fetchmail забирает почту с удаленного сервера, потом подключается к 25 порту на localhost * отдает программе sendmail почту, которая уже обычными путями попадает в локальные почтовые ящики пользователей. Варианта настройки fetchmail, по меньшей мере, два — либо для каждого локального пользователя создается свой конфигурационный файл, либо централизованная настройка. Рассмотрим оба варианта.
Первый вариант достаточно прост. В домашнем каталоге пользователя от его имени создается файл .fetchmailrc с правами 600 (rw) ,то есть, чтобы читать и редактировать этот файл мог только пользователь, в каталоге которого он создается. Внутри файла пишем, к примеру^ следующее:
poll рорЗ,gmail,com proto РОРЗ user boss pass superboss to vab
Что здесь мы видим? С помощью рои рорз,giuail.сот определяем, с какого сервера мы собираемся получать почту, proto рорз — задаем, по какому протоколу будет осуществляться скачивание почты, user boss pass superboss ——задаем имя и пароль доступа к удаленному почтовому яшику. Как видите, имя и пароль идут открытым текстом, вот почему при создании файла необходимо ставить права доступа только для владельца файла, to vab — здесь мы показываем, что все, что мы забрали на www.gmailxom, должно помещаться в почтовый хщнк локального пользователя vab. Если нм” на внешней почте совпадает с именем локального пользователяs то to vab можно опустить. Если вы хотите забирать почту еще с какого-то другого почтового сервера, просто добавляем еще одну запись в наш конфигурационный файл.
Но такое решение подходит в том случае, если у вас мало пользователей или вы имеете доступ на локальную машину с Linux. Более интересный вариант для администратора — централизованная настройка получения почты. Дня этого делаем следующее — н домашнем каталоге пользователя root создайте файл .fetchmailrc, в котором мы просто делаем записи для наших локальных пользователей. Например, вот так:
poll рорЗ ,gmail. com proto РОРЗ user boss pass stiperboss to vab poll pop.inail.ru proto POP3 user ivanov pass pass'wd7T to ivan poll pop,mail.ru proto POP3 user 1iv20051 pass mailrupass' to ivan
Программа sendmail
Основным средством рассылки почты является программа sendmail, которая является одной из старейших и сложных в конфигурации. Она позволяет организовать почтовую службу локальной сети и обмениваться почтой с другими серверами почтовых служб через специальные шлюзы. sendmail может быть настроена для работы с различными почтовыми протоколами. Обычно это протоколы UUCP и SMTP, sendmail может интерпретировать два типа почтовых адресов:
口 почтовые адреса SMTP;
口 почтовые адреса UUCP.
Программу можно настроить для поддержки:
口 списка адресов'синонимов;
списка адресов рассылки пользователя;
D автоматической рассылки почты через шлюзы;
口 очередей сообщений для повторной рассылки почты в случае отказов при рассылке;
О работы в качестве SMTP-сервера;
口 доступа к адресам машин через сервер доменных имен BIND;
口 доступа к внешним серверам имен и многого другого.
Принцип работы программы sendmail
sendmai) идеологически копирует обычную почтовую службу ——почта отправляется с заданной пери одичностью т перед этим сообщения собираются в очереди и только затем отсылаются. Как уже упоминалось ранее, каждое сообщение состоит из трех частей: конверта, заголовка и тела сообщения:
口 конверт состоит из адреса отправителя, адреса получателя и специфической информации, которая используется программами подготовки, рассылки и получения понты. Конверт остается невидимым для отправителя х получателя почтового сообщения;
口 заголовок состоит из стандартных текстовых строк, которые содержат адреса, информацию о рассылке и данные. Данные из заголовка могут использоваться для оформления конверта сообщения;
口 тело сообщения следует после первой пустой строки вслед за заголовком сообщения. Все, что следует после этой строки, передается по почте без изменений.
После постановки почтовых сообщений в очередь начинается ее рассьшка. При этом выполняются следующие действия:
口 адреса отправителя и получателя преобразуются в формат сети получателя почты;
□ если необходимо, то в заголовок сообщения добавляются отсутствующие данные;
口 почта передается одной из программ рассылки почты.
Настройка программы sendmail
Настройка программы sendmail происходит с помощью конфигурационного файла /etc/mail/sendmail.cf Этот файл состоит из нескольких частей:
口 описания компьютера (local information)——в данной секции описываются имя компьютера и т. п.;
口 описания макроопределений sendmail, отвечающих за работу в локальной сети;
口 групп имен, которые используются программой для рассылки почты;
口 номера версии файла конфигурации;
口 опций команды sendmail ——определяют режимы работы программы;
口 списка доверенных пользователей;
口 описания формата заголовка почтового сообщения ——в данной секции определяются паля и их формат» которые отображаются в заголовке;
口 правил преобразования адресов;
口 описания программ рассылки;
口 общего набора правил преобразования адресов;
口 машинно-зависимой части общего набора правил преобразования адресов.
Обычно после инсталляции sendmail изменения, которые вносятся в файл конфигурации, касаются только имени хоста, домена и шлюзов. В современных дистрибутивах иногда не приходится делать даже этого. Подробно о конфигурировании sendmail здесь рассказано не будет — разобраться в конфигурационном файле, который имеет окало 100 Кбайт текста, весьма не просто. Для детального ознакомления с конфигурацией sendmail реко* мендуется почитать книгу "UNIX — руководство системного администратора", а также документацию, идущую в комплекте с программой.
Для конфигурирования sendmail можно напрямую вносить изменения в конфигурационный файл sendmaLcf или править небольшой файл sendmail. тс и специальным транслятором переводить его в формат sendmailcfj что более удобно.
Есть два варианта отправления писем: первый ——письма накапливаются в очереди почтовой программы и отправляются в тот момент, когда есть подключение к Интернету. И второй вариант — доставка писем моменталЬ'- но, т. е, почтовая программа проверяет, есть ли соединение с Интернетом, и если его нет, то указывает модему соединиться, а затем отправляет письмо. Для первого варианта необходимо внести в файл sendmail.тс следующие изменения:
define {'ccnfCON^EXPENSIVE1, ' True1 } define(SMTPJ«[AILER_FLAGS. e) MAILER{local)dnl MkILER(Bmtp)dnl
И сгенерировать файл sendmaiLcf следующей командой: m4 sendmail,mc > sendmail.cf
Для второго варианта нам необходимо добавить следующую строку в sendmail.mc:
FEATURE (nocanonify) dnl
Однако с нашими телефонными линиями нам необходимо учитывать время, потраченное модемом на дозвон и соединение. Это позволит sendmail повторить попытку доставки почты в том случае, если получен отказ (модем еще не соединился), через время, указанное нами. Для этого в файл sendmaiLmc необходимо добавить следующую строку:
define{(confDIAL_DELAY,,'60s')
Она задает интервал между попытками в 1 минуту. После этого выполняем команду тп4 sendmail ,шс > sendmail *cfT с помощью которой получаем новый конфигурационный файл.
Вот и вся цепочка. Теперь остается только настроить клиентские программы и пользоваться электронной почтой.
Глава 9
DHCP
Как вы знаетеs без IP-алреса компьютер не может быть включен в сеть с протоколом TCP/IP. Б малой сети назначить IP-адреса каждому компьютеру и прописать их в соответствующих местах не представляет особого труда. Однако со временем это надоедает, хочется простоты —— принес новый компьютер, включил в сеть, а он сам все что нужно н получил. Для решения проблем с автоматическим назначением IP-адресов, выдачи некоторых параметров и предназначен протокол DHCP.
Архитектура и формат сообщений
DHCP —— классический клиент-серверный протокол динамического конфигурирования хостов, предназначенный для управления сетевыми параметрами компьютеров. Клиентами выступают компьютеры сети, пытающиеся получить IP-адрес, адрес сетевого шлюза, сетевое имя и другие параметры, о которых вы узнаете чуть позже. DHCP-сервер выдает в ответ на запрос клиентов назначаемые нм сетевые параметры, контролирует использование IP-адресов, поддерживает пул свободных адресов и ведет собственную базу клиентов.
В роли транспортного протокола для обмена DHCP-сообщениями выступает протокол UDP, При отправке сообщения с клиента на сервер используется 67 порт DHCP-сервера, при передаче в обратном направлении — 68. Эти номера портов, как н схожая структура сообщений, обеспечивают обратную совместимость протоколов DHCP с ВООТР (Bootstrap Protocol, сетевой протокол, определяющий процедуры взаимодействия с узлами, не имеющими жестких дисков).
Режимы выдачи IP-адресов
Казалось бы, раз протокол предназначен для динамической выдачи адресов, то и режим один ——динамический. Однако чтобы не лишать администратора
гибкости при назначении IP-адресов, предусмотрено три режима: статический» динамический и ручной. Рассмотрим их отличия:
статический — DHCP-сервер конф и гур ируется таким образом, что компьютерам назначаются неизменные со временем 1Р-адреса;
динамический ——компьютеры получают IP-адреса^ которые могут меняться с течением времени;
口 ручной — DHCP-сервер уведомляет клиента об адресе, присвоенном ему администратором сети вручную.
Как видите, первый и последний случаи достаточно тривиальны, и особо на них останавливаться не будем* Нас интересует второй случай ——динамическое распределение адресов.
Выдача IP-адреса в аренду производится по инициативе (запросу) клиента, при этом гарантируется, что до истечения срока аренды этот IP-адрес не будет выдзн в аренду другому клиенту. DHCP-сервер обычно настраивается таким образом, что при повторных обращениях клиента в течение определенного срока (зависит от администратора, обычно неделя-две) он старается выдать клиенту 1Р・адрес* использовавшийся им ранее. Клиент может (при соответствующей настройке) запросить продление сроков аренды IP-адреса, либо досрочно от него отказаться.
Параметры конфигурации DHCP клиента
В качестве параметров конфигурации ЭНСР^сервер может выдать клиенту, помимо JP-адреса и сетевого имени, достаточно большой объем данных. Далее мы перечислим основные данные, которые может получить клиент*
Маска подсети,
MTU (максимальный размер передаваемого пакета),
TTL (время жизни пакета).
Адреса cookie-серверов.
Адреса DNS-серверов.
Адреса finger-серверов.
Адреса lRC-серверов.
П Адреса log-серверов.
Адреса LPR-серверов,
Адреса WINS-серверов.
口 Адреса NIS-серверов.
口 Адреса NNTP-серверов.
口 Адреса NTP-серверов.
口 Адреса почтовых серверов.
口 Адреса TFTP-серверов.
Адреса web-серверов.
А также большое количество второстепенных параметров, полное описание которых можно найти з документации на DHCP-сервер,
DHCP-сервер
Начнем описание программного обеспечения с серверной части, как наиболее трудоемкой в настройке м более ответственной. Программное обеспечение DHCP-сервера входит, практически, в любой современный дистрибутив, Если же вы не обнаружили его на дисках, можно загрузить его с сайта Internet Software Consortium (разработчика DHCP) — wwwJsc.org.
Установка пакета не должна вызвать никаких сложностей. После нее нужно убедиться, что демон dhcpd будет автоматически стартовать при загрузке операционной системы. За конфигурацию dhcpd отвечают два файла: /etc/dhcpd,conf и /var/lib/dhcp/dhcpd,ieases.
Файл dhcpd.conf
В этом файле содержатся все настройки DHCP-сервера. Сначала опишем эти настройки,а после рассмотрим типичные конфигурационный файлы. Итак, файл dhcpd.conf содержит конфигурационную информацию для демона dhcpd. Он представляет собой текстоаый ASCII-файл. Комментарием является строка, начинающаяся с символа Конфигурационные переменные состоят из двух частей: параметров и значений, заканчивающихся точкой с запятой. Глобальные параметры, действие которых распространяется на все группы, размещаются вначале данных, до описания групп. Вначале файла можно определить параметры, действие которых будет распространяться на все группы данных:
ddns-update-gtyle none ——разрешает либо запрещает использование динамического обновления DNS;
option domain-name htest *org" — этот параметр задает имя домена, в котором функционирует DHCP-сервер, В дальнейшем можно не указывать в переменной host полное имя хоста;
口 option domain-name-servers имена DNS-c&pBepoa — параметр определяет список DNS-сераеров, используемых DHCP-сервером при разрешении символических имен;
口 option netbios-name^servers список IP-^дресав ——ЭТОТ параметр, если клиент использует протокол NetBIOS, определяет список WINS-серверов;
option netbios-node^type цифровое зн^чение — параметр определяет порядок Использования параметра netbios-name-servers:
1 — использование широковещательньк запросов вместо WINS-сервера;
а ——использовать только WINS-сервер;
m — сначала использовать широковешательные запросы, затем WINS- сервер;
4 — сначала использовать WINS-сервер, затем широковещательные запросы;
口 option nis-domain i,test ,orgu —— если присутствует поддержка NIS, можно задать домен подсети;
口 max^iease-time секунды — параметр определяет максимальное время аренды IP-адреса клиентом в секундах. Если за это время клиент не запросил о подтверждении аренды адреса, клиент считается отсутствующим в сети, и его IP-адрес считается свободным для аренды;
default-iea.se-time сенунл&——параметр определяет время по умолчанию аренды IP-адреса клиентом в секундах. Если за это время клиент не запросил о подтверждении аренды адреса, клиент считается отсутствующим в сети;
min-iease-time секунды — параметр определяет минимальное время аренды IP-адреса клиентом в секундах* Если за это время клиент не запросил о подтверждении аренды адреса, клиент считается отсутствующим в сети.
Следующие три параметра позволяют задать способ взаимодействия с клиентами, которые не определены в списке хостов DHCP-сервера (отсутствуют МАС-адреса):
allow unknown-clients ——разрешает выдачу IP-адреса для неизвестного клиента;
口 deny unknown-clients ——отклоняет выдачу IP-адреса для неизвестного клиента;
ignore unknown-clients ——игнорирует запросы неизвестного клиента на получение IP-адреса.
Следующие параметры позволяют определить стратегию сервера по взаимо^ действию с клиентамиt посылающими запрос по Ьоо1р^протоколу:
allow bootp — разрешить получение IP-адреса по ВООТР;
deny bootp ——отклонять запросы по ВООТР;
ignore bootp ——игнорировать запросы по ВООТР.
Логически связанные параметры могут находиться между фигурными скобками о, перед ними ставят конфигурационную переменную, к которой применяются эти параметры (листинг 9,1)+
В качестве таких переменных могут выступать:
口 subnet;
О group;
口 host.
subnet 204,254.239.64 netmask 255.255.255.224 ( параметры подсети
range 204*254.239.74 204.254.239,94;
group {
параметры 用утшьг
host vasya.test.org {
параметры хосте
host petya.test*org [ параметры ^оста
Здесь:
口 subnet тр-адрес netmask маска сети — этот параметр определяет цдрес подсети и маску, для которой DHCP-сервер буцег выдавать динамические IP- адреса- В конфигурационном файле может быть несколько записей subnet:
range ТР-йдреа 出aqw耳引 диапазона IP-адрес конц^ дизп^зонз 一 параметр задает диапазон IP-адресов, из которых сервер может выдавать адреса для данной подсети. Параметр range необязательный, при его отсутствии диапазон динамически выдаваемых IP-адресов определяется исходя из подсети и ее маски;
option domain-name 11 test.orgH —— этот параметр задает имя домена, в котором функционирует DHCP-сервер, В дальнейшем можно не указывать в переменной host полное имя хоста;
option nis-domain пtest.org"——если присутствует поддержка NIS, можно задать домен подсети;
option routers ip-адрес ——параметр содержит список IP-адресов маршрутизаторов;
option subnet-mask ма ска подсети——параметр позволяет задать маску подсети;
option domain-паше-servers имена DNS-серверов — параметр определяет список DNS-серверов, используемых DHCP-сервером при разрешении символических имен;
range dynami с -boo tp IP-адрес нвч^ла диапазона IP-адрес конца диапазона ——этот параметр задает диапазон адресов для клиентов, которые производят загрузку по протоколу ВООТР;
option broadcast-address ip-адрес — параметр определяет адрес для посылки широковещательных сообщений*
口 group — параметр, с помощью которого для некоторого набора хостов можно задавать некоторые обшие параметры. Эти параметры уже упоминались в описании глобальных параметров и в описании подсети;
口 host имя хоста — этот параметр позволяет задать для хоста имя хоста и некоторые параметры, специфичные именно для него:
hardware ethernet хх: xxi хх: хх:jcx: хх—— парЯМ&Тр определяет ТИП сетевого интерфейса и его МАС-адрес, который записывается в виде хх: хх: хх:хх:хх:хх (для Ethernet-карты), где хх ——восьмибитное число в шестнадцатеричном представлении;
fixed-address IP-адрес ——параметр позволяет зафиксировать IP- адрес за определенным хостом;
filename "filename" — параметр задает имя файла, который загружает клиент после получения IP-адреса. Используется для загрузки бездисковых клиентов.
Помимо этого существует еще десятка два конфигурационных параметров, однако они достаточно специфичны и в большинстве случаев не исполЬ' зуютсл.
Файл dhcpd.leases
Файл dhcpdJeases представляет собой базу данных, в которой хранятся записи о клиентах и арендованных ими IP-адресах, Запись представляет собой несколько строк следующего вида:
lease 192*168.0.27 {
starts 5 2005/03/20 口9: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-адрес взят в аренду;
口 starts 5 2 005/03/20 09:14:54 — начало срока аренды (в данном случае 20 марта 2005 года в 9 часов 14 минут и 54 секунды);
ends 5 2 005/03/27 09:14:54— предполагаемый конец аренды (если клиент не запросит продления аренды)* Легко заметить — время аренды равно 7 суток;
口 hardware ethemet 00:60;67:75;40:37 — данный параметр показывает, что сетевой интерфейс, которому назначен IP-адрес, это Ethernet-карта с МАС-адресом 00:60:67:75:40:3 7;
uid 01 :оо : 60 : 67 ;7 5 г4 0 : 37 — необязательный параметр. Идентификатор клиента> основывается на протоколе ARP и для Ethernet-карты представляет собой МАС-адрес, впереди которого добавлена 1;
О client-hostname "Test" — сетевое имя клиента.
Помимо этого есть еще десяток параметров, с которыми вы можете ознакомиться в справке к программе dhcpd.
Пример файла dhcpd.conf
Теперь, когда мы имеем представление о структуре файла dhcpdxonf, рассмотрим конфигураиионный файл (листинг 9.2), в котором описывается простая локальная сеть со следующими характеристиками:
адрес сети 191168,0.0;
маска сети 255.255.255.0;
домен test.org;
один DHCP-сервер с адресом 192/68.0」;
один DNS-сервер с адресом 192.168.0.1;
口 один шлюз с адресом 192J68.0.1;
口 11 клиентов» получающих адреса, причем один из них всегда постоянен.
仲global options
ddns-update-sty1e none;
option domain-name "test.orgH;
option domain-name-servers 192.168.0.1;
7 X 24 hours - lease time
default-lease-time 604800;
max-lease-time 604600;
my subnet
subnet 192.168.0,0 netmask 255.255.255.0 { range 192.168.0.5 192,168,0*20;
option routers 192 * 168 *0.1;
host vasya {
hardware ethemet 00:10:58:bc:10:03;
fixed-address 192 Л6б*0Л7;
Что же мы видим в листинге 9.2? Первая строка — комментарий, показывает, что дальше идет описание глобальных параметров. В следующей строке мы запрещаем использовать динамический DNS. Затем мы определяем имя домена и адрес DNS-сервера, После этого определяем время аренды IP- адреса клиентами в семь суток. Потом определяется наша подсеть, в описании которой мы задаем диапазон динамических IP-адресов и адрес маршрутизатора. Наконец, последняя секция ——определяем хост со статическим IP- адресом с именем vasya.
DHCP-клиент
DHCP-клиент уже встроен в операционную систему Windows. Настройка его элементарна — при конфигурировании сетевого интерфейса выбираем настройки IP. И выставляем две меткиt как показано на рис. 9.1.
Мы просто ставим две метки — Получить IP-адрес автоматически и Получить адрес DNS-сервера автоматически. Этого достаточно, чтобы наш клиент получил автоматически все настройки при старте операционной системы от нашего DHCP-сервера.
Рис. g*i・ Настройка Windows для получения настроек no DHCP
Глава 10
Сетевые настройки сервера, маршрутизация и DNS
В этой главе мы займемся созданием точки доступа в Интернет для локальной сети. Обычно для этого используется выделенная линия, по концам которой установлены модемы, подключаемые к какому-то интерфейсу. Раньше это были обычные модемы и подключались к последовательному порту, В последнее время для организации подключения по выделенной линии используются технологии xDSL (Digital Subscriber Line, цифровая абонент^ ская линия), при которых специальные модемы подключаются по последовательному порту (старые и медленные модемы), а более скоростные либо через USB или Ethernet-соединению напрямую к сетевой карте. Для определенности будем считать, что у нас есть модем, подключенный к сетевому интерфейсу.
Для нашего соединения провайдер должен нам выдать IP-адрес нашего сетевого интерфейса^ адрес шлюза, к которому мы будем подключаться, адрес DNS-сервера. Еще мы должны потратить немножко денег и купить у провайдера внешний IP-адрес, купить домен для вашей фирмы (к примеру, firma^ru) и докупить еще одну сетевую карту. Для чего нужен внешний IP- адрес? Поскольку я предполагаю, что вата фирма захочет иметь свой собственный домен, почтовый сервер и web-страницу, то вам неминуемо придет** ся либо договариваться с провайдером и платить деньги за эти услуги (у кого как ——обычно идет разговор от 10 долларов в месяц), либо настроить все самостоятельно на своем сервере.
Второй вариант, в большинстве случаев, предпочтительней, поскольку это наиболее гибко настраиваемое решение при минимальных дополнительных денежных затратах. Стоимость домена на год обычно составляет 17—20 долларов, и приобрести его можно как самостоятельно, так и при содействии вашего провайдера. В последнем варианте провайдер обычно бесплатно предоставляет вторичный DNS-сервер для вашего домена. Для чего, это вы узнаете позже, в разделе настройки DNS^cepBepa.
Организация связи по выделенному каналу
В отличие от настройки связи по коммутируемому соединению, организация соединения по выделенному каналу намного более простая задачаь Для нашего варианта соединения нам необходимо установить дополнительную сетевую карту, к которой будет подключаться DSL-модем. Для этих целей подойдет любая сетевая карточка ценой от 6 долларов. Неплохо зарекомендовали себя сетевые карточки на чипе Realtek. И что самое приятное, дистрибутив при включении компьютера сразу после установки сетевой карты обнаруживает ее и предлагает сконфигурировать. Вот тут необходимо иметь под рукой параметры соединения, выданные провайдером, как-то: IP-адрес нашей сетевой карты, к примеру, 195.66.200.100; IP-адрес шлюза провайде* ра, через который мн ходим в мир, к примеру, 195.66.200.103; маску подсети, это зависит от провайдера и может быть что-то типа 25 5.25 5.255.250; адрес DNS-сервера провайдера.
Введя эти данные при конфигурировании системы, можно подключить DSL-модем и по индикаторам убедиться, что физическая связь с противоположным модемом в наличии и модем нормально соединен с нашей сетевой картой. Далее проверяем прохождение пакетов. На сервере пропингуем противоположный адрес нашего моста — ping 195,66,200. юз. Если все нормально, ен получите ответы с той стороны. Если нет, то вы где-то ошиблись — либо в адресе интерфейса, либо в сетевой маске.
Следующим этапом должна быть настройка шлюза для нашей локальной сети. Это не так сложно как кажетсяt поскольку большую часть работы мы проделали при настройке модемного соединения. В дальнейшем мы должны поменять наши настройки маршрутизации ——все, что не относится к нашей локальной сети должно уходить на адрес провайдера. Изменить настройки можно с помощью программы route.
Также мы должны повторить операцию по настройке маскарадинга, но с учетом новых реалий.
iptables -t nat -A FOSnWTING -s 192.168,0.0/24 -о 195.66,200,100 -j MASQUERAEE
Эта строчка позволяет нашей локальной сети выходить в Интернет. Далее проверяем, как функционирует выход из локальной сети в свет:
ping www.bhv.ru
Если все было настроено корректно, то вы увидите отклик от сайта www.hhv.ru. Если у вас все прошло именно таким образом, значит, система работает как надо. В противном случае проанализируйте последние строки системного журнала (/var/log/messages)5 также проверьте корректность на* стройки протокола TCP/IP на этой машине, в частности настройки сетевого шлюза, которые должны указывать на наш маршрутизатор.
Как видите, вмешательство в сетевьЕе настройки минимальные, но это только первый этап. Следую!лая часть работы 一 это настройка DNS-сервера.
DNS
По стандартам для поддержки домена необходимо наличие двух DNS・ серверов: первичного н вторичного. Это необходимо для надежности функционирования DNS-служб — если один сервер по каким-то причинам недоступен* то второй берет на себя обслуживание запросов ло домену,
А вот стратегии организации DNS для вашего домена firma.ni могут быть различными. Самый простой дяя администратора, но не самый дешевый,— прописать свой домен на DNS-серверах провайдера. При этом следует учитывать, что некоторые провайдеры прописывают домены клиентов в оба своих сервера, а некоторые — только в первичный, либо только во вторичный. Другой вариант — один DNS-сервер настроить у себя, а второй — у кого-то еще. В частности, на Украине есть бесплатный первичный (http://primaryns.kiev.ua) и пва вторичных сервера (http://secondary.net.ua и http://ns2.trifle.net), Мы рассмотрим конфигурирование первичного DNS- сервера на собственном примере.
Настройка первичного DNS-сервера
Настройка первичного DNS-сервера несколько сложнее, чем кэширующего, но, в основном, файлы и записи те же самые. Рассмотрим настройку первичного DNS-сервера для домена firma.ru.
Файл /etc/named.conf
Для нашего сервера данный файл должен содержать следующие строки: options ( directory ,f/var/named,г;
// a caching only nameserver config
controls {
inet 127.0.0,1 allow { localhost; } keys { mdckey; };
гопегопе” IN {
гопе
гопе
type hint;
file "named.ca";
};
zone -localhost4 IN {
type master;
file HlocaIhost. zone11; allow-update { none; };
zone H 0.0.127,in-addr,arpah IN {
type master f
file "named,local,r ; allow-update { none; };
include ,r/etc/mdc,keyn ;
//**********************************
〃 Our domains*
//**************★*******************
zone "firm.ru" IN {
type master;
file;
allow-transfer { 195.66,200,0/24; };
//***********************★**★*****★*
// Office LAN*
^^*** + ** + + * + **-*** + + ** + ***** + *'******» 2 one " f irma." IN {
type master;
file "firma";
allow-transfer { none; };
逢工工ow-quary { 192.168.0.0/24; };
zone 168.192 * in-addr »arpah IK {
type masterг file "firma"; allow-transfer { none; }; allow-query ( 192.168,0,0/24; };
Секция zone "Einna.ru” определяет, что наш DNS-сервер предназначен для зоны firma.ru и является в ней мастером (другие серверы лишь синхронизм-
CeygB&s “стр白讪酬 8Pg叩a」M^pwgyw錮rm灯产 DNS『39
руют по нему свои записи по зоне firma,ru), при изменении записей в зоне не извещает другие серверы и использует для описания зоны файл firma.ru.
Секция гопе '"finna" определяет^ что наш DNS-сервер предназначен для зоны firma, и является в ней мастером, при изменении записей в зоне не извещает другие серверы и использует для описания зоны файл firma (наша локальная сеть), и не разрешает получать другим DNS-серверам информацию об этой зоне.
Секция zone "0.168.192,in-addr*arpart определяет, что наш DNS-сервер поддерживает реверсную зону о •丄68 • 192 • in-addr.arpa, является в ней мае* тером, при изменении записей в зоне не извещает другие серверы и использует для описания зоны файл 192.168+0.
Файл /etc/named/f lrma.ru
В файле зоны firma.ru поместим следующие данные:
$TTL 86400
@IN SOAns - f irma, ni. hostmaster. firma.ru. {
2005020501 28E0O 7200 604800 R640口 )
IN
NS
ns. f irma. ua *
IN
NS
ns»te*net*ua.
IN
NS
пз1.tenet.Odessa .u&*
IN
MX
10firma. firma.ru.
IN
MX
20relay3 . te,net ,ua
IN
A
195*66.200*100
ns
IN
A
195.66.200*100
WWW
IN
СЫАМЕ
ns
firma
IN
CNAME
ns
localhcst
A
127.
.0.0,1
ns
A
192.
.168.0.1
Этот файл зоны содержит 4 записи ресурсов (Resource Records, RR):
口 soa rr — запись SOA (Start Of Authority, начало полномочий) находится в преамбуле каждого из файлов зон, она должна быть первой записью в файле. Описывает зону, откуда ее берут (ns<firma.ru), кто отвечает за содержимое зоны (hoatmaster^finna,ru)t какая версия файла зоны текущая (serial : 1);
us hr — это RR для сервера имен (Name Server, NS);
мх rr — запись MX (Mail eXchanger} почтовый сервер) сообщает почтовой системе, куда посылать почту, адресованную любому адресату в домене firma.ru, в нашем случае — серверам firma.firma.ru. или relay31e.net.ua. Число перед каждым именем системы — это приоритет записи MX RR. Запись ресурса с наименьшим номером (10) — это хост, куда почта должна посылаться в первую очередь. Если происходит ошибка, то почта может быть послана на машину с большим номером и т. д. Таким образом, можно указать несколько почтовых серверов, что поможет вам в случае форс-мажорных обстоятельств не потерять ваши почтовые сообщения;
а йн — A (Address, адрес) — 1Р-адрес:
localhostА127,0,0,1
nsА192.168.0.1
mailА192.168.0*40
Эти строки описывают соответствие имен mail и ns в зоне firma.ru их IP-адресам.
Файл /var/named/firma
Файл зоны для нашей локальной сети будет иметь следующий вид:
$TTL 86400
QIN SOAns,firma. hos tmaster.f irma.(
2005021402
28800
7200
604800
06400 )
IN
NS
ns * firms.
IN
TXT
"f irma local domain11
IN
A
192.168,0.1
ns
IN
A
192,166*0Л
server
IN
CNAME
ns
Файл /var/naed/firma.rev
Для нормального функционирования DNS-сервера требуется обратная (реверсная) зона, которая дает возможность DNS преобразовывать IP-адреса в имена хостов. Эти имена используются серверами различного рода (FTP, IRC и т. п,). Поэтому обратная зона требуется для полного доступа к различным службам в Интернете.
Файл реверсной зоны для локальной сети имеет следующий вид:
$TTL
86400
IN
SQA ns. f irma,
hostmaE ter.firma.
2003122401 36000
3600 720000 06400
IN
NSns. f irma,
Вот, собственно, и все. Перезапускаем DNS-сервер и проверяем правиль
ность функционирования нашей системы.
Настройка вторичного DNS-сервера
Открою вам страшную тайну — сервер может быть одновременно первичным н вторичным DNS-сервером для разных зон. Предположим, что нас попросили стать вторичным DNS-сервером для домена, к примеру, CDfree.ru* Рассмотрим, что же нам необходимо для этого сделать*
Файл /etc/named.conf
В этом файле для домена CDfree.ru появится такая запись:
//★**★****★***************■*■*★*******
// Secondary*
{ f*w*±*ii**lt*ititlt*ltii** *************** 女
zone "cdfree.ru" IN { type slave; wasters { 195.108.80.22; }; file "cdfree.ru";
Что мн здесь имеем: тип DNS-сервера определяется строкой type slave; (подчиненный, вторичный). Строка niasters { 195. ior * во. 22; } ; указывает, какой DNS-сервер является первичным и откуда наш сервер будет брать информацию. И последняя строка file "cdfree-run ; определяет, как называется кон фи гураци о н н ы Й файл зоны.
Файл /etc/named/CDfree.ru
$ORIGIN .
$TTL 86400; 1 day
cdfree.ru IN SOA na,cdfree,ru. hos tmaster,cdfree * ru. {
2004220403 ; serial
28800; refresh (8 hours)
14400
3600000
;retry (4 hours|
;expire (5 weeks 6 days 16 hours)
86400
NS
А
MX
$ORIGIN cdfree.ru.
nsА
;minimum (1 day)
ego,te,ru, 195.108,80.22
10 ego.te.ru,
195*108.80.22
WWWА
195.108,80.22
Этот файл синхронизируется с содержимым соответствующего файла первичного DNS-сервера,
Некоторые тонкости
Того* что мы рассмотрели, вполне достаточно для настройки небольшого DNS-сервера, тем не менее разберем еще несколько полезных вещей, которые необходимо знать.
Записи ресурсов службы DNS
Давайте рассмотрим несколько расширенный файл описания зоны:
gw
A
192,168,0,2
HINFO
hi48611 "RH 6.2h
TXT
"The router"
ns
A
192.168.0.1
MX
10 mail
HZNFO
11 Pentiwn3"9n
WWW
CNAME
ns
User
A
192.168.0,3
MX
10 mail
HINFO
RM'"血 ndowsZO口0"
TXT
"Developer ccurputer home tel 223344"
Помимо
знакомых вам
строчек появились строки, содержащие hinfo, cname
И TXT.
hinfo — информация о компьютере (Host IN Formation) состоит из двух частей: первая часть — это информация об оборудовании машины, а вторая —описывает программное обеспечение и операционную систему
данной машины. Помимо этой информации не рекомендуется вносить ничего другого. Пример:
HINFO " Pentiums1' "RH 9"
Из данной строки видно, что наш DNS-сервер собран на базе процессора Pentium 111 и на нем установлена операционная смствма Linux Red Hat 9;
口 cname — каноническое имя (Canonical NAME) — это способ присвоить каждой машине несколько имен. При использовании смаме необходимо следовать правилу, что записи мх, скане или soa никогда не должны ссылаться на имя, указанное как запись скгаме;
口 тхт ——произвольная текстовая информация. Обычно используется в качестве расширенного комментария для описания хоста. Пример:
TXT "Developer computer home tel 223344"
Из содержимого строчки понятно, что это компьютер разработчика, а его домашний телефон ——22 3 344.
Так же существует еще один тип записи ——RP (Responsible Party, группа ответственных). В принципе эта же информации может храниться и в записях тхт, однако применение записи RP ускоряет поиск данных об ответственных лицах. Список основных записей ресурсов службы DNS приведен в табл. ЮЛ.
Таблица 70* 九 Основные записи ресурсов (RR) службы DNS
Обозначение записи
Содержание записи
Номер RFC или автор проекта
А
IP-адрес хоста
RFC 1035
АААА
Адрес IPv6
Проект, автор Thomson
CNAME
Каноническое имя домена
RFC 1035
GPOS
Географическое положение
RFC 1712
HINFO
Информация о хосте (процессор и ОС)
RFC 1035
ISDN
Адрес ISDN
RFC 1183
KEY
Ключ шифрования
Проект, автор Eastlake
LOC
Расположение
Проект, автор Vixis
MX
Имя хоста или домена для переадресации почты
RFC 1035
NSAP
SAP-адрес (адрес А в формате NSAP)
RFC 1706
NSAP-PTR
Аналог записи РТА для адреса NSAP
RFC 1706
7 Зак 1SQ0
Таблица 10,1 (окснчание)
Обозначение записи
Содержание записи
Номер RFC или автор проекта
NULL
Пустая запись ресурса
RFC 1035
NXT
Следующий домен
Проект» автор Eastlake
PTR
Указатель на имя домена
RFC 1035
RP
Ответственные лица
RFC 1183
SIG
Цифровая подпись
Проект, автор Eastlake
SRV
Выбор сервера
Проект, автор Vixie
TXT
Произвольный текст
RFC 1035
WKS
Описание подключенных сервисов
RFC 1035
X25
Адрес Х.25
RFC 1183
Реверсная зона
Не забывайте об обратной (реверсной) зоне! Очень неприятно^ когда по этой причине вы не сможете воспользоваться FTP-сервером или получите сообщения о нарушениях системы защиты.
Два сервера DNS
Существует множество причин, по которым нежелательно раскрывать всю информацию о вашей сети через службу DNS. Поэтому рекомендуется создать два DNS^cepBepa: для внутренних пользователей и для внешних.
Иерархические поддомены
Если в вашей организации используется более одной подсети, то вам придется задать несколько доменов in-addr .агра. Создание поддоменов, подчиненных первичному домену, целесообразно также при наличии в вашей организации нескольких отделов или подразделений. Эта облегчит мониторинг сети, а также упростит организацию доступа в сеть и установку защит^ ных фильтров. Конечно, если ваша сеть состоит всего из нескольких машин, смысла в создании иерархии доменов просто нет.
Используйте серверы кэширования
Если вы занимаетесь обслуживанием сети, рекомендуется установить кэширующие DNS-серверы, если не на каждый компьютер, то в каждой подсети.
Сетунью настре诵ки gpoep% мвршругмз 號斗时貝 м DR/S了95
Быстродействие, которое обеспечивает такой подход, становится заметным уже в сетях средней сложности.
Инструменты
Для тех, кто не хочет подробно изучать настройку DNS с помощью конфи - гурационных файлов, существуют доступные инструменты, позволяющие вносить изменения, особо не задумываясь. Произведите поиск, и вы наверняка найдете десяток-другой программ для удаленного администрирования DNS^cepsepa, в том числе и имеющих графическую ^дружественную'1 оболочку. В частности, исходный код на языке HTML для создания инструментария по управлению службой DNS можно найти в Интернете по адресу http://webdnsJcs.init.edu/cgi-bin/webdns/. Существует также универсальная программа для администрирования множеством сервисов через Интернет —— Webmin.
Глава 11
Почта
Несколькими главами ранее мы уже рассматривали процесс конфигурации почтовой службы для нашей локальной сети. Однако с получением своего собственного доменного имени нам придется вспомнить, что же мы делали, и немного изменить настройки. Пугаться не нужно, мы только должны показать нашему МТА-агенту, что у него появился свой собственный домен. Для этого нам придется опять покопаться в конфигурационных файлах sendmail. Опять же? для простоты, я просто приведу несколько укороченный файл, в котором оставлю только критически важные для настройки нашего сервера части.
define「PRCX3IAIL_MAILER_PATH 1r /usr/bin/procmail') cinl
Определяет путь к программе peocmaiL
define t1ALIAS_FILE', '/etc/aliases'}dnl
Определяет путь к файлу псевдонимов.
FEATURE (redi rectjdnl
FEATURE [ always_add_doma in) dnl
Разрешает пересылку почты и добавление имени домена.
FEATURE (' blacklist_recipients 1) dnl
FEATURE (' dnsbl I I dnsbl .njaM , org' )dnl
FEATURE「dnsbl L 1 drbl .onl ine. com. ua' ) dnl
FEATUREt(dnsblh. 'bl.spamcop.net1 ^ (,rSpam blocked see: http: / / spamcop. net/ Ы . shtnd ?M S& (client_addr) 1 ) dnl
Вот этот кусок конфигурационного файла позволяет работать с черными списками, которые ведутся на серверах dnsbl.njabl.org, drbLonlinexom.ua,
bLspamcop.net. Как уже упоминалось ранее — вещь спорная и достаточно неоднозначная, не далее как неделю назад крупный одесский провайдер по пал в такой список. В результате, по отзывам пользователей, почта^ ориентированная на США, Англию и частично на Россию, не ходила. Сам провайдер эту проблему устранял около суток. А произошло это по банальной причине — кто-то из пользователей в Интернете получил 1,подарок'\ при помощи которого с его компьютера рассылался спам* Служба, определяющая инеблагонадежныеф, адреса, не особо раздумывая, внесла весь диапазон адресов провайдера в черный список. Так что, если хотите, оставляйте» но я все-таки склоняюсь к тому} чтобы не использовать черные списки.
dnl FEATURE('асcept_unresolvable_domains 1)dnl
А вот эта запись запрещает прием почты с адресов, для которых не смогли получить их символическое имя*
UJPUT^AIL^FILTER (' clamav-milter'『1 S=local : /var/clamav/clmilter. socket, F=^ T=S: 4m;R:4m;E: 10m')
Эта запись должна быть вам знакома ——она предназначена для того? чтобы антивирусная программа clamav проверяла поступающую почту. В целом же конфи1урационный файл будет иметь приблизительно такой вид:
dnl This is the sendmail mcro 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 dnlm& /etc/mail/sendmail.me > /etc/sendmail.cf
dnl
include(*/usr/share/sendmail^cf/m4/cf,)
VERSION1D (' 1 inux setup for FedoraCore 3 Linux') dnl
OSTYPEf'linux*)
dnl Uncennent and edit the follcwing line if your mail needs to be sent out dnl through an external mail server:
dnl define (' SMART_HOST I ' smtp - your * provider')
define「C0n£DEF_USER^工口' F ' '8:12 ' 1)dnl
undeEine「UUCP_REIAY,) dnl
undefine「BITNET-JIELAY') dnl
define ( ' conf AUTO_REBUILD * ) dnl
define ( h confTO^CONNECT L 1 lmh)dnl
def ine {1 confTRY_JMULL_JlX_LIST', true) dnl
define{' confDONT_PROBE^INTERFACES I true) dnl
define (' PROCMAIL_J1AILER_PATH1, ' /usr/bin/procmail' }dnl
detine{'ALIAS^ILE' f '/etc/aliaseB' )dnl dnl define(1STATUS_FILE1, 1/etc/mail/statistics1}dnl define{*UUCPAJLEE5AXL ^OOOOOO' }dnl
define (1 con£USERDB_SPEC *, f /etc/mail/userdb,db1 }dnl
define (*confPRIVACY_FLAGS I ' authwarnings,力ovrfy,noes^n, restrictqrun1)dnl define (гсоп£лиТН_ОРГЮТЗ3 A )dnl
define ( ^FFKJIILTERI true)
dnl TRUSTJUTH_MECH( TDIGEST-MD5 CRAM-MD5 LOGIN PLAIN* )6nl
dnl define ( ' CCnfAUTH_J<ECHANlSMS ' , 'DIGEST-MD5 CRAM-MD5 LOGIN PLAIN1} dnl
dnl define (1 confTO^QUEUEMARN1 ( 14h') dnl
dnl define(rconfTO^QUEXJERETURN1, 15d*)dnl
dnl define('confQUEUE_LA \ * 121)dnl
dnl define (f confREFUSK^LA1 ( * IB ' }dnl
dnl FEATURE {delay_checks} dnl
FEATURE < 'no_default_nsaf, ' dnl') dnl
FEATURE (1 smrsh 'J /usr/ sbin/smrsh') dnl
FEATURE (^mallertable', 'hash -o /etc/mail/mailertable,dbф)dnl
FEATURE ( ^irtuser table' , 'hash -o /etc/mai 1/virtuser table *db( )dnl
FEATURE (redirect) dnl
FEATURE {a!ways_ad(Vdamain} dnl
FEATURE(use_cw_f ile)dnl
FEATURE(use_ct_file)dnl
dnl The *-t1 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('acceas^db*! 'hash -o /etc/mail/siccess. db‘}dnl
FEATURE{'blackli3t_recipients 1 )dnl
FEATURE {1 dnsbl', f dnsbl ,nj abl. erg') dnl
FEATURE('dnsbl1, *drbl>online*ccm.ua')dnl
FEATURE(1 dnsbl1 / 'bl*вратсор・net' f '"Spam blocked see: http: //spamcop,net/Ы.田ht3nl?°$&(cl土ent一&ddr}') dnl exposed_user {' root1) dnl
dnl This changes sendmail to only listen on the loopback device 127.0.0.1 dnl and not ©n any other network devices. Comcftent this out if you want dnl to accept email over the network.
dnl DAEMDN_OPTIONS {' Port=smtp F Addr=12t7,0.0.1, Name=MTA,)
dnl NOTE: binding both IPv4 and IPv6 daemon to the same port requires
dnl a kernel patch
dnl DAEMOT_O PT IONS {1 port=smtpj Addr= : : 1, Name=MTA-v6, Faniily=iriet6 1)
dnl We strongly reccmtnend to comment this one out if you want to protect dnl yourself from spam. Hcwever, the laptcp and users on caipLiters that do dnl not have 24x7 DNS do need this,
dnl FEATURE (' accept_unresоIvab 1 e^domains1) dnl
dnl FEATURE (' relay_based_onRX1) dnl
I№UT_MATL_FILTER< *clamav-milter' F 1 S=local;/var/clamav/clmilter,socket, F=f T=S:4m;R:4m;E: 10m')
MAILER (smtp) dnl
MAILER (procmail}dnl
Cwlocalhost. local domain
Что еще интересного? Вот есть такой файл ——local-host-names. Если заглянем в него, то увидим следующее: # local-hcst-names - include all aliases for your machine here, firma.ru primer.ru alst^od.ua alst,Odessa,ua
To есть для внешнего мира наш МТА-агент (sendmail) выступает в качестве почтового сервера для вышеприведенных доменов, о чем необходимо сделать записи в соответствующих DNS-зонах. Но и это еще не все. Есть еще один интересный файл — virtusertable* При помощи этого файла можно перенаправлять письма с адресов и целых доменов на другие адреса. Вот пример реального файла: ©primer.ruboss
®alst.Odessa,uaalst^farlep.net
也己工甘t.口d.uaalst@farlep.net
Что же тут мы видим? Все письма, которые идут на домен primenru, перенаправляются в локальный почтовый ящик (нахоляшийся на нашем сервере) пользователя boss. А вот письма дяя домена alst.odessa.ua ——на внешний почтовый ящик alst@farlep.net.
Более подробно о настройке sendmail можно почитать в документации либо в книгах, которые уже изданы на русском языке. Что же касаемо настройки POP3- или IMAP-сервера, то никакой дополнительной настройки при переходе с модемного соединения на выделенную линию не требуется.
Глава 12
FTP
Настройку FTP-сервера мы уже рассматривали раньше. Однако вам н вашим сотрудникам, возможно, захочется получать доступ к своим рабочим документам к файлам во внерабочее время с компьютеров, находящихся не в нашей локальной сета. А может быть, по требованию руководства, вам нужно будет предоставлять какие-то файлы для общего пол кования, или даже разрешить внешним пользователям записывать свои файлы на наш сервер. Вот об этих вещах и будет собственно вестись разговор в этой главе.
Как обычно, начинать нужно с малого. В нашем случае мы должны обеспечить доступ извне некоторым пользователям нашей локальной сети. Как обычно, в первую очередь это администратор и его начальство. Организовать это не так уж н трудно, если вы читали, как настроить FTP-сервер для локальной сети, то вы уже наверняка догадались, как это делается. Рассмотрим подробнее.
Пакет vsftp
Для конфигурирования используются один основной файл и несколько дополнительных.
Файл etc/vs代 pd/vsftpd.conf
Это основной конфигурационный файл, пример которого приведен ниже.
The default compiled in settings are fairly paranoid. This sairple file # loosens things up a bit, to make the ftp daemon, more usable.
Please see 廿白£tpd.conf.5 for all uon^iled in defaults,
READ THIS: This exanple 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.
Al工cw ancnymous FTP? (Beware - allcwed hy default if you comiant this out}. anonymous_enAble&NO
61cBntent this to allow local users to log in, local_enable^YES
Unccfttrent this to enable any fom of FTP write ccsnmand.
wr 1 te_enab!e=YES
Default umask for local users is 077. You may wish to flange this to 022*
if your users етфес匕 that (022 is used by most other ftpd1 s} locaI_uiBask^022
Uncorment this to allw the ancrQ/nious FTP user to 叩10ad files. This only
has an effect if the above global write enable 土豆 activated. Also, you # will obviously need to create a directory writable by the FTP user. anon_up] оа<Д_епаЫ e=NO
Uncennient this if you want the anonynou自 FTP user to be able to create # new directories*
anonjnkdi r_wr ite_enable=NO
Activate directory messages - massages given to remote users when they # go into a certain directory, dinnessage_enable=YES
Activate logging of itploads/downloads. xferl og_enabl e=YES
Make sure PORT transfer connections originate from port 20 (ftp-data).
connect_frcan_port_2 0=¥ES
if you want, you can arrange for uploaded anonymous files to be owned
# by a different user. Note! Using 11 root1* for uploaded files is not # reccxnmended!
#chown^uploads=YSS
# chowivus emame=^dioever
You may override where the log file goes if you like. The default la
shown below.
#xferlog_file=/var/log/vsftpd.log
If you wantr you can have your log file in standard ftpd xferlog format xferlog_5tcLfonnat=YES
You may change the default value for timing cut an idle se白s工on.
#idle_session_timeout=600
You may change the default value for timing out a data connection, #data_connection_tiineout=120
It is reccrnnaodod that you define on your system a unique user *Aiidh the
ftp server can use as з totally isolated and unprivileged user, #nopriv_u8er=ftpsecure
Enable this and the server will recognise asynchrmous ABCR requests. Not
recommended for security (the code is non-trivial). Not enabling itf
however, may confuse older FTP clients.
async_abor_enable=YES
By default the server will pretend to allcw ASCII mode but in fact ignore
the request, Tom on the belcw options to have the server actually do ASCII
mangling cn files when in ASCII mode.
Beware that turning cm asci i^dc^load^jenable enables iralicious renote parties
to consume your I/O resources, ty issuing the ccmnand "SIZE /big/file" Ln
ASCII mode,
These ASCII options are split into upload and download because you пну wish
to enable ASCII uploads (to prevent uploaded scripts etc. fron breaking) r
without the DoS risk of SIZE and ASCII downloads. ASCII mangling should be
on the client anyway<.
agc i i_upload_enable=YES
az c i Ldown I oat^_exiable=YES
You may fully customise the login beunner string:
f tpcLbanner=We 1came to blah FTP service *
You ma^y specify a file of disallowed anonymous e^nail addresses, Apparently
useful for combatting certain DoS attacks.
#deny_emai L_enable=YES
(default follows)
#barmedLem i l_f ile=/etc/vsftpd. banne(l_ernail s
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{).
chroo 亡一1 i s t_enabl e=YES
(default follows)
chroot_I ist_f ile=i/etc/vsf tpd * ohroot_l 1st
You may activate the n-R" option to the builtin Is, This is disabled by
default to avoid remote users being able to cause esccessive I/O on large
sites. However, seme broken FTP clients such as "neftp1' and ''mirror4 assume
the presence of the "-R" option, so there is a strong case for enabling # it.
#Is_recurse_enable=YES
pant_service_name=vsftpd
userlist_enable=YES
tenable for standalone mode
listen==YES
tcp_wrappers=YES
Разберем основные параметры:
口 anonymous_enabie=NO — разрешает или запрещает доступ к серверу без авторизации. Поскольку у нас стоит задача разрешить доступ только для ограниченного круга лиц, мы должны для нашего сервера установить в no. В такой конфигурации клиенты FTP-сервера получат доступ к любым каталогам файловой системы, исходя из прав соответствующих локальных пользователей. Это могут быть как домашние каталоги пользовате^ лей, так и системные каталоги;
口 iocai_enabie=YES — разрешает локальным пользователям использовать FTP-сервер, Тут без изменений, ведь мы не хотим оставить без доступа наших ВНУТРЕННИХ пользователей;
write_enabie=YES — разрешает или запрещает пользователям записывать файлы на FTP-сервер. Так же можно ограничивать доступ посредством установки прав на файлы и каталоги;
口 anon_upload_enable=NO И anon_mkdir_write_enable=NO ——ЭТИ ДВ& параметра разрешают либо запрещают анонимным пользователям сохранять
файлы и создавать новые каталоги. Поскольку пока нам этого не нужно, задаем мо;
口 xferiog_enabie^YES ——разрешает службе вести журнал: кто и какие файлы скачивал или выгружал на сервер;
connect_from_port_20=:YEs — определяет порт, по которому работает ЕГР^сервер;
О #banned_email_file=/etc/vaftpd.banned_emai 1 s— определяет, ГДб рас* положен файл, содержащий текст приветствия;
口 # chr о о t_l i s t_enabl e=YES И #chroot_l i s t_f i le= / etc / vs f tpd * chroo t_l is t —— позволят ограничить возможность пользователей, зарегистрированных локально, перемещаться по дереву каталогов. При этом процесс, работающий с клиентом, будет выполняться в изолированной среде, и пользователь будет иметь доступ лишь к своему домашнему каталогу и его подкаталогам;
口 pam_service_name=vsftpd — указывает, какой модуль аутентификации используется при авторизации пользователя;
useriist_enabie=YEs ——разрешает использование списка пользователей. Вот это именно то, что позволит нам ограничить доступ.
Файл etc/vsftpd .ftpu sers
Этот файл содержит список пользователей, которым ЗАПРЕЩЕНО пользоваться FTP-сервером. Обычно это бедующие системные пользователи: root, bin, daemon, adm. Ip, sync, shutdown, halt, mail, news, uucp, operator, games, nobody.
Файл etc/vsftpd.userjist
Если переменная в конфигурационном файле имеет значение userlist_deny=NO, то б этом файле содержится список пользователей, которым разрешен доступ к FTP-серверу, Если же userlist_deny=YES (именно такое значение по умолнанню), то файл содержит список пользователей, которым запрещено пользоваться РТР^сервером.
Для того чтобы мы смогли получить доступ к нашему серверу извне, необходимо для нашего брандмауэра задать правило, разрешающее прохождение FTP-пакетов. Это делается просто — добааняем следующие правила для iptables:
iptables -A INPOT -р top -m miltiport ―sports 20,21 -j ACCEPT
iptables -A OUTPUT -p tcp -m multiport -s OUTIP --dports 25 21 T ACCEPT service iptables save
Где outip —— наш внешний IP-адрес. Что касается анонимного доступа извне и разрешения записи для анонимных пользователей, все очень
просто — соответствующие переменные н файле vsftpdxonf устанавливаем в нужное значение!
anonymous_enabl e=YES
an on^upl oacL.enable=YES
Однако для обеспечения безопасности необходимо тщательно следить за тем, чтобы анонимные пользователи не могли свободно разгуливать по дереву каталогов сервера. Проще всего, пожалуй, это сделать на уровне прав доступа пользователя или группы. В идеале, для внешних пользователей нужно вообще выделить отдельный дисковый раздел^ "песочницу'1, из которой невозможно выбраться.
Дальнейшие действия —— управление правами доступа, разграничение каталогов дла разных пользователей, возможность некоторым пользователям выгружать файлы для общего доступа и т. m — целиком творческая часть работы администратора, В частностиs никто не мешает завести несколько РТР'демонов на разных адресах для разных групп пользователей. Или поднять FTP-сервер внутри локальной сети и извне устроить на него туннель.
Экспериментируйте, пробуйте и не забывайте — у каждой проблемы есть, по крайней мере, два решения.
Глава 13
Web-сервер Apache
Мы уже успешно установили для наших внутренних нужд Apache, но с появлением собственного доменного имени под разуме вается и наличие своей web-страницьь Само собой, можно отдать изготовление, поддержку и хостинг web-сайта куда-то на сторону, к примеру, дизайн-студии провайдера.
Если к web-сайту осуществляется сотни запросов в минуту, страница динамически извлекается из базы данных, то в этом случае порождается большой трафик, что автоматом требует широкой полосы пропускания. Именно в такой ситуации бывает экономически оправданно собрать или арендовать отдельный сервер и поместить его вместе с web-сайтом на площадке провайдера. Стоить это будет порядка 100 долларов США в месяц.
Почему провайдеры берут такие, казалось бы} "сумасшедшие" деньп( за размещение сервера? А все очень просто —— в договоре оговаривается, что только форс-мажорные обстоятельства могут помешать предоставить серверу нормальный доступ в Интернет, что подразумевает:
□ наличие нескольких независимых внешних каналов. Если какой-то выйдет из строя, то по другим каналам ваш сервер будет доступен (у нас же, если вы помните, только одна выделенная линия);
□ наличие полноценной системы бесперебойного питания, используются специальные системы, способные выдавать киловатты в течение суток, дизель-генераторы, два отдельных луча ввода электропитания (у нас при хорошем раскладе ——источник бесперебойного питания, способный продержаться час);
口 наличие грамотно спроектированной системы вентиляции и охлаждения. Те, кто застал еще старые вычислительные центры, наверное, помнят — работники, даже в жару, ходили н свитерах, поскольку температура в ма^ шинном зале была +18;
□ и помимо всего этого — круглосуточный мониторинг сервера, с незначительными проблемами персонал справится сам, при критических ——оповестит вас.
Если можно без всего этого обойтись, либо вероятность неприятностей (обрыв кабеля, отсутствие света и т. п.) мала, то решение организовать на нашем сервере web-сайт напрашивается само. П од разуме вается, что количеств во одновременных запросов не более 10—30 в минуту, web-страницы небольшие и генерируемый поток не превышает 2/3 пропускной способности нашей выделенной линии. Плюс сайт может пережить ф,отсутствие4 в Интернете какое-то время.
Конфигурация 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, erg/docs-2.0/ > for detailed information # about the directives.
Do NOT siirply 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 canfiguration 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 fmain' or 'default1
server, 师土口11 responds to requests that aren11 handled by a virtual # host.
囲虱bcgpg叩Арас}吕2да
These directives also provide default values for the settings
of all virtual hosts.
3. Settings for virtual hostSj which allow Web requests to be sent to
different IP addresses or hostnames and have them handled by the
same apache server process *
Configuration and logfile names: If the filenames you specify for many
q£ the server1s control files begin with "/fl (or "drive:/" for Win32),
the server will use that explicit path. If the filenames do *not*
begin with 4/", the value of ServerRcot is prepended -- sc
r,logs/foo. log" with ServerRoot set to " /etc/httpd,r will be interpreted
ty the server as "/etc/httpd/logs/foo.log"*
## Section 1: Global Environment
ServerRoot 11 /etc/httpd'1
Timeout 120
Listen 80
#甘 Section 2: 'Main1 server configuration
The directives in this section aet up the values used by the 'main'
* serverr which responds to any requests that aren11 handled В a
<Vi r tualHos t> definition * These values also provide defaults for
any <virtualHost> containers you may define later in the file.
All of these directives may appear inside <VirtualHost> ccfntainers,
in vriiich case these default settings will be overridden for the # virtual host being defined.
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 #nuxnber} of the user/grcup to run httpd as.
# * On SCO (QDT 3) use "User nouser" and "Огощ? nogroup",
整 * On HPUX you may not be able to use shared memory &总 nobody, and the # suggested workaround is to create a user www and use that user.
# NOTE that some kernels refuse to setgid (Group) or semctl {IPC_SET)
when the value 凸工{unsigned)Group is above 60000;
don't use Group #-l on these systems!
User apache
Group apache、
ServerAdmint Your address, where probleme with the server should be
e-mailed. This address appears on ваше б erver - genera ted pages, such
as error documents, e*g. admin0your-domain.com
Server Admin adminefixin.ru
Servertfeme gives the name and port that the server uses 8 identity itself, # This can often be determined autcrnatically, but we recaimend 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 UseCanonicalNaxne directive.
If your host doesn't have a registered EKS name, enter its IP address here.
You will have to access it hy its address anyway, and this will wake
redirections work in a seoieible way.
ServerName ww^firm.ru:80
DocximentRoot * /var/www/htmlи
AccessFileName , htaccess
ScriptAlia昌 /cgi-bin/ '/var/www/cgi-bin/•
## Section 3: Virtual Hosts
VirtualHost; If you want to maintain multiple domains /hostnames an your
machine you can setup VirtualHost containers for them. Most
configxarations
use only name-based virtual hosts so the s白rver do^sn' t need to worry
about
IP addressee. Unis is indicated hy the asterisks in the dir白ctive昌 整 below.
Please see the documentation &t
<url:http: //httpd,apache < org/docs*2,0/vhcsts/>
for further details before you try to setup virtual hosts,
You iray use the command line option ' -S1 to verify your virtual host # configuration*
Вот этого кусочка нам будет достаточно для стандартной настройки сервера. Рассмотрим значения параметров.
口 ServerRoot "/etc/httpdh — указывает на конфигурационный каталог, который использует Apache,
口 Timeout 120 ——время ожидания реакции от клиента* после которого соединение закрывается,
口 Listen so — список портов, которые слушает сервер, можно задать несколько.
口 user apache ——определяет пользователя, от имени которого работает сервер.
口 Group apache ——определяет группу-
CJ serverAdmin admin0firw.ru — адрес электронной почты ааминистратора.
口 serverNaxne firm,ru: so — задает имя и порт для web-сайта.
口 DocumentRoot n/var/www/html"——указывает корневую директорию для документов web-сайта.
О AccessFileName .htaccess — определяет файл, при наличии которого считываются ограничения на доступ к web-сайту.
口 scriptAiias /cgi-bin/ н /var/ww/cgi-bin/rt — путь к каталогу сценариев.
Если вам захочется заняться тонкой настройкой сервера, то советую обратиться к документации, расположенной на web-сайте www.apache.org.
Несколько web-сайтов (виртуальные web-серверы)
Итак, что такое виртуальные web*cepeepa к для чего они нужны? Если идти классическим путем, то в том случае, когда вы захотите помимо web-сайта www.firmii.nl завести себе еще www.e-shop.firaia.nit вам придется купить еще один IP-адрес, выделить отдельный сервер, либо завести на уже существующем сервере еще одну копию Apache. Эти действия приведут, во- первых, к увеличению накладных расходов, во-вторых, к дополнительной трате ресурсов. Для удешевления была придумана и реализована схема виртуальных web-серверов. Как это работает?
В сети есть один web-сервер, сконфигурированный так^ чтобы он прослушивал один IP-адрес и в зависимости от того, к какому web-сайту происходит запрос, выдавал бы соответствующие страницы. Это дает и экономию в ресурсах, деньгах и простоту настройки. Однако обратной стороной медали яагшется то, что при взломе сервера будет нанесен больший вред, поскольку злоумышленник получает доступ к десяткам или даже сотням web-сайтов. Виртуальные серверы могут иметь один и тот же IP-адрес и разные доменные имена, а могут иметь и разные IP-адреса. Для описания адресов и доменных имен виртуальных серверов служат директивы ServerName, ServerAlias, NamevirtuaiHost и virtualHost. Они необходимы, только если вам нужно установить более одного виртуального сервера-
Директива serverName, находящаяся вне секций virtuaiHost, определяет имя основного сервера, корневой каталог которого задан директивой Docum&ntRoct в файле srm.conf. Виртуальные серверы наследуют настройки основного; при необходимости специальной настройки соответствующие директивы помещаются в секции virtualHoat, относящейся к данному серверу.
Ниже приведен фрагмент конфигурационного файла для виртуальных серверов с различными IP-адресами:
ServerNarne www.root^ru
<VirtualHost 192.168.0Л>
DocumentRoot /www/root * ru
ServerName www<root.ru
ErrorLog /var/log/errorjog.root*ru
CustomLog /var/log/access„log*root,ru combined
</VirtualHost>
<VirtualHost 工92.168.工工*6>
DocumentRoot /www/г ,ru
ServerName www.r.ru
ErrorLog /var/log/error_log.r.ru
CusEomLog /var/log/access_log.r.ru ccinbined
</VirtualHost>
Далее приведен фрагмент конфигурационного файла для виртуальных серверов с одинаковыми 1Р-адресами:
ServerName www.root. ru
NameVirtualHost 192.168-0.2
<Virt.uaIHost 192,168.0.2>
DocuinentRoot /www/root .ru
ServerName www,root.ru
ErrorLog /var/log/error_log.root.m
CustomLog /var/log/access_log,root.ru combined
</VirtualHcst>
<VirtualHcst 190.168,0*2>
DocuinentRoot /www/r.m
ServerNaxne www.r.ru
ServerAlias *.;ru
ErrorLcg /var/log/error_log.r.ru
CustomLog /var/log/access_log,r.ru combined
</VirtualHoBt>
Настройка DNS
В связи с вводом в эксплуатацию web-сайта необходимо кое-что изменить в настройках нашей DNS-зоны. Хорошим тоном считается возможность получать доступ как по адресу www.firma.ru, так и просто firma.ni. В связи с этим необходимо добавить следующую запись:
www IN А наш внешний IP-адрес
Такую запись можно добавить также для почтового и FTP-сервера.
Глава 14Прокси-серверГлава 14Прокси-сервер
Глава 14
Прокси-сервер
Глава 14
Прокси-сервер
Если вы настроите свой браузер лля работы через прокси-сервер, то при запросе некоторого документа из Интернета, если кто-то уже обращался с подобным запросом, вы получите документ незамедлительно, с максимальной скоростью, на которую способно ваше сетевое подключение, потому что вы получите копию документа, взятую из кэша прокси-сервера. Если же в кэше данного документа нет, то запрос будет переадресован web-серверу, на котором хранится оригинал, при этом его копия будет записана в кэш. Чем больше пользователей пользуются прокси-сервером, тем более существенной становится его помощь. Согласно статистике, количество обращений пользе^ вателей к одним и тем же документам в Интернет приближается к 60%, Многие прокси-серверы обладают еще одним интересным свойством — они могут обмениваться информацией между собойt что существенно ускоряет доступ к данным, хранящимся на удаленных или сильно загруженных серверах.
Прокси-сервер предоставляет следующие возможности:
口 централизованный выход в Интернет через один сервер в сети;
口 локальное хранение часто просматриваемых документов для увеличения скорости загрузки страниц;
возможность регулировать пропускную способность канала в зависимости от его нагрузки;
авторизованный доступ в Интернет;
возможность обмена данными кэша.
Что касается динамически формируемой информации, то не все проксисерверы обрабатывают ее корректно, однако большинство из них имеют большое количество настроек и обладают множеством интеллектуальных алгоритмов, позволяющих работать с любыми данными.
Наиболее распространенным прокси-сервером, доступным под лицензией GNU, является Squid.
Squid
Squid — это высокопроизводительный кэширующий прокси-сервер, поддерживающий протоколы FTP, gopher и HTTP. Squid сохраняет часто запрашиваемые данные н оперативной памяти компьютера, что позволяет увеличить производительность, кэширует DNS-запросы (это свойство интересно для тех, кто не имеет своего DNS-сервера). Помимо вышеперечисленных возможностей, поддерживает SSL, расширенный контроль доступа и полную регистраиию запросов.
Одной нт ключевых возможностей пакета Squid является использование протокола ICP (Internet Cache Protocol, протокол интернет-кэширования), что позволяет создать иерархию серверов Squid для дополнительной экономии пропускной способности канала. Поддерживаемые функции:
口 кэширование HTTP, FTP;
SSL;
口 иерархия кэшей;
口 ICP, HTCP (HyperText Cache Protocol),CARP (Cache Array Routing Protocol), WCCP (Web Cache Control Protocol), Cache digests1;
口 прозрачность;
口 гибкий контроль доступа;
口 HTTP-серверное ускорение;
SNMP;
口 кэширование DNS-запросов;
口 возможность ограничения трафика.
становка Squid не вызывает проблем* После конфигурирования необходимо будет его запустить с помощью команды service* Также не забывайте прописать старт службы при включении операционной системы при помощи утилиты ntsysv.
Конфигурирование пакета Squid
Основной конфигурационный файл пакета Squid ——/etc/Squidxonf Размер этого файла достаточно велик, поскольку он содержит множество параметров. начиная с номера порта для ICP-запросов и заканчивая правилами доступа к информации. Далее приведены параметры конфигурации Squid, разбитые на типы Однако приведенный список не является полным и исчерпывающим, поскольку он содержит только наиболее интересные (с нашей точки зрения) параметры конфигурации.
Протоколы управления кэшем прокси-сервера.
Сетевые параметры
Сетевые параметры имеют несколько настроек.
口 http_port 3128 — порт для запросов клиентов.
icp_poxt 3130 — порт для ICP-запросов. В том случае, если не предпо* лагается использовать иерархию прокси-серверов, необходимо указать нулевой порт.
口 htcp__port 4827 — порт для общения с соседями через TCP-протокол.
mcast_groups 239* 123*16.128 224*0.1*20 — адреса групп, используемые для получения ICP,
口 passive_ftp on | off — режим пассивного FTP. Необходимо включить в том случае, если Squid находится за брандмауэром.
Размер кэша
Раздел предназначен для определения параметров кэша — размера, использования, времени хранения информации и т. п.
口 cache_jmem 8 mb — объем оперативной памятиj используемой для хранения обрабатываемых объектов;
口 cache_swap_high 95 — при достижении данного уровня заполнения кэша (в процентах) начинается ускоренный процесс очистки кэша от устаревших объектов;
口 cache_swap_low 90 ——процесс удаления старых объектов заканчивается? если достигнут заданный уровень (в процентах);
口 maximm^object_size 4096 кв ——максимальный размер кэшируемого объекта;
П mi и imum_ob j ес t _s i z е о кв — минимальный размер кэшируемого объекта; файлы меньшего размера не сохраняются;
口 ipcache_si^e 1024 — размер кэш а для IP-адресов;
口 ipcache_high 95 — верхний уровень заполнения IP-кэша для алгоритма удаления старых объектов;
口 ipcache_low 90 — нижний уровень заполнения IP-кэша для алгоритма удаления старых объектов.
Имена и размеры файлов
В этом разделе определяются имена и размеры используемых файлов:
口 cache_dir тип Directory-Name Mbytes Level-1 Levels ——определяет имя, размер и количество подкаталогов на первом и втором уровне кэша на диске ——каждый кэшируемый объект кладется в отдельный файл, файлы хранятся в двухуровневой иерархии каталогов;
口 cache_access_log /usr/local/squid/logs/access.log — место Хранения журнала обращений к кэшу;
口 cache_log /usr/local/squid/logs/cache. Log — МЕСТО Хранения журнала запусков процессов;
口 Cache_store_log /usr/local/squid/logs/store.log ——место хрЯНСНИЯ журнала записи объектов в дисковый кэш;
emu 1 ate„httpd„ 1 og on|off ——производить ли эмуляцию формата журнала HTTPD;
口 mime„t:able /ивг/local/squid/etc/mime * con£——таблица ТИПОВ MIME;
口 log_mime_hdrs off — в журнал access записываются полученные HTTP- заголовки;
口 useragent_log имя-файла ——В ЭТОТ файл будут записываться СТрОКИ User-agent из НТТР-заголовков;
debug_opt\ons раздел, уровень ——уровень отладки; all ——для всех разделов; по умолчанию all, l;
logjqdn off — позволяет определять и записывать в журнал полные доменные имена источника запроса.
Параметры внешних программ
Как и большинство серьезных программ, Squid позволяет воспользоваться внешними программами для выполнения некоторых действий. К примеру, сбор статистики или обработка трафика.
ftp_user email-адрес — будет подставляться вместо пароля при анонимном доступе к FTP-серверам; по умолчанию — squid®, вызывает проблемы с серверами, которые проверяют синтаксис адреса;
口 cache_dns_j>rogram /uar/local/squid/bin/dnsserver — местОПОЛОЖСНИ £ программы, кэширующей DNS-запросы;
dns_chiidren 5 — число процессов, которые делают DNS lookup (получение по IP-адресу доменного имени и наоборот);
dns_nameservers список-1Р-адресов ——ИСПОЛЬЗуетея вместо СПИСКА DNS-серверов, определенного в /etc/resolv.conf;
口 teai匸Tut_program none —— позволяет подключить программу преобразо^ аания URL при каждом запросе;
redirect_chiidren 5 —— параметр определяет, сколько процессов преобразования URL запускать параллельно;
redirect_rewrites_host_header on — разрешает или запрещает изменение поля Host: в заголовке запроса; по умолчанию Squid переписывает поле Host: в заголовках преобразованных запросов;
口 redlrector_aceesa acl 一 какие запросы направлять через редиректор; по умолчанию — все;
口 Authenticate_program none ——позволяет производить аутентификацию клиентов, делающих запросы; программа должна в цикле читать строку '*имя пароль1* выдавать ок или err; должен быть определен параметр acl proxy_auth^
口 authenticate_children 5 ——параметр определяет, сколько параллельных процессов будут заниматься аутентификацией;
authenticate_ttl 3600 ——параметр определяет, сколько секунд кэшировать результаты работ программы аутентификации;
口 authenticate_ip__tti число ——необходимо установить 0, чтобы с нескольких адресов не смогли воепользоваться одним именем.
Время ожидания
В этом разделе задаются различные временные параметры Squid:
connect_timeout 120 seconds ——время ожидания соединения с сервером;
siteseiect_timeout 4 seconds — максимальное время на выбор URL;
口 read_timeout 15 minutes — сколько времени разрешается ждать следующего байта от сервера;
request^timeout зо seconds — сколько разрешается ждать запроса после установления соединения;
口 ciient_iifetime 工 day — сколько времени разрешать клиенту быть присоединенным к Squid; соединение обрывается, паже если происходит передача данных;
口 half_ciosed_clients on — разрешать наполовину закрытые соединения —например чтение есгьт а аапись уже закрыта;
shutdown^iifеtime зо seconds — сколько времени продолжать обслужи^ ванне после получения сигнала sigterm или sighup.
ACL — Access Control List
Этот раздел определяет правила доступа пользователей к группам файлов и хостов, С помощью ACL (Access Control List, список контроля доступа) можно очень гибко настроить доступ к различным web-сайтам. Определение списка доступа производится с помощью следующей команды: ас! <имя> <тип> <строка>
где <иия> — имя правила. <тип> — тип объекта, <строха> — регулярное выражение (шаблон для сравнения), по умолчанию чувствительное к регистру букв. Параметр тип может принимать следующие значения:
口 IP-адреса клиентов — sre ip-address/netmask;
口 диапазон IP-адресов — src addri-addr2/netmask;
口 получение IP-адреса no URL — srcdomain foo.aom;
口 если в URL использовался IP, то делается попытка определить имя домена, если не удалась, то подставляется слово попе ——dstdomaisn too,cam;
口 получение IP-адреса клиента по URL с использованием регулярных выражений ——srcdom_regex [-1] строка;
口 если в URL использовался IP-адрес, то делается попытка определить имя домена, используя регулярные выражения ——dstdom_regex [-i] строка;
D регулярное выражение для всего URL — uri_regex 〔一i] строка;
口 регулярное выражение для path-части URL ——urlpath_regex [-i] строка;
Д определяются безопасные порты — port порт;
口 conоставляется заголовок User-Agent ——browser [-i] regexp;
ограничивает число соединений с одного и того же IP-адреса — maxconn число.
Права доступа
Права доступа определяются следующими строками:
http_acaess allow | deny [! ] aclname ——кому разрешать доступ ПО HTTP;
口 icp_accesfi allow]deny [! ]aclname ——кому разрешать доступ по ЕСР;
О miss_access allow [deny [! ] aclname — кому разрешить получать ответ MISS;
口 с ache_peer_a с се s s cache-host allow | deny [! 1 aclname— ограничить запросы к данному соседу;
口 praxy_auth_realm Squid projty-caching web server ——строка текста, Которая будет выдана на экран клиента при запросе имени/пароля доступа к кэшу.
Параметры администрирования
Параметры администрирования определяются следующими строками:
□ cache_jtQr ипа11 ——почтовый адресs на который будет послано пневмо, если у Squid возникнут проблемы;
П cache_effective_user nobody ——если запускается Squid от имени「<кЛ, то заменить UID на указанный;
口 cache_effective_group nogroup — если запускается Squid от группы root, то заменить GID на указанный;
口 visibie_hostname имя-хоста — это нмл будет упоминаться в сообщениях об ошибках;
口 un ique_hos tname уникальмое - имя —— если НССКОЛЬКИМ кэшам дали ОДНО и то же visibie_hostname, необходимо определить каждому из них уникальное имя;
口 hostname^aliases имя,,.——СПИСОК СИНОНИМОВ Щ1Я имени хоста.
Параметры для работы в режиме ускорителя web-сервера
Параметры для работы в режиме ускорителя web-сервера определяются следующими строками:
httpd_accel_host hostname —— если нужна поддержка виртуальных хостов, в частности для transparent proxy (прозрачное кэширование), то вместо имени указать virtual;
口 httpd_accei_port port ——порт для web-сервера;
口 httpd_accei_with_proxy on]off ——кэширование для ускоряемого сервера;
口 httpd^accei_uses_host_header on | off — для работы в прозрачном режиме требуется включить, иначе виртуальные серверы не будут правильно кз- тироваться.
Пример конфигурации Squid
Как вы уже заметили, опций для конфигурации Squid очень много. Для быстрой настройки прокси-сервера можно воспользоваться приведенными ниже параметрами* Конечно, они не являются идеальными, наверняка тонкая настройка поможет вам оптимизировать сервер как с точки зрения увеличения производительности, так н с точки зрения безопасности. Возьмем стандартный файл Squid .conf и отредактируем только нижеприведенные строки:
口 http_port 3128 ——номер аорта, на котором Squid будет слушать команды от клиентов. Помимо этого порта принято использовать порты 8080 и 8088;
口 hierarchy_stcplist cgi-binf chat —— слова В URL, При обнаружении КОТОРЫХ прокси-сервер будет напрямую перенаправлять запрос серверу;
cache_jnem 16 мв — сколько оперативной памяти Squid может забрать под свои нужды. Чем больше выделить памяти, тем быстрее будут обрабатываться запросы;
maximuin^objесt_sizе 16384 кв — максимальный размер объектов, которые будут сохранены в кэше. Размер специфичен лпя ваших задач и объема жесткого диска;
口 cache_dir /usr/iocai/squid/cache 2048 16 256 — указывает, где сохранять кэшируемые файлы. Под кэш выделяется два гигабайта н создается 16 и 256 каталогов 1-го и 2-го уровня;
口 ftp^user anonymous9v.ru — задает, под каким паролем регистрироваться на анонимных FTP-серверах;
口 negative_ttl 1 minutes —— время жизни страничек с ошибкой;
□ positive_dns_ttl 6 hours ——время жизни удачного преобразования DNS- имен в [Р-адреса;
口 nega t ive_dns_tti 5 minutes ——время жизни соответственно удачного и неудачного преобразования DNS-имен в IP-адреса.
Дальнейшие наши действия касаются разграничения пран пользователей. Первым делом необходимо определить ACL. Сначала закомментируем все строчки в файле Squid.conf, начинающиеся на aci. Затем пишем свои правила. К примеру:
口 ad users proxy_auth vasya petya nina ——этой строчкой мы задаем правило, по которому разрешаем пускать вышеперечисленных пользователей с использованием авторизующей программы через Squid;
口 acl BANNER url_regex banner reklama linkexch banpics us\,yimj\,com [\,/]ad[si?[\,/] — это правило определяет адреса, содержащие рекламу* Интересно для тех, кто хочет отказаться от получения разнообразных баннеров. Позволяет экономить сетевой трафик;
口 http_access deny [users ——эта строка запрещает доступ всем пользователям, кроме тех, которые перечислены в группе users;
□ http_access deny eanner — запрещаем доступ к адресам, удовлетворяющим правилу banner (убираем рекламу);
口 proxy_auth_rеаIm Vasy proxy-caching web server — CTpOKH, КОТОрЙЯ ВЫВОДИТСЯ на экране авторизации;
口 eache_jngr vasya0v.ru — если у клиента возникзет проблема — выводится HTML-страница с сообщением и адресом электронной почты администратора, в нашем случае vasya@v,ru;
口 cache_ef fective_user nobody — имя пользователя, с чьими правами запускается прокси-сервер;
口 саche_ef fесtive_group nogroup ——имя труппы, с чьими правами запускается прокси-сервер;
口 ciient^db on ——параметр разрешает собирать статистику по клиентам.
Поскольку стандартной настройки в такой сфере, как использование канала, места на винчестере, оперативной памяти просто не может быть, более тонкие настройки и ограничения вы должны обдумать и настроить сами*
Transparent proxy
Transparent proxy ——это таким образом настроенный прокси-сервер, что его использование прозрачно для пользователей. То есть пользователям не при-
/7др*О!*сербер—22?
дется что-либо настраивать в браузерах. Для этого необходимо сделать следующее:
口 добиться, чтобы все запросы пользователей попали на компьютер» где работает прокси-сервер;
口 добиться, чтобы эти запросы попадали собственно к прокси-серверу;
добиться» чтобы ваш прокси-сервер их правильно обработал.
Вьглолнить первый пункт можно разными способами. Самый простой путь — поставить прокси-сервер и маршрутизатор на один компьютер, через который проходит весь трафик. Также необходимо таким образом настроить маршрутизатор и брандмауэр, чтобы транзитные пакеты, предназначенные для порта 80, попадали на вход прокси-сервера. Для правильной обработки полученных запросов в Squidxonf нужно добавить следующие строчки: httpd^accel ww ■ your. dcmain 80 http<Vaccel^witKjproxy on httpd^&c口el_u££S』口st』cader on
Ключи запуска Squid
Помимо конфигурационного файла, поведением программы Squid можно управлять с помощью ключей командной строки. Далее приведены некоторые из них с пояснениями:
-& — указывает порт для входящих запросов;
-d — выводит отладочную информацию на устройство stderr (обычно — текущая консоль);
口 -f имя_файла_конфигурации ——позволяет использовать альтернативный конфигурационный файл (удобно для отладки сервера);
口 -h — выводит краткую справку по программе Squid;
口 -к — этот ключ позволяет посылать Squid следующие управляющие сигналы:
reconfigure — посыла сигнала ни巳 Используется для прочтения измененного конфиги)ационного файла;
rotate — позволяет произвести ротацию журналов (сигнал usri);
shutdown — прервать выполнение программы с корректным завершением (сигнал term);
interrupt — немедленно завершить работу программы (сигнал int);
kill — “убнтъ" приложение (kill);
♦ debug ——начать/закончить полную трассировку (сигнал usr2);
check ——проверка (сигнал zero);
口 -u — задает порт для входных 1СР-запросов;
П -V — выводит версию программы;
-z — создает дисковый кэш при первом запуске (Важно!);
П -d — предписывает не производить DNЗатеет при запуске;
-F — восстанавливает после сбоя не в фоновом режиме (ускорение восстановления);
-n — предписывает не становиться фоновым процессом;
-V — включает подаержку виртуальных хостов для режима акселерации;
-х — включает отладку при разборе конфигурационного файла;
-Y — включает быстрое восстановление после сбоев.
Первый раз Squid нужно запускать с ключом -z:
Squid -z
При этом программа создаст дерево кэшей. Этой же командой следует воспользоваться с том случае, если вам необходимо очистить кэш. Для закрытия текущих файлов журналов и создания новых (чистых) файлов используется команда:
Squid — k rotate
Файлы журналов Squid
Файл access.log
Файл access.log используется для хранения информации обо всех. Запись добавляется, когда клиент закрывает соединение. Для прокси-сервера с большим трафиком файл может за день увеличиться на десятки мегабайт, К примеру, при трафике в 10 тыс. запросов в сутки объем журнала увеличивается примерно на 2 Мбайт.
Единицей информации о соединении является строка. Строка состоит из десяти полей. Ниже приведено описание полей с пояснениями:
口 time stamp ——время в UNIX-формате (время с 1 января 1970 года в миллисекундах);
elapsed ——затраченное время в миллисекундах;
client ip address — IP-адрес клиента^ пославшего запрос;
type/нттр — результат запроса, где type:
tcp_hit — верная копия объекта нашлась в кэше;
tcp_miss — запрашиваемый объект не был в кэше;
tcp^expired ——объект есть в кэшеа но он устарел;
тср_сlIent_refresh ——клиент запросил принудительное обновление объекта;
tcp_refresh_hit — объект в кэше был старым, был сделан запрос к источнику и источник ответил "объект не нзменмлся";
tcp_refresh_mtss ——объект в кэше был старым, был сделан запрос к источнику и тот вернул обновленное содержание;
tcp_ims_hit ——клиент выдал запрос, объект оказался в кэше и свежим;
tcp_ims_miss —— клиент вь(дал запрос для просроченного объекта;
ТСP_REF_FAIL_HIТ ——объСКТ В КЭШС уСТЭрСЛ, НО ЗЗПрОСИТЬ НОВуЮ КОПИЮ не удалось;
tcp_swapfail ——объект должен находиться в кэше, но его не смогли извлечь;
TCP^DENIED — отказ;
口 size ——количество байтоа, переданных клиенту;
口 method —— метод передачи информации; get, head, post для TCP- запросов ИЛИ 工СР—QUERY ДЛЯ UDP-ЗЗПрОСОВ;
口 url —— адрес запрашиваемого объекта;
П ident и-1< — объект недоступен;
口 hierarchy data/Hostname — результат запросов к братским/родитель- скнм кэшам:
parent_hit ——UDP-запрос к родительскому кэшу (parent) вернулся с подтверждением;
parent_udp_hit„qbject ——объект оказался в родительском кэше parent и поместился в UDP-ответе;
direct ——объект был запрошен с оригинального сервера;
тип содержимого (М1МЕ-тип/подтип).
Файл storeJog
Файл storeJog используется для хранения информации обо всех кэшируемых объектах. Единицей информации о соединении является строка. Строка состоит из одиннадцати полей. Ниже приведены поля с пояснениями:
Time — время в UNIX-формате (время с 1 января 1970 года в миллисекундах);
口 action — действие:
RELEASE — удален из кэша;
swapout — сохранен на диск;
swap in — был на диске, загружен s память;
К Зак. 1500
口 http reply code — код ответа web-сервера;
口 http Date — дата создания объекта;
http Last-Modified — время последней модификации объекта;
口 http Expires — срок жизни объекта;
口 http content-Type — тип объекта;
口 http content-Length ——размер объекта;
реально полученное число байтов. В том случае, если не совпадает с предыдущим полем, объект не сохраняется;
口 http me tod — метод передачи информации (get, head, post);
Access key — ключ доступа (обычно URL),
Файл useragent.log
Предназначен для хранения информации о том, какими браузерами пользуются клиенты. Малоинтересен в практическом плане, разве что для получения статистики-
Нестандартные применения
Функциональность программы Squid не ограничивается только функцией прокси-сервера. У нее есть достаточно много других интересных применений. В этом разделе мы рассмотрим только некоторые из них.
Борьба с баннерами
Наверняка вам встречались web-сайты, на которых нужной информации было от силы на килобайт, а рекламных баннеров (зачастую анммнр口日ан- ных)——5——6+ Хорошо когда канал большой н бесплатный. Когда же пользуешься обычным коммутируемым соединением, да еще платишь за соединение из своего кармана, каждый килобайт начинаешь считать. В этом случае можно настроить локальный сервер Squid таким образом, чтобы не происходила закачка ненужных баннеров. Этого можно добиться несколькими способами.
На месте баннеров показываются разорванные картинки или перекрещенные прямоугольники (неполученные файлы). Определяем web-сайты баннерных сетей и создаем для них регулярные выражения. Создаем в каталоге /usr/iocal/Squid/etc следующие файлы:
口 banners_path_regex — содержит па одному регулярному выражению на строку;
口 banners_regex — содержит по одному регулярному выражению на строку;
banneis_exclusion ——это строки, трактуемые в предыдущих файлах как баннеры, но изменять которые не рекомендуется.
В Squidxonf добавляем следующие правила:
acl banners_path_regex nrlpath_regex
” /usr/local / Squid/etc/banner s__path_regexn
acl banner s_regex url_regex 11 /usr/local/Squid/etc/banners _regex"
acl banners_exclusion url_regex " /usr/ local/Squid/etc/banners_exclusion"
http_access deny banner■白3dt工regex I banners_exclusion
http_access deny banners_regex !banners_exclusion
Конечно, все это можно сделать более элегантно, однако данный метод работает, а настроить можно за пару минут.
Разделение внешнего канала
Часто бывает так, что у вас есть внешний канал, скажем, 128 Кбит, и есть несколько групп пользователей с определенным приоритетом. И требуется, чтобы группа 1 имела одну фиксированную ширину наружного канала (ска- жемФ 64 Кбит), а группа 2 и 3 — ширину наружного канала по 32 Кбит. Для решения этой непростой задачи мы также можем воспользоваться Squid.
Немного терминологии:
口 пул — набор групп "емкостей" определенного класса;
口 группа "е\гкостей" — часть пула, привязанная к хосту, сети или общая для всех;
口 “емкость” ограниченного объема — та, в которую с определенной скоростью вливается внешний трафик, и из которой он раздается клиенту.
Определены три класса пулов:
одна "емкость'1 на всех из этого класса;
口 одна общая пемкость" и 255 отдельных для каждого хоста из сети класса С;
255 иемкостей4 для каждой сетки класса В и отдельная “емкость” для каждого хоста.
Пример конфигурации Squid для трех классов пулов:
dday^poolB 3 # 3 роо1ы
delay_Qlass 11#。 pool 1 класса
delay_class 2 1 # 2 pool 1 класса
delayclass 3 3 # 3 pool 3 класса
delay_acQess 1 allow staff
delay_access 1 deny all
delay^access 2 allow students
22日__— 「乌8а扌4
delay_access 2 deny all
delay_access 3 allow college
delay„access 3 deny all
de1ay_parameters 1 64 00 0 0/64 00 00
delay^parameters 2 64000/64000
delay_parameters 3 64000/64000 32000/64000 6400/32000
Строка, определяющая максимальную ширину виртуального канала, имеет следующий вид:
delay_paraineters poo 1 tota 1^геэt/total_max net_rest/net_jnax ind_rest/ind_max
me:
口 pool ——номер пула? для которого определяются каналы;
口 total — ширина канала на всех;
net — ширина канала на подсеть;
口 ind — ширина канала на отдельный адрес;
口 rest ——скорость заполнения (байт/с);
口 max ——объем *'емкости" (байт).
Обработка статистики
В стандартную поставку пакета Squid входят сценарии, написанные на Perl, позволяющие создавать отчеты о работе программы Squid:
口 access-extract-pl ——получает на стандартный ввод журнал access.log и выдает на стандартный вывод промежуточный результат;
口 access-summary.pl ——получает на вход результат работы access'-extracl^pl it делает из него красивый отчет」
Программа Squid Cache and Web Utilities (SARG)
Это программа, обрабаты в аютая журналы Squid и составляющая на их базе отчеты, которые хранятся в стандартном HTML-формате, поэтому их можно просматривать через браузер, копировать и распечатывать, также их можно генерировать в определенный каталог или отправлять по почте. Предоставляется следующая информация:
口 количество работавших пользователей;
время их работы;
трафик по каждому пользователю;
использование кэша каждым пользователем;
口 список web-серверов, посещенных пользователем;
口 итоговые цифры по трафику и времени.
Существуют также дополнительные отчеты: Top sites и Useragents. Данные генерируются за период» интервал которого берется из журнала Squid* Если ротация журналов Squid не производится, то SARG создает отчеты нарас- таюшим итогом.
Программа MRTG
Еще одна программат позволяющая получать при соответствующей настройке отчеты о работе Squid. Вывод осуществляется в виде web-страниц.
Глава 15
NNTP. Сервер новостей
Одной из популярных служб доступных в Интернете является Usenet (новости, телеконференцииt эхо-конферениии в FIDO). Это похоже на смесь электронной почты и web-форума — те же темы и сообщения, как в web- форуме, только пользователь получает и отправляет сообщения, как электронную почту.
В Usenet минимальной единицей информации является статья. Статья помешается в конференцию, которая имеет свою тему. Конференций множество —несколько десятков тысяч и они имеют иерархическую структуру. Имя образуется из имени родительской иерархи и t к которому через точку добавляется имя конференции. К примеру, fidoT.ruJinux, где fido7 ——корень иерархии, показывающий, что группа новостей импортирована из эхо конференций FIDO, ru 一 русскоязычная, linux —— посвящена Linux. Для приема и передачи статей используются News-серверы (Usenet'Cepsepbi). Эти серверы производят синхронизацию (обмен статьями) между собой. Для передачи и приема статей используется протокол NNTP.
Протокол NNTP
Протокол NNTP описывается в документе RFC 977, а стандарт обмена сообщениями в Usenet в документе RFC 1036. NNTP предназначен для рас^ сылки, подписки, поиска и доставки новостей на основе TCP по технологии клиент-сервер, использует стандартные сообщения, описанные в RFC 850. Единицей хранения на сервере является статья.
Рассмотрим стандартный сценарий обмена информацией по NNTP. Пусть есть дам или более хоста (один из них выступает в роли клиента, остальные —серверы). Процедура обмена начинается с запроса на получение списка новых групп новостей, для чего выдается команда newgroups. Затем клиент делает запрос комацдой newness о наличии новых статей из групп, представляющих интерес. Сервер высылает список статей, клиент обрабатывает
список и запрашивает о получении статей, отсутствующих у клиента. Н, наконец? клиент может сообщить серверу, какие новые статьи он получил в последнее время.
NNTP использует протокол TCP и порт 119, На команды, посылаемые клиентом, предусмотрены текстовые и статусные отклики. Всякая сессия начинается с процедуры установления соединения между клиентом и сервером по инициатиае клиента. Данные могут посылаты:я только после цифрового статусного отклика. Они представляют собой последовательности строк, каждая из которых завершается парой символов CR+LF. В конце текста всегда посылается строка, содержащая один символ "「(точка), за которым следует CR+LF. Если исходный текст содержит точку в начале строки, то она перед посылкой дублируется. Статусный отклик представляет собой реакцию сервера на команду, полученную от клиента* Строки статусного отклика начинаются с трехзначного десятичного кода, в котором закодировано определенное состояние системы. Трехзначный код является позиционным. Слева направо ——первая цифра определяет состояние команды: успешно, в процессе выполнения, ошибка, Вторая цифра характеризует категорию команды. Третья цифра ——уточняющее сообщение.
Некоторые коды являются п редшественн и ками последующего текстового отклика. Статусные отклики могут иметь параметры (числа или имена). Число и тип параметров фиксировано для каждого конкретного отклика. Параметры отделяются от кода отклика и друг от друга одиночным пробелом. Все цифровые параметры имеют десятичное представление и могут начинаться с нулей. Все строковые параметры начинаются после пробела и завершаются пробелом или символами CR+LF. Любой текст, который не является параметром отклика, должен отделяться от последнего параметра, если таковой имеется, пробелом и завершаться пробелом.
Основные команды протокола NNTP
В этом разделе мы рассмотрим основные команды протокола NNTP. Команды можно записывать в любом регистре^ длина команды не должна превышать 512 байт.
ARTICLE. Существует две формы команды article, каждая из которых но пользует различные методы спецификации извлекаемой статьи. Когда за командой article следует идентификатор сообщения в угловых скобках ("J* и ”>”),используется первая форма команды; если же в команде указывается цифровой параметр или нет параметра совсем, реализуется вторая форма.
ARTICLE <raessage-id>
Команда отображает заголовок^ пустую строку и текст заданной статьи. Идентификатор сообщения (message^id) представляет собой идентификатор, содержащийся в заголовке статьи. Предполагается, что клиент получил
идентификатор сообщения из списка, полученного командой newness. Команда не изменяет указателя текущей статьи.
ARTICLE [nnn]
Отображает заголовок, пустую строку и текст текущей или указанной в цифровом параметре статьи. Опционный парам巳тр nnn представляет собой числовой идентификатор статьи в текущей группе новостей. Он выбирается из диапазона, который был выдан при выборе группы. Если этого параметра нет, предполагается текущая статья. Эта команда устанавливает указатель текущей статьи, если номер статьи указан корректно.
В ответ сервер выдает номер текущей статьм, строку-идентификатор сообщения и текст статьи. Присылаемая строка идентификатора сообщения представляет собой заключенную в угловые скобки последовательность символов, которая извлечена из заголовка статьи.
BODY. Команда body идентична команде article за исключением того, что она возвращает только основной текст статьи.
НЕЛ» Команда head идентична команде article за исключением того, что она возвращает только строки заголовка статьи,
57ИТ Команда stat похожа на команду article за исключением того, что в ответ не присылается никакого текста. Команда stat служит для установки указателя статьи без пересылки какого-либо текста. Возвращаемый отклик содержит идентификатор сообщения.
GROUP ggg. Команда предназначена для выбора группы сообщений. Обязательный параметр ggg — имя группы новостей, которая должна быть выбрана. Отклик на успешный выбор группы возвращает номера первой и последней статьи в группе м оценку общего числа статей в группе.
После выбора группы внутренний указатель статьи устанавливается на первую в ней запись. Если выбрана несуществующая группа, остается в силе выбор предыдущей группы.
HELP, Эта команда дает краткое описание команд, которые может воспринять сервер. Отклик на команду имеет текстовую форму и завершается строкой с одиночной точкой в начале.
IHAVE <message-id>. Команда 工have информирует сервер о том, что клиент владеет статьей с идентификационным кодом message-id>. Если сервер хочет скопировать статью, он пришлет отклик? предлагающий клиенту прислать ее.
Если запрошена передача статьи, клиент должен выслать полный текст статьи, включая заголовок. Сервер в этом случае пришлет отклик, уведомляющий об успехе или неудаче этой операции.
LAST. По команде last указатель на статью устанавливается на предшествующую запись н текущей группе. Если указатель уже установлен на первую
статью, отправляется сообщение об ошибке, а указатель остается неизменным.
LIST. Присылает список доступных групп новостей* Каждой группе новостей соответствует строка в следующем формате:
<group> <laat> <first> ср>
где <group> ——название группы новостей, <iast> ——номер последней известной статьи в данной группе, efirst* — номер первой статьи в группе, <р> ——может быть либо у, либо ns указывая на наличие или отсутствие разрешения на рассылку.
Поля <firat> и <last> являются числовыми. Если код поля <laat> превосходит код поля Hf±NBt>, в файле данной группы новостей нет ни одной статьи, NEWGROUPS date time [GMT] f<dtoriMri(ms>丄 Список групп новостей, созданных начиная с даты <date> и времени Mtime>, будет представлен в том же формате, что и в случае команды list.
Дата посылается в виде 6 цифр в формате ГГММДД, где ГГ — последние две цифры года, ММ — номер месяца (с нулем в начале, если необходимо)> ДД — номер дня в заданном месяце. Дополнение для года берется из предположения о ближайшем тысячелетии, так 86 предполагает 1986, 30 ——2030, 99 — 1999, а 00 — 2000 годы.
Время должно характеризоваться 6 цифрами в формате ЧЧММСС, где ЧЧ — часы с начала суток в 24-часовом исчислении, ММ — минуты 00—59, а СС — секунды 00—59. Временная зона определяется сервером, в противном случае появляется символьная комбинация GMT (время указано по Гринвичу).
Заключенный в угловые скобки опциональный параметр distributions представляет собой список групп рассыпки. Если параметр задан, рассылаемая часть новых групп новостей будет сравниваться с данным списком, и только при совпадении включается в список.
NEWNEWS newsgroups date time [GMT] f<distribution>]. Команда формирует список идентификаторов статей для заданной группы новостей, с датой после указанной. Для каждого идентификатора сообщения в списке выделяется одна строка. Список завершается строкой с одиночным символом точки, за которым следует CR+LF. Дата и время задаются в том же формате, что н для команды newgroups.
Для расширения зоны поиска в имени группы новостей можно испапьзо* вать символ ”*” (звездочка). Проттрамма может подставить вместо звездочки любую комбинаиию символов. Если вместо имени группы подставлен символ звездочка, поиск будет проведен по всем группам новостей.
Имя группы должно быть взято из списка доступных групп. Допускается задание нескольких групп (имена разделяются запятыми). После последнего имени группы не должно быть запятой.
NEXT. Команда устанавливает указатель текущей статьи на следующую запись в текущей группе новостей. Если в группе нет больше статей, посылается сообщение об ошибке, а указатель текущей статьи остается неизмененным.
В качестве отклика на команду возвращается номер текущей статьи и идентификатор сообщения. Никаких текстовых сообщений не посылается.
POST. Команда post позволяет отправить сообщение в текущую новостную группу.
QUIT. Сервер подтверждает получение команды quit и затем закрывает канал связи с клиентом. Эта команда предоставляет клиенту корректную возможность сообщить NNTP-серверу, что все операции завершены и сессия закончена.
SLAVE. Команда slave сообщает серверу, что он связывается не с полЕ>зова- телем, а с обслуживающим сервером (slave). Эта команда позволяет разде* лить случаи соединения сервера с отдельным пользователем и промежуточ- ними обслуживающими серверами.
Сервер новостей
Серверов новостей несколько, как способных подцерживать очень большие базы сообщений и большое количество одновременно подключенных поль^ зователей, так и небольших, предназначенных для маленькой локальной сети и пары десятков подключений. Для первой группы характерна трудоемкость в настройке и отладке сервера, для второй группы —— простота. К первой группе можно отнести CNews и INN. Ко второй leafhode, Suck* Поскольку мы не собираемся становиться мегапровайдерами, от рассмотрения первой группы мы откажемся. Для тех, кому это интересно, я рекомендую обратиться к моим предыдущим книгам. Нам же необходимо простое и быстрое решение дяя небольшой локальной сети.
leafnode
Домашняя страница этого проекта ——http://1eafnode.sourcefbrge.net/. Поскольку нам интересен наиболее свежий вариант, скачиваем его с сайта ALTLinux. Установка, как обычно, не занимает много времени. Чем же интересен этот сервер для нас? Во-первых, в отличие от других серверов, он очень прост в настройке, и занимает мало места. Кстати, существует так же вариант и для Windows NT. Во-вторых, он скачивает только те группы, на которые подписаны его пользователи, что позволяет экономить на трафике, И в-третьих, сервер это делает только тогда, когда есть подключение к Интернету, т. е. не пытается самостоятельно дозвониться к провайдеру и скачать информацию.
После установки нам необходимо настроить сервер. Сначала мы должны проверить, прописана ли строка запуска leafhode в файле xinitd. Строка должна быть примерно такого вида:
service nntp { disable = no flags - REUSE eocket„type - stream wait - no user m news server = /usr/local/sbin/leafnode only_from 二 127*0.0.1 log_on_failure +二 USERID }
Если вдруг такой строки не оказалось в конфигурационном файле — правим его. После этого нам необходимо перезапустить xinitd для вступления в силу изменений. Делается это командой:
/etc/rc.d/init*d/xinetd restart
Далее мы должны убедиться, что наш сервер успешно стартовал. Для этого выполним следующую команду: netstat inet -pan | grep 119
Если все в порядке, то вы увидите строку:
top О 0.0*0.0:119 0.0.0.0;* LISTEN 2115/xinetd
Если нет, то следует проверить правильность указания пути к leafnode, проблема, скорее всего, в этом. Далее, мы должны как-то указать нашему сервису, где же он должен брать информацию. Для этого используется конфигурационный файл /etc/leafnode/config. Большую часть его нам нет смысла трогать — разработчики все сделали за нас. Нам нужно указать, с какого сервера мы желаем получать новости, а также указать, сколько суток они будут храниться у нас. Первое делается следующей строкой: server = news.mail.ru
Если вы желаете получать информацию с нескольких серверов, просто до* писываем еще одну строчку: server = ddt.demos.su
Для указания, сколько должно храниться сообщение в базе, используется параметр expire. Помимо этого, существуют еще параметры, предназначен^ ные для тонкой настройки сервера^ но с этим вы будете разбираться само'- стоятелыю.
После того, как определили с помощью файла настройки, с каких серверов вы будете скачивать информацию, необходимо получить от этих серверов список групп новостей. Это можно сделать с помощью команды fetchnews -f. Считывание списка групп новостей может занять довольно много времени — порядка 10-15 минут* Список полученных групп новостей мы можем обнаружить в файле /var/spool/news/ieafnode/groupinfo. После этого мы на нашей клиентской машине создаем в клиенте новостей новую учетную запись новостей^ где в качестве адреса сервера прописан наш сервер —— I92J68.0.L При подключении к этому серверу вы должны увидеть список доступных групп новостей на этом сервере. Подписываемся на нужные нам группы, к примеру, fido7.m.linux.
После того как мы подписались на эту новостную группу, в каталоге /var/spool/news/interesting.groups появится пустой файл с именем выбранной новостной группы, в нашем случае ——fido7.ni.linux. Теперь мы должны каким-то образом загрузить статьи на наш сервер. При наличии подключения к Интернету это можно сделать, выполнив команду; fetchnews -wv
После этого наши локальные пользователи, подключившись к нашему новостному серверу, увидят в группе fido7-ruJinux новостные стать% время создания которых не более 10 суток. Если вас не устраивает такой порядок вещей, с помощью параметра manage в конфигурационном файле leafnode можно указать свой срок давности, например месяц.
Однако мы пока рассмотрели только получение сообщений. Нам еще необходимо как-то очищать базу сервера от сообщений, храмяшихся на сервере. Для этого используется утилита texpire. Эта утилита удаляет те новости, чей возраст превышает значение переменной expire в конфигурационном файле /etc/leafnode/conflg. Это можно делать м руками, однако RPM-пакет при инсталляции прописывает выполнение этой утилиты в таблицу cron.
INN
Если же вы решитесь настроить INN, то я порекомендую вам свою книгу ^Сетевое администрирование Linux". Здесь же я затрону одну тему, которую не описал в своей предыдущей книге.
Если вы договорились с провайдером о том, что он разрешит вам взаимодействовать с его NNTP-сервером на уровне обмена данных между серверами ——великолепно! Но обычно провайдер не предоставляет такой возможности. Что же делать? Есть программа^ которая позволяет подключаться к NNTP-серверу провайдера, как обычный клиент забирает с него необходимую информацию и раскладывает ее в соответствующие файлы сер^ вера TNN.
Называется эта программа Suck и ее домашняя страница —— bttp://homexoincast.net/*,bobyetman/index.htinl. Помимо того, что она забирает новостные статьи, она позволяет отправлять на сервер провайдера статьи. Также существует еще одна разновидность программы —— SuckMT, сайт которой http://oss*ba^jes4nl/SuekMT/. Чем же она лучше оригинальной утилиты? Она поддерживает многопоточность, что позволяет забирать от провай* дера несколько статей сразу.
Глава 16
NTP. Смнхронмз叫ия времени через сеть, настройка временной зоны
Ддя грамотно настроенной сети предприятия характерен учет всех мелочей, особенно когда эти мелочи таковыми не являются. В частности, системные дата и время компьютера. При разнообразных '*разборах полетов" приводят различные журналы действий пользователя, и при неправильной настройке системного времени грош цена таким данным. Можно, конечно, настройку времени производить вручную, однако через пару-тройку недель вам это наскучит. Особенно неприятно, когда компьютеров несколько десятков, и время у всех должно быть синхронизировано. Для синхронизации системного времени создателями Интернета была предусмотрена специальная служба — NTP.
Сетевой протокол времени
Протокол NTP предназначен для синхронизации системных часов с эталонным источником времени (радио, атомные часы к тому подобные устройства), Для локальной сети служба NTP способна обеспечить точность до миллисекунды, а для распределенной сети (в частности, Интернета) достижима точность синхронизации порядка нескольких десятков миллисекунд. Последний стандарт этого протокола предусматривает криптографическую защиту передаваемьсх данных, одновременное подключение к нескольким серверам точного времени для достижения более точной синхронизации времени и повышения отказоустойчивости системы и многое другое*
Структура сети серверов точного времени многоуровневая. Главные серверы точного времени, напрямую подключенные к источнику эталонного времени, образуют первый уровень, серверы точного времени> присоединенные непосредственно к главным серверам, образуют второй уровень и т. д.
В качестве сетевого протокола используется UDP, порт 123. Для увеличения надежности и точности получаемых данных применяется фильтрация,
селекция и комбинация пакетов на принципах максимальной вероятности, а также несколько резервных серверов и путей передачи.
Для передачи и хранения времени используется беззнаковое 64-битное число с фиксированной точкой, которое хранит число секунд в формате UTC. Старшие 32 бита ——число секунд, младшие 32 бита ——дробная часть секунд. Достижимая точность ——232 пикосекунды* 0 означает неопределенное время.
Классы обслуживания
Служба точного нремени имеет несколько классов обслуживания клиентов:
口 multicast ——предназначен для использования в быстрой локальной сети с множеством клиентов, где отсутствует необходимость в высокой точности. Принцип действия — один или более NTP-серверов рассылают широковещательное сообщение, клиенты определяют время, предполагая, что задержка составляет несколько миллисекунд. Сервер не принимает ответных NTP-сообщений;
口 procedure-call ——предназначен для получения высокоточного времени. NTP-клиент посылает запрос на сервер точного времени, который обрабатывает запрос и немедленно посылает ответ. Сервер не синхронизируется с клиентом;
口 sywietric ——предназначен для использования серверами точного времени, Представляет собой динамически реконфигурируемую иерархию сер* веров точного времени. Каждый сервер точного времени синхронизирует своих соседей и синхронизируется своими соседями в соответствии с правилами выбора соседей. Активный режим используется серверами точного времени низшего уровня с заранее определенными адресами соседей, пассивный режим используется серверами точного времени, близкими к первому уровню к взаимодействующими с соседями с заранее неизвестными адресами.
Обеспечение достоверности данных
Алгоритм функционирования сервера точного времени подразумевает не* сколько способов для обеспечения достоверности данных.
Если в течение восьми последовательных интервалов опроса от соседнего сервера точного времени не было сообщений, то этот сервер считается недостижимым.
口 Осуществляется проверка времени:
если время передачи совпадает со временем предыдущего сообщения ——дублированный пакет;
если время отправки сообщения не совпадает со временем, содержащимся в пакете, сервер считает, что он получил фальшивый пакет,
Используется алгоритм защиты от очень старых сообщений.
Аутентификатор состоит из ключа и шифрованной контрольной суммы, которая создается с использованием алгоритма шифрования DES (Data Encryption Standard).
Рекомендуемая конфигурация
Рекомендуемая конфигурация подразумевает наличие трех местных серверов точного времени, соединенных между собой, каждый из которых подключен к двум различным внешним серверам. Клиенты службы точного времени подключаются к каждому местному серверу точного времени
Сервер xntpd
Для UNIX-платформы, в том числе и Linux, существует сервер точного времени, носящий название xntpd. Этот сервер полностью реализует стандарт RFC 1305 и имеет расширенные возможности, которые планируется включить в следующую версию стандарта* Входит в стандартную поставку большинства дистрибутивов Linux. Установка тривиальна. Файл конфигура* пни — /etc/ntp.conf.
Конфигурация сервера
Поскольку варианты конфигурирования сервера зависят от класса обслужи^ вания, сервер имеет достаточно много настроек, которые в основном содер* жатся в конфигурационном файле /etc/ntpxonf
Класс symmetric
Этот класс предназначен для конфигурирования сервера точного времени В реЖИМе symmetric.
peer <address> [key <k^y>] [veraion <versiDn>] (prefer] (minpoll <лилро21>1 [maxpoll <шахро1Л>1
Здесь:
口 <address> ——адрес симметричного сервера;
口 <key> — 32-битный ключ для поля аутентификации (по умолчанию отсутствует);
口 prefer — предпочитать данный сервер при прочих равных условиях;
口 <minpoii> — минимальный интервал запросов (секунды, 2 в степени <jninpoii> в диапазоне от 4 (16 с) до 14 (16384 с), по умолчанию 6 (64 с));
<maxpoii> — максимальный интервал запросов (секунды, 2 в степени 5曰冷口о, по умолчанию 10-1024 с).
Класс procedure^call
Этот класс предназначен для конфигурирования сервера точного времени в режиме procedure-call, server address [key <key>] [version <version>] [prefer] (mode 5口da>]
口 address — адрес сервера;
口 <key> ——32-битный ключ для паля аутентификации (по умолчанию отсутствует);
口 <mode> — режим.
Класс multicast
Предназначен для настройки режима multicast. Обычно используется в локальных сетях.
口 broadcast <address> [key <key>] [version <ver$ion>] [ttl <ttl>]
<addr&ss> — адрес симметричного сервера;
<key> — 32-битньтй ключ для поля аугентификации (по умолчанию отсутствует);
<varsion> ——версия протокола;
弋匕亡2> — время жизни пакета.
口 broadcas t cl ien t [ <address>] <address>— адрес клиента, получающего информацию;
口 broadaastdeiay <секунд> — позволяет самостоятельно указать задержку в распро^гранении пакета.
Общие параметры
Опишем общие параметры настройки сервера xntpd:
口 driftfile <driftfile> ——определяет файл, в котором хранится и извлекается при запуске сдвиг частоты местных часов;
口 enable/disable auth/monitor/pll/pps/stats — ВКЛЮЧИТЬ/ВЫКЛЮЧИТЬ режим работы:
auth — с неупомянутыми соседями общаться только в режиме аутентификации;
243243此严二еингроwf?aqw?叩0m?吋"一£号р竺 e好包 里?犯9国0 ^ременн口话зоне
243
243
monitor — разрешить мониторинг запросов;
pll ——разрешать настраивать частоту местных часов по NTP;
stats — разрешить сбор статистики;
□ statistics loopstats —— при каждой модификации локальных часов записывает строчку в файл loopstats, формат которого имеет внн:
номер модифицированного юлианского дня;
секунды с полуночи (UTC);
смещение в секундах;
смещение частоты в миллионных долях;
временная константа алгоритма дисииплинирования часов;
О statistics peerstats — каждое общение с соседом записывается в журнал, хранящийся в файле peerstats, формат которого имеет вид:
номер модифицированного юлианского дня;
секунды с полуночи (UTC);
1Р'адрес соседа;
статус соседа, шестнадцатеричное число;
смешение в секундах;
задержка в секундах;
дисперсия в секундах;
□ statistics clockstats —— к^ждо© сообщение от драйвера локальных часов записывается в журнал} хранящийся в файле clockstats;
口 statsdir <имя-?:аггалога-со-статистикой> ——задает имя каталога, в котором будут находиться файлы со статистикой сервера;
口 filegen [file <filename>] [type <typenaflie>] [flag <flagva2>] (Link I nolink] [enable | disable] — определяет алгоритм генерации имен файлов, которые состоят из:
префикса — постоянная часть имени файла, задается либо при компиляции, либо специальными командами конфигурации;
имени фа^ла ——добавляется к префиксу без косой черты, две точки запрещены, может быть изменена ключом file;
суффикса ——генерируется в зависимости от <typename>:
О попе ——обычный файл;
6 pid — при каждом запуске xntpd создается новый файл (к префиксу и имени файла добавляются точка и номер процесса);
О day — каждый день создается новый файл (к префиксу и имени файла добавляется .yyyymmdd);
О week ——каждую неделю создается новый файл (к префиксу и имени файла добавляется .yyyywww);
О month — каждый месяц создается новый файл (к префиксу и имени файла добавляется .yyyymm);
О year — каждый гол создается новый файл (к префиксу и имени файла добавляется ,уууу);
О аде — новый файл создается каждые 24 часа (к префиксу и имени файла добавляются .а и 8-значное количество секунд на момент создания файла от момента запуска xntpd);
О link/noiink — по умолчанию создается жесткая ссылка от файла без суффикса к текущему элементу набора (это позволяет обратиться к текущему файлу из набора используя постоянное имя);
О enabie/disabie ——разрешает/запрещает запись в соответствующий набор файлов;
口 restrict numeric-address [ mask <numeric-mask> ] [flag] ... —задает ограничение доступа: пакеты сортируются по адресам и маскам, берется исходный адрес и п ос ледовател ьно сравнивается, от последнего удачного сравнения берется флаг доступа:
нет флагов — дать доступ;
ignore ——игнорировать все пакеты;
noquery ——игнорировать пакеты NTP 6 и 7 (запрос и модификация состояния);
nomodify — игнорировать пакеты NTP 6 и 7 (модификация состояния);
notrap ——отказать в обеспечении mode 6 trap-сервиса (удаленная журнализация событий);
lowpriotrap — обслуживать ловушки, но прекращать обслуживание, если более приоритетный клиент потребует этого;
noserve — обслуживать только запросы mode 6 и 7;
пореег ——обслуживать хост, но не синхронизироваться с ним;
notrust — не рассматривать как источник синхронизации;
limited — обслуживать только ограниченное количество клиентов из данной сети;
n tpport / поп -пtppor t — модификатор алгоритма сравнения адресов (сравнение успешно, если исходный порт равен/не равен 123), алгоритм сортировки станмт згу строку в конец списка;
245245NTP. дннхр口нмзац酬=времени зерез с^тъ, нзстро麻а 叩емвнн口济 зинь/
245
245
口 clientlimit limit — для флага limited определяет максимальное количество обслуживаемых клиентов (по умолчанию 3);
口 clientperiod <се^уяд> — сколько секунд считать клиента активным и учитывать при определении количества обслуживаемых клиентов;
口 trap host-address [port <port-number>][interface interface*
&dd丁曰ss>]——задать хост и порт, которые будут вести журнал;
口 setvar <variabie> ——установка дополнительных переменных;
口 logfile <мм^^ф(айлй> — использовать файл <имя-ф^йла> для ведения журнала вместо syslog;
口 logconfig <k&yword> — управление количеством сообщений» сбрасываемых в журнал. Ключевое слово может быть предварено символами равно (установка маски), минус (удаление класса сообщений), плюс (добавлен ние); ключевое слово образуется слиянием класса сообщений (clock, peer, sya, sync) И класса событий (info, ©vent, statistics, status); в качестве суффикса или префикса может использоваться слово ан.
Обеспечение безопасности сервера
Если сервер точного времени используется только локальной сетью, желательно закрыть 123 порт для доступа извне, чтобы избежать возможной атаки типа DOS (Denial Of Service, отказ в обслуживании), поскольку это грозит неправильным функционированием сервера. Помимо этого необходимо использовать шифрование трафика.
Публичные NTP-серверы
Список публичных серверов точного времени можно найти в Интернете. В любом случае вам придется протестировать серверы из этого списка, чтобы определить задержки и качество соединения. Попробуйте сначала получить список серверов точного времени вашего провайдера (провайдеров). В списке литературы приведена ссылка на список серверов точного времени первого и второго уровней, можно попробовать синхронизироваться от них.
Клиентские программы
для синхронизации времени
Сам по себе сервер точного времени бесполезен, если у пользователей отсутствует программное обеспечение для синхронизации. В настоящее время практически для всех операционных систем есть программы получения времени с NTP-серверов. Некоторые из них приведены далее.
UNIX/Linux
Для этих операционных систем можно на компьютере установить сервер xntpd и настроить его для получения точного времени. У этого решения есть как достоинства, так и недостатки. Положительным моментом является то, что мы можем максимально точно синхронизировать время и построить отказоустойчивую конфигурацию- Отрицательный момент ——достаточно сложное конфигурирование сервера и относительно большой объем зани* маемой оперативной памяти компьютера*
Более простой вариант — воспользоваться утилитой ntpdate. Она небольшая по размерам и простая в конфигурировании. С ее помощью можно получить достаточно точное время — расхождение порядка 100 миллисекунд. Для синхронизации времени достаточно выполнить следующую команду:
ntpdate -В <ntp> <ntp2> <ntp3>
где <ntp>, <ntp2>, <ntp3> — адреса серверов точного времени. Достаточно добавить эту строчку в таблицу заданий crontab и вы всегда будете иметь на компьютере точное время.
Apple
Для компьютеров фирмы Apple есть клиент NTP, называющийся macntp.
Windows
Для операционной системы Windows существует несколько десятков клиентов службы точного времени. В частности, программа AboutTime, которую можно получить по адресу www3ktsoft.ru/programs/536/. Или программа Analc^X Atomic TimeSync, получить которую можно по адресу www,analogxxom/contents/download/iietwork/ats.htm. А можно воспользоваться программой Dimension 4 — www«thinkmanxom/*tliinkinan.
В Windows ХР встроен свой клиент, который самостоятельно синхронизируется с внешним сервером, определенным производителем операци* онной системы. Для настройки необходимо зайти в Панель управления, выбрать иконку Дата и время и щелкнуть на вкладке Время Интернета (рис. 16,1).
Здесь мн должны установить флажок Выполнять синхрошвяцню с сервером времени в Интернете, а чуть ниже — вписать адрес нужного нам NTP- сервера (если, конечно, вас не устраивает сервер имени Microsoft).
Сизктвн: Ji Id и время
^Двт^н^вмя ii Часовой пояс] Вреня Интернату ]] [•
Сервер: ithmen windows camСервер: ithmen windows camД jsSnoBMTb сейчас]Д jsSnoBMTb сейчас]0 выполнять синхронизацкго с сервером времени в Интернете
Сервер: ithmen windows cam
Сервер: ithmen windows cam
Д jsSnoBMTb сейчас]
Д jsSnoBMTb сейчас]
Время было успешно снкхронизоо,но с tlme4 windows । сот не 04.04.2005 b 10i И.
Следующее выполнение синхронизации! 1L04.2O0&B 10:14
Синхрснимция возможна только копи комгъютвр падхлючен к Интернету. Дополнительны? сведения о ткот^мции воапемн южно получить а иентре спрмки м падд叩мкк
0K ] [ QPy^jT^ !「吧殷енитн [
Рис. 16.1. Настройка синхронизации времени в Windows ХР
Глава 17
Сервер Samba — контроллер домена
Несколько ранее мы уже производили настройку Samba для работы в одноранговой (равноправной) сети. Наряду с положительными моментами (легкость настройки, независимость от сервера) гут есть и отрицательные —— для нормальной работы необходимо на каждом компьютере прописывать пользователей и производить администрирование — права доступа, пароли, ограничения. В общем, для трех компьютеров это терпимо, для двадцати уже нет. Захотелось шефу для любимой бухгалтерши открыть доступ к документам всех сотрудников ——бегай по всем компьютерам, назначай права. А если после отпуска шеф забыл пароль, попробуй, уговори его пройтись по всем компьютерам и ввести 40 раз пароль — узнаешь5 где премия зимует.
Для данной проблемы придумали множество решений. Одно из них от Microsoft —Active Directory ——достаточно обширное и гибкое. К сожалению, сервер Samba пока не поддерживает данную технологию. Частично это можно поправить, используя LDAP, но все равно полной совместимости с Windows Server 2000/2003 не получится. Поэтому просто рассмотрим случай, когда Samba выступает в качестве первичного контроллера домена, что позволит нам централизованно управлять списком пользователей сети.
Конфигурирование Samba в качестве первичного контроллера домена
Ранее мы рассмотрели основные моменты конфигурирования сервера в качестве простого сервера, предоставляющего в пользование свои ресурсы. В этом разделе мы будем конфигурировать Samba таким образом, чтобы
сервер выступал в качестве первичного контроллера домена сети Windows. Настройку можно разделить на два больших шага:
L Настройка Samba PDC (Primary Domain Controller, первичный контроллер домена),
2. Создание доверенных бюджетов машин и подключение клиентов к домену. Есть несколько моментов, на которые следует обратить ваше внимание: 口 необходимо включить шифрование паролей;
口 сервер должен поддерживать вход в домен (domain logons) и ресурс Jnetlogon];
口 для того чтобы клиенты корректно определяли сервер как контроллер домена, он .должен быть главным обозревателем сети (domain master browser).
В листинге 17,1 приведена часть файла конфигурации smbxonf, в которой прописаны параметры, позволяющие серверу Samba стать контроллером домена.
[global]
;основные настройки сервера netbios name = donain_pdc workgroup = test
;сервер должен выступать в роли detain и local master browser os level = 64
preferred master = yes
domain master = yes local inaster = yes
;название сервера-контроллера домена password server 二 domain_jpdc
;разрешить работу с доверенными доменами allow trusted domains = yes
;поддержка правш! доступа и ограничений в стиле NT nt acl support = yes
;настройки безопасности security = user
; для PDC требуется шифрование паролей
G叩w&p Samba — к^нтралп叩叩м吕на251
encrypt passwords = yes
;поддержка domain logons domain logons = yes
;место, где помещать профили пользователей
logon path = \\%N\profiles\%u
; местонахождение домашних каталогов пользователей
;м где они должны быть смонтированы
logon drive = Н:
logon home = \\hameserver\%u
; указываем об^шй скрипт подключения для всех и ол ь эо в а телей
;это относительный путь к [netlogonj ресурсу
logon script = logon*cmd
;необходимый ресурс для контроллера домена [netlogonj
path = /usr/local/sainba/lib/netlogon
writeable = no
write list 工 ntadmin
;ресурс для размещения профилей пользователей [profiles]
path = /export/smib/ntprof ile
writeable = yes
create mask = 0600
directory niask = 0700
Настройка клиентских компьютеров
Если вы знаете, как настраивается сетевое подключение, этот раздел может вам и не понадобиться. Но на всякий случай, просмотрите, вдруг что-то подзабыли.
Windows 9х
Конечно, тяжело сейчас найти компьютер с установленным Windows 98, нот тем не менее, какая-то часть старой техники еще функционирует, и не ис-
ключено, что нам "повезло,*. Поэтому рассмотрим конфигурирование клиентской машины.
L Откройте Панель Упрааления/Сепъ. Выберите способ входа в сеть Клиент для сетей Microsoft.
Откройте Панель Управления/Сеть/Клнент для сетей Microsoft. Нажмите Свойства; выберите Входить в домен Windows NT. Именем домена будет имя, заданное в параметре workgroup, при настройке Samba. В нашем случае Test.
Откройте Панель Управления/Сеть/Доступ к ресурсам. Установите доступ на уровне пользователей.
Перезагрузите компьютер, появится окно входа в сеть, содержащее поля: Имят Пароль, Домен, Введите данные tt попытайтесь зарегистрироваться. Если вход произошел корректно, и вы ранее не пользовались компьютером, то появится окно Создать для Вас учетную запись?, нажмите кнопку Да. Причем компьютер запросит повторить пароль. Откажитесь от этого, просто нажав клавишу <Enter>+
Windows 2000/ХР
В целом, настройка сетевых параметров аналогична, необходимо указать, что компьютер входит в домен test, и при входе ввести имя учетной записи и пароль.
Управление учетными записями
Управлять учетными записями нашего сервера можно с консоли администратора Windows, с помощью утилиты для удаленного упрааления контроллером домена, поставляемой Microsoft, через SSH-соединение, или используя Webmin.
Глава 18
Контроль и аудит
В этой главе мы научимся экономно обращаться с выделенным нам трафиком и полосой пропускания, а также отслеживать нагрузку, потребляемые ресурсы и сайты, к которым обращались каши пользователи,
Я не знаю как у вас, но в нашем городе безлимитные тарифы на подключение к Интернету составляют наименьшую часть. Обычно в абонентскую плату, в зависимости от условий подключения, ширины канала и т, д” входит 1—3 Гбайт оплаченного графика. Все что свыше, оплачивается по тарифу. Причем большинство провайдеров считают по "большему плечу'* —— это либо входящий» либо исхоляший трафик, в зависимости от объема потребления* Ну да не суть важно. У большинства среднестатистических потребителей выделенной линии входящий трафик по крайней мере раза в два больше, чем исходящий. Как следствие, наша задача каким-то образом либо жестко ограничить трафик квотами, либо уменьшить входящий трафик за счет уменьшения поступающего имусораи, к примеру, запрет на некоторые категории сайтов, отказ от загрузки баннеров и т. п.
Действовать можно с разных направлений и используя разные программные комплексы. В целом же можно выделить два направления ——жесткое квотирование трафика для пользователей и система различных ограничений и доступ по паролю, ограничение полосы пропускания для пользователей, ограничение по сайтам и т, п. Рассмотрим сначала второй вариант*
Прокси-сервер
Установку прокси-сервера мы уже рассматривали, поэтому что-то вам будет уже знакомо. Итак5 что же мы можем сделать с его помощью? В первую очередь, поскольку полученные данные кэшируются, то таким образом мы можем сэкономить. Поскольку у нас уже используется DHCP-сервер, одной из возможностей которого есть гьщача клиентам адреса прокси-сервера, н®・ страивать ничего не нужно.
Еще один вариант transparent proxy ——это таким образом настроенный прокси-сервер, что его использование полностью прозрачно для пользователей. Это имеет как хорошую сторону ——пользователям не придется дополнительно настраивать соединение, так и плохую — не все ресурсы будут отображаться корректно. Для организации transparent proxy необходимо, чтобы транзитные пакеты, предназначенные для 80 порта, попадали на его вход.
Борьба с баннерами
Следующий этап экономии — удаление баннеров с просматриваемых страниц. Средний баннер занимает 15—30 Кбайт, так что при просмотре 100 страниц в день экономия на баннерах состаеит порядка 36—72 Мбайт в рабочий месяц. Вроде бы и не густо, но в целом комплексе мер это дает существенную экономию. Борьбу с баннерами можно производить разными методами:
настроить отдельный прокси-сервер, с ограничением баннеров;
совместить ограничение баннеров с transparent proxy;
Л организовать прокси-сервер на локальной системе для ограничения баннеров.
Подробную информацию см. в pg& ,1Боръба с баннерами "гл, 14.
Разделение внешнего канала
Часто бывает така что у вас есть внешний канал, скажем, 128 Кбит, м несколько групп пользователей с определенным приоритетом. Что это нам даст? Особо злостных потребителей, если они действуют не в служебных целях, можно временно или постоянно перевести в "узкий" канал. Либо в этот канал определить тех, кому не нужен трафик в больших объемах* к примеру, отдел кадроз, а в ыс вободи в шуюся полосу пропускания отдать тем, кто плотно работает с Интернетом. Подробную информацию с соответствующих настройках Squid ◎£ & разд, ^Конфигурирование пакета Sqmdrt 2А. 14.
Помимо Squid, для этого можно воспользоваться специализированными программами, предназначенными для разделения канала. Существует несколько программ такого типа с различной функциональностью. Например, есть тякие? которые позволяют ограничивать не по пропускной способности, а по количеству полученных данных. Принцип их действия оригинален и прост. Допустим, у вас выделенный канал, причем в арендную плату входит 1 Гбайт входящего трафика. В программе выставляется ограничение 1 Гбайт в месяц. Далее происходит следующее. В начале информация качается с максимальной скоростью, но при приближении к заветной цифре пропускная способность канала уменьшается и уменьшается, не позволяя вам выйти за рамки ограничения. В результате, в последние дни месяца, скорость канала может упасть до десятков байт в секунду.
В качестве стабильной и хорошо конфигурируемой программы такого типа можно порекомендовать пакет CBQ, Ограничивать трафик можно и с помощью утилиты tc, входящей в пакет ipraute2.
Организация доступа к web-ресурсам по паролю
Как уже упоминалось ранее. Squid очень гибок, благодаря наличию ACL- правил. Это нам, в частности, дает возможность ограничить доступ пользователей к ресурсам по паролю. Что для этого нужно? Список пользователей, их пароли и специальные правила в конфигурационном файле Squid, благодаря которым и будет происходить авторизация. В простейшем случае это организуется следующим образом:
authenticateqrogram /usr/Local/squid/bin/ncsa_?auth
acl users proxy_auth REQUIRED
http^access allow users
http_access deny all
В первой строке определяем программу, с помощью которой будет производиться авторизация пользователей. В данном примере ——стандартная программа, входящая в комплект Squid, Как создавать файл пользователей и работать с ней, вве узнаете» почитав справку. Можно пользоваться различными системами авторизации, к примеру, LDAP, Kerberos, Active Directory.
В следующей строке указывается, что нам необходимо производить авторизацию пользователей и любой автолизированный пользователь попадет в ACL с именем users (имя произвольное). Далее разрешается доступ для пользователей^ прошедших авторизацию, и запрещается доступ для неавто- рнзованных пользователей.
Вот еще один вариант:
acl boss pro>Q^auth REQUIRED
acl users proxy^uth. lisa vasya petr ivan
acl work^tiire time 09:00-18:30
http_access allow boss
http_accesa allow users work^time
http^access deny all
Как мы видим, здесь добавилось правило worK^tine, которое применяется к списку авторизованных пользователей группы users. Благодаря этому правилу доступ для пользователей lisa, vasya5 petr м ivan возможен только с 09:00 до 18:30. Если же мы хотим ограничить еще и рабочими днями недели, ТО Правило примет следующий ВИД: acl work^tima time MTWHF 9:00-18:30,
Запрет на скачивание определенных файлов
Иногда нам необходимо каким-то образом запретить получение файлов, к примеру, видеофильмов и МРЗ-файлов. Нет ничего проще, нужно только знать регулярные выражения и написать небольшое правило для Squid. В общем виде это выглядит так:
acl badobjects url_regex регулярное -выражение http_access deny badobjects
Где badobjects — это произвольное имя ACL; http_access ——собственно запрещает получение объектов, успешно прошедших через badobjects, А вот пример, который запрещает получение по FTP файлов с расширениями mp3, zip, гаг, avi, mpeg, mpe, mpg, mov:
acl badobj ects url_regex ™i ftp +叩3 .zip * rar *avi *叩 ❸ g ・叩曰,щрд .mov http_access deny badobjects
либо:
acl badobjects ur 1 path__regex -i \*.叩3$ \ . zip$ \ ,rar$ \ *avi$ \ .ropeg$ *.mpe$ \.mpg$ \.mov$
Это позволит нам фильтровать данные, не обращая внимания на протокол, по которому осуществляется доступ к файлам.
Запрет на посещение определенных web-сайтов
Точно таким же образом, при помощи правил, можно ограничить пользователей в праве посещать отдельные web-сайты. К примеру» хотим запретить пользователю vasya доступ на www.anekdot.ru и www.fihnz.nl:
Acl razvlekuha dstdomain .anekdot.ru .filmz.ru http_access deny vasya razvlekuha
Квотирование трафика
Один из вариантов управления трафиком — выдача квот для каждого пользователя. Использование квотирования позволяет жестко ограничить по^ требляемый трафик и поэтому можно и не организовывать всяческие удаления баннеров, доступы по паролю и т. п. Одним из наиболее удачных, на мой взгляд, пакетов — это NeTAMS.
Программа NeTAMS
Пакет можно найти по адресу www-netams.com. Скачать его в виде RPM-файла можно по адресу www.altlinux.ru/mdex.php?module=sisyphus&package=netanis+ Что же он умеет? На этот вопрос лучше всего ответит цитата с официально-
го web-сайта: NeTAMS (Network Traffic Accounting and Monitoring Software)— многофункциональная программа по учету и управлению IP-трафиком для маршрутизаторов Cisco или компьютеров под управиченисм UNIX (Linux/ FreeBSD/Solaris). Поддерживаю1'ся различные методы сбора статистики (tee/divert/ip_queue/libpcap/netflow v5), хранения в базе данных (BerkleyDB/ MySQL/PostgresSQL/Oracle), агрегирования^ отображения, оповещения и пр. Возможно проводить блокировку на базе квот, авторизации, исчерпании баланса (б(1ллинг); управлять полосой пропускания, создавать гибкие политики учета и фильтрации.
На web-сайте присутствует достаточно подробная документация, при помоги которой можно настроить этот пакет. Там же есть форум, где можно задать допросы авторам программы Поскольку пакет достаточно сложный и предназначен все же для профессионгшьного использования, настройка и установка его нетривиальны, В частности, для корректного функииониро- ванмя пакета используются следующие пакеты: MySQL-cHent, MySQL-server, Apache, Apache-common, binutils? cpp, gcc, gccv++i glibc-devel, libMySQL, libMySQL-devel, libbfd, librnm, libpcap, libpcap-devel, lib5tde++-曲¥乩 make, ipiables-deveh kernel-headers-coinmon, kernel-headers. Присутствует возможность администрирования через web-интерфейс.
Мониторинг загрузки каналов
Дл>| анализа загрузки интернет-канала необходимо использовать дополнительный пакет, поскольку разбираться самим в журналах системы ——задача неблагодарная. Чтобы обеспечить требуемую наглядность, такой пакет должен вьглаиать информацию в графической форме, причем, желательно, с помощью web-интерфейса. Все эти условия реализованы в программах MRTG (Mulli RoiHer Traffic G raphe г) и RRDlool (Round Robin Database).
Программа MRTG
MRTG создает HTML-страницу с отображением загрузки канала за сутки, неделю, месяц и год. Для этого используется написанный на Ре『1 сценарий, который опрашивает маршрутизатор, а программа, написанная на С, обрабатывает получившийся результат и создает естроенные в HTML-страницу изображения в формате GIF/PNG. Помимо собранной информации, пакет MRTG может обрабатывать информацию и из других источников (epuinfo, df, squid и т. nJ и строить графики.
Большим преимуществом данной программы является постоянный размер журналов, в которых более старая информация хранится с меньшими подробностями. Внешний вид получаемых графиков приведен на рис. 18.1.
9%к I5M
Рис* 18.1. Результат работы программы MRTG
Конфигурирование MRTG
Для конфигурирования программы MRTG используется файл mrtg.cfg, параметры которого будут рассматриваться ниже. Как обычно, будут приведены только ключевые параметры, с полным списком можно ознакомиться в документации, прилагаемой к этому программному пакету.
Правила записи параметров в конфигурационном файле:
口 ключевое слово — а начале строки;
口 двоеточие — разделитель, идущий сразу за ключевым словом;
口 строка продолжения начинается с пробела;
строки комментария начинаются с символа ”#”.
Итак, файл mrtgs亀 может содержать следующие команды:
口 Include: имя_файла ——подключаемый файл;
Кснтрсль 加自%мг 25g
□ workoir: хм月 кат口』口尸占一зада巳丁 размещение журнала, рабочих файлов и генерируемых страниц, имеет Приоритет над HtmlDir, ImageDir И LogDir;
口 HtmlD土г: имя каталога ——задает размещение генерируемых страниц;
口 ImageDir: ^я_^а^алога — задает размещение генерируемых изображений; обязательно находится под H5iDir — страницы генерируются в этом предположении;
LogDir; имл^атало^а ——задает размещение журнала;
口 Refresh: число ——частота перерисовки графиков в браузере;
口 RunAsDaemon: no | yes запуск MRTG в режиме демона;
口 interval: число — предполагаемый интервал запуска MRTG;
口 iconDir : имя_к^т^лота — каталог, где хранятся иконки;
口 Fork匀; 寸加亡比门——определяет, сколько параллельных процессов опроса запускать;
口 writeExpire: no | yes ——создавать файлы .meta для Apache;
口 KFoMibS : по I yes — не запрашивать sysUptime, sysName;
口 Language : язык_отчетов——onpejej[«eT язык отчетов, есть поддержка русского языка;
口 LogFormat ; rrdtooi — формат журналов для RRDtool ——динамическое создание отчетов;
LibAdd1адре ^-библио теки rrd tool RRDs.pm —— адрес библиотеки
RRDiool;
口 PathAdd: адрес-rrdtaol — адрес RRDtool.
Для каждого контрол и р уе м ого устройства, которое обозначается как Target (цель), буквы преобразуются в строчные и создается отдельная секция. При работе MRTG каждая цель порождает файлы журнала (targetJog и target.old), картинки с графиками (target-day.gif, target-week.gif, target-nionth.gif» target- year.gif) и HTML-страницу (targetJitml).
口 Target [target! : порт: conimuni Су^мартрутизатор
[:port[:timeout[:retries[:backoff[;2]]]]]
где:
порт ——номер интерфейса на маршрутизаторе;
сотпшип! tyпароль на чтение;
мар^нрутизатор— кия или 1Р-адрес;
port ——по умолчанию стандартный порт SNMP;
timeout — время ожидания;
retries — количество попыток;
backoff — во сколько раз увеличивать timeout при каждом повторе;
2 — означает использование 64'битных счетчиков.
口 Та где t [ t arge t ].: внеяи dth - программа - с -пареме нрами-в-о 8d тных - ка ззыу 氏自 х
Программа должна возвращать на стандартный вывод 4 строки:
значение счетчика входных байтов;
значение счетчика выходных байтов;
текстовую строку, содержащую информацию о времени работы объекта после включения;
строку, указывающую имя объекта*
口 Routeruptime [target] t coznmuni ty$ маршруту а тор—— откуда брать НН- формацию об имени маршрутизатора и его времени работы для составных target;
MaxBytes{target 1 ; число ——значения переменных, которые больше этого числа, игнорируются;
口 Titie[targetj : текст — заголовок для HTML-страницы;
口 РадеторЕtarget] : текит — текст, выдаваешяй в верхней части HTML- страницы;
p^geFoot [target] : текст — текст, выдаваемый в нижней части HTML- страницы;
口 AddHead[rarget] : т曰кит —— HTML-текст, встанляемый после title внут* pH HEAD;
口 MaxAbs[target] : число — если используется сжатие, то возвращаемое значение может превосходить MaxByte;
un3caied[target]! [d] [w]【m] ly] — отключить масштабирование по вертикали для соответствующего графика (d ——день,附——неделя, m — месяц, у — год);
□ withPeakftarget] : [w] [m] [у] — показывать в недельном, месячном и годовом графиках не только средние, но и пиковые значения (*— неде- ЛЯ,/П — МСС5山 у — год);
口 supress[target] : [d] [w] [hi] [у] —— отключить генерацию части графиков (d — день,什—неделя, m — месяц, у — год);
Directory[target] ; имя-^та^ога ——размещать в данном каталоге нее файлы, относящиеся к указанному target;
П xsize(target]: тнел。——число пикселов в графике по горизонтали;
YSize[target] : число —— число пикселов в графике по вертикали;
口 YTicsf target]: “仁比门 ——число вертикальных делений;
口 step [target]: число — определяет шаг отображения в секундах;
口 Options[target] : ап^сок список опций через запятую:
growright —— время движется вправо;
bits — все числа умножать на 8 (измерять а битах);
perminute ——все числа умножать на 60 (измерять в единицах за минуту);
perhour ——все числа умножаются на 3600 (измерять в единицах за час);
transparent ——генерировать прозрачный фон картинки;
gauge ——интерпретировать полученные значения как абсолютные значения. Полезно для отображения таких параметров, как затрузка процессора, дискового пространства;
unknaszero — трактовать неверные значения как 0, а не как повторе' ние предыдущего значения.
口 kiloftarget] : число — что понимается под kilo. По умолчанию — 1000, можно установить 1024;
kMG[target] : список — какими буквами обозначать kilo, mega И Т. П, По умолчанию "К, М, G, Т, Р“;
口 Colours[target! :ColourittRRGGBB,Colouri#RRGGBE,Colour!#RRGGBB,
colourittRRGGBB ——определение цветовой схемы, где Colour ——текстовое имя цвета, помещаемое в легенду графика i = I, 2, 3, 4 — номера цвета; rkgghb — шестнадцатеричные значения, определяющие RGB-цвет;
口 Background [ target]: #rrggbb — задает цвет фона;
口 YLegendttarget] : текст ——ПО умолчанию "Bits per second*';
口 ShortLegend [ target] : текст — ПО умолчанию “Ь/S'.
Помимо MRTG, существует еще один пакет аналогичного назначения — RRDtool.
Программа RRDtool
Этот программный пакет обеспечивает хранение и отображение данных мониторинга —загрузку каналов, температуру и любую другую зависящую от времени п ос л ело вател ьность данных. Задумывалась как повторная, но более правильная реализация MRTG. Объем хранимых данных не увеличивается со временем ——ячейки хранения используются циклически. В отличие от MRTG, программа не упаковывает старые данные самостоятельно, сбор информации и генерация HTML-кода также производятся с помощью внешних средств. Параметры передаются в командной строке или через утилиту stdin.
Подсчет трафика
Иногда необходимо подсчитать трафик по клиентам» особенно когда организуется подключение домовой локальной сети или несколько небольших фирм совместно покупают выделенную линию для подключения к провайдеру. К сожалению, стопроцентного совпадения подсчитанного трафика с данными провайдера добиться вряд ли удастся поскольку приведенные ниже способы подсчета трафика дают разные результаты. Правда] погрешность подсчета обычно не превышает 5%.
Есть несколько вариантов подсчета трафика:
口 по данным, взятым из SNMP;
口 по данным, взятым из Cisco;
по данным, взятым из /ргос/tty/driver/serial;
О по данным, взятым из radacct (radius-accounting/ OutOctets);
口 no iptables;
口 с помощью nacctd.
Существует пакет, предназначенный для подсчета IP-трафика через протокол SNMP. Он так и называется ——универсальный счетчик IP-трафика через SNMP. Как уже отмечалось ранее, для этого можно использовать пакет NeTAMS. Помимо этих двух пакетов, есть большое количество программ, в частности, IpTraC useripacct, netacct, ipacct.
Глава 19
Настройка входящего модемного соединения
Мы уже умеем настраивать систему таким образомт чтобы она выступала в роли шлюза для локальной сети. Но нам часто необходимо получить доступ к локальной сети организации, например, из дома или из дома выйти в Интернет через корпоративную сеть. Для этого нужно установить программу, которая умеет поднимать трубку по входящему звонку и совершать некоторые дополнительные действия. Одной из таких программ является mgetty, умеющая, помимо всего прочего, посылать и принимать факсы, а также с помощью голосового модема принимать и отправлять голосовую почту (voice mail).
Настройка mgetty
Обычно mgetty, как и ррр, входит в стандартную поставку дистрибутива. Единственное, что необходимо проверить, был ли пакет mgetty скомпилирован с опцией -dauto—Ppp, и если нет, то пакет необходимо перекомпилировать (в дистрибутиве Fedora Core mgetty скомпилирован с нужной нам опцией).
После установки mgetty нам следует отредактировать конфигурационные файлы, В файле /etc/mgetiy+sendfax/login.conflg мы должны написать следующее:
/AutoFPP/ — &_ррр /usr/sbin/pppd auth refuse-chap require-pap login
-/bin/login @
Эта строка указывает mgetty:
после установления входного соединения необходимо вызвать программу PPPd;
для пользователя требуется авторизация;
口 аутентификацию по протоколу CHAP отклонять и требовать авторизации по протоколу РАР,
После установления соединения nigetty анализирует данные, приходящие с модема, и в случае, когда приходит запрос ка авторизацию по протоколу РАР, программа сразу же запускает pppd, который и проводит аутен- тн 巾 нкаиню.
Далее нам необходимо отредактировать файл /etc/mgetty+sendfex/mgettyxonfig приблизительно следующим образом: port ttySO speed 115200 data-only у debug 3 init^chat "“ ATZ OK answer-chat "” ATA CONNECT \c \r
Как видите, модем подключен к первому последовательному порту (СОМ1 в терминологии DOS/Windows)5 скорость обмена 115 200 Кбит/с, строка инициализации atz. Далее нужно добавить внзов mgetty в файл inittab. Для этого достаточно дописать всего лишь одну строку: £4:2345: respawn: /зЫп/mgetty /dev/ttySl
Перегрузив операционную систему, можно приступать к испытаниям — попробуйте позвонить ка телефонный номер, где установлен ваш модем, если нее настроено нормально, он должен поднять трубку*
Настройка pppd
С настройкой pppd вы уже ознакомились ранее. Поэтому, чтобы не повторяться, просто приведем соответствующие конфигурационные файлы с небольшими комментариями. Файл options, tty SO должен содержать следующие данные: # Устройство lock login auth modem crtscts -chap +P^P # наш ина'ерфейс : удаленный интерфейс 192Л60.0.200:192.168,0,201 # маска подсети
netmask 255*255*255,0
# адрес сервера DNS для клиента Windows
ms-dns 192,168.0 Л
Файл /etc/ppp/pap-secrets должен содержать следующие данные:
userl сервер.домен ""*
user2 сервер. дмев h" +
Где:
□ useri — иш пользователя, причем он должен существовать в системе с установленным модемом;
口 user2 ——сервер, на котором будет проводиться аутентификацияt е нашем случае вместо сервер.домен необходимо поставить имя сервера, принимающего входящее соединение;
口 "”一 отсутствие пароля указывает на то, что пароли необходимо брать из файла /etc/shadow;
О * — абонент может производить аутентификацию с любого [Р-адреса.
Вот и все ——вы стали провайдером, причем сильно облегчили жизнь пользователям Windows, поскольку IP-адрес и адрес DNS-сервера вы выдаете автоматически, кроме того, отпадает потребность в использовании сценария для соединения.
Настройка Callback-сервера
Вы настроили свой Dial-in-сервер, попользовались им какое-то время и захотели облегчить кошелек фирмы и сохранить свой в неприкосновенности. Например, в вашем городе повременная оплата и часами работать в Интера нете из дома дорога, а руководство вашей организации не возражает против того, чтобы вы работали за ее счет* Дело за малым — организовать ваш сервер таким образом, чтобы не вы ему звонили, а он вам. В западной литературе такой сервер называется Callback-сервером (сервер обратного звонка).
Функционирует он следующим образом. Сначала клиент дозванивается через модем к Callback-серверу. Модем на сервере настроен на прием входя тих звонков. После установки соединения сервер предлагает клиенту пройти аутентификацию. Клиент подключается к нему как особый Callback- пользователь. После этого модем на сервере обрывает связь, и сам звонит клиенту по номеру, который закреплен за компьютерам клиента (либо определился с помощью ДОН). Модем на клиентском компьютере готов принять обратный звонок, и после установления соединения происходит по^ вторная авторизация. По окончании аутентификации устанавливается РРР- соединение. Далее клиент работает обычным образом.
Конфигурация Callback-сервера
После того как настройка Dial-in^cepBepa завершена, необходимо выполнить следующие действия:
】.Создать нового пользователя back.
Создать пустой файл с именем callbackxonf в /etc/mgetly/.
В файл /etc/mgetty/loginxonfig добавить следующую строку:
back /usr/sbin/callback -S 1234567
После ключа -s указывается номер, по которому сервер должен сделать обратный звонок клиенту.
Конфигурация клиентов
Поскольку сервер мы уже сконфигурировали, необходимо сконфигурировать клиента и проверить, каким же образом работает обратный звонок. Начнем с операционной системы Linux*
Конфигурирование Мпих^клиента
Для конфигурирования Linux-клиента необходимо выполнить следующее:
Создать файл /etc/ppp/options3 в котором должны быть такие строки:
lock
defaultroute
noipdefault
modem
115200
crtscts
debug passive
Создать файл ppp-callback в /etc/ppp/peers/, в котором должны быть такие строки:
ttyS0 33600 crtscts
connect f/usr/sbin/chat -v -f /etc/ppp/chat-ca1Iback1
noauth
口 Создать файл /etc/ppp/chat-callback, в котором должны быть такие строки:
ABORT BUSY
ABORT VOICE
ABORT ” NO DIALTONE,r
ABORT MNQ ANSWER"
ATZ
□К ATDP1234567# Телефонный номер сервера
CONNECT \d\d
ogin: \q\dback
TIMEOUT 90
RIKFG AT&C0S0=l ogin: \q\dvasya assword: \q\dpasswordfortest
В файл chat-callback необходимо вписать телефон Callback-сервера, имя и пароль пользователя,
口 Создать файл /usr/bin/pppcall, в котором должны быть такие строки:
#!/bin/bash
/usr/sbin/pppd -detach call ppp-callback &
И сделать его исполняемым.
Теперь для того чтобы позвонить на ваш серверт достаточно запустить сценарий pppcall.
Конфигурирование клиента MS Windows
Для Windows конфигурация производится по-другому. Выберите команду меню Пуск/Про1раммы/Стандартные/Удаленный доступ к сети/Новое соединение. Укажите данные, необходимые для дозвона к серверу. Помимо этого, в настройках модема на вкладке Подключения нажмите кнопку Дополнительно и в строке инициализации модема укажите следующее: &c0s0-l
Теперь пробуем дозвониться до нашего сервера. После дозвона в открывшемся окне терминала вы увидите приглашения для аутентификации. Зарегистрируйтесь в системе как back. После этого модем со стороны сервера оборвет связь, подождет несколько секувд и перезвонит вам. После установки соединения вам предложат пройти повторно авторизацию. Введите имя учетной записи и пароль к нажмите кнопку Продолжить в окне терминала.
Глава 20
Доступ к удаленным компьютерам
Любая UNlX-пoд0бнa^l операционная система может предоставлять удаленный доступ, начиная от простейшего консольного режима и заканчивая работой системы X Window, от простого редактирования текста до полного адм и нистри рования удаленной системы. В мире UNIX в порядке вещей, когда администратор сервера месяцами не имеет физического контакта с сервером и тем не менее он ежедневно удаленно производит мониторинг, обновление программного обеспечения м администрирование сервера. Для этих целей используются несколько программных пакетов м протоколов: Telnet, SSH и некоторые другие.
Telnet
Под Telnet понимают трехкомпонентную систему, состоящую из:
口 ТеНеЬклиента;
□ Telnet-сервера;
П Telnet-протокола.
Telnet-протокол
Telnet-протокол является протоколом приложения, использует транспортный протокол TCP и описан в стандарте RFC 854. Авторы стандарта говорят, что назначение Telnet —— дать общее описание, насколько это только возможно, двунаправленного, восьмибитного взаимодействия, главной целью которого является обеспечение стандартного метода взаимодействия терминального устройства и терм иная-ориентированного процесса. При этом данный протокол может быть использован и для организации взаимодействий **терминал-терминалг (связь) и "процесс-процесс" (распределенные вычисления).
Telnet-протокол для обеспечения функци он альности основан на следующих базовых концепциях:
口 сетевой виртуальный терминал (Network Virtual Terminal, NVT);
О согласование параметров взаимодействия;
口 симметрия связи “терминал ・прсл1есс".
Рассмотрим эти концепции подробнее. Сетевой виртуальный терминал позволяет абстрагироваться от реалий. Это стандартное описание наиболее широко используемых возможностей физических терминальных устройств. Сетевой виртуальный терминал позволяет описать и преобразовать в стандартную форму способы отображения и ввода информации. Telnet-клиент и Telnet-cep вер п реобразо вы ва ют характеристики физических устройств в спецификацию сетевого виртуального терминала, что позволяет унифицировать характеристики физических устройств и обеспечить принцип совместимости устройств с разными возможностями. Характеристики диалога диктуются устройством с меньшими возможностями.
В Telnet-протоколе сетевой виртуальный терминал определен как “двунаправленное символьное устройство, состоящее из принтера и клавиатуры1*. Принтер предназначен для отображения приходящей по сети информации, а клавиатура — для ввода данных, передаваемых по сети. По умолчанию предполагается, что для обмена информацией используется 7-битный код ASCII, каждый символ которого закодирован в 8-битное поле.
Согласование параметров взаимодействия позволяет унифицировать возможности представления информации на терминальных устройствах. Благодаря этой концепции, можно использовать большинство возможностей современных терминалов. Обычно для этого существует специальная таблица соответствия, которая позволяет нестандартные команды терминала заменить стандартными наборами команд. Как правило, процесс согласования форм представления информации происходит е начальный момент организации Telnet-соединения, Каждый из процессов старается установить максимальные параметры сеанса* В UNIX-системах параметры терминалов содержатся в базе данных описания терминалов termcap. При инициировании Telnet* соединения обычно именно эти параметры используются в процессе согла* сования формы представления данных. При этом из одной системы в другую передается значение переменной окружения term. В процессе договора останутся только те функции, которые поддерживаются на обоих концах соединения,
С1шме/прия взаимодействия позволяет клиенту и серверу в течение одной сессии меняться ролями.
Программа-клиент telnet
Программа telnet ——стандартный Telnet-клиент, входящий во все операционные системы UNIX-семейства и 日 практически все операционные смете-
мы Windows. Для подключения к удаленной системе обычно используется команда вида:
telnet <имя_хоста>
Основные команды программы telnet приведены в табл* 20丄
Таблицах^. Команды программы telnet
Команда
Описание
Open <hcst> [<port>]
Начать Telnet-сессию с машиной <host> по порту <portx Адрес машины можно задавать как в форме 1Р-адресаг так и в форме доменного адреса
close
Завершить Telnet-сессию и вернуться в командным режим
Quit
Завершить работу программы telnet
Z
"Зам口разить" Те1ле1-сессию м перейти е режим интерпретатора команд локальной системы. Из этого режима можно выйти по команда Exit
Mode <type>
Если значение <type> равно line, то используется буфе* риэованный обмен данными, если character 一 обмен не буферизованный
? [ <commanc?>] help [<command>]
Список команд или описание конкретной команды
Send <argmnent>
Данная команда используется для ввода команд и сигналов протокола Telnet, которые указывают©貝 в качестве аргумента
Программа-сервер telnetd
telnetd ——это сервер, обслуживающий Telnet-протокол. Для этого, обычно, используется ТСР-порт 23, но программу можно сконфигурировать на использование другого порта. При установке взаимодействия с удаленным клиентом telnetd обменивается командами настройки: включение режима эха, обмен двоичной информацией, тип терминала, скорость обмена, переменные окружения.
Применение Telnet и безопасность
Telnet-протокол долгие годы был единственной универсальной возмож^ ностью удаленно работать с различными консольными программами. По своей простоте, нетребовательности к ресурсам и полосе пропускания он до сих пор не имеет себе равных. Помимо этого, клиентская программа telnet позволяет устанавливать соединения м с другими сервисами (например, с почтовым сервером SMTP млн РОРЗ)5 что дает возможность производить
рахпичные манипуляции (например, просмотреть без почтового клиента содержимое своего почтового ящика или отправить письмо).
Однако при всех его достоинствах Telnet-протокол имеет один огромный недостаток — данные пересылаются в открытом виде. Из*за этого любому злоумышленнику не составляет труда перехватить имя и пароль пользователя, а также другую информацию. В ячестве альтернативы Telnet используются SSH или OpenSSH. На сегодняшний день практически во всех дистрибутивах демон Telnet вынесен в устаревшие службы и настойчиво не рекомендуется к использованию. Однако Telnet-клиент имеет смысл держать под руками для всяких непредвиденных случаев ——отладка почтового сервиса, FTP и т. п. Тем более что многие интеллектуальные устройства, к примеру, фирмы Cisco, первоначальную конфигурацию производят имен' но посредством Telnet,
Протоколы SSH и OpenSSH
SSH обеспечивает возможность удаленного выполнения команд и копирования файлов с аутентификацией клиента к сервера, а также с шифрованием передаваемых данных, в том числе имени и пароля пользователя. Дополнительно обеспечивается шифрование данных X Window и перенаправление любых TCP-соединений. Существует несколько программных реализаций, в частности, коммерческий — SSH и бесплатный пакет с открытым исходным кодом — OpenSSH.
Принцип работы SSH
SSH представляет собой протокол транспортного уровня, аутентификации и соединения, а также программные средства безопасного доступа к компьютерам по небезопасным каналам связи (Telnet, Xll5 RSH, FTP). Аутентификация производится с использованием асимметричного шифрования с открытым ключом (SSH1 — RSA, SSH2 — RSA/DSA). Обмен данньгми — симметричное шифрование. Целостность переданных данных проверяется с помощью специальных контрольных сумм. Работает поверх TCP и исполь* зует порт 22. В качестве ключа берется случайная строка, которую генерирует клиент, шифрует с помощью открытого ключа сервера и передает серве^ ру. Протокол аутентификации работает поверх протокола транспортного уровня и обеспечивает аутентификацию клиента для сервера. Шифрование трафика начинается после аутентификации сервера, но до аутентификации клиента, таким образом, пароли в открытом виде не передаются. Возможно соединение произвольных TCP-портов по защищенным каналам. Предусматривается возможность сжатия,
Существует две версии протокола: SSH1 и SSH2* По своей реализации это совершенно разные протоколы. Протокол SSH2 был разработан с учетом
найденных в первом варианте уязвимостей. Однако не стоит уповать на абсолютную надежность и защищенность SSH2. Недавно в OpenSSH была найдена уязвимость, которую, правда, быстро исправили. Поэтому желательно отслеживать сообщения о найденных уязвимостях в пакетах, используемых на сервере и обновлять их по мере выхода новых версий.
OpenSSH
Это некоммерческая реализация протокола SSH с открытым кодом. Программный пакет способен работать с протоколами SSHI n SSH2. Имеется также поддержка 「-команд. Для большинства дистрибутивов пакет OpenSSH включен в стандартную инсталляцию.
Конфигурирование OpenSSH
Конфигурирование OpenSSH очень сильно зависит от концепции обеспечения безопасности и необходимости поддержки протокола старого типа. Поскольку использование протокола SSH 1 из-за найденных уязвимостей не рекомендуется ——при конфигурировании необходимо запретить его использование. Также рекомендуется запретить использование r-команд и всего, что с ними связано. При конфигурировании OpenSSH необходимо произвести настройку сервера и клиента. Конфигурационный файл сервера называется sshd^onfig, а клиента — ssh_config.
Файл $shd_config. Файл sshd_conflg задает параметры SSH-серверу и может содержать внушительный список различных параметров. Далее приведены его основные конфигурационные параметры:
AllowGroups <список-имен-групп-через-пробел>——ВХОД разрешен ТОЛЬКО пользователям, чья группа входит в этот список;
AllowTcpForwarding yes/no ——разрешает или запрещает маршрутизацию ТСР-пакетов;
口 AllowUsers <список-имен-через-пробел> ——ВХОД разрешен ТОЛЬКО перечисленным пользователям;
Au thor i z edKeys Fi1e <ммя-ф^йл^-a-публичным-ключом> — задает ИМЯ файла, содержащего публичный ключ;
口 Banner <сообщениеперел-аутентиф^тrацией> ——текст сообщения, ВЫВОДИМОГО сервером перед аутентификацией клиента;
口 ciphers ——список алгоритмов симметричного шифрования для SSH2: aesL28-cbc, 3des-cbc, blowfish-cbc, castl28-cbc, arcfour;
口 ciientAiiveintervai <а&кун^> — определяет интервал в секундах, через который сервер будет производить проверку, произошло или нет отключение клиента;
client al iveCountMax <число> — данный параметр определяет число неудачных проверок существования связи с пользователем до разрыва сессии;
口 DenyGroups <список-имен-групп^через-пробел> ——определяет СПИСОК групп пользователей, которым запрещено устанавливать соединение с сервером;
口 Denyusers <слисок-^^ен-через-пробел> — определяет список пользователей, которым запрещено устанавливать соединение с сервером;
Gatewayports no/yes ——данный параметр определяет, разрешать или нет удаленным хостам доступ к перенаправленным портам;
口 HostbasedAuthentication no/yes 一 разрешить или запретить аутентификацию, используя имя хоста (только для SSH2);
口 HostKey <имя-файла-содершащего - прива тный - ключ> — С ПОМОЩЬЮ данного параметра можно указать серверу, где расположен файл, содержащий секретный ключ шифрования;
口 igncreRhosts уез/no ——этот параметр позволяет определить, использовать или нет файлы .rhosls и ghosts для аутентификации. Для увеличения безопасности системы рекомендуется запретить использование этих файлов;
ignoreuserKnownHosts no/yes — параметр позволяет запретить использование файла ^/,ssh/known_hosts во время аутентификации rhosts+RSA;
KeepAl ive yes/по — параметр позволяет использовать механизм регулярных сообщений для проверки разрыва связи;
口 KerberosAuthentication yes/no ——параметр позволяет запретить использование Kerberos при аутентификации;
О KerberosorLocalPasswd yes/no ——в том случае, если аутентификация через Kerberos не прошла, данный параметр позволяет использовать /etc/passwd для аугенти фикаци и;
口 KeyRegenerationinterval 3600 — параметр задает интервал регенерации ключа сервера;
ListenAddress о,о,0.о — параметр определяет, к каким адресам прислушиваться; при использовании необходимо также определить параметр Port;
口 LoginGraceTime <секунд> ——данный параметр определяет, через сколько секунд произойдет разрыв соединения, если при аутентификация пользователь за это время не введет пароль;
口 LogLevel info — параметр определяет, какой уровень использовать при создании сообщений в журнал системы. Можно использовать следующие уровни: QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG;
口 macs <a л горитмы - прав ерки -целоетности -да нных> — этот параметр определяет, какой алгоритм будет использоваться для проверки целостности данных: hiaac-md5, hmac-mhali hmac-ripeindieo^ hmac^shal-96, hmac-md5-96;
口 Maxstartups io ——данный параметр задает максимально возможное количество соединений, ожидающих а)ггентификации;
П passwordAuthentication yes/по — параметр разрешает аутентификацию по паролю;
口 permitEmptyPasswords no/yes — параметр разрешает испальзование пустых паролей;
口 PermitRootLogin yes/по/without-password/forced-commands-only— параметр разрешает пользователю root подключаться к серверу;
口 pidFiie <имя-файла> — параметр задает имя файла, в котором будет храниться PID (Process Identification, идентификатор процесса) сервера;
Pert 22 — параметр определяет, какой порт слушает сервер;
PrintMotd yes/no — параметр разрешает использование /etc/niold при входе пользователя в систему для выдачи сообщения;
Protocol 2 —— параметр определяет, с какой версией протокола работает сервер;
口 pubkeyAuthentication yes/no —— параметр разрешает использовать публичный ключ при аутентификации;
ReverseMappingCheck no/yes ——параметр разрешает после определения адреса по имени хоста производить проверку того, что обратная зона для этого адреса указывает на тот же самый хост;
口 Rhos tsAuthent i cat ion no/yes —— параметр разрешает аутентификацию только на основании файлов .rhosts или /etc/hosts,equiv;
口 RhostsRSAAuthentication no/yes —— параметр разрешает аутентификацию на основе .rhosts- и RSA-аутентификаиии;
RSAAuthenticacion yes/no — данный параметр используется только для протокола SSH1;
serverKeyBits 768 — данный параметр определяет длину ключа;
strictModes yes/no —— параметр разрешает проверять права доступа к файлам с частными паролями при запуске;
口 $у台丄口^Facility лита — параметр задает тип сообщений, передаваемых на syslog: DAEMON, USER, RUTH, LOCAL0, LOCAL 1, LOCAL2, LOCALS. LOCAL4» LOCAL5, LOCALS, LQCAL7;
口 useLogin no/yes — параметр разрешает использовать login для интерактивных сессий;
口 xiiDisplayoffset ю — параметр определяет первый доступный номер дисплея при передаче XI1.
Файлы на сервере, используемые при входе SSH. При входе SSH на сервере используются следующие файлы:
口 /etc/nalogin ——при наличии этого файла запрещается вход пользователей, кроме root. Содержимое файла выдается в качестве сообщения о причине отказа в доступе;
口 /etc/liosts^allow ——используется для разрешения доступа;
口 /etc/liosts.deny — используется для запрещения доступа;
~/,rh门亂£ — файл содержит пары "хост — пользователь", разделенные пробелом. Для указанного пользователя с указанного хоста разрешается заходить без ввода пароля при использовании RhostsAu thent ication и RhostsRSAAuthentication. Так же используется семейством г-команд;
口 ^/.sliosts — аналогично файлу .rliosis, но не используется семейством г-камгпш;
口 /etc/hostsxqinv —— список хостов, с которых пользователи могут заходить, не указывая паролей, под теми же самыми именами. За именем хоста можно указывать имя конкретного пользователя. Так же используется семейством г-команд;
口 /etc/shosts.equiv — аналогично файлу hosts,equiv, но не используется семейством г-команл;
口 ^/.ssh/cnvironnient —— содержит пары вида "имя —— значение", которые по- мещаюпся в окружение при входе.
Файлы ключей сервера. В качестве ключей сервера используются следующие файлы:
口 /usr/local/etc/ssh_host_key — приватный ключ хоста;
/usr/local/etc/ssh_host__rsa_key — приватный ключ хоста, алгоритм шифрования RSA;
口 /usr/local/etc/ssh_host_dsa_key — приватный ключ хоста, алгоритм шифрования DSA;
口 /Lisr/locaVetc/ssh host key.pub — публичный ключ хоста;
口 /usr/local/erc/ssh_host_rsa_key.pub — публичный ключ хоста, алгоритм шифрования RSA;
/usr/local/efc/ssh_lwst_dsa_key.pub ——публичный ключ хоста, алгоритм шифрования DSA.
Файл ssh_config. Данный файл предназначен для конфи^рации SSH* клиента и разделен на секции директивами Host. Секция применяется при работе с хостом, удовлетвориющим шаблону секции:
口 Host <ш5^лоны> ——следующие огшнм применимы к хостам, подходящим под один из гиаблонов; имя хоста берется из командной строки, в шаблонах используются символы и "?,+;
口 Batchwode no | yes ——параметр разрешает не запрашивать пароль/парольную Фразу;
checkHostiP yes I по позволяет дополнительно проверять адрес сервера в known_hosts;
口 cipher 3des|blowfish ——определяет алгоритм шифрования данных;
口 Ciphers aesl28-cbc, 3deM-ubc, blowfish-cbcT castl28-cbcT arcfcur, aesi92-cbcj aes256-cbc ——определяют алгоритм шифрования данных;
ciearAiiForwardings no]yes ——данный параметр позволяет сбросить все перенаправления портов;
口 compression no | yes — параметр разрешает производить сжатие передаваемых данных;
口 compressionLevei <уровень-сжатмя> — параметр определяет уровень сжатия данных для протокола SSH1;
口 ConnectionAttempts <число-попыток-соедмнения> — параметр задает число попыток установления соединения;
口 Escapechar <chmbojj> | <лсимвол>|попе—— параметр позволяет определить символ для использования вместо тильды;
П FaiiBackToRsh по | yes — параметр разрешает испол[>зовать RSH в том случае, если сервер не имеет SSH-сервера;
ForwardAgent no |yes ——параметр определяет, передавать ли запрос к агенту аутентификации на удаленный хост;
口 Gatewayports no | yes — параметр разрешает удаленным хостам соединяться на перенаправленные локальные порты;
GlobaixnownHostsFile <имя-^йла> — параметр разрешает использовать указанный файл вместо /usr/local/etc/ssh_known_hosts;
口 HostKeyAigorithms ssh-rsa, ssh-dss — параметр определяет используемые алгоритмы шифрования (SSH2);
口 identityFiie <имя-файлам — параметр определяет файл, в котором хранится приватный ключ;
KeepAiive yes |по — параметр позволяет заметить разрыв связи или аварийное завершение на удаленном конце;
П KerberosAuthentication уем | 口口 一 параметр разрешает использовать Kerberos-аутентификацию;
口 LogLevei info — параметр определяет, какой уровень использовать при создании сообщений в журнал системы. Можно использовать следующие уровни: QUIET, FATAL. ERROR, INFO, VERBOSE, DEBUG;
口 MACs hmac-md5, hmac-shal, hmac-ripemdl60, hmac-shal-96, hmac-md5-96 — параметр определяет используемые алгоритмы для создания контрольной суммы;
口 Number of ₽as swcrdPrcmpts 3 —— параметр определяет количество попыток ввода пароля пользователя;
口 passwordAuthentication yes/no — параметр разрешает аутентификацию по паролю;
口 port 22 — параметр определяет, к какому порту будет подключатся клиент;
PreferredAuthentications publickey, password, keyboard- interactive —параметр определяет приоритеты аутентификации (SSH2);
口 Protocol <список-версий-протокола> ——параметр задает список версий протокола в порядке предпочтительности;
П Proxycommand —— применение этого параметра позволяет использовать дополнительную команду для соединения с сервером;
Pubkey Au then t i са ti on yes ] no — параметр разрешает использовать при аутентификации публичный ключ (SSH2);
RhostsAuthentication yes | по 一 параметр разрешает использовать при аутентификации файл .rhosts (SSH1);
strictHostKeyChecking ask | no [yes — параметр разрешает не добавлять незнакомые или изменившиеся хосты в know_hosts;
口 usePrivilegedPcrt yes |по ——параметр разрешает использовать привиле* гированные порты для установления соединения;
П User <имя~пользователя> ——параметр задает имя пользователя, которому разрешено работать с SSH;
□ UserKnownHostsFiie <файл-кпа^_Ьо£Сз> — параметр определяет местоположение файла known_hosts;
口 UseRsh no I yes — параметр разрешает использовать RSH в том случае, если SSH на хосте отсутствует.
Файлы ключей клиента. В качестве ключей клиента используются следующие файлы:
口 "/.ssh/identity — приватный RSAl-ключ пользователя;
口 "/,ssh/id_dsa — приватный DSAS-KJiioq пользователя;
口 ^/.ssh/id_rsa — приватный RSA2-soikh пользователя;
口 ^/.ssh/tdentity.pub ——публичный RSAl-ключ пользователя;
口 */.ssh/id_dsa,pub — публичный В5А2-ключ пользователя;
□ ^/.ssh/id_rsa.pub — публичный RSA2-kjik)4 пользователя.
Ключи запуска SSH-сервера
Помимо конфигурационного файла, некоторые особенности функционирования SSH-сервера можно задать, используя ключи запуска* Далее приведены основные ключи запуска:
口 -d — не отсоединяться от терминала при запуске;
-ь <бит> — задает число бит ключа сервера (SSH1), по умолчанию 768;
-d — переводит сервер в отладочный режим, использование нескольких ключей увеличивает количество отладочной информации;
l曰—разрешает выводить сообщения на stderr вместо syslog (т. е, не жур* налировать сообщения, а сразу выводить на стандартное устройство для вывода ошибок ——обычно это текстовый терминал);
口 -f <лмя - к онфигур а цио иного -фа йла > ——определяет положение конфигурационного файла, удобно использовать при отладке;
-д <время-ожидания> — определяет время ожидания между вводом имени и пароля пользователя;
口 一h <файл-ключе^-хос^> — определяет местоположение файла ключей;
口 一к <интервал> — задает интервал регенерации ключа сервера;
口 -р <порт> — определяет порт, который будет слушать сервер;
-q — запрещает выдачу информации на syslog (т, е, запрещает журналирование событий);
口 一t — позволяет произвести проверку на отсутствие ошибок в конфигурационном файле и ключах;
-и <число> — вместо имен хостов, превЬЕшающих н^сл», в журнале utmp будет записываться lP-адрес: -□◎ вызывает безусловную запись IP- адресов;
口 亠4 — использование протокола IPv4;
口 一6 — использование протокола IPv6.
Ключи запуска SSH-клиента
Как и для сервера* для изменения некоторых параметров клиента можно воепользоваться ключами запуска:
-а — запретить перенаправление агента аутентификации;
^虱一разрешить перенаправление агента аутентифи кации;
-ь <адрес> — позволяет для хоста с несколькими интерфейсами использовать конкретный адрес;
口 -с blowfish |3des — задает используемый алгоритм шифрования (SSH1);
О -匸 < спи сак-а л гори гм ое -лгиф^ования-у ерез * за ля тую-> ^-* ЯЛГОрИТМ В НЗЧЗ* ле списка имеет наибольший приоритет; по умолчанию: aesi28-cbc, 3des-cbc, blowfish-сЬСи, ca5tl28-cbc, arcfour, a£sl92-cbc* aes256-cbc (SSH2);
口 -d вокальный-порт> — эмуляция SOCKS4-cepBepa 底。защи[ценному каналу;
口 -е <с^мвол> I <Лсимвол> | попе — определяет Escape-символ вместо тильды; попе обеспечивает прозрачную передачу данных;
-f — перейти в фоновый режим после запроса пароля или парольной фразы;
-F < имяк онфигур ац^гоиного-файла > —— разрешает использовать указанный файл в качестве конфигурационного;
口 一g — разрешать удаленному хосту подсоединяться к локальным перенаправленным портам;
-i cMAt^k巾以冴订曰〉— определяет файл, н котором хранится приватный клюй;
П -к — запретить перенаправление Kerberos;
-1 <имя -пал ьз о в а тел я > — определяет, от имени какого пользователя устанавливается соединение;
口 -m < с mi с о № ^ л гори тмо в - д б ё сп й ния - цело с тно с ти - со едим ения > — определяет алгоритмы подсчета контрольной суммы;
—п — направить /dev/null на stdin и перейти н фоновый режим;
-р <парт> ——соединиться с указанным хостом на удаленном хосте;
-р — использовать непривилегированный порт для исходящего соединения, чтобы обойти ограничения сетевого экрана;
口 「R <лакальный-порт>: <хост>: <удаленны^-порт>—— ССЛИ ПРОИСХОДИТ СО* единение на удаленный порт, то оно перенаправляется по защищенному каналу на локальный порт;
П -s — запуск подсистемы на cepsepe ——например, sftp; имя подсистемы задается последним параметром;
一七一требовать выделения псевдо-tty;
-т — не выделять псевдо-tty;
-х — запретить перенаправление XI1;
-к — разрешить перенаправление XII;
-1 — использовать только SSHI-протокол;
口 -2 — использовать только SSH2-протокол;
-4 — использовать IPv4;
口 -6 — использовать IPv6.
Программы, входящие в пакет OpenSSH
Помимо клиента и сервера, в пакет OpenSSH входят программы, предназна*- ченные для генерации ключей, аутентификации, а также программы, призванные заменить набор г-команд+
Программа ssh^keygen
Программа ssh-keygen предназначена для генерации, преобразования и управления ключами. По умолчанию генерирует RSA-ключ. При генерации запрашивается парольная фраза. Число бит по умолчанию ——1024. Имя файла для хранения публичного ключа образуется из имени файла для частного ключа добавлением суффикса ,pub. Ключ хоста должен иметь пустую парольную фразу.
Возможные строки запуска:
генерирует ключ по указанному пользователем алгоритму:
ssh-keygen [-t rsal |dsa [rsa] [-b <бит>1 [-N <пароль н<ая - фра з й > ] [-С <ко^ентарий>] (г£ <имя-файл^-эзпр!си>] [-q]
изменяет комментарий:
ssh-keygen *с [-Р <парольне я-фра за ^ ] [-С <коммен таряй> ] [-f < файл - ьклю4HdMи> ]
О читает приватный или публичный ключ в формате OpenSSH и преобразует его в формат SecSh для экспорта в другие реализации SSH: ssh-keygen -е {-f <方日/^-2-通心甘日ми>]
читает приватный или публичный ключ в формате SSH2 или SecSh и преобразует его в формат OpenSSH:
ssh-keygen -i [ -f <файл-с-ключами>J
позволяет изменить парольную фразу:
ssh-keygen -р [-Р < с тар<а я-п^рольна я - ^р<а за> ] [-К <нозая-17<арольная- [-f <фаibi-c-ключами>]
口 читает приватный OpenSSH DSA ключ и выдает OpenSSH DSA публичный клюк
ssh-keygen -у [—f <фа йл - с - кшо^л^^ ]
Программа ssh^agent
Программа ssh-agent позволяет производить КБА/ОЗА-аутентификацию. Она запускается в начале сессии и устанавливает переменные окружения, с помощью которых остальные программы могут использовать ее для автоматической аутентификации SSH. Параметром является имя команды и ее аргументы, выполнение ssh-agent останавливается при завершении команды*
Если имя команды не указано, то ash-agent запускается в фоновом режиме, а на stdout выдаются команды экспортирования необходимых переменных окружения.
Опции командной строки ssh-agent:
О -с — позволяет выдавать на stdout команды в стиле cshJ;
П -s — позволяет выдавать на stdout команды в стиле sh;
-к — завершает работу агента по переменной ssh,.agent_pid.
Программа ssh-add
Эта программа используется для добавления приватных ключей. Она запрашивает парольную фразу, расшифровывает приватный ключ и посылает его ssh-agent. Если терминал недоступен, но определена переменная display, то для ввода парольной фразы используется программа, определенная переменной ssh^askpass. Таким образом, парольная фраза запрашивается только один раз за сеанс, а не при каждом вызове ssh/scp/sftp.
Опции командной строки ssh-add:
имя файла — имя файла с приватным ключом, по умолчанию используется ""/.ssh/identity;
-ь — выдает публичные ключи, хранящиеся в ssh-add;
-d — удаляет приватный ключ;
口 吓一удаляет все ключи.
Программа sftp
Программа sftp является клиентом для SFTP-сервера (Secure File Transfer Protocol, защищенный протокол передачи файлов), который должен быть описан в опции Subsystem в конфигурационном файле sshd.
Программа sftp позволяет пересылать файлы в режиме, подобном FTP- протокол у ? однако она осуществляет все операции поверх SSH. К сожалению, данный вариант FTP пока не получил широкого распространения.
Опции командной строки:
口 [ <пользователь>^] <имя*^оста>г : <каз*алог>/] — задает аналогично FTP имя пользователя, хост, к которому производится подключение, и каталог подключения;
口 -ь сммя-©占如胃〉—позволяет читать команды из файла вместо стандартного устройства ввода;
-с — разрешает использовать сжатие пересылаемых файлов;
Командная оболочка UNIX.
口<имя - к онфигурационного-файла-з sh> — указывает, кякой конфигура
ционный файл использовать;
口 -о <оодия> — передается SSH,
Интерактивные команды, используемые б ftp, аналогичны FTP-командам:
bye — разорвать соединение;
口 cd <путь> — сменить каталог;
口 led <путь> — сменить каталог;
口 chgrp gid <имя-файлам — изменить групповой идентификатор файла на указанный в команде;
□ chmad mode <имл*файла> ——изменить атрибуты файла;
口 chowi uici мимл■力&宓鼻占〉—— изменить владельца файла;
口 exit — выйти;
口 get [ -P] <имл ^удаленного - файла > [ <имя -локального- фа йла > ] — команда для получения файла* ключ -е> позволяет сохранить права и время создания и модификации получаемого файла;
help — позволяет получить справку по командам;
口 11s [ <олции^1з> [<имя-файла>]]——ПОЛУЧИТЬ СПИСОК фаЙЛОВ;
ipwd — пароль;
mkdTt <имя> — создать каталог;
О put (-Р] <имя -локального - файлй > [ <имя-удаленного-файла>] — Выгрузить на сервер файл, ключ -р позволяет сохранить права, время создания и модификации передаваемого файла;
口 pwd — пароль;
口 quit — ВЫЙТИ;
口 rename <старое-имя> <навае-имя> ——переименовать ф&ЙЛ;
口 rmdir <имл> — удалить каталог;
口 rm <имя-файла> — удалить файл;
口 syiftl ink <старое-имя> <новое-имя> — СОЗДЯТЬ символическую ссылку.
Программа sep
Прс1рамма sep яаляется аналогом программы гер и осуществляет копирование файлов между хостами, причем оба могут быть удаленными. Способы аутентификации аналогичны $SH. Вызывает SSH дяя организации канала передачи данных. Имя файла записывается в виде:
[[Пользователь^ 1 <хост>: 1 <файл>
Опции командной строки:
-с <алгорятм-шифрования> — передается SSH;
П -i <^ля-фа^ла> ——файл с приватным ключом, передается в SSH;
П -о <опция> — передается SSH;
-р — сохраняет время модификацииа использования и права доступа к файлу;
-г — позволяет рекурсивно копировать весь каталог;
-в — пакетный режим ——не запрашивать пароль или парольную фразу;
—с — разрешает производить сжатие при передаче файла;
口 -f нкон方用「呼己口用白нныйг©^宓л> ——определяет альтернативный конфигурационный файл;
-р <门白口「> — задает порт сервера;
口 -s <программа> ——разрешает использовать указанную программу вместо SSH;
т — использовать IPv4;
-6 — использовать IPv6,
Программа ssh^keyscan
Программа ssh-keyscan позволяет собрать публичные ключи хостов, имена хостов задаются в качестве параметров или в файле. Опрос производится параллельно. Опции командной строки:
-t <тип^ключа> ——задает тип шифрования ключа (RSA1, RSA, DSA);
口 -Т <секунл> — определяет тайм-аут;
П -f <и^я-ф^ил^> — определяет файл, в котором каждая строка содержит имя или адрес хоста;
— использовать IPv4;
-6 — использовать IPv6;
口 -р <уд а л ея/шй - л орт> — определяет порт.
Windows SSH-клиент
Поскольку мы □анимаемся сопряжением Windows и Linux, то почти наверняка управлять сервером вам придется из Windows. К сожалению, в стандартной поставке этой операционной системы нет SSH-клиента и нам необходимо искать альтернативу, желательно бесплатную, И она, конечно же, есть — это великолепная программа, называемая PuTTY. Скачать программу, раз-
мер ее порядка 380 Кбайт, можно по адресу wwwxhiark.greenend.org.uk/ "sgtatbam/ptttty/download.html. На этой странице помимо Telnet и SSH клиента PuTTY можно получить следующие программы:
PuTTY (Telnet- и SSH^kjimcht);
口 PSCP (SCP-клиент);
PSFTP ( SFTP-клиент);
PuTTYtel (только Telnet-клиент);
Plink (клиент командной строки);
口 Pageant ( SSH-агент ап^нтификации для PuTTY, PSCP и Plink);
PuTTYgen (утилита генерации RSA* и DSA-ключей).
Последняя версия на момент написания книги была 0.57. После того как вы успешно скачали файл, мы его просто запускаем, Бнешний вид программы можно увидеть на рис. 20. L
Рис. 20.1. Программа PuTTY
Как видите, все достаточно просто. Окно программы условно можно разбить на три части ——левую* верхнюю и центральную. В верхней части мы задаем имя хоста, м которому собираемся подключаться, и порт, к которому
происходит подключение. Чуть ниже мы выбираем протокол, с помощью которого будет происходить общение. Это может быть просто поток символов, Telnet. R-login и SSH. К примеру, мы зададим 192.168.0J, 22 порт и протокол SSH.
С левой частью сложнее* Она отвечает за разнообразные настройки и разбита на соответствующие группы. В секции Session определяется поведение PllTTY во время сессии, в частности, что протоколировать и куда именно, в какой файл, В секции Terminal настраивается, как и какой терминал эмулирует наша программа, какой тип и раскладка клавиатуры используется и т. д. В секции Window находятся настройки нн巳[пне「о вида окна PuTTYt кодовой таблицы символов и т* п. В секции Connection —— сетевые настройки программы. И в секши SSH — параметры и особенности использования SSH-протакола,
Центральная часть. Здесь мы можем как-то назвать наше сконфигурированное соединение и сохранить его в списке доступных. Как видно, на рисунке у меня есть соединение LesowaYodsk. Достаточно мне его выбрать н нажать кнопку Open, как откроется окно терминала,「ле я введу имя и пароль и получу доступ к консоли удаленного сервера (который стоит, кстати, на пароходе, у причала, за 10 километров от меня) по протоколу SSH (рис. 20.2).
Как видите —— все просто. Теперь мы можем управлять нашим удаленным сервером так, как если бы находились прямо возле него.
лр' ilst^ksoZcivodsh:\ Jg 伍I
Рис. 20»2. Консоль удаленного сервера
VNC
Еще одна возможность удаленного доступа к компьютерам — это программа VNC (Virtual Network Computir^). К теме нашей книги она, казалось бы, не относится, поскольку работает только с графическими средами, но, тем не менее, я считаю, что вы должны знать о такой возможности, поскольку этот пакет может работать под множеством операционных систем. Домашняя страница программы — www.realvncxom млн www.uk.research.att.com/vnc.
Пакет состоит из двух частей — клиента и сервера. Сервер устанавливается на компьютерах» к которому вы хотите подключаться, клиент ——на том компьютере, за которым вы будете работать* Доступ к серверу ограничен паролем. Благодаря этому пакету вы получаете на клиентской машине полное отображение экрана компьютера, к которому вы подключились и можете управлять мышью и клавиатурой на удаленной машине, т. е. полностью работать на удаленном компьютере.
Глава 21
Утилиты администрирования сети и обеспечения безопасности
Пожалуй, одна из самых сложных и трудоемких задач системного администратора ——администрирование сети. Эта задача настолько комплексная, что можно практически все, о чем писалось ранее, отнести к подготовке к ней. Слишком много параметров, программ, настроек могут прямо или косвенно отражаться на функционировании сети м сетевых сервисов.
В этой главе всеа так или иначе, будет касаться ад ми нистрирован ия и управления сетью, хотя некоторые вещи с пераого взгляда никоим образам не относятся к сети или ее настройке. В той части главы, где будет говориться об инструментах, лредназначенных для обнаружения уязвимости системы, мы опишем несколько программных пакетов, которые с одинаковым успехом можно применить как для взлома системы, так и для ее защиты*
Эта глава ——обзорная. Невозможно полно и всесторонне рассказать о безопасности ——на эту тему написаны сотни книг, тысячи докторских работ и все равно ——найдется аспект, не описанный во всем этом многообразии.
Расширенное управление доступом к файлам
Стандартные средства организации прав доступа к файлам в UNIX- подобных операционных системах зачастую не удовлетворяют требованиям некоторых системных администраторов. Проблема заключается в том, что определение прав доступа к файлам сводится к установке девяти битов, с помощью которых можно задать права доступа для владельца файла, группы, к которой принадлежит владелец файла, а также для всех остальных.
Часто необходимо настроить доступ к файлу достаточно сложным образом —допустим, три человека из трех разных групп имеют право делать с файлом все что угодно, десять человек из других групп могут опфывать файл на чтение, а еще десять — только выполнять. Для всех других пользователей
ЮЗпк 1500
доступ к этому файлу необходимо запретить. Устроить нечто подобное стандартными средствами Linux весьма нетривиальная задача. В такой ситуации для решения данной проблемы можно воспользоваться Linux ACLs —— версией POSIX ACLs для Linux. Linux ACLs — это набор обновлений для ядра операционной системы и программ для работы с файловой системой и несколько утилит, дающих возможность устанавливать права доступа к файлам не только для пользователя-аладельца и группы-владельца файла, но н для любого пользователя или группы.
Linux ACLs использует расширенные атрибуты (Extended Attributes) для хранения данных о правах доступа к файлам пользователей и групп. Расширенные атрибуты — это пара имя/значение, привязанная к определенному файлу.
Список расширенного контроля доступа существует для каждого узла (inode) и состоит из шести компонентов. Первые три яаляются копией стандартных прав доступа к файлу. Они содержатся в единственном экземпляре в ACL, и есть у каждого файла в системе:
口 ACL-USER—OBJ — режим доступа к файлу пользователя-владельца;
口 ACL_G RO U Р_ОВ J — режим доступа к файлу груп п ы - владел ьца;
口 ACL_OTHER ——режим доступа к файлу остальных пользователей*
Следующие два компонента устанавливаются для каждого файла в отдельности и могут присутствовать в ACL в нескольких экземплярах:
О ACL_USER — содержит UID и режим доступа к файлу пользователя, которому установлены права, отличные от основных. На каждого пользователя со своими правами на данный файл хранится отдельная запись. Не может существовать более одной записи на одного и того же пользователя;
口 ACL_GROUP — то же самое, что и ACLJJSER, но для группы пользователей;
□ ACL—MASK ——маска действующих прав доступа для расширенного режима.
При установке дополнительных прав доступа присваивается значение и элементу ACL_MASK.
Каталоги также могут иметь список контроля доступа по умолчанию. В отличие от основного ACL, он действует на создаваемые внутри данного каталога файлы и каталоги. При создании файла внутри такого каталога файл получает ACL, равный ACL по умолчанию этого каталога.
Установка Linux ACLs
Для использования Linux ACLs необходимо получить на сайте разработали- ков собственно пакет Linux ACLs и обновления для ядра операционной системы Linux и некоторых утилит. Само собой, после наложения обновлений придется п ере комп и л ироватъ ядро операционной системы м утилиты.
291291Утт抗ты адм14HMeтрмрован切总 cstm 川 ob^cfiet{日нма 6白запасное「科
291
291
При подготовке к компиляции ядра операционной системы Linux необходимо выполнить следующие действия:
В меню Code Maturity Level Options отметить пункт Prompt for development and/or incomplete code/drivers.
В меню Filesystems отметить пункт Extended filesystem attributes (EXPRIMENTAL)
Затем отметить два подпункта: Extended user attributes и Access Control Lists.
В пункте Second extended ^ support отметить подпункт Extended attributes for ext2 (DANGEROUS)
После этого можно откомпилировать и установить ядро операционной системы, после следует переходить к обновлению стандартных и установке дополнительных утилит управления расширенным доступом к файлам. Для установки необходимо скомпилировать пакет ACL, который также берется на web-сайте разработчиков. Процесс компиляции и установки подробно описан в документации, входящей в комплект пакета. Там же берем обновления к стандартным утилитам операционной системы и применяем их, как написано в документации. После этого можно произвести перезагрузку операционной системы.
Установка и изменение прав доступа
Управление списками контроля доступа производится при помощи двух утилит — getfacl и setfacl. С помощью getfacl можно просмотреть текущие параметры доступа любого файла. Например, при вызове getfacl для домаш- 日его каталога пользователя vasya мы получим следующее:
getfacl /heme/vasya file: home/vasya owner: vasya group: users user:: rwx group:: other:
Как можно видеть, каталог /home/vasya принадлежит пользователю vasya, группе users и значение прав доступа к каталогу —— 0700. Каталог имеет только основные параметры доступа, поскольку изначально дополнительные права не устанавливаются.
Дополнительные права доступа к файлу устанавливаются и изменяются при помощи утилиты setfacl. Для этого используется следующий формат вызова:
setfacl -опили АСЬ структура, ACL_структура, ... # АСЬ_структура имя_файла имя файла
ACL-структура представляет собой одну из следующих конструкций:
口 [d:] [ii:J [пользователь] [: i + I Л]режимы_доступа] —— определяет режим доступа к файлу или каталогу пользователя. Если пользователь не указан, определяет режим доступа пользователя-владельца;
口 [d: ] g : [ группа] [: [+[ Л ] режимы^дсступа ] — ТО *С, ЧТО И предыдущая конструкция, но для группы;
口 [d: ] m [ : [+ I Л1 режимы__дос*гупа]——определяет действующие права доступа;
[d:i о [ :(+г ] ре^имы_доступа] — определяет режим доступа для остальных пользователей.
Для установки и изменения ACL используются следующие опции:
-в — заменяет полностью ACL-файл на указанный в командной строке;
-т изменяет режимы доступа к файлу (каталогу);
口 —х ——убирает правила доступа из ACL.
К примеру, вот что мы получим, применив setfacl к каталогу vasya:
setfacl -s u: : rwxf g: : , о: , uiusl: rwx^ g;usrs2 : rx, u:us2 ; /home/vasya getfacl /homc/dh
file; home/vasya owner: vasya group: users user::rwx user:usl:rwx user:us2: group:;
group:usrs21 r-x
mask:rwx
other:
Дополнительные возможности
Кроме основных опций запуска, обе команды имеют большое количество дополнительных. Мы не будем останавливаться на этих возможностях, поскольку пакет динамично изменяется, и вполне возможно, что он уже обладает большими возможностями по сравнению с темп, которые присутствовали на момент написания книги. К тому же пакет управления правами доступа вряд ли понадобится обычному пользователю или администратору небольшой локальной сети, а администратор большой фирмы должен быть в состоянии самостоятельно разобраться в возможностях любого программного пакета.
293293Утилмть/ М"мк外 итрмрован#斤 c^m м oge 口门已耳分了耳月 безо门ясность
293
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-пакета. Рекомендуется получить с сайта разработчика последнюю версию программного пакета.
Организация шифрованного туннеля
Stunnel может работать в двух режимах — сервера и клиента. В первом случае все поступившие данные дешифруются и передаются либо в указанную в параметрах запуска программу, либо на указанный порт заданного хоста, Во втором — все данные шифруются и передаются в определенную программу или на определенный порт заданного хоста*
Давайте организуем защищенное Telnet-соединение (хотя это и не имеет практической пользы, поскольку есть SSH) между двумя компьютерами А и Б. На компьютере Б запускаем Stunnel в режиме сервера: stunnel -d 999 -г 23
Опция -d указывает Stunnel работать в режиме отдельного демона, ждущего соединения по порту 999. Все данные, полученные в шифрованном виде на порт 999, в открытом виде передаются на порт 23 на локальной машине. Затем на компьютере А запускаем Stunnel в режиме клиента: stunnel -с -d 1055 -г В:999
Опция -с указывает на работу в режиме клиента, все данные, полученные в открытом виде на порт 1055, передаются в шифрованном виде на порт 999 на хосте Е. После проделанных манипуляций можно устанавливать Telnet- соединение с компьютером В. Команда запуска telnet на компьютере А будет выглядеть следующим образом: telnet localhost 1055
Несколько непривычно, зато данные полностью шифруются. Точно по такому же принципу организуется шифрованный туннель и для других сетевых протоколов.
Stunnel и приложения, поддерживающие SSL
Достаточно часто возникает ситуация, когда одно из приложений поддерживает протокол SSL, а приложение с другой стороны его не поддерживаем В этом случае Stunnel можно запускать только с одной стороны ——там, где приложение не способно поддерживать протокол SSL Но в этом случае возникает вопрос, какие порты используются приложением, поддерживающим данный протокол? Для ответа рассмотрим официальный список SSL- портов, который приведен ниже:
https
443/tcp
# http protocol
over TLS/£SL
smtps
465/tcp
# smtp protocol
over TLS/SSL (was ssmtp)
nntps
563/tcp
书 nntp protocol
over TLS/SSL {was snntp)
imap4-ssl
585/tcp
# IMAP4+SSL (use 993 instead)
sshell
614/tcp
# SSLshell
Idaps
636/tcp
# Idap protocol
over TLS/SSL (was sldap)
ftps-data
989/tcp
# ftp protocolf
data, over TLS/SSL
Утмамтм адммн蚪Gp*po”HMfj с@т“ “ 0б^спе“знма безопаснее
ftps telnets imapg ires pop3s
990/tcp# ftp protocol, control, over TLS/SSL
992/tcp# telnet protocol over TLS/SSL
993/tcp# imap4 protocol over TLS/SSL
994/tcp# ire protocol over TLS/SSL
995/tcp# pop3 protocol over TLS/SSL (was ярорЗ}
Сертификаты
Программа Stunnei имеет возможность проверки подлинности сертификатов тех хостов» к которым или с которьсс идет подключение. Для этого предназначена опция командной строки -к После -v необходимо указать уровень проверки сертификата. Он может иметь следующие значения:
о — никакой проверки наличия и подлинности сертификата не производится;
1 — сертификат проверяется на подлинность, если присутствует. Если сертификат не является подлинным — соединение не устанавливается;
2 ——проверяется присутствие сертификата и его подлинность. Если сертификат отсутствует или не является подлинным —— соединение не устанавливается;
П з — проверяется присутствие сертификата и его наличие в списке проверенных сертификатов. Если сертификат отсутствует или его нет в списке проверенных сертификатов — соединение не у стана вл и вается.
Сертификат создается при сборке пакета м помещается вместе с секретным ключом, используемым при расшифровке входящего трафика, в файл stunnei,регп+
Более полную информацию по этому программному обеспечению смотрите в документации, идущей в комплекте с Stunnei.
Утилиты сканирования и защиты сети
Утилиты сканирования — это класс программного обеспечения, предназначенный для нахождения уязвимостей в конфигурации компьютера или сети. Они могут быть использованы и как средство для улучшения безопасности системы, и как инструмент для взлома системы.
SATAN
Одна из старейших утилит сканирования. Говорят, что автора этого пакета уволили из фирмы, где он работал, из-за того, что он выложил SATAN на свой web-сайт.
SATAN может работать на нескольких операционных системах. Считается устаревшим, но тем не менее для проверки правильности основных сетевых на-
строек вполне пригоден. Работает от имени пользователя root, требует наличия Perl.
После запуска SATAN становится web^cepsepoM и запускает браузер Netscape, поскольку у него ^уеЬ'Ориентированный интерфейс. Для начала сканирования необходимо указать сканируемый хост или диапазон адресов и т'уровень нападения", который может быть слабым, нормальным и тяжелым- После этого кнопкой Start tiie scan запускается сканирование. По окончании сканирования необходимо перейти в раздел Reporting & Data Analysis. В этом разделе можно ознакомиться с найденными проблемами, которые необходимо устранить*
Portsentry
Еще один программный продукт, предназначенный для обнаружения сканирования сетевых портов. Основные возможности программы Portsentry:
О обнаруживает практически все известные виды сканирования компьютеров;
в реальном времени блокирует компьютер, производящий сканирование, посредством установленного на атакуемом компьютере брандмауэра, команду запуска которого можно задать в файле конфигурации;
口 записывает в журнал операционной системы посредством syslogd информацию об атаке;
О может вызывать любую указанную в файле конфигурации программу, в ответ на сканирование или подключение к защищенному сетевому порту.
Установка и настройка
Процесс установки подробна описан в документации на программу и не вызывает трудностей^ поэтому сразу перейдем к настройке программы.
Основной ко н фигураци онный файл программы Portsentry называется portsentry.conf. Содержимое файла portsentryxonf предстанляет собой несколько строк, каждая из которых имеет вид:
ОПЦИЯ = 11 значение **
Ниже приведен список основных поддерживаемых опций:
口 tcp_pcrts ——в этой опции через запятую перечисляются TCP-порты, которые проверяются программой Portsentry. При обнаружении подключение к перечисленным портам Portsentry записывает информацию об этом в системный журнал и выполняет команду, заданную пользователем^ а после этого блокирует хост посредством брандмауэра. TCP-порты, открытые на защищаемом компьютере другими программами, в этот список включаться не должны;
口 UDP_PCRT8 —— то же, что и tcp_ports, но для UDP-портов;
297297竹Ш7#п>/ мммн材 стрмроданмх с»ги,口 бес 门еч^нм旦 6日? 口门日 юности
297
297
口 advanced_ports_tcp — значение этой опции определяет верхнюю границу множества TCP-портов, которые проверяются Portsentry при работе в режиме Advanced Stealth Scan Detection Mode. Нижней границей является 15 т. е. при значении advanced_ports_tcр, равном 2048, проверяется подключение к любому порту в промежутке от 1 до 2048;
口 ADVANCED_PORTS_UDP ——TO *巳,ЧТО И ADVANCED_PORTS_TCP, НО ДЛЯ UDP- портов;
ADVANC ED_EXCLUDE_TC P — TCP-ПОрТЫ, КОТОрЫС ИСКЛЮЧНЮТСЯ ИЗ ПрОМС- жутка проверяемых портов, заданного параметром advanced_ports_tcp. Здесь обязательно нужно перечислить ТСР«порты, открытые работаю^ щими на защищаемом компьютере программами;
口 ADVANCED_EXCLUDE_UTP — ТО Же, ЧТО И ADVANCED„EXCLUDE^TCР, НО ДЛЯ UDP-портов;
口 ignore_file — имя и путь к файлу с IP-адресами хостов, которые не блокируются при подключении к портам, проверяемым программой Portseniry;
HISTORY^FILE ——ИМЯ И ПУТЬ К файлу С ИСТОрИСЙ работы ПрОГрйММЫ Portsentry. В файл записывается время блокирования, имя и IP хоста, атакованный порт, протокол;
口 blocked_file ——строка, из которой формируется имя и путь к файлам, куда записывается информация о блокированных хостах;
口 blqck_tcp ——эта опция в зависимости от значения задает ответную реакцию Portsentry на сканирование портов:
о — не блокировать хост, не запускать заданную пользователем команду;
1 — блокировать хост и запустить команду;
2 — только запустить заданную команду.
Команда задается при помощи опции kill_run_cmd;
口 block_udp — то же, ЧТО И BLOCK_TCP, НО ДИЯ UDP;
KILL-ROUTE ——эта опиия задает команду, которую надо выполнить для блокирования атакующего хоста. Для указания IP-адреса используется переменная $target$. Переменная $port$ используется для указания порта, к которому было подключение;
口 kill_hosts_deny ——эта опция задает строку, которая записывается в /etc/hosts,deny для блокирования доступа к сервисам, запускаемым через inetd;
口 Kibb_HUN_CMD ——с помощью этой опции можно задать команду, запускаемую до блокирования хоста;
口 scan_trigger — данная опция задает количество разрешенных подключений к проверяемым программой Portsentry портам одного и того же хоста, прежде чем Ponsentry начнет действовать. О определяет немедленную реакцию;
口 port_banner — задает сообщение, которое будет выводиться при подключении к проверяемому Portsentry порту.
В файле portsentry.ignore необходимо перечислить IP-адреса компьютеров, которые не должны быть блокированы программой при подключении к проверяемому порту.
Запуск
Portsentry можно запускать в трех различных режимах. Режимы задаются в командной строке при вызове Portsentry. Одновременно можно задать только один режим работы для одного протокола:
О Classic — при работе 日 этом режиме Portsentry открывает порты, указанные в tcp_ports или udp_ports, и ждет соединения* При попытке подключиться к такому порту происходит блокировка удаленного хоста. Этот режим работы задается опциями командной строки -匕ср — для TCP- портов и -udp — для UDP-портов;
Enhanced Stealth Scan Detection — этот режим используется для проверки перечисленных в tcp_ports или udp_ports портов на предмет подключения или сканирования. Выявляет почти все виды Stealth-сканирования, а не только сканирование подключением. В отличие от режима Classic, не держит открытыми порты, поэтому получает достоверную информацию о них. Задается опциями командной строки -step — для TCP* портов и -sudp — для UDP-портов;
О Advanced Stealth Scan Detection ——этот режим используется для проверки всех портов в промежутке от 1 до advanced_poht_tcp или advanced_port_udp. Порты, открытые другими программами и перечне- ленные в advanced_exludе_тср или advanced_exclude_udp, исключаются из проверки. Любой компьютер, попытавшийся подключиться к порту в этом промежутке, тут же блокируется* Задается опциями командной строки -atep — для ТСР-портов и -audp — для UDP-портов*
Сетевая статистика
Очень часто администратору необходимо получить развернутую информацию по сетевому трафику ——кто, когда, сколько и по какому протоколу отправлял или принимал информацию. Все это можно получить из системных журналов и с помощью специальных программных решений.
^k/wth адм达нкстр酬p口ванва 心&『х 川 обеззнш傾 8白?白订讨сности2gg
NeTraMet
Этот программный пакет позволяет подсчитывать трафик по IP-адресам в локальной сети раздельно по типам трафика: SMTP, ICMP, HTTP, FTP, UDPT TCP и т. n. Также существует возможность подробного регистрирования трафика.
Программный пакет состоит из нескольких частей:
口 NeTraMet ——программы-сборщика трафика* Собирает и хранит в оперативной памяти статистику с сетевых интерфейсов сервера;
口 NeMaC — программы-менеджера сборщика NeTraMet, NeMaC собирает статистику н записывает ее в журнал;
srl ——компилятора правил для NeMaC;
fU_filter ——программы обработки журналов NeMaC;
口 fd_extract — программы обработки результатов fd_filter.
Протоколирование
Нет смысла тратить много времени на защиту компьютера от взлома и не обращать внимания на систему протоколирования событий. Каким образом вы сможете узнать о попытке и способе взлома, не используя инструментов для ведения журналов? В этом разделе мы познакомимся с одним из них —— демоном syslogd.
Демон syslogd является частью пакета sysklogd, в который входят две программы: syslogd и kfogd. Syslogd отвечает за протоколирование сообщений системы, a klogd — ядра.
Демон syslogd
Демон syslogd запускается автоматически при старте системы и обеспечивает протоколирование событий, которое используется большинством программ. Демон syslogd пишет сообщения в файлы /var/log/*, в зависимости от настроек, Обычно записи в журнале, создаваемом syslogd, содержат следующие поля: лата н время, имя компьютера, программа, сообщение.
Файл конфигурации
По умолчанию используется файл конфигурации /etc/syslog.conf. Вы можете указать другой файл конфигурации с помощью опции -£・ Типичный файл конфигурации приведен ниже-
# Все сообщения ядра операционной системы выводить на консоль
#kcm. */dev/console
Все сообщения уровня info или выше протоколира в ат ь в файл
/var/log/messages
Кроме почтовых сообщений и сообщений аутентификации
+ inf о;mai 1. none; authpriv* none ; cron. none/var/log/messages
Про то колиро в акие аутентификации, # Файл протокола /vax/log/ secure authpriv.*/var/1og/secure
Bee log-сообщения почтовой систем сохранять в файле /таг/log/таiIlog, mail. */ var / log/inai Ilog
Все сообщения демона cron сохранять в файле /var/log/cron
cron.*/var/log/cron
Everybody gets emergency тезвадез
*.emerg*
Сообщения системы новостей уровня crit и выше сохранять :в файле
/var/log/spooler
uucpj news.crit/varylog/spooler
# See загрузочные ссобщемкя хранить в файле /var/log/boot,log
Файл конфигурации состоит из двух полей: объект протоколирования и файл, в который будут записываться сообщения, порождаемые этим объектом. Для каждого объекта можно указать один из уровней протоколирования:
口 debug — отладочная информация;
口 info — просто информация;
□ notice — уведомление;
口 warn — предупреждение;
口 err — ошибка;
口 emerg ——критический уровень.
Первые три уровня протоколирования относятся к информационным сообщениям* Уровень warn ——это предупреждения, a err — ошибки. Помимо этого, существуют критические сообщения, которые выводятся прямо на консоль. Для обозначения объектов и для обозначения уровней протоколирования можно использовать символ который обозначает все объекты или все уровни.
301301Утид乂ты адм酬нмстркрованма cerw w 口6ес门еч^н编а 6曰?омаснобти
301
301
Сетевое протоколирование
Для обеспечения повышенной защищенности сети все сообщения можно хранить не на локальном компьютере, а передавать по сети на специальный сервер, на котором будет находиться база журналов компьютеров, подключенных к сети.
Для передачи сообщений используется протокол UDP. Для нормального функционирования необходимо в файле /etc/service снять комментарий со строки syslog 5i4/udp. После этого необходимо внести изменения в файл конфигурации /etc/syslog.conf — вместо файлов протоколов используйте параметр ^hostname, где hostname —— это имя компьютера, на который будут перенаправлены сообщения.
Имя узла желательно указать в файле /etc/hosts, поскольку демон syslogd обычно стартует раньше, чем DNS-сервер.
Демон klogd
Демон klogd предназначен для перехвата и протоколирования сообщений ядра Linux. По умолчанию демон klogd вызывается системным вызовом для того, чтобы препятствовать отобрахению всех сообщений на консоль. Это не распространяется на критические сообщения ядра (kernel panic). Эти сообщения в любом случае будут отображены на консоли.
Защита системы после взлома
В этом же разделе мы остановимся на сетевой безопасности, а именно на том моменте, когда взлом уже произошел. После обнаружения факта взлома стандартным решением является отключение взломанного компьютера от сети и полная переустановка операционной системы с последующей установкой веек обновлений программного обеспечения, используемого на компьютере. А что делать, если нет возможности вывести из работы взломанный компьютер, а защитить его все равно необходимо? Именно этот случай мы и рассмотрим в этом разделе.
Взломы операционной системы бывают разные. Самый простой вариант —— какой-то подросток начитался литературы или нашел в Интернете программу для взлом% например, sendmail, применил свои псевдознания к вашей системе, пошалил ——удалил что-то с вашего компьютера или, наоборот, оставил послание ——"ваш компьютер взломан суперхакером Васейи и ушел, причем, зачастую, не уничтожив следы своего воздействия на компьютер. На такой простой случай вам рассчитывать не стоит* Как правило» серьезный взлом под гота вл и вается долгое время, и о нем вы узнаете, например, от администратора какого-нибудь сервера на другом конце земного шара, да и то потому, что от вас на его сервер идет очень большой трафик или еще
по каким-либо косвенным признакам, Такой взлом преследует чисто прагматические цели — вое пользоваться вашей системой для дальнейшего взлома других компьютеров, устроить на вашем сервере хранилище файлов или что-нибудь в подобном роде* Причем взломшик после себя всегда оставляет на вашем компьютере набор специальных утилит, называемых rootkit.
Rootkit
Rootkit (набор инструментов ад ми н истратора)——это набор утилит, которые взломщик устанааливает на взломанном компьютере после получения первоначального доступа. Rootkit обычно содержит сетевой sniffer (утилиту, способную получать и обрабатывать весь сетевой трафик вашей локальной сети, вне зависимости от того, какому компьютеру адресованы сетевые пакеты) для прослушивания сетевого трафика, программы для модификации журналов, позволяющие скрыть присутствие взломщика на вашем компьютере, и специально модифицированные системные утилиты, замещающие основные утилиты системы, например ps, netstat^ ifconfig, killall^ login.
Основное назначение rootkit — позволить взломщику возвращаться во вало- манную систему и получать доступ к ней, не будучи при этом обнаруженным системным администратором. Обычно для этого используется модифицированная версия telnetd или sshd. Модифицированный сервис будет использовать сетевой порт* отличный от того* который этот демон по умолчанию прослушивает. Большинство версий rootkit снабжены модифицированными системными программами, которые замещают существующие во взломанной системе. Конкретный набор модифицируемых системных утилит весьма зависит от версии rootkit и нужд и квалификации взломщика, но, как правило, заменяются программы ps, w, who, netstat, ls? find, login и др., которые могут быть использованы для контроля работы взломанной системы.
Для усложнения обнаружения подмены системных утилит большинство rootkit, производя замену системных утилит на модифицированные версии, устанавливают точно такие же даты их создания и размеры файлов, поэтому простой список файлов с датой их создания, модификации и размером никакой пользы в обнаружении подмены системных утилит не принесет. Исходя из этого, пожалуй, лучший способ обнаружения подмены системных утилит — получить контрольную сумму файлов в системе и сохранить этот список в надежном месте — на другом компьютере или на компакт-диске.
В принципе можно вое пол ьзоваться возможностями, предоставляемыми менеджером пакетов RPM — контрольной суммой пакета, рассчитанной по алгоритму MD5. При этом используются контрольные суммы пакетов, хранящиеся в базе данных установленных RPM. Как легко заметить, данный способ не подходит для обнаружения опытных валомшиков. Причин к тому две.
□ В вашей системе могут быть установлены программы не из RPM, а скомпилированные из исходных кодов — совершенно очевидно, что
303303Утилмтн адммн酬CTpttp口ван,н сети 用 竺白也勺”用川斤 без口庙сност
303
303
ваш менеджер пакетов абсолютна ничего не знает о программах, устанавливаемых без помощи RPM.
口 База данных RPM находится на взломанном компьютере, и взломщику не составляет труда модифицировать ее нужным образом или вообще повредить ее.
Для решения этой проблемы обычно используются специализированные программные пакеты, например Tripwire или AIDE, о которых мы поговорим несколько позже.
Помимо вышеперечисленного, некоторые rootkit содержат сетевой анализатор пакетов и утилиты для записи нажатий клавиатурных кнопок, что позволяет взломщику с целью получения необходимой информации организовать сбор паролей “ анализ сетевого трафика-
Наибольшую угрозу для безопасности вашей системы представляют rootkit, использующие загружаемые модули ядра (Loadable Kernel Module, LKM)* что позволяет не подменять системные утилиты^ а нарушать их правильное функционирование через ядро операционной системы.
Обнаружение rootkit
Мы нарисовали достаточно мрачную картину ——получается, что после взлома системы сделать для ее излечения ничего не возможно? К счастью, не все так плохо.
Сначала необходимо определить сам факт взлома системы. Возможным последствием взлома вашего компьютера и установки на нем rootkit может стать изменение в позедении системных утилит. Например, некоторые утилиты отказываются запускаться от имени пользователя, которому было разрешено пользоваться этими утилитами- Или ваша любимая утилита top стала выглядеть несколько иначе. Другие очень настораживающие признаки — изменение показателей сетевого трафика, а также резкое уменьшение свободного места на жестком диске.
Сканирование портов
После обнаружения взлома первое, что необходимо сделать после смены паролей,——лишить взломщика возможности проникновения в систему через сетевые порты. Поскольку взломанный компьютер не вызывает доверия, просканировать сетевые порты необходимо с другого компьютера. Проще всего это сделать с помощью программы nmap. Для этого достаточно выполнить следующую команду:
пшар -р 1-65535 192.168.0.1
Указываем диапазон сканируемых портов «- от 1 до 65 535, а также адрес сканируемого компьютера. После этого на консоль будет выдан список портов, протокол, используемый дяя каждого порта, и сервис, который использует этот порт* Обычно всякие "специальные" программы обращаются к портам выше 1023, причем зачастую это порты с номером выше десяти тысяч- Помимо nmapt можно воспользоваться программой isof Она позволяет получить список открытых на вашем компьютере сетевых портов. Для этого достаточно выполнить команду isof -i
Использование RPM
Хотя чуть ранее мы утверждали, что использование RPM для обнаружения rootkit ——дело бесперспективное, это не совсем так. RPM можно применить для быстрой проверки. Если он не найдет ничего подозрительного — воспользуемся другими средствами, если найдет — и на том спасибо — будем знать, что у нас не так в системе, RPM записывает и проверяет контрольную сумму всех файлов в пакете, включая те файлы, которые должны изменяться с течением времени.
Сканер для rootkit
Пакет chkrootkit — набор утилит, используемых для выявления присутствия в системе уже известных rootkit. Пакет состоит из следующих утилит: 口 chkrootkit — используется для выявления сигнатур известных rootkit;
口 i(promise — используется для обнаружения прослушивания сетевого трафика взломанным компьютером;
О chklastlog, chkwtmp, check_wtmpx — утилиты для проверки файлов журналов;
О chkproc — предназначена для обнаружения ''посторонних" загружаемых модулей ядра операционной системы.
Об особенностях применения chkrootkit можно узнать в документации, идущей в комплекте с пакетом.
После обнаружения
Что делать после обнаружения rootkit? Единственно верный способ избавиться от последствий взлома ——заново полностью переустановить операци* онную систему и установить все обновления пакетов для вашего дистрибутива. Однако не всегда есть возможность проделать такие действия сразу —— квартальный отчет, непрерывное производство, болезнь админ и стратора т да мало ли что еще.
305305Ут”/州fTW адм依нмитр酬рованна авт酬 м ибвспвчвн找買 безопасности
305
305
В дистрибутивах на основе RPM-пакетов вы можете определить поврежденные пакеты. После этого необходимо переустановить их, используя следующую команду:
хрт -и --force rpm_pac:kag已—口ame*rpm
После переустановки пакетов вы должны удалить файлы, установленные а вашу систему взломщиком. Данные, полученные chkrootkit, помогут вам определить местонахождение файлов. После удаления всех обнаруженных "чужих" файлов запустите top и ps для выявления и уничтожения оставшихся нежелательных процессов. Помимо этого, необходимо проверить стартовые сценарии операционной системы и убедиться, что они не используются для запуска посторонних программ.
LIDS
LIDS (Linux Intrusion Detection/Defense System) — система обнаружения и защиты от вторжения. Представляет собой дополнение к ядру операционной системы Linux, добавляющее дополнительные возможности для увеличения безопасности операционной системы. LIDS позволяет запретить или ограничить доступ к файлам, памяти, устройствам, сетевым интерфейсам, запушенным приложениям и т. п. пользователю root, что дает возможность надежно оградить даже взломанную операционную систему от дальнейшего вмешательства.
В отличие от других средств зашиты операционной системы Linux, эту систему невозможно отключить, не зная пароля администратора LIDS, который в зашифрованном виде хранится в специальном файле, видимом только данной системой. Точно так же защищены и конфигурационные файлы Даже узнав каким-то образом пароль администратора, отключить систему можно, только находясь непосредственно за компьютером.
LIDS позволяет распределять права доступа к файлам на уровне программ, а не на уровне пользователей, а также запретить перезапуск операционной системы, загрузку/выгрузку модулей ядра и многое другое. Информация обо всех действиях, имеющих отношение к защищаемым объектам, помимо записи в журналах может немедленно отправляться по электронной почте. Помимо всего прочего, в LIDS присутствует встроенный детектор сканирования сетевых портов.
Установка
После получения пакета необходимо разархивировать его и обновить исходные тексты ядра операционной системы Linux. После этого следуйте инструкции —там все понятно —— компилируем, устанавливаем.
Далее, нам необходимо перекомпилировать ядро операционной системы Linux с поддержкой LIDS* Для этого а пункте меню конфигурации ядра Code maturity level options нужно включить опцию Prompt for development and/or incomplete eode/drivers. После этого в пункте меню General setup необходимо включить опцию SysctI support. Затем надо зайти в меню Linux Intrusion Detection System. Это меню полностью относится к конфигурированию LIDS. Первым идет включение поддержки 日 ядре:
[*] Linux Intrusion Detection System support |EXPERIMENTAL)
После включения полдержки станет доступным список опций настройки:
Maximum protected objects to manage ——этот пункт позволяет установить максимальное количество защищаемых объектов;
口 Maximum ACL subjects to manage — позволяет установить максимальное количество субъектов правил доступа LIDS;
口 Maximum ACL objects to manage — позволяет установить максимальное количество объектов правил доступа LIDS;
О Maximum protected proceeds — позволяет установить максимальное количество защищаемых процессов;
口 Hang up console when raising security alert ——разрешает закрытие консоли, с которой произошло нарушение безопасности;
口 Security alert when execing unprotected programs before sealing LIDS — разрешает вывод сообщения о нарушении безопасности при запуске незащищенных программ;
口 Do not execnte unprotected prograniB before sealing LIDS — включает запрет на запуск незащищенных программ до установки способностей;
口 Try not to flood logs — при включении этой опции LIDS не будет записывать в log-файлы дублирующиеся сообщения об одном и том же нарушении защиты;
Authorized time between two identic logs (seconds) — устанаал ивается время в секундах, в течение которых проверяется появление двух идентичных сообщений, чтобы не записывать одинаковые сообщения в log-файлы;
Allow switching LEDS protections — включает возможность отключения и включения LIDS н процессе работы системы после ввода пароля. При включении данной опции появляется возможность поменять любые параметры работы без перезагрузки операционной системы;
Numbers of attempts to submit password — определяет количество попыток ввода пароля, по истечении которых отключение LIDS становится невозможным на заданный далее промежуток времени;
口 Time to wait after fail (seconds) — время н секундах, в течение которого после ввода неправильного пароля указанное количество раз отключение LIDS становится невозможным;
口 Allow remote users to switch LIDS protections — дает возможность удаленным пользователям отключать LIDS* С целью увеличения безопасности вашей операционной системы не включайте эту опцию;
Allow any program to switch LIDS protections — позволяет любой программе отключать LIDS* Не включайте эту опцию;
Allow reloading config. File — разрешает переконфигурирование LIDS без перезагрузки компьютера;
П Port Scanner Detector in kemel —— позволяет в ядро операционной системы добавить детектор сканирования портов;
口 Send security alerts through network — разрешает отправку электронной почты при нарушении безопасности на указанный электронный адрес с информацией о нарушении. Письмо отправляется незамелтительно при попытке совершения несанкционированных действий;
Hide klids network threads — позволяет скрывать сетевые соединения LIDS;
Number of connection tries before giving up — задается количество попыток соединения с SMTP-сервером;
口 Sleep time after a failed connection ——задает время в секундах между попытками соединения с почтовым сервером;
口 Message queue size — определяет максимальное количество почтовых сообщений в очереди. При превышении данного количества самое старое неотправленное сообщение удаляется из очереди;
LIDS debug — используется для включения вывода отладочных сообщений LIDS.
После конфигурирования можно компилировать и устанавливать ядро операционной системы.
Конфигурирование LIDS
После установки LIDS н каталоге /fete появичяется кнтзлог lids, содержащий следующие конфигурационные файлы:
口 lids.cap — предназначен для хранения текущих значений установок;
lids.net ——предназначен для настойки отправки электронных сообщений системой LIDS;
口 lids.pw — в этом файле записан в зашифрованном виде пароль администратора. Изменять этот файл можно только с помощью lidsadm;
lidsxonf — файл содержит текущие установки правил доступа. Изменять этот файл можно только с помощью lidsadm.
Возможности
Возможности (capabilities) определяют способность программ совершать какие-либо действия. LIDS позволяет использовать по отношению к программам большое количество возможностей, В частности, поддерживается перезагрузка компьютера, изменение владельца файла, загрузка или выгрузка модулей ядра и многое другое.
Текущие установки возможностей хранятся в фзйле lidsxap в формате:
[+1 -] Ноклер: возможность
Здесь:
+ — еключает возможность;
口 — отключает возможность.
Редактировать файл lids.cap можно с помощью любого текстового редактора* Включение возможности влияет на все программы без исключения, а выключение влияет на все программы, кроме тех, которым напрямую указана данная возможность с помощью правил доступа lidsadm.
Сразу после установки LIDS файл lidsxap содержит включенными следующие возможности:
口 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 — разрешает программам менять возможности;
сap_lInux_immutable ——разрешает снимать атрибуты s_immutable и S_AEPEND С фаЙЛОВ;
口 cap_net_bind_service ——разрешает программам использовать сетевой nopTt меныиий чем 1024;
О cap_ket_broadcast ——разрешает рассылать широковещательные пакеты;
cap_net_admin ——параметр управляет большим количеством различных возможностей: конфигурирование сетевых интерфейсов, изменение пра- внл брандмауэра, изменение таблиц маршрутизации и многих других, связанных с сетевыми настройками Linux;
口 cap„net_raw ——разрешает использовать сокеты;
cap_ipc_lock — разрешает процессам пользователя root блокировать сегменты разделяемой памяти;
口 cap_ipc_owner — управляет доступом программ пользователя root к ресурсам межпроцессорного взаимодействия процессов, не принадлежащих пользователю root;
cap_sys_module — разрешает загружать модули ядра;
П ca₽„sys_rawto ——разрешает доступ на чтение/запись к таким устройств вам, как /dev/mem, /dev/kmem, /dev/port, /dev/hdXX, /dev/sdXX;
cap_sys_chroot ——разрешает устанавливать корневой каталог лля текущей командной оболочки;
cap_sys_ptrace ——этот параметр разрешает программам использовать вызов функции ptrace() 5 которая управляет выполнением процессов^ потомков процессу -род ител ю;
cap_sys_pacct — разрешает конф и гури ро вать учет процессов;
cap_sys_admin — управляет множеством возможностей: упрааление устройством /dev/random, создание новых устройств, конфигурирование дисковых квот, настройка работы klogd, установка имени домена, установка имени хоста, сброс кэша, монтирование м размонтирование дисков, включение/отключение swap-раздела, установка параметров последовательных портов н многое другое;
口 cap_sys„boot —— разрешает перегружать систему;
口 cap_sys_nice — разрешает изменять приоритет процессов, не принадлежащих пользователю root;
口 cap_sys„resource — разрешает изменять лимиты использования ресурсов системы: дисковые квоты, зарезервированное пространство на Ext2- разделах, максимальное количество консолей и т. п.;
cap„sys_time — разрешает изменять системное время;
口 cap_sys_tty_config —— разрешает изменять настройки tty-устройств;
口 cap_hiddew — разрешает программам делаться невидимыми в списке процессов. Не влияет на все программы;
cap_init_kill — разрешает "убивать*' процессы-потомки процесса ink.
Как видите, впечатляющий набор возможностей. Самое время разобраться, что из этого нужно включит瓦 а что выключить для вашей операционной системьь Для инициализации параметров спссобносте黄 в процессе загрузки используется команда lidsadm -I
Обычно ее ставят в конце /etc/rc.d/rcJocal, что позволяет произвести отключение возможностей только после запуска всех необходимых для работы сервера программ*
Правила доступа
Все управление LIDS осуществляется с помощью программы — lidsadm. Lidsadm работает в двух режимах — настройки правил доступа и ввода команд администрирования. Установки правил доступа находятся в файле /etc/lids/lidsxonf Для просмотра текущих установок правил доступа необходимо выполнить следующую команду: lidsadm -L
LIST
Subject ACCESS TYPE Object
Any File READ /sbin
Any File READ /bin
Any File READ /boot
Any File READ /lib
Any File RBAD /usr
Any File DENY /etc/ahadcw
/bin/login READ /etc/shadow /Ып/su READ /etc/shadow
Any File APPEND /var/log
Any File WRITE Zvar/log/MMip
/sbin/fsck*ext2 WRITE Zetc/mtab
Any File WRITE /etc/mtab
Any File WRITE /etc
/usr/sbin/sendmail WRITE /vax/log/sendmail.st
/bin/login WRITE /var/log/lastlog
/bin/cat READ /home/xhg
Any File DENY /hccne/httpd
/usr/sbin/httpd READ /home/httpd
Any File DENY /etc/httpd/conf
/usr/sbin/httpd READ /etc/httpd/conf
/usr/abin/sendma.il WRITE /var/Iog/sendinail ,st
/USr/XllH6/bin/XFB6__SVGA NO一工NHERPT RAWIO
/usz/sbin/in, ftpd READ /etc/shadow
/usr/sbin/httpd NO—工NHERHT HIDDEN
Правила доступа состоят из трех элементов: субвсктн, объекта и цели. Объектом является любой файл или каталог, на который и должны действовать правила доступа и защита LIDS. Если в качестве объекта указывается каталог, то все файлы в нем и вложенные каталоги с их файлами автоматически становятся объектами. Субъектом является любая защищенная программа, которой дают доступ к защищаемому объекту, поэтому прежде чем использовать программу в качестве субъекта, ее саму надо защитить средствами LIDS, применив к ней правила доступа как к объекту. Если субъект не указан, то субъектом является любая программа. Целью является тип доступа:
READ — доступ на чтение;
WRITE — запись;
口 DENY 一 запрет на какой-либо доступ;
口 APPEND — открытие только для записи в коней файла;
口 IGNORE — игнорирование защиты.
Построение прав доступа подробно описано в документации на пакет LiDS, поэтому мы на этом здесь не останавл и ваемся.
После настройки необходимо перезагрузить операционную систему* В том случае, если с функционированием возникли проблемы, можно загрузить Linux с выключенным LIDS, для чего при загрузке необходимо передать ядру операционной системы параметр security=o. Например, для L1LO это будет выглядеть так:
LILO boot: linux security=О
Portsentry
Программа предназначена для обнаружения попыток сканирования портов и организации адекватного (с точки зрения администратора) ответа. Основные возможности Portsentry:
口 обнаруживает практически все известные виды сканирования UNIX- машин;
口 в реальном времени блокирует хост, с которого происходит сканирование портов, посредством установленного на атакуемом компьютере брандмауэра;
записывает в LOG-файлы посредством syslogd информацию об атаке;
口 в ответ на сканирование или подключение к защищенному порту вызывает программу, указанную администратором при конфигурировании.
Пакет Portsentry прост в установке, конфигурировании и использовании. Его можно получить как в исходных кодах, так и в виде RPM-пакета.
LogSentry
Программа LogSentry предназначена для автоматического мониторинга журналов и уведомления системного администратора с помощью электронной почты о подозрительных происшествиях в системе. Гибко настраивается*
Tripwire
Программный пакет Tripwire предназначен для обнаружения изменения файлов, позволяя обнаруживать порчу данных и взломы. База данных кон* трольных сумм файлов шифруется, что предотвращает ее подделку взломщиками.
Непосредственно после установки операционной системы необходимо установить tripwire, которая, используя правила, определенные политикой безопасности, создает базу данных, содержащую информацию обо всех файлах в системе (список файлов может задаваться администратором) — размер, контрольная сумма, дата модификации и т. п. После создания базы данных она ежедневно сравнивается с текущим состоянием файловой системы, позволяя обнаружить добавленные, измененные и удаленные файлы. Получаемые при этом отчеты могут быть просмотрены с различной степенью детализации.
Пакет tripwire входит в состав практически всех современных дистрибутивов Linux.
AIDE
Пакет AIDE — система обнаружения вторжений, основанная на использовании мониторинга изменения контрольных сумм защищаемых файлов операционной системы. Система AIDE разработана таким образом, что полная инсталляция ее помещается на одной дискете, что позволяет избежать вмешательства взломщика в функционирование программы*
Функционально программа является аналогом tripwire, только имеет более простые конфигурационные файлы и интерфейс.
RSBAC
RSBAC — это надстройка над ядром Linux и комплект утилит управления, позволяющие создать на базе Linux защищенную систему. Реализация меха-
313313Утилиты ддмкн,£трнрдванм* с^ги 网 обеспеч后hmr безопасности
313
313
нмзмов защиты выполнена на уровне ядра системы, системные вызовы, затрагивающие безопасность, дополняются специальным кодом, выполняющим обращение к центральному компоненту RSВАС. Этот компонент принимает решение о допустимости данного системного вызова на основе многих параметров:
типа запрашиваемого доступа (чтение, запись, исполнение);
субъекта доступа;
атрибутов субъекта доступа;
口 объекта доступа;
атрибутов объекта доступа.
Функционально RSBAC состоит из нескольких модулей, а центральный компонент принимает комплексное решение, основываясь на результатах, возвращаемых каждым из активных в данный момент модулей (какие модули задействовать и в каком объеме, определяется на этапе настройки системы).
Вся информация, используемая RSBAC, хранится в дополнительном каталоге, который доступен только ядру системы.
RSBAC — мощная система зашиты и разграничений прав доступа, но несколько тяжеловата в настройке.
Security-Enhanced Linux
Security-Enhanced Linux (SELinux) имеет аналогичное c RSBAC назначение и представляет собой дополнения к ядру, а также набор утилит. Разработка продвигается Агентством Национальной Безопасности США (National Security Agency» NSA). SELinux обеспечивает гибкую мандатную архитектуру управ* ления доступом, использующую язык описания конфигураций политики безопасности. По сравнению с RSBAC менее гибкая, зато имеет очень хорошую предопределенную политику безопасности. Ее настрой^ достаточно сложна и невозможна без изучения специального языка конфигурации.
Глава 22
Борьба с нежелательной почтой
Надеюсь, что такое нежелательная почта или спам вам объяснять не нужно. Каждому приходило достаточно большое количество писем с предложением посетить какие-то семинары, за один день выучить английский, купить завод в Подмосковье и т. п. Когда их штук десять в месяц — забавно, и удалить их не составляет труда. Однако когда их порядка 10 в день, то это уже проблема, причем проблема, которая ложится на плечи администратора. В этой главе мы попытаемся найти решение, причем такое, чтобы "один раз и на всю жизнь". Какие же можно предложить способы?
Самый простой — договориться с провайдером, чтобы вся почта* приходящая на наш домен, проверялась и фильтровалась у него. Решение самое простое в плане трудозатрат и самое дорогое с финансовой точки зрения, поскольку провайдер, наверняка, потребует ежемесячной оплаты за эту услугу.
Вариант второй ——в каждом почтовом клиенте существует возможность вести "черные списки", в частности в Outlook Express есть такая функция — список блокируемых отправителей. Однако это тоже не решение, поскольку вам придется для каждого письма и для каждого почтового клиента руками определять — можно или нет принимать письмо от данного пользователя. Помимо этого, есть еще одно соображение ——в спаме поле письма from почти на 100% поддельное, и осуществлять по нему сортировку почтовых сообщений бесполезно.
Третий вариант —— у каждого пользователя установить специальную программу, которая на основе анализа содержимого письма будет с очень высокой вероятностью определять нежелательную почту. Но, опять это "но", чтобы эта программа хорошо работала, ее нужно обучить, что, учитывая количество пользователей, проделать достаточно трудно.
Поэтому наша цель —— централизованная обработка писем на нашем половом сервере. Для защиты от спама есть, по меныией мере, два варианта —— это использование RBL (Realtime Blackhole List, черный список реального времени) и интеллектуальных программ вроде SpamAssassin.
RBL
Черные списки были первым эффективным средством борьбы со спамом. Первый такой сервис появился еще н 1997 году. Смысл этого сервиса заключается в том, что имеется централ изованн ый список "плохих* 1Р-адресовт с которых не рекомендуется принимать почту, и доступ к этому списку осуществляется в реальном времени по протоколу DNS. Использующие RBL почтовые серверы в момент приема очередного сообщения запрашивают информацию об IP-адресе отправителя и на основании ответа либо принимают, либо отвергают письмо. Большинство серверных почтовых программ, в част^ ности sendmail и fetchmail, в настоящее время могут работать с RBL
Вроде все просто и логично. Однако недостаток на самом деле здесь огромен ——сообщение принимается или отвергается только на основании IP- адреса посылающей письмо стороны. В результате, если какой-то почтовый сервер попал в RBL-список, то ВСЯ почта с этого сервера не принимается всеми почтовыми службами, использующими данный RBL*
В настоящее время существует множество RBL, в основном отличающихся политикой администрации. Как же можно оценить их качество? Оценивать можно двояко, Во-первых, по количеству отфильтрованного спама. Этот показатель любят приводить маркетологи и провайдеры решений. А во- вторых, и это для пользователя более важный параметр, количество ложных срабатываний, т. е. сколько хороших писем с точки зрения пользователя было опознано службой как спам и не доставлено адресату. К сожалению, о втором параметре пользователь адекватно не информируется, зачастую он узнает об этой проблеме при общении по другим каналам с респондентом, а контракт или срочная информация не дошли по адресу. Поэтому настойчиво рекомендую не применять этот метод фильтрации, а использовать программы типа Spamassassin.
SpamAssassin
Существует несколько независимых пакетов» предназначенных для анализа поступающих писем на предмет спама. Одним из признанных в этой обл笈о ти программ и является SpamAssassin (www.spamassa5sin.org). В чем же ее достоинство? Программа имеет развитую систему контекстного лингвистического анализа, систему обучения и самообучения. Помимо этого она может работать совместно с другими программами анализа содержимого писем.
Каким образом SpamAssassin работает? При поступлении письма^ к примеру, в sendmail, МТА-агент по механизму Milter API1 передает нашей программе-
анализатору проверяемое письмо. Программа*анализатор производит анализ письма на предмет спама и возвращает в МТА-агент свою оценку проверенного письма и рекомендацию к дальнейшему действию.
Пакет SpamAssassin входит в стандартную поставку дистрибутива и установка его тривиальна. Далее необходимо сконфигурировать sendmail для работы с поддержкой Milter API. Для этого в конфигурационныЙ файл ш4 необходимо добавить следующие строки:
APPENDDEF ( ' cOiif_sendm&il_ENVDE? 3 ' -EMHLTER' }
AFPENDDEF { ' COnfENVDEF,, ' -DMAP_REGEX,1
После установки программы необходимо ее обучить. В принципе, это можно и не делать. Сразу после установки программа способна отсеять нежелательную почту с вероятностью 60—85% (по разным источникам.). Для улучшения распознавания спама программе необходима передать на анализ почтовые сообщения, нормальные с точки зрения пользователя и "ненор- мальные1'. Количество — чем больше, тем лучше, начальная цифра ссюб- щений для анализа 200—300 штук. Удобнее всего просто складировать письма в каком-то каталоге, а затем при помощи программы sa-learn обучить SpamAssassin.
Дальше все зависит от вашей фантазии. При проверке письма SpamAssassin добавит в заголовок письма информацию, в которой, помимо того^ чем и когда проверялось письмо, будет прописан весовой коэффициент. Обычно коэффициент 5.0 м выше означает, что письмо — спам. Далее можно настроить sendmail при помощи регулярных выражений на удаление таких писем, на складирование их в специальной папке, или просто добавление в тему слова Spam!.
Вот, пожалуй, и все. Дальнейшие ваши действия зависят от знаний м опыта, которые вы получите, поработав с вашим сервером.