This version of the page http://www.techpro.com.ua/news46796.html (0.0.0.0) stored by archive.org.ua. It represents a snapshot of the page as of 2006-12-03. The original page over time could change.
Linux Security HOWTO, v0.9.11, 1 Мая 1998 г.
Этот документ является общим обзором проблем безопасности, которые встают перед администратором Linux систем. Он изображает общую философию безопасности и некоторые специфические примеры лучшей защиты вашей Linux системы от злоумышленников. Также включены касающиеся безопасности материалы и программы. Примечание: Здесь представлена beta версия данного документа. Улучшения, конструктивная критика, добавления и исправления принимаются с радостью. Пожалуйста шлите Ваши пожелания обоим авторам. Чтобы избежать spam фильтров и обратить внимание авторов обязательно включите слова "Linux", "security" или "HOWTO" в subject строку Вашего письма. Прим.перевод.: Как видно из даты документ немного устарел в плане версий тех или иных программ и, соответственно, их возможностей, но приводится в полном согласии с оригиналом, поскольку принципы они всегда принципы.

[Kevin Fenzi, Dave Wreski, перевод: Konstantin Shepelevich]

1. Введение

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

Существуют и другие документы HOWTO касающиеся темы безопасности, о них будет указано, когда это будет уместно.

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

1.1 Новые версии этого документа

Новые версии этого документа периодически публикуются в comp.os.linux.answers. Также они добавляются на различные анонимные FTP узлы, которые собирают такую информацию, включая:

ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO

К тому же, вы в общем то можете найти этот документ на странице Linux Worldwide Web через:

http://sunsite.unc.edu/mdw/linux.html

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

http://scrye.com/~kevin/lsh/

1.2 Обратная связь

Все комментарии, сообщения об ошибках, дополнительная информация и критика всех видов должны быть направлены на

kevin@scrye.com

и

dave@nic.com

Примечание: Пожалуйста, посылайте ваши сообщения обоим авторам. Также не забудьте добавить слова "Linux", "security" и "HOWTO" в ваш subject во избежание попадания под spam фильтр.

1.3 Отречение

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

Некоторое количество примеров и описаний основывается на дистрибутиве RedHat(tm) и его установках. Ваша система может отличаться.

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

1.4 Авторские права

