Назад | Перейти на главную страницу

nfs kerberos: несколько клиентов в разных каталогах

Я установил kerberos с NFS, и он работает нормально.

Однако, похоже, есть проблема с тем, как это работает, любой клиент Kerberos, похоже, может получить доступ к любому каталогу (если они выберут правильный ip)

На сервере NFS (192.168.1.12):

$ exportfs -v
/data/mail 192.168.1.13(rw,wdelay,root_squash,no_subtree_check,mountpoint,sec=krb5,rw,secure,no_all_squash)
/data/web  192.168.1.14(rw,wdelay,root_squash,no_subtree_check,mountpoint,sec=krb5,rw,secure,no_all_squash)

Я размещаю почту и Интернет на разных серверах. Идея состоит в том, что если один будет скомпрометирован, злоумышленник не получит доступа к другому.

Итак, я установил nfs и kerberos, поэтому mail.example.com (.13) может монтировать / data / mail, а web.example.com (.14) может монтировать / data / web, и ни один из них не может монтировать другой. Все идет нормально. Однако затем я изменил IP-адрес web.example.com на .13 и смог смонтировать / data / mail.

Вот как это выглядит на web.example.com:

ktutil:  rkt /etc/krb5.keytab
ktutil:  list
slot KVNO Principal
---- ---- ---------------------------------------------------------------------
   1    2      nfs/web.example.com@example.com
   2    2      nfs/web.example.com@example.com

И на mail.example.com:

ktutil:  rkt /etc/krb5.keytab
ktutil:  list
slot KVNO Principal
---- ---- ---------------------------------------------------------------------
   1    2     nfs/mail.example.com@example.com
   2    2     nfs/mail.example.com@example.com

Вот как выглядит / etc / hosts на сервере NFS:

192.168.1.11 kdc.example.com
192.168.1.13 mail.example.com
192.168.1.14 web.example.com

Я ожидал, что, поскольку у web.example.com есть тикет, который идентифицирует его как web.example.com, он не сможет смонтировать / data / mail, даже если ему понадобится ip mail.example.com. Однако кажется, что пока у вас есть действующий билет Kerberos и правильный IP-адрес, вы можете смонтировать любой каталог. Для меня в этом нет смысла использовать Kerberos, поскольку я не ожидаю, что к этой сети кто-то подключится. Это действительно единственная угроза, от которой защищает Kerberos с NFS, или я что-то неправильно сконфигурировал?

sec=krb5 не останавливает установку действующего билета, но это не его работа.

Это предотвратит доступ к файлам неавторизованных клиентов (на основе uid / gid, а не ip). Предполагая, что вы совершили такую ​​глупую вещь, как root@EXAMPLE.COM, вам может потребоваться ужесточить права доступа к файлам.

Даже с root_squash удаленный корень может изменить свой euid на что-то с надлежащим доступом, насколько sec=sys обеспокоен. То же самое не относится ни к одному из вариантов krb5. Конечно, это все не для того, если файлы / каталоги имеют разрешения, позволяющие другим, например. 775 позволит читать, а 770 нет.


Боковое примечание: вы должны использовать хотя бы использовать sec=krb5i, если не sec=krb5p.