Денис Колисниченко - Linux-сервер своими руками
- Название:Linux-сервер своими руками
- Автор:
- Жанр:
- Издательство:Наука и Техника
- Год:2002
- Город:Санкт-Петербург
- ISBN:5-94387-063-6
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Денис Колисниченко - Linux-сервер своими руками краткое содержание
В книге подробно рассмотрены настройки сетевых сервисов, позволяющих создать сервер требуемой конфигурации и функциональности на основе ОС Linux. Вы сможете настроить сервер любого типа: от сервера локальной сети до Интернет-сервера и сервера удаленного доступа. Детальна описано администрирование Linux.
Изложение материала построено на основе дистрибутивов Red Hat и Mandrake. Много уникальной информации: запуск Windows-игр под Linux и создание Linux-сервера для игрового зала, настройка антивирусов Dr. Web и AVP под Linux, программа учета трафика MRTG, система защиты и обнаружения атак LIDS, а также многое другое. Особое внимание уделено безопасности Linux-серверов. Достаточно подробно описана сама ОС Linux и приведен справочник ее команд. Прочитав книгу, вы станете обладателями знаний по настройке и компилированию ядра, созданию собственных rpm-пакетов, командному интерпретатору bash, использованию массивов RAID. Вы узнаете внутренний мир Linux. Книга подойдет как для профессиональных, так и для начинающих администраторов, поскольку изложение материала начинается с установки ОС Linux, а в первой главе дано описание основных сетевых технологий и протоколов (Курс Молодого Администратора).
Все приведенные в книге листинги проверены на практике и размещены на прилагаемом CD. Помимо этого на нем содержится много справочной информации (HOWTO, RFC), a также статей, посвященных Linux. Размещен богатый набор вспомогательных утилит и программного обеспечения для сервера (Apache, MySQL, MRTG и др.).
Linux-сервер своими руками - читать онлайн бесплатно ознакомительный отрывок
Интервал:
Закладка:
Параметр output программы cfgmaker задает имя конфигурационного файла, который будет создан.
Примечание.Параметры WorkDir и Options являются параметрами программы mrtg, а параметры global и output — параметрами программы cfgmaker.
Параметр community@router указывает имя сообщества SNMP-устрой-ства. В нашем случае — это наш SNMP-маршрутизатор. Обычно используется имя сообщества public. За более точной информацией обратитесь к администратору SNMP-маршрутизатора. Вместо имени узла в этом параметре можно указать IP-адрес, например, public@192.168.1.1.
Параметр community@router как раз и является целью, которую мы будем контролировать.
После выполнения этой команды будет сгенерирован такой файл mrtg.cfg:
WorkDir: /var/www/html/mrtg
Options[_]: bits,growright
Target[r1]: community@router
Имя цели (r1) пишется в квадратных скобках. Для разных целей можно задавать разные параметры, например:
Target[r1]: 1:community@router
Target[r2]: 2:community@router
MaxBytes[r1]: 1250000
MaxBytes[r2]: 2500000
Title [r1]: Traffic Analysis for first interface
PageTop[r1]:
Stats for our interface #1
Title[r2]: Traffic Analysis for second interface
PageTop[r2] :
Stats for our interface #2
Параметр MaxBytes определяет максимальное число байт для цели. Значения, превышающие MaxBytes, будут игнорироваться.
Параметр Title определяет заголовок страницы, которая будет содержать информацию о цели, а параметр PageTop — текст, который будет помещен в верхней части этой страницы.
Числа 1 и 2 перед именем сообщества — это номера интерфейсов во внутренней таблице SNMP-устройства. После имени (или IP-адреса) SNMP-устройства можно указать порт SNMP. По умолчанию используется стандартный порт 161:
community@router:161
В качестве цели может быть использована программа, которая выводит на стандартный вывод четыре строки:
1. Количество принятых байтов.
2. Количество отправленных байтов.
3. Время работы объекта после включения.
4. Имя объекта.
Программу нужно записать в обратных кавычках, например:
Target[r3]: `/usr/bin/program`
Очень полезными параметрами являются Refresh и Interval. Первый определяет частоту обновления страниц с отчетами в браузере, а второй — предполагаемый интервал запуска программы MRTG. По умолчанию значения обоих параметров равно 300 секундам.
Опции perminute и perhour позволяют измерять трафик в единицах за минуту и час соответственно. Опция noinfo подавляет вывод информации об устройстве и времени его работы. Пример:
Options [_] : bits, perminute, noinfo
Я думаю, что теории вполне достаточно, тем более, что вместе с MRTG поставляется отличная документация, которая доступна по адресу http:// localhost/mrtg/. Теперь перейдем к практической настройке. Скорее всего, у вас не будет SNMP-маршрутизатора, поскольку в небольших сетях маршрутизатором является сама Linux-машина, а выделение средств на приобретение аппаратного маршрутизатора в ближайшие несколько лет не предвидится. Да и намного интереснее считать трафик своего компьютера, а не какого-то маршрутизатора, которого вы даже и не видели и который установлен где-то на третьем этаже.
Для работы MRTG необходимо установить и настроить сервер snmpd. Однако в большинстве случаев этого делать не нужно: корректная настройка данного сервера — это довольно нетривиальная задача, а лишняя «дыра» в системе безопасности нам не нужна. К тому же настройка сервера snmpd оправдывает себя, если вы хотите считать трафик этого компьютера не локальной программой mrtg, а удаленной, которая запущена на другом компьютере и получает данные от нашего сервера по протоколу SNMP.
Я предлагаю довольно простое решение, настройка которого не займет у вас много времени. Основывается оно вот на чем: как я уже отмечал, вместо цели можно указать программу, которая бы выводила информацию на стандартный вывод в таком формате:
Строка 1
Строка 2
Строка 3
Строка 4
• Строка 1 — это входящие байты (принятые).
• Строка 2 — исходящие байты (отправленные).
• Строка 3 — время, на протяжении которого работает устройство.
• Строка 4 — имя цели.
Где же взять эту программу? Написать самому! Сейчас я подробно опишу, как это сделать. Настоятельно не рекомендую вам сразу взять и использовать готовый листинг: вы не поймете самого главного — как именно происходит подсчет трафика. В результате ваша система подсчета трафика будет работать в таком режиме: программа будет считать трафик, a MRTG — строить графики.
Определим, откуда будем брать информацию о трафике. Операционная система Linux сама выполняет подсчет трафика. Вся информация, которая вам необходима, содержится в файле /proc/net/dev. Выполните команду:
cat /proc/net/dev
Результат выполнения этой команды вы уже видели в этой главе (рис. 8.7). Более новые ядра предоставляют больше информации о работе сетевых устройств, поэтому выполните данную команду для того, чтобы увидеть, какую информацию о сетевых устройствах предоставляет ваша система. Обычно первое информационное поле файла /proc/net/dev — это количество принятых байтов, а девятое — количество отправленных байтов.
Разрабатываемая программа должна найти нужный интерфейс и возвратить количество принятых и переданных байтов. Затем программа возвращает время, на протяжении которого работает устройство. Это время достаточно легко вычисляется с помощью программы uptime .
1:51pm up 2:10, 4 users, load average: 0.02, 0.04, 0.00
Программа uptime, кроме всякой другой информации, возвращает время, на протяжении которого система работает, то есть с момента загрузки операционной системы. В вышеприведенном примере видно, что машина непрерывно работала 2 часа и 10 минут. 2 часа и 10 минут — это значение, которое разрабатываемая программа должна вывести в третьей строке. Вы можете смело использовать это время, потому что в основном интерфейсы сервера «подымаются» при загрузке системы и разница между uptime системы и uptime интерфейса составит всего несколько секунд.
Четвертая строка — это имя цели, то есть имя интерфейса, трафик которого нам нужно подсчитать. Надеюсь, что алгоритм программы ясен, осталось реализовать все это программно.
Создайте файл count (см. листинг 8.10) и поместите его в каталог /usr/bin (не забудьте сделать его исполнимым!).
#!/bin/bash
/bin/grep "$1" /proc/net/dev | /bin/awk –F ":" '{ print $2 } ' | /bin/awk '{ print $1 "\n" $9 }'
UPTIME=`/usr/bin/uptime | /bin/awk –F " " '{ print $3 }'`
echo $UPTIME
echo $1
Использовать программу нужно так:
count интерфейс
Например, count eth0.
Запустив программу, вы должны увидеть примерно следующие строки:
2738410
1235960
2:57,
eth0
Во второй строке программы происходит следующее: находится нужная нам запись с именем интерфейса, который мы указали в первом параметре при вызове программы ($1). Затем интерпретатор awk выводит значения первого и девятого полей, содержащие количество принятых и переданных байтов. В третьей строке программы вычисляется время uptime. Последние две строки выводят время uptime и название интерфейса. Предположим, что у вас имеется два интерфейса: локальный eth0 и выделенная линия (ррр0), идущая к провайдеру. При этом конфигурация сети несколько упростилась (см. рис. 8.10).
Читать дальшеИнтервал:
Закладка: