Рассмотрены вопросы настройки ОС Linux на максимальную производительность и безопасность. Описаны потенциальные уязвимости и рекомендации по предотвращению возможных атак. Дается подробное описание настройки прав доступа и конфигурирования сетевого экрана. Показано, как действовать при атаке или взломе системы, чтобы максимально быстро восстановить ее работоспособность и предотвратить потерю данных.
Для пользователей, администраторов и специалистов по безопасности
Содержание:
Предисловие 1
Глава 1 - Введение 2
Глава 2 - Установка и начальная настройка Linux 8
Глава 3 - Добро пожаловать в Linux 15
Глава 4 - Управление доступом 30
Глава 5 - Администрирование 51
Глава 6 - В стиле Samba 60
Глава 7 - Web-сервер 64
Глава 8 - Электронная почта 71
Глава 9 - Шлюз в Интернет 75
Глава 10 - Передача файлов 83
Глава 11 - DNS-сервер 90
Глава 12 - Мониторинг системы 93
Глава 13 - Резервное копирование и восстановление 105
Глава 14 - Советы хакера 108
Приложение 1 - Команды FTP-протокола 125
Приложение 2 - Полезные программы 125
Приложение 3 - Интернет-ресурсы 125
Источники информации 125
Михаил Фленов
Linux глазами хакера
Предисловие
Данная книга посвящена рассмотрению одной из самых популярных операционных систем (ОС), устанавливаемых на серверы - ОС Linux. Для домашнего применения эта система пока еще не пользуется такой популярностью, как среди профессиональных администраторов, но в последнее время наметились предпосылки для захвата и этого рынка.
Установка ОС становится все проще, а графический интерфейс и удобство работы в некоторых случаях не уступает самой прославленной в среде малого бизнеса ОС Windows.
Эта книга будет полезна администраторам Linux и тем пользователям, которые хотят познакомиться с этой системой поближе. Рассматриваемые вопросы настройки и безопасности пригодятся специалистам, использующим различные ОС, потому что большая часть информации не привязана к определенной системе.
Вы сможете узнать, как хакеры проникают на серверы и защититься от вторжения. Так как некоторые примеры из этой книги могут быть использованы не только для обороны, но и для нападения, я хотел бы предостеречь юных взломщиков. Здоровое любопытство - это хорошо, но помните, что правоохранительные органы не спят и всегда добиваются своего. Если один раз вам повезло со взломом и никто не обратил на это внимания, то в следующий раз вы можете оказаться в руках правосудия.
Часть книги написана с точки зрения хакера и демонстрирует, как они проникают в систему. В надежде на то, что эту информацию не будут использовать для взлома серверов, я старался сделать упор именно на защиту и некоторые вещи оставлял за пределами изложения или просто не договаривал, чтобы не появилось соблазна воспользоваться методами хакеров и нарушить закон. Конечно же, чтобы реализовать мои идеи (довести до логического конца), нужно потратить несколько минут на программирование или на поиск в Интернете. Но несмотря на то, что книга может послужить отправной точкой для хакера, я надеюсь, что этого не произойдет. Помните о законности ваших действий.
Любой объект может быть рассмотрен с разных точек зрения. Простой пример из жизни - нож, являясь столовым предметом, при определенных обстоятельствах становится орудием убийства или средством самообороны. Точно так же и методы хакера, которые будут рассматриваться в этой книге, могут быть восприняты как советы для повседневного ухода за ОС, способы защиты от проникновения и средства взлома системы. Я надеюсь, что вы не будете использовать полученные знания в разрушительных целях, это не украшает человека. Зачем вам нужна "черная" популярность взломщика? Не лучше ли посвятить себя более полезным вещам.
Несмотря на явное стремление Linux поселиться в домашних компьютерах, в этой ОС настройка пока еще слишком сложная и содержит множество параметров, которые большинству пользователей не нужны. Если просто закрыть глаза и оставить все значения по умолчанию, то об истинной безопасности Linux не может быть и речи. Ни одна ОС не будет работать надежно и с максимальной защитой при таких настройках. Производитель не может заранее знать, что нам понадобится, и делает все возможное, чтобы программа работала на любой системе, а для этого приходится включать много дополнительных функций, что делает систему избыточной.
Так уж повелось, что администраторы Linux должны иметь больше опыта и знаний, чем специалисты Windows, и это связано как раз со сложностями настройки. В данной книге я постарался максимально доступно рассказать вам про ОС Linux, и при этом попытался сделать это с позиции хакера.
Почему книга называется "Linux глазами хакера", и что это за глаза? Этот вопрос интересует многих моих читателей. Когда мы берем в руки книгу, то надеемся, что ее внешний вид соответствует внутреннему. В данном случае речь идет о том, какое содержимое будет отвечать этому названию? Для ответа на этот вопрос необходимо четко понимать, кто такой хакер и что он видит в ОС.
Когда меня спрашивают, что я подразумеваю под словом "хакер", я привожу простейший пример: как администратор вы установили и заставили работать ОС, но если удалось настроить ее на максимальную производительность и безопасность, то вы - хакер.
Умения хакера должны быть направлены на то, чтобы создать что-либо лучше других (быстрее, удобнее и безопаснее). Именно такой является сама ОС Linux, сотворенная хакерами для всего мира.
Данная книга рассматривает ОС, начиная с самых основ и до сложных манипуляций системой. Весь излагаемый материал представлен простым и доступным каждому языком. Благодаря этому вам не понадобится дополнительная литература для изучения ОС Linux. Всю информацию можно будет получить из одних рук. Для более глубокого изучения вопроса вам могут потребоваться только хорошее знание английского языка и чтение документации ил и файлов HOWTO, которые поставляются с системой Linux.
Главное отличие книги в том, что о безопасности и производительности мы будем говорить не в отдельных заключительных главах, что является большой ошибкой, а по мере необходимости. Когда человек уже приобрел навыки неэффективной работы с системой, то переучиваться будет сложно. Именно поэтому мы будем разбирать последовательно (от азов до сложных вопросов) все аспекты каждой рассматриваемой темы, аккуратно раскладывая полученные знания "по полочкам".
Описание применения и просто администрирование Linux всегда можно найти в Интернете или в документации на ОС, а вот информацию по эффективному использованию найти сложнее, а все имеющиеся сведения являются фрагментарными, и их тяжело сводить в одно целое. А ведь безопасность не любит обрывочных данных. Если упустить хоть одну мелочь, компьютер оказывается уязвимым для взлома.
В качестве дополнительной информации по безопасности компьютера и сетей советую прочитать мою книгу "Компьютер глазами хакера" [3], в которой приводится достаточно много общих сведений по этим вопросам.
Несмотря на то, что данная книга направлена в большей степени на описание безопасности ОС Linux, многие рассматриваемые в ней проблемы могут вам пригодиться и при построении защищенного Linux-сервера. Точно так же книга "Linux глазами хакера" будет полезна и специалистам по безопасности Windows-систем.
В этой книге не рассматриваются вопросы, связанные с вирусами, потому что в настоящее время вирусная активность в ОС Linux минимальна, но это не значит, что опасности не существует. Угроза есть всегда, а защита от вирусов схожа с защитой от троянских программ, которых для Linux достаточно много. Об атаках вирусов и возможности их отражения можно также прочитать в книге "Компьютер глазами хакера" [3].
Итак, давайте знакомиться с Linux с точки зрения хакера, и я уверен, что вы посмотрите на нее совершенно другими глазами и найдете для себя много нового и интересного.
Благодарности
В каждой своей книге я стараюсь поблагодарить всех, кто участвовал в ее создании и помогал появиться на свет. Без этих людей просто ничего бы не получилось.
Первым делом я хотел бы отметить издательство "БХВ-Петербург", с которым работаю уже несколько лет. Спасибо руководству, редакторам и корректорам, которые работают со мной и помогают сделать книгу такой, какой я ее задумывал. Ведь писать приходится в тяжелых по срокам условиях, но иначе нельзя, т.к. информация устареет раньше, чем книга попадет на прилавок.
Не устану благодарить родителей, жену и детей за их терпение. После основной работы я прихожу домой и тружусь над очередной книгой. Таким образом, семья может видеть меня только за компьютером, а общаться со мной очень сложно, потому что все мысли устремляются далеко в виртуальную реальность.
Большая признательность моим друзьям и знакомым, которые что-то подсказывали, помогали идеями и программами.
Отдельное спасибо администраторам моего провайдера, которые позволили тестировать некоторые описываемые в данной книги методы на их оборудовании и серверах. Я старался работать аккуратно и ничего не уничтожить. Вроде бы так и получилось ☺.
Так уж выходит, но в написании каждой книги участвуют и животные. Эта работа не стала исключением. Мой новый кот Чикист с 23:00 до 1:00 ночи гуляет по квартире и кричит, я не могу уснуть, а значит, больше времени уделяю работе.
Хочется поблагодарить еще одного кота, который является ассистентом в пакете программ MS Office. Книгу я писал в MS Word, а ОС Linux работала в виртуальной машине, чтобы можно было делать снимки экрана. Если на меня "бросали" ребенка, то кот-ассистент помогал занять моего годовалого сына, выступая в роли няни. Я сажал сына Кирилла рядом, и он спокойно играл с котом на экране монитора, а я мог продолжать работать над книгой. Правда, иногда приходилось спасать кота и монитор, когда сын начинал маленькой ручонкой неуклюже гладить полюбившееся животное.
А самая большая благодарность - вам за то, что купили книгу, и моим постоянным читателям, с которыми я регулярно общаюсь на форуме сайта www.vr-online.ru. Последние работы основываются на их вопросах и предложениях. Если у вас появятся какие-то проблемы, то милости прошу на этот форум. Я постараюсь помочь по мере возможности и жду любых комментариев по поводу этой книги. Ваши замечания помогут мне сделать мою работу лучше.
Глава 1
Введение
Однажды я показывал администратору ОС Windows, как устанавливать и работать с Linux. Сам процесс инсталляции ему понравился, потому что в последних версиях он достаточно прост. Но когда мы установили и решили настроить Samba-сервер, последовала куча вопросов типа: "А зачем настраивать Samba?", "Почему нельзя получить доступ автоматически?" Администраторы Windows-систем ленивы и привыкли, что ОС сама делает за них все. что нужно, но когда их систему взламывают, начинают задавать вопросы: "А почему Microsoft не дала нам нужных инструментов, чтобы запретить определенные действия?".
Если смотреть на ОС Linux с точки зрения пользователя, то после установки системы уже ничего настраивать не надо. Можно сразу же приступать к работе с любыми офисными приложениями и пользовательскими утилитами. Но если речь идет о сетевых и серверных программах, то здесь уже требуются более сложные настройки, и ничего автоматически работать не будет. По умолчанию в системе практически все действия, которые могут привести к нежелательному результату или вторжению по сети, запрещены. Для изменения ограничений нужно настраивать конфигурационные файлы, редактировать которые крайне неудобно, или использовать специализированные утилиты, большинство из которых имеют интерфейс командной строки.
Из-за этих неудобств мой знакомый администратор Windows-систем сказал: "Linux придумали администраторы, которым нечего делать на работе, для того, чтобы играться с конфигурационными файлами". Через неделю этот же человек настраивал сервис IIS (Internet Information Services, информационные сервисы Интернета) на новом сервере с ОС Windows 2003. Он ругался теми же словами, потому что эта служба по умолчанию не устанавливается с ОС, и прежде чем начать работать, нужно ее подключить и четко прописать, что должно использоваться, а что нет.
Корпорация Microsoft начинала делать ОС по принципу "лишь бы было удобно", поэтому достаточно было подключить требуемые компоненты. Но теперь Windows становится с каждым годом все сложнее, большинство удобных функций, обеспечивающих защиту, просто отключаются, и при необходимости их приходится открывать. В Linux все было наоборот, эту ОС создавали с точки зрения "лишь бы было безопаснее", а теперь двигаются в сторону наращивания сервисов.
Удобства и безопасность - две стороны одной медали, поэтому производителю приходится чем-то жертвовать.
1.1. Атаки хакеров
Прежде чем знакомится с Linux и ее принципами безопасности, мы должны знать, как хакеры могут проникать в систему. Для того чтобы защитить систему, нужно иметь представление о возможных действиях злоумышленника. Давайте познакомимся с процессом взлома компьютера. Мы должны знать, о чем думают хакеры, чем они дышат и что едят ☺. Только так мы сможем построить неприступную информационную стену для сервера или сети.
Невозможно дать конкретные рецепты взломов. В каждом случае это процесс, который зависит от самой системы и настроек ее безопасности. Чаще всего взлом происходит через ошибки в каких-либо программах, а каждый администратор может использовать различный софт.
Почему количество атак с каждым годом только увеличивается? Раньше вся информация об уязвимостях хранилась на закрытых BBS (Bulletin Board System, электронная доска объявлений) и была доступна только избранным. К этой категории относились и хакеры. Именно они и совершали безнаказанные атаки, потому что уровень просвещенности и опытности таких людей был достаточно высок.
С другой стороны, элита хакерского мира состояла в основном из добропорядочных людей, для которых исследования в области безопасности не являлись целью разрушения.
В настоящее время информация об уязвимостях лежит на каждом углу и является достоянием общественности. Теперь взломом может заниматься кто угодно. Тут же хочется спросить борцов за свободу информации: "Как же так получилось?" Просто чрезмерная свобода в конце концов ведет к разрушению. Есть определенная категория людей, которых хлебом не корми, дай где-нибудь напакостить. Если человек, используя общедоступную информацию, поддастся этой слабости, то он превратится во взломщика.
Злоумышленники при проникновении в систему могут преследовать разные цели.
1. Утечка информации - вскрытие сервера для скачивания каких-либо секретных данных, которые не должны быть доступны широкой общественности. Такие взломы чаще всего направляют против компаний для кражи отчетности, исходных кодов программ, секретной документации и т.д., их выполняют профессиональные хакеры по заказу или для получения собственной выгоды.
2. Нарушение целостности - изменение или уничтожение данных на сервере. Такие действия могут производиться против любых серверов в сетях Интернет/интранет. В качестве взломщиков могут выступать не только профессионалы, но и любители или даже недовольные сотрудники фирм.
3. Отказ от обслуживания - атака на сервер с целью сделать его недосягаемым для остальных участников сети. Этим занимаются, в основном, любители, желая нанести вред.
4. Рабство - получило распространение в последнее время. Сервер захватывается для дальнейшего использования в нападении на другие серверы. Например, для осуществления атаки типа "Отказ от обслуживания" чаще всего нужны значительные ресурсы (мощный процессор и быстрый доступ в сеть), которые отсутствуют на домашнем компьютере. Для осуществления таких атак захватывается какой-либо слабо защищенный сервер в Интернете, обладающий необходимыми ресурсами, и используется в дальнейших взломах.
Атаки могут быть трех видов:
1. Внутренняя - взломщик получил физический доступ к интересующему его компьютеру. Защитить системный блок сервера от злоумышленника не так уж и сложно, потому что можно оградить доступ к серверу сейфом и поставить охрану.
2. Внешняя из глобальной сети - удаленный взлом через сеть. Именно этот вид атаки является самым сложным для защиты. Даже если поставить самый лучший сейф от удаленной атаки (Firewall) и постоянную охрану для наблюдения (программы мониторинга и журналирования), безопасность не может быть гарантированной. Примерами этого являются взломы самых защищаемых серверов в сети (yahoo.com, microsoft.com, серверы NASA и т.д.).
3. Внешняя из локальной сети - это проникновение, совершенное пользователем вашей сети. Да, хакеры бывают не только в Интернете, соседи по кабинету тоже могут пытаться взломать сервер или ваш компьютер ради шутки или с целью мести.
При построении обороны мы должны понимать, как хакеры атакуют компьютеры своих жертв. Только тогда можно предотвратить нежелательное вторжение и защитить систему. Давайте рассмотрим основные методы нападения, используемые хакером, и способы реализации. Для лучшего понимания процесса будем рассуждать так, как это делает взломщик.
Единственное, чего мы не будем затрагивать, так это вопросы социальной инженерии. Это тема отдельной книги и затрагивать ее не имеет смысла.