Linux глазами хакера
Шрифт:
□ имена компьютеров в сети. Если вы потратили большие усилия на защиту своего DNS-сервера, то можете считать, что вы сделали это зря, если на каком-либо сервере установлена NFS. Один запрос показывает имена компьютеров в сети, пусть и не все, а только работающие с NFS, но и этого может быть достаточно для хакера. Кстати, ему не надо даже зондировать сеть с помощью ping-запросов, потому что и так видно действующие компьютеры;
□ используемые программы, включая номер версии. Если пользователи монтируют каталоги с программами, то имена этих каталогов
В зависимости от того, какие открыты каталоги, хакер может получить намного больше информации. Выходит, что утилиты NFS слишком болтливы, а этого нельзя допускать.
Если вы решили использовать NFS, то позаботьтесь о том, чтобы она не был доступна из Интернета. Для этого необходимо запретить подключение к 2049 UDP- и TCP-порту извне. Эти функции может выполнить сетевой экран. А если хакер уже взломал какой-то компьютер в сети и получил возможность выполнять команды внутри нее, то защита сетевого экрана не поможет.
При настройке NFS в файле /etc/exports указываются экспортируемые файловые системы и права доступа к ним. Никогда не открывайте полный доступ ко всей системе, т.е. в файле не должно быть строки:
Необходимо четко прописывать пути к каталогам, которые могут быть монтированы пользователями. Это значит, что если пользователи должны иметь возможность подключать домашние каталоги, то следующее разрешение также является неверным и опасным:
В чем здесь опасность? Не все пользовательские каталоги должны монтироваться удаленно. Например, если вы работаете под пользовательской учетной записью, но являетесь администратором, то в вашем каталоге могут быть программы, используемые для управления системой. Нельзя допустить, чтобы злоумышленник смог его увидеть (даже с правами только на чтение). Разрешайте подключение только конкретным пользователям, которые действительно монтируют свои файловые системы удаленно. Например:
Большинство специалистов по безопасности сходятся во мнении, что NFS не стоит использовать вообще. Если вы решили применить ее только для того, чтобы программы были установлены централизованно, то следует победить свою лень и заняться их постановкой на каждый компьютер в отдельности.
Если вам необходимо сделать документы общедоступными, чтобы пользователи могли работать совместно с одним каталогом, то можно рассмотреть вариант использования Samba (см. гл. 6). Этот сервис менее болтлив и может решить ваши потребности в разделении каталогов сервера.
14.9. Определение взлома
Для эффективной защиты сервера очень важно вовремя определить, что сервер был взломан. Чем раньше
Как можно выявить хакера? Существует очень много методов, и сейчас мы рассмотрим наиболее интересные и эффективные.
14.9.1. Осведомлен, значит защищен
Очень часто я использую чрезвычайно эффективный, но сложный в реализации метод — информирование при запуске потенциально опасных программ. Сложность заключается в том, что надо уметь программировать под Linux хотя бы на каком-нибудь языке. Лучше, если это будет С, но можно и Perl. В крайнем случае, подойдет умение писать сценарии (командные файлы).
Итак, в чем заключается мой метод? Войдя в систему, хакер всегда оглядывается и старается найти способ укрепиться в системе, чтобы оставаться долгое время незаметным для администратора. Для этого взломщик чаще всего выполняет команды
Получив сообщение о том, что была выполнена опасная команда, и она запускалась не администратором, есть повод проверить систему на наличие в ней постороннего.
Если вы не умеете программировать, можно обойтись и средствами самой ОС. Допустим, что вы хотите получать сообщения каждый раз, когда выполняется команда
В результате вы должны увидеть путь типа /usr/bin/who.
Для начала запоминаем права на файл, выполнив команду:
Для данной программы должны быть права
Теперь необходимо переименовать файл /usr/bin/who в /usr/bin/system_who. Это можно сделать следующей командой:
Меняем права доступа:
Теперь, чтобы выполнить команду
Затем создаем заглушку для программы who. Это будет файл с именем who, в директории /usr/bin. Когда хакер будет выполнять команду