Linux глазами хакера

Флёнов Михаил Евгеньевич

Глава 2

Установка и начальная настройка Linux

 

 

Установка всегда была самой сложной процедурой у всех дистрибутивов Linux. Вспоминаются времена, когда нужно было последовательно загружаться с нескольких дискет, а потом следовать сложным инструкциям или самостоятельно набирать команды Linux, которые уже надо было знать.

Еще одна непростая задача — разбиение дисков на разделы. Их нужно иметь как минимум два (основной и раздел подкачки). Проблема в том, что многие боятся манипулировать с дисками, особенно с теми, на которых уже есть информация. И это правильно, потому что были примеры, связанные со случайной потерей данных.

Во время инсталляции любая ОС должна определить установленное оборудование и подготовить все необходимое для его нормальной работы. Еще семь лет назад перечень поддерживаемых устройств можно было просмотреть за несколько минут, т.к. многие производители игнорировали Linux, не писали необходимые драйверы и при этом не давали нужной информации. Сейчас чтение такого списка займет дни, потому что все крупные игроки компьютерного мира начали считаться с пингвином (животное, которое ассоциируют с Linux). Определение оборудования теперь происходит безошибочно и, чаще всего, не требует дополнительного вмешательства со стороны пользователя.

В настоящее время вся инсталляция происходит практически автоматически и сравнима по сложности с установкой других ОС. Именно поэтому корпорация Microsoft начинает бояться Linux и ее продвижения в бездну домашних компьютеров. Теперь уже любой, даже начинающий пользователь справится с установкой. И все же мы бегло рассмотрим этот процесс и остановимся на наиболее интересных моментах.

Если вы уже имеете опыт установки Linux, я все же рекомендую вам прочитать эту главу, потому что некоторые детали могут оказаться интересными и полезными. Основные принципы безопасности и производительности закладываются уже на этапе установки, и впоследствии мы будем только следовать им и расширять наши познания.

 

2.1. Подготовка к установке

Какой дистрибутив устанавливать? Я не могу ничего советовать, потому что выбор всегда остается за вами. Отдайте предпочтение тому, который удовлетворяет вашим потребностям и может решить поставленные задачи. В разд. 1.5 мы рассмотрели наиболее популярные на данный момент дистрибутивы и их основные отличия, что облегчит вам принятие правильного решения.

Единственное замечание, которое я должен сделать, — устанавливайте самый свежий дистрибутив, включающий последнюю версию ядра и приложений. Мы говорили и будем еще не раз повторять, что во всех программах есть ошибки, просто в новой версии о них никто еще не знает ☺. Кроме того, надо помнить, что программные средства необходимо своевременно обновлять. Если воспользоваться старым дистрибутивом, то объем обновлений может оказаться слишком велик. Не лучше ли установить сразу все новое и максимально быстро запустить сервер в эксплуатацию.

Мастера установок для разных дистрибутивов могут отличаться, но все они, как правило, имеют схожие окна и даже последовательность выполняемых действий зачастую одинакова.

Итак, приступим к рассмотрению процесса установки. Первое, что нужно сделать, — это определить место, где будет располагаться ОС. Если у вас новый компьютер, жесткий диск не разбит на части, и вы будете использовать только Linux, то во время установки просто отведите под нее все доступное пространство.

