<< Предыдущий раздел | /\ Содержание | >> Следующий раздел

Риски при использовании компьютерных сетей

Риск для безопасности, связанный с использованием компьютерных сетей, в основном сводится к трем факторам:

Первые две проблемы в основном могут быть решены путем использования пакета ssh вместо ftp, telnet и rlogin/rsh/rcp, а на третьей мы остановимся чуть подробнее.

Подсистемы, наиболее подверженные взлому

Хотя в принципе "дыра" может обнаружиться в любой сетевой программе, исторически наиболее подверженными взлому являются подсистемы FTP, NFS, Samba (сеть MS-Windows), Sendmail (электронная почта) и NIS/NIS+ (Network Information System, она же YP -- "yellow pages", сетевая информационная система от фирмы Sun).

Самое простое решение -- не использовать эти системы, не всегда доступно. Если от FTP еще можно отказаться (а от NIS/NIS+ просто надо отказаться), то с остальными сложнее.

Для пакета Sendmail существует несколько аналогов, но отсутствие (точнее, необнаруженность) в них дыр объясняются в значительной степени их меньшей распространенностью.

Для NFS же реальной альтернативы попросту нет, и если сетевая файловая система реально нужна, то с риском приходится мириться. Собственно, с NFS связаны две проблемы. Первая -- собственно дыры в реализации. Вторая -- то, что авторизация выполняется по IP-адресам, и если злоумышленник установит для своего компьютера адрес доверенной машины, то в то время, когда та выключена (а при небольшой сноровке -- даже когда включена), он может получить доступ к экспортируемым ресурсам.

Использование же Samba-сервера на большинстве машин попросту ни к чему. Реально он требуется лишь на компьютерах, являющихся серверами для Windows-машин, а в таких случаях следует доверять заботу о серверах квалифицированным системным администраторам -- правильная настройка Samba в любом случае дело непростое.

Замечание
Вообще говоря, система разделения ресурсов в Windows -- Netbios или SMB, весьма неудачна как по своей концепции, так и по реализации. Поэтому долгое время SMB являлась у хакеров излюбленным способом взлома Windows-машин, пока пальму первенства не отобрали еще более кривой пакет IIS (Internet Information Server) и программа ICQ (взлом через IIS или ICQ даже считается "неспортивным").

При реальной необходимости использования указанных систем остается два способа поддержания безопасности. Первый -- постоянное отслеживание новых версий. Второй -- ограничение доступа по сети.

Ограничение доступа

Ограничение доступа по NFS рассмотрено в разделе "Сетевая файловая система NFS". Отметим лишь, что следует давать доступ как можно меньшему количеству машин, и при возможности -- доступ только на чтение, а не на чтение/запись.

Ограничение доступа к таким подсистемам, как ftp, finger, telnet, talk и т.д. осуществляется пакетом tcp-wrappers (программа tcpd).

При проверке разрешения на доступ tcpd просматривает файлы /etc/hosts.allow и /etc/hosts.deny и (вольный перевод фрагмента man-страницы):

Изначально /etc/hosts.allow и /etc/hosts.deny пусты, что означает "доступ разрешен всем и ко всему".

Язык описания правил доступа довольно гибкий, поэтому мы лишь приведем пример простейшего содержания файлов конфигурации для случая, когда доступ ко всем сервисам дается компьютерам Tom и Jerry из домена example.net, компьютеру Cathy разрешается finger, а всем остальным запрещено все.

Файл /etc/hosts.allow:

#
# hosts.allow   This file describes the names of the hosts which are
#               allowed to use the local INET services, as decided
#               by the '/usr/sbin/tcpd' server.
#

ALL:            Tom.example.net Jerry.example.net
in.fingerd:     Cathy.example.net

Файл /etc/hosts.deny:

#
# hosts.deny    This file describes the names of the hosts which are
#               *not* allowed to use the local INET services, as decided
#               by the '/usr/sbin/tcpd' server.
#
# The portmap line is redundant, but it is left to remind you that
# the new secure portmap uses hosts.deny and hosts.allow.  In particular
# you should know that NFS uses portmap!

ALL:            ALL

Имена компьютеров следует указывать полные -- с именем домена.

Если при такой конфигурации с компьютера VeryBad попробовать запустить на нашу машину finger или telnet, то доступ ему будет закрыт:

verybad:~% finger @bobby
[bobby.example.net]

verybad:~% telnet bobby
Trying 192.168.100.15 ...
Connected to 192.168.100.15.
Escape character is '^]'.
Connection closed by foreign host.
verybad:~% _

Подробное описание файлов /etc/hosts.allow и /etc/hosts.deny можно найти в man-странице hosts_access(5).


<< Предыдущий раздел | /\ Содержание | >> Следующий раздел