Получив их список, необходимо провести анализ и лишить подозрительные программы SUID/SGID-прав или вовсе их удалить. Следующие на очереди файлы с правами записи для всех. Часто бывает так, что системные файлы имеют атрибут записи для всех, что опять же позволит злоумышленнику повысить свои привилегии в системе путем модификации системных файлов. Команда
root# find / – perm -2 —print
отобразит все файлы такого типа. Убедитесь, что запись в эти файлы действительно должна быть разрешена всем.
Дополнительный уровень защиты системных файлов – регулярная проверка целостности и подлинности этих файлов. В зависимости от дистрибутива проверку можно выполнить как средствами самой системы, так и с помощью специальных средств. Программа Tripwire – одно из таких средств. Сразу после установки Linux нужно запустить Tripwire для создания защищенной базы данных о всех критичных файлах системы с указанием даты создания, размера и т. д. Ежедневно программа проверяет текущее состояние системы, сравнивая его с зафиксированным в базе, и формирует отчет о расхождениях с необходимым уровнем детализации. Устанавливать программу лучше не на компьютер, а на сменный носитель (дискету или компакт-диск). Дело в том, что файлы конфигурации и политики безопасности, база данных и отчеты, несмотря на парольную защиту, могут быть модифицированы взломщиком с правами суперпользователя, и вы не узнаете об этом до тех пор, пока не захотите внести изменения в базу данных.
Исходя из правила, запрещено все, что не разрешено, для начала отключим на сервере все неиспользуемые службы (сервисы). Найдем все запущенные сервисы:
netstat – anp | grep udp
netstat – anp | grep LISTEN
В перечень используемых сетевых сервисов, как правило, входят ftp, telnet, pop3, smtp, time, identd. Остальные нужно отключить любым из способов, перечисленных ниже.
Первый способ: в файле /etc/inetd.conf найти неиспользуемые сервисы, закомментировать их и выполнить в консоли команду killall – HUP inetd.
Второй способ: редактирование файла /etc/services. Удаляем либо оставляем закомментированными строчки. От первого способа он отличается тем, что локальные клиенты тоже не смогут воспользоваться данным сервисом, что иногда нежелательно. Формат каждой строчки файла /etc/services:
имя сервиса порт/протокол псевдонимы # комментарии

Третий способ (радикальный): удаляем из системы пакеты ненужного сервиса полностью.
Еще одно эффективное средств защиты от внешних атак – TCP_WRAPPERS. Управляются TCP_WRAPPERS файлами /etc/hosts.allow и /etc/hosts.deny. При запросе сервиса с другого компьютера демон (служба) tcpd «читает» сначала правила сверху вниз для данного компьютера из файла hosts.allow. Если разрешающее правило для этого компьютера (хоста, домена, маски подсети и т. п.) существует, то доступ к сервису будет предоставлен. Если разрешающее правило отсутствует, выполняется проверка файла hosts.deny на наличие запрещающих правил для компьютера, запрашивающего соединение. При наличии запрещающего правила в доступе будет отказано. Если же ни в одном из вышеупомянутых двух файлов нет правил, касающихся данного компьютера, то ему будет предоставлен доступ к сервису. Более подробную информацию о правилах и примерах реализации доступа к сервисам можно почитать в руководстве по файлам hosts.allow и hosts.deny:
man hosts.allow
man hosts.deny.



Netstat и ps – отличные помощники при анализе текущего состояния системы. Ps показывает статус процессов в системе (привилегии процесса, начало и общее время работы). Команда ps – aux выводит на экран практически всю информацию о процессах, однако в ее выводе будут отображены не все сервисы, даже если вы их запустили. Сервисы вроде telnet и ftp, «порожденные» демоном inetd, можно найти с помощью команды netstat-vat. Вывод команды отобразит все активные соединения и сокеты. Чтобы узнать об используемых файлах и ресурсах, в том числе сокетах, воспользуйтесь lsof с постраничным выводом, поскольку объем выводимой информации очень большой.
Борьба со спамом и вирусами – тема очень обширная, мы приведем лишь общие рекомендации. Фильтрация спама возможна двумя методами: в реальном времени в процессе загрузки писем и после сохранения корреспонденции на сервере.
Первый метод реализуется стандартными средствами MTA (mail transfer agent – почтовый сервер). Заголовок и «тело» письма анализируются по таким параметрам, как наличие ключевых слов в теме и тексте письма, адрес отправителя, который сверяется с «черными» списками (DNS black lists). Для фильтрации в реальном времени нужен почтовый сервер с гибкими настройками, такой, как Postfix или Exim.
Основной недостаток такого метода в том, что некоторые письма, не относящиеся к спаму, не будут доставлены адресату.
Второй метод использует элементы нечеткой логики (fuzzy logic). Каждое письмо анализируется по определенным критериям, и программа-анализатор, работающая в виде сервиса, отправляет почтовому серверу свой вердикт (спам/не спам). Письма, помеченные как спам или сомнительные, могут удаляться сразу или сохраняться в специальных папках на сервере.
В качестве анализаторов можно использовать довольно много программ, как бесплатных, так и коммерческих, но начать стоит со SpamAssassin. Этот гибкий и поддающийся тонкой настройке инструмент – собрание всех существующих методов борьбы со спамом. Черные списки, сигнатуры, байесовский анализ и другие методы помогают ему эффективно выделять спам из общего потока писем.
ПО для анализа защищенности сети
NMAP (http://www.insecure.org) – сетевой сканер с открытым кодом. Сканирование портов, определение версии сервиса, ОС на удаленном компьютере – основные возможности программы. Этот сканер поможет определить, насколько хорошо работают брандмауэр и IDS.
Snort (www.snort.org) – популярная бесплатная IDS (intrusion detection system – система обнаружения вторжений) для Linux. Обнаруживает stealth-сканирование, передачу shell-кода, неудачные попытки аутентификации на сервисах и т. д.
Nessus Security Scanner (www.nessus.org) – мощный сетевой сканер уязвимостей в сетевых сервисах, кроме всего прочего эмулирующий действия злоумышленника.
У связки MTA+Spamassassin есть и недостатки: большой объем предварительных работ по настройке и обучению системы, высокая требовательность к ресурсам (SpamAssasin написан на Perl – интерпретируемом языке с далеко не самой высокой производительностью). Но дело того стоит.