Если у вас уже установлена Windows, и вы хотите, чтобы на компьютере было сразу две ОС, то придется сделать несколько телодвижений. Для этого нужно пустое пространство на диске. Нет, это не свободное место на логическом диске С:, а пустота на винчестере. В последних инсталляционных версиях есть возможность изменять размер диска прямо в программе установки. В противном случае придется воспользоваться программой Partition Magic (http://www.powerquest.com/partitionmagic).

Запустите Partition Magic. Главное окно программы вы можете увидеть на рис. 2.1. Слева находится дерево, в котором отображаются все жесткие диски, установленные в системе. В данном случае имеется только один диск, внутри которого создан основной раздел С:, занимающий полное пространство. В правой части окна есть графическое представление соотношения занятого (отображается более темным цветом) и свободного пространства, в рамках которого и можно освобождать диск.

Рис. 2.1. Главное окно программы Partition Magic

Наша задача уменьшить логический диск С:, чтобы на высвободившемся месте ставить Linux.

Выделите диск С: в дереве или в графическом представлении, нажмите кнопку Resize partitions, и перед вами появится окно, в котором можно указать новый размер выбранного диска. Для Linux желательно освободить не менее 4 Гбайт, а лучше и больше. Если ваш диск был размером 20 Гбайт, то укажите в качестве нового значения 16, и у вас освободятся требуемые 4 Гбайта. Чтобы применить трансформацию, нужно нажать кнопку Exit. Программа запросит подтверждение на внесение изменений и может предупредить о необходимости перезагрузиться в DOS-режим. Соглашайтесь. Все дальнейшие действия произойдут автоматически, и в следующий раз Windows начнет работу с уже уменьшенным диском.

 

2.2. Начало установки

Итак, свободное место на диске у нас уже есть. Теперь можно приступить к запуску инсталлятора. Для этого вставьте диск в CD-ROM и перезагрузите компьютер. Если в BIOS (Basic Input/Output System, базовая система ввода/вывода) не поставлена загрузка с CD-ROM, то самое время сделать это, тогда при старте компьютера автоматически запустится процедура установки. Вначале на экране побегут строчки тестирования компьютера, установленных жестких дисков, CD-ROM, мыши, видеокарты, монитора и т.д. На первый взгляд весь текст, который вы будете видеть, весьма жуткий и отпугивающий. Но это только кажется. ОС Windows также тестирует систему, просто ничего не показывает пользователю. Если слишком страшно, то закройте глаза, через минуту все пройдет.

Опросив оборудование, программа установки Linux перейдет в графический режим, и перед вами появится приятное окно выбора языка. Мы пока разговариваем на русском, поэтому укажем его и нажмем кнопку Далее.

На втором этапе нужно выбрать мышь (рис. 2.2). Программа установки не сильно доверяет своему исследованию внешних устройств, и правильно делает. У меня почти всегда определяется двухкнопочная мышь PS/2. Третью кнопку Linux даже не пытается искать. В принципе это нормальная ситуация, потому что в Linux почти везде используются две кнопки, но я всегда ставлю третью.

Рис. 2.2. Подтверждение правильности определения мыши

Окно подтверждения мыши содержит два взаимосвязанных списка: производители и соответствующие ему известные типы устройства. Чтобы не забивать себе голову, остановитесь на производителе Generic (общие настройки, которые будут работать с устройствами любого производителя), а в правом списке выберите строку с желаемым количеством кнопок и нужным портом. Подключение для мыши указано в скобках и на данный момент может быть трех типов:

□ PS/2 — современный порт для подключения устройств ввода (клавиатура, мышь);

□ USB — универсальный интерфейс, используется для различных устройств, встречается все чаще и чаще;

□ Serial — в народе известен еще и как COM-порт, встречается в старых мышках. Сейчас такой антиквариат найти уже сложно.

На следующем шаге вам предлагается выбрать один из трех вариантов установки:

□ Быстрая — конфигурация определена производителем. Таким образом вы сократите количество вопросов, на которые надо ответить во время установки, но результат будет далек от оптимального или безопасного.

□ Выборочная — позволяет самостоятельно указать желаемые компоненты. Наиболее предпочтительный вариант для серверов и компьютеров, которые будут подключены к сети.

□ Обновление существующей версии — используется при уже установленной Linux. Это позволит потратить меньше времени на повторную настройку.

Затем следует указать, где находятся файлы установки. Так как мы загрузились с инсталляционного диска, то, конечно же, нужно выбрать пункт CD-ROM. Современные версии Linux можно легко установить и с жесткого диска, и по сети.

Следующий этап — выбор диска, куда нужно устанавливать ОС. Это отдельная песня с бубнами и флейтой, которая может вызвать затруднения, поэтому я постараюсь остановиться на этом шаге более подробно.

 

2.3. Разбивка диска

 

В ASPLinux предусмотрено три варианта использования дискового пространства для размещения ОС:

1. Весь диск. В этом случае все существующие разделы будут уничтожены, а значит, вся информация будет потеряна. Этот вариант удобен, если вы устанавливаете единственную ОС на новый компьютер. Программа установки сама выберет, сколько места и для чего отвести.

2. Свободное место. Если на компьютере уже есть установленная ОС, и вы освобождали пустое пространство с помощью Partition magic, то выбирайте этот пункт. Программа установки создаст диски для Linux, исходя из свободного пространства на жестком диске.

3. Дополнительно. Дает возможность самостоятельно выбрать параметры создаваемых дисков. Этот вариант наиболее сложный, но позволяет добиться максимально эффективных и безопасных результатов.

 

2.3.1. Именование дисков

В Linux диски нумеруются не так, как мы привыкли в Windows. Здесь нет диска А:, С: и т.д. Все диски имеют имена /dev/hdaX, где X — это номер диска. Поясню, в каком диапазоне должны быть номера. Для первого жесткого диска назначается цифра 1 (/dev/hda1), для второго — 2 и т.д. до 4, потому что всего в компьютере может быть установлено 4 жестких диска (хотя в современных серверах используются намного большие массивы). Затем идут логические диски: /dev/hda5, /dev/hda6 и т.д.

На первый взгляд это сложно, но давайте рассмотрим пример, и все встанет на свои места. Допустим, что у вас есть два жестких диска. Первый из них разбит на два раздела, назовем их А — основной и В — дополнительный. На втором диске у нас будет один большой раздел С. Теперь посмотрим, какие имена назначит этим дискам ОС Linux:

А — /dev/hda1;

С — /dev/hda2;

В — /dev/hda5.

Основной раздел первого диска получил номер 1. Цифра 2 присвоена основному разделу второго диска. Дополнительный раздел первого диска имеет номер 5. Если бы на втором диске были дополнительные разделы, то они получили номера, начиная с б. Как видите, значения 3 и 4 остались свободными, потому что у нас только два жестких диска.

 

2.3.2. Файловые системы

Теперь поговорим о файловых системах, с которыми работает Linux. Эта ОС поддерживает множество систем, в том числе и Windows-файловые системы FAT, FAT32 и NTFS, но при установке ОС Linux желательно выбрать родную систему Ext2, Ext3 или ReiserFS (это название часто сокращают до Reiser). Последняя является новинкой и наиболее предпочтительна, потому что включает журналирование, которое делает систему более устойчивой и позволяет быстро восстанавливать ее после сбоев.

Рассмотрим, как работают файловые системы, чтобы вы смогли выбрать оптимальный вариант. В файловой системе Ext2 данные сначала кэшируются и только потом записываются на диск, за счет этого достигается высокая производительность. Но если возникнут проблемы с питанием или произойдет аварийный выход из системы, то компьютер может не успеть сохранить данные. При следующем входе ОС обнаружит нарушение целостности жесткого диска и запустится программа сканирования диска fsck (как scandisk в Windows), которая восстановит его работоспособность, но воссоздать утерянные данные уже не удастся. Сканирование занимает много времени, и это может сказаться на скорости возобновления работы сервера. Будьте готовы к тому, что следующая загрузка будет происходить дольше обычного.

В файловой системе ReiserFS также выполняется запись с предварительным кэшированием, а после этого проверка целостности данных, и если все записано верно, то кэш очищается. В противном случае ОС при запуске быстро найдет проблемные места с помощью созданного журнала и с минимальными потерями времени восстановит работоспособность диска.

У файловой системы ReiserFS есть еще одно преимущество. Данные на жесткий диск записываются блочно. Допустим, что блок занимает 1 Кбайт. Если, например, в FAT32 записать файл размером 0,1 Кбайт, то блок будет уже занят, но в нем останется 90 % пустого пространства, которое нельзя использовать, т.е. происходит утечка памяти на жестком диске. Таким образом, на нем будет храниться немного меньше информации, чем вы ожидали. Файловая система RaiserFS позволяет лучше заполнять блоки.

Утечку наглядно можно увидеть, если в ОС Windows открыть Свойства файла (рис. 2.3). Обратите внимание, что в окне есть два параметра Size (Размер) и Size on disk (Размер на диске). Величина файла 4,95 Кбайт, а на диске он занимает целых 8 Кбайт. Арифметика простая, понятно, что один кластер на диске равен 4 Кбайтам. Размер файла больше этого значения, поэтому ОС пришлось выделить два блока, и второй заполнен менее чем на 25%. Остальное дисковое пространство пропало и не может использоваться.

Рис. 2.3. Окно свойств файла

Если на диск поместить 1000 файлов по 100 байт при размере кластера 4 Кбайта, то каждый из них запишется в свой блок. При этом на диске будет израсходовано 400 Кбайт вместо положенных 100. Потери пространства составят 75%.

Файловая система ReiserFS позволяет записывать в один блок несколько файлов, если их размер менее 100 байт. Таким образом, на диске будет меньше дыр и утечки памяти.

Файловая система Ext3 — новое поколение журналируемых систем и работает по аналогии с ReiserFS. На данный момент она является системой по умолчанию в большинстве современных дистрибутивов Linux. Трудно сравнить по производительности ReiserFS и Ext3, но с точки зрения надежности советую использовать вторую. Стоит согласиться с мнением разработчиков.

 

2.3.3. Ручное создание разделов

Если вы настраиваете сервер, а не домашний компьютер, то я настоятельно рекомендую создать разделы вручную. По умолчанию программа установки создаст только два раздела — основной и для файла подкачки (будет использоваться при нехватке оперативной памяти), это неэффективно и даже небезопасно. Итак, выбираем параметр Дополнительно, чтобы самостоятельно создать разделы. Перед вами откроется окно, как на рис. 2.4.

Рис. 2.4. Окно управления разделами

Вверху окна находится выпадающий список (Диск), где можно указать диск, на котором нужно создать раздел. В данном случае выбран диск /dev/hda. Чуть ниже расположена таблица созданных на этом диске разделов. Как видно из рис. 2.4, пока разделов нет и все пространство пустое.

С уже существующими разделами можно делать следующие операции: изменять параметры, копировать, двигать и удалять. Для этого щелкните мышью на интересующем разделе и нажмите соответствующую кнопку внизу окна.

Для создания диска нужно выделить строку пустого пространства и нажать кнопку Создать. Перед вами появится окно, как на рис. 2.5.

Рис. 2.5. Окно создания раздела

В выпадающем списке Тип файловой системы можно выбрать один из предложенных видов. Некоторые из этих систем (Ext3, Ext2, Reiser) мы уже рассмотрели в разд. 2.3.2. Познакомимся с остальными:

□ XFS — устаревшая система, поддерживающая диски до 2 Гбайт и максимальный размер файла в 64 Мбайта;

□ Swap — используется только для разделов подкачки, о которых поговорим чуть ниже;

□ RAID — в данной книге мы эту тему затрагивать не будем.

Чуть ниже расположена полоска, с помощью которой можно указать размер будущего диска простым перетаскиванием ее мышью. Для любителей работать руками есть возможность задать размер явным образом в поле Размер (вводится число в мегабайтах).

В выпадающем списке Точка монт. можно указать точку (папку), которая будет храниться в данном разделе.

В табл. 2.1 перечислены разделы, которые можно создавать, и их назначение. В различных дистрибутивах некоторые из этих разделов могут отсутствовать.

Таблица 2.1. Разделы, которые можно создать

Раздел Описание
/ Основной раздел. Если в Windows при указании пути к файлу сначала указывается имя диска, а потом папки внутри него, то здесь началом является слэш
/bin Основные исполняемые файлы системы
/boot Файлы, необходимые для загрузки системы
/dev Представления для подключенных устройств
/etc Конфигурационные системные файлы
/home Пользовательские папки и файлы
/lib Библиотеки ядра ОС
/opt Дополнительные программные пакеты
/proc Для монтирования виртуальной файловой системы
/sbin Исполняемые файлы главного пользователя (root)
/tmp Временные файлы
/usr Системные файлы
/var Журналы, буферные или заблокированные файлы
Swap Раздел подкачки

Обратите внимание, что все имена разделов, кроме первого и последнего, начинаются со слэша. Это неслучайно, потому что первый и последний разделы являются обязательными, а все остальные представлены как вложенные в основной раздел папки.

Swap — это всегда отдельный раздел со своей файловой системой и не может быть представлен в виде папки корневого диска. Размер этого раздела должен быть не меньше объема доступной оперативной памяти. Если у вас достаточно места на жестком диске, то я советую сделать Swap в 3 раза больше, чем установленное ОЗУ, потому что память может быть расширена, а вот файл подкачки потом изменить будет проблематично.

Для работы Linux нужно создать как минимум два раздела: основной (обозначается как /) и подкачки (Swap). Первый раздел может иметь любой тип файловой системы, кроме Swap, а второй как раз наоборот, должен быть типа Swap. В основном разделе будут располагаться все файлы, а второй — будет использоваться для расширения оперативной памяти. Если остальные разделы, перечисленные в табл. 2.1, не созданы, то они будут представлены в основном разделе в виде папок.

На первый взгляд, все сложно, особенно если вы до этого работали только с ОС Windows. Но поверьте мне, что возможность создания многочисленных папок ОС в виде отдельных разделов является действительно мощной возможностью. Два раздела достаточно, когда у вас только один жесткий диск и компьютер используется в качестве домашней системы. Если вы используете два винчестера, то лучше создать три раздела:

□ / — на первом диске для всех системных файлов;

□ Swap — на первом диске, будет использоваться при нехватке памяти;

□ /home — на втором диске для хранения пользовательских файлов.

Диски желательно подключить к разным контроллерам ("посадить" на различные шлейфы), что позволит системе работать с устройствами практически параллельно. Это может значительно повысить производительность ОС, потому что Linux сможет работать с системными и пользовательскими файлами одновременно.

Если вы настраиваете сервер, то на отдельные жесткие диски можно вынести папки /home и /var. Логические диски/разделы в этом случае не дадут желаемого результата.

Какими должны быть разделы? Swap нужно задавать в зависимости от установленной памяти, и об этом мы уже говорили чуть раньше. Если разделы /var и /home вынесены на отдельные диски, то для корневого каталога будет достаточно 4 Гбайт, но можно сделать и больше.

На разделе /var тоже лучше не экономить и выделить ему 10 Гбайт. Здесь будут храниться файлы журналов, WWW- и FTP-файлы, которые быстро увеличиваются, и если они заполнят все доступное пространство, то система может выйти из строя или просто станет недоступной. Именно на это иногда рассчитывают хакеры, когда организуют атаку "Отказ от обслуживания" (DoS). К этому вопросу мы еще не раз будем возвращаться. Некоторые специалисты по безопасности рекомендуют располагать этот раздел на самом большом диске (чаще всего там же содержится и раздел /home), но это ударит по производительности. Когда журналы находятся на отдельном диске, то это позволяет выполнять запись в них параллельно с обслуживанием остальных разделов. Это значит, что пользователь работает со своими файлами с разделом /home на одном жестком диске, а другой винчестер в это время сохраняет всю информацию об активности пользователя. Если обе папки будут на одном диске, то запись не сможет быть параллельной.

Ориентируйтесь на свои технические средства. При необходимости разделы /var и /home действительно можно разместить на одном, но самом большем жестком диске. Только вот под раздел /home нужно отдавать все оставшееся пространство, потому что здесь пользователи будут хранить свои данные (достигают большого объема!), и если пожадничать, то скоро начнутся возмущения со стороны пользователей о нереальности сохранения на сервере результатов очередной игры. Если возможность есть, то выделите каждому из разделов максимально большой диск и забудете про проблемы.

Для тестовой системы можно выбрать простейший вариант с двумя разделами (корневой и подкачки) и продолжить установку.

Следующий шаг после создания всех разделов — их форматирование. Некоторые особо умные дистрибутивы выполняют эту операцию без дополнительных вопросов.

 

2.4. Выбор пакетов для установки

Следующий этап заключается в определении компонентов, которые надо устанавливать. Это достаточно интересный момент, и именно здесь обычно допускают первую и самую страшную ошибку — указывают все. Да, названия и назначение многих пакетов непонятны и незнакомы большей части пользователей, поэтому начинающие не могут четко определить список того, что им необходимо. Но это не значит, что нужно устанавливать все подряд.

У меня на отладочной системе действительно стоит Linux в полной комплектации со всем, что только можно. На ней я тестирую новые программы и проверяю работоспособность отдельных модулей. Но в "боевых" системах не устанавливаю ничего лишнего.

Любой дистрибутив Linux включает в себя невероятное множество программ, особенно серверных. Тут и Web-сервер, и FTP, и многое другое. Установив все, мы делаем свой компьютер "проходным двором", особенно если все это активизируется при старте системы. Загрузка компьютера замедлится и станет сравнима с запуском Windows XP на Pentium 100.

В ОС будет открыто множество портов и заработают разнообразные сервисы, в которых мы пока еще даже не разбирались. А ведь нет идеальных программ. Везде существуют ошибки, которые регулярно обнаруживаются и исправляются. Если хотя бы в одном демоне (серверная программа, которая обрабатывает запросы клиента) найдется погрешность, то любой хакер сможет проникнуть в вашу систему и делать в ней все, что вздумается.

Для рабочей системы я всегда устанавливаю абсолютно голую ОС, а затем добавляю только то, что нужно, особенно это касается серверных программ. Нарастить компоненты можно в любой момент, а вот отказаться от существующих порой бывает очень сложно.

Итак, Linux предлагает нам выбрать один из следующих вариантов установки:

□ Типовая — включает приложения, которые разработчик посчитал часто используемыми;

□ Разработка — будут установлены основные пакеты и все необходимые компоненты для разработки приложений, компиляции ядра ОС Linux и т.д.;

□ Офис — типовые пакеты плюс офисные приложения;

□ Сервер — только ОС и демоны;

□ Пользовательский — вы сами можете сформировать нужный список.

Никогда не выбирайте серверную установку. В этом случае на компьютере отсутствуют клиентские приложения, но зато будут работать в фоновом режиме всевозможные программы-демоны. Это как раз самый опасный вариант. Если офисные программы не открывают портов, не работают с сетью (т.е. не могут нанести ущерб серверу извне), а также не загружаются в память при старте и не влияют на производительность, то серверные приложения тормозят систему, и каждый лишний демон — это удар по безопасности.

Я рекомендую остановить свой выбор на пункте Разработка, чтобы у нас были все необходимые возможности для написания программ и работы с документами, но при этом в компьютере не устанавливались серверные приложения. После определения типа инсталляции укажите пункт Выборочно внизу окна. Это позволит вам выбрать дополнительно требуемые пакеты.

На следующем этапе мы увидим список всех компонентов, которые могут быть установлены. По умолчанию в списке нет выделенных серверных программ (и не надо). Но если заранее известно о необходимости какого-либо сервера, то можно его отметить, чтобы он автоматически установился. Допустим, вы знаете, что вам обязательно понадобится Web-сервер. Для этого чаще всего используют Apache. Найдите в дереве компонентов пункт Web Server, раскройте его и поставьте галочку напротив apache (основные файлы сервера) и apacheconf (программа настройки). Если вы будете писать программы на языке PHP, то здесь же можно выбрать все необходимые компоненты для такой разработки.

Не пожалейте времени и пройдитесь по всем имеющимся в списке пакетам. Выберите только самое необходимое, впоследствии в любой момент мы сможем расширить возможности. Помните, что уже на этапе установки мы закладываем фундамент будущей производительности и безопасности системы.

Не устанавливайте ничего лишнего. Если вы не пользуетесь какой-либо программой, то, конечно же, не будете следить за ее обновлениями и не станете заниматься исправлениями ошибок. Для повышения своих привилегий злоумышленник сможет воспользоваться и такой программой. Таким образом, вы откроете нараспашку дверь хакеру.

Когда вы выберете все необходимые пакеты и нажмете кнопку Далее, начнется их непосредственное копирование на жесткий диск. Это займет достаточно много времени, поэтому можно приготовить чашечку кофе или даже успеть посмотреть какой-нибудь фильм.

Пока идет установка, поговорим еще немного об этом процессе, чтобы к моменту настройки системы вы были во всеоружии. Допустим, что в вашей сети должны работать три сервера: Web-, FTP- и сервер новостей. Все эти функции может выполнять один компьютер, но безопасность в этом случае будет далека от идеала. Я всегда разношу каждую задачу на отдельные компьютеры и вам советую не экономить на железе и делать то же самое.

Каждый запущенный демон — это потенциальная дыра. Как мы уже знаем, в них неизменно существуют погрешности, и не всегда администраторы узнают о них первыми. Допустим, что ошибка найдена в сервере Apache. В последнее время это происходит достаточно редко, потому что программа уже очень хорошо отлажена, но представим эту ситуацию. Ошибка может быть не в самом сервере Apache, а в обслуживаемом им Web-сайте или в интерпретаторе PHP/Perl. В любом случае хакер может воспользоваться этой брешью и с легкостью получит доступ к FTP-серверу и скачает все секретные данные. Если на данном компьютере будет работать только сервер, то доступ через FTP к конфиденциальным данным будет проблематичен. Максимум, что может сделать хакер, — дефейс (замена главной страницы) или уничтожение сайта. Но это восстановить проще, чем воссоздавать все данные с FTP- или сервера новостей.

Чтобы злоумышленник не смог, взломав один компьютер, проникнуть на другой, вы должны задавать для каждого из них разные пароли. Некоторые администраторы ленятся запоминать много сложных комбинаций, поэтому придумывают только один пароль и потом устанавливают его везде, где только можно. О паролях мы еще поговорим в гл. 4, но уже сейчас вы должны знать, что для каждой системы должен быть свой код доступа.

Но не только демоны являются потенциальной проблемой. В состав Linux многие программы включаются в исходных кодах и должны компилироваться в машинные перед выполнением. Программы, использующие уязвимости Linux-систем, также поставляются в исходниках. Для того чтобы ими воспользоваться, злоумышленник закачивает такой модуль на сервер и выполняет программу. Чтобы компиляция стала невозможной, я рекомендую не устанавливать библиотеки разработчика и компилятор gcc.

В ОС Linux очень редко используются инсталляторы программ, поэтому все настройки производятся во время компиляции исходного кода. Если gcc будет недоступней, то у взломщика возникнут проблемы с выполнением зловредного кода.

Конечно же, опытный хакер соберет программу из исходных кодов на своем компьютере и после этого закачает на взломанный сервер, но у начинающего злоумышленника отсутствие компилятора может вызвать затруднения. А ведь каждая проблема для взломщика — это победа специалиста по безопасности.

Если вы только осваиваетесь в мире Linux, то я могу посоветовать установить linuxconf — это пакет программ, упрощающий администрирование и включенный в поставку. Во время изучения Linux вы увидите, что очень много настроек приходится делать в конфигурационных файлах вручную. Это не обязательно, т.к. сейчас существует большое количество программ, упрощающих настройку и имеющих визуальный интерфейс.

Если вы можете обойтись без linuxconf, то лучше настраивать файлы вручную. Программы с визуальным интерфейсом нередко вносят в конфигурацию далеко небезопасные параметры или устанавливают высокие права доступа для сервисов. Поэтому после работы linuxconf не мешает проверить внесенные программой изменения, а для этого вы должны отлично знать структуру и содержание конфигурационных файлов.

 

2.5. Завершение установки

После завершения копирования файлов на диск нужно разобраться еще с несколькими настройками. Во-первых, система должна знать, как вы ее будете загружать. Если Windows без разговоров прописывает загрузку в MBR (Master Boot Record, основная загрузочная запись), то Linux позволяет выбрать любой другой диск или вообще его не прописывать. В этом случае читать Linux можно будет только с дискеты или некоторыми другими мудреными способами.

В Linux есть множество загрузчиков, в моем дистрибутиве есть выбор между LILO (Linux Loader), GRUB (Grand Unified Bootloader) или ASP Loader (фирменный загрузчик ASP, который отличается от LILO только красотой). Я рекомендую выбрать LILO, хотя возможностей у него меньше, чем у GRUB, но их достаточно, и в настройке он проще. Устанавливайте его в MBR, если нет особой надобности загружать систему с дискеты.

Загрузчик при старте системы позволит выбрать, какую именно операционную систему вы хотите использовать: Windows, если он установлен на компьютере, или Linux (или любое его ядро, если их несколько).

Внизу окна (рис. 2.6) можно установить флажок Создать загрузочную дискету. Я рекомендую обязательно сделать это, если вы выбрали тип установки не в MBR. Загрузочная дискета может спасти, если загрузчик испорчен на диске или вообще отсутствует.

Рис. 2.6. Установка загрузчика Linux

Двигаемся дальше. При наличии сетевой карты в компьютере вы увидите окно для ее выбора. Если нужный драйвер в списке не найдется, то можно оставить значение none. Это не значит, что сетевая карта не заработает, просто будет использоваться универсальный драйвер. В дальнейшем я рекомендую установить корректные драйверы, чтобы заставить сетевую карту работать на все 100%.

На следующем шаге задаются сетевые настройки. Если в вашей сети используется единственный DHCP-сервер, то можно оставить все по умолчанию. Если в вашей сети несколько серверов или есть необходимость расставить адреса вручную, то уберите галочку в пункте Настроить с помощью DHCP.

Если вы не знаете, как работает протокол TCP/IP, то в качестве адреса для примера можете указать 192.168.77.1. Перейдите в поле Шлюз, и все остальные параметры будут заполнены автоматически. В поле Маска должно быть значение 255.255.255.0. В разд. 3.6 мы поговорим о настройке сети, и вы узнаете, как можно изменить параметры подключения. В поле Имя хоста укажите имя, которое вы хотите задать своему компьютеру.

Последнее, что необходимо сделать, — это настроить вашу видеокарту для правильной работы в графическом режиме Windows. На рис. 2.7 показано окно мастера, позволяющего задать параметры видео. Ваша задача правильно выбрать видеокарту и характеристики экрана. Если вы ошибетесь, то сразу же познакомитесь с командной строкой Linux, но все же сможете решить проблему (в разд. 2.7 мы рассмотрим этот вариант).

Рис. 2.7. Окно настройки видео

Не забудьте нажать кнопку Тестировать, чтобы проверить установленные настройки. Если все прошло удачно, можно поставить галочку в поле Использовать графический ввод, что позволит вам очутиться в приятном графическом мире Linux.

 

2.6. Пароль

Последнее, что нам нужно указать, — это пароль администратора системы (root). В Linux, как и в Windows XP Professional (не путать с Home Edition), нельзя входить без пароля, подобно Windows 9x. Вы обязательно должны указать имя пользователя и пароль, под которым будете работать, и в зависимости от ваших прав вам будет предоставляться доступ к определенным разделам и функциям ОС (рис. 2.8).

Рис. 2.8. Окно задания пароля

Программа установки проверяет только длину пароля, и для администратора эта величина должна быть не менее 6 символов. Так как пользователь root имеет полные права на систему, то пароль должен быть как можно более сложным, чтобы его нельзя было быстро подобрать.

Все специалисты по компьютерной безопасности в один голос просят пользователей не задавать простые пароли, но мало кто следует этим рекомендациям. Нельзя для этих целей использовать имена, читаемые слова или даты рождения. Такие пароли легко взламываются простым перебором по словарю, и это не отнимет много времени, если словарь хорошо составлен.

При создании пароля желательно генерировать случайные шифры, в которых будут символы разного регистра (прописные и строчные буквы), а также цифры и различные допустимые символы (например, тире или подчеркивание). Длина пароля должна быть не менее 8 символов, а лучше более 12. Тогда для подбора хакеру потребуется намного больше времени.

Когда нужно сгенерировать пароль, я запускаю какой-нибудь текстовый редактор и случайным образом набираю на клавиатуре любые символы в разном регистре. Как теперь использовать такую комбинацию? Лучше потратить пару дней на усвоение сложного пароля, чем лишиться важных данных.

Если не хочется запоминать что-то сверхсложное, то можно применить метод попроще, но и надежность полученного шифра будет ниже. Рассмотрим очень интересный способ генерации случайных паролей. Допустим, что вы хотите использовать слово generation. А что, оно достаточно длинное, но простое и может быть легко взломано по словарю. Как усложнить пароль? Посмотрите на клавиатуру и набирайте вместо букв слова generation символы, находящиеся немного выше. Например, прямо над "g" находится "t", а над "е" — "3" и т.д. Таким образом получится пароль t3h34q589h. Такой пароль запоминается легко, и по словарю подобрать его сложнее.

Вместо верхних можно взять буквы, находящиеся справа, и тогда пароль generation превратится в hrmrtsypm. Тоже нелегкая задача для хакера.

А если еще набрать некоторые из этих букв в верхнем регистре, то пароль усложнится сразу в два раза. Например, вы можете установить в верхнем регистре третью и восьмую буквы и получить hrMrtsyPm.

Вот таким простым способом можно соорудить легко запоминаемый, но сложный для подбора пароль.

Помимо этого вам предлагается завести новую учетную запись (добавить пользователя), под которой вы будете в дальнейшем работать с системой. Конечно же, можно использовать и root, но это не рекомендуется. Даже администраторы должны входить в систему как простые пользователи (возможно, с небольшим завышением прав на доступ к необходимым объектам) и только при крайней надобности переключаться на учетную запись root.

На этом установка завершена и можно перезагружать компьютер, вытащив CD-диски из привода.

 

2.7. Первый старт

При старте компьютера пока все будет происходить по-старому: тестирование памяти, определение дисков, отображение информации о системе. И вот тут появится окно загрузчика Linux, который мы определили в разд. 2.5 (рис. 2.9).

Рис. 2.9. Окно выбора варианта загрузки

В моем случае ОС устанавливалась на чистый компьютер, и возможны только два варианта: запустить Linux и загрузиться с дискеты. Впоследствии у вас может быть несколько ядер Linux, тогда список для выбора будет шире. Если у вас была установлена ОС Windows, то в этом окне можно будет увидеть еще и строку загрузки Windows. Таким образом, на одном компьютере могут вполне мирно существовать Windows и Linux. Хотя надо заметить, что Windows XP и старые загрузчики Linux не дружат. Видимо, XP не хотел терпеть конкурентов на одном компьютере и убивал LILO. Сейчас загрузчики Linux стали умнее и не дают себя в обиду.

В некоторых дистрибутивах, в том числе и Red Hat, еще можно встретить командный вид приглашения для загрузки системы. После старта компьютера появляется строка для ввода необходимой ОС:

LILO boot:

Если при установке вы выбрали загрузку Linux по умолчанию, то достаточно нажать клавишу , иначе необходимо набрать на клавиатуре заголовок загружаемой ОС (в данном случае это будет слово "linux") и после этого уже нажать . Вместо набора имени загружаемой системы можно его выбрать, воспользовавшись стрелками на клавиатуре или клавишей .

Найдите загрузку Linux и облокотитесь в кресле в ожидании окна приглашения ввода пароля. На экране будет бежать белый текст на черном фоне с информацией о найденных устройствах, о версиях различных модулей и т. д.

Рис. 2.10. Процесс загрузки Linux

После того как вы по центру экрана увидите надпись "Welcome to ASPLinux. Press '1' to enter interactive startup" или "Добро пожаловать в ASPLinux. Нажмите '1', чтобы перейти в интерактивный режим" (рис. 2.10), можно нажать кнопку <1>, тогда перед загрузкой очередного сервиса система будет просить подтверждение. Это очень удобная возможность, когда система нарушилась и какой-то сервис приводит к зависанию. Например, у меня очень часто после установки такое происходит с демоном sendmail (в гл. 8 мы разберем проблему). Если это случилось, то ОС уже не может загрузиться. Для выхода из сложившейся ситуации просто перезапустите компьютер, войдите в интерактивный режим и на вопрос о загрузке sendmail ответьте "No".

ОС Linux — многопользовательская. Это значит, что с ней могут работать поочередно или одновременно несколько человек. Система должна знать, с кем она сейчас работает, поэтому после загрузки ОС вам предложат представиться с помощью указания имени пользователя и пароля. Первый параметр позволяет идентифицировать вас, а второй — обезопасить от нежелательного использования вашего имени другим пользователем.

Итак, идентификация пользователя в текстовом режиме выглядит, как строка- приглашение ввести имя:

localhost login:

Затем вы должны указать пароль, чтобы ОС смогла четко определить, что вы являетесь тем, за кого себя выдаете.

Если вы предпочли графический вход в систему, то появится окно, как на рис. 2.11. Обращаю ваше внимание, что окна могут отличаться в различных дистрибутивах Linux.

Рис. 2.11. Окно ввода имени и пароля

Прежде чем вводить имя, осмотритесь. В окне есть меню, состоящее из трех пунктов:

□ Сеанс (Session) — позволяет выбрать графическую оболочку, которую вы хотите загрузить. Мы в основном будем работать с KDE или GNOME, как наиболее распространенными. Что выберете вы, зависит от личных предпочтений;

□ Язык (Language) — по умолчанию используется английский язык, но вы можете изменить его, например, на русский. ОС Linux поддерживает достаточно обширный список национальных языков, и он постепенно расширяется;

□ System (Система) — в этом меню находятся команды перезагрузки и выключения компьютера.

В меню Session (Сеанс) есть еще один очень интересный пункт — Failsafe. Если ваша система настроена с ошибкой и графическая оболочка не может запуститься, то выберите этот пункт, и тогда до перехода в графический режим вы увидите окно терминала и в нем командную строку, с помощью которой можно исправить проблему.

Определив нужные параметры, введите имя пользователя и пароль, которые вы указали во время установки ОС, и добро пожаловать в графический мир Linux. Но под какой учетной записью работать? Во время установки мы задали пароль системного администратора (root) и добавили пользователя. Я настоятельно рекомендую выбрать пользовательскую запись, потому что root обладает всеми правами и может творить все, что угодно. Эта власть нередко приводила к плачевным последствиям, когда администраторы во время тестирования каких-либо параметров по ошибке уничтожали важные данные.

Работа под учетной записью root может облегчить взлом компьютера через простые на первый взгляд приложения. Допустим, что вы путешествуете по Web-сайтам. Запущенный браузер автоматически имеет те же права. И если в нем найдется уязвимость, позволяющая получить доступ к жесткому диску, то злоумышленник сможет воспользоваться этой лазейкой и, например, стереть всю информацию.

Если работать под пользовательской учетной записью, то уничтожить можно будет только те файлы, которые доступны этой записи. Системные файлы в таком случае в большей безопасности. При необходимости повышения прав вы всегда можете это сделать, зная пароль администратора. Для этого используется команда su, а в качестве параметра (указывается через пробел после команды) передается имя пользователя, статус которого вы хотите обрести.

Чтобы получить права администратора, наберите команду:

su root

или

su -

Вторая команда тоже позволяет приобрести права root, хотя вместо имени указано тире. В ответ на это система запросит пароль. Введите данные пользователя, права которого вы хотите получить, и после этого вы сможете выполнять команды, доступные этой учетной записи. Например, получив статус администратора, вы приобретете все права на систему.

ОС Linux — многопользовательская система и поддерживает несколько терминалов. По умолчанию вы входите в первый терминал. Для того чтобы переключиться на другой, нужно нажать клавишу и одну из клавиш . В ответ на это перед вами появится чистый экран с приглашением ввести пароль, который может быть различным в каждом терминале.

Использование терминалов — очень удобная возможность. В одном вы запускаете программу, которая требует много времени для выполнения, и между тем переключаетесь на другой терминал и продолжаете работу с компьютером. В любой момент можно вернуться на первый терминал и посмотреть на ход исполнения программы.

Если вы перед запуском установили графический режим, то сразу после загрузки перед вами откроется окно, в котором система предложит использовать выбранную оболочку по умолчанию. Это значит, что при следующем старте, если не указано иного, будет запущена именно эта оболочка.

Если вы выбрали текстовый режим, то в любой момент можете переключиться на графический, набрав команду startx. В этом случае графическая оболочка будет загружена автоматически, без приглашения на ввод пароля, потому что вы уже идентифицировали себя в текстовой консоли.

Текстовое приглашение на вход в систему может появиться и в случае ошибки конфигурации. В этом случае выполнение команды startx ни к чему не приведет, т.к. графическая оболочка не сможет загрузиться. Тогда придется произвести настройку графики заново. Большинство информации о конфигурации Linux находится в текстовых файлах и нередко приходится править их вручную. В данном случае также используются текстовые файлы, но ручное редактирование необязательно, потому что есть специальная и удобная утилита setup. Наберите в командной строке команду setup, и перед вами откроется окно, как на рис. 2.12. Выберите пункт X Configuration. Система, скорее всего, сама определит наличие видеокарты и необходимые драйверы, а вот с монитором могут быть проблемы. Чаще всего приходится самостоятельно указывать его тип и поддерживаемые видеорежимы.

Рис. 2.12. Главное окно утилиты Setup

Кстати, о видеорежимах. В списке будут представлены все возможные значения, и вы можете указать любое количество. Я рекомендую остановиться только на том, который для вас является максимально удобным. После настройки обязательно протестируйте выбранный графический режим на предмет работоспособности. Если все пройдет удачно, то программа предложит использовать графический режим для входа в систему.

Во время настройки можно использовать мышь, но если она отсутствует, то достаточно и клавиатуры. Для перемещения между кнопками используйте клавишу , для выделения пунктов меню — пробел, а передвижение внутри списка осуществляется стрелками <↑> и <↓>.

С настройкой видеокарты (и то на чипсете S3, собранной в Китае) у меня последний раз возникали проблемы года три назад еще на Red Hat 6.1. Современные дистрибутивы без проблем определяют железо, особенно если оно собрано именитым брендом.

Надеюсь, что вам удалось войти в графический режим. Если во время загрузки произошла ошибка, завис компьютер или изображение на экране стало искаженным, графическую оболочку можно остановить нажатием клавиш ++. Таким образом, вы переключитесь в текстовый режим.

Если загрузка графической оболочки прошла удачно, то самое время познакомиться с окном терминала, в котором можно выполнять команды как в текстовом режиме. Домашнему пользователю это не обязательно, потому что ему нужны игры и офисные программы. А для администрирования и тонкой настройки Linux терминал просто необходим.

На рис. 2.13 показано окно графической оболочки KDE, а на рис. 2.14 — оболочка GNOME.

Рис. 2.13. Рабочий стол в графической оболочке KDE

Рис. 2.14. Рабочий стол в графической оболочке GNOME

В обеих оболочках в нижней части Рабочего стола находится Панель задач.

Здесь располагаются:

□ кнопка вызова главного меню (самая левая кнопка) — аналог кнопки "Пуск" в Windows. В этом меню можно найти все установленные на компьютере программы и утилиты;

□ кнопка быстрого вызова основных команд — на обоих рисунках выделена красным овалом, при нажатии осуществляется вызов окна терминала;

□ пустое поле — здесь будут располагаться кнопки запущенных программ. Кнопки задач можно использовать для переключения между работающими приложениями.

Откройте окно терминала, чтобы познакомиться с его внешним видом. В большинстве дистрибутивов по умолчанию это окно с черным фоном и текстом белого цвета. Сразу после запуска перед вами появится приглашение ввода команд, которое может выглядеть примерно следующим образом:

[root@Flenov root]:

Что это значит? Сначала идет имя пользователя, под которым вы вошли в систему (в данном случае это root). После знака @ следуют имя компьютера и пробел, за которым стоит имя текущей папки.

 

2.8. Мы в системе

Мы вошли в систему, и ОС запускает для нас уникальное окружение, которое определяется по имени пользователя. Среда включает пользовательские директории, настройки и командную оболочку.

Пользовательские директории находятся в каталоге /home и имеют название, совпадающее с именем пользователя. Например, для пользователя root есть подкаталог /home/root. В этой папке вы можете хранить свои файлы.

Когда вы входите в систему, то текущей директорией становится ваша. Так для пользователя root таковой станет /home/root, и все команды будут выполняться в этом каталоге, пока мы не изменим его.

В Linux существует несколько командных оболочек, и каждая из них обладает своими возможностями. Чаще всего пользователи применяют оболочку под названием bash (Bourne Again Shell). Мы будем рассматривать именно ее.

Первые шаги мы уже сделали, теперь приступим к более глубокому знакомству с Linux. По мере изучения вы сможете настроить систему более тонко и сделаете ее максимально быстрой, эффективной и безопасной.

Когда я начинал осваивать Linux и установил ее в первый раз, то потом долго не мог правильно выключить, потому что не знал, какая для этого используется команда. Я взял у знакомого книгу по этой ОС, но даже в ней описание процесса выхода было где-то в середине, и пока я нашел нужную команду, пришлось месяц обходиться без корректного завершения работы ОС и выключать питание компьютера.

Спешу поделиться с вами накопленным опытом. Для выхода из системы используется команда shutdown. После нее указывается, что именно нам нужно: -r для перезагрузки или -h для выключения компьютера. И в конце команды можно задать время, через которое должно начаться выполнение команды (в частности, now — сейчас).

Например, для немедленной перезагрузки системы наберите команду:

shutdown -r now

Для немедленного выключения компьютера следует ввести:

shutdown -h now

Обязательно используйте эти команды. Если выключить питание с помощью кнопок на системном блоке, то можно потерять данные, которые были загружены в оперативную память, но не сохранены на жестком диске.

Если вы работаете в текстовом режиме и просто хотите войти под другим именем пользователя, наберите команду exit.

Чтобы выйти из системы в графическом режиме, нажмите кнопку вызова главного меню и выберите пункт Выйти из системы. Это заставит графическую оболочку выгрузится, затем снова появится окно-приглашение ввести пароль, где можно войти в систему под новым именем или перезагрузить компьютер.

 

2.9. Подсказки

Некоторые операционные системы славятся своей простотой и хорошими подсказками. Но я не устану повторять, что производительность, надежность и простота не всегда совместимые вещи. ОС Linux содержит множество команд, и у каждой из них может быть большое количество параметров.

Помнить их все невозможно, поэтому разработчики постарались и снабдили ОС обширной справкой.

Если вы хотите получить информацию о какой-либо команде или программе, то попробуйте запустить ее с одним из ключей: -h, -help или -?. Разные программы используют свой ключ, который чаще всего заставит вывести на экран короткую подсказку об использовании программы.

Для получения более подробной информации нужно воспользоваться следующей конструкцией:

man имя

Имя — это название команды или программы, a man выводит на экран информацию об объекте. Например, чтобы увидеть описание команды shutdown, выполните man shutdown.

Для выхода из программы помощи нужно набрать на клавиатуре <-е>. В ответ на это перед вами появится сообщение "Quit at end-of-file (press RETURN)". Нажмите клавишу , затем перейдите в конец просматриваемого файла помощи, и программа man завершит работу.

Более простой способ завершения программы man — нажать клавишу . В этом случае выход произойдет мгновенно.

Если вы устанавливаете лицензионный вариант ОС, то в коробке можно найти документацию по установке и руководство пользователя. Чаще всего эта информация поверхностная и позволяет сделать только минимальные настройки. Но некоторые дистрибутивы содержат очень подробную документацию или даже целые книги.

 

2.10. Основы конфигурирования

 

Прежде чем переходить к более глубокому рассмотрению вопросов, связанных с конфигурированием ОС Linux, мы должны определиться с правилами, которые действуют вне зависимости от ОС и сервиса. Если вы будете их придерживаться, то сможете построить действительно защищенную систему (сервер или даже сеть из компьютеров и серверов).

 

2.10.1. Запрещено то, что не разрешено

Когда вы настраиваете параметры доступа, то необходимо придерживаться принципа минимализма, который заключается в следующем:

1. Необходимо запускать минимум возможного. Это касается не только сервисов в целом, но и их составляющих. Например, вам нужен Web-сервер и для этого чаще всего устанавливается Apache. Эта программа включает в себя очень много возможностей, среди которых поддержка интерпретируемых языков PHP и Perl, но, как правило, программисты сайтов используют только один из этих языков, поэтому нет смысла разрешать оба. Если сайт проектируется с помощью PHP, то следует удалить Perl, и наоборот. Ну а если ваш сайт использует сразу два языка сценариев, увольте своих программистов, потому что в разнородных системах намного сложнее построить безопасность.

2. Следует разрешать минимум необходимого. Большинство администраторов не любят заниматься какими-либо настройками, поэтому открывают полный доступ на все, что только может пригодиться. Но слово "может" не совместимо с безопасностью. Возможность, которую вы откроете пользователю, на самом деле может ему не понадобиться, а вот злоумышленник благодаря лишней лазейке может натворить много бед. Например, на клиентских компьютерах может быть открыта какая-то папка для всеобщего доступа. Это мотивируется тем, что пользователям может потребоваться обмен данными. А если нет?

При рассмотрении конфигурирования ОС и ее сервисов я буду часто напоминать об этом правиле, и при разборе примеров будем отталкиваться именно от полного запрета.

 

2.10.2. Настройки по умолчанию

Настройки по умолчанию предусмотрены только для обучения и чаще всего открывают абсолютно все возможности, чтобы вы могли оценить мощь программ. Это значит, что будет разрешено абсолютно все, а это уже нарушает второе рассмотренное правило.

Если используется не так много команд и параметров, то лучше заняться конфигурацией программы с чистого листа. Если процедура достаточна сложная (ярким примером является Sendmail), то лучше всего отталкиваться от настроек по умолчанию, добавляя, изменяя или удаляя ключи. Даже не пытайтесь в этом случае настраивать систему с нуля. В процессе конфигурирования обязательно что-то забывается и тем самым повышается вероятность ошибки. Сложность конфигурационных файлов в том, что они имеют текстовый формат и все имена параметров нужно писать четко и полностью. Если ошибиться хотя бы в одной букве, параметр будет воспринят неверно, и появятся сбои в работе ОС или сервиса.

Когда пишете имя параметра или путь в файловой системе, будьте внимательны не только к словам, но и к их написанию. ОС Linux чувствительна к регистру имен файлов и директорий. Эта особенность имеет значение и для некоторых конфигурационных файлов.

 

2.10.3. Пароли по умолчанию

Многие сервисы во время установки прописывают пароли по умолчанию. В ОС Linux эта проблема стоит особо остро, потому что программы инсталляции используют RPM-пакеты и чаще всего даже не предлагают их сменить. Я бы на месте разработчиков вообще запретил запуск сервисов с пустым или неизмененным паролем.

Например, база данных MySQL после установки использует для администратора учетную запись без пароля и с именем root, которое может ввести в заблуждение, но вы должны знать, что этот логин никакого отношения к системной записи не имеет. Это внутренняя учетная запись базы данных, и пароли могут и должны быть разными. Сразу после установки MySQL необходимо сменить код доступа.

Прежде чем сдавать систему в эксплуатацию, убедитесь, что изменены все пароли. Снова пример с MySQL. Администраторы редко используют его, а только устанавливают. Конфигурированием обычно занимаются программисты, которые настраивают базы под себя и почему-то любят использовать пароли по умолчанию. Я сам программист и при разработке баз данных тоже так делаю в надежде, что за паролями проследит администратор, а тот надеется на меня, и получается, что мы оба забываем.

После того, как несколько раз система оказалась уязвимой, я разрабатываю программу под своей учетной записью и с измененным паролем. Лучше это сделать дважды, чем забыть выполнить совсем.

Пароли по умолчанию используются не только в программах и ОС, но и в сетевых устройствах, таких как маршрутизаторы и управляемые коммутаторы. В эти устройства встроена система защиты и авторизации. Производители, не долго думая, чаще всего устанавливают имя Admin, а пароль оставляют пустым. Это большое упущение. Я бы на их месте для пароля по умолчанию использовал серийный номер устройства. В этом случае хакер не сможет его подобрать. Хотя и серийный номер не является абсолютной защитой, потому что если хакер увидит устройство своими глазами, то он легко сможет вычислить и пароль.

В Интернете уже давно существуют списки паролей по умолчанию для различных устройств, поэтому не забывайте их менять после установки оборудования.

 

2.10.4. Универсальные пароли

Производители BIOS раньше устанавливали в свои чипы универсальные коды доступа, которые позволяли войти в систему, не зная основной пароль, который установил администратор. Например, в одной из версий BIOS компании AWARD использовался универсальный шифр AWARD_SW. Начиная с версии 4.51, такая "услуга" отсутствует.

Если у вас есть возможность отключить использование универсального пароля, то сделайте это незамедлительно. В противном случае смените оборудование или программу, иначе нет смысла пытаться сделать вашу систему защищенной от вторжения.

 

2.10.5. Безопасность против производительности

Я уже говорил, что безопасность и производительность преследуют совершенно разные цели, которые чаще всего конфликтуют между собой. Настраивая сервер на максимальную безопасность, приходится включать такие сервисы, как журналирование, сетевые экраны, а они расходуют ресурсы процессора. И чем больше дополнительных служб включено, тем больше лишних затрат.

Каждый ресурс может быть настроен по-разному. Например, в режиме журналирования можно записывать в журналы только основную информацию, что позволит уменьшить нагрузку на жесткий диск, но увеличит вероятность того, что какая-то атака пройдет незамеченной. А можно сделать так, что в журнал будут попадать абсолютно все сообщения. В этом случае повышается расход ресурсов, и у хакера появляется шанс удачно произвести атаку DoS.

Во время конфигурирования сервера и его сервисов вы должны исходить из принципа необходимой достаточности. Следует принимать все меры, чтобы сервер или компьютер чувствовал себя в безопасности, но при этом работал как можно производительнее. Чтобы убедиться в нормальном балансе этих параметров, после окончания конфигурирования необходимо заставить сервер работать при максимально возможной загрузке (определяется планируемым количеством обрабатываемых запросов в минуту умноженное на 2). Если сервер справится с поставленной задачей и сможет обработать все запросы клиентов, и при этом еще останется запас в производительности процессора, то можно вводить машину в эксплуатацию. Иначе необходимо изменять конфигурацию или наращивать мощность компьютера.