Linux глазами хакера - Михаил Флёнов 4 стр.


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

Изначально популярность среди администраторов росла благодаря тому, что эта ОС поддерживала основные стандарты Unix, к которым относятся POSIX, System V и BSD. При этом система была написана для дешевой (по сравнению с дорогостоящими серверами Sun и IBM) платформы x86 и обладала всеми необходимыми возможностями. Таким образом, многие фирмы смогли оптимизировать свои расходы на организацию инфраструктуры информационных технологий (ИТ) за счет перевода некоторых серверных задач на бесплатный продукт - Linux.

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

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

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

1.3. Открытый исходный код - это безопасно?

Бытует мнение, что программы с открытым исходным кодом надежнее и безопаснее, чем коммерческие.

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

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

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

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

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

Так как настройка Linux - достаточно сложная процедура, требующая высокой квалификации, очень часто именно из-за неправильно установленных параметров эта система попадает под огонь хакеров. Любая система (Windows, Linux или Mac OS X) с настройками по умолчанию далека от идеала. Часто безопасностью жертвуют для обеспечения производительности или удобства. В некоторых программах включаются сервисные функции, которые облегчают работу администратора (например, отладка в интерпретаторе PHP), но и упрощают взлом со стороны хакера. Именно поэтому безопасность системы напрямую зависит только от человека, который ее обслуживает.

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

И все же, безопасность Linux выше, чем Windows, и это не связано с открытостью или закрытостью исходного кода. В Linux многие вопросы решены лучше, чем в Windows, например, работа с памятью, определенная область которой выделяется при запуске программы. Выйти за ее пределы невозможно (только в крайних случаях, для обмена данными с другими приложениями). А в Windows каждая программа может получить доступ к любому участку памяти, вплоть до системного. Это грозит тем, что программа по ошибке может изменить чужую область памяти и даже разрушить систему.

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

1.4. Ядро

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

Номер версии ядра Linux состоит из трех чисел:

□ первое (старший номер) - указывает на значительные изменения в ядре;

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

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

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

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

1.5. Дистрибутивы

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

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

В данной книге мы будем рассматривать один из клонов самого распространенного дистрибутива Red Hat (по некоторым данным составляет около 50 % рынка Linux). В качестве примера я выбрал ASPLinux, как самый популярный в России. Если вы будете пользоваться другим дистрибутивом, то особой разницы не заметите (только в графической части во время установки).

Разнообразие дистрибутивов является самым слабым звеном ОС Linux. Когда вы начнете работать с ОС, то увидите, что большая часть операций не стандартизирована (можно расценивать как следствие открытости кода). Получается как в поговорке "Кто в лес, кто по дрова". Это серьезная проблема, которая усложняет восприятие.

В этом смысле ОС Windows более унифицирована и проще для обучения. Хотя в последнее время и здесь наблюдается отступление от установленных канонов. Так внешний вид программ стал совершенно непредсказуем. Меню и панели в Office 2000/XP/2003 постоянно изменяются (только успевай привыкать к ним!). В Linux, несмотря на отсутствие стандартов, элементы интерфейса везде одинаковы.

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

Цена одной копии Linux намного ниже, чем Windows, и при этом в дистрибутив входит громадное количество офисных программ, интернет-утилит, графических редакторов и т.д. Таким образом, установив полную версию, ваш компьютер готов сразу решать большинство производственных и домашних задач.

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

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

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

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

1.5.1. Red Hat Linux

Данный дистрибутив считается классическим и является законодателем моды в развитии ОС, потому что именно в этой фирме работает основатель Linux - Линус Торвальдс. Для получения этого дистрибутива вы можете купить коробочный вариант или скачать версию бесплатно с сайта www.redhat.com. Помимо этого, Red Hat ведет разработку ОС Linux в двух направлениях: для серверных решений и для клиентских компьютеров. Второй вариант начал все больше обретать дружественный интерфейс и способен решить любые домашние задачи.

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

Все дистрибутивы Linux всегда ругают за сложность установки ядра и программ, которые чаще всего поставляются в исходных кодах и требуют компиляции. Компания Red Hat упростила этот процесс с помощью разработки пакетов RPM (Redhat Package Manager).

Многие почитатели Linux надеются, что благодаря Red Hat их любимая ОС станет доступной всем и сможет победить конкурентов.

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

1.5.2. Slackware

Мое знакомство с Linux начиналось именно с дистрибутива Slackware (www.slackware.com). Это один из самых старых и сложных дистрибутивов для домашних пользователей. До сих пор нет удобной программы установки, и большинство действий приходится делать в текстовом режиме. Конечно же, вы можете добавить к этому дистрибутиву KDE или GNOME (графические оболочки), а также другие пакеты, облегчающие работу, но установку проще не сделаешь.

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

1.5.3. SuSE Linux

Мне приходилось работать с разными программами от немецких производителей, но их юзабилити не просто хромало, такие программы - это безногие калеки с детства. Но разработка от SuSE (www.suse.de) опровергает мое мнение. Этот дистрибутив отличается симпатичным интерфейсом и отличной поддержкой оборудования, потому что содержит громадную базу драйверов.

Честно сказать, я бы удивился, если бы кто-либо умудрился испортить KDE или GNOME, ведь внешний вид ОС зависит от этих оболочек. В данном случае фирма SuSE смогла не испортить эту красоту своими картинками и логотипами.

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

Я бы посоветовал SuSE только любителям и для использования на клиентских компьютерах.

1.5.4. Debian

Несмотря на то, что цель любого производителя - получение прибыли, существует множество дистрибутивов, которые были и остаются некоммерческими. Основным и самым крупным из них можно считать Debian (www.debian.org). Этот продукт создают профессионалы для себя, но пользоваться этим дистрибутивом может каждый.

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

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

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

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

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

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

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

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

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

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

Назад Дальше