Денис Колисниченко - Linux: Полное руководство
- Название:Linux: Полное руководство
- Автор:
- Жанр:
- Издательство:Наука и Техника
- Год:2006
- Город:Санкт-Петербург
- ISBN:5-94387-139-Х
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Денис Колисниченко - Linux: Полное руководство краткое содержание
Данная книга представляет собой великолепное руководство по Linux, позволяющее получить наиболее полное представление об этой операционной системе. Книга состоит из трех частей, каждая из которых раскрывает один из трех основных аспектов работы с Linux: Linux для пользователя, сетевые технологии Linux (и методика настройки Linux-сервера), программирование Linux. В книге охвачен очень широкий круг вопросов, начиная с установки и использования Linux «в обычной жизни» (офисные пакеты, игры, видео, Интернет), и заканчивая описанием внутренних процессов Linux, секретами и трюками настройки, особенностями программирования под Linux, созданием сетевых приложений, оптимизацией ядра и др.
Изложение материала ведется в основном на базе дистрибутивов Fedora Cora (Red Hat) и Mandriva (Mandrake). Однако не оставлены без внимания и другие дистрибутивы SuSe, Slackware, Gentoo, Alt Linux, Knоppix. Дается их сравнительное описание, a по ходу изложения всего материала указываются их особенности.
Книга написана известными специалистами и консультантами по использованию Linux, авторами многих статей и книг по Linux, заслуживших свое признание в самых широких Linux-кругах. Если вы желаете разобраться в особенностях Linux и познать ее внутренний мир, эта книга — ваш лучший выбор.
Linux: Полное руководство - читать онлайн бесплатно ознакомительный отрывок
Интервал:
Закладка:
Если вы собираете xinetdиз исходников, вы можете сконфигурировать его (./configure) с одним из следующих флагов:
♦ --with-libwrap: с использованием tcp wrappers. С этой опцией xinetdбудет сперва проверять ваши файлы
/etc/hosts.allow
и /etc/hosts.deny
и только после этого запустит свой механизм контроля доступа. Библиотека libwrapдолжна быть установлена у вас заранее;
♦ --with-loadavg: с этой опцией xinetdостановит сервис, когда нагрузка достигнет определенного уровня;
♦ --with-inet6: включает поддержку IPv6.
Внимание! При включении IPv6 все IPv4-сокеты становятся IPv6-сокетами. Поэтому будьте готовы к тому, что вам понадобится перекомпилировать свое ядро с поддержкой IPv6. Если ваше ядро не поддерживает IPv6, выкачайте последнюю версию ядра по адресу
http://www.kernel.org
. Никаких ограничений на клиентские узлы включение IPv6 не накладывает: запросы IPv4 также будут обрабатываться.
11.3.2. Настройка суперсервера xinetd
Все настройки суперсервера xinetd сосредоточены в файле
/etc/xinetd.conf
. В составе дистрибутивов Red Hat и Mandrake уже имеется такой готовый файл, но в нем содержится лишь минимальный набор установок. В него включена строка, которая указывает суперсерверу прочитать все файлы в каталоге /etc/xinetd.d
и воспринимать их как дополнительные конфигурационные файлы.
Все конфигурационные файлы —
/etc/xinetd.conf
и включаемые в него директивой includedir— состоят из записей, имеющих следующий вид:
service <���имя_службы>
{
<���атрибут> <���оператор_присваивания > <���значение> ...
...
}
Имя_службы может иметь значение login, shell, telnet, ftp, pop3 и т.п.
Оператор присваивания может быть одним из следующих: «=», «+=», «-=». Большинство атрибутов может работать только с оператором «=». Назначение операторов таково:
♦ «=»: присвоить атрибуту значение;
♦ «+=»: добавить атрибуту еще одно значение;
♦ «-=»: удалить значение атрибута.
Атрибут может иметь несколько значений, указанных через пробел. Большинство атрибутов можно использовать в секции defaultsконфигурационного файла. Эта секция размещается в начале файла, и все заданные в ней атрибуты применяются ко всем серверам (сервисам), находящимся под контролем xinetd. Для каждого сервера (сервиса) можно индивидуально переопределить установки, заданные по умолчанию: если атрибут определен и в секции defaults, и в описании сервера (сервиса), то имеет силу значение, заданное в описании данного сервера (сервиса).
Среди атрибутов xinetdможно выделить следующие группы:
♦ Запрет вызова сервера (сервиса). Запретить вызов какого-либо сервера (сервиса), находящегося под управлением xinetd, можно с помощью значения атрибута disable=yes(в inetdдля этого пришлось бы закомментировать все строки описания сервиса). Того же эффекта можно достичь, если в секции defaultsфайла
/etc/xinetd.conf
указать disables=список_серверов
. Список серверов (сервисов) состоит из их имен, разделенных пробелами.
♦ Перенаправление. С помощью атрибута redirectможно обращение к серверу (сервису), для которого указан этот атрибут, перенаправить на другой компьютер, Целевой компьютер указывается либо доменным именем, либо IP-адресом: redirect=целевой_компьютер. Этого же эффекта можно достичь и с помощью iptables, но, используя для этой цели xinetd, вы можете применять средства управления доступом суперсервера.
♦ Протоколирование. Определить, какая информация должна записываться в журнал в случае успешного запуска сервера (сервиса), а какая в случае неудачи, вы можете с помощью атрибутов log_on_successи log_on_failure. Подробное описание этих атрибутов приведено в таблице 11.2.
♦ Ограничение на установление соединений. Можно указать максимальное количество запросов от одного источника (сервиса), которое может обработать xinetdв единицу времени, а также максимальную загрузку xinetd, по достижении которой он будет отвергать все обращения, и приоритет обработки серверов (сервисов). Для этого предназначены атрибуты per_source, instances, cps, niceи max_load(таблица 11.2).
♦ Атрибуты защиты и управления доступом. В этих атрибутах заключается основное преимущество xinetdперед его предшественником inetd. С их помощью можно установить:
• ограничения для отдельных узлов (атрибуты only_fromи no-access);
• ограничение по времени — временной интервал, в течение которого сервер (сервис) будет доступен для клиентов (атрибут access_times);
• ограничения на использование интерфейсов — можно связать сервер с одним конкретным сетевым интерфейсом (атрибут interface).
Атрибуты сервисов под управлением xinetdТаблица 11.2
Атрибут | Возможные значения |
---|---|
id | Используется, если сервисы используют разные протоколы. Обычно совпадает с именем сервиса |
type | Любая комбинация из следующих значений: 1. RPC — если эта сервис RPC [Remote Procedure Call). Вызов удаленной процедуры используется в серверной части приложения. Механизм RPC скрывает от программиста детали сетевых протоколов нижележащих уровней. 2. UNLISTED — если сервис не описан в файле /etc/rpc для RPC сервисов или в /etc/services для не-RPC. 3. INTERNAL — если xinetd представляет этот сервис (для echo, time, daytime, chargen и discard). Если RPC-сервисы у вас работают некорректно после установки xinetd, вы можете использовать для них старый inetd — он прекрасно уживается с xinetd. В файле /etc/inetd.conf оставьте только RPC-сервисы, а остальное закомментируйте, а в /etc/xinetd.conf — наоборот |
flags | Любая комбинация из следующих значений: 1. NODELAY — только для TCP-сервисов! Будет установлен флаг сокета — TCP_NODELAY. 2. DISABLE — отключить сервис. 3. KEEPALIVE — Только для TCP сервисов! Установка флага сокета SO_KEEPALIVE. 4. REUSE — установить флаг SO_REUSEADDR на сокет сервера. 5. INTERCEPT — перехватывать пакеты или принимать соединения по порядку, проверяй, что они приходят из нужных мест. 6. NORETRY — избегать повторных попыток в случае неудачи. 7. IDONLY — соединение будет приниматься только от идентифицированных пользователей. На удаленной машине должен работать сервер идентификации |
disable | yes (отключить сервис) или no (не отключать) |
socket_type | Тип сокета. Может принимать следующие значения: 1. stream — сокет stream, обычно используется службами, работающими на основе протокола TCP; 2. dgram — сокет dgram, обычно используется службами, работающими на основе протокола UDP; 3. raw — сокет raw для сервисов, требующих прямого доступа к IP; 4. seqpacket — сокет seqpacketдля сервисов, требующих надежной последовательной пересылки датаграмм |
protocol | tcp, udp и т.п. |
wait | yes (ждать завершения сервиса на данном сокете) или no (не ждать). Значение yes обычно устанавливается для сокетов dgram, а значение no - для сокетов stream |
user | Регистрационное имя пользователя, от имени которого будет запущен сервер (по умолчанию — root) |
server | Абсолютный путь к запускаемому серверу |
server_args | Аргументы, передаваемые серверу |
only_from | Список хостов, IP-адресов или сетей, которым будет доступен сервис. Аналог файла hosts.allow |
no_access | Список хостов, которым данный сервис не будет доступен. Аналог hosts.deny. Если ни один из атрибутов ( only_fromи no_access) не указан, то сервис будет доступен всем |
access_times | Интервалы времени в форме ЧЧ:ММ-ЧЧ:ММ, на протяжении которых сервис будет доступен. Например, 9:00-18:00 |
log_type | Способ ведения сервисом журнала. Значения: 1. SYSLOG syslog_facility [syslog_level] — сообщения будут посылаться демону syslogd; 2. FILE file [soft_limit [hard_limit]] — сообщения будут писаться в указанный файл |
log_on_failure | Определяет, какая информация будет протоколироваться, если сервис по каким-либо причинам не запустился: 1. HOST — записывать адрес удаленного хоста. 2. USERID — если возможно, записывать идентификатор удаленного пользователя (используется протокол идентификации RFC 1413). 3. ATTEMPT — записывать факт неудачной попытки. 4. RECORD — записывать информацию с удаленного узла в случае невозможности запуска сервера |
log_on_success | Определяет, какая информация будет протоколироваться а случае удачного запуска сервиса. Можно комбинировать любые из следующих значений: 1. PID — идентификатор запущенного серверного процесса. 2. HOST — адрес удаленного хоста. 3. USERID — если возможно, идентификатор удаленного пользователя (используется протокол идентификации RFC 1413). 4. EXIT — записывать, каким образом был произведен выход. 5. DURATION — продолжительность сессии |
rpс_number | Номер сервиса RPC |
rpc_version | Версия сервиса RPC |
env | Список строк типа "имя=значение". Эти переменные будут добавлены в окружение перед тем, как сервер будет запущен |
passenv | Список переменных окружения xinetd, которые должны быть переданы серверу |
port | Порт сервиса. Если порт указан в файле /etc/services, то значение данного параметра должно совпадать с ним |
redirect | Позволяет tcp-сервису делать перенаправление на другой хост. Значение задается в виде host:port |
interface | Устанавливает интерфейс, через который будет работать сервис. Значением должен быть IP-адрес |
bind | Синоним параметра interface |
banner | Определяет имя файла, который Будет показываться при соединении с сервисом |
banner_success | Определяет имя файла, который будет показываться при удачном соединении |
banner_fail | Определяет имя файла, который будет показываться при неудачном соединении |
cps | Атрибут имеет два аргумента. Первый устанавливает количество соединений в секунду. Если это число будет превышено, сервис будет временно недоступен. Второй — число секунд, после которых сервис снова будет доступен |
max_load | Определяет максимальную загрузку. При достижении максимума сервер пере стает принимать запросы на соединение. Значение параметра — вещественное число типа float |
per_source | Количество запросов от одного источника (сервиса), которое может обработать xinetd в единицу времени. Значением может быть либо число, либо UNLIMITED |
instances | Максимальное количество процессов (серверов), которое xinetdможет одновременно использовать для сервиса (по умолчанию лимита нет). Значением этого атрибута может быть либо число (большее значения атрибута per_source), либо UNLIMITED |
nice | Устанавливает приоритет (показатель уступчивости) сервиса |
Необязательно указывать для каждого сервиса все атрибуты. Можно указать только необходимые:
Интервал:
Закладка: