Чтение онлайн

на главную - закладки

Жанры

Сетевые средства Linux

Смит Родерик В.

Шрифт:

Рис. 22.1. Диспетчер пакетов предоставляет информацию о серверах, установленных в системе

Проверка файлов запуска

Чтобы обнаружить серверы, присутствующие в системе, можно проверить следующие файлы.

• Конфигурационный файл суперсервера. При поиске серверов следует проверить конфигурационные файлы

/etc/inetd.conf
и
/etc/xinetd.conf
, а также файлы в каталоге
/etc/xinetd.d
. Таким образом, вы найдете ссылки на все серверы, запускаемые посредством суперсервера. В конфигурационном файле
inetd
строки, в начале которых стоит символ
#
, представляют собой комментарии, поэтому серверы, указанные в них, не активны. Для суперсервера
xinetd
запуск сервера запрещает запись
disable = yes
.

• Сценарии запуска SysV. Можно найти серверы, запускаемые посредством сценариев просмотрев каталоги, предназначенные для размещения таких сценариев (обычно это каталог

/etc/rc.d/rc?.d
или
/etc/rc?.d
, где символ
?
означает уровень выполнения). Необходимую вам информацию предоставят имена файлов, находящихся в этих каталогах. Заметьте, что некоторые из программ, запускаемых посредством сценариев SysV, не являются серверами, поэтому, прежде чем запретить их выполнение, следует выяснить назначение этих программ.

• Локальные сценарии запуска. Во многих дистрибутивных пакетах для запуска локальных программ используются локальные сценарии. Файлы, содержащие их, обычно называются

rc.local
или
boot.local
. Локальными считаются такие программы, при инсталляции которых использовался нестандартный способ, отличающийся от подхода, принятого для данного дистрибутивного пакета. Чтобы обнаружить серверы, выполняющиеся в системе, надо просмотреть весь локальный сценарий.

Подробно вопросы запуска серверов, в том числе соглашения об именовании сценариев SysV, были рассмотрены в главе 4. Определить назначение сценариев запуска вам помогут такие инструменты, как

ntsysv
и
tksysv
. Кроме того, в некоторых системах (Caldera, Mandrake, Red Hat и TurboLinux) команда
chkconfig --list
, заданная в командной строке, отображает состояние сценариев SysV, а в ряде случаев и назначение записей в конфигурационном файле
xinetd
.

Проанализировав сценарии запуска и конфигурационный файл суперсервера, вы выясните, какие серверы выполняются в системе, однако ничего не узнаете об инсталлированных серверах. Как было сказано ранее, получить сведения о программах, которые были инсталлированы на компьютере, позволяет диспетчер пакетов. Кроме того, вы можете проверить все исполняемые файлы в системе, однако для этого необходимо затратить столько усилий, что данное решение нельзя считать приемлемым.

Анализ данных о процессах

Для обнаружения серверов может использоваться утилита

ps
. Она возвращает информацию о. процессах, выполняющихся в системе. При запуске
ps
можно указывать разные опции, но для выявления серверов достаточно ввести в командной строке
ps ax
.

Объем информации, возвращаемой

ps
, достаточно велик, поэтому имеет смысл перенаправить вывод в файл или передать данные, сгенерированные программой
ps
, утилите
more
или
less
. Если вы ищете сведения о конкретном сервере, используйте утилиту
grep
. Например, чтобы получить информацию о сервере
sendmail
, надо ввести команду
ps ах | grep sendmail
. Следует помнить, что утилита
ps
предоставляет сведения как о серверах, так и о других программах. Ниже приведен фрагмент данных, сгенерированных программой
ps
.

$ ps ax

 PID TTY STAT TIME COMMAND

1 ? S 0:15 init [3]

 502 ? S 0:05 named -u bind

 520 ? S 0:01 cupsd

 535 ? SW 0:00 [nfsd]

1741 pts/4 S 0:00 /bin/bash

4168 ? S 0:00 httpd

