LXF71:Спецрепортаж

Материал из Linuxformat.

Версия от 11:32, 15 марта 2009; Yaleks (Обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Содержание

Блокируем хакеров

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

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

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

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

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

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

Если вам необходимо, можно построить полностью непроницаемую систему – все зависит от того, на какие компромиссы вы готовы пойти. Заблокированная система покажется очень недружественной каждому, кто работал с типичными «вольными» дистрибутивами (например, Mandriva). Но это крайность. как правило, для приемлемого уровня безопасности вполне достаточно отключить лишние сервисы и закрыть все ненужные порты брандмауэром. об этом и пойдет дальше речь.

Linux, Windows, BSD

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

Проект Honeynet (http://project.honeynet.org) «выставляет» непропатченные (имеющие “дыры” в безопасности) компьютеры в Интернет и измеряет время, проходящее, пока система не будет скомпрометирована (взломана). По тестам, компьютеры с Windows XP без запущенного брандмауэра взламываются очень быстро, доказывая тем самым важность Service Pack 2. С запущенным брандмауэром XP выглядит заметно лучше.

Удивительно, что победителем последнего конкурса Honeynet оказался Linux-дистрибутив Linspire, система, которую часто критикуют за то, что она по умолчанию предоставляет доступ с правами root. Но во внешний мир она открывает только один порт на брандмауэре, и тот только для ping-запросов. Ни один другой сервис, даже SSH, не предоставляется, что означает отсутствие других уязвимостей. Вот почему Linspire выжила.

Но Linspire не проектировалась как веб-сервер; она амбициозно претендует на роль настольной оС. По другую сторону находится OpenBSD – инструмент, который ставит безопасность во главу угла и постоянно следит за потенциальными проблемами. как заверяет тео де раадт (Theo de Raadt), основатель OpenBSD: «Всякий раз, когда вы пытаетесь использовать отдельный метод решения проблемы, он оказывается либо слишком медленным, либо слишком сложным, и когда он становится сложным, заканчиваются проблемы с безопасностью»

уяЗвимые местА LINUX-систем
серверы, такие как Apache, запускаются в DMZ, тем самым защищая вашу локальную сеть от непосредственных соединений из интернета.
серверы, такие как Apache, запускаются в DMZ, тем самым защищая вашу локальную сеть от непосредственных соединений из интернета.
КлАСС Desktop (рабочий стол)

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

ПОСлеДСтВИЯ шпионские программы «тралят» ваш компьютер, отыскивая ценную информацию, такую как cookie-файлы, которые содержат информацию о соединениях, и историю браузера.

леЧеНИе поддерживайте свежий антивирус и обновляйте браузер. Попробуйте антивирус ClamAV (см. страницу 48). Убедитесь, что срок действия cookie-файлов браузера истек. уяЗвимые местА LINUX-систем

КлАСС Домашняя сеть

СлАБОе МеСтО Неправильно настроенный файрвол, который позволяет всевозможные соединения с вашей системой.

ПОСлеДСтВИЯ Персональная информация, имеющаяся на вашем компьютере, может оказаться доступной через Интернет.

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

КлАСС беспроводная веть

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

ПОСлеДСтВИЯ любой, находящийся в непосредственной близости от вашей сети, может использовать ваше Интернет-соединение, или даже просмотреть ваши файлы, что еще ужаснее.

леЧеНИе Используйте шифрование (разъясняется на стр. 52). WPA – наилучшее решение, но и WAP лучше, чем ничего. Измените имя точки доступа или полностью отключите широковещательную рассылку имени.

КлАСС Локальная сеть

СлАБОе МеСтО Небезопасные сервисы, которые могут открыть доступ к вашему Пк в вашей сети.

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

леЧеНИе Создайте демилитаризованную зону (DMZ, см. ниже), т.е. некоторое пространство между локальной сетью и Интернетом, исключающее необходимость в непосредственном соединении.

вопрос баланса

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

Защити свою сеть

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

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

огненная стена

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

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

Хороший пример сервиса Linux, который небезопасен при подключенном Интернете – сетевая файловая система (NFS). Эта служба невероятно полезна в локальной сети, но пока вы четко не осознаете ее возможности, включать ее в Интернете не стоит.

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

подсКАЗКА по ЗАЩите APACHE

Некоторые программы (так называемые «роботы») анализируют историю использования вашего сайта. Многие из них собирают данные для поисковых машин и известны как пауки.

Для хорошо ведущего себя робота предполагается чтение и использование файла robots.txt в корневом каталоге вашего сайта. Этот файл сообщает роботу, какие файлы и директории могут быть изучены. Вам следует иметь файл robots.txt в корневом каталоге каждого веб-сайта. Исключите все каталоги со скриптами CGI (все, что помечено как ScriptAlias, такие как /cgi-bin), рисунки, данные для управления доступом и другое содержимое, которое не следует показывать миру.

Ниже приведен простой пример:

User-agent: *
Disallow: /image_dir
Disallow: /cgi-bin

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

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

Как использовать ClamAV

Если злонамеренная программа (malware = malicious software) не может войти в «переднюю дверь», она попытается найти другой путь.Лучший способ защититься от таких атак – это использование антивирусных программ. Существует замечательный антивирус, распространяемый по лицензии GPL, - ClamAV, который работает либо в командной строке, либо непосредственно из вашего почтового клиента.

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

Чтобы запустить его на своем компьютере, вам нужно сначала установить пакет (rpm, deb), либо скачать последнюю версию с сайта ClamAV (http://www.clamav.net). Самостоятельная компиляция выполняется легко, но предварительно вам нужно будет создать пользователя clamav, и после инсталляции сделать файлы данных доступными для этого пользователя:

useradd clamav
groupadd clamav
cd clamav-0.86.1/
./configure –prefix=/usr
make install
chown –R clamav /usr/share/clamav

Вам также потребуется отредактировать пару конфигурационных файлов: /usr/etc/clamd.conf и /usr/etc/freshclam.conf. Самая важная вещь – удалить или закомментировать строку Example в обоих файлах. В clamd.conf нужно проверить параметры User, LocalSocket, LogFile, LogFileMaxSize и ArchiveMaxFileSize; в то время как в freshclam.conf отрегулируйте UpdateLogFile, DatabaseOwner, DatabaseMirror и Checks.

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

теперь создайте пару нужных файлов и директорий, и убедитесь, что они доступны для пользователя clamav:

mkdir /var/lib/clamav
chown –R clamav:clamav /var/lib/clamav
touch /var/log/freshclam.log
chown clamav:clamav /var/log/freshclam

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

ClamAV update process started at Fri Jul 22 09:39:37 2005
Downloading main.cvd [*]

Наконец, запустите оба демона ClamAV, выполнив команды freshclam –d и clamd.

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

# clamscan clamav-0.86.1/test
-----------SCAN SUMMARY----------
Known viruses: 36088
Engine version: 0.86.1
Scanned files: 7
Infected files: 5
Data scanned: 0.00 MB
Time: 1.101 sec (0 m 1 s)

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

мАрК КоКс о беЗопАсности APACHE

Марк Дж. кокс работает в команде безопасности Red Hat и является членом команд безопасности проектов Apache и OpenSSL. Мы спросили его, насколько уязвим Apache.

«я думаю, что многие люди воспринимают веб-сервер Apache как плохо защищенный, из-за дурного наследия прошлых «дыр», но это на самом деле миф. Apache Software Foundation объявляет проблемы безопасности критическими, если их можно использовать для удаленного доступа к серверу; то, что может эксплуатировать какой-либо «червь». Это также соответствует и тому, как Microsoft определяет критические уязвимости. В истории выпущенных версий сервера Apache, начиная с версии 1.3.0 в 1998 году и до июля 2005-го было обнаружено только пять критических уязвимостей:

Пакетные файлы Windows

Март 2002, Apache 1.3

Эта «дыра» может быть использована на системах Windows, которые используют пакетные bat-файлы как CGI-сценарии. Ошибка кодирования «чанка» (chunk) Июнь 2002, Apache 1.3 и 2.0 Атакующий может послать злонамеренный запрос, который на некоторых системах семейства BSD может привести к выполнению произвольного кода.

Фильтрация устройств MS-DOS

январь 2003, Apache 2.0

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

Уязвимость в ARP

Май 2003, Apache 2.0

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

Переполнение «кучи» IPv6

Сентябрь 2004, Apache 2.0

Позволяет удаленное выполнение кода на некоторых BSD-системах.

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

Для защиты от будущих червей некоторые поставщики Linux начали предоставлять расширенную защиту. Fedora Core использует ряд оборонительных технологий на различном уровне, разработанных для предотвращения общей эксплуатации недостатков, таких как переполнение буфера и двойное освобождение, и рандомизацию, пытаясь уменьшить риск вторжения червей путем добавления разнородностей. Fedora Core даже по умолчанию использует целевую политику SELinux, чтобы защитить Apache. Но и учитывая все это, очень важно поддерживать систему в актуальном состоянии, и лучший способ избежать того, чтобы быть пойманным на той или иной уязвимости, – это подписаться на списки анонсов безопасности для программного обеспечения, которое вы используете. Поставщики дистрибутивов Linux поддерживают собственные списки рассылки, и они объясняют, как каждая проблема влияет, в частности, на данный дистрибутив»

Укрепите свою систему

Узнайте о Bastille, Nessus и John The Ripper – инструментах с жесткими названиями, которые делают всю грязную работу.
ПОДСКАЗКА ИСПОЛЬЗОВАНИЕ SUDO

команда su – это часть каждой поставки Linux – на самом деле, даже каждой поставки Unix. Но она несколько ограничена; чтобы запустить командную оболочку или исполнить команду от имени другого пользователя, su требует от вас ввода пароля этого пользователя и, по сути, вы становитесь этим пользователем (хотя и временно). Но есть более хорошая команда, которую вы можете использовать: sudo, что расшифровывается как «superuser do». она позволяет вам запускать команды, требующие особых привилегий, без действительного получения прав суперпользователя, даже временного. В отличие от команды su -c полномочия могут быть делегированы без использования пароля пользователя root, например:

sudo ifconfig eth0

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

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

Многие дистрибутивы приспосабливают пакеты, которые они включают, к целевой аудитории. Попробуйте сравнить Red Hat Enterprise Linux с Fedora, или взглянуть на некоторые компоненты ядра, исключаемые из типичных дистрибутивов, предназначенных для предприятий, чтобы понять, что подход «лучше меньше, да лучше» является первостепенным для безопасности сервера.

как указал Марк кокс (Mark Cox), один из разработчиков Red Hat, когда его спросили, какая часть стандартного дистрибутива Linux наиболее уязвима: «Это зависит от того, что вы рассматриваете как уязвимость. Если вы запускаете веб-сервер, тогда все, о чем вам следует беспокоиться – это ваши веб-приложения, а если вы запускаете почтовый сервер, то объектом заботы становится Sendmail. В отношении же того, что является наиболее уязвимым, то, вероятно, это ядро».

решение SELINUX

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

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

Это SELinux, серия патчей для ядра Linux с поддержкой некоторых утилит, которые могут обеспечивать обязательный контроль доступа, изолируя процесс и их области памяти от других процессов и пользователей. Пакеты SELinux доступны для Fedora Core и Gentoo, но могут также быть встроены в исходный код, предоставляемый NSA. Интересно, что Novell выбрала другой маршрут, приобретя компанию, которая предоставляет альтернативу пакетам SELinux, под названием Immunix.

бушующие скрипты

ФортиФиКАЦия с BASTILLE

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

На экране Title вам скажут, что главная особенность Bastille – это то, что каждый шаг в процессе конфигурации сопровождается детальным описанием того, что именно будет изменено. Вы можете уменьшить подробность этих разъяснений, щелкнув по кнопке Explain Less. щелкнув на OK, вы пройдете по каждому модулю безопасности Bastille, оставляя маленькую метку слева от каждого модуля, который будет завершен..

Первый модуль, называемый FilePermissions, один из наиболее важных, поскольку он позволяет вам ограничить доступ к важнейшим файлам вашей системы, и ограничивает использование «SUID root». обе функции жизненно важны, чтобы снизить уязвимость вашей системы. Другие модули для рассмотрения – AccountSecurity и MiscellaneousDaemons. Первый дает вам дополнительный контроль над пользовательскими бюджетами и сроком действия их паролей, в то время как второй позволяет вам безопасно отключать ненужные сервисы. только модуль Firewall требует осмотрительности, поскольку он может пересекаться с вашими текущими настройками. остерегайтесь выбирать «No» в конфигурации файрвола, если вы не до конца понимаете, что делает.

В модуле End Screen вы можете сохранить конфигурацию, и поскольку вы настроили каждый из модулей, вы можете теперь применить сделанные изменения. Bastille продолжит работу с новыми настройками после перезагрузки системы. Вы можете проверить все изменения, сделанные Bastille, просмотрев ее замечательные лог-файлы (информация записывается в /var/log/Bastille/action-log вслед за подзаголовком ACTION, WARNING или NOTE). основываясь на этих данных, легко можно сказать, где произошла ошибка.

Bastille – написанный на Perl «укрепляющий» скрипт, который «берет» системного администратора за руку и проводит тур по местам, связанным с безопасностью системы. Bastille уделяет внимание обучению и укреплению, на каждом этапе даются разъяснения того, что скрывается за тем или иным процессом. они включают изменение прав доступа к файлам, вынужденное обновление паролей и блокирование неиспользуемых сервисов. Неважно, будет ли это именно Bastille, но сама идея использовать скрипт – хорошая тактика. Вы можете облегчить свою работу при переходе на другой компьютер, используя сохраненную ранее конфигурацию.

Bastille можно скачать с сайта http://www.bastille-linux.org, там доступны пакеты для большинства популярных дистрибутивов, включая Red Hat, Mandriva и SUSE. Единственное требование – у вас должен быть установлен Perl с поддержкой Perk/Tk для графического интерфейса.

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

Чтобы познакомиться с Bastille, следуйте нашим указаниям во врезке «Фортификация с Bastille».

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

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

  • Средства Backdoor
  • Файрволы
  • Серверы FTP
  • Удаленное получение командной оболочки
  • разделение файлов в сетях “peer-to-peer”
  • Удаленный доступ к файлам

Узнать больше о Nessus вы сможете на странице http://www.nessus.org. На прилагаемом диске вы найдете многие рассмотренные здесь приложения.

безопасные пароли

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

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

Вы можете воспользоваться такими инструментами, как John The Ripper, чтобы проверить пароли вашей системы на уязвимость, поскольку выбор хорошего – верный способ избежать многих проблем. Еще один совет – сложный пароль, записанный на бумажке, предпочтительнее слабого, хранящегося только в вашей памяти. Лучший пароль не определяется вашей фантазией, а представляет собой смесь случайных символов, включая буквы в верхнем и нижнем регистре, цифры и специальные символы. также хорош способ, когда в словах или фразах определенные символы заменяются другими, например, «cH@7acT3rs» – вы можете приспособить и более подходящие группы символов.

Ripper в действии

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

wget http://www.openwall.com/john/c/john-1.6.tar.gz
tar xvzf john-1.6.tar.gz
cd john-1.6/src
makelinux-x86-any-elf

Двоичный файл размещается в каталоге run, и запускается командой john, за которой следует указать место размещения вашего файла паролей shadow, хранящего все зашифрованные пароли ваших системных пользователей. очевидно, команду john нужно выполнять с привилегиями root, чтобы получить доступ к файлу паролей:

./john /etc/shadow
Loaded 3 passwords with 3 different salts
(OpenBSD Blowfish [32/32])
test (test)

JTR выводит пароли, которые ему удалось взломать. В приведенном выше примере был найден пароль «test99999», принадлежащий пользователю test. На это JTR потребовалось менее секунды. Нажав любую клавишу, вы можете посмотреть, на каком этапе сработала атака по словарю. JTR сохраняет детальную информацию по каждому взломанному бюджету пользователя в файле john.pot, который также гарантирует, что не будет попыток взломать подобные пароли при следующем запуске. Вы можете проверить, чьи пароли столь успешно подвергаются взлому, используя команду show:

./john –show /etc/shadow
test:test99999:12986:0:99999:7:::
1 password cracked, 2 left

Это весьма «просвещающая» программа, испытайте ее!


уКрепЛяем SSH

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

ssh-keygen -t rsa Эта команда генерирует пару ключей для использования в процессе аутентификации. По умолчанию, оба ключа записываются в пользовательский каталог .ssh. Если вы оставите парольную фразу пустой, SSH не потребует идентификации пользователя при входе в систему.
ssh-keygen -t rsa Эта команда генерирует пару ключей для использования в процессе аутентификации. По умолчанию, оба ключа записываются в пользовательский каталог .ssh. Если вы оставите парольную фразу пустой, SSH не потребует идентификации пользователя при входе в систему.
ssh-copy-id -i ~/.ssh/key.pub user@hostname Скопируйте публичный ключ на хост-компьютер. Использование ssh-copy-id гарантирует, что публичный ключ получит правильные права доступа на удаленном хосте, но ничто не мешает вам сделать это вручную.
ssh-copy-id -i ~/.ssh/key.pub user@hostname Скопируйте публичный ключ на хост-компьютер. Использование ssh-copy-id гарантирует, что публичный ключ получит правильные права доступа на удаленном хосте, но ничто не мешает вам сделать это вручную.
chmod –R 700 ~/.ssh Все ключи должны быть доступны для чтения только пользователю. Локальный приватный ключ требуется переименовать в ~/.ssh/identity. Удаленный публичный ключ нужно переименовать в ~/.ssh/authorized_keys.
chmod –R 700 ~/.ssh Все ключи должны быть доступны для чтения только пользователю. Локальный приватный ключ требуется переименовать в ~/.ssh/identity. Удаленный публичный ключ нужно переименовать в ~/.ssh/authorized_keys.
ssh user@hostname Удаленный хост использует публичный ключ, чтобы зашифровать сообщение, которое можно расшифровать только локальным приватным ключом, и тем самым авторизовать ваше соединение. Наконец, добавьте параметр PasswordAuthentication no в файл /etc/ssh/sshd_conf.
ssh user@hostname Удаленный хост использует публичный ключ, чтобы зашифровать сообщение, которое можно расшифровать только локальным приватным ключом, и тем самым авторизовать ваше соединение. Наконец, добавьте параметр PasswordAuthentication no в файл /etc/ssh/sshd_conf.

Шифруй свои файлы

Как использовать ключи, оберегающие ваши данные от любопытных глаз
подсКАЗКА нАстройКА SYSLOG

Всякий раз, когда syslogd, демон системы syslog, получает сообщение, он обрабатывает его, основываясь на типе сообщения (так называемой facility) и его приоритете. Зависимость действий syslog от типа и приоритета сообщения определяется в файле /etc/syslog.conf. каждая строка этого файла обозначает один или несколько переключателей тип/приоритет, за которым следует выполняемое действие; переключатель состоит из указания одного или нескольких типов сообщения и одного приоритета.

Пример строки в syslog.conf:

mail.notice mail.notice

Здесь mail – это тип сообщения (категория), а notice - уровень приоритета.

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

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

основы шифрования

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

одной из первых утилит, привлекшей значительное внимание, была Pretty Good Privacy (PGP). она была разработана Филипом Циммерманом (Philip Zimmerman) в 1991 году, чтобы обеспечить ему безопасное общение на BBS, и затем он сделал необычный шаг, предоставив программу бесплатно для некоммерческого использования, и даже включая исходные коды.

Несмотря на проблемы, связанные с запретом правительства США на экспорт криптографического По, PGP стали доверять защиту всех видов данных, от файлов до электронных писем.

во время сеанса

PGP действует довольно разумно, используя высокую нагрузку на процессор, который создает асимметричные ключи. он шифрует данные, используя сессионный ключ. Это симметричный ключ, который генерируется случайным образом в момент шифрования. Сессионный ключ затем шифруется с использованием публичного ключа получателя, и они объединяются в общий пакет. Чтобы расшифровать сообщение, асимметричный секретный ключ используется для расшифровки сессионного ключа, которым затем декодируются собственно данные.

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

Вероятно, наиболее значимой разработкой в рамках стандарта OpenPGP, применительно к Linux, является GNU Privacy Guard. он широко известен как GnuPG, и стал стандартным средством шифрования для файлов и передачи электронных сообщений, когда используется открытое По. Вы можете обнаружить его встроенным в пользовательские приложения, такие как Evolution и KMail, равно как и в различные интерфейсы (front-end) к основным утилитам командной строки.

Как использовать GnuPG

Создание ключей с помощью GnuPG выполняется очень просто следующей командой:

gpg--gen-key

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

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

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

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

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

шифрование с помощью KMail

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

Чтобы эта удивительная функция заработала, вам сначала нужно сообщить KMail, какие ключи использовать. Установите это, выбрав пункт меню Settings > Configure KMail > Identities. когда вы откроете страницу Identity, щелкните по закладке Cryptography.

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

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

оба эти инструмента доступны в окне KMail Composer, а также через пункт меню Options или иконки «Перо» или «Замок» на панели инструментов. отправка подписанного сообщения не требует вмешательства пользователя, но для шифровки сообщения вам нужно указать оба ключа - ваш собственный и ключ получателя.

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

брюс шнАйер (BRUCE SCHNEIER) об уГроЗАХ шиФровАнию

брюс Шнайер - гуру в вопросах безопасности. Это может прозвучать как преувеличение, но брюс часто подтверждал это на практике. он разработал один из основных соперничающих с AES стандартов шифрования - Twofish. он проигрывает методу Rijndael, но многие рассматривают Twofish как достаточно значимый. Его интересы простираются от сетевой до национальной безопасности. как раз сейчас он работает над разнообразными проектами, включая идентификацию авиапассажиров, радиочастотные (RFID) паспорта, национальные идентификационные карты и безопасное голосование. Мы попросили брюса прокомментировать некоторые проблемы, с которыми столкнулись современные технологии шифрования, и в ответ получили ряд ссылок на его удивительный web-дневник о безопасности (http://www.schneier.com/blog) и его собственное изложение.

LXF: Что вы думаете о непропорциональности времени, которое тратится на дискуссии о прочности одних методов шифрования по сравнению с другими?

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

LXF: Насколько уязвим хэширующий алгоритм SHA-1, и как обстоят дела с поиском коллизий (данных, отличающихся от оригинальных, но дающих такой же хэш)? Как нам следует его использовать, имея в виду миграцию на лучшее решение?

БШ: коллизии в SHA-1 можно обнаружить в 269 расчетах, примерно в 2000 раз чаще, чем при прямом переборе. В настоящее время это предел возможности для текущих технологий.

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

Но есть одна старая поговорка в NSA: «Атаки всегда получаются лучше; хуже они никогда не становятся». как раз такая атака строится на других документах, описывающих атаку на упрощенную версию SHA-1, SHA-0, MD4 и MD5, другие исследования будут основываться на этих результатах. Атака на SHA-1 продолжает улучшаться, другие читают об этом и разрабатывают более быстрые подходы, оптимизации и т.д. И закон Мура будет продолжать действовать, делая даже существующие атаки более быстрыми и доступными.

LXF: Как мы можем защититься от плохо реализованного шифрования, такого как схема Advanced Encryption в WinZip?

БШ: В общем-то, никак. Мы должны доверять разработчикам.

LXF: Вы считаете, что пароли следует лепить на корпус вашего монитора?

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

4 упреждающих инструмента безопасности

Ethereal

Анализатор сетевых протоколов

  • рАЗрАботчиК: Ethereal Software
  • сАйт: http://www.ethereal.com
  • ЦенА: бесплатно по лицензии GPL

ПрИНЦИП ДЕйСтВИя Ethereal - сетевой аналог дизассемблера, перехватывающий данные, передаваемые по сети, на диск и расшифровывающий переданные инструкции. он в равной степени полезен как для изучения поведения вашей сети, таки и для отслеживания жульнических паке- тов, приходящих на ваш Пк. В основном окне вам нужно захватить вывод с вашей сетевой карты, после чего он будет отображен в главном списке просмотра. Вы можете с легкостью узнать адреса источника и приемника каждого пакета, а также используемый протокол. Этот инструмент ярко показывает уязвимость незащищенной системы.

KSytemLog

KDE-инструмент для просмотра лог-файлов

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

Open Source Tripwire

Сетевой аудитор

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

Это эффективный способ борьбы с руткитами (rootkit). руткит содержит файлы-заменители для некоторых центральных утилит Linux, предоставляя хакеру возможность отслеживать пароли или редактировать конфигурационные файлы. Tripwire предупредит системного администратора, когда такие жизненно важные файлы будут изменены.

Установка очень проста. Вам нужно предоставить пароль для подписи конфигурационных файлов прежде чем вы начнете с ней работать, после чего достаточно инициализировать и заполнить базу данных с помощью команды tripwire -- init. команда tripwire --check используется для проверки целостности системы.

Nmap

Сетевой аудитор

ПрИНЦИП ДЕйСтВИя Nmap пригоден, если вы желаете проверить безопасность своей системы. Для этого же используется и Nessus, и при всем при этом им столь же успешно пользуются и хакеры. Хотя он был разработан для работы в больших сетях, он так же хорошо работает и на отдельных системах. Nmap сканирует ваш компьютер на наличие открытых портов, и путем анализа сетевых пакетов зачастую оказывается способным определить сервисы и их версии, запущенные на вашей системе, равно как и саму операционную систему.

к Nmap имеется пользовательский интерфейс, но по своей сути это инструмент командной строки, и различные опции позволяют вам сканировать систему с различной степенью скрытности.

Например, команда nmap -v -sS -O 127.0.0.1 просканирует ваш собственный компьютер, используя метод TCP SYN, и выведет список открытых портов. Нужно знать, что сканирование удаленных компьютеров инструментом типа Nmap, рассматривается многими людьми как акт агрессии. Вам следует использовать подобные инструменты только на компьютерах, за которые вы отвечаете.

что нужно сделать для повышения безопасности

Изучив теорию, перейдем к практике – здесь представлены 9 важнейших вещей, которые вы должны знать, чтобы поддерживать защиту своей системы.
бЛАГодАрности

большое спасибо издательству O’Reilly за разрешение использовать некоторые замечательные советы из книги «Linux Server Security», 2-е издание, для наших подсказок. Спасибо также Марку коксу и Брюсу Шнайеру за помощь и их вклад в эту статью.

«Дыры» в безопасности нужно устранять

Сложно выразить всю важность этого утверждения в печатном слове, но это факт: ваш Linux включает сотни программ, которые составляют единое целое. Если одна из них имеет дыру в безопасности, вы серьезно рискуете. решение очень простое: используйте менеджер пакетов для обновления всех компонентов за один раз. Если вы используете дистрибутив Mandriva, выберите Updates в Mandriva Control Center. Пользователи SUSE могут использовать Online Update из YaST.

Взламывайте свои собственные пароли

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

Проверяйте свой файрвол

конечно, он защищает вас, однако как вы узнаете, что ваш дистрибутив правильно настроен и не имеет открытых дыр в Интернет-сервисах? Для наилучшей проверки вам нужно работать на компьютере вне вашей локальной сети. Если у вас есть доступ к другому компьютеру, просто запустите nmap -sTUR -F -P0 -O hostname от имени пользователя root. Вы можете также воспользоваться внешними инструментами, основанными на веб-интерфейсе, такими как ShieldsUP (http://www.grc.com/default.htm), которые предоставят отчет обо всех найденных открытых портах.

Шифруйте свою почту

Ежедневно люди пересылают информацию через Интернет, которую, в общем-то, несложно скопировать. Если вы сделаете доступным свой публичный ключ, люди смогут отправлять вам сообщения, которые сможете прочитать только вы. Наберите gpg --gen-key, чтобы создать секретный и публичный ключи. Вы можете экспортировать ваш публичный ключ в файл с помощью команды gpg --export -a -o pubkey.txt. Затем вам нужно будет опубликовать этот ключ на сайте, где ваши друзья смогут его получить, например, на http://subkeys.pgp.net. Импортировать публичные ключи других людей вы можете командой pgp --import <Filename>.

Заставляйте использовать пароль при загрузке системы

Добавьте строку «password=secretword» в ваш файл /etc/lilo.conf, затем выполните как root команду lilo, чтобы сохранить изменения. Вы можете также, возможно, как дополнительный уровень защиты, добавить пароль в ваш системный BIOS.

Используйте шифрование в вашей сети Wi-Fi

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

Проверяйте свои системные лог-файлы

Признаки угрозы безопасности зачастую появляются сначала в них. Лог-файлы размещаются в вашем системном каталоге /var/log, и большинство системных событий заносится в файл Messages. Для решения проблем с файрволом в SUSE используется файл firewall, куда заносятся все отброшенные пакеты, в то время как Mandriva использует syslog. отобразить несколько последних строк лог-файла можно, используя команду tail -f /var/log/syslog.

Запретите доступ с IP-адресов злоумышленников

отредактируйте файлы /etc/hosts.allow и /etc/host.deny на вашем сервере, чтобы предоставить или запретить доступ с определенных IP-адресов к сервисам, запущенным на вашем сервере. Поскольку hosts.allow обрабатывается перед hosts. deny, вам нужно быть осторожным, чтобы не перезаписать нужные инструкции. Чтобы запретить все соединения, за исключением особо объявленных, добавьте ALL : ALL в файл hosts.deny и ALL : .yourhostnam.org в hosts.allow.

Очищайте историю командной оболочки

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

КниЖнАя поЛКА о беЗопАсности

Дополнительная литература для тех, кто хочет знать больше …

Шифрование
  • Applied Cryptography /Прикладная криптография/ (Шнайер)
  • MaliciousCryptography /Злонамеренная криптография/ (Йонг и др.)
  • PracticalCryptography /Практическая криптография/ (Фергюсон и др.)
  • SSH: The Definitive Guide /SSH: Полное руководство/ (Баррет и др.)
Интернет
  • BuildingInternet Firewalls /Построение файрволов в сети Интернет/ (Цвики и др.)
  • ManagingSecurity with Snort /Управление безопасностью с помощью Snort/ (Кокс и др.)
  • Nessus, Snort, and Ethereal Power Tools /Инструменты Nessus, Snort и Ethereal/ (Касвел и др.)
  • PracticalUNIX & Internet Security /Практический UNIX и безопасность в Интернет/ (Гарфункел и др.)
Серверы
  • Hacking Linux Exposed /Взлом уязвимостей Linux/ (Ли и др.)
  • Hardening Linux /Укрепляем Linux/ (тюрнбал)
  • LinuxSecurity Cookbook /руководство по безопасности Linux/ (баррет и др.)
  • LinuxServer Security /безопасность серверов Linux/ (бауэр)
  • SELinux (Маккарти)
Общие
  • BeyondFear /За безопасность/ (Шнайер)
  • MaximumLinux Security / Максимальная защита Linux/ (рэй и др.)
  • The Art of Deception / Искусство обмана/ (Митник)
  • The Art of Intrusion/Искусство вторжения/ (Митник)
Личные инструменты
  • Купить электронную версию
  • Подписаться на бумажную версию