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

ЖАНРЫ

Linux глазами хакера

Флёнов Михаил Евгеньевич

Шрифт:

□ 

псевдоним
— вымышленное имя для сервиса.

Например, в файле /etc/services вы найдете следующие строки:

tcpmux 1/tcp # TCP port service multiplexer

tcpmux 1/udp # TCP port service multiplexer

rje 5/tcp # Remote Job Entry

rje 5/udp # Remote Job Entry

echo 7/tcp

...

...

ftp 21/tcp

ftp 21/udp fsp fspd

...

...

Я

специально выбрал такие строки, чтобы вы увидели варианты описания различных сервисов.

Если вы используете старый дистрибутив ОС Linux, то в нем, скорей всего, еще работает inetd. Но мы уже говорили, что давнишний дистрибутив не может быть безопасным, и с ним что-либо делать бесполезно. Лучший защита — обновление, и тогда основным сервисом станет xinetd, который становится, если уже не стал, стандартом для всех.

Я рекомендую переход на xinetd, потому что в нем появилось много дополнительных возможностей, которые делают удобным администрирование и повышают безопасность. Например, в сервис xinetd встроены проверка всех удачных и неудачных соединений, возможность контроля доступа и даже предоставление его строго в определенное время.

5.4.1. Конфигурирование xinetd

Основной конфигурационный файл для xinetd — это /etc/xinetd.conf. В нем описываются настройки по умолчанию для запускаемых сервисов и директория, в которой будут находиться конфигурационные файлы, влияющие на работу конкретных сервисов. Рассмотрим по листингу 5.3 содержимое этого файла.

Листинг 5.3. Файл конфигурации /etc/xinetd.conf

#

# Simple configuration file for xinetd

# Пример конфигурационного файла для xinetd

#

# Some defaults, and include /etc/xinetd.d/

# Некоторые параметры по умолчанию

# и подключение директории /etc/xinetd.d/

defaults {

 instances = 60

 logotype = SYSLOG authpriv

 log_on_success = HOST PID

 log_on_failure = HOST

 cps = 25 30

}

includedir /etc/xinetd.d

После ключевого слова

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

Последняя строка подключает директорию /etc/xinet.d:

includedir /etc/xinetd.d

В этом каталоге для каждой службы есть собственный конфигурационный файл, где можно изменить параметры. Имена файлов соответствуют названиям сервисов, а содержимое — похоже на /etc/xinetd.conf. В листинге 5.4 приведено содержимое конфигурационного файла /etc/xinet.d/telnet для сервиса Telnet.

Листинг 5.4. Конфигурационный файл для сервиса Telnet

# default: on

#
По умолчанию включен

# description: The telnet server serves telnet sessions;

# it uses unencrypted username/password

# pairs for authentication.

# Описание: Telnet-сервис обслуживает telnet-сессии.

# Он использует не зашифрованные имя пользователя

# и пароль для аутентификации

service telnet {

 disable = no

 flags = REUSE

 socket_type = stream

 wait = no

 user = root

 server = /usr/sbin/in.telnetd

 log_on_failure += USERID

}

Рассмотрим основные параметры, которые можно изменять:

□ 

disable
— если этот параметр установить в
true
, то сервис будет запрещен для исполнения;

□ 

flags
— атрибуты выполнения сервиса;

□ 

socket_type
— тип используемого сокета. Для протокола TCP здесь должно быть значение
stream
, а для протокола UDP —
dgram
;

□ 

protocol
— используемый для передачи данных протокол (TCP или UDP);

□ 

server
— полный путь к запускаемой программе;

□ 

user
— права доступа. В большинстве случаев можно увидеть имя пользователя root. Это нормально, потому что в ОС Linux для работы с номерами портов менее 1024 необходимы права администратора. В настоящее время большинство сервисов понижают свои права в соответствии с установками;

□ 

instances
— максимальное количество одновременно работающих экземпляров программы;

□ 

log_type
запись событий будет производиться в указанный файл или системный журнал;

□ 

log_on_success
и
log_on_failure
— информация, которая будет сохраняться в журнале при удачном и неудачном входе в систему соответственно, Здесь можно указывать значения:
PID
,
HOST
или
USER
;

□ 

per_source
— максимальное количество соединений от одного пользователя. Их может быть несколько, потому что юзеры любят максимально нагружать каналы и повышать скорость работы с помощью создания нескольких одновременно работающих соединений;

□ 

server_args
— аргументы, с которыми будет запускаться сервер.

При рассмотрении параметра

user
я упомянул о необходимости прав администратора для доступа к портам с номером менее 1024. Это действительно так, но зачем это нужно? Не имея прав root, пользователь не сможет запустить сервер, который работает с портом от 1 до 1024. Такая защита необходима, потому что в данном диапазоне функционируют очень важные сервисы, и их нельзя запускать простому пользователю.

Поделиться с друзьями: