NIS имеет большую дыру в защите: файл паролей доступен на чтение кому угодно. Зная имя домена NIS и адрес его сервера, можно просто попросить отобразить карту passwd.byname и немедленно получить зашифрованные пароли всей Вашей системы. Дальше в дело идет программа crack с хорошим словарем и пароли открыты!
К счастью, этому можно противостоять опцией securenets. Она просто ограничивает доступ к серверу NIS некоторыми хостами, основываясь на их IP-адресах или сетевых масках. Последняя версия ypserv реализует это свойство двумя способами. Первый полагается на специальный файл конфигурации, названный /etc/ypserv.securenets, а второй использует файлы /etc/hosts.allow и /etc/hosts.deny, с которыми Вы уже столкнулись в главе 12. Таким образом, чтобы ограничить доступ к серверу хостами из локальной сети добавьте строку к hosts.allow:
ypserv: 172.16.2. |
Это позволит всем компьютерам из IP-сети 172.16.2.0 обращаться к NIS-серверу. Чтобы закрыть доступ всем остальным (внешним) машинам, допишите в hosts.deny:
ypserv: ALL |
IP-адреса не единственный путь, которым Вы можете определять компьютеры или сети в hosts.allow и hosts.deny. Обратитесь за подробностями к man-странице hosts_access(5). Однако, не следует использовать в определениях для ypserv доменные хостов. При их использовании, сервер запросит у сервера DNS соответствующий IP, а ответ DNS может быть и подделан хакером. Еще хуже, когда DNS сам запросит карту от NIS, тот в свою очередь вызовет DNS и т.д.
Чтобы настроить securenets с использованием /etc/ypserv.securenets, нужно создать файл /etc/ypserv.securenets. Этот файл конфигурации прост: каждая строка описывает хост или сеть, которые будут иметь доступ к серверу. Любой адрес, не описанный в этом файле, будет заблокирован. Строки, начинающиеся с символа # считаются комментариями. Пример 13-1 показывает простой /etc/ypserv.securenets:
Пример 13-1. Образец файла /etc/ypserv.securenets
# allow connections from local host -- necessary host 127.0.0.1 # same as 255.255.255.255 127.0.0.1 # # allow connections from any host on the Virtual Brewery network 255.255.255.0 172.16.1.0 |
Первая запись в каждой строке задает сетевую маску для этой строки. Вторая запись определяет адрес соответствующего хоста, к которому маска применяется. Можно задать маску и адрес явно ключевыми словами host и netmask.
Третья опция (если определена) должна задавать для использования безопасный диспетчер портов (portmapper) вместо обычного securenets в ypserv. Безопасный portmapper (portmap-5.0) использует схему hosts.allow, но предлагает это для всех RPC-серверов, не только для ypserv. Однако, Вы не должны использовать опцию securenets и безопасный диспетчер портов вместе.
Назад | Глобальное оглавление | Вперед |
Запуск NIS-сервера | Локальное оглавление | Установка клиента NIS с GNU libc |