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

LXF91:15 мгновений безопасности

Материал из Linuxformat
(Различия между версиями)
Перейти к: навигация, поиск
(Новая: == 15 ценных советов по безопасности == ''Думаете, ваш компьютер с Linux защищен? Вы уверены? Даже самая безо...)

Версия 18:41, 10 марта 2008

Содержание

15 ценных советов по безопасности

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

Усильте пароли пользователей

Знаем, это похоже на надоевшую проповедь. Кто хоть раз читал это, читал и тысячу раз: слабый пароль – самая частая «точка входа» потенциального взломщика. Но к проповеди все глухи. В октябре прошлого года 34 тысячи паролей пользователей MySpace [myspace.com – популярный сайт и сетевое сообщество – прим. пер.] были похищены в результате атаки фишеров, реализованной через поддельную страницу входа в систему. MySpace получил серьезную пробоину, а эксперт по безопасности Брюс Шнайер [Bruce Schneier] – прекрасную возможность заглянуть в коллективный разум 34-х тысяч типичных пользователей компьютера. Тремя самыми популярными паролями оказались password1, abc123, а самым креативным – myspace1. Шнайер ехидно отметил, что пользователи MySpace как минимум научились добавлять цифры к легко угадываемому слову, хотя все еще используют символы только в нижнем регистре.

Вот такие пароли выбираются типичными пользователями для защиты своих драгоценных данных. Если вы недостаточно напуганы, скачайте инструмент взлома паролей вроде John the Ripper (www.openwall.com/john) и натравите его на свой файл с зашифрованными паролями (см. LXF84). Шнайер рекомендует брать пароль, не включающий ни обычные слова, ни какие-либо производные сокращения, ни даты, которые легко узнать: все они подвержены атакам по словарю. Смешивайте регистры и добавляйте небуквенные символы.

Установите пароль BIOS

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

Многие BIOS можно настроить на запрос пароля во время загрузки. Есть множество типов BIOS, и настройка будет зависеть от специфики вашего оборудования. Обычно, чтобы попасть в меню BIOS, следует удерживать [F2] во время загрузки машины, затем выбрать страницу Security, где вы сможете установить свой пароль. После этого единственным способом загрузить вашу систему, не зная пароля, будет очистка памяти BIOS – обычно тут не обойтись без вскрытия корпуса и извлечения бата- рейки материнской платы [не обольщайтесь – зачастую достаточно просто снять специальную перемычку; кроме того, некоторые версии BIOS принимают т.н. «инженерный пароль», – прим. ред.].

Установите брандмауэр

Пару лет назад считалось чистым безумием подключаться к Интернету без брандмауэра. Правда заключается в том, что брандмауэры воспринимаются совершенно неправильно. Они лишь блокирует доступ к определенным сетевым портам на вашей машине. Если нет сервиса, прослушивающего этот порт, злонамеренный удаленный процесс не получит доступа к вашей системе независимо от того, запущен бранд- мауэр или нет. Именно поэтому Ubuntu не запускает брандмауэр по умолчанию: там просто не работают никакие сетевые сервисы, которыми мог бы воспользоваться злоумышленник. Брандмауэр может помочь только в том случае, если к вашей машине осуществляются как доверенные, так и не заслуживающие доверия сетевые подключения. В этом случае брандмауэр будет оберегать небезопасные сервисы от доступа из потенциально опасной сети. Уязвимыми сервисами могут быть внутренний web-сервер или общие ресурсы NFS.

Функции брандмауэра в Linux фактически выполняются ядром, благодаря сложному инструменту iptables, используемому для филь- трации и перенаправления пакетов. Можно строить правила вруч- ную, используя команду iptables, но большинство пользователей предпочитают графический интерфейс. Хороший выбор – Firestarter: он предлагает «мастера», помогающего выполнить стандартную настройку и даже разделить ваше интернет-соединение с другими компьютерами локальной сети. Вы всегда можете проверить эффек- тивность защиты, используя для тестирования брандмауэра внешний сайт, например, Shields Up (www.grc.com/x/ne.dll?bh0bkyd2).

