«СЕТЬ для ОФИСА и LINUX-СЕРВЕР своими руками Санкт-Петербург БХВ-Петербург> 2006 УДК 681.3.06 ББК 32.973.202 СП Стахнов А. А. СП Сеть для офиса и Linux-сервер своими руками. — СПб.: БХВ-Петербург, 2006. — 320 с : ил. ...»
Алексей Стахнов
СЕТЬ для ОФИСА
и LINUX-СЕРВЕР
своими руками
Санкт-Петербург
«БХВ-Петербург>
2006
УДК 681.3.06
ББК 32.973.202
СП
Стахнов А. А.
СП Сеть для офиса и Linux-сервер своими руками. — СПб.:
БХВ-Петербург, 2006. — 320 с : ил.
ISBN 5-94157-668-4
Описывается установка, конфигурирование и настройка Linux-сервера для небольшой локальной офисной сети, где клиентские машины работают под управлением Microsoft Windows. Рассмотрен жизненный цикл небольшой компании, которая расширяется, и по мере расширения усложняются задачи, возложенные на сервер организации. Освещены практические аспекты установки и администрирования серверов: почтового, web-, файлового, печати. При описании конфигурирования сервера используются 2 варианта решения задачи — с помощью графических программ удаленного администрирования и посредством конфигурационных файлов.
Для начинающих администраторов УДК 681.3. ББК 32.973. Группа подготовки издания:
Главный редактор Екатерина Кондукова Зам. главного редактора Евгений Рыбаков Зав. редакцией Григорий Добин Редактор Константин Костенко Компьютерная верстка Натальи Караваевой Корректор Зинаида Дмитриева Оформление обложки Елены Беляевой Зав. производством Николай Тверских Лицензия ИД № 02429 от 24.07.00. Подписано в печать 05.12.05.
Формат 70x100Vis. Печать офсетная. Усл. печ. л. 25,8.
Тираж 3000 экз. Заказ Ne "БХВ-Петербург", 194354, Санкт-Петербург, ул. Есенина, 55.
Санитарно-эпидемиологическое заключение на продукцию № 77.99.02.953.Д.006421.11.04 от 11.11.2004 г. выдано Федеральной службой по надзору в сфере защиты прав потребителей и благополучия человека.
Отпечатано с готовых диапозитивов в ГУП "Типография "Наука" 199034, Санкт-Петербург, 9 линия, ISBN 5-94157-668-4 © Стахнов А. А., О Оформление, издательство "БХВ-Петербург", Оглавление Глава 1. Определение стратегам, выбор дистрибутива и аппаратного обеспечения Аппаратное обеспечение Программное обеспечение Стратегия установки ПО Ссылки Глава 2. Установка и первоначальная настройка сервера Установка дистрибутива. Стандартный вариант Текстовый интерфейс установки Графический интерфейс установки Установка дистрибутива "вручную" Резюме Глава 3. Настройка разделяемого коммутируемого модемного соединения для общего сетевого пользования Подключение к Интернету Внешние модемы Модемы, подключаемые к последовательному порту Модемы, подключаемые к USB Внутренние модемы Настройка модемного соединения Связь с провайдером Схема организации подключения локальной сети Настройка связи с провайдером Команды pppd Настройка diald Создание сценария соединения: /etc/diald/connect Настройка основной конфигурации: /etc/diald.conf Настройка правил тайм-аутов: /etc/diald/standard.filter Комплексное тестирование Оглавление Глава 5. Настройка общего доступа Оглавление Глава 6. Настройка общего доступа к дисковому пространству сервера — FTP-сервер Файл etc/vsftpd.ftpusers Глава 10. Сетевые настройки сервера, маршрутизация и DNS Несколько web-сайтов (виртуальные web-серверы) Оглавление Параметры для работы в режиме ускорителя web-сервера Программа Squid Cache and Web Utilities (SARG) Глава 16. NTP. Синхронизация времени через сеть, Класс procedure-call Клиентские программы для синхронизации времени Конфигурирование Samba в качестве первичного контроллера домена Глава 19. Настройка входящего модемного соединения Оглавление Глава 21. Утилиты администрирования сети Расширенное управление доступом к файлам Stunnel и приложения, поддерживающие SSL Глава 22. Борьба с нежелательной почтой Глава Определение стратегии, выбор дистрибутива и аппаратного обеспечения В этой главе мы закладываем базу нашего строения — выбираем аппаратное обеспечение, дистрибутив, используемый при установке и модернизации системы, и определяемся — чем же будет заниматься наш сервер, какие службы на нем будут исполняться.
Аппаратное обеспечение Начнем мы с "железа". Не знаю как у вас, а в наших пенатах хозяева фирм могут позволить себе неслабую мебель, евроремонт, приличные автомобили и не могут позволить себе приличный Интернет, компьютеры, мониторы и периферию. Жизнь такая, тяжелая. В результате, системный администратор должен выкручиваться и собирать компьютеры из всякого старого хлама. Особо это касается бюджетных учреждений. Поэтому я буду отталкиваться от цены, скажем, в 350—450 долларов США. Давайте не будем спорить и размахивать руками — знаю я, что такое "правильный" сервер.
Я не возражаю, если вы сможете достать ProLiant, но рассчитывать нужно на минимум.
Что нам нужно? Если планируется, что сервер также будет и рабочим местом системного администратора, то это потребует дополнительных затрат — на монитор, дополнительную оперативную память и более емкий жесткий диск. Итак, в табл. 1.1 приведена приблизительная конфигурация нашего компьютера, способного служить многоцелевым сервером и одновременно рабочим местом системного администратора.
Материнская ASUS P4P800-MX S-478 (i865GV/ICH5) mATX плата 800 МГц, 3PCI, 4 DDR (PC3200) DC, SATA, 8USB, Процессор CPU Intel Celeron 1800 (128 Кбайт, 400 МГц) Жесткий диск HDD 40GB Samsung SpinPoint PL40 SP0411N, CD-ROM CD-RW Drive 52x/32x/52x LITEON LTR-5238S (4x5.25"+2x3.5"+5x3.5"(Hidden)) 300WT Pentium- Монитор Монитор 17" LG ezT711B Flatron (16", 0.2mm, Клавиатура Mitsumi Business KSX-4 (for Windows 98, 104 key) Мышь Мышь, Mitsumi Mouse Optical Scroll PS/2 (OEM) А теперь я поясню таблицу и выбор аппаратного обеспечения. Во-первых, компоненты подобраны качественные и с максимальной гарантией.
Во-вторых, материнская плата на системной логике от Intel со встроенным видео, интегрированной сетевой картой поддерживает двухканальный доступ к ОЗУ, процессоры Pentium 4 последних модификаций и AGP-разъем для видеокарты, что может послужить в дальнейшем для модернизации.
В-третьих, этой конфигурации хватит "за глаза" серверу, на котором не будут выполняться мощные приложения типа Oracle.
На самом деле конфигурация тоже не без изъяна — если нет проблем с деньгами, я бы порекомендовал корпус фирмы АОреп или Chieftec — раза в два дороже, чем приведенный в таблице, но лучше как по исполнению, так и по металлу, а главное — великолепные и надежные блоки питания.
Определение стратегии, выбор дистрибутива и аппаратного обеспечения 73^ Тем не менее корпуса Codegen являются проверенным решением, и большинством сборщиков компьютеров признаны достаточно надежными.
Что делать, если денег маловато? Если вы точно знаете, что вам не придется использовать сервер в качестве рабочего места администратора, то смело отказывайтесь от клавиатуры, мыши и монитора. В результате итоговая сумма уменьшится до 376 долларов США. Если же стоит задача сэкономить деньги любой ценой, даже с некоторой потерей надежности или времени восстановления системы, отказываемся от дисковода, меняем планку памяти — вместо Samsung на KingMax (дешевле на 6—7 долларов, гарантия не 3 года, а 2), и меняем жесткий диск — берем тот же Samsung, только со скоростью вращения шпинделя не 7200, а 5400 оборотов в минуту. В результате этого получим стоимость порядка 358 долларов США. На "рационализаторские" предложения бухгалтерии/руководства отказаться от пишущего привода в пользу обычного CD-ROM посмотрите с укором — пишущий привод вам понадобится для изготовления резервных копий системы и данных.
Возможность комфортно, быстро и своевременно сохранить важные данные (и как результат — восстановить в случае форс-мажорных обстоятельств) намного дороже экономии в десять долларов. Также не поддавайтесь на провокации и не вздумайте отказываться от источника бесперебойного питания — экономии на 60 долларов, а в случае скачка напряжения — потери на сотни.
Программное обеспечение Первым делом необходимо определиться, какой дистрибутив будет использоваться для установки на наш сервер. Я не буду останавливаться на классификации всех систем, подробно рассматривать их особенности, плюсы и минусы их использования. Тем, кому это интересно, могу порекомендовать Интернет или мою книгу "Linux". Здесь же я кратко расскажу о группах дистрибутивов и постараюсь объяснить, почему я выбрал Fedora Core в качестве решения для сервера.
Люди, в первый раз обратившие свое внимание на Linux, с ужасом узнают, что Linux — это ядро операционной системы, которое везде одинаково (правда, есть варианты ядра реального времени, есть с повышенной безопасностью, но в целом — ядро одно), а вот дистрибутивов великое множество. Что подразумевается под этим словом? Дистрибутив — это инсталляционная программа, набор приложений, схема их обновления, политика (безопасности, разбиения диска, вариантов установок и т. д.), тот или иной менеджер пакетов, стратегия развития, и самое главное — подгонка разнородных программ для нормальной совместной работы. Многие думают, что в мире 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 — очень правильный, с простой и понятной философией: "экономика должна быть экономной", он подразумевает минимум накладных расходов при инсталляции, сопровождении и обновлении пакетов. Относительно нетребователен к аппаратной части. Как луковица состоит из слоев, так и здесь — сначала идет набор самых необходимых пакетов, потом набор сетевых пакетов, потом служб и т. д. и т. п. В результате получаются очень компактные системы, где нет ничего лишнего. Оборотная сторона медали — пакеты.tgz представляют собой просто архивы с исходными кодами программ. Для работы с ними необходимо очень хорошо знать логику функционирования и конфигурационные файлы системы, ручная правка которых является нормой (оболочки-конфигураторы выбиваются из логики дистрибутива — поставить их можно, но их использование не соответствует идеологии Slackware). Политика сборщика такова, что появление новой версии системы — достаточно редкое явление, и происходит тогда, когда проистекают глобальные изменения — смена версии ядра (с 2.4 на 2.6), появление новой версии GTK и т. д. С одной стороны это плохо, мир Linux очень динамичен, новые версии программ появляются почти ежедневно. С другой стороны, система считается чуть ли не эталоном надежности и стабильности, и эту репутацию сборщик всеми силами старается поддерживать.
Определение стратегии, выбор дистрибутива и аппаратного обеспечения 15_ Далее — группа дистрибутивов, основанных на Debian. Они, пожалуй, очень сбалансированы как для серверного, так и для десктопного применения.
Ориентированы на опытного пользователя. В целом несколько проще в освоении, чем Slackware, менее требовательны (по сравнению опять же со Slackware) к объему знаний, поддерживают свою систему пакетов (deb). Как обычно, упрощение в установке и администрировании тянет за собой более сложную структуру представления данных и появления тяжеловесности — добавляются разные администраторы пакетов, системы по управлению и администрированию программ и служб. Достоинством Debian является, во-первых, набор программ, входящих в него (порядка десяти компактдисков), во-вторых, политика формирования и поддержки. Дистрибутив имеет две ветки — стабильную, носящую свое кодовое имя, проверенную и отлаженную, рекомендованную к использованию, но выходящую достаточно редко. И нестабильную ветку, достоинством которой является практически моментальное обновление пакетов (при появлении новых версий программ), огромнейший репозитарий программ, а также сквозная совместимость пакетов. Таким образом, если хочется надежной и проверенной системы, то ставится стабильная версия. Если же нужно что-то экзотическое, либо самое новое — берем версии программ из репозитария — самое свежее, правда, не всегда до конца отлаженное. Сборщики Debian стараются действовать по пословице "и волки сыты, и овцы целы", что в целом им удается — дистрибутив достаточно популярен.
Группа дистрибутивов Red Hat. Пожалуй, самая многочисленная группа и самая коммерчески успешная. В целом не все то хорошо, что хорошо продается — это мы можем наблюдать повсеместно. Но в данном случае системы, основанные на Red Hat, заняли прочную нишу как в десктопной части рынка, так и в серверной. Дистрибутивы группы Red Hat ориентированны на неопытного пользователя — простая система установки (в основном, графическая), простота настройки, благодаря различным графическим инсталляторам/конфигураторам, неплохая система пакетов — RPM (Red Hat Package Manager, менеджер пакетов Red Hat). Достоинством такого подхода является "понижение порога вхождения" для пользователей — любой без проблем сможет установить операционную систему на типовой компьютер.
Недостатком является несколько накрученная система конфигурации и, как следствие, уклон в графический режим, что служит причиной увеличения занимаемого места на жестком диске. Тем не менее, судя по популярности дистрибутивов этой группы, преимущества перевешивают недостатки.
Давайте перечислим основных игроков (по распространенности).
• Red Hat. Компания Red Hat некоторое время назад отказалась от универсального дистрибутива, предназначенного для установки и на десктоп, и на сервер. Вместо этого она стала поддерживать Fedora Core — проект, полностью основанный на Red Hat, собираемый группой независимых разработчиков. Red Hat предоставляет место для web-сайта, помогает в создании и тестировании пакетов, написании документации. Себе Red Hat оставила корпоративный сегмент, для которого выпускаются несколько версий системы, ориентированной на решения для рабочих станций, на обычные серверные решения и специальные, особо защищенные, серверные решения. Поскольку корпоративный рынок консервативен, то новые версии выходят достаточно редко. Основные нововведения обкатываются в 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. Master — решение для профессионалов, ценящих свое время и желающих полностью сохранить контроль над системой. Master традиционно пользуется популярностью среди разработчиков, профессиональных системных администраторов, опытных пользователей, специалистов, работающих в области ИТ-образования.
• ALT Linux 2.3 SOHO Server — готовое решение, предназначенное для организации сервера доступа в Интернет как для небольших сетей, так и для сетей масштаба предприятия. Среди многих серверных компонентов усилена функция межсетевого экрана. ALT Linux 2.3 SOHO Server поставляется в коробке с печатной документацией. В стоимость включена техническая поддержка по электронной почте в течение 60 дней с момента первого обращения.
• ALT Linux Junior 2.3 — дистрибутив для рабочих станций и домашних компьютеров, для начинающих и опытных пользователей, простой в установке и использовании. ALT Linux Junior 2.3 распространяется в двух вариантах: в коробочных версиях с печатной документацией и в компактных jewel-упаковках.
Определение стратегии, выбор дистрибутива и аппаратного обеспечения • ALT Linux 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 II — дистрибутив оптимизирован для создания корпоративных серверов различных классов и поддерживает различные серверные архитектуры, включая многопроцессорные, и системы с большими объемами памяти. Централизованная настройка большинства служб и программ существенно облегчает их установку, использование и администрирование.
• ASPLinux Server — стабильное и надежное решение для построения корпоративной сети, включающей почтовый сервер, web-сервер, сервер печати, сервер приложений, сервер баз данных. Включает утилиту централизованной настройки служб и программ, уменьшая сложность настройки, использования и администрирования.
• ASPLinux vlO Deluxe — наиболее полный вариант дистрибутива ASPLinux vlO. Это идеальный помощник специалиста, которому необходим надежный и мощный инструмент для решения любой задачи, какой бы сложной она не являлась. Этот дистрибутив с одинаковым успехом может быть использован для установки как на рабочей станции, так и на сервере предприятия малого или среднего бизнеса.
• ASPLinux vlO Standard — вариант дистрибутива ASPLinux v 10, подготовленный для установки на компьютеры корпоративных или домашних пользователей. Этот дистрибутив предназначен для тех, кто хочет работать в Linux каждый день, кто хочет знать о нем больше, но не обладает навыками программиста или системного администратора.
• ASPLinux vlO Express — вариант дистрибутива ASPLinux vlO, одинаково подходящий как тем, кто только знакомится с миром Linux, так и тем, кто уже знаком с ним настолько, что не нуждается в посторонней помощи. Традиционная мощь и надежность решений от ASPLinux сочетаются в нем с простотой установки и настройки, доступной даже неподготовленному пользователю.
• ASPLinux vlO Greenhorn — вариант дистрибутива 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 (Сервер), при выборе которого будут устанавливаться пакеты, предназначенные для конфигурации системы в режиме "среднестатистического сервера". В следующей главе я расскажу, как установить сервер, используя эту возможность, и, как альтернатива, будет рассмотрен ручной выбор пакетов.
Основной посылкой при установке является минимализм и пошаговый подход.
Сначала мы устанавливаем минимальный набор программ, необходимый и достаточный для функционирования сервера, настраиваем нужные службы, а в каждой главе я ставлю задачу, например, организовать доступ в Интернет для локальной сети через коммутируемое соединение, и мы устанавливаем необходимые для этого пакеты, конфигурируем их, не забывая о безопасности системы.
Прошу прощения заранее — я не буду рассматривать установку графической системы и графические конфигураторы, поскольку помимо сотен мегабайт необходимого дополнительного программного обеспечения, мы автоматически увеличим вероятность взлома системы или количество проблем, вызываемых неправильным функционированием программ. Но самое главное — вы не получите тех знаний, которые необходимы для понимания принципов Определение стратегии, выбор дистрибутива и аппаратного обеспечения 19_ функционирования системы. Тем не менее я не на столько кровожаден — мы рассмотрим процесс конфигурирования некоторых аспектов через webинтерфейс.
Задачи, стоящие перед нами, я взял из жизни. Это типичный цикл роста небольшой фирмы, которая динамично развивается и обрастает компьютерами и задачами, решаемыми на них. Сперва у фирмы появляется модемное подключение к Интернету, которое необходимо "раздать" на все компьютеры сети. Параллельно нужно организовать общее дисковое пространство, доступное сотрудникам офиса, доступ к сетевому принтеру. В дальнейшем, при развитии фирмы, у нас появляется выделенное постоянное подключение к Интернету и, как следствие, потребность в своем web-сайте, электронной почте, FTP-сервере (File Transfer Protocol, протокол передачи файлов), удаленном администрировании. И при этом не следует забывать, что основные потребители услуг, предоставляемых нашим сервером, — компьютеры с операционной системой Windows.
Итак, наши задачи, которые стоят перед нами и которые мы методично и последовательно будем решать.
1. Установка и первоначальная настройка сервера.
2. Настройка коммутируемого модемного соединения и организация шлюза для выхода в Интернет.
3. Установка web-сервера Apache и Webmin — программы для конфигурирования системы через web-интерфейс.
4. Настройка общего доступа к дисковому пространству сервера.
5. Настройка сетевого принтера.
6. Организация простейшего почтового сервера.
7. Установка и настройка DHCP-сервера (Dynamic Host Configuration Protocol, протокол динамической конфигурации хоста).
8. Переход на выделенную линию и перенастройка уже установленных служб и добавление новых.
9. Настройка прокси-сервера.
10. Настройка NNTP-сервера (Network News Transfer Protocol, сетевой протокол передачи новостей) или сервер новостей.
11. Настройка NTP (Network Time Protocol, сетевой протокол времени) для синхронизации времени через сеть и настройки временной зоны.
12. Настройка контроллера домена.
13. Контроль и аудит системы.
14. Настройка входящего модемного соединения.
15. Утилиты администрирования и обеспечения безопасности.
Как видите, задач достаточно много. Но, как говорят китайцы, — "даже путь в тысячу ли начинается с первого шага ". Шагом, марш!
Ссылки В целом, по поводу выбора дистрибутива и аппаратного обеспечения, ничего особенного я посоветовать не могу. Читайте информацию на сайтах производителей, подпишитесь на новостную группу, пообщайтесь на форумах и сайтах, посвященных Linux. Но есть один универсальный совет — "выбирайте тот дистрибутив, который хорошо знает ближайший гуру" (С). Народная мудрость.
О www.Iinux.org.ru — один из основных русскоязычных web-сайтов, посвященных Linux.
• www.linux.org — web-сайт о Linux.
• www.linuxdocs.org — web-сайт, содержащий много литературы о Linux.
• www.linuxrsp.ru — русскоязычный web-сайт.
О www.redhat.com — web-сайт Red Hat.
О www.altlinux.ru — официальный web-сайт Alt Linux.
О www.asplinux.ru — официальный web-сайт ASP Linux.
D www.citforum.ru — здесь вы найдете большое собрание русскоязычной документации и книг, в том числе посвященных Linux.
Глава Установка и первоначальная настройка сервера В этой главе мы произведем установку нашего сервера, причем будем рассматривать два варианта установки: с помощью графического интерфейса и в текстовом режиме. И две стратегии — установка по умолчанию и самостоятельный выбор пакетов.
Первичную настройку сервера будем производить как во время, так и после установки системы. В нашем случае это будут: настройка сетевого интерфейса, настройка брандмауэра, DNS (Domain Name System, доменная система имен), маршрутизация.
Установка дистрибутива.
Стандартный вариант В этом разделе мы рассмотрим наиболее легкий, с точки зрения пользователя, вариант установки сервера. Минимальные телодвижения, минимальное вмешательство в процесс установки — "за нас уже подумали". Для быстрого старта системы самое то, правда, в дальнейшем придется почистить систему, кое-что добавить, но несомненным плюсом этого подхода является мобильность развертывания системы — полчаса и сервер готов.
Текстовый интерфейс установки Заранее прошу прощения, но дальше пойдет большое количество графического материала. Здесь действует принцип — лучше один раз увидеть, чем сто раз услышать. Также, поскольку процесс инсталляции очень похож в обоих типах интерфейса, некоторые вещи будут дублироваться, а некоторые я опишу только для одного из них.
Итак, у вас на руках свежесобранный сервер. Первое, что необходимо вам сделать — зайти в BIOS и грамотно его настроить. Второе — в том же BIOS временно установить в качестве первого устройства загрузки CD-ROM. Уже давно все дистрибутивы поставляются на загрузочных компакт-дисках, поэтому нет необходимости возиться с загрузочными дискетами. Вставляем компакт-диск в CD-ROM, перегружаем компьютер и видим строку приглашения (рис. 2.1).
Давайте займемся расшифровкой. Внизу экрана мы видим командную строку, в которой мы можем вводить команды. Если в течение некоторого времени (порядка минуты) ничего не будет введено, дистрибутив самостоятельно начнет установку в графическом режиме. В средней части экрана находится сообщение о том, что для начала инсталляции или обновления уже установленной системы в графическом режиме необходимо просто нажать клавишу. Чтобы проделать то же самое в текстовом режиме, необходимо ввести linux text и нажать клавишу. Помимо этого существуют дополнительные возможности, о которых вы можете узнать, нажав соответствующие функциональные клавиши (или прочитав во вставке). Вводим в командной строке linux text, нажимаем клавишу и получаем экран, изображенный на рис. 2.2.
В этот момент дистрибутив опрашивает все аппаратное обеспечение компьютера, определяет его тип и выводит полученные данные на экран. Как правило, на этом этапе никакого криминала не происходит, и после тестирования железа мы получаем экран, изображенный на рис. 2.3.
Система определила, что инсталляция производится с компакт-диска, и мнительные болванки, либо старый CD-ROM. Если же вы уверены в своем аппаратном обеспечении, то смело нажимайте кнопку Skip. Нас приветствуют (рис. 2.4)! Здесь можно вернуться к предыдущему пункту, но мы нажимаем ОК и переходим к экрану, изображенному на рис. 2.5.
с *'typ между элементами I выбор I следующий :жрлн Fedora Core (С) 2884 Bed Hat / между элементами ! вьйор t следуми^ш экран РИС. 2.33. Смена инсталляционных компакт-дисков Fedora Core (С) 2ВВ4 Red Hot. Inc.
Удалите все носители (дискеты ипи CD-НОШ, котарье ИСГЩЛЬЗО&ДПИСО при устано&кс. и но«этитс для перезагрузки системы.
Во время инсталляции самостоятельно выдвинется лоток CD-ROM, и нам предложат вставить следующий диск и нажать ОК (рис. 2.33). После окончания нам выводится сообщение о том, что установка прошла успешно, и предлагают перезагрузить компьютер (рис. 2.34).
Графический интерфейс установки Переходим к графическому варианту установки системы. Начинается точно так же, как и текстовый вариант — вставляем компакт-диск и перегружаем компьютер (рис. 2.35).
Тг» Install or upgrade it! graphical node, p r e s s t h e key.
Use tlie func keys listed beinu for погн information.
Нажимаем клавишу и начинаем фафическую инсталляцию. Первые 2—3 шага общие с текстовым режимом — командная строка вначале и определение аппаратного обеспечения. Нам точно так же предлагают проверить компакт-диски на ошибки, нажимаем Skip.
Нас приветствуют! Окно устроено просто — слева вертикальная полоса с текстом, поясняющим, что делается, и в центральной части окна собственно то, с чем мы работаем на данном этапе (рис. 2.36). Нажимаем ОК и получаем экран, изображенный на рис. 2.37.
Нам предлагают выбрать язык, с помощью которого будут выводиться все сообщения в процессе инсталляции. Выбираем русский и нажимаем ОК.
Далее нам предлагают выбрать общесистемную раскладку клавиатуры (рис. 2.38). Выбираем, нажимаем ОК и переходим к следующему этапу (рис. 2.39).
Здесь мы выбираем тип устанавливаемой системы. В отличие от текстового режима, все типы инсталляции на русском языке, с кратким пояснением.
Выбираем вариант Сервер и двигаемся к следующему экрану (рис. 2.40).
During this installation, you can f use your mouse or keyboard to n navigate through the various I move around the screen, the scroll through lists, + and - keys expand and collapse lists, I while Space and Enter selects I or removes from selection a ! highlighted item. You can also use the Ak-X key command : combination as a way of ; clicking on buttons or making I other screen selections, where j Xis replaced with any : underlined letter appearing Выберите, куда вы хотите установить Fedora Core.
Если вы не знаете, как вам нужна помощь по использованию инструментария для проведения разметки вручную, обратитесь к документации.
автоматическое разбиение :
logger -p Iocal2.info -t connect "$*" # Начинаем процедуру связи # Инициализируем модем message "*** Initializing Modem ***" chat "" $INIT OK "" if [ $? != 0 ] message "!!! Failed to initialize modem !!!" # Пытаемся дозвониться message "*** Dialing system *•*»
chat \ ABORT "NO CARRIER" \ case $? in 0) message "*** Connected ***";;
2) message "!!! Chat Script Error ! ! !"; exit 1; ;
3) message "!!! Chat Timeout ! ! !"; exit 1;;
4) message "!!! No Carrier ! ! ! "; exit 1; ;
6) message "!!! No DialTone !!!"; exit 1;;
7) message "!!! Modem Error !!!"; exit 1;;
# Проходим авторизацию message "*** Send login and password ***" chat \ if [ $? != 0 ] then message "!!! Failed to send !!!" # Все прошло удачно!
message "*** Protocol started *** " Вышеприведенный листинг — просто сценарий на языке командной оболочки, который вам необходимо немного адаптировать для наших параметров.
Настройка основной конфигурации: /etc/diald.conf /etc/diald.conf — основной конфигурационный файл программы diald, в котором задаются параметры устанавливаемого соединения и определяется поведение программы. Набор команд конфигурации у diald достаточно обширен, поэтому в приведенном примере будут использованы только необходимые, а подробную информацию по конфигурационным командам можно посмотреть в документации на программу diald.
Содержимое файла diald.conf:
# Протокол для связи с провайдером mode ppp # Вести журнал сеансов связи diald.log accounting-log /var/log/diald.log # Для управления демоном из внешних программ # организовать канал FIFO — diald.ctl.
fifo /etc/diald/diald.ctl # Для дозвона использовать файл /etc/diald/connect connect /etc/diald/connect Настройка разделяемого коммутируемого модемного соединения... 75_ # Далее несколько команд, описывающих применяемый модем # Поскольку мы уже определили параметры в /etc/ppp/options, # то нижеприведенные команды необходимо закомментировать во избежание # конфликтов в файле /etc/ppp/options # device /dev/modem # speed # modem # lock # crtscts # Назначаем локальный и удаленный адреса нашего # соединения. Если при связи с провайдером IP-адрес # для вас выделяется динамически, то здесь можно # поставить любые свободные адреса из диапазона, # оговоренного при настройке нашей ТСР/1Р-сети.
# При запуске РРР diald сам выставит корректные значения local 192.168.110. remote 192.168.110. # Провайдер дает нам динамический IP dynamic # Установить маршрут по умолчанию # на виртуальное соединение de faultroute # Максимальное количество неудачных попыток дозвона dial-fail-limit # Задержка между попытками дозвона redial-timeout # время ожидания завершения сценария connect connect-timeout # Файл с правилами для тайм-аутов include /etc/diald/standard.filter Настройка правил тайм-аутов: /etc/diald/standard.filter Следующее, что вы должны сделать — произвести настройку правил таймаутов. Это самый сложный момент настройки diald, так как требует знания внутренней структуры IP-пакетов. Однако разработчики diald позаботились о пользователях, и стандартный файл standard.filter имеет вполне приемлемые для большинства случаев настройки. Оставив в нем все, как есть, мы получим набор правил, рассчитанный на трехминутную паузу между окончанием активности в Интернете и разрывом связи с провайдером.
Комплексное тестирование После проделанных манипуляций настало время проверить — правильно ли настроены наши программы. Для этого на компьютере желательно временно отключить все настройки брандмауэра (если вы, конечно, установили его).
Затем необходимо запустить программу diald и попытаться выйти в "большой мир". Можно использовать браузер lynx (и зайти, например, на сайт www.bhv.ru), можно — программу ping.
Если все было настроено корректно, то после ввода предыдущей команды модем должен начать дозваниваться до провайдера. Через некоторое время связь будет установлена. Однако практически всегда lynx выдает сообщение о том, что не может соединиться с удаленным сервером! В данном случае — это нормальное явление. Дело в том, что при РРР-соединении с динамическими IP-адресами в силу определенных особенностей первый пакет обычно бывает утерян и не доходит до адресата. В результате мы ждем ответа от сервера, а он об этом и не подозревает. Достаточно повторить введенную ранее команду, чтобы все заработало.
Далее нам необходимо убедиться, что модем аккуратно разорвет соединение по прошествии трех минут. Дождавшись конца загрузки web-страницы, засечем время. Примерно через три минуты diald должен разорвать соединение. Если у вас все прошло именно таким образом, значит, система работает как надо. В противном случае проанализируйте последние строки системного журнала (/var/log/messages).
Указанными действиями мы проверили корректную работу только с нашего сервера. Для того чтобы проверить, что все работает правильно, попробуем повторить описанную процедуру и на других компьютерах сети. Реакция diald должна быть аналогичной. Если что-то пошло не так, проверьте корректность настройки протокола TCP/IP на машине, в частности — настройки сетевого шлюза, которые должны указывать на наш сервер.
Настройка маршрутизатора На самом маршрутизаторе (это наш сервер, если кто-то еще не понял) мы должны в таблицу маршрутизации прописать, что все, что приходит из нашей локальной сети и не вписывается в адреса локальной сети необходимо отсылать на наше внешнее устройство. Ключевое слово для всего этого хозяйства NAT (Network Address Translate, преобразование сетевых адресов) и masquerading (маскарадинг). Что же нам нужно сделать? Сначала необходимо убедиться, что в ядре включена поддержка маршрутизации IP-пакетов.
Проверить это можно следующей командой:
cat /proc/sys/net/ipv4/ip_forward Настройка разделяемого коммутируемого модемного соединения... если вы получили 0, то маршрутизация выключена. Для включения нужно выполнить команду:
echo I >/proc/sys/net/ipv4/ip_forward Включается маскарадинг в iptables очень просто:
iptables -A FORWARD -s 192.168.0.0/24 -j ACCEPT iptables -A FORWARD -d 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-адрес и наоборот. Для чего это нужно? Человеку легче запомнить нечто осмысленное, например www.checkitnow.ru, чем 213.162.145.242, а для компьютера проще передать 4 байта адреса, чем 50—60 байт имени.
DNS-сервер представляет собой базу данных, в которой хранится соответствие символического имени IP-адресу. В сети существуют десятки тысяч DNS-серверов, которые обмениваются между собой информацией. DNS — это иерархическая система. Вершина записывается как "." (точка) и произносится как root (корень). В корне существует некоторое количество доменов верхнего уровня (Top Level Domains, TLDs), наиболее известными из которых являются org, com, edu, gov, mil, net, ru, ua и т. п.
При поиске машины запрос обрабатывается рекурсивно, начиная с корня.
Чтобы найти адрес машины moshkin.bins.ru, DNS-сервер проверяет свою базу. Если в базе не оказалось нужной нам записи, то отправляется запрос на корневой сервер, который выдает список DNS-серверов, обслуживающих домен га. Далее отправляется запрос (адрес выбирается по определенному алгоритму или берется первый в полученном списке), чтобы узнать, какие DNS-серверы обслуживают зону bins.ru. Затем узнается IP-адрес хоста moshkin.bins.ru. А чтобы в следующий раз не повторять этот поиск, полученную пару "имя-1Р-адрес" наш DNS-сервер сохраняет в своей базе данных.
При обратной задаче, по IP-адресу узнать символическое имя, — опять используется DNS-сервер. Для этих целей существует псевдодомен in-addr.arpa и в нем точно так же прописываются адреса, только порядок следования цифр обратный. Например, для адреса 213.162.145.242 запрос получится как к 242.145.162.213.in-addr.arpa, а схема поиска ответа остается такая же.
По своим функциональным обязанностям различают два вида DNSсерверов:
• кэширующий DNS-cepeep, который используется для локального хранения запрошенных пользователем пар "имя-1Р-адрес", что при интенсивном общении со многими web-серверами позволяет экономить время на запросах. Кэширующий DNS-сервер не отвечает на внешние запросы;
• обычный DNS-cepeep — это полнофункциональный сервер, позволяющий получать, передавать и синхронизировать данные с другими DNS-серверами.
Настройка сетевых параметров Поскольку DNS-сервер очень сильно завязан на всю сетевую инфраструктуру, его работоспособность зависит от правильной конфигурации сети. В современных дистрибутивах, если вы выбрали соответствующий тип установки, конфигурирование производится автоматически. Однако разработчик дистрибутива рассчитывает на абстрактную среднестатистическую систему, которой, как показывает практика, не существует. Поэтому следует убедиться, что с сетевыми настройками у вас все в порядке, вследствие чего рассмотрим основные файлы, отвечающие за конфигурацию сети.
Файл host.conf Этот файл предназначен для того, чтобы система могла определить, каким образом она будет получать информацию об именах и IP-адресах. Следующая запись в файле host.conf означает, что при поиске хостов сначала произойдет обращение к /etc/hosts, а только потом к DNS-серверу:
order hosts,bind Запись должна быть именно такая, поскольку возможен случай, что по какой-либо причине нет доступа к DNS-серверу (например, он еще не запущен), а уже есть необходимость воспользоваться сетью.
Настройка разделяемого коммутируемого модемного соединения... Файл /etc/hosts В этом файле должны находиться пары "1Р-адрес-имя":
127.0.0.1 localhost localhost.localdomain 192.168.0.1 user 192.168.0.2 user Причем обязательно должна присутствовать следующая строка:
127.0.0.1 localhost localhost.localdomain Этот файл позволяет делать преобразование "имя-1Р-адрес" без обращений к DNS-серверу, что обычно используется в небольших локальных сетях.
Файл /etc/resolv.conf В этом файле должны находиться строки, подобные приведенным ниже:
search lazy.ru nameserver 213.166.195. В строке, которая начинается со слова search, указывается, какое доменное имя будет принято по умолчанию. Так, если вы напишете useri, то система сразу попытается обратиться к компьютеру userl.lazy.ru. После search можно указывать несколько имен. В следующей строчке указываются адреса DNSсерверов (обычно провайдера), к которым будет обращаться ваша машина.
Установка DNS-сервера Нам необходимо проверить наличие следующих пакетов: bind и bind-utils.
Как это делается, вы уже знаете — с помощью команды rpm -qi имя пакета.
Если эти пакеты не найдены, то ищем их сперва на дисках с дистрибутивом (для Fedora Core 3 они находятся на первом диске), и устанавливаем командой rpm - i имя пакета.
Настройка дотирующего DNS-сервера Кэширующий DNS-сервер предназначен для нахождения пары "имя-1Радрес" в своей базе или на других серверах и сохранения пары у себя в базе.
При этом он сконфигурирован таким образом, что только принимает данные извне сети, но не отдает информацию наружу. Такого типа серверы используются для уменьшения времени ожидания ответа и рекомендуются при медленном соединении или в том случае, когда внешний DNS-сервер перегружен. Рассмотрим конфигурационные файлы.
Файл /etc/named.conf Это основной конфигурационный файл DNS-сервера, в нашем случае он должен содержать следующие строки:
options { directory "/var/named";
zone "." { file "root.hints" ;
zone "0.0.127.in-addr.arpa" { Строка d i r e c t o r y указывает bind, в каком каталоге искать файлы. Все файлы, используемые впоследствии, будут иметь путь относительно этого каталога.
Строка zone "O.o.i27.in-addr.arpa" показывает, что bind также отвечает за обратную зону для подсети 127.*.*.*, является в ней мастером, и файл описания зоны — 127.0.0.
Секция zone "." самая важная. Она описывает, в каком файле лежат адреса корневых DNS-серверов, которые отвечают за зоны первого уровня.
Файл, названный /var/named/root.hints, должен находиться в указанном каталоге и содержать приблизительно следующую информацию:
Настройка разделяемого коммутируемого модемного соединения... 81_ G.ROOT-SERVERS.NET. 5w6dl6h IN A 192.112.36. J.ROOT-SERVERS.NET. 5w6dl6h IN A 198.41.0. K.ROOT-SERVERS.NET. 5w6dl6h IN A 193.0.14. L.ROOT-SERVERS.NET. 5w6dl6h IN A 198.32.64. M.ROOT-SERVERS.NET. 5w6dl6h IN A 202.12.27. A.ROOT-SERVERS.NET. 5w6dl6h IN A 198.41.0. H.ROOT-SERVERS.NET. 5w6dl6h IN A 128.63.2. B.ROOT-SERVERS.NET. 5w6dl6h IN A 128.9.0. C.ROOT-SERVERS.NET. 5w6dl6h IN A 192.33.4. D.ROOT-SERVERS.NET. 5w6dl6h IN A 128.8.10. E.ROOT-SERVERS.NET. 5w6dl6h IN A 192.203.230. I.ROOT-SERVERS.NET. 5w6dl6h IN A 192.36.148. F.ROOT-SERVERS.NET. 5w6dl6h IN A 192.5.5. Этот файл описывает имена корневых серверов имен по всему миру. Их список периодически изменяется. Поэтому данный файл необходимо время от времени корректировать.
Для получения файла root.hints существует по меньшей мере два пути: либо забрать его по FTP с сервера internic, либо выполнить команду:
dig @rs.internic.net. ns >root.hints Файл /etc/127.0. 127.0.0 — это файл, который отвечает за преобразование IP-адресов в символические имена. Файл 127.0.0 должен выглядеть следующим образом:
Эта запись обозначает следующее:
П @ указывает, что описываем сами себя;
• описываемая зона поддерживается сервером с именем ns.iazy.ru;
• отвечает за нее администратор, доступный по адресу [email protected] (первая точка заменяет @);
О у зоны серийный номер равен 1 (обычно для него используют дату последней правки зоны — на него опираются другие серверы, которые получают информацию с нашего сервера);
• другие серверы будут обновлять информацию о нашем сервере с периодичностью в 8 часов;
• при неудачном обновлении следующая попытка будет произведена через 2 часа;
О зона будет считаться содержащей недостоверную информацию, если не обновится через 1 неделю;
П но не менее чем через 1 день;
О строка IN NS ns.lazy.ru. показывает, что авторитетным сервером для этой зоны является ns.lazy.ru., и именно ему надо рассылать обновления зоны ns. lazy. ru;
• строка i PTR locaihost. показывает, что хост с адресом 1 в зоне 127.0.0.
Запуск named После правки конфигурационных файлов можно запускать сервер. Наберите /etc/init.d/named s t a r t без опций и нажмите клавишу. Затем запускаем программу nslookup:
$ nslookup Default Server: locaihost Address: 127.0.0. Если вы увидели нечто похожее на мониторе — система работает. Каждый раз, когда вы изменяете файл named.conf, необходимо перезапустить named, используя команду /etc/init.d/named r e s t a r t. Теперь проверим, как функционирует наш кэширующий сервер, для этого введем:
> userl.ya.ru Server: 213.166.195. Address: 213.166.195. Name: userl.ya.ru Address: 213.166.195. При этом программа nslookup попросила наш DNS-сервер посмотреть информацию о данном хосте. У себя сервер этой информации не нашел, а нашел у DNS-сервера провайдера, который имеет IP-адрес 213.166.195.22.
Настройка разделяемого коммутируемого модемного соединения... Если вы повторно попросите узнать адрес компьютера userl.ya.ru, то получите такой ответ:
> userl.ya.ru Server: 1осаlhos t Address: 127.0.0. Non-authoritative answer:
Name: userl.ya.ru Address: 213.166.195. В ЭТОТ раз ВЫ ПОЛУЧИЛИ сообщение N o n - a u t h o r i t a t i v e answer. Это значит, что во второй раз запрос к внешним DNS-серверам не делался, а был произведен поиск в кэше. Поскольку вы увидели это сообщение, наш кэширующий DNS-сервер нормально функционирует. Получив положительный результат, можно завершить работу программы nslookup, дав команду exit.
Глава Установка Apache и Webmin В этой главе описывается установка и использование двух пакетов — webсервера Apache и системы удаленного администрирования с web-интерфейсом Webmin. Их использование даст вам возможность быстро, не особо вникая в тонкости, конфигурировать сервер, находясь за любым компьютером в нашей сети, а в перспективе — в любой точке земного шара, где есть Интернет.
Web-сервер Apache В качестве web-сервера в UNIX сообществе в основном используется Apache, который распространяется по лицензии GNU. По статистическим данным более половины всех web-серверов в Интернет созданы на базе Apache. У него очень много достоинств — он кроссплатформенный, мощный и легкий в настройке.
В качестве альтернативы для Linux-платформы можно использовать TUX, который тесно интегрирован с ядром Linux, что позволило резко увеличить количество обрабатываемых запросов за единицу времени. Однако у этого сервера есть несколько минусов, в том числе:
• работает только под Linux;
• неотлаженный код;
• мало дополнительных возможностей, по сравнению с Apache.
Конфигурация Установка web-сервера для дистрибутивов, использующих RPM-пакеты, стандартна — необходимо найти нужный пакет и произвести установку сервера командой:
rpm - i Конфигурирование сервера достаточно сложно — несколько сотен команд и параметров, некоторые крайне редко используются. Однако для нашего случая достаточно немного поправить стандартную конфигурацию сервера. Поэтому далее я просто опишу, что и где мы правим для запуска Webmin.
После настройки необходимо, чтобы сервер перечитал конфигурационные файлы, это происходит либо при запуске, либо при получении сигнала -HUP или -USR1. Если Apache находится в работе, то при изменении конфигурации его рекомендуется перезапустить командой k i l l - U S R I, поскольку при таком перезапуске сервера текущие соединения завершаются обычным образом, а новые клиенты будут работать уже с новыми конфигурационными файлами.
Конфигурация сервера задается в файлах httpd.conf, srm.conf, access.conf и.htaccess. Файл httpd.conf предназначен для общей настройки, srm.conf содержит описание доступных ресурсов, a access.conf— права доступа к ресурсам. Однако в современных версиях сервера любая директива конфигурации может лежать в любом из этих файлов. Сейчас de facto все директивы конфигурации содержатся в файле httpd.conf.
Некоторые модули могут иметь свои отдельные файлы конфигурации (например, modcharset требует файлы, хранящие таблицы перекодировки).
Файл access.conf В access.conf содержатся директивы, описывающие права доступа к каталогам и файлам web-сервера. Обычно создается каталог /\у\у\у//, потому что при такой организации проще ориентироваться в структуре файлов.
Файл access.conf содержит секции Directory, Location и Files, которые ограничены одноименными директивами. В их параметрах могут использоваться символы "?" и "*", а также регулярные выражения, предваряемые тильдой "~". В секции Directory помещаются инструкции, относящиеся к определенному каталогу на диске, в секции Location — относящиеся к виртуальному пути, в секции F i l e s — относящиеся к файлу или группе файлов. Например:
# директивы, относящиеся ко всем документам, хранящимся в # каталоге /www/roora.ru и вложенных в него # директивы, относящиеся ко всем документам, доступным по # адресу http:///cgi-bin/ # директивы, относящиеся к файлу form.htm из каталога # /www/room.ru Различие между секциями Directory и Location состоит в том, что первая относится к каталогам на диске, вторая — к виртуальному пути (URL, Uniform Resource Locator), который браузер запрашивает у web-сервера. И в той, и в другой могут присутствовать директивы order, allow и deny, которые позволяют ограничить доступ к каталогу или URL с различных машин.
При отсутствии специальных требований к безопасности можно указать options All в секции, иначе нужно описать параметры каждого каталога отдельно.
Приведем пример файла access.conf:
## access.conf — Apache HTTP server configuration file Options FollowSymLinks AllowOverride None Options All AllowOverride All order allow, deny allow from all Файл srm.conf Файл srm.conf содержит директивы, связанные с общими настройками структуры каталогов сервера. Обычно они не изменяются.
Файл httpd.conf Конфигурационный файл httpd.conf является основным и содержит настройки, связанные с работой web-сервера, виртуальных серверов, а также всех его программных модулей. Кроме того, именно в нем настраивается перекодирование русских букв при передаче от сервера к клиенту и обратно.
Далее я приведу урезанный конфигурационный файл с краткими пояснениями.
Файл условно разбит на 3 секции. Первая секция начинается следующим комментарием:
### Section I: 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 "/etc/httpd" Эта директива показывает, где находятся конфигурационные файлы сервера.
Timeout Время тайм-аута в секундах. Обычно этого значения вполне достаточно для нормального функционирования сервера.
Listen Показывает, что сервер слушает 80 порт. При желании, можно задать еще IP-адрес, например, 192.168.0.1:80. А можно задать несколько портов или адресов, которые слушает сервер.
LoadModule authdigest_module modules/mod_auth_digest.so LoadModule ldap_module modules/mod_ldap.so LoadModule auth_ldap_module modules/mod_auth_ldap.so LoadModule include_module modules/mod_include.so LoadModule log_config_module modules/mod_log_config.so Здесь описываются загружаемые модули. Модулей много и, возможно, не все они нужны вам.
Секция номер 2. Основные конфигурационные параметры сервера.
### Section 2: 'Main' server configuration # The directives in this section set up the values used by the 'main' Установка Apache и Webmin # server, which responds to any requests that aren't handled by a # definition. These values also provide defaults for # any containers you may define later in the file.
# All of these directives may appear inside containers, # in which case these default settings will be overridden for the # virtual host being defined.
User apache Group apache Директивы user и Group задают пользователя, от имени которого запускается web-сервер. Без особой нужды менять их нет необходимости.
ServerAdmin rootSlocalhost Эта директива определяет адрес администратора web-сервера, на который пользователи могут отсылать электронные письма. Этот адрес в большинстве случаев будет отображаться на страницах с сообщениями об ошибках.
DocumentRoot "/var/www/html" Параметр определяет каталог, где находятся HTML-документы, отображаемые web-сервером.
AccessFileName.htaccess Параметр определяет имя файла, в котором можно дополнительно описать каталоги, к которым имеют/не имеют доступ пользователи 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 # configurations # use only name-based virtual hosts so the server doesn't need to worry # about # IP addresses. This is indicated by the asterisks in the directives #below.
Секция З предназначена для конфигурации виртуальных хостов. Эта секция нам не нужна, поскольку у нас только один web-адрес.
Как видите, на данном этапе менять, практически, ничего не надо. В дальнейшем, нам, конечно, придется кое-что изменить в настройках.
Webmin Здесь мы рассмотрим систему администрирования с web-интерфейсом, которая очень понравится начинающему администратору. Достоинством этого решения являются графический интерфейс, собранные в одном месте настройки всего, что есть в системе, модульность (что позволяет убрать ненужное и добавить необходимое), достаточно простое управление системой и, наконец, доступ к системе с любого компьютера, подключенного к локальной сети или Интернет. Минусами этого решения являются: графический интерфейс, собранные в одном месте настройки всего, что есть в системе, доступ к системе с любого компьютера, подключенного к локальной сети или Интернет. Противоречие? На самом деле нет и вот почему.
Графический интерфейс — это красиво, здорово и удобно. Но, поскольку Webmin рассчитан на удаленное администрирование, то, например, ночью из дома на модемном соединении достаточно неприятно тянуть 20—30 Кбайт картинок для каждой страницы. Но не это главное — проблема графического интерфейса в подмене понятий и снижении порога знаний. Казалось бы хорошо, но не для всех случаев. Простейший пример — web-сервер вышел из строя (соответственно Webmin не работает), и чтобы что-то поправить в настройках, нужно, во-первых, знать, что и где посмотреть, чтобы определиться, в чем проблема. А во-вторых, знать, что и где подкрутить, чтобы все заработало как нужно. К сожалению, постоянная работа с графическим интерфейсом таких знаний вам не даст.
Доступ к системе из Интернета. Казалось бы, здорово, можно сидя дома, в интернет-клубе или в аэропорту оперативно посмотреть, что делается на сервере, поправить что-то или настроить. Но для того, чтобы сервер не взломали, нужно приложить огромные усилия. И ведь нет гарантии, что в интернет-клубе нет сканера клавиатуры, благодаря которому пароль администратора окажется у неизвестного через 20 минут.
По-видимому, исходя из минусов системы, разработчики дистрибутива не включили пакет Webmin в дистрибутив Fedora Core, поэтому мы идем на www.webmin.com и скачиваем пакет прямо в виде RPM. После этого в командной строке выполняем следующую команду:
rpm -i wefcmin-1.190-1.noarch.rpm предупреждение: wetmin-1.190-1.noarch.rpm: подпись DSA V3: NOKEY, key ID Ilf63c Operating system is Redhat Linux Fedora Webmin install complete. You can now login to https: /Vlocalhost.localdomain:10000/ as root with your root password.
Пакет успешно установился и подсказал нам, что для того, чтобы получить доступ к Webmin на локальном компьютере, необходимо в браузере зайти на страницу по адресу localhost: 10000 По умолчанию, после установки, к Webmin можно подключиться с любого компьютера, что мы и сделаем (рис. 4.1).
Мы должны ввести имя и пароль пользователя, которому разрешен доступ к Webmin. После инсталляции это пользователь root. В дальнейшем, при конфигурации пакета, можно поменять пользователя или разрешить доступ сразу нескольким пользователям.
Страница Webmin После ввода пароля мы попадаем на страницу конфигурации Webmin (рис. 4.2). Как вы видите, система изначально англоязычная. Ничего страшного, заходим в Change Language and Theme и выбираем нужный нам язык (рис. 4.3). Здесь же можно поменять оформление всей системы.
Далее следует страница конфигурации Webmin (рис. 4.4). Пойдем по порядку.
Журнал действий Webmin. Позволяет записывать действия, осуществляемые пользователями, указывать, для каких пользователей вести запись действий, для каких модулей, в какое время производить запись (рис. 4.5).
Настройка Usermin. Usermin — это пакет от тех же разработчиков, предназначенный для работы с учетными записями. Поскольку мы не устанавливали Usermin, то нам собственно нечего делать в этом модуле.
File gift,, ^iffw: go gookme«*. Tool* Lfeip -..'ji - ••, " ^ 4 3ак. Порт и адрес. Эта страница — еще один способ взять под контроль доступ к Webmin (рис. 4.10). Если система имеет несколько сетевых интерфейсов, можно указать, по какому сетевому интерфейсу и какому порту будет осуществляться доступ.
Модули Webmin. Тут можно установить дополнительные модули Webmin, которые мы можем иметь в виде файлов, скачать из Интернета по НТТРили FTP-протоколам (рис. 4.11). Так же можно сделать копию существующего модуля, для того чтобы изменить некоторые настройки (например, у нас несколько DSL-модемов). И, конечно же, удалить ненужные модули и их копии.
Обновление Webmin. Как понятно из названия, здесь можно настроить автоматическое обновление Webmin (рис. 4.12). Или обновить вручную, с сохранением всех настроек. Можно проверить и установить модули, которые были изменены с момента последнего обновления.
Темы Webmin. Здесь можно поменять оформление Webmin, как из списка тем, присутствующих в системе, так и новых, которые есть у вас в виде файла или которые можно загрузить из Интернета.
Шифрование SSL. Здесь можно настроить SSL (Secure Sockets Layer, слой безопасных соединений), правда, только в том случае, если используемый браузер поддерживает эту возможность и настроен для работы с SSL.
Журнал. Здесь настраивается журнал событий Webmin — ведутся записи по действиям пользователей, отслеживается работа с модулями (рис. 4.13).
Операционная система и переменные окружения. На этой странице Webmin можно указать, какой дистрибутив используется (рис. 4.14). Это позволяет правильно отслеживать пути к исполняемым файлам и переменным окружения.
Аутентификация. Эта страница — еще один рубеж защиты. Здесь мы определяем задержку между вводом пароля, количество попыток ввода пароля, время бездействия, по истечении которого произойдет автоматическое отключение и многое другое (рис. 4.15).
Проверка ссылок. Здесь можно включить проверку — не выставлен ли адрес сервера с запущенным Webmin где-нибудь в Интернете.
Авторизация по сертификатам. Здесь можно настроить авторизацию по сертификатам SSL. Для этого необходимо настроить на web-сервере поддержку SSL.
Прокси-сервер. Если у вас нет прямого выхода в Интернет, здесь можно указать прокси-серверы, через которые осуществляется доступ. Это необходимо в том случае, если вы используете скачивание файлов Webmin из Интернета.
Язык. Здесь определяем язык вывода информации и кодовую страницу.
Рис. 4.22. Группы пользователей системы Рис. 4.23. Страница Расписание заданий Сгоп Установка Apache и Webmin •Ч».»*.имнйп*«ст.Н1*М Определить прина дленюсп. файла Уьшкге юимшу turn iiy-n. к файду. «споры* ш и л » * и * т »
Рис. 4.30. Список запущенных процессов системы Рис. 4.31. Управление процессом системы Процессы. Здесь можно посмотреть запущенные процессы в системе, узнать информацию по использованию памяти системы, загрузке процессора (рис. 4.30).
Если мы выберем какой-то процесс, то мы увидим всю его подноготную — размер, приоритет, имя владельца, время выполнения. Сможем управлять процессом, поднимать и опускать приоритет, посылать специальные сигналы либо вообще завершить процесс (рис. 4.31).
Система безопасности. Этот модуль предназначен для работы со следующими системами безопасности — portsentry, hostsentry или logcheck.
Службы Этот раздел посвящен управлению разнообразными сетевыми службами, используемыми в системе (рис. 4.32). Как и в других разделах, здесь устанавливаются все модули пакета, даже если такой службы нет в системе.
Frox FTP Proxy. Модуль управления службой переадресации FTP-запросов.
Webalizer Logflle Analisys. Модуль управления службой анализов журналов Apache (рис. 4.33). Если она у вас установлена, то вы можете здесь настраивать ее параметры.
Настройка Postfix. Модуль настройки почтовой службы.
Сборщик почты Fetchmail. Специальный модуль, позволяющий пользователям автоматически забирать свою почту с нескольких внешних почтовых ящиков и перенаправлять ее в один локальный почтовый ящик.
Сервер OpenSLP. 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-сервером.
Сервер баз данных PostgreSQL. Модуль для управления мощным сервером БД PostgreSQL.
SpamAssassin Mail Filter. Модуль для настройки службы для борьбы со спамом.
Настроек достаточно много, а внешний вид страницы изображен на рис. 4.36.
Конфигурация Sendmail. Модуль конфигурирования МТА (Mail Transfer Agent, почтовый агент) службы Sendmail (рис. 4.37). Эта служба по праву считается одной из самых сложных в настройке, и разработчики Webmin постарались облегчить жизнь системному администратору.
Почтовый фильтр Procmail. Модуль для работы с Procmail.
Сервер DHCP. Модуль для работы с DHCP-сервером. Настройкой этого сервера мы займемся чуть позже.
Сервер SSH. Этот модуль позволяет произвести настройку SSH-сервера (рис. 4.38).
Сервер сообщений Jabber. Модуль для настройки сервера мгновенных сообщений Jabber. Интересный аналог ICQ, позволяющий организовать в своей локальной сети систему обмена мгновенными сообщениями.
Рис. 4.35. Почтовые ящики пользователей Рис. 4.36. Настройка SpamAssassin Рис. 4.39. Настройка прокси-сервера 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. Конфигурирование сервера сетевой аутентификации.
Shorewall Firewall. Модуль для управления брандмауэром Shorewall.
Межсетевой экран (firewall). Модуль для управления брандмауэром, использующим возможности ядра операционной системы Linux и пакета iptables (рис. 4.41). Позволяет добавлять, изменять и удалять правила фильтрации, временно приостанавливать действия выбранных правил и т. п. (рис. 4.42).
Bandwidth Monitoring. Модуль для проверки сетевых соединений.
РРР Dialup Client. Этот модуль позволяет настроить модемное соединение (рис. 4.43) и произвести тонкую подстройку для нужного соединения (рис. 4.44).
,ЙЙ*И?!*..'*!****Й:;] Сервер РРР. Модуль, предназначенный для настройки dial-in-сервера — сервера входящих модемных соединений.
Extended Internet Services. Модуль позволяет разрешить доступ извне для некоторых служб, работающих на сервере (рис. 4.45).
idmapd daemon. Модуль для настройки почтового сервера.
РРТР 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.
РРТР VPN Server. Модуль для настройки VPN-сервера, работающего по протоколу РРТР.
Клиент и сервер NIS. Модуль управления NIS-серверами.
Туннели SSL. Модуль для настройки SSL-туннелей.
Оборудование Раздел отвечает в большей степени за работу с жесткими дисками в том или ином аспекте, но здесь же находится система управления временем, настройка сервера голосовой почты и работа с записывающими CD/DVDустройствами (рис. 4.49).
Linux RAID. Модуль, отвечающий за создание и управление RAID-системой (Redundant Array of Independent Disks, матрица независимых накопительных дисков с избыточностью).
Запись на компакт-диски. В этом модуле можно настроить записывающий CD/DVD-привод и при необходимости записать компакт-диск.
Sh«w *twUu eT rictrei { г с щ о ^ т и IDE A (WOC WDSaOOJB-aFUAO).*] Рис. 4.51. Страница информации о состоянии жесткого диска Fi* fjdfi.$№• GQ guokmarf» loot» Htfo Системное время. Этот модуль позволяет настроить системные дату и время, временную зону, а также организовать синхронизацию времени через Интернет (рис. 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 позволяет удаленно сотворить с сервером практически все, что угодно. Поэтому не рекомендуется разрешать к ней доступ из Интернета или, по крайней мере, принять серьезные меры по ограничению доступа к столь мощному инструменту посторонних личностей.
И тем не менее я настаиваю на том, чтобы вы умели и могли конфигурировать сервер и его службы в текстовом режиме. Графика — это приятный бонус, которого может и не быть, а текстовая консоль всегда есть и доступна даже на самых низкоскоростных соединениях.
Для получения справки необходимо ввести h и нажать клавишу :
smb: \> h smb: \> Как видите, практически все команды дублируют команды FTP-клиента.
Утилита smbclient многое позволяет, однако она тяжела в использовании.
Если от Windows-сети нужен только доступ к дисковым ресурсам, рекомендуется воспользоваться пакетом Smbfs.
В пакет samba-client входят утилиты smbmount и smbumount, которые работают подобно mount и umount. Также есть графическая утилита gnomba — подобная утилите Сеть в Windows.
Утилиты Как и у других подобных проектов, для пакета Samba существует достаточно много сторонних утилит, позволяющих упростить конфигурирование и доступ к ресурсам. Вот список утилит и программ, в той или иной мере относящихся к пакету Samba:
П smbstatus — утилита для мониторинга Samba;
• SWAT — инструмент для конфигурирования Samba через web-интерфейс;
• smbpasswd — управление паролями Samba;
П testparm — проверка конфигурационного файла;
• testprns — проверка конфигурации принтера;
• smbtar — утилита резервного копирования;
• smbclient — клиент командной строки;
• Ksamba — KDE-программа, предназначенная для конфигурации;
О Smbedit — \Ут32-приложение для правки конфигурационного файла Samba;
О Webmin — универсальная программа конфигурации через web-интерфейс, в том числе и Samba;
• GSMB — графический интерфейс для утилиты smbpasswd;
• SambaSentinel — графический интерфейс для утилиты smbstatus.
Webmin Как уже упоминалось в предыдущей главе — Webmin имеет модуль управления сервером Samba. Внешний вид модуля изображен на рис. 5.2.
Создание итого файлового весука Соалпмис нового ресурс» печя НАЖМИТЕ Н4 tiy книиху дл* псршапускн %А(ч>таюших сержри* Samha. Эта актшяшруст «се шмомнил гекущп насцижк. ЭТА Настройка общего доступа к дисковому пространству сервера - Samba Как мы видим из рисунка, мы можем остановить сервер и перегрузить его.
Мы подобную операцию уже делали ранее, с помощью консоли. Все возможности я не буду описывать, остановлюсь только на основных. Как видно на рисунке — в верхней части находится таблица ресурсов, доступных для пользователей Samba. Чтобы добавить новый ресурс, нажимаем на соответствующую ссылку и в новом окне (рис. 5.3) заполняем поля.
я» в* JRedHel, Ife.
Рис. 5.З. Добавление разделяемого ресурса на сервере Samba Следующий важный для нас модуль — Сеть Windows (рис. 5.4). Как видно из рисунка, здесь мы определяем имя рабочей группы, имя и описание сервера, безопасность, службы и т. п.
Аутентификация — этот модуль также очень важен для нас. Здесь мы определяем, шифруются пароли или нет, можно назначить свою программу аутентификации, разрешить отображение имен пользователей Linux на Windows-имена (рис. 5.5).
Следующий момент — облегчение жизни администратора. Допустим, у вас в системе уже есть некоторое количество пользователей, и после установки Samba необходимо каждого пользователя прописать в базе пользователей.
Рис. 5.4. Настройка сетевых параметров сервера Samba Длниа» форм* пч)яолл«тВ*14СНнч>1Ч)Н1нр жап, ещккк rvuimwnrw* Unix н Sanh«, Бели Я 11ИЩ fipplU». T» ПНОС •юлъинагвдеА нснояыуени orwnMtwd спи ' funvtit van cunUim uicrn Р" Довмикипс кнммн аотъаилынЛ S*rah. из списм iKMtMowrKMI Unix Это достаточно трудоемко, но есть модуль, позволяющий это сделать быстро (рис. 5.6). При этом система покажет, какие пользователи были пропущены, а какие перенесены (рис. 5.7). Так же можно отредактировать учетную запись пользователя Samba, к примеру, изменить пароль (рис. 5.8). Еще можно сделать так, что, в дальнейшем, в пользователи Samba автоматически попадали все вновь создаваемые Linux-пользователи.
Таковы базовые возможности по настройке сервера Samba. Для начала вам этого хватит, а в дальнейшем — изучайте документацию.
Антивирусные программы, clamav Антивирусов для Linux уже достаточно много. В частности, два ведущих российских производителя антивирусных программ выпускают DrWEB и Kaspersky AV для Linux. Однако это платные антивирусы, а одна из основных задач, стоящих перед нами, — потратить как можно меньше денег.
Настройка общего доступа к дисковому пространству сервера - Samba Признанным лидером среди Open Source антивирусов является clamav (Clam AntiVirus). Официальная страница — www.clamav.net. Самое интересное, что существует версия и для Windows. Что же мы имеем?
• Лицензия GNU General Public License.
П Переносимый POSIX-совместимый код, в частности, реализации под Windows и Linux.
• Проверка файлов "на лету" (под Linux и FreeBSD), встроенная поддержка mbox, maildir и raw-форматов почтовых сообщений.
П Поддержка проверки архивов (встроенная поддержка форматов RAR (2.0), ZIP, GZIP и BZIP2).
О Утилита обновления баз вирусов с поддержкой цифровой подписи.
Как видим — достаточно "вкусный" набор для бесплатного антивируса, проверка файлов и почты — то, что нужно для нас. На странице загрузок есть несколько версий сборок под различные дистрибутивы, в том числе и для Fedora Core (http://crash.fce.vutbr.ez/crash-hat/3/clamav/). Скачиваем пакет, устанавливаем и переходим к настройке и тестированию антивируса, clamav не имеет графического интерфейса, однако для наших целей это не важно.
Установка производится как обычно — с помощью утилиты rpm. После установки пакета необходимо почитать документацию по его настройке.
На самом деле сделать нужно следующее: во-первых, проверить наличие конфигурационных файлов /etc/clamd.conf и /etc/freshclam.conf. Первый отвечает за антивирусную программу, второй — за обновление антивирусных баз из Интернета. По умолчанию все нормально настроено, и изменять эти файлы нет необходимости. Во-вторых, необходимо прописать сам антивирус и модуль его обновления в таблицу инициализации, чтобы они запускались при старте системы. Делается это двумя командами:
/sbin/chkeonfig —level 2345 clamd on /sbin/chkeonfig —level 2345 freshclam on Следующий момент — запускаем демон обновления базы, а он при наличии интернет-соединения самостоятельно обновит базы антивирусной программы:
service freshclam start И последнее, запускаем сам антивирус:
service clamd start Все! Теперь переходим к проверке функционирования. Для этого в комплекте с антивирусом идет несколько файлов, содержащих вирусы. Проверка осуществляется так:
/usr/bin/clamdscan -r /usr/share/doc/clamav-О. Программа clamdscan позволяет проверить указанный каталог рекурсивно. Для того чтобы файлы системы проверялись "на лету", необходимо дополнительно установить модуль Clamuko или Samba Scan. Первый можно найти на сайте www.dazuko.org, а второй на www.openantivirus.org/projects.phptsamba-vscan.
И еще, clamav проверяет так же и заархивированные файлы, но архивы RAR — только второй версии. По лицензионным соображениям поддержка версии 3 архива не включена. Если вам очень нужно, то советую обратиться к статье "Clamav и проверка RAR архивов версии 3" на http://mcmcc.bat.ru/ clam_rar3.html Copyright (С) 2004 МсМСС. Правда, придется самостоятельно собирать из исходных текстов пакет, но это не так сложно, как кажется.
На этом все, переходим к следующей главе.
Глава Настройка общего доступа к дисковому пространству сервера - FTP-сервер FTP предназначен для передачи файлов в сети Интернет. Он несколько устарел, частично функции передачи файлов взял на себя HTTP, но, несмотря на это, будет использоваться еще долгое время.
FTP, в отличие от большинства других протоколов, для пересылки файла использует два TCP-соединения. Одно соединение для передачи файла, а второе — для управления процессом передачи. Порт 20 предназначен для пересылки данных, а порт 21 для управляющего соединения. FTP может использовать как TCP-, так и UDP-соединение.
Программное обеспечение Для работы по протоколу FTP необходимо две программы — сервер и клиент.
Клиентских программ очень много: от простейших, работающих в командной строке, до имеющих весьма развитый графический интерфейс. Любой современный браузер способен выступать в роли FTP-клиента. Поэтому на клиентских программах останавливаться не будем, а перейдем сразу к программному обеспечению FTP-сервера.
Пакет vsftp В последние дистрибутивы, в качестве стандартного FTP-сервера, входит vsftpd (Very Secure FTP Daemon), позволяющий обслуживать как анонимные запросы, так и запросы от пользователей, зарегистрированных на сервере и имеющих полноценный доступ к его ресурсам. Пакет называется vsftpd-2.0.1-5.i386.rpm и находится на третьем диске дистрибутива. Устанавливается он как обычно, при помощи утилиты rpm. При установке пакета автоматически создается каталог, который будет корневым при анонимном подключении, — /var/ftp с необходимыми правами доступа. Владельцем этого каталога является пользователь root.
Для конфигурирования используются один основной файл и несколько дополнительных.
Файл etc/vsftpd/vsftpd.conf Это основной конфигурационный файл, его пример приведен ниже.
# The default compiled in settings are fairly paranoid. This sample file # loosens things up a bit, to make the ftp daemon more usable.
# Please see vsftpd.conf.5 for all compiled in defaults.
# READ THIS: This example file is NOT an exhaustive list of vsftpd options.
# Please read the vsftpd.conf.5 manual page to get a full idea of # vsftpd's capabilities.
# Allow anonymous FTP? (Beware - allowed by default if you comment this # out).
anonymous_enable=YES # Uncomment this to allow local users to log in.
local_enable=YES # Uncomment this to enable any form of FTP write command.
write_enable=YES # Default umask for local users is 077. You may wish to change this, to # 022, if your users expect that (022 is used by most other ftpd's) local_umask= # Uncomment this to allow the anonymous FTP user to upload files. This # only has an effect if the above global write enable is activated. Also, # you will obviously need to create a directory writable by the FTP user.
#anon_upload_enable=YES # Uncomment this if you want the anonymous FTP user to be able to create # new directories.
#anon_mkdir_write_enable=YES # Activate directory messages - messages given to remote users when they Настройка общего доступа к дисковому пространству сервера - FTP-сервер # go into a certain directory.
dirmessage_enable=YES # Activate logging of uploads/downloads.
xferlog_enable=YES # Make sure PORT transfer connections originate from port 20 (ftp-data).
connect_fromport_20=YES # If you want, you can arrange for uploaded anonymous files to be owned # by a different user. Note! Using "root" for uploaded files is not # recommended!
# chown_uploads=YES # chown_us ername=whoever # You may override where the log file goes if you like. The default is # shown below.
#xferlog_file=/var/log/vsftpd.log # If you want, you can have your log file in standard ftpd xferlog format xferlog_std_format=YES # You may change the default value for timing out an idle session.
#idle_session_timeout= # You may change the default value for timing out a data connection.
#data_connection_timeout= # It is recommended that you define on your system a unique user which # the ftp server can use as a totally isolated and unprivileged user.
#nopriv_user=ftpsecure # Enable this and the server will recognise asynchronous ABOR requests.
# Not recommended for security (the code is non-trivial). Not enabling # it, however, may confuse older FTP clients.
#async_abor_enable=YES # By default the server will pretend to allow ASCII mode but in fact # ignore the request. Turn on the below options to have the server # actually do ASCII mangling on files when in ASCII mode.
# Beware that turning on ascii_download_enable enables malicious remote # parties to consume your I/O resources, by issuing the command "SIZE # /big/file" in ASCII mode.
# These ASCII options are split into upload and download because you may # wish to enable ASCII uploads (to prevent uploaded scripts etc. from # breaking),without the DoS risk of SIZE and ASCII downloads. ASCII # mangling should be on the client anyway..
#ascii_upload_enable=YES #ascii_download_enable=YES # You may fully customise the login banner string:
#ftpd_banner=Welcome to blah FTP service.
# You may specify a file of disallowed anonymous e-mail addresses.
# Apparently useful for combatting certain DoS attacks.
#deny_email_enable=YES # (default follows) #banned_email_file=/etc/vsftpd.banned_emails # You may specify an explicit list of local users to enroot() to their # home directory. If chroot_local_user is YES, then this list becomes a # list of users to NOT chroot().
#chroot_list_enable=YES # (default follows) #chroot_list_file=/etc/vsftpd.chroot_list # You may activate the "-R" option to the builtin Is. This is disabled by # default to avoid remote users being able to cause excessive I/O on large # sites. However, some broken FTP clients such as "ncftp" and "mirror" # assume the presence of the "-R" option, so there is a strong case for # enabling it.
#ls_recurse_enable=YES pam_service_name=vsftpd userlist_enable=YES #enable for standalone mode listen=YES tcp_wrappers =YES Настройка общего доступа к дисковому пространству сервера - FTP-сервер 155_ Разберем конфигурационные параметры.
П anonymous_enabie=YES. Разрешает или запрещает доступ к серверу без авторизации. Для нашего сервера желательно устанавливать в NO. В такой конфигурации клиенты получат доступ к любым каталогам файловой системы, для которых такой доступ разрешен, исходя из прав соответствующих локальных пользователей. Это могут быть как домашние каталоги, так и системные каталоги. Если в настройках vsftpd разрешена запись (см. ниже), клиенты получат и все права на запись, которыми располагают эти пользователи.
• iocai_enabie=YES. Разрешает локальным пользователям использовать FTP-сервер.
• write_enabie=YES. Разрешает или запрещает пользователям записывать файлы по FTP. Так же можно ограничивать доступ посредством прав на файлы и каталоги.
• anon_upload_enable=YES И anon_mkdir_write_enable=YES. Если ЭКТИВИровать эти два параметра, анонимные пользователи смогут записывать файлы и создавать новые каталоги. Поскольку нам этого не нужно, то оставляем, как есть.
• xferiog_enabie=YES. Разрешает вести службе журнал: кто и какие файлы скачивал или загружал на сервер.
• connect_from_port_20=YES. Определяет порт, по которому работает FTPсервер.
• banned_email_file=/etc/vsftpd.banned_email. Определяет, Где расположен файл, содержащий текст приветствия.
О chroot_list_enable=YES И chroot_list_file=/etc/vsftpd.chroot_list.
Позволяет ограничить возможность пользователей, зарегистрированных локально, перемещаться по дереву каталогов. При этом процесс, работающий с клиентом, будет выполняться в изолированной среде, и пользователь будет иметь доступ лишь к своему домашнему каталогу и его подкаталогам.
• pam_service_name=vsftpd. Указывает, какой модуль аутентификации используется при авторизации пользователя.
• userlist_enable=YES. Разрешает использование списка пользователей.
Файл etc/vsftpd.ftpusers Этот файл содержит список пользователей, которым ЗАПРЕЩЕНО пользоваться FTP-сервером. Обычно это следующие системные пользователи: root, bin, daemon, adm, lp, sync, shutdown, halt, mail, news, uucp, operator, games, nobody.
Файл etc/vsftpd.user_list Если переменная в конфигурационном файле имеет значение useriist_deny=NO, в этом файле содержатся список пользователей, которым разрешен доступ к FTP-серверу. Если же userlist_deny=YES (именно такое значение по умолчанию), то файл содержит список пользователей, которым запрещено пользоваться FTP-сервером.
Пакет wu-ftp Программный пакет wu-ftp (Washington University at Saint Louis FTP daemon) написан в Вашингтонском университете. Ранее поставлялся вместе с дистрибутивом, сейчас от него отказались. Тем не менее многие продолжают использовать этот пакет и в Webmin есть его поддержка. Для настройки пакета используют несколько конфигурационных файлов.
Файл ftpaccess Этот конфигурационный файл используется для определения прав доступа.
Здесь определяется, какие и сколько пользователей могут получить доступ к серверу, а также важные элементы настройки безопасности. Рассмотрим некоторые конфигурационные параметры, используемые в этом файле.
Управление правами доступа:
• autogroup... — в том случае, если анонимный пользователь является членом указанного класса, то сервер использует заданную группу, что позволяет анонимным пользователям из разных классов получать доступ к различным наборам каталогов;
туп клиентов с указанного адреса с выдачей текста сообщения;
• guestgroup... — если реальный пользователь является членом указанной группы, то с ним поступают так же, как с анонимным.
Вместо имени можно использовать номер группы, перед которым надо поставить знак процента, или интервал номеров, или звездочку для всех групп;
• guestuser... — аналогично guestgroup, НО ИСпользуется имя реального пользователя;
• realgroup... — инвертирует действие guestgroup И guestuser;
• realuser... — инвертирует действие guestgroup И guestuser;
• defumask umask [ ] — задание umask — параметра применяемого при создании файлов;
Настройка общего доступа к дисковому пространству сервера - FTP-сервер • timeout accept — сколько ожидать входного соединения для передачи данных (PASV);
О timeout connect — сколько ожидать установления выходного соединения для передачи данных (PORT);
• timeout data — максимальный период неактивности пользователя при передаче данных;
• timeout idle — сколько ожидать следующей команды;
• timeout maxidie — поскольку клиент имеет возможность установить i d l e самостоятельно, параметр maxidie позволяет установить верхний предел для клиента;
О timeout RFC931 — максимальное время ожидания ответа для протокола ident;
• limit-time { * | anonymous | guest } — ограничение Времени сессии. Реальные пользователи не ограничиваются никогда;
• l o g i n f a i l s — после указанного числа неудачных попыток зайти на сервер, сделать запись в журнале и разорвать соединение.
Выдача сообщений клиенту:
какой текст будет выдаваться в строке приветствия:
• full — имя хоста и версия сервера;
• brief — имя хоста;
• t e r s e — ничего, кроме факта готовности к обслуживанию;
• text — произвольная строка текста;
• banner — определяет текст сообщения, выдаваемого клиенту до ввода имени и пароля;
• hostname — определяет имя хоста по умолчанию (имя локального хоста);
О email — адрес электронной почты администратора;
О message { LOGIN | СШ)= { } } — содержимое файла выдается клиенту при входе или смене каталога;
при входе или смене каталога сервер информирует клиента о наличии указанного файла и дате создания последней модификации.
Журнализация:
О log commands список_типов — записывать в журнал все команды клиента, где список_типов — список через запятую слов r e a l, guest и anonymous;
О log transfers список_типов список_направлений — записывать В Журнал пересылки файлов, где списоктипов — список через запятую слов real, guest И anonymous; список_направлений — С И О через запятую С О incoming И outbound;
П log security список_типов — записывать в журнал нарушения правил безопасности, где список_типов — список через запятую слов r e a l, guest И anonymous;
• log syslog — перенаправлять сообщения о пересылках в syslog вместо файла xferlog;
О log sysiog+xferlog — направлять сообщения о пересылках в syslog и файл xferlog.
Виртуальные серверы:
• daemonaddress ]. Команда формирует список идентификаторов статей для заданной группы новостей, с датой после указанной. Для каждого идентификатора сообщения в списке выделяется одна строка. Список завершается строкой с одиночным символом точки, за которым следует CR+LF. Дата и время задаются в том же формате, что и для команды NEWGROUPS.
Для расширения зоны поиска в имени группы новостей можно использовать символ "*" (звездочка). Программа может подставить вместо звездочки любую комбинацию символов. Если вместо имени группы подставлен символ звездочка, поиск будет проведен по всем группам новостей.