Tcpd средства управления доступом

Начиная с открытия компьютера  к  сети  средство  вовлекает  много   защиты, приложения разработанные так, чтобы  принять  меры  против  типов   решения. Некоторые  из  этих,  однако,  могут  быть  flawed  (наиболее   решительно демонстрированными RTM Internet  worm),  или  могут  не   различаться  между безопасными хостами,  из  которых  просьбы  о  частном   обслуживании  будут приняты, и опасными хостами, чьи запросы  должны  быть   отклонены.  Мы  уже кратко обсуждали finger и tftp услуги выше.   
#
# 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

/etc/inetd.conf file.

ограничить доступ к этим услугам " доверенные множества "  только,   которые невозможны с обычной установкой, где inetd  обеспечивает  эту   защиту  всей клиентуре.

  • &amp Полззное средство для этого - tcpd, (1), так называемый daemon   wrapper. Для ТСP услуги Вы хотите проконтролировать или защищать его,   вызывая вместо его программу сервера. Tcpd  регестрирует  запрос  к  syslog
  •   daemon,  проверяя позволяют ли remote хосту использовать  обслуживание,  и   только  если  это будет выполнено в реальной программе сервера. Заметьте,   что это не работа с udp-основанными услугами.

Например, чтобы перенести finger daemon, Вы должны  изменить   corresponding линию в inetd.conf

1. Написано Wietse Venema, wietse@wzv.win.tue.nl.

# wrap finger daemon
finger  stream  tcp     nowait  root    /usr/sbin/tcpd   in.fingerd

Без добавления какого-либо access контроля, это появится  у  клиенту   точно также как и обычная  установка  finger,  за  исключением  того,  что   любые запросы будут регистрироваться к syslog's auth facility.   
Управление  доступом  выполнено  посредством  двух    файлов,   называемых /etc/hosts.allow  и  /etc/hosts.deny.  Они  содержат  разрешение   входов  и отрицание доступа, соответственно, к некоторым услугам и хостам.   Когда tcpd обрабатывает  просьбу  о  обслуживании  finger  от
клиентского    хоста, именованного Biff.foobar.com, он просматривает   hosts.allow и hosts.deny  (в этом порядке) для соответствующей записи и   сервисного и клиентского  хоста. Если запись соответствия была найдена  независимо от любой  записи  в hosts.deny.  Если  соответствие
найдено  в  hosts.deny,  то  запрос  будет отклонен закрывая связь.схему.   Если никакое соответствие не найдено вообще, запрос будет принят. 
Входы в файл доступа выглядят следующим образом:

Servicelist: hostlist [: shellcmd]

  • Servicelist - список сервисных имен из /etc/services,  или  ключевое   слово ALL. Чтобы соответствовать всем  услугам  за  исключением  finger  и   tftp, используйте "ALL"EXCGPT finger, tftp''.   
  •  Hostlist - список имен хостов или адресов IP, или ключевых слов ALL,   LOCAL, или  UNKNOWN.  ALL  соответствует  любой  хост,  в  то  время  как   LOCAL соответствует имя хоста,  не  содержащие  точку.(2)  UNKNOWN   соответствует любым  множествам  чьи  названия  или  адреса  ошибочны.   
  • Name    string, начинающееся с  точки  соответствует  всем  хостам,  чьи   области  является равными  этому  названию.  Например,.foobar.com  пара  -   Biff.foobar.com. Имеются  также  условия  для  IP  сетевых  адресов  и   подсет  к   странице справочника (5) для деталей.

Для того, чтобы отказать в доступе к finger и tftp услугам, кроме   локальных хостов,  поместите  следующее  в  /etc/hosts.deny,  и    сделайте
пустым /etc/hosts.allow:

2. Обычно только локальные имена хостов, полученные из поисков в   /etc/hosts не содержать никакой точки.


in.tftpd, in.fingerd: ALL EXCEPT LOCAL, .your.domain

Произвольная shellcmd область может  содержать   командную  оболочку,   чтобыбыть вызванной, когда запись согласована. Это полезно  установить   ловушку, которая может разоблачить потенциальных нападавших:   
in.ftpd: ALL EXCEPT LOCAL, .vbrew.com : \
echo "request from %d@%h" >> /var/log/finger.log; \
if [ %h != "vlager.vbrew.com" ]; then \
finger -l @%h >> /var/log/finger.lы  отличны.

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

# The services file:
#
# well-known services
echo           7/tcp                 # Echo
echo           7/udp                 #
discard        9/tcp  sink null      # Discard
discard        9/udp  sink null      #
daytime       13/tcp                 # Daytime
daytime       13/udp                 #
chargen       19/tcp  ttytst source  # Character Generator
chargen       19/udp  ttytst source  #
ftp-data      20/tcp                 # File Transfer Protocol (Data)
ftp           21/tcp                 # File Transfer Protocol
(Control)
telnet        23/tcp                 # Virtual Terminal Protocol
smtp          25/tcp                 # Simple Mail Transfer Protocol
nntp         119/tcp  readnews       # Network News Transfer
Protocol
#
# UNIX services
exec         512/tcp                 # BSD rexecd
biff         512/udp  comsat         # mail notification
login        513/tcp                 # remote login
who          513/udp  whod   "       # remote who and uptime
shell        514/tcp  cmd            # remote command, no passwd
used
syslog       514/udp                 # remote system logging
printer      515/tcp  spooler        # remote print spooling
route        520/udp  router routed  # routing information protocol


Заметьте, что, например, обслуживание ECHO  предлагается  на  порте   7  для обоих и TCP и UDP, и этот порт 512 используется для двух различных   услуг, а именно для  СИСТЕМЫ  СПУТНИКОВОЙ  СВЯЗИ  КОМСАТ  daemon  (которые   сообщают пользователям относительно новой почты, смотри xbiff(1x)), над   UDP,  и  для remote execution (rexec(1)), используя TCP.

#
# Internet (IP) protocols
#
ip      0       IP              # internet protocol, pseudo protocol
number
icmp    1       ICMP            # internet control message protocol
igmp    2       IGMP            # internet group multicast protocol
tcp     6       TCP             # transmission control protocol
udp     17      UDP             # user datagram protocol
raw     255     RAW             # RAW IP interface