Этот документ защищен авторскими правами (c)1998 Kevin Fenzi and Dave Wreski и распространяется на следующих условиях:

  • Linux HOWTO документы могут переделываться и распространяться полностью или по частям, в бумажном или электронном виде, с указанием этих авторских прав во всех копиях. Коммерческое распространение разрешается и приветствуется; однако, авторы хотели бы, чтобы их уведомили о таком распространении.
  • Все переводы, производные работы, или составные работы вовлекающие любые Linux HOWTO документы должны быть снабжены этой лицензией. Это значит, что вам не разрешается делать производную от HOWTO работу и накладывать дополнительные ограничения на ее распространение. При определенных условиях могут быть исключения из этих правил; пожалуйста, проконтактируйте с Linux HOWTO координатором по адресу приведенному ниже.
  • Если у вас есть вопросы, свяжитесь с Tim Bynum - Linux HOWTO координатором по адресу
  • linux-howto@sunsite.unc.edu

    2. Обзор

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

    2.1 Зачем нам нужна безопасность?

    В постоянно изменяющемся мире коммуникаций глобальных данных, недорогих Internet соединений и быстрой разработки программных продуктов, безопасность становится все более и более насущной. Безопасность сейчас является базовым требованием, поскольку глобальная компьютеризация в своей сути небезопасна. Например, когда ваши данные перемещаются из точки А в точку Б в Интернете, они на своем пути могут проходить через многие узлы, давая другим пользователям возможность перехвата и даже подмены ваших данных. Даже другие пользователи в вашей системе могут злонамеренно преобразовать ваши данные во что-то, чего вы не хотите. Неавторизованный доступ к вашей системе могут получить взломщики, также известны как "кракеры", которые затем могут использовать свои (продвинутые) знания для получения информации о вас, воровства ваших данных или, даже, запрещения вам доступа к вашим же ресурсам. Если вы все еще хотите узнать разницу между "хакером" и "кракером", посмотрите документ Eric Raymonds, "Как стать Хакером", доступным по адресу http://sagan.earthspace.net/~esr/faqs/hacker-howto.html.

    2.2 Насколько безопасна безопасность?

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

    Другим фактором, который нужно принять во внимание, является то, что чем более безопасна ваша система, тем более навязчивой становиться ваша система безопасности. Вы должны решить, где находится баланс между удобством использования системы и необходимым уровнем безопасности в вашей работе. Например, вы могли бы требовать от всех удаленных пользователей вашей системы использовать модемы с запросом на дозвон (call back modem), чтобы ваша система дозвонивалась к ним на их домашний телефон. Это более безопасно, но если кто-нибудь захочет войти в вашу систему не из дому, то ему будет довольно трудно зарегистрироваться. Вы также можете установить вашу Linux систему без сети или связи с Интернет, но это повлечет за собой невозможность Web серфинга.

    Если у вас система средних или больших размеров, вам нужно установить "Политику Безопасности", которая определит, насколько сильной должна быть у вас система безопасности и какой должен быть аудит для ее проверки. Вы можете найти хорошо-известный пример "политики безопасности" по адресу http://ds.internic.net/rfc/rfc2196.txt. Узел был недавно обновлен и содержит великолепный план установления политики безопасности в вашей компании.

    2.3 Что вы пытаетесь защитить?

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

  • Риск - это вероятность того, что взломщик может одержать победу в в своих попытках получить доступ к вашему компьютеру. Сможет ли взломщик читать или писать файлы, или выполнять программы, которые могут нанести ущерб? Может ли взломщик удалить критические данные? Помешать вам или вашей компании завершить очень важную работу? Не забудьте, что кто-то, получив доступ к вашему счету (account), или вашей системе, может притвориться вами.

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

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

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

  • Любопытный - Этому типу взломщика в основном интересно выведать, какого типа у вас система и что за данные вы используете.
  • Злобный - Этот тип взломщика стремиться либо "вырубить" вашу систему, либо обезобразить ваш Web узел, либо сделать другую пакость, отбирающую у вас время и деньги на восстановление.
  • Высококлассный взломщик - этот тип взломщика пытается использовать вашу систему для получения популярности. Он может использовать взлом вашей хорошо защищенной системы для рекламы своих способностей.
  • Конкурент - Этот тип взломщика интересуется данными, которые вы имеете в вашей системе. Это может быть кто-то, кто думает, что вы имеете что-то, что принесет ему денежную либо какую-нибудь другую прибыль.
  • Понятие уязвимость описывает, насколько хорошо защищен ваш компьютер от других в сети, а также возможность получения кем-либо неразрешенного доступа к вашей системе.

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

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

  • 2.4 Разработка политики безопасности

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

    Общепринятая политика безопасности начинается с фразы:

    "То, что не разрешено, - запрещено"

    Это значит, что до тех пор, пока вы не разрешите доступ пользователю к определенному сервису, этот пользователь не сможет использовать этот сервис. Убедитесь, что политика работает, зарегистрировавшись обычным пользователем, поскольку реплики типа "Ах, как я не люблю эти ограничения прав доступа, я просто сделаю все как администратор (root)" может привести к образованию очень очевидных "дыр" в системе безопасности, и даже таких, с которыми еще не известно как бороться.

    2.5 Способ защиты вашего узла (site)

    Этот документ будет обсуждать различные способы, с помощью которых вы можете обезопасить активы, которые вы тяжело нарабатывали: ваш локальный компьютер, данные, пользователей, сеть, и даже ваша репутация. Что случиться с вашей репутацией, если взломщик удалит данные некоторых ваших пользователей? Или обезобразит ваш web узел? Или обнародует проект корпоративного плана вашей компании на следующий квартал? Если вы планируете структуру сети, существует очень много факторов, которые вы должны принять во внимание, прежде чем добавить какой-либо новый компьютер к вашей сети.

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

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

    Безопасность сервера

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

    Безопасность вашей сети

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

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

    Безопасность через сокрытие

    Одним из типов безопасности, который необходимо рассмотреть, является "безопасность через сокрытие". Это значит, что любые действия подобно изменению регистрационного имени из root на toor, например, чтобы попытаться предотвратить вхождение кого-нибудь в вашу систему под root, являются лишь ложным чувством безопасности и могут привести к нежелательным последствиям. Многие удостоверились, что любой атакующий систему взломщик очень быстро и легко пройдет через такие пустые меры безопасности. Просто то, что у вас небольшая сеть или относительно узкопрофильный узел, не означает, что взломщик не захочет посмотреть, что вы имеете. Мы обсудим степень вашей защищенности в следующих разделах.

    2.6 Структура этого документа

    Этот документ разделен на несколько разделов. Они раскрывают некоторые общие вопросы касающиеся безопасности. Первый - "физическая безопасность" - рассматривает как вы должны физически защитить вашу машину от преступного использования. Второй описывает как защитить вашу систему от вредных намерений локальных пользователей. Третий - "безопасность файлов и файловой системы" - показывает вам как установить ваши файловые системы и права доступа к вашим файлам. Следующий - "безопасность паролей и шифрование" - обсуждает как использовать шифрование для лучшей безопасности вашей машины и сети. "Безопасность ядра" обсуждает какие опции ядра вы должны установить или знать для большей безопасности системы. "Безопасность сети" описывает как лучше обезопасить вашу Linux систему от атак с сети. "Подготовка безопасности" обсуждает как подготовить вашу машину(ны) к выходу в Интернет в on-line режиме. Следующий обсуждает, что делать, если вы обнаружили, что происходит прорыв в систему сейчас или был недавно совершен. Далее приводится список ссылок на другие ресурсы, касающиеся безопасности, и, наконец, некоторые вопросы и ответы и несколько заключительных слов.

    Есть две важные вещи, которые нужно знать при чтении данного документа:

  • Знайте вашу систему. Проверяйте системные журналы (logs), такие как /var/log/messages, и смотрите за вашей системой;
  • Поддерживайте вашу систему в современном состоянии, вовремя инсталируя программы текущих версий и проводя обновления при каких-либо новых сообщениях о безопасности. Эти простые действия помогут сделать вашу систему заметно более безопасной.
  • 3. Физическая безопасность

    Первым "уровнем" безопасности, который вы должны принять во внимание, является физическая безопасность систем вашего компьютера. Кто имеет прямой физический доступ к вашей машине? Должен ли он/она его иметь? Можете ли вы защитить вашу машину от их возможно вредного действия? Должны ли вы это делать?

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

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

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

    3.1 Запирание компьютера

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

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

    Некоторые корпуса (по большей мере спарки/sparcs/ и маки/macs/) имеют dongle на задней стенке и если вы через него пропустите кабель, то взломщик будет вынужден либо его отрезать, либо сломать корпус, чтобы попасть внутрь. Использование с этим висячего или комбинированного замка является хорошим средством устрашения для желающих своровать ваш компьютер.

    3.2 Безопасность BIOS

    BIOS является самым нижним уровнем программного обеспечения, которое конфигурирует или управляет вашим х86 оборудованием. LILO и другие методы загрузки Linux обращаются к BIOS, чтобы узнать как загружать ваш компьютер. Другое оборудование, на котором можно запускать Linux, имеет подобное программное обеспечение (OpenFirmware на маках/macs/ и новых санах/suns/, sun boot prom и другие). Вы можете использовать ваш BIOS для предотвращения взломщиком перезапуска компьютера и управления вашей Linux системой.

    Многие BIOSы ПК, работающих под Linux/x86, позволяют установить стартовый пароль. Это не предоставляет полной безопасности (BIOS может быть перезаписан или удален, если кто-нибудь заберется внутрь корпуса), но может быть хорошим сдерживающим фактором (например, это заберет время и оставит следы взлома).

    Многие x86 BIOSы позволяют вам установить различные другие меры безопасности. Посмотрите в руководство по вашему BIOSу или загляните в него во время очередного перезапуска. Некоторыми примерами являются: запрет загрузки с дискеты, а также назначение пароля некоторым пунктам BIOSа.

    На Linux/Sparc ваш SPARC EEPROM может быть установлен так, чтобы при запуске спрашивать пароль. Это должно задержать взломщика.

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

    3.3 Безопасность стартового загрузчика (boot loader)

    Различные загрузчики Linux также имеют возможность установки стартового пароля. Используя lilo обратите внимание на свойства "restricted" и "password". "password" позволит вам установить стартовый пароль. "restricted" позволит загружать систему до тех пор пока не встретиться установленная опция lilo: сообщение (подобно single).

    Помните, что когда вы устанавливаете все эти пароли - вы должны помнить их. :) Также помните, что все эти пароли задержат определенного взломщика. Однако это может не помешать кое-кому загрузиться с дискеты и примонтировать ваш корневой каталог. Если вы скомбинируете средства безопасности вместе с возможностями стартового загрузчика, вы можете предотвратить загрузку с дискеты в вашем BIOSе, а также назначить пароль в BIOSe.

    Если кто-либо имеет информацию о мерах безопасности в различных стартовых загрузчиках, мы бы с удовольствием услышали о них (grub, silo, milo, linload, и др.).

    3.4 xlock и vlock

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

    Xlock это замок X экрана. Скорее всего он включен во все Linux дистрибутивы, которые поддерживают Х. Чтобы узнать о нем и его опциях больше, посмотрите man страницы, но в общем вы можете запустить xlock с любого xterm на вашей консоли, при этом он "запрет" дисплей и запросит пароль, если вы захотите продолжить работу.

    vlock простая маленькая программа, которая позволяет вам "запереть" некоторые или все виртуальные консоли вашей Linux системы. Вы можете "запереть" только ту, на которой работаете, или их все. Если вы "запрете" только одну, кто-то может войти и использовать консоль, он просто не сможет использовать вашу vty, пока вы не отопрете ее. vlock распространяется с RedHat Linux, но ваш дистрибутив может отличаться.

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

    3.5 Определение нарушений физической безопасности

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

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

    Вот некоторые вещи, которые нужно проверить в ваших системных журналах:

  • Короткие или незаконченные системные журналы.
  • Системные журналы содержат странные временные метки.
  • Системные журналы содержат неверные права доступа или права собственности.
  • Присутствуют записи перегрузки или перезапуска сервисов.
  • Отсутствуют системные журналы.
  • Точка входа или регистрация su со странного места.
  • Мы обсудим содержание системных журналов позже.

    4. Локальная безопасность

    Следующим пунктом рассматриваемым в безопасности вашей системы является защита от атак со стороны локальных пользователей. Сказали ли мы локальные пользователи? Вы не ослышались - ДА.

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

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

    4.1 Создание новых счетов

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

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

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

    4.2 Безопасность администратора

    Наиболее искомым счетом на вашей машине является счет суперпользователя - администратора (root). Этот счет имеет доступ ко всем ресурсам машины, который также может включать доступ к другим машинам в сети. Помните, что вы должны использовать счет администратора только для очень ограниченного набора определенных задач, а в большинстве случаев должны регистрироваться как обычный пользователь. Работать все время как администратор является ОЧЕНЬ ОЧЕНЬ ОЧЕНЬ ПЛОХОЙ ИДЕЕЙ.

    Несколько приемов, чтобы избежать последствий из-за путаницы в счетах, с которыми вы работаете:

  • Когда выполняете некоторую комплексную команду, попытайтесь сначала запустить ее в неразрушающем виде ... особенно команды, содержащие заменители (wildmarks): например, вы собираетесь сделать "rm foo*.bak", а вместо этого сначала сделайте "ls foo*.bak" и убедитесь, что вы собираетесь удалить действительно то, что думаете. Также помогает использование подтверждений при выполнении таких команд.
  • Некоторые находят полезным делать "touch /-i" в их системах. Это заставит команды типа "rm -rf *" спрашивать вас, действительно ли вы хотите удалить все файлы. (Это происходит таким образом, что ваш shell сначала распознает "-i", и передает ее как опцию для rm). Однако это не поможет для rm команд без * в теле. ;(
  • Регистрируйтесь как администратор только для выполнения одиночных специфических задач. Если вы вдруг поймаете себя на том, что вы пытаетесь выяснить как что-то работает или как что-то сделать,- сейчас же перерегистрируйтесь как обычный пользователь и не возвращайтесь к счету администратора пока вы действительно не будете уверены, что нужно сделать администратору.
  • Очень важными являются _пути_по_умолчанию_ администратора. Путь по умолчанию, или переменная окружения PATH, определяет то место, где shell ищет программы. Попытайтесь ограничить пути по умолчанию администратора насколько это возможно и никогда не используйте ., обозначающую "текущай каталог", в ваших установках PATH. Кроме этого никогда не разрешайте запись в каталоги, прописанные в переменной PATH, поскольку это может позволить взломщику модифицировать существующие или записать новые программы в этих каталогах, разрешив им таким образом запустить эту программу администратору в тот момент, когда ему понадобиться выполнить данную программу.
  • Никогда не используйте набор утилит rlogin/rsh/rexec (называемых r-утилитами) будучи администратором. Они являются предметом интереса многих типов взломщиков и являются прямой опасностью при запуске администратором. Никогда не создавайте файл .rhosts будучи администратором.
  • Файл /etc/securetty содержит список терминалов, с которых может зарегистрироваться администратор. По умолчанию (в Red Hat Linux) все установлено только на локальные виртуальные консоли (vtys). Будьте очень осторожны добавляя что-либо еще в этот файл. Вы можете зарегистрироваться удаленно как обычный пользователь, а затем использовать su, если вам действительно это нужно (полезно через ssh или другой зашифрованный канал), таким образом нет необходимости прямо регистрироваться как администратор.
  • Никогда не спешите и обдумывайте каждый шаг работая администратором. Ваши действия могут затронуть многие вещи. Думайте (!!!) прежде чем что-либо выполнить.
  • Если вам абсолютно положительно необходимо разрешить кому-либо (обычно очень доверенному) иметь доступ как администратор к вашей машине, существует несколько инструментов, которые могут помочь. Sudo позволяет пользователям использовать их пароли для получения доступа к ограниченному набору команд администратора. Это позволит вам, например, разрешить пользователям менять и монтировать сменные диски в вашей системе, но не даст других привилегий. Sudo также ведет журнал всех удачных и неудачных запусков, позволяя вам отслеживать кто и для чего использовал эту команду. Поэтому sudo работает хорошо даже в тех местах, где несколько человек имеют права администратора, - используя возможности sudo, вы можете отследить, какие были сделаны изменения.

    Хотя sudo может использоваться для предоставления определенным пользователям определенных привилегий для специфических задач, эта утилита имеет несколько недостатков. Она должна использоваться только для ограниченного набора задач, подобных перезагрузке сервера, или добавления новых пользователей. Любая программа, которая предоставляет возможность выхода из shell, дает пользователю права администратора. Например, это свойственно многим редакторам. Также такие безобидные программы как /bin/cat могут использоваться для перезаписи файлов, которые могут позволить эксплуатировать счет администратора. Рассматривайте sudo как средство учета, и не ожидайте, что заменив им суперпользователя, вы будете в безопасности.

    5. Безопасность файлов и файловой системы

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

  • Нет ни одной причины, по которой нужно было бы разрешать запуск SUID/SGID программ из пользовательских домашних каталогов. Для тех разделов, в которые разрешена запись не только администратору, в /etc/fstab поставьте опцию nosuid. Вы также можете захотеть использовать nodev и noexec для домашних каталогов, а также /var, которые запретят выполнение программ и создание символьных и блочных устройств, которые и так никогда не нужны.
  • Если вы экспортируете файловые системы используя NFS, обязательно отконфигурируйте /etc/exports с максимально возможными ограничениями. Это означает не использовать символы подстановки (wildcards), не разрешать запись администратору удаленной системы, а также монтирование с правами "только чтение" где только возможно.
  • Настройте umask создания файлов для ваших пользователей настолько ограничивающей насколько это возможно. Общеупотребительными являются 022, 033, и наиболее ограничивающая 077, и добавьте все это к /etc/profile.
  • Установите лимит использования файловой системы вместо разрешения неограниченного использования, что установлено по умолчанию. Вы можете контролировать лимиты каждого пользователя используя специальный модуль лимитов ресурсов PAM и /etc/pam.d/limits.conf. Например, лимиты для группы users могут выглядеть следующим образом:

     @users hard core 0
     @users hard nproc 50
     @users hard rss 5000
    

    Это запрещает создание core файлов, ограничение количества процессов значением 50, и ограничение использования памяти 5МВ на пользователя.

  • Файлы /var/log/wtmp и /var/run/utmp содержат записи регистрации для всех пользователей в вашей системе. Их накопление должно поддерживаться постоянно, поскольку их можно использовать для определения когда и откуда пользователь (или потенциальный взломщик) вошел в вашу систему. Эти файлы должны иметь маску прав доступа 644, чтобы не нарушать нормальной работы системы.

  • Для предотвращения случайного удаления или перезаписи файлов, которые должны быть защищены, можно использовать имунный бит. Он также предотвращает создание кем бы то ни было символьной связи на этот файл, что является одним из методов атаки с целью удаления /etc/passwd или /etc/shadow. Смотри руководство по chattr(1) для более детальной информации об имунном (immutable) бите.

  • SUID и SGID файлы в вашей системе являются потенциальными носителями риска вашей безопасности, поэтому должны быть под постоянным и тщательным наблюдением. Поскольку эти программы предоставляют специальные привилегии пользователям, которые запускают их, необходимо убедиться, что небезопасные программы не установлены. Любимым приемом кракеров является разработка программ с SUID "root", и затем оставлять их в системе как "черный ход" для получения доступа в следующий раз, даже если изначально использованная "дыра" уже и будет закрыта.

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

     root# find / -type f \( -perm -04000 -o -perm -02000 \)
    
    Вы можете дискриминативно убрать все SUID или SGID права для всех подозрительных программ используя chmod(1), а затем поставить обратно, если вы будете абсолютно уверены в необходимости этого.

  • Файлы с разрешенными для всех правами записи, особенно системные файлы, могут быть "дырой" в безопасности, если взломщик получит доступ к вашей системе и изменит их. Кроме того опасны каталоги с разрешенными для всех правами на запись, поскольку они позволяют взломщику по желанию добавлять или удалять файлы. Для обнаружения в вашей системе всех файлов с разрешенными для всех правами записи выполните следующую команду:
     root# find / -perm -2 -print
    
    и убедитесь, что вы действительно знаете, почему в эти файлы разрешена запись. В условиях нормальной работы только для некоторых файлов будет разрешена запись, включая некоторые из /dev и символьные ссылки.
  • Файлы без владельца также могут быть индикатором внедрения в вашу систему взломщика. Файлы без владельца или с таковым без принадлежности к какой-либо группе можно обнаружить с помощью команды:

     root# find / -nouser -o -nogroup -print
    

  • Обнаружение файлов .rhosts должно быть вашей регулярной обязаностью как системного администратора, поскольку эти файлы ни в коем случае не должны быть в вашей системе. Помните, взломщику нужен только один небезопасный счет для возможного получения доступа ко всей вашей сети. Вы можете обнаружить все файлы .rhosts в вашей системе с помощью команды:
     root# find /home -name .rhosts -print
    
  • И наконец, перед тем как изменить права доступа каких-либо системных файлов, убедитесь, что вы понимаете, что делаете. Никогда не изменяйте права доступа файла только потому, что это является простым способом заставить что-то работать. Прежде чем изменять, всегда определяйте, почему файл имеет именно такие права доступа.

  • 5.1 Установки umask

    Команду umask можно использовать для определения режима создания файлов в вашей системе, принимаемого по умолчанию. Она представляет битовое дополнение до желаемого значения режима файла. Если файлы создаются без какого-либо специального набора прав доступа, то можно случайно разрешить чтение или запись тому, кто не должен иметь таких прав. Типично принятыми umask являются 022, 027 и 077, которые наиболее ограничивающие. Нормальным будет установить значение umask в /etc/profile, так чтобы оно применялось ко всем пользователям в системе. Например, вы можете иметь строку подобную следующей:

     # Значение umask по умолчанию для всех пользователей
     umask 033
    
    Убедитесь, что значение umask для администратора составляет 077, что запрещает чтение, запись и выполнения для остальных пользователей, до тех пор, пока это не будет изменено явно командой chmod(1).

    Если вы используете Red Hat и придерживаетесь их схемы создания ID пользователя и группы (собственная группа пользователя), то для значения umask необходимо использовать только 002. Это из-за того, что настройки по умолчанию определяют одного пользователя на группу.

    5.2 Права доступа файла

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

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

    Быстрое объяснение прав доступа в unix:

    Собственность - Какой пользователь(ли) и группа(ы) удерживает контроль установок прав вершины (node) и родителя вершины.

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

    Чтение:

  • Возможность просмотра содержимого файла
  • Возможность чтения каталога
  • Запись:

  • Возможность добавить или изменить файл
  • Возможность удалять или перемещать файлы в каталоге
  • Выполнение:

  • Возможность запуска программы или скрипта оболочки (shell script)
  • Возможность поиска в каталоге, в комбинации с правом чтения
  • Save Text Attribute: (Для каталогов)

    sticky бит также имеет отличное значение применимо к каталогам. Если sticky бит установлен для каталога, то пользователь может удалять только те файлы, владельцем которых он является, или к которым ему явно заданы права записи, несмотря на то, что ему разрешена запись в этот каталог. Это сделано для каталогов подобных /tmp, в которые разрешена запись всем, но в которых нежелательно разрешать любому пользователю удалять файлы от нечего делать. sticky бит видно как t в полном режиме отображения содержимого каталога. (long listing).

    SUID Attribute: (Для файлов)

    Описывает set-user-id права на файл. Если права доступа set-user-id установлены во "владелец" и файл исполняемый, то процесс, который запускает его, получает доступ к системным ресурсам основываясь на правах пользователя, который создал этот процесс. Во многих случаях это является причиной возникновения buffer overflow.

    SGID Attribute: (Для файлов)

    Если установлен в правах доступа "группы", этот бит контролирует "set group id" статус файла. При этом он работает также как и SUID, только задействована при этом группа, а не отдельный пользователь.

    SGID Attribute: (Для каталогов)

    Если вы установите SGID бит для каталога (командой "chmod g+s directory"), то файлы содержащиеся в этом каталоге будут иметь установки группы такие, как у каталога.

    Вы - Владелец файла

    Группа - Группа, к которой вы принадлежите

    Остальные - Любой в системе, кто не является владельцем либо членом группы

    Пример файла:

     -rw-r--r-- 1 kevin users 114 Aug 28 1997 .zlogin
     1й бит - каталог? (нет)
     2й бит - чтение владельцем? (да, для kevin)
     3й бит - запись владельцем? (да, для kevin)
     4й бит - выполнение владельцем? (нет)
     5й бит - чтение группой? (да, для users)
     6й бит - запись группой? (нет)
     7й бит - выполнение группой? (нет)
     8й бит - чтение остальными? (да, для остальных)
     9й бит - запись остальными? (нет)
     10й бит - выполнение остальными? (нет)
    

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

    -r-------- Разрешают чтение файла владельцем
    --w------- Разрешают владельцу изменение или удаление файла
    ---x------ Владелец может выполнять эту программу, но не скрипты
     командного интерпретатора, которые еще нуждаются в правах
     на чтение 
    ---s------ Будет выполняться с эффективным пользовательским ID = владелец
    -------s-- Будет выполняться с эффективным пользовательским ID = группа
    -rw------T Не обновлять "последнего времени изменения". Обычно используется
     для swap файлов 
    ---t------ Не действует. (прежде sticky бит)
    
    Пример каталога:
     drwxr-xr-x 3 kevin users 512 Sep 19 13:47 .public_html/
     1й бит - каталог? (да, содержит много файлов)
     2й бит - чтение владельцем? (да, для kevin)
     3й бит - запись владельцем? (да, для kevin)
     4й бит - выполнение владельцем? (да, для kevin)
     5й бит - чтение группой? (да, для users)
     6й бит - запись группой? (нет)
     7й бит - выполнение группой? (да, для users)
     8й бит - чтение остальными? (да, для остальных)
     9й бит - запись остальными? (нет)
     10й бит - выполнение остальными? (да, для остальных)
    

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

    dr-------- Можно просмотреть содержание, но нельзя прочесть атрибуты файла
    d--x------ Можно войти в каталог, а также использовать его в полной записи
     файла (т.е. с путем к нему)
    dr-x------ Владелец может теперь просмотреть атрибуты файла
    d-wx------ Файлы теперь можно создавать/удалять, даже если каталог
     не текущий
    d------x-t Предотвращает файлы от удаления остальными с правами записи.
     Используется для /tmp
    d---s--s-- Никаких действий
    

    Системные конфигурационные файлы (обычно в /etc) имеют обычно режим 640 (что означает -rw-r-----) и являются собственностью администратора. В зависимости от требований безопасности в вашей системе, вы можете изменить эти установки. Никогда не предоставляйте возможности записи в системные файлы для "группы" или "остальных". Некоторые конфигурационные файлы, включая /etc/shadow, должны разрешать чтение только администратору, а каталоги в /etc должны по крайней мере быть недоступны другим.

    SUID Shell Scripts

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

    5.3 Проверка целостности с помощью Tripwire

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

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

    Вы можете даже добавить в список задач crontab запуск tripwire c вашей дискеты каждую ночь и посылку результатов вам по почте утром. Что-то наподобие этого:

     # установить получателя
     MAILTO=kevin
     # запустить tripwire
     15 05 * * * root /usr/local/adm/tcheck/tripwire 
    
    будет отсылать вам по почте отчет каждое утро в 5:15.

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

    5.4 "Троянские кони"

    Термин "Троянский Конь" взят из великого творения Гомера. Идея состоит в том, что вы создаете программу, который чем-либо привлекателен, и каким-либо способом заставляете других людей скачать ее и запустить как администратор. Затем, пока они не разобрались, вы можете разрушить их систему. Пока они думают, что программа, которую они только-что вытянули, делает одну вещь (и может даже очень хорошо), она также разрушает их систему безопасности.

    Вы должны быть очень внимательны при установке новых программ на вашу машину. RedHat предоставляет MD5 контрольные суммы и PGP ключи для RPM файлов, так что вы можете проверить действительно ли вы инсталируете реальные продукты. Другие дистрибутивы имеют подобные методы. Вы никогда не должны запускать из под администратора бинарники, для которых у вас нет исходников, или о которых вы ничего не слышали! Немногие взломщики имеют желание выложить на всеобщее обозрение исходный код.

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

    6. Безопасность паролей & Шифрование

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

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

    Большинство Unix (и Linux не исключение) в основном используют односторонний алгоритм шифрования, называемый DES (стандарт шифрования данных /Data Encription Standard/), для шифрования ваших паролей. Эти зашифрованные пароли затем сохраняются (обычно) в файле /etc/passwd или (реже) в /etc/shadow. Когда вы пытаетесь зарегистрироваться, все, что вы набираете, снова шифруется и сравнивается с содержимым файла, в котором хранятся ваши пароли. Если они совпадают, должно быть это одинаковые пароли, и вам разрешают доступ. Хотя DES является двухсторонним (вы можете закодировать, а затем раскодировать сообщение, давая верный ключ), большинство Unix используют односторонний вариант. Это значит, что невозможно на основании содержания файла /etc/passwd (или /etc/shadow) провести расшифровку для получения паролей.

    Атаки "методом грубой силы", такие как "Взлом" или "John the Ripper" (см. ниже), могут часто угадать ваш пароль, если он не достаточно случает (рандомизирован). PAM модули (см. ниже) позволяют вам использовать различные программы шифрования для ваших паролей (такие как MD5 или подобные).

    Вы можете посетить http://consult.cern.ch/writeup/security/security_3.html для получения информации о том, как лучше выбрать пароль.

    6.1 PGP и криптование открытым ключом (Public Key Cryptography)

    Криптование открытым ключом, подобного как для PGP, происходит таким образом, что шифрование производится одним ключом, а расшифровка - другим. Традиционно в криптографии как для шифрования так и для расшифровки используется один ключ. Этот "личный ключ" (private key) должны знать обе стороны - передающая и получающая - а также кто-то, кто передаст его от одной стороны другой.

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

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

    PGP (Pretty Good Privacy) довольно хорошо поддерживается в Linux. Известно, что хорошо работают версии 2.6.2 и 5.0. Чтобы увидеть хороший пример PGP и как его использовать, почитайте PGP FAQ. http://www.pgp.com/service/export/faq/55faq.cgi Убедитесь, что вы используете версию применимую в вашей стране, поскольку существуют ограничения правительства США на экспорт - сильное шифрование рассматривается как военное оружие и запрещено к распространению в электронной форме за пределами страны. /Прим. перев. - Вроде как есть сдвиги в этом направлении. Недавно читал, что кто-то там выиграл процесс и получил разрешение на это дело - упор делался на свободу слова/.

    Существует также пошаговое руководство по настройке PGP в Linux, находится по адресу http://mercury.chem.pitt.edu/~angel/LinuxFocus/English/November1997/article7.html Оно написано для международной версии PGP, но оно легко адаптируемо для версии США. Вам также может понадобиться заплатка (patch) для некоторых из последних версий Linux, которая находится на ftp://sunsite.unc.edu/pub/Linux/apps/crypto.

    Больше информации по криптографии можно найти в RSA cryptography FAQ, доступном на http://www.rsa.com/rsalabs/newfaq/. Здесь вы найдете информацию по таким терминам как "Diffie-Hellman", "public-key cryptography", "Digital Certificates", и др.

    6.2 SSL, S-HTTP, HTTPS и S/MIME

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

  • SSL: - SSL, или Secure Sockets Layer, является методом шифрования разработанным Netscape для обеспечения безопасности в Сети. Он поддерживает несколько различных протоколов шифрования, и обеспечивает идентификацию (authentication) как на уровне клиента так и на уровне сервера. SSL работает на транспортном уровне, создает безопасный шифрованный канал данных, и, таким образом, может бесшовно шифровать данные многих типов. Наиболее часто это случается, когда вы посещаете защищенный узел для просмотра в режиме online секретного документа с помощью Communicator, который обеспечивает вас базовыми услугами безопасности связи, а также многими другими видами шифрования данных. Больше информации можно найти на http://www.consensus.com/security/ssl-talk-faq.html. Информация о других реализациях безопасности в Netscape, а также хорошая отправная точка по этим протоколам доступа по http://home.netscape.com/info/security-doc.html.

  • S-HTTP: - S-HTTP является еще одним протоколом, который реализует в Интернете сервис безопасности. Он был разработан для предоставления конфиденциальности, опознавания, сохранности, а также non-repudiability [ не спутайте с чем-либо еще ], в то же время имея механизмы управления многими ключами и криптографические алгоритмы путем выборочного согласования между участниками в каждой транзакции. S-HTTP ограничен специфическим программным обеспечением, которое реализует его, и шифрует каждое сообщение индивидуально. [ Из RSA Cryptography FAQ, стр. 138]

  • S/MIME: - S/MIME, или Secure Multipurpose Internet Mail Extension, является стандартом шифрования, используемым в электронной почте, или других типах сообщений в Интернете. Это открытый стандарт, который разработан RSA, и поэтому очень вероятно, что мы скоро увидим его в Linux. Больше информации по S/MIME можно найти по адресу http://home.netscape.com/assist/security/smime/overview.html.
  • 6.3 Реализация IPSEC в x-ядре Linux

    Наряду с CIPE и другими формами шифрования данных, существует также реализация IPSEC для Linux. IPSEC создан усилиями IETF для обеспечения криптографически безопасных соединений на уровне IP сети, который также предоставляет опознавание, сохранность, контроль доступа и конфиденциальность. Информацию по IPSEC и черновикам Интернета можно найти в http://www.ietf.org/html.charters/ipsec-charter.html. Там вы также можете найти ссылки на другие протоколы использующие управление ключами, на список рассылки и архивы IPSEC.

    Реализация для Linux, которая была разработана в Университете Аризоны, использует объектно-ориентированную структуру для реализации сетевого протокола называемую х-ядро. Детальнее на http://www.cs.arizona.edu/xkernel/hpcc-blue/linux.html. В двух словах, х-ядро является методом передачи сообщений на уровне ядра, что позволяет более простую реализацию.

    Как и с другими формами криптографии этот метод не распространяется с ядром из-за ограничений на экспорт.

    6.4 SSH (Secure Shell), stelnet

    SSH и stelnet - это программы, которые позволяют вам зарегистрироваться на удаленном сервере и иметь шифрованное соединение.

    SSH является набором программ используемым как более безопасный заменитель для rlogin, rsh и rcp. Он использует криптографию открытого ключа для шифрования соединения между двумя машинами, а также для опознавания пользователей. Его можно использовать для безопасной регистрации на удаленном сервере или копировании данных между двумя машинами, в то же время предотвращая атаки путем присоединения посредине (session hijacking) и обманом сервера имен (DNS spoffing). Он предоставляет компрессию данных в вашем соединение и безопасное X11 соединение между двумя машинами. Домашнюю Web страницу SSH можно найти по адресу http://www.cs.hut.fi/ssh/

    Вы также можете использовать SSH с вашей рабочей станции под Windows обращаясь к вашему Linux SSH серверу. Существует несколько бесплатных реализаций Windows клиентов, включая http://guardian.htu.tuwien.ac.at/therapy/ssh/, а также коммерческую реализацию от DataFellows, на http://www.datafellows.com/.

    SSLeay является бесплатной реализацией протокола Secure Sockets Layer от Netscape и состоит из нескольких приложений, таких как Secure telnet, модуль для Apache, нескольких баз данных, а также нескольких алгоритмов, включая DES, IDEA и Blowfish.

    Используя эту библиотеку был создан secure telnet, который выполняет шифрование через telnet соединение. В противовес SSH, stelnet использует SSL, Secure Sockets Layer протокол разработанный Netscape. Вы можете найти Secure telnet и Secure FTP начав с SSLeay FAQ, доступного на http://www.psy.uq.oz.au/~ftp/Crypto/

    6.5 PAM - Pluggable Authentication Modules

    Новые версии дистрибутива Red Hat распространяются с унифицированной схемой идентификации, называемой "PAM". PAM позволяет вам налету изменять ваши методы идентификации, требования, инкапсулировать все ваши локальные методы идентификации без перекомпиляции ваших программ. Описание настройки PAM выходит за рамки этого документа, поэтому за более детальной информацией сходите на web узел PAM. http://www.kernel.org/pub/linux/libs/pam/index.html

    Вот несколько вещей, которые вы можете делать с PAM:

  • Использовать не-DES шифрование для ваших паролей. (делая их более устойчивыми к взлому методом "грубой силы")
  • Устанавливать лимиты на ресурсы для ваших пользователей, чтобы они не могли выполнить сервисную атаку (количество процессов, количество памяти, и т.п.)
  • На лету активизировать теневые пароли (shadow password) (см. ниже)
  • Разрешать определенным пользователям регистрироваться только в определенное время и/или с определенного места
  • За несколько часов установки и настройки вашей системы вы можете предотвратить много атак еще до их возниконовения. Например, используйте PAM для запрещения широкого использования в системе файлов .rhosts в домашних каталогах пользователей добавлением этих строк к /etc/pam.d/login:

     #
     # Запретить для пользователей rsh/rlogin/rexec 
     #
     login auth required pam_rhosts_auth.so no_rhosts
    

    6.6 Криптографическая IP инкапсуляция (CIPE)

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

    CIPE шифрует данные на сетевом уровне. Шифруются пакеты, которые передаются между компьютерами в сети. Шифрующий код помещается недалеко от драйвера, который посылает и принимает пакеты.

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

    CIPE можно также использовать при тунелировании (tunnelling) для создания Виртуальных Частных Сетей (Virtual Private Networks). Преимущество низкоуровневого шифрования состоит в том, что оно позволяет прозрачную работу между двумя сетями, соединенными в VPN, без каких-либо изменений в программном обеспечении.

    Выдержка из документации по CIPE:

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

    Дальнейшую информацию можно найти на http://www.inka.de/~bigred/devel/cipe.html

    Также как и с другими формами криптографии, он не распространяется с ядром по умолчанию ввиду экспортных ограничений.

    6.7 Kerberos

    Kerberos является идентификационной системой, разработанной по проекту Athena в MIT. Во время регистрации пользователя, Kerberos идентифицирует его (используя пароль) и предоставляет пользователю способ доказать его идентичность другим серверам и компьютерам разбросанным в сети.

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

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

    Вы можете найти больше информацию по Kerberos на http://www.veritas.com/common/f/97042301.htm а сам пакет на http://nii.isi.edu/info/kerberos/

    [From: Stein, Jennifer G., Clifford Neuman, and Jeffrey L. Schiller. "Kerberos: An Authentication Service for Open Network Systems." USENIX Conference Proceedings, Dallas, Texas, Winter 1998.]

    6.8 Теневые пароли (Shadow passwords)

    Теневые пароли означают сокрытие секретной информации о ваших шифрованных паролях от обыкновенных пользователей. Обычно эти шифрованные пароли находятся у вас в /etc/passwd и открыты всем для чтения. Таким образом на этот файл можно напустить программу-расшифровщик, чтобы попытаться определить значения паролей. Пакет shadow записывает информацию о паролях в файл /etc/shadow, который могут читать только привилегированные пользователи. Для того, чтобы активизировать теневые пароли вам необходимо убедиться, что все ваши утилиты, которым необходим доступ к паролям, скомпилированы с поддержкой теневых паролей. PAM (см. выше), кстати, позволяет вам просто подключить shadow модуль и не требует перекомпиляции программ. Вы можете также почитать Shadow-Password HOWTO для получения более детальной информации, если это вам конечно нужно. Он доступен на http://sunsite.unc.edu/LDP/HOWTO/Shadow-Password-HOWTO.html Сейчас он скорее условный и не требуется в дистрибутивах, поддерживающих PAM.

    6.9 "Crack" и "John the Ripper"

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

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

    Существует целый ряд таких программ... наиболее заметные из них это "Crack" and "John the Ripper" http://www.false.com/security/john/index.html . Конечно, они заберут много вашего процессорного времени, но вы сможете с уверенностью сказать, сможет ли взломщик с помощью них получить ваши пароли, - сначала себе, а затем и пользователям указать слабые пароли. Заметьте, что взломщик для получения passwd должен был бы сначала использовать другие дыры в системе, но это уже более широкий вопрос, чем вы можете подумать.

    6.10 CFS - криптографическая файловая система и TCFS - прозрачная криптографическая файловая система

    CFS - это метод шифрования всей файловой системы, который позволяет пользователям сохранять в ней зашифрованные файлы. Он использует NFS сервер, запущенный на локальной машине. RPMS доступен на http://www.replay.com/redhat/ и больше информации о том как это работает на: ftp://ftp.research.att.com/dist/mab/

    TCFS является улучшенным вариантом CFS, поскольку более интегрирован с файловой системой, и, таким образом, прозрачен для всех пользователей, использующих зашифрованную файловую систему. Более детально на: http://edu-gw.dia.unisa.it/tcfs/

    6.11 X11, SVGA и экранная безопасность

    X11

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

    www.linuxcenter.ru

    Безопасность компьютеров 28-11-2006

    Власти США предупредили о кибератаке "Аль-Каеды" 02-12-2006 Безопасность компьютеров
    В четверг правительство США предупредило о возможных атаках на американские Интернет-сайты, принадлежащие банковским системам и фондовым биржам, со стороны террористической организации "Аль-Каеда". Как сообщает агентство Reuters, угроза распространяется на весь декабрь, начиная с пятницы. Предполагаемым источником угрозы является некая группировка под названием "ANHIAR al-Dollar", связанная с "Аль-Каедой". В качестве причины потенциальной киберат...

    Карта Администрация Реклама на сайте

    Темы статей
    В мире высоких технологий
         Рунет
         Железо
         Компьютерный Soft
           Безопасность компьютеров
           Ремонт компьютеров
         Связь

    Автопарк
    Ваши финансы
    Делаем покупки
    Строительство
    Все для ремонта и строительства
    Лакокрасочные материалы
    Ваш бизнес

     

    Последние статьи:
    Платный хостинг HostSpace - надежный платный хостинг в Украине. CGI-bin, Php, MySQL, почта. Круглосуточная поддержка.

    Linux Security HOWTO, v0.9.11, 1 Мая 1998 г.


    Подписка на 2007 год: Журналы Linux Format и Системный администратор
    Mandriva Corporate Server 4 и Mandriva Multi Network Firewall 2
    Mandriva Linux 2007 LinuxCenter Edition (3DVD) и Free Edition (1DVD)
    Коробочные версии Mandriva Linux 2007: Discovery, PowerPack и PowerPack+
    Предзаказы на ASPLinux: Greenhorn, Express, Standard и Deluxe

    Linux Security HOWTO, v0.9.11, 1 Мая 1998 г.
     
     
    Карта Администрация Реклама на сайте
    Copyright by www.techpro.com.ua.
    При цитировании прямая гипперссылка на techpro.com.ua обязательна