Kconfig 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217
  1. config CIFS
  2. tristate "SMB3 and CIFS support (advanced network filesystem)"
  3. depends on INET
  4. select NLS
  5. select CRYPTO
  6. select CRYPTO_MD4
  7. select CRYPTO_MD5
  8. select CRYPTO_SHA256
  9. select CRYPTO_SHA512
  10. select CRYPTO_CMAC
  11. select CRYPTO_HMAC
  12. select CRYPTO_ARC4
  13. select CRYPTO_AEAD2
  14. select CRYPTO_CCM
  15. select CRYPTO_ECB
  16. select CRYPTO_AES
  17. select CRYPTO_DES
  18. help
  19. This is the client VFS module for the SMB3 family of NAS protocols,
  20. (including support for the most recent, most secure dialect SMB3.1.1)
  21. as well as for earlier dialects such as SMB2.1, SMB2 and the older
  22. Common Internet File System (CIFS) protocol. CIFS was the successor
  23. to the original dialect, the Server Message Block (SMB) protocol, the
  24. native file sharing mechanism for most early PC operating systems.
  25. The SMB3 protocol is supported by most modern operating systems
  26. and NAS appliances (e.g. Samba, Windows 10, Windows Server 2016,
  27. MacOS) and even in the cloud (e.g. Microsoft Azure).
  28. The older CIFS protocol was included in Windows NT4, 2000 and XP (and
  29. later) as well by Samba (which provides excellent CIFS and SMB3
  30. server support for Linux and many other operating systems). Use of
  31. dialects older than SMB2.1 is often discouraged on public networks.
  32. This module also provides limited support for OS/2 and Windows ME
  33. and similar very old servers.
  34. This module provides an advanced network file system client
  35. for mounting to SMB3 (and CIFS) compliant servers. It includes
  36. support for DFS (hierarchical name space), secure per-user
  37. session establishment via Kerberos or NTLM or NTLMv2, RDMA
  38. (smbdirect), advanced security features, per-share encryption,
  39. directory leases, safe distributed caching (oplock), optional packet
  40. signing, Unicode and other internationalization improvements.
  41. In general, the default dialects, SMB3 and later, enable better
  42. performance, security and features, than would be possible with CIFS.
  43. Note that when mounting to Samba, due to the CIFS POSIX extensions,
  44. CIFS mounts can provide slightly better POSIX compatibility
  45. than SMB3 mounts. SMB2/SMB3 mount options are also
  46. slightly simpler (compared to CIFS) due to protocol improvements.
  47. If you need to mount to Samba, Azure, Macs or Windows from this machine, say Y.
  48. config CIFS_STATS2
  49. bool "Extended statistics"
  50. depends on CIFS
  51. help
  52. Enabling this option will allow more detailed statistics on SMB
  53. request timing to be displayed in /proc/fs/cifs/DebugData and also
  54. allow optional logging of slow responses to dmesg (depending on the
  55. value of /proc/fs/cifs/cifsFYI, see fs/cifs/README for more details).
  56. These additional statistics may have a minor effect on performance
  57. and memory utilization.
  58. Unless you are a developer or are doing network performance analysis
  59. or tuning, say N.
  60. config CIFS_ALLOW_INSECURE_LEGACY
  61. bool "Support legacy servers which use less secure dialects"
  62. depends on CIFS
  63. default y
  64. help
  65. Modern dialects, SMB2.1 and later (including SMB3 and 3.1.1), have
  66. additional security features, including protection against
  67. man-in-the-middle attacks and stronger crypto hashes, so the use
  68. of legacy dialects (SMB1/CIFS and SMB2.0) is discouraged.
  69. Disabling this option prevents users from using vers=1.0 or vers=2.0
  70. on mounts with cifs.ko
  71. If unsure, say Y.
  72. config CIFS_WEAK_PW_HASH
  73. bool "Support legacy servers which use weaker LANMAN security"
  74. depends on CIFS && CIFS_ALLOW_INSECURE_LEGACY
  75. help
  76. Modern CIFS servers including Samba and most Windows versions
  77. (since 1997) support stronger NTLM (and even NTLMv2 and Kerberos)
  78. security mechanisms. These hash the password more securely
  79. than the mechanisms used in the older LANMAN version of the
  80. SMB protocol but LANMAN based authentication is needed to
  81. establish sessions with some old SMB servers.
  82. Enabling this option allows the cifs module to mount to older
  83. LANMAN based servers such as OS/2 and Windows 95, but such
  84. mounts may be less secure than mounts using NTLM or more recent
  85. security mechanisms if you are on a public network. Unless you
  86. have a need to access old SMB servers (and are on a private
  87. network) you probably want to say N. Even if this support
  88. is enabled in the kernel build, LANMAN authentication will not be
  89. used automatically. At runtime LANMAN mounts are disabled but
  90. can be set to required (or optional) either in
  91. /proc/fs/cifs (see fs/cifs/README for more detail) or via an
  92. option on the mount command. This support is disabled by
  93. default in order to reduce the possibility of a downgrade
  94. attack.
  95. If unsure, say N.
  96. config CIFS_UPCALL
  97. bool "Kerberos/SPNEGO advanced session setup"
  98. depends on CIFS && KEYS
  99. select DNS_RESOLVER
  100. help
  101. Enables an upcall mechanism for CIFS which accesses userspace helper
  102. utilities to provide SPNEGO packaged (RFC 4178) Kerberos tickets
  103. which are needed to mount to certain secure servers (for which more
  104. secure Kerberos authentication is required). If unsure, say Y.
  105. config CIFS_XATTR
  106. bool "CIFS extended attributes"
  107. depends on CIFS
  108. help
  109. Extended attributes are name:value pairs associated with inodes by
  110. the kernel or by users (see the attr(5) manual page for details).
  111. CIFS maps the name of extended attributes beginning with the user
  112. namespace prefix to SMB/CIFS EAs. EAs are stored on Windows
  113. servers without the user namespace prefix, but their names are
  114. seen by Linux cifs clients prefaced by the user namespace prefix.
  115. The system namespace (used by some filesystems to store ACLs) is
  116. not supported at this time.
  117. If unsure, say Y.
  118. config CIFS_POSIX
  119. bool "CIFS POSIX Extensions"
  120. depends on CIFS && CIFS_ALLOW_INSECURE_LEGACY && CIFS_XATTR
  121. help
  122. Enabling this option will cause the cifs client to attempt to
  123. negotiate a newer dialect with servers, such as Samba 3.0.5
  124. or later, that optionally can handle more POSIX like (rather
  125. than Windows like) file behavior. It also enables
  126. support for POSIX ACLs (getfacl and setfacl) to servers
  127. (such as Samba 3.10 and later) which can negotiate
  128. CIFS POSIX ACL support. If unsure, say N.
  129. config CIFS_ACL
  130. bool "Provide CIFS ACL support"
  131. depends on CIFS_XATTR && KEYS
  132. help
  133. Allows fetching CIFS/NTFS ACL from the server. The DACL blob
  134. is handed over to the application/caller. See the man
  135. page for getcifsacl for more information. If unsure, say Y.
  136. config CIFS_DEBUG
  137. bool "Enable CIFS debugging routines"
  138. default y
  139. depends on CIFS
  140. help
  141. Enabling this option adds helpful debugging messages to
  142. the cifs code which increases the size of the cifs module.
  143. If unsure, say Y.
  144. config CIFS_DEBUG2
  145. bool "Enable additional CIFS debugging routines"
  146. depends on CIFS_DEBUG
  147. help
  148. Enabling this option adds a few more debugging routines
  149. to the cifs code which slightly increases the size of
  150. the cifs module and can cause additional logging of debug
  151. messages in some error paths, slowing performance. This
  152. option can be turned off unless you are debugging
  153. cifs problems. If unsure, say N.
  154. config CIFS_DEBUG_DUMP_KEYS
  155. bool "Dump encryption keys for offline decryption (Unsafe)"
  156. depends on CIFS_DEBUG
  157. help
  158. Enabling this will dump the encryption and decryption keys
  159. used to communicate on an encrypted share connection on the
  160. console. This allows Wireshark to decrypt and dissect
  161. encrypted network captures. Enable this carefully.
  162. If unsure, say N.
  163. config CIFS_DFS_UPCALL
  164. bool "DFS feature support"
  165. depends on CIFS && KEYS
  166. select DNS_RESOLVER
  167. help
  168. Distributed File System (DFS) support is used to access shares
  169. transparently in an enterprise name space, even if the share
  170. moves to a different server. This feature also enables
  171. an upcall mechanism for CIFS which contacts userspace helper
  172. utilities to provide server name resolution (host names to
  173. IP addresses) which is needed for implicit mounts of DFS junction
  174. points. If unsure, say Y.
  175. config CIFS_NFSD_EXPORT
  176. bool "Allow nfsd to export CIFS file system"
  177. depends on CIFS && BROKEN
  178. help
  179. Allows NFS server to export a CIFS mounted share (nfsd over cifs)
  180. config CIFS_SMB_DIRECT
  181. bool "SMB Direct support (Experimental)"
  182. depends on CIFS=m && INFINIBAND && INFINIBAND_ADDR_TRANS || CIFS=y && INFINIBAND=y && INFINIBAND_ADDR_TRANS=y
  183. help
  184. Enables SMB Direct experimental support for SMB 3.0, 3.02 and 3.1.1.
  185. SMB Direct allows transferring SMB packets over RDMA. If unsure,
  186. say N.
  187. config CIFS_FSCACHE
  188. bool "Provide CIFS client caching support"
  189. depends on CIFS=m && FSCACHE || CIFS=y && FSCACHE=y
  190. help
  191. Makes CIFS FS-Cache capable. Say Y here if you want your CIFS data
  192. to be cached locally on disk through the general filesystem cache
  193. manager. If unsure, say N.