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
Рис. 15. /etc/inetd.conf file.
ограничить доступ к этим услугам " доверенные множества " только, которые невозможны с обычной установкой, где inetd обеспечивает эту защиту всей клиентуре.
&Полззное средство для этого - 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