diff mbox

Upgrading security default

Message ID CAH2r5mue9T6jiH-uDqgVTmDtiQOXdhLoqnvjVzJBRuPnEHrE7Q@mail.gmail.com (mailing list archive)
State New, archived
Headers show

Commit Message

Steve French Nov. 24, 2012, 4:11 a.m. UTC
To be more specific: do you prefer this

CIFSSEC_MAY_LANMAN | CIFSSEC_MAY_PLNTXT | CIFSSEC_MAY_
 /*


On Fri, Nov 23, 2012 at 10:09 PM, Steve French <smfrench@gmail.com> wrote:
> On Fri, Nov 23, 2012 at 8:52 PM, Steve French <smfrench@gmail.com> wrote:
>> changing
>> #define   CIFSSEC_DEF (CIFSSEC_MAY_SIGN | CIFSSEC_MAY_NTLM |
>> CIFSSEC_MAY_NTLMV2 | CIFSSEC_MAY_NTLMSSP)
>>
>> to
>>
>> #define   CIFSSEC_DEF (CIFSSEC_MAY_SIGN | CIFSSEC_MAY_NTLMSSP)
>>
>> affects more code
>
> It does seem to work - global_secflag is touched in more places, but
> looks safe enough as an alternative.  Do you prefer the other change?
>
>> On Fri, Nov 23, 2012 at 8:48 PM, Steve French <smfrench@gmail.com> wrote:
>>> it doesn't change security flags - but it seemed the smallest and
>>> safest since it basically says:
>>> 1) if you pass in "sec=" then use that
>>> 2) otherwise use ntlmssp (with ntlmv2)
>>>
>>> so shouldn't have any unintended consequences (and the sign mount
>>> option should work as expected as well)
>>>
>>> On Fri, Nov 23, 2012 at 7:41 PM, Jeff Layton <jlayton@redhat.com> wrote:
>>>> On Fri, 23 Nov 2012 17:36:45 -0600
>>>> Steve French <smfrench@gmail.com> wrote:
>>>>
>>>>> This patch to upgrade the default security mechanism to ntlmv2/ntlmssp
>>>>> (which is broadly supported for years now, and a reasonable minimum,
>>>>> far better than ntlm) is overdue, but I had to rework it to simplify
>>>>> it.
>>>>>
>>>>> diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c
>>>>> index 5c670b9..3bca289 100644
>>>>> --- a/fs/cifs/connect.c
>>>>> +++ b/fs/cifs/connect.c
>>>>> @@ -1103,6 +1103,7 @@ cifs_parse_mount_options(const char *mountdata,
>>>>> const char *devname,
>>>>>       bool uid_specified = false;
>>>>>       bool gid_specified = false;
>>>>>       bool sloppy = false;
>>>>> +     bool sec_explicitly_set = false;
>>>>>       char *invalid = NULL;
>>>>>       char *nodename = utsname()->nodename;
>>>>>       char *string = NULL;
>>>>> @@ -1763,6 +1764,7 @@ cifs_parse_mount_options(const char *mountdata,
>>>>> const char *devname,
>>>>>
>>>>>                       if (cifs_parse_security_flavors(string, vol) != 0)
>>>>>                               goto cifs_parse_mount_err;
>>>>> +                     sec_explicitly_set = true;
>>>>>                       break;
>>>>>               case Opt_cache:
>>>>>                       string = match_strdup(args);
>>>>> @@ -1799,6 +1801,8 @@ cifs_parse_mount_options(const char *mountdata,
>>>>> const char *devname,
>>>>>               goto cifs_parse_mount_err;
>>>>>       }
>>>>>  #endif
>>>>> +     if (sec_explicitly_set == false)
>>>>> +             vol->secFlg |= CIFSSEC_MAY_NTLMSSP;
>>>>>
>>>>>       if (vol->UNCip == NULL)
>>>>>               vol->UNCip = &vol->UNC[2];
>>>>> @@ -2397,8 +2401,6 @@ cifs_set_cifscreds(struct smb_vol *vol
>>>>> __attribute__((unused)),
>>>>>  }
>>>>>  #endif /* CONFIG_KEYS */
>>>>>
>>>>> -static bool warned_on_ntlm;  /* globals init to false automatically */
>>>>> -
>>>>>  static struct cifs_ses *
>>>>>  cifs_get_smb_ses(struct TCP_Server_Info *server, struct smb_vol *volume_info)
>>>>>  {
>>>>> @@ -2475,14 +2477,6 @@ cifs_get_smb_ses(struct TCP_Server_Info
>>>>> *server, struct smb_vol *volume_info)
>>>>>       ses->cred_uid = volume_info->cred_uid;
>>>>>       ses->linux_uid = volume_info->linux_uid;
>>>>>
>>>>> -     /* ntlmv2 is much stronger than ntlm security, and has been broadly
>>>>> -     supported for many years, time to update default security mechanism */
>>>>> -     if ((volume_info->secFlg == 0) && warned_on_ntlm == false) {
>>>>> -             warned_on_ntlm = true;
>>>>> -             cERROR(1, "default security mechanism requested.  The default "
>>>>> -                     "security mechanism will be upgraded from ntlm to "
>>>>> -                     "ntlmv2 in kernel release 3.3");
>>>>> -     }
>>>>>       ses->overrideSecFlg = volume_info->secFlg;
>>>>>
>>>>>       mutex_lock(&ses->session_mutex);
>>>>>
>>>>
>>>> How does this change the SecurityFlags interface?
>>>>
>>>> --
>>>> Jeff Layton <jlayton@redhat.com>
>>>
>>>
>>>
>>> --
>>> Thanks,
>>>
>>> Steve
>>
>>
>>
>> --
>> Thanks,
>>
>> Steve
>
>
>
> --
> Thanks,
>
> Steve
diff mbox

Patch

diff --git a/fs/cifs/cifsglob.h b/fs/cifs/cifsglob.h
index f5af252..2cd5ea2 100644
--- a/fs/cifs/cifsglob.h
+++ b/fs/cifs/cifsglob.h
@@ -1362,7 +1362,7 @@  require use of the stronger protocol */
 #define   CIFSSEC_MUST_SEAL    0x40040 /* not supported yet */
 #define   CIFSSEC_MUST_NTLMSSP 0x80080 /* raw ntlmssp with ntlmv2 */

-#define   CIFSSEC_DEF (CIFSSEC_MAY_SIGN | CIFSSEC_MAY_NTLM |
CIFSSEC_MAY_NTLMV2 | CIFSSEC_MAY_NTLMSSP)
+#define   CIFSSEC_DEF (CIFSSEC_MAY_SIGN | CIFSSEC_MAY_NTLMSSP)
 #define   CIFSSEC_MAX (CIFSSEC_MUST_SIGN | CIFSSEC_MUST_NTLMV2)
 #define   CIFSSEC_AUTH_MASK (CIFSSEC_MAY_NTLM | CIFSSEC_MAY_NTLMV2 |