Разберитесь с правами

Многие из нас в курсе, что Unix-подобные ОС вроде Linux используют права для предоставления доступа к файлам и приложениям, но как убедиться, что они настроены должным образом? Взгляните на содержи мое своего каталога /home, набрав в командной строке ls -l /home. Вывод ls, вероятно, будет подобен этому:

drwxr-xr-x 66 graham graham 2904 2007-01-23 10:09 graham

В выводе будет запись для каждого пользователя вашей системы, и проблема заключается в строке прав доступа – drwxr-xr-x. Если коротко, то d – это признак каталога, rwx – права доступа владельца файла (чтение, запись и исполнение), первые символы r-x – права группы, а вторые r-x – права всех остальных. Следующая часть, graham graham,обозначает пользователя и группу, владеющих этим каталогом. Многие дистрибутивы глобально открывают домашние каталоги пользователей на чтение, а значит, каждый, имеющий доступ к вашей машине, сможет прочитать содержимое вашего домашнего каталога. Вам следует изменить права с помощью chmod. Например, chmod go-rx /home/graham отнимет доступ на чтение и исполнение у всех пользователей в этой же группе, а также у всех прочих пользователей.

Руководство по правам доступа для начинающих.

Следите за sudo

Для быстрого запуска приложений с привилегиями администратора системы в Ubuntu применяется утилита sudo. Именно для этого sudo и разработана. Но предоставление любому пользователю доступа через sudo может быть рискованно с точки зрения безопасности, поскольку вы не контролируете, кто и что запускает. Решение – разрешить использование sudo только конкретным пользователям и точно настроить, какой доступ и к каким средствам им необходим.

Для редактирования привилегий sudo существует файл конфигурации, но изменять его нужно собствен ным vi-подобным редактором под названием visudo. Первое, что нужно сделать – это отредактировать строку root ALL=(ALL) ALL, заменив root на список пользователей (через запятую), которых вы хотите допустить к командам, требующим повышенных привилегий. Другой частый пример – заменить секцию после ‘ALL=’ на список каталогов (тоже через запятую), к которым вы хотите предоставить доступ перечисленным пользователям: два наиболее типичных случая – /sbin и /usr/sbin. Чтобы подпускать к учетной записи root только пользователей – членов группы admin, введите следующее:

%admin ALL=(ALL) ALL

Не используйте setuid – правда!

Setuid – прекрасная практическая идея: это просто еще один бит прав доступа, наряду с чтением, записью и исполнением, позволяющий запускать команду с привилегиями владельца файла. То есть обычный пользователь может выполнять команды администрирования, если привилегии, требуемые для их выполнения, определены правом setuid. Setuid также полезен для приложений, работающих с оборудованием, доступным только администратору: например, приводов CD-RW. Но применение setuid создает значительный риск. Если использующая его команда по той или иной причине «рухнет», запустившему ее пользователю могут достаться привилегии «погибшей» программы. Плохие ребята, взламывающие Linux, точно знают, какие setuid-инструменты можно уговорить вести себя неправильно.

Хороший пример использования setuid – команда ping, требующая административных привилегий для получения доступа к сети.Команда ls -l /bin/ping выдаст следующее:

-rwsr-xr-x 1 root root 30804 2006-10-16 18:32 /bin/ping

Дополнительный символ s в секции прав показывает, что бит setuid установлен. Во время выполнения ping получает права пользователя-владельца файла, в данном случае это root. Оставить инструменты с установленным setuid в вашем дистрибутиве – приемлемый риск, но вы должны дважды подумать, прежде чем использовать его для упрощения жизни при написании своих собственных скриптов.

Запускайте проверку на вирусы

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

