LINUX-сервер пошаговые инструкции инсталляции и настройки - Бруй В. В. , Карлов С. В
..pdfГлава 1. Введение или кому и зачем нужна эта книга |
11 |
Глава 1
Введение или кому и зачем нужна эта книга
В этой главе:
1. Кому нужна эта книга
2.Почему была написана эта книга
3.Пример использования Linux-серверов для организации корпоративной сети
4.Какое программное обеспечение должно быть установлено на сервере
5.Как пользоваться этой книгой
6.Куда обращаться за помощью и технической поддержкой
7.Благодарности
12 |
Введение |
В этой главе содержится важная информация, которая может оказаться незаменимой при принятии решения о необходимости приобретения книги. Кроме того, в первой главе этой книги содержится перечень программного обеспечения необходимого для инсталляции серверов различного назначения и инструкции по использованию этой книги.
Кому и зачем нужна эта книга
Вполне возможно, что эти строки вы читаете по одной из следующих причин:
•в вашем офисе появился канал выделенного доступа в Интернет, и вы не совсем четко представляете, как организовать доступ пользователей локальной сети в Интернет, обеспечив при этом защиту внутренних ресурсов от несанкционированного доступа из вне и установив требуемые ограничения (достаточные для выполнения служебных обязанностей сотрудниками офиса и сводящие к минимуму затраты на оплату услуг доступа в Интернет) на использование внешних ресурсов;
•в вашем офисе необходимо наладить совместное использование сетевых ресурсов (файлов, принтеров) с четким разграничением полномочий различных пользователей и групп пользователей;
•вы, используя имеющийся канал выделенного доступа, хотите организовать представительство вашей компании в Интернет с поддержкой таких служб, как Web-сервер, электронная почта, FTP-сервер и др.;
•вы намерены оградить ваших пользователей от спамерских сообщений, содержащих большое количество никому не нужной информации и отвлекающих их от работы;
•вам необходимо связать в единую сеть локальные сети нескольких офисов, используя сети общего пользования и сохраняя при этом конфиденциальность передаваемой служебной информации;
•имеющиеся в вашем распоряжении сервера не могут обеспечить требуемую производительность при обслуживании клиентских запросов, и вы ищете возможные пути ее повышения при наличии жестких ограничений на объем средств, выделяемых вашей компанией на модернизацию вычислительной техники;
•вы хотите вывести компанию из под удара силовых структур (финансируемых за счет ваших налоговых отчислений в бюджеты различных уровней), руками которых ведущие зарубежные производители программного обеспечения защищают свои права на интеллектуальную собственность, путем замены нелицензионных копий коммерческих программных продуктов на свободно распространяемое программное обеспечение;
•вы просто хотите более детально ознакомиться с операционной системой Linux, оценить её возможности и начать использовать для решения стоящих перед вами задач.
Внашей книге вы найдете ответы на эти и другие вопросы в виде пошаговых инструкций по инсталляции и настройке Linux-сервера. Эти инструкции рассчитаны на то, что в качестве основного варианта инсталляции программного обеспечения используется компиляция из исходных кодов. При таком подходе вы сможете повысить производительность сервера путем:
•уменьшения объема самостоятельно создаваемых исполняемых файлов, программного обеспечения, включая в них только те участки кода, которые действительно необходимы для решения стоящих перед вами задач;
•адаптации исполняемых файлов к архитектуре – типу процессора, дисковой подсистеме – вашего
сервера;
•уменьшения шансов злоумышленников на успешную реализацию деструктивного воздействия за
счет:
а) удаления из исполняемых файлов ненужных для решения ваших задач участков кода, которые могут содержать потенциальные уязвимости; б) оперативного применения патчей, предназначенных для устранения различных уязвимостей, не-
прерывно выявляемых в программном обеспечении Linux-сообществом.
Все рекомендации по инсталляции и настройке программного обеспечения, приведенные в этой книге, протестированы авторами.
Для проверки воспроизводимости приведенных рекомендаций пользователями, не имеющими достаточной квалификации, ряд рекомендаций, касающихся инсталляции и настройки криптографического программного обеспечения, виртуальных частных сетей, сервера баз данных, FTP-сервера и Web-сервера, тестировался школьниками и студентами младших курсов – пользователями сети ЗАО «Инфолайн»
(http://www.infline.ru). При этом все участники тестирования достигли желаемых результатов.
В книге подробно рассмотрены общие вопросы инсталляции операционной системы Linux на серверах различного назначения. Особое внимание уделяется повышению производительности и обеспечению безопасности сервера. В книге:
•приведен перечень инструкций по повышению производительности и обеспечению безопасности
Linux-сервера;
•приведены инструкции по созданию высокопроизводительного и стойкого к деструктивным воздействиям ядра операционной системы.
В книге рассматривается инсталляция (из rpm-пакетов и исходных кодов), типовые варианты настройки и использования:
Глава 1. Введение или кому и зачем нужна эта книга |
13 |
GnuPG, OpenSSL, OpenSSH – криптографического программного обеспечения, используемого для безопасной передачи данных, проверки подлинности и целостности электронных документов, администрирования удаленных систем;
Sudo, sXid, LogSentry, HostSentry, PortSentry, Snort, ucspi-tcp, xinetd, NTP – программного обеспечения для ограничения доступа к серверу, анализа файлов регистрации и обнаружения попыток деструктивного воздействия;
ISC BIND – программного обеспечения для организации службы DNS;
Squid, SquidGuard, VPN-cервер, FreeS/WAN, PPTP-клиент – программного обеспечения, используемого для организации шлюза из локальных сетей в Интернет и объединения локальных сетей с помощью сетей общего пользования;
Exim, Qpopper, SpamAssassin, Doctor Web – программного обеспечения, используемого для организации службы электронной почты с поддержкой фильтрации сообщений, содержащих спам и вирусы;
MySQL – сервера баз данных;
ProFTPD, vsFTPD – программного обеспечения, предназначенного для организации FTP-сервера; Apache HTTP Server, PHP, mod_perl – программного обеспечения, предназначенного для организации
Web-сервера;
Samba – программного обеспечения, используемого для организации совместного доступа к общим сетевым ресурсам (файлам, каталогам и принтерам);
tar – утилиты, используемой для резервного копирования критически важной информации.
Почему была написана эта книга
Первым побудительным мотивом послужило массовое подключение к Интернет жителей города Юбилейного, в котором проживают авторы этой книги. Им пришлось отвечать по несколько раз в день на вопросы знакомых, родственников знакомых, знакомых знакомых и даже не очень знакомых людей, связанные с подключением Linux-систем к VPN-серверу провайдера. В результате одним из авторов этой книги было написано соответствующее руководство, которое было опубликовано на сервере, находящемся внутри сети ЗАО «Инфолайн» и в последующем в библиотеке http://www.linuxportal.ru. После чего количество задаваемых авторам вопросов пользователями городской сети резко сократилось.
Вторым толчком для написания книги послужила объективная необходимость создания некоего корпоративного стандарта, единого для всех организаций, использующих Linux-сервера, и в различной форме взаимодействующих с авторами этой книги. Такой стандарт был разработан и успешно используется в нескольких организациях. При этом количество вопросов, задаваемых авторам сотрудниками этих организаций, и количество нештатных ситуаций также уменьшилось до вполне приемлемого уровня.
Пример использования Linux-серверов для организации корпоративной сети
У читателя может возникнуть вполне естественный вопрос о том, где конкретно могут использоваться сервера с операционной системой Linux, и как они должны быть интегрированы с локальной сетью предприятия и Интернет. Ответ на этот вопрос мы приводим в виде обобщенной схемы организации корпоративной сети, представленной на рис. 1.1.
В рассматриваемом примере корпоративная сеть содержит:
•шлюз, предназначенный для организации доступа пользователей локальной сети к различным ресурсам в Интернет и защиты локальной сети от несанкционированного доступа из вне;
•первичный и вторичный, имеющий независимое подключение к Интернет, DNS-сервера;
•два VPN-сервера, предназначенные для объединения в единую сеть локальных сетей удаленных офисов с использованием сетей общего пользования (Интернет);
•сервер, предназначенный для организации службы электронной почты;
•сервер баз данных;
•FTP-сервер;
•Web-сервер;
•расположенный внутри локальной сети Samba-сервер, предназначенный для организации доступа к общим сетевым ресурсам файлам и принтерам.
Внутри локальной сети также могут находиться дополнительные сервера, используемые для организации служб, функционирующих в пределах локальной сети.
14 |
Введение |
VPN-сервер
Локальная сеть удаленного офиса 

Роутер |
|
Вторичный |
|
Первичный |
|
DNS-сервер |
|
DNS-сервер |
|
|
|
|
|
|
|
|
Интернет |
|
Шлюз |
Роутер |
Web-сервер |
|
|
|
Концентратор |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
FTP-сервер |
|
|
VPN-сервер |
Cервер |
|
|
|
|
|
Cервер |
||||||||||||||
|
службы |
|
|
|
|
|
|
|
||||||||||||||
|
|
|
электронной |
|
|
|
|
баз дан- |
|
|
||||||||||||
|
|
|
почты |
|
|
|
|
|
ных |
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Локальная сеть
Samba-сервер Концентратор 
Принтер
Рис. 1.1. Обобщенная схема организации корпоративной сети предприятия
Глава 1. Введение или кому и зачем нужна эта книга |
15 |
Многие могут заметить, что использование десяти серверов для организации корпоративной сети является очень расточительным и практически не реализуемым по экономическим соображениям для большинства организаций. Скорее всего, это действительно так. Для небольшой компании, имеющей всего лишь один офис, отпадает необходимость в использовании двух VPN-серверов, двух DNS-серверов (поддержка DNS может быть предоставлена поставщиком услуги доступа в Интернет), четырех серверов, предназначенных для организации службы электронной почты, сервера баз данных, FTP и Web-сервера. Для организации интернет-представительства компании в этом случае могут использоваться услуги хостинговых компаний. При этом затраты на оплату услуг хостинга, в зависимости от объема и качества предоставляемых услуг, составят от нескольких сотен до нескольких тысяч рублей в месяц, а в корпоративной сети будет только два сервера – шлюз и Samba-сервер. Дальнейшее сокращение числа используемых серверов – за счет установки программного обеспечения для шлюза и Samba на одном сервере – вряд ли целесообразно, т. к., в случае получения злоумышленником доступа к единственному серверу с соответствующими полномочиями, он получит доступ к информации, находящейся в домашних каталогах пользователей локальной сети и обслуживаемых сервером Samba.
Совместная установка других служб на одном сервере также возможна и позволит существенно сократить затраты на организацию корпоративной сети. Решение о совместной установке служб на одном сервере должно приниматься путем установления разумного компромисса между требованиями по обеспечению безопасности и затратами на приобретение и обслуживание оборудования, необходимого для организации корпоративной сети.
Хотелось бы отметить, что рассматриваемый пример носит иллюстративный характер, необходимый для понимания дальнейшего материала. Более подробно с вопросами, касающимися организации корпоративной сети, вы можете ознакомиться на соответствующих Web-ресурсах и в специальной литературе.
Какое программное обеспечение должно быть установлено на сервере
Любой из рассматриваемых в приведенном примере серверов может быть реализован с использованием операционной системы Linux и соответствующего программного обеспечения. Примерный перечень программного обеспечения, для каждого из рассматриваемых типов серверов, представлен в таблице 1.1. В таблице обозначено:
Да – установка программного обеспечения обязательна.
Опц.- установка программного обеспечения возможна для реализации дополнительных возможно-
стей.
Да1 – на всех серверах, кроме серверов, предназначенных для организации службы DNS и шлюза, рекомендуется установка «облегченного варианта» демона named–lwresd, также входящего в комплект по-
ставки ISC BIND.
Да2 – установка почтового транспортного агента необходима на всех серверах. На серверах, не предназначенных для приема входящих сообщений, возможно использование Sendmail, настроенного только для отправки почтовых сообщений на центральный почтовый концентратор.
Да3 – необходимо установить только один из рассматриваемых в книге FTP-серверов.
Да4 – установка FTP-сервера необходима только, если протокол FTP используется при администрировании сервера.
Как пользоваться этой книгой
В название книги содержится фраза «пошаговые инструкции» – это не рекламный слоган, а характеристика способа изложения материала, который един для всей книги, в том числе, и этой главы.
Поэтому нет ничего удивительного в том, что первой пошаговой инструкцией является инструкция по использованию книги при инсталляции Linux-сервера.
Шаг 1 Сформируйте перечень серверов, необходимых для организации вашего варианта корпоративной се-
ти.
Шаг 2 Сформируйте для каждого сервера список программного обеспечения, руководствуясь вашими по-
требностями и перечнем необходимого для каждого из типов серверов программного обеспечения, представленного в таблице 1.1. В случае установки на сервере программного обеспечения для нескольких служб список необходимого программного обеспечения может быть синтезирован как объединение списков, рекомендованных для каждой из устанавливаемых служб.
16 |
Введение |
Глава 1. Введение или кому и зачем нужна эта книга |
17 |
Шаг 3
Ознакомьтесь с инструкциями по инсталляции операционной системы Linux.
Шаг 4 Ознакомьтесь с инструкциями по инсталляции и настройке программного обеспечения системы сете-
вой защиты.
Шаг 5 Ознакомьтесь с инструкциями по инсталляции и настройке криптографического программного обес-
печения.
Шаг 6 Ознакомьтесь с инструкциями по инсталляции и настройке программного обеспечения для ограниче-
ния доступа к серверу и обнаружения попыток деструктивного воздействия.
Шаг 7 Ознакомьтесь с инструкциями по инсталляции и настройке программного обеспечения, предназна-
ченного для решения целевых задач, перечень которого был сформирован на втором шаге этой инструкции.
Шаг 8 Сформируйте требования, которые должны быть удовлетворены при инсталляции сервера, например,
параметры разбиения диска, перечень опций, используемых при конфигурировании ядра, сетевые настройки и т. п.
Шаг 9
Проинсталлируйте, настройте и протестируйте работоспособность операционной системы Linux, руководствуясь вашими потребностями и инструкциями, изложенными в части 1 настоящей книги.
Шаг 10 Проинсталлируйте, настройте и протестируйте работоспособность программного обеспечения систе-
мы сетевой защиты, руководствуясь вашими потребностями и инструкциями, изложенными в части 2 настоящей книги.
Шаг 11 Проинсталлируйте, настройте и протестируйте работоспособность криптографического программно-
го обеспечения, руководствуясь вашими потребностями и инструкциями, изложенными в части 3 настоящей книги.
Шаг 12 Проинсталлируйте, настройте и протестируйте работоспособность программного обеспечения для ог-
раничения доступа к серверу и обнаружения попыток деструктивного воздействия, руководствуясь вашими потребностями и инструкциями, изложенными в части 4 настоящей книги.
Шаг 13 Проинсталлируйте, настройте и протестируйте работоспособность программного обеспечения пред-
назначенного для решения целевых задач, руководствуясь вашими потребностями и инструкциями, изложенными в частях 5…12 настоящей книги.
Шаг 14 Удалите ненужное на этапе эксплуатации программное обеспечение, используемое для компиляции
исходных кодов, в соответствии с рекомендациями главы 2.
Как уже отмечалось, основным и рекомендуемым способом инсталляции программного обеспечения является компиляция из исходных кодов. Для реализации этого способа необходимо выполнить, как минимум, следующие операции.
Шаг 1
Распакуйте файлы архива arhiv-version.tar.gz в некоторый каталог, например, /var/tmp/:
[root@drwalbr tmp]# tar xzpf arhiv-version.tar.gz
В этом примере для распаковки архива используется утилита tar с опциями: x – предписывает извлечь файлы из архива;
z – указывает на то, что файл архива сжат утилитой gzip;
18 |
Введение |
p – предписывает сохранить при распаковке архива установленные в нем права доступа к файлам и каталогам;
f – указывает на то, что после нее следует только имя распаковываемого архива. После этого перейдите во вновь созданный каталог /var/tmp/arhiv-version:
[root@drwalbr tmp]# cd arhiv-version
Шаг 2 Сконфигурируйте исходные коды программного обеспечения:
[root@drwalbr arhiv-version]# ./configure –-option1 \
–-option2 \
…
--optionN
Команда ./configure конфигурирует исходные коды:
•проверяет наличие на вашей системе библиотек и программ, необходимых для компиляции и нормальной работы устанавливаемого программного обеспечения;
•модифицирует исходные коды программного обеспечения в соответствии со значением параметров –-option1 … --optionN, например, оптимизируя их применительно к архитектуре вашей системы, исключая ненужные вам фрагменты кода, изменяя каталоги, используемые для инсталляции по умолчанию.
В соответствующих разделах этой книги приводится набор опций, необходимый для реализации рассматриваемых вариантов инсталляции программного обеспечения. Вполне возможно, что вам потребуется получить дополнительную информацию об используемых опциях конфигурации исходных кодов. Это мож-
но сделать, воспользовавшись опцией –-help:
[root@drwalbr arhiv-version]# ./configure --help
или просто просмотрев соответствующие фрагменты кода файла configure, где содержатся комментарии, описывающие различные опции, используемые при конфигурации исходных кодов. Например, в файле configure Squid версии 2.5STABLE1 имеется следующий фрагмент:
#Defaults: ac_help=
ac_default_prefix=/usr/local
#Any additions from configure.in: ac_help="$ac_help
--disable-dependency-tracking Speeds up one-time builds --enable-dependency-tracking Do not reject slow dependency extractors"
ac_default_prefix=/usr/local/squid ac_help="$ac_help
--enable-maintainer-mode enable make rules and dependencies not useful
|
(and sometimes confusing) to the casual in- |
staller" |
|
ac_help="$ac_help |
|
--enable-dlmalloc[=LIB] |
Compile & use the malloc package by Doug Lea" |
ac_help="$ac_help |
|
--enable-gnuregex |
Compile GNUregex" |
ac_help="$ac_help --enable-xmalloc-statistics
Show malloc statistics in status page"
В некоторых вариантах инсталляции программного обеспечения, рассматриваемого в этой книге, используется несколько десятков опций для конфигурирования исходных кодов, поэтому для ускорения инсталляции мы предлагаем файлы с именем wk-configure, доступные на сервере http://www.bruy.info. Они содержат текст команды configure c требуемым набором опций. Вы всегда можете отредактировать этот файл в соответствии с вашими потребностями, скопировать его в командную строку и осуществить конфигурацию исходных кодов одним нажатием клавиши <Enter>.
Шаг 3 Откомпилируйте, проинсталлируйте программное обеспечение, создайте и сохраните в надежном
месте список установленных файлов.
Для компиляции исходных кодов используется команда:
[root@drwalbr arhiv-version]# make
Глава 1. Введение или кому и зачем нужна эта книга |
19 |
Перед инсталляцией файлов программного обеспечения необходимо создать и сохранить в некотором файле список всех файлов и каталогов, уже имеющихся на вашей системе:
[root@drwalbr arhiv-version]# find /* > /root/>arhiv1
Инсталляция программного обеспечения может быть осуществлена в автоматическом режиме. Для этого используется команда:
[root@drwalbr arhiv-version]# make install
и вручную, с одновременной установкой требуемых прав доступа:
[root@drwalbr arhiv-version]# install –m 0750 file /path/to/file/new_file
После инсталляции из исполняемых файлов можно удалить комментарии и другую отладочную информацию, используя команду strip. При компиляции и инсталляции могут использоваться и другие команды. С их назначением вы можете ознакомиться, выполнив команду man.
По завершении инсталляции необходимо создать список проинсталлированных файлов. Для этого повторно создайте список файлов и каталогов всех файлов, имеющихся на вашей системе, и сравните его с файлом, созданным до инсталляции. Удалите из полученного списка файлы, имеющие отношение к файловой системе /proc, и сохраните его в надежном месте:
[root@drwalbr arhiv-version]# find /* > /root/>arhiv2
[root@drwalbr arhiv-version]# diff /root/>arhiv1 /root/>arhiv2 >
/very_reliable_place/arhiv.installed.YYYYMMDD
Шаг 4 Удалите более ненужный архив и каталог с исходными кодами:
[root@drwalbr arhiv-version]# cd /var/tmp/
[root@drwalbr tmp]# rm -rf arhiv-version/ [root@drwalbr tmp]# rm -f arhiv-version.tar.gz
Если вы не очень хорошо знакомы с инсталляцией и настройкой программного обеспечения, операции по удалению архива и каталога с исходными кодами лучше выполнить после проведения удачного тестирования инсталлируемого программного обеспечения. Это обусловлено тем, что в каталоге с исходными кодами часто содержится документация, необходимая при настройке соответствующего программного обеспечения. В любом случае архив с исходными кодами лучше сохранить для того, чтобы использовать его в дальнейшем при повторной инсталляции программного обеспечения.
Шаг 5 Настройте программное обеспечение. Настройка осуществляется путем создания и редактирования
соответствующих конфигурационных файлов. Примеры всех конфигурационных файлов, рассматриваемых в этой книге, доступны на сервере http://www.bruy.info. Редактирование конфигурационных файлов можно осуществлять с использованием текстового редактора, например vi.
Шаг 6 Протестируйте работоспособность и функциональность инсталлированного программного обеспече-
ния. В случае необходимости повторно выполните операции по его настройке или инсталляции.
Куда обращаться за помощью и технической поддержкой
Вполне возможно, что при установке программного обеспечения вы не сможете в точности реализовать инструкции, описанные в этой книге из-за ошибок, которые могут возникнуть на любой стадии инсталляции и настройки программного обеспечения. Это может быть обусловлено тем, что приведенные инструкции протестированы только для рассматриваемой в книге версии дистрибутива ядра, соответствующего ему патча Grsecurity и программного обеспечения. В случае возникновения подобной ситуации авторы настоятельно рекомендуют изучить документацию на компоненты инсталлируемого программного обеспечения, отличные от рассматриваемых в книге, особенности используемого дистрибутива (версию ядра, компилятора библиотек, структуры каталогов и т. п.) и разработать собственные инструкции по инсталляции, настройке и тестированию программного обеспечения. Большую помощь для не владеющих английским языком читателей в этом случае могут оказать русскоязычные ресурсы, например,
http://www.opennet.ru, http://www.linuxdoc.ru, http://www.linux.org.ru, http://www.linux.ru, http://www.linuxportal.ru и другие ресурсы, которые могут быть най-
дены с помощью поисковых систем.
В случае неудачного применения на практике самостоятельно разработанной инструкции после подробного изучения документации можно обратиться за получением помощи разработчиков устанавливаемого
20 |
Введение |
программного обеспечения через соответствующие списки рассылки. Обращению к разработчикам должно предшествовать подробное изучение правил, установленных для списков рассылки.
В некоторых случаях очень полезные советы можно получить на различных форумах, посвященных обсуждению Linux и соответствующего программного обеспечения. Перед составлением сообщения нужно ознакомится с правилами, регламентирующими общение пользователей данного форума, и общими рекомендациями по получению консультаций по технической поддержке, содержащихся в документе, разработанном Эриком Раймондом (Eric Raymond) и Риком Мойном (Rick Moen) «Как правильно задавать вопросы»
(http://ln.com.ua/~openxs/articles/smart-questions-ru.html).
Благодарности
Авторы считают необходимым выразить благодарность за помощь в подготовке, оформлении и издании книги исполнительному директору AHO «Секция инженерные проблемы стабильности и конверсии» Росиийской инженерной академии Прошлякову Дмитрию Константиновичу (СИП РИА http://www.sipria.ru), научному консультанту СИП РИА Есину Александру Гавриловичу; заместителю исполнительного директора СИП РИА Пырьеву Владимиру Александровичу, Карловой Марине Васильевне, Усаниной Марине Витальевне.
