вторник, 24 марта 2015 г.

Привязка пользователей хоста к определенному пользователю на сервере NFS

Один из недостатков NFSv3 - отсутствие аутентификации пользователей. Доступна лишь авторизация хоста по IP, которую при желании несложно обойти. Если на вашем сервере стоит разрешение для определенного хоста, то ее локальный администратор может создать другого пользователя с нужным uid/gid и тем самым обойти ограничение прав на сервере. Эта проблема решена в NFSv4, но я пока не реализовал все необходимые изменения в инфраструктуре.

Чтобы на NFSv3 исключить возможность обхода авторизации через создание пользователя с произвольным uid/gid я воспользовался следующей уловкой

# cat /etc/exports
/data/sources  host1(rw,sync,all_squash,anonuid=1000,anongid=500,no_subtree_check)
/data/sources  host2(rw,sync,all_squash,anonuid=1001,anongid=500,no_subtree_check)
/data/sources  host3(rw,sync,all_squash,anonuid=1002,anongid=500,no_subtree_check)

Использование all_squash в комбинации с anonuid/anongid привязывает любого пользователя с хоста к определенному uid/gid (который соответствует uid/gid пользователя в LDAP). Однако нужно понимать, что это решение бесполезно в случае подмены IP адреса хоста. В этом случае может помочь использование 802.1x на коммутаторах, но проще перейти к использованию NFSv4.

Комментариев нет:

Отправить комментарий