После успешной установки IP и resolver Вы должны перейти к настройке сервисов, обеспечивающих хорошую работу в сети. Эта глава начинается с описания настройки нескольких простых сетевых приложений, включая суперсервер inetd и программ семейства rlogin.
Конечно, я не могу описать все сетевые приложения в этой работе. Если Вы хотите установить то приложение, которое здесь не обсуждается, обратитесь к руководству по этому приложению.
Часто услуги предоставляются так называемыми демонами (daemons). Daemon является программой, которая открывает некоторый порт и ждет входящих соединений. Если происходит соединение, программа создает дочерний процесс, который обрабатывает соединение в то время, как основной процесс продолжает ждать дальнейших запросов. Этот подход имеет тот недостаток, что для каждого предлагаемого сервиса daemon должен быть свой. А они занимают ресурсы системы пока ждут соединения.
Таким образом, почти все версии Un*x запускают "суперсервер", который создает сокеты для ряда услуг и слушает их одновременно при использовании системного вызова select(2). Когда отдаленный хост запрашивает одну из услуг, суперсервер замечает это и порождает другой сервер, установленный для этого порта, а сам продолжает слушать соединения.
Обычно используется суперсервер inetd, Internet Daemon. Он запускается при начальной загрузке системы и берет список услуг, к которым он обращается из файла запуска /etc/inetd.conf . В дополнение к вызываемым серверам там есть ряд тривиальных услуг, которые являются внутренними сервисами inetd. Они включают chargen, который просто генерирует ряд знаков и daytime, который возвращает время.
Каждая запись в файле /etc/inetd.conf состоит из единственной строки, состоящей из следующих полей:
service type protocol wait user server cmdline |
Значения полей:
Пример файла inetd.conf показан в примере 12-1. Сервис finger закомментирован, чтобы он не был доступен. Это часто делается из соображений безопасности, потому что может использоваться нападающими для того, чтобы получить имя пользователя на Вашей системе.
Пример 12-1. Типовой файл /etc/inetd.conf
# # inetd services ftp stream tcp nowait root /usr/sbin/ftpd in.ftpd -l telnet stream tcp nowait root /usr/sbin/telnetd in.telnetd -b/etc/issue #finger stream tcp nowait bin /usr/sbin/fingerd in.fingerd #tftp dgram udp wait nobody /usr/sbin/tftpd in.tftpd #tftp dgram udp wait nobody /usr/sbin/tftpd in.tftpd /boot/diskless #login stream tcp nowait root /usr/sbin/rlogind in.rlogind #shell stream tcp nowait root /usr/sbin/rshd in.rshd #exec stream tcp nowait root /usr/sbin/rexecd in.rexecd # # inetd internal services # daytime stream tcp nowait root internal daytime dgram udp nowait root internal time stream tcp nowait root internal time dgram udp nowait root internal echo stream tcp nowait root internal echo dgram udp nowait root internal discard stream tcp nowait root internal discard dgram udp nowait root internal chargen stream tcp nowait root internal chargen dgram udp nowait root internal |
tftp также закомментирован. tftp осуществляет примитивный протокол передачи файлов ( Trivial File Transfer Protocol), который позволяет передавать любые общедоступные файлы из Вашей системы без пароля. Это особенно вредно для файла /etc/passwd, даже более того, когда Вы не используете теневой пароль.
TFTP обычно используется бездисковыми клиентами и X-терминалами при загрузке их кода с сервера при начальной загрузке. Если Вы должны запустить tftpd, удостоверьтесь, что область доступа к директориям клиентов будет строго ограничена. Это показано во второй строке для tftp, в примере.
Назад | Глобальное оглавление | Вперед |
Еще о сетевой трансляции адресов (Network Address Translation) | Контроль доступа с помощью tcpd |