su13@pochta.ru

| Первый | Второй | Третий | Четвёртый | Пятый | Шестой | Седьмой |


//

Безопасность NIS-сервера

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 и безопасный диспетчер портов вместе.

GNU OCXE GNU LINUX
Hosted by uCoz