Бруй В.В., Карлов С.В. - Linux-сервер - пошаговые инструкции - инсталляции и настройки (1077321), страница 64
Текст из файла (страница 64)
В рассматриваемом примере это пользователь root. Внекоторых случаях могут быть и другие пользователи, поэтому желательно проверить для всех служб, возможен ли их запуск пользователями с меньшими привилегиями.Строка:server = /usr/sbin/ipop3dопределяет путь к исполняемому файлу запускаемой службы.Строка:only_from = 0.0.0.0/0определяет IP-адреса систем, с которых разрешен доступ к службе pop3s на вашем сервере.264Часть 4. Программное обеспечение для ограничения доступа к серверу...ЗАМЕЧАНИЕ Вспомните, что в файле /etc/xinetd.conf вы запретили доступ ко всем службам, запущенным с использованием xinetd со всех IP-адресов. Строка:only_from = 0.0.0.0/0переопределяет это правило только для службы pop3s, разрешая доступ к нему с любого IP-адреса.
Вы также можете использовать другие (более жесткие) параметры, ограничивающие диапазон IP-адресов, с которыхвозможно обращение клиентов к службе доставки электронной почты.Строка:no_access = 212.24.38.75определяет IP-адреса удаленных систем, доступ с которых к службе запрещен. В данном случае определенодин компьютер с IP-адресом 212.24.38.75.Строка:instance = 30определяет число запросов, которое может обработать служба. Значение параметра "30", установленное врассматриваемом примере, переопределяет значение "40", установленное в файле /etc/initd.conf длявсех служб. Т. е. служба pop3s сможет обслуживать до 30 клиентских соединений одновременно.Строка:log_on_success += DURATION HOSTопределяет дополнительные (в дополнение к тем, что были установлены в строке log_on_success в файле /etc/initd.conf) параметры, регистрируемые при успешном обращении к службе, запущенной с использованием xinetd.
Это достигается использованием символов "+=".Строка:log on_failure += HOSTопределяет дополнительные параметры, регистрируемые при неудачном обращении к службе.Строка:nice = -2определяет приоритет выполнения процесса. Минимальное значение параметра составляет "-20" (самый высокий приоритет), максимальное задается числом "19" (самый низкий приоритет). Более подробная информация об использовании этой опции может быть получена из руководства по команде nice:[root@drwalbr /]# man 1 niceСтрока:disable = noопределяет, разрешен запуск службы или нет. В рассматриваемом примере значение "no" снимает блокировку и разрешает запуск службы.Конфигурационный файл /etc/xinet.d.d/timeДля запуска службы time создайте файл /etc/xinetd.d/time, руководствуясь приведенныминиже рекомендациями и вашими потребностями:service time{socket type= streamwait= nouser= roottype= INTERNALid= time-streamprotocol= tcponly_from= 192.168.1.0/24disable= no}service time-udp{socket type= dgramwait= yesuser= roottype= INTERNALid= time-dgramprotocol= udponly_from= 192.168.1.0/24port= 37disable= no}Глава 21.
xinetd – программное обеспечение для запуска обычных программ в режиме сервера265где строки:socket type = stream и socket type = dgramопределяют, соответственно, тип сокета для соединений по протоколу TCP и UDP.Строки:wait = no и wait = yesопределяют режим запуска службы.
Если значение параметра установлено "yes", служба запускается в режиме single-threaded. Если используется устанавливаемое по умолчанию значение "no", то xinetd запускаетслужбу в режиме multi-threaded.Строка:type = INTERNALопределяет тип службы. Опция type может использоваться со следующими параметрами:• RPC – служба RPC (Remote Procedure Call);• INTERNAL – служба, поддерживаемая xinetd;• UNLISTED – служба, не перечисленная в файлах /etc/rpc и /etc/services.Строки:id = time-stream и id = time-dgramиспользуются для переопределения названия служб.
В рассматриваемом примере используются различныеназвания для одной и той же службы, работающей с различными протоколами, соответственно, TCP и UDP.Строки:protocol = tcp и protocol = udpопределяют тип протокола, используемый службой. В рассматриваемом примере используются протоколыTCP и UDP.Строка:port = 37определяет номер порта, который прослушивается сервером.Конфигурационный файл /etc/xinetd.d/chargenДля запуска службы chargen создайте файл /etc/xinetd.d/chargen, руководствуясь приведенными ниже рекомендациями и вашими потребностями:service chargen{socket_type= streamwait= nouser= roottype= INTERNALid= chargen-streamprotocol= tcponly from= 192.168.1.0/24noaccess= 212.24.38.75disable= yes}service chargen-udp{socket_type= dgramwait= yesuser= roottype= INTERNALid= chargen-dgramprotocol= udponly from= 192.168.1.0/24no access= 212.24.38.75port= 19disable= yes}Назначение всех строк, используемых в этом примере конфигурационного файла, аналогично приведенным выше.266Часть 4.
Программное обеспечение для ограничения доступа к серверу...Конфигурационный файл /etc/xinetd.d/echoДля запуска службы echo создайте файл /etc/xinetd.d/echo, руководствуясь приведенныминиже рекомендациями и вашими потребностями:service echo{socket_type= streamwait= nouser= roottype= INTERNALid= echo-streamprotocol= tcponly from= 192.168.1.0/24noaccess= 212.24.38.75disable= yes}service echo-udp{socket_type= dgramwait= yesuser= roottype= INTERNALid= echo-dgramprotocol= udponly from= 192.168.1.0/24no access= 212.24.38.75port= 7disable= yes}Назначение всех строк, используемых в этом примере конфигурационного файла, аналогично приведенным выше.Конфигурационный файл /etc/xinetd.d/daytimeДля запуска службы daytime создайте файл /etc/xinetd.d/daytime, руководствуясь приведенными ниже рекомендациями и вашими потребностями:service daytime{socket_type= streamwait= nouser= roottype= INTERNALid= daytime-streamprotocol= tcponly from= 192.168.1.0/24noaccess= 212.24.38.75disable= yes}service daytime-udp{socket_type= dgramwait= yesuser= roottype= INTERNALid= echo-dgramprotocol= udponly from= 192.168.1.0/24no access= 212.24.38.75port= 13disable= yes}Глава 21.
xinetd – программное обеспечение для запуска обычных программ в режиме сервера267Назначение всех строк, используемых в этом примере конфигурационного файла, аналогично приведенным выше.Конфигурационный файл /etc/xinetd.d/imapsДля запуска службы imaps создайте файл /etc/xinetd.d/imaps, руководствуясь приведенныминиже рекомендациями и вашими потребностями:service imaps{socket_type= streamwait= nouser= rootserver= /usr/sbin/imapdonly_from= 0.0.0.0/0no_access= 212.24.38.75instances= 30log_on_success+= DURATION HOSTlog on failure+= HOSTnice= -2redirect= 172.16.181.105 993bind= 212.45.28.122disable= yes}где строка:redirect = 172.16.181.105 993переадресовывает запросы к службе, якобы работающей на 993 порту сетевого интерфейса 212.24.38.75, на993 порт сетевого интерфейса другой системы с IP-адресом 172.16.181.105.Строка:bind = 212.45.28.122определяет IP-адрес сетевого интерфейса, прослушиваемого службой imaps.
Назначение остальных строк,используемых в этом примере конфигурационного файла, рассмотрено выше.Файл инициализации /etc/init.d/xinetdЕсли вы хотите, что бы xinetd запускался автоматически при загрузке системы, необходимо выполнить следующие операции.Шаг 1Создайте файл /etc/init.d/xinetd, содержащий следующие строки:#!/bin/bash# This shell script takes care of starting and stopping Xinetd.## chkconfig: 345 56 50# description: Xinetd is a powerful replacement for inetd. It has access\#control machanisms, extensive logging capabilities, the \#ability to make services available based on time, and can\#place limits on the number of servers that can bestarted, \#among other things.## processname: /usr/sbin/xinetd# config: /etc/sysconfig/network# config: /etc/xinetd.conf# pidfile: /var/run/xinetd.pidprog="Xinetd"PATH=/sbin:/bin:/usr/bin:/usr/sbin# Source function library.268Часть 4.
Программное обеспечение для ограничения доступа к серверу.... /etc/init.d/functions# Get config.test -f /etc/sysconfig/network && . /etc/sysconfig/networktest -f /etc/sysconfig/xinetd && . /etc/sysconfig/xinetd# Check that networking is up.[ ${NETWORKING} = "yes" ] || exit 0[ -f /usr/sbin/xinetd ] || exit 1[ -f /etc/xinetd.conf ] || exit 1RETVAL=0start() {echo -n $"Starting $prog: "LANG=en_USLC_TIME=en_USLC_ALL=en_USLC_MESSAGES=en_USLC_NUMERIC=en_USLC_MONETARY=en_USLC_COLLATE=en_USexport LANG LC_TIME LC_ALL LC_MESSAGES LC_NUMERIC LC_MONETARYLC_COLLATEunset HOME MAIL USER USERNAMEdaemon xinetd -stayalive -reuse -pidfile /var/run/xinetd.pid"$EXTRAOPTIONS"RETVAL=$?echotouch /var/lock/subsys/xinetdreturn $RETVAL}stop() {echo -n $"Stopping $prog: "killproc xinetdRETVAL=$?echorm -f /var/lock/subsys/xinetdreturn $RETVAL}reload() {echo -n $"Reloading configuration: "killproc xinetd -USR2RETVAL=$?echoreturn $RETVAL}restart() {stopstart}condrestart() {[ -e /var/lock/subsys/xinetd ] && restartreturn 0}Глава 21.
xinetd – программное обеспечение для запуска обычных программ в режиме сервера269# See how we were called.case "$1" instart)start;;stop)stop;;restart)restart;;reload)reload;;condrestart)condrestart;;*)echo $"Usage: $0 {start|stop|restart|condrestart|reload}"RETVAL=1esacexit $RETVALШаг 2Сделайте файл исполняемой программой и определите его владельцем пользователя root:[root@drwalbr /]# chmod 700 /etc/init.d/xinetd[root@drwalbr /]# chown 0.0 /etc/init.d/xinetdШаг 3Если вы хотите, чтобы программа xinetd автоматически запускалась при загрузке системы, создайтесоответствующие ссылки:[root@drwalbr /]# chkconfig --add xinetd[root@drwalbr /]# chkconfig --level 345 xinetd onШаг 4Для запуска xinetd используйте команду:[root@drwalbr /]# /etc/init.d/xinetd startStarting Xinetd:[OK]270Часть 4. Программное обеспечение для ограничения доступа к серверу...Глава 22NTP – программное обеспечение для синхронизации времениВ этой главе:1.
Ограничения и допущения2. Пакеты3. Инсталляция с помощью rpm-пакетов4. Компиляция, оптимизация и инсталляция NTP5. Конфигурирование NTP6. Конфигурационный файл /etc/ntp.conf для сервера7. Конфигурационный файл /etc/ntp.conf для клиента8. Конфигурационный файл /etc/ntp.drift9. Конфигурационный файл /etc/ntp.drift10.Файл инициализации /etc/init.d/ntpd11. Тестирование NTP12. Выполнение NTP в среде chroot-jailГлава 22. NTP – программное обеспечение для синхронизации времени271Синхронизация системного времени на всех серверах и рабочих станциях вашей сети является важной мерой по обеспечению безопасности. Как правило, поиск уязвимостей и негативные воздействия со стороны злоумышленников осуществляются не на одну, а на несколько систем одновременно.
Для упрощенияанализа информации о поиске уязвимости и попытках деструктивного воздействия на вашу сеть в многочисленных файлах регистрации и сообщениях электронной почты системное время должно совпадать, покрайней мере, с точностью до 1 секунды. Синхронизация системного времени также необходима для нормальной работы многих служб, например службы DNS, обмен информацией в которой между первичным ивторичным DNS-серверами предъявляет достаточно жесткие требования по синхронизации времени. Крометого, наличие точного времени на рабочих станциях сети вашего предприятия просто удобно для решенияразличных задач прикладного характера (синхронизация прибытия сотрудников на служебные совещания,чаепития, товарищеские ужины, обеды, завтраки и т.
п., поддержание исполнительской дисциплины).Протокол Network Time Protocol (NTP), описанный в RFC-1305 и RFC-2030, предусматривает иерархическую структуру, используемую для согласования системного времени. В соответствии c протоколомNTP серверы первого уровня (stratum 1) синхронизуют свое время по часам-эталонам (например, атомнымчасам). Серверы второго уровня (stratum 2) получают информацию о точном времени от серверов первогоуровня, используя поправки на удаленность. Обычным пользователям рекомендуется использовать серверавторого уровня для синхронизации времени на одном из серверов своей сети, который также используется вкачестве сервера первого уровня для всех систем в вашей сети.Схема, реализующая синхронизацию времени в сети масштаба предприятия с использованием внешних эталонов, представлена на рис.