Сервисы общего назначения.
Метки: RPC | SSH
Среда, 6 мая 2009 г.
Просмотров: 2328
Поговорим о сервисах, которые необходимы, и которые сервисы нужно отключить.
Рассмотрим отдельные сервисы общего назначения, которые обыкновенно запущены на типичной 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-сервисах:
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:
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.