Linux глазами хакера
Шрифт:
ОС Linux поставляется в исходных кодах, и абсолютно любой доморощенный программист может вносить изменения. Когда она создавалась множеством энтузиастов, то ошибок было очень много, потому что отсутствовал четкий контроль.
В настоящее время уже мало дистрибутивов, выпускающихся стихийными группами программистов. Все, кто захотели делать качественные продукты, организовали фирмы. Теперь уже изменения, внесенные программистом- одиночкой, попадут в дистрибутив, только если его разработчик решит, что код безопасен и полезен для пользователей. Благодаря этому надежность Linux повышается, чего нельзя сказать об отдельных ее компонентах.
14.6.8. Защита от DoS/DDoS
Самая
Сначала необходимо определить самое слабое место сервера. Для этого можно искусственно заставить его работать на максимальной нагрузке. Это можно сделать с помощью большого количества пользователей, которые будут обращаться к серверу, или написать специализированную программу, эмулирующую эту ситуацию.
Во время пиковой нагрузки необходимо проследить, каких ресурсов не хватает компьютеру. Обратите внимание на следующие компоненты:
□ пропускную способность сети;
□ пропускную способность сетевого оборудования;
□ загрузку процессора;
□ нагрузку на жесткий диск;
□ загрузку оперативной памяти.
Определите самые узкие места вашей системы, чтобы увеличить производительность. Нет смысла наращивать внешние каналы связи до 100 Мбит/с, если ваша внутренняя сеть работает только на скорости 10 Мбит/с. Это излишняя трата денег, а проблема останется. Хакеру достаточно будет направить на сервер любой трафик, чтобы забить 10 Мбитный канал мусором, и ресурсов вашей внутренней сети не хватит для обработки такого объема данных. Именно поэтому очень важно правильно определить слабое звено в вашей системе.
Настройте сетевые интерфейсы и параметры ОС на максимальную производительность (см. разд 14.11). Это значит, что не должно быть лишних затрат, особенно сетевых. Понизить расходы на обработку сетевых пакетов можно с помощью полного запрета ICMP-трафика.
14.7. Проникновение через доверительные узлы
Когда хакер хочет проникнуть на сервер в какой-либо сети, но не может подступиться к нему, то чаще всего приходится прибегать к использованию доверительных компьютеров. Все машины в сети не могут быть защищены абсолютно одинаково. Задача хакера — найти уязвимый компьютер и попробовать проникнуть на сервер через него.
Чтобы решить поставленную задачу, необходимо определить, какие компьютеры в сети сейчас работают. Для этого можно использовать классическую команду
Для сканирования диапазона адресов можно воспользоваться следующей командой:
После указания IP-адреса стоит знак "/", за которым следует маска сети. Таким же образом мы задавали маску при настройке сетевого экрана. В ответ на директиву программа пошлет ping-запросы на все компьютеры сети и отобразит нам доступные в настоящее время.
Использование ping-пакетов — удобный и быстрый способ просканировать сеть, но может выдать неверный результат, если атакуемая сеть защищена сетевым экраном и в ней фильтруются ping-пакеты. Но Firewall, установленный на подступах к сети, может защитить только от сканирования извне. Для предотвращения внутреннего зондирования необходимо настраивать сетевой экран на
каждом компьютере сети. Можно отключить службу, отвечающую на ping-запросы, но ничего не спасет от прощупывания портов.После того как определены все работающие компьютеры, хакер начинает сканировать каждый из них, определяя уязвимые сервисы. Взлом множества компьютеров намного проще, потому что хотя бы один может поддаться, не выдержав натиска хакера.
После проникновения на один из компьютеров сети хакер может повторить попытку зондирования с захваченной машины. Так как этот компьютер находится внутри сети, то он может дать более точный результат, потому что это сканирование не будет проходить через сетевой экран.
При наличии контроля над одним из компьютеров сети процесс взлома упрощается, если существует вероятность следующих событий:
□ компьютер находится в доверительных отношениях с сервером. В ОС Linux можно указать такие компьютеры, и с них подключение происходит без каких-либо паролей. Никогда не используйте доверительных отношений, потому что это удар по безопасности! Именно поэтому мы не затрагивали эту тему в данной книге;
□ пароль доступа к взломанному компьютеру подойдет для входа на основной сервер, или в файле /etc/passwd прописаны пользователи, которые так же работают с сервером. Такое бывает очень часто. Пользователи не любят запоминать много паролей, поэтому используют одни и те же параметры для подключения к любому компьютеру в сети.
Конечно же, если удастся получить контроль над учетными записями, то это еще не гарантирует, что хотя бы одна из них будет иметь права администратора на основном сервере. Но иногда достаточно даже минимального статуса, чтобы потом повысить права через уязвимость.
Проблема использования одного пароля для доступа к разным серверам затрагивает не только простых пользователей. Администратор может использовать пароль fxdgdfg и имя root на основном сервере, а на других компьютерах этот же пароль может быть в комбинации с реальным именем администратора. Взломщики собирают все найденные пароли и потом используют их для подбора пароля пользователя root.
Если честно, то я сам грешу проблемой одного пароля для разных сервисов. Но одинаковые комбинации устанавливаю только там, где это не может причинить вред, например, когда регистрируюсь на форумах или на сайтах, собирающих какую-то статистику. А вот администраторские пароли у меня разные для каждой системы.
Вы должны защищать все компьютеры в равной мере и использовать различные пароли для пользователей с правами администратора.
14.8. Небезопасная NFS
Технология NFS (Network File System, сетевая файловая система) была разработана компанией Sun Microsystems в 1989 году. Идея была великолепной. Любой пользователь может монтировать каталоги сервера к своей файловой системе и использовать их, как будто они находятся на компьютере клиента. Это очень удобно в сетях. Пользовательские каталоги могут находиться на сервере и подключаться к клиенту по мере надобности. Таким образом, все файлы будут храниться централизованно, а использоваться, как будто они находятся локально.
Как я уже говорил, удобство и безопасность — несовместимые вещи, a NFS слишком удобна.
В состав NFS входит утилита showmount, которая может отобразить, какие директории и какими пользователями подключены. Для администратора это неоценимая информация.
Выполните команду
Вы сможете увидеть следующую информацию о NFS на своем сервере: