Определив процессы серверов с помощью ps, надо отыскать документацию на те серверы, назначение которых вам неизвестно. Для этого следует ввести команду man имя, указав в качестве параметра имя интересующего вас процесса. Кроме того, постарайтесь найти исполняемый файл с именем, совпадающим с именем процесса. Это позволит вас проследить, какой пакет использовался для его инсталляции. Для получения информации о пакете введите команду rpm -qf путь_к_файлу . (В системе Debian для этого используется команда dpkg -S путь_к_файлу .)
Используя ps, не забывайте, что эта утилита не отображает сведения о серверах, которые не выполнялись в момент ее запуска. Например, если сервер запускается с помощью суперсервера и во время вызова psни один из клиентов не работал с ним, вы не получите информацию об этом сервере. Данная утилита также не предоставит сведений о тех серверах, работа которых была временно завершена.
Использование netstat
При использовании psдля поиска серверов возникает проблема, состоящая в том, что данная утилита не сообщает, используется ли данный сервер для поддержки сетевого взаимодействия. Получить эту информацию вам поможет программа netstat. Данная программа возвращает данные о сетевых соединениях. Подобно ps, при запуске netstatмогут указываться различные опции. Для поиска информации о серверах можно использовать команду netstat -lр. Опция -lсообщает утилите netstatо том, что она должна анализировать порты, через которые серверы ожидают поступление запросов, а опция -pзадает вывод имен серверов, связанных с этими портами. Как и ps, утилита netstatгенерирует большой объем данных, поэтому желательно перенаправить вывод в файл или передать входные данные программе lessили more.
Несмотря на то что netstatявляется чрезвычайно полезным инструментом, при использовании этой программы необходимо помнить, что для серверов, запускаемых посредством суперсервера, netstatбудет генерировать неверные данные. Сообщая о том, какой сервер ожидает обращение через определенный порт, она вместо имени сервера выведет имя суперсервера.
Использование программ сканирования
Мощными инструментами, которые можно использовать для поиска серверов, выполняющихся в системе, являются внешние программы сканирования. В качестве примеров подобных программ можно привести Nessus ( http://www.nessus.org), SAINT ( http://www.wwdsi.com/saint/) и Nmap ( http://www.insecure.org/nmap/). Программа сканирования выполняется на любой машине, связанной по сети с компьютером, подлежащим проверке. Некоторые из таких инструментов, помимо информации о серверах, выводят также данные об используемой операционной системе, а также сведения о наличии недостатков в защите серверов. Для поиска серверов в большинстве случаев достаточно ввести имя сканирующей программы и указать имя компьютера, который следует проверить. Например, соответствующая команда может иметь вид nmap gingko.threeroomco.com. В результате вы получите список портов и имен серверов, связанных с ними.
Внешняя программа сканирования может оказаться полезной в том случае, если вы подозреваете, что сервер на вашем компьютере подвергся атаке. Установив собственный сервер в вашей системе, опытный хакер позаботится о том, чтобы скрыть следы своего вмешательства. Чтобы вы не смогли обнаружить изменения в системе, он постарается заменить средства диагностики (например, netstat) своими программами. Внешняя программа сканирования, вероятнее всего, даст вам реальную информацию о серверах, выполняющихся в системе.
Внимание
Программы сканирования портов часто используются компьютерными взломщиками, которые пытаются обнаружить уязвимые места в защите системы. Эти же инструменты применяют администраторы систем для того, чтобы найти и устранить недостатки в защите компьютеров. Для того, чтобы исключить возможные недоразумения, планы по использованию программ сканирования следует согласовать с руководством.
На заметку
В данной книге встречается слово хакер: здесь оно обозначает компьютерного взломщика. Однако этот термин имеет и другие значения. Хакерами часто называют специалистов высокой квалификации, имеющих большой опыт создания сложных программ, а также энтузиастов, чье увлечение программированием граничит с фанатизмом. Смысл, вкладываемый в слово хакер, обычно становится ясным из контекста.
Читать дальше