Личный блог Suvan`a.

Работая и играя с Linux... И что из этого иногда получается.

Сервисы общего назначения.

Рубрика: Безопасность -> Основные меры защиты Linux
Метки: |
Среда, 6 мая 2009 г.
Просмотров: 5979

Поговорим о сервисах, которые необ­ходимы, и которые сервисы нужно отключить.

     Рассмотрим отдельные сервисы общего назначения, которые обыкновенно запущены на типичной Linux-системе. В скобках указаны порты, которые используются этими сервисами:


  • Echo (TCP/UDP 7) — отправляет обратно любые принятые данные.
  • Discard (TCP/UPD 9) — отказывается от любых принятых данных.
  • Daytime (TCP/UDP 13) — возвращает текущую дату и время.
  • Qotd (TCP/UPD 17) — возвращает цитату дня.
  • Chargen (TCP/UDP 19) — возвращает поток символов.
  • Telnet (TCP/UDP 23) — удаленный доступ к системе. В отличие от Telnet, SSH предоставляет зашифрованную сессию.
  • Time (TCP/UDP 37) — протокол Time предоставляет дату и время в формате, понятном машине.
  • Tftp (TCP/UDP 69) - Trivial File Transfer Protocol. Сегодня данный сервис не используется.
  • Finger (TCP/UDP 79) — демон finger предоставляет информацию о пользователях системы, например:
finger root@192.168.0.2

[192.168.0.2/192.168.0.2]

Login: root Name: (null)

Directory: /root Shell: /bin/bash

Last login Fri Apr 23 11:10 (UTC) on pts/10 from 192.168.10.1

Mail last read Tue Jan 20 00:25 2004 (UTC) No Plan

     Кроме того, что finger известен своим большим списком уязвимостей, он также отдает хакеру полезную информацию о пользователях. Поэтому данный сервис нужно обязательно отключить.

  • Auth (TCP/UDP 113): демон аутентификации (identd). Некоторые сервисы, например SMTP, требуют, чтобы identd был запущен.

     Все эти сервисы, разве что за исключением auth, должны быть отключены.

     Пакет Berkeley R*.

     Пакет Berkeley R* нужен для аутентификации по имени узла. В со­ставе пакета есть следующие сервисы:

  • rехес(ТСР 512) — выполняет команду на удаленном узле.
  • rlogin (TCP 513) — удаленный rlogin — вроде telnet, но не требует пароля.
  • rshell (TCP 514) — подобен rехес, позволяет удаленное выполнение множества команд на протяжении одной сессии.

     В настоящее время почти не используются. Хотя у этих сервисов было одно существенное преимущество: они не передавали по сети пароль, ко­торый мог бы быть перехвачен. Несмотря на это, все эти три сервиса были заменены одним - SSH. Ввиду огромного потенциала последнего нужно использовать, поэтому SSH.

     RPC-сервисы.

     Механизм удаленного вызова процедур (Remote Procedure Call, RPC) дает возможность удаленному узлу выполнять некоторые процедуры на локальной системе с отправкой результата выполнения процедуры назад удаленному узлу. Механизм RPC для передачи данных использует пред­ставление внешних данных (External Data Representation, XDR), работаю­щее по протоколам TCP или UDP.

     Все RPC-сервисы уникально идентифицируются по номеру программы, где первая цифра - это версия программы: информация о версии програм­мы критична, поскольку различные версии несовместимы между собой. В фай­ле /etc/rpc содержится информация об RPC-сервисах:

portmapper 100000 portmap sunrpc rpcbind

rstatd 100001 rstat rup perfmeter rstat_svc

rusersd 100002 rusers

nfs 100003 nfsprog

ypserv 100004 ypprog

mountd 100005 mount showmount

ypbind 100007

walld 100008 rwall shutdown

yppasswdd 100009 yppasswd

etherstatd 100010 etherstat

rquotad 100011 rquotaprog quota rquota

sprayd 100012 spray

3270_mapper 100013

rje_mapper 100014

selection_svc 100015 selnsvc

database_svc 100016

rexd 100017 rex

alis 100018

sched 100019

llockmgr 100020

nlockmgr 100021

x25.inr 100022

statmon 100023

status 100024

bootparam 100026

ypupdated 100028 ypupdate

keyserv 100029 keyserver

     Разработчики RPC (Sun) посчитали, что будет не сильно удобно использо­вать зарезервированные порты, это означает, что если определенный порт занят, то RPC-сервис может занять свободный порт. Неко­торые RPC-сервисы запускаются на строго фиксированных портах, напри­мер, portmapper запускается на порту ТСР/111.

     Посмотреть, какие RPC-сервисы запущены на компьютере, можно с помощью команды rpcinfo:

# rpcinfo -p localhost

  program vers proto port

  100000 2 tcp 111 portmapper

  100000 2 udp 111 portmapper

     На этой машине запущена вторая версия portmapper.

     Практически все RPC-сервисы очень плохо защищены. Если нужно их использовать в сети, лучше отключить их, по крайней мере, на брандмауэре/маршрутизаторе.

     Еще одна проблема заключается в том, что RPC-сервисы запускаются без ведома администратора, причем на UDP-портах с большими номерами, не видимых администратором при сканировании портов.

     Рассмотрим сервисы, которые используют механизм RPC:

  • rpc.lockd — используется сетевой файловой системой (NFS), nlockmgr реализует блокировку файлов с целью предотвращения одновременного использования файла двумя или более узлами.
  • rpc.mountd — обрабатывает NFS-запросы монтирования, поступающие от клиентов.
  • rpc.cmsd — сервис управления календарем (Calendar Manager Service) — планировщик, используемый CDE (Common Desktop Environment).
  • rpc.walld — расширение, используемое NFS, walld позволяет администратору отправлять широковещательные сообщения всем пользователям NFS-сервера (обычно сообщается о том, что машина будет перезагружена)
  • ypbind, ypserv, yppasswdd, ypupdated, ypxfrd — ур-сервисы (Yellow Pages) относятся к NIS (Network Information Service). Если компьютер не является NIS-сервером, нужно отключить эти сервисы.
  • statd — позволяет удаленным узлам получать различную статистику, вроде использования процессора, памяти, диска, сети и пр.
  • amd — демон автоматического монтирования, используемый NFS. Автоматически монтирует файловые системы, когда пользователь пытается обратиться к файлу этой файловой системы.

     Как отсюда видно, все эти сервисы относятся или к NIS, или к NFS, поэтому их нужно отключать на брандмауэре и на серверах в DMZ.