Журнал LinuxFormat - перейти на главную

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

Материал из Linuxformat
Перейти к: навигация, поиск

Содержание

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

Действительно ли нам не нужно беспокоиться о безопасности, если мы используем 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 может установить.

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

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

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

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

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

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


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

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)

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


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

Узнайте о Bastille, Nessus и John The Ripper – инструментах с жесткими названиями, которые делают всю грязную работу.


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

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

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

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


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

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

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


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

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

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

Персональные инструменты
купить
подписаться
Яндекс.Метрика