Михаил Флёнов - Linux глазами хакера
- Название:Linux глазами хакера
- Автор:
- Жанр:
- Издательство:БХВ-Петербург
- Год:2005
- Город:Санкт-Петербург
- ISBN:5-94157-635-8
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Михаил Флёнов - Linux глазами хакера краткое содержание
Рассмотрены вопросы настройки ОС Linux на максимальную производительность и безопасность. Описаны потенциальные уязвимости и рекомендации по предотвращению возможных атак. Дается подробное описание настройки прав доступа и конфигурирования сетевого экрана. Показано, как действовать при атаке или взломе системы, чтобы максимально быстро восстановить ее работоспособность и предотвратить потерю данных.
Для пользователей, администраторов и специалистов по безопасности
Linux глазами хакера - читать онлайн бесплатно ознакомительный отрывок
Интервал:
Закладка:
Перейдите в созданный каталог с исходными кодами, чтобы выполнять команды в нем:
cd portsentry_beta
Теперь поговорим о компиляции. Программа PortSentry написана универсально и может работать в разных Unix-подобных системах, и помимо Linux это может быть Solaris, FreeBSD, OpenBSD и т.д. При компиляции вы должны явно указать, какая ОС у вас установлена:
make linux
Теперь собственно установка. По умолчанию файлы программы копируются в директорию /usr/local/psionic, но этим можно управлять, если в файле makefile поменять параметр INSTALLDIR
. Если все устраивает, то выполняем команду:
make install
Затем нужно установить описанным для PortSentry способом программу Logcheck, поэтому приведу только команды:
tar xzvf logcheck-1.1.1.tar.gz
cd logcheck-1.1.1
make linux
make install
Эта программа по умолчанию устанавливается в директорию /usr/local/etc. Каталог также можно изменить, отредактировав параметр INSTALLDIR
в файле makefile.
Все настройки программы PortSentry находятся в файле /usr/local/psionic/portsentry/prtsentry.conf. По умолчанию все закомментировано, и вам необходимо только открыть нужные строки.
Например, вы хотите, чтобы программа следила за определенными портами. На этот случай в конфигурационном файле подготовлены закомментированные записи для разных типов серверов. Выберите нижний и уберите в начале строки знак "#". Тем самым вы укажете порты для наблюдения:
TCP_PORTS="1,11,15,79,111,119,143,540,635,1080,1524,2000,5742,6667"
UDP_PORTS="1,7,9,69,161,162,513,635,640,641,700,32770,32771,32772"
Помимо мониторинга в программе есть отличная способность — при выявлении попытки атаки конфигурировать Firewall на запрет любого трафика с компьютером, который пытался взломать систему. Но это тоже по умолчанию отключено, и чтобы воспользоваться этой возможностью, нужно убрать комментарий со строки, соответствующей вашему серверу.
Мы рассматриваем Linux, а в нем, чаще всего, используют Firewall ipchains. Для него нужна запись:
KILL_ROUTE="/sbin/ipchains -I input -s $TARGET$ -j DENY -l"
Убедитесь только, что программа сетевого экрана установлена по указанному пути ( /sbin/ipchains). Для этого можно выполнить команду поиска программы:
which ipchains
Если в вашей системе применяется iptables, то нужно использовать строку:
KILL_ROUTE="/usr/local/bin/iptables -I INPUT -s $TARGET$ -j DROP"
Я считаю возможность выявления атаки и автоматического конфигурирования сетевого экрана очень мощной. В то же время, любая программа может ошибиться и запретить доступ не тому, кому надо. Например, взломщик может имитировать атаку от имени другого пользователя (скажем, босса), и тогда PortSentry запретит шефу доступ к ресурсам сервера. А это уже не есть хорошо.
Я попытался в своей тестовой системе закидать сервер пакетами подключения к различным портам. При этом в качестве IP-отправителя подставлял чужие адреса, в результате чего сервер стал недоступным для них. Вы должны контролировать все, что прописывает в сетевом экране программа мониторинга, иначе хакер может забросать систему запросами так, что она запретит доступ для всех компьютеров вашей сети.
Для запуска программы мониторинга выполните команды:
/usr/local/psionic/portsentry/portsentry -atcp
/usr/local/psionic/portsentry/portsentry -audp
Первая команда запускает мониторинг TCP-портов, а вторая — заставит программу наблюдать за UDP-портами. Вся активность будет сохраняться в журнале, который можно проверить с помощью установленной нами ранее программы Logcheck. Я рекомендую поместить эту программу в задания, чтобы она выполнялась через определенные интервалы времени (не менее 15 минут) и сообщала администратору о событиях в системе.
Для начала желательно сконфигурировать программу Logcheck. Для этого откройте файл /usr/local/etc/logcheck.shи добавьте в него следующую строку (если ее нет):
"mailto:SYSADMIN=admin@server.com"
Здесь admin@server.com
— это ваш E-mail-адрес, на который нужно отправлять электронные сообщения с информацией о сохраненных программой PortSentry в журнале записях. Теперь остается только сделать так, чтобы сценарий /usr/local/etc/logcheck.shвыполнялся через определенные промежутки времени. Для этого подойдет программа crontab.
Для тестирования программы PortSentry я сконфигурировал ее, как показано выше, и запустил прослушивание портов. Сканер CyD NET Utils ( http://www.cydsoft.com) показал только первые два открытых канала. Все остальные оказались для программы закрыты, хотя реально их больше двух. Я сел за клавиатуру своего Linux-сервера и выполнил команду cat /etc/hosts.deny
, чтобы увидеть файл /etc/hosts.deny, который содержит IP-адреса всех компьютеров, которым запрещено подключаться к серверу.
На экране появилось содержимое этого файла, и последней строкой был IP-адрес компьютера, с которого я производил сканирование:
ALL: 192.168.77.10
Программа PortSentry среагировала достаточно быстро и эффективно, прописав в файл /etc/hosts.denyзапрет использования любого сервиса с адреса 192.168.77.10. Больше я уже ничего сделать не мог. Единственный способ снова получить доступ — удаление строки из файла /etc/hosts.deny, показанной выше.
Нужно заметить, что некоторые порты могут использоваться достаточно часто, и программа будет думать, что это попытки взлома. К ним относятся ident (113) и NetBIOS-порты (139), и их лучше всего исключить из наблюдения. Для этого в конфигурационном файле /usr/local/psionic/portsentry/prtsentry.confнайдите строки ADVANCED_EXCLUDE_TCP
(для TCP-портов) и ADVANCED_EXCLUDE_UDP
(для UDP-портов) и добавьте нужные каналы в список. По умолчанию в программе исключены следующие порты:
ADVANCED_EXCLUDE_TCP="113,139"
ADVANCED_EXCLUDE_UDP="520,138,137,67"
Как видите, 113 и 139 порты по умолчанию уже исключаются из мониторинга.
12.4.3. LIDS
Пакет LIDS (Linux Intrusion Detection/Defence System, определение вторжения в Linux и система безопасности). Несмотря на то, что я не очень люблю использовать патчи ядра, этот заслуживает вашего внимания, потому что обладает большими возможностями и реально позволяет повысить безопасность системы.
Конфигурация и работа системы надежно защищены. Так. например, файлы настройки зашифрованы, и внести в них изменения достаточно сложно. Остановить работу LIDS также проблематично, потому что для этого необходимо знать пароль администратора системы.
Функция определения попыток сканирования — это самая малость, что может делать этот пакет. Кроме того, LIDS позволяет ограничить доступ к файлам на уровне программ, а не пользователей, тем самым расширяются возможности по управлению правами доступа и увеличивается общая безопасность. Например, командам ls
, cat
и текстовым редакторам можно категорически запретить работу с каталогом /etc. Таким образом, мы усложняем хакеру задачу по просмотру файла паролей /etc/passwd.
Интервал:
Закладка: