Благодарности
В каждой своей книге я стараюсь поблагодарить всех, кто участвовал в ее создании и помогал появиться на свет. Без этих людей просто ничего бы не получилось.
Первым делом я хотел бы отметить издательство "БХВ-Петербург", с которым работаю уже несколько лет. Спасибо руководству, редакторам и корректорам, которые работают со мной и помогают сделать книгу такой, какой я ее задумывал. Ведь писать приходится в тяжелых по срокам условиях, но иначе нельзя, т.к. информация устареет раньше, чем книга попадет на прилавок.
Не устану благодарить родителей, жену и детей за их терпение. После основной работы я прихожу домой и тружусь над очередной книгой. Таким образом, семья может видеть меня только за компьютером, а общаться со мной очень сложно, потому что все мысли устремляются далеко в виртуальную реальность.
Большая признательность моим друзьям и знакомым, которые что-то подсказывали, помогали идеями и программами.
Отдельное спасибо администраторам моего провайдера, которые позволили тестировать некоторые описываемые в данной книги методы на их оборудовании и серверах. Я старался работать аккуратно и ничего не уничтожить. Вроде бы так и получилось ☺.
Так уж выходит, но в написании каждой книги участвуют и животные. Эта работа не стала исключением. Мой новый кот Чикист с 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. Внешняя из локальной сети - это проникновение, совершенное пользователем вашей сети. Да, хакеры бывают не только в Интернете, соседи по кабинету тоже могут пытаться взломать сервер или ваш компьютер ради шутки или с целью мести.
При построении обороны мы должны понимать, как хакеры атакуют компьютеры своих жертв. Только тогда можно предотвратить нежелательное вторжение и защитить систему. Давайте рассмотрим основные методы нападения, используемые хакером, и способы реализации. Для лучшего понимания процесса будем рассуждать так, как это делает взломщик.
Единственное, чего мы не будем затрагивать, так это вопросы социальной инженерии. Это тема отдельной книги и затрагивать ее не имеет смысла.