Для защищенной паролем общей папки Samba в домашней сети: ntlm против ntlmv2 против krb5 (kerberos)?

1785
Scott

У меня есть домашняя сеть с Wi-Fi, который защищен паролем. В моей домашней сети у меня есть файловый сервер с защищенным паролем общим ресурсом Samba. Сам общий ресурс защищен, потому что в моей сети несколько компьютеров с несколькими пользователями, и я хочу убедиться, что только я могу получить доступ к этому общему ресурсу с любого компьютера, которым я пользуюсь в данный момент (извините за указание очевидного, но я хочу предотвратить ответы «Вы находитесь в домашней сети, и ваш Wi-Fi уже защищен pw, так зачем вам нужна защита pw для самого ресурса?» и т. д.).

В настоящее время я монтирую свои ресурсы Samba (обратите внимание, часть, которая относится к моему вопросу sec=ntlm):

mount -t cifs //myserver/myshare /media/myshare -o uid=myunixuser,gid=myunixgroup,credentials=/home/myunixuser/.smbcredentials,iocharset=utf8,sec=ntlm,file_mode=0600,dir_mode=0700 

Все идет нормально; Тем не менее, я прочитал несколько статей о типах безопасности и почему NTLM не рекомендуется, yada yada (см. статью « Время NTLM прошло »). Я погуглил «ntlm vs ntlmv2 vs kerberos» и попытался узнать больше, прочитав статью в Википедии о NTLM и справочную страницу Ubuntu по этой теме, но она не совсем для меня регистрируется.

Я чувствую, что большая часть документации предназначена для сетевых администраторов, и я больше воин на выходных. В целом я понимаю, что NTLMv2 предпочтительнее NTLM, то же самое с Kerberos, но это не значит, что я должен автоматически выбирать v2 или Kerberos, потому что не все клиенты поддерживают их. Ооо, какого черта? Может ли кто-нибудь замять это для меня? Даже если я придерживаюсь NTLM, я просто хочу понять, как обстоят дела с этими различными вариантами безопасности. Пожалуйста, дайте мне знать, если я слишком много думаю об этом. Благодарю.

0

1 ответ на вопрос

1
grawity

Windows clients support all three, as do recent Linux kernels. I don't know of any modern client that does not support NTLMv2, although Kerberos is slightly less common.

The major difference between NTLM and Kerberos is:

  • NTLM is a challenge-response mechanism that works with just passwords. So it can be used between any two hosts as long as the client knows the password that the server wants.

  • Kerberos is ticket-based; the client gets a login ticket from a central KDC and presents it to the server. This needs a Kerberos realm to be set up – in case of CIFS it's usually an Active Directory domain – and the realm's KDC hosted somewhere.

    (Mac OS X – which used to prefer the AFP protocol over CIFS – actually manages to use Kerberos between two peers, using autogenerated realm names, but neither Windows nor Linux support the same.)

However:

  • The security of NTLM version 1 is very close to that of just sending the password in plain. NTLMv2 improves this somewhat, although I'm not sure how much.

  • Meanwhile, Kerberos 5 is considered very secure, and is used by Active Directory, FreeIPA, and various other Unix directory service software.

Unfortunately, Kerberos takes some time to set up, and Windows clients only support it properly (i.e. without spending 3 days) when both the client and server belong to an AD domain.

Soo you will have to choose NTLMv2 for now. It's what standalone Windows machines use by default, anyway. (The default in modern Linux kernels is sec=ntlmssp; I am not entirely sure how it differs from ntlmv2, though I know the differences do not have any security impact.)