Наш любимый антивирусный пакет – ClamAV, имеющий версии для Mac и Windows, если вы хотите соблазнить друзей открытым ПО. Он полностью бесплатен, и база данных известных вирусов обычно обновляется в течение 24 часов с момента обнаружения нового вируса. ClamAV выиграл наше сравнение антивирусов в LXF74/75, поскольку он достаточно гибок для использования как на почтовом сервере, так и в настольной системе. Если он установлен, вы можете проанализировать любые подозрительные файлы, просто щелкнув на файле правой кнопкой мыши и выбрав пункт «сканирование на вирусы».

Закалите SSH

Теперь, когда вы сделали пароли более стойкими, захватить машину удаленно – через SSH – будет куда как труднее. Но вы можете сделать еще больше, чтобы быть уверенным, что какой-нибудь пацан с другого континента не покопается в ваших личных файлах. Первое – это запретить удаленный доступ пользователю root в конфигурационном файле SSH. Откройте /etc/sshd.conf или /etc/ssh/sshd_config в своем любимом текстовом редакторе и убедитесь,что опция PermitRootLogin установлена в no. Теперь вам, а заодно и пацану с другого континента, нужно будет получать доступ с правами root через учетную запись обычного пользователя.

Еще одна опция, которую стоит поискать в файле конфигурации – Protocol 2. Любые другие строки с ‘Protocol’ нужно закомментировать, поскольку они разрешают соединения, использующие менее безопасные ранние версии протокола, лишая вас при этом множества преимуществ.

Заприте SSH на ключ

Самый безопасный способ работать с SSH – это использовать для аутентификации соединения пару из открытого и закрытого ключей и запретить доступ к SSH-серверу с обычным паролем. Вы можете сгенерировать ключи на клиенте с помощью ssh-keygen -t dsa. У вас будет запрошено месторасположение ключа (его можно оставить по умолчанию), а затем парольная фраза. Если вы оставите парольную фразу пустой, при создании нового SSH-соединения никакие пароли запрашиваться не будут, и соединение будет установлено прозрачно. Это полезно для автоматизации таких задач, как удаленное резервное копирование, но каждый, имеющий копию этого ключа, сможет под ключиться к вашему серверу.

Следующий шаг – скопировать открытый ключ на сервер. Это выполняется командой

ssh-copy-id -i ~/.ssh/id_dsa.pub server_address

Теперь вы должны получить возможность подключаться к своему SSH-серверу, используя аутентификацию по ключу. Если вы столкнетесь с проблемами, первым делом убедитесь, что аутентификация по открытому ключу разрешена в файле конфигурации SSH (это выглядит как PubkeyAuthentication yes), а если это не поможет, убедитесь, что и ваш домашний каталог, и каталог .ssh на удаленной машине имеют права доступа ‘drwx------’. Наконец, когда все заработает, запретите в конфигурационном файле SSH аутентификацию по паролю.

Раздавайте свой открытый ключ

Если вы приедете на одну из крупных конференций разработчиков открытого ПО, например, OSCon, Akademy или Guadec, вы, вероятно, увидите странный пункт в программе мероприятия, называющийся ‘key signing party’ («вечеринка подписания ключей», не путайте с ‘key party’ [key party – вечеринка, в начале которой мужчины складывают ключи от машин в кучу, а в конце женщины выбирают случайный ключ, определяя тем самым своего сексуального партнера, – прим. пер.]). Это возможность для разработчиков поделиться открытыми PGP-ключами, а также единственный способ получить на 100% достоверный ключ, не перехваченный при пересылке (что известно как «атака посредника»). Пусть вы не разработчик, но распространение своего открытого ключа по доверенному каналу – прекрасный способ подтвердить свою личность, во многом подобный подписи в реальной жизни.

Сперва вам нужно создать ключ, набрав gpg --gen-key. Выберите опции по умолчанию с размером ключа ‘4096’ для параноиков и введите свой адрес электронной почты. Важнейшая часть – ключевая фраза, она используется для защиты вашего ключа таким же способом, как пароль защищает учетную запись. Чем длиннее и случайнее по своей природе эта фраза, тем сложнее ее взломать. Вы должны будете отправить идентификатор своего ключа на электронный адрес, прежде чем получить список всех ключей, которые собираетесь подписывать.

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

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