На самом деле в процессе выполнения программа

ps
генерирует десятки и даже сотни строк. В данном примере удалена почти вся информация, кроме нескольких строк, иллюстрирующих работу этой утилиты. В первой строке программа
ps
выводит сведения о процессе
init
, для идентификации которого всегда используется номер 1. Данный процесс является корнем дерева, представляющего иерархию процессов в системе. Все остальные процессы порождаются либо непосредственно
init
, либо его дочерними процессами. Процессы, имена которых помещаются в квадратные скобки, представляют собой процессы ядра. В данном примере процессом ядра является
[nfsd]
. Как видно из его имени,
[nfsd]
поддерживает функции сервера NFS, реализованного средствами ядра. Процессы named,
cupsd
и
httpd
представляют собой пользовательские процессы. О принадлежности их к серверам можно судить по двум признакам. Во-первых, имя каждого из них оканчивается буквой "
d
", а во-вторых, эти процессы не связаны с терминалами (в поле TTY отображается символ
?
). В отличие от них, процесс
/bin/bash
не является процессом сервера, так как в поле TTY выводится значение
pts/4
, т.е. данный процесс связан с конкретным терминалом.

Определив процессы серверов с помощью

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
. В результате вы получите список портов и имен серверов, связанных с ними.

Поделиться:
Популярные книги

Warhammer: Битвы в Мире Фэнтези. Омнибус. Том 2

Коллектив авторов
Warhammer Fantasy Battles
Фантастика:
фэнтези
5.00
рейтинг книги
Warhammer: Битвы в Мире Фэнтези. Омнибус. Том 2

Школьный Надзор

Лукьяненко Сергей Васильевич
Дозоры
Фантастика:
фэнтези
7.59
рейтинг книги
Школьный Надзор

Сумерки божков

Амфитеатров Александр Валентинович
1. Романы
Проза:
русская классическая проза
5.00
рейтинг книги
Сумерки божков

"Фантастика 2024-115". Компиляция. Книги 1-20

Виланов Александр Сергеевич
Фантастика 2024. Компиляция
Фантастика:
фэнтези
героическая фантастика
боевая фантастика
городское фэнтези
попаданцы
сказочная фантастика
5.00
рейтинг книги
Фантастика 2024-115. Компиляция. Книги 1-20

Сталин

Радзинский Эдвард Станиславович
3. Загадки жизни и смерти
Проза:
историческая проза
7.36
рейтинг книги
Сталин

Искатель Смерти

Грин Саймон
1. Охотник за смертью
Фантастика:
героическая фантастика
6.20
рейтинг книги
Искатель Смерти

Братья Карамазовы

Достоевский Федор Михайлович
Проза:
классическая проза
русская классическая проза
9.24
рейтинг книги
Братья Карамазовы

Над бездной

Делински Барбара
Любовные романы:
современные любовные романы
7.29
рейтинг книги
Над бездной

Жена по ошибке

Ардова Алиса
Любовные романы:
любовно-фантастические романы
7.71
рейтинг книги
Жена по ошибке

Эволюционер из трущоб. Том 5

Панарин Антон
5. Эволюционер из трущоб
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Эволюционер из трущоб. Том 5

Вечный Данж. Трилогия

Матисов Павел
Фантастика:
фэнтези
юмористическая фантастика
6.77
рейтинг книги
Вечный Данж. Трилогия

Ожоги сердца (сборник)

Падерин Иван Григорьевич
Проза:
военная проза
советская классическая проза
5.00
рейтинг книги
Ожоги сердца (сборник)

Инкарнатор

Прокофьев Роман Юрьевич
1. Стеллар
Фантастика:
боевая фантастика
рпг
7.30
рейтинг книги
Инкарнатор

Весь Фрэнк Герберт в одном томе. Компиляция

Герберт Фрэнк Патрик
Абсолют
Фантастика:
героическая фантастика
боевая фантастика
5.00
рейтинг книги
Весь Фрэнк Герберт в одном томе. Компиляция