Project

General

Profile

Actions

Bug #65217

open

cephfs: add fscrypt protection support from non-fscrypt client

Added by Xiubo Li almost 2 years ago. Updated 4 months ago.

Status:
Fix Under Review
Priority:
Normal
Category:
-
Target version:
-
% Done:

0%

Source:
Backport:
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Component(FS):
Labels (FS):
Pull request ID:
Tags (freeform):
Merge Commit:
Fixed In:
Released In:
Upkeep Timestamp:

Description

Clients that do not support fscrypt can execute operations that may cause unrecoverable data loss. Add protection on the MDS so that it prevents these clients from executing some operations.

Note, however, that clients will still be able corrupt encrypted files by appending data to them. And they will still be able to read encrypted data from those files.

For the non-fscrypt support client we will allow it to read the encrypted files and directories, but couldn't change the contents of them. For the directories we won't allow to create new sub directories and file under a encrypted file, else in the kclient it will fail to dencrypt the dentry names:

125 <7>[201192.339126] ceph:  [9a8fd138-5876-4325-af3b-ba7f972e5776 9426] __prepare_send_request: 0000000071b24ca5 tid 30 readdir (attempt 1)
126 <7>[201192.339144] ceph:  [9a8fd138-5876-4325-af3b-ba7f972e5776 9426] set_request_path_attr:  inode 0000000039d46bc2 10000007491.fffffffffffffffe
127 <7>[201192.339345] ceph:  [9a8fd138-5876-4325-af3b-ba7f972e5776 9426] ceph_encode_inode_release: 0000000039d46bc2 10000007491.fffffffffffffffe mds0 used|dirty p drop Fx unless -
128 <7>[201192.339366] ceph:  [9a8fd138-5876-4325-af3b-ba7f972e5776 9426] ceph_encode_inode_release: 0000000039d46bc2 10000007491.fffffffffffffffe cap 00000000b0491451 pAsLsXsFs (force)
129 <7>[201192.339386] ceph:  [9a8fd138-5876-4325-af3b-ba7f972e5776 9426] __prepare_send_request:  r_parent = 0000000000000000
130 <7>[201192.339448] ceph:  [9a8fd138-5876-4325-af3b-ba7f972e5776 9426] ceph_mdsc_wait_request: do_request waiting
131 <7>[201192.342097] ceph:  [9a8fd138-5876-4325-af3b-ba7f972e5776 9426] handle_reply: handle_reply 0000000071b24ca5
132 <7>[201192.342118] ceph:  [9a8fd138-5876-4325-af3b-ba7f972e5776 9426] __unregister_request: 0000000071b24ca5 tid 30
133 <7>[201192.342134] ceph:  [9a8fd138-5876-4325-af3b-ba7f972e5776 9426] handle_reply: tid 30 result 0
134 <7>[201192.342214] ceph:  [9a8fd138-5876-4325-af3b-ba7f972e5776 9426] parse_reply_info_readdir: parsed dir dname 'fscrypt_crash_file'
135 <3>[201192.342232] ceph: [9a8fd138-5876-4325-af3b-ba7f972e5776 9426]: unable to decode ~Ç+Ê<9b>pt_crash_file, got -5
136 <3>[201192.342245] ceph: [9a8fd138-5876-4325-af3b-ba7f972e5776 9426]: problem parsing dir contents -5
137 <3>[201192.342256] ceph: [9a8fd138-5876-4325-af3b-ba7f972e5776 9426]: mds parse_reply err -5
138 <7>[201192.342269] header: 00000000: 71 00 00 00 00 00 00 00 1e 00 00 00 00 00 00 00  q...............
139 <7>[201192.342281] header: 00000010: 1a 00 7f 00 01 00 65 03 00 00 00 00 00 00 00 00  ......e.........
140 <7>[201192.342292] header: 00000020: 00 00 00 00 02 00 00 00 00 00 00 00 00 01 00 00  ................
141 <7>[201192.342299] header: 00000030: 00 00 00 00 00                                   .....
142 <7>[201192.342309]  front: 00000000: 05 03 00 00 00 00 00 00 f2 00 00 00 01 00 01 7a  ...............z
143 <7>[201192.342320]  front: 00000010: 01 00 00 07 01 74 01 00 00 91 74 00 00 00 01 00  .....t....t.....
144 <7>[201192.342327]  front: 00000020: 00 fe ff ff ff ff ff ff ff 00 00 00 00 0a 0a 0a  ................
145 <7>[201192.342338]  front: 00000030: 00 00 00 00 00 00 00 00 00 00 00 00 00 55 01 00  .............U..
146 <7>[201192.342348]  front: 00000040: 00 00 00 00 00 01 00 00 00 00 00 00 00 08 00 00  ................
147 <7>[201192.342359]  front: 00000050: 00 00 00 00 00 01 00 00 00 00 00 00 00 01 00 00  ................
148 <7>[201192.342370]  front: 00000060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
149 <7>[201192.342391]  front: 00000070: 00 00 00 00 00 00 00 00 00 00 2f f1 03 66 4f 6f  ........../..fOo
150 <7>[201192.342402]  front: 00000080: c9 2a 2f f1 03 66 4f 6f c9 2a 1c f1 03 66 b7 5c  .*/..fOo.*...f.\
151 <7>[201192.342412]  front: 00000090: ec 2e 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
152 <7>[201192.342423]  front: 000000a0: 00 00 00 00 00 00 ff ff ff ff ff ff ff ff 01 00  ................
153 <7>[201192.342433]  front: 000000b0: 00 00 ed 41 00 00 e8 03 00 00 e8 03 00 00 01 00  ...A............
154 <7>[201192.342444]  front: 000000c0: 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
155 <7>[201192.342454]  front: 000000d0: 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00  ................
156 <7>[201192.342465]  front: 000000e0: 00 00 01 00 00 00 00 00 00 00 2f f1 03 66 54 18  ........../..fT.
157 <7>[201192.342475]  front: 000000f0: c0 2b 00 00 00 00 00 00 00 00 02 00 00 00 00 00  .+..............
158 <7>[201192.342486]  front: 00000100: 00 00 00 00 00 00 ff ff ff ff ff ff ff ff 00 00  ................
159 <7>[201192.342497]  front: 00000110: 00 00 01 01 10 00 00 00 00 00 00 00 00 00 00 00  ................
160 <7>[201192.342507]  front: 00000120: 00 00 00 00 00 00 00 00 00 00 00 00 1c f1 03 66  ...............f
161 <7>[201192.342518]  front: 00000130: b7 5c ec 2e 01 00 00 00 00 00 00 00 ff ff ff ff  .\..............
162 <7>[201192.342529]  front: 00000140: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
163 <7>[201192.342539]  front: 00000150: 00 00 00 00 01 30 00 00 00 01 00 00 00 28 00 00  .....0.......(..                                                                                                                             
164 <7>[201192.342550]  front: 00000160: 00 02 01 04 00 00 00 00 00 81 66 70 7d 58 e2 3b  ..........fp}X.;
165 <7>[201192.342560]  front: 00000170: 91 3b bc 4d 82 30 5b 68 a2 fd 80 c0 16 ac cb f5  .;.M.0[h........
166 <7>[201192.342570]  front: 00000180: 38 bd ea de e4 f3 c4 e3 57 00 00 00 00 90 01 00  8.......W.......
167 <7>[201192.342581]  front: 00000190: 00 01 01 0c 00 00 00 00 00 00 00 ff ff ff ff 00  ................
168 <7>[201192.342591]  front: 000001a0: 00 00 00 01 00 00 00 01 07 12 00 00 00 7e c7 2b  .............~.+
169 <7>[201192.342602]  front: 000001b0: ca 9b 70 74 5f 63 72 61 73 68 5f 66 69 6c 65 02  ..pt_crash_file.
170 <7>[201192.342611]  front: 000001c0: 01 0e 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
171 <7>[201192.342618]  front: 000001d0: 00 00 00 07 01 48 01 00 00 df 7a 00 00 00 01 00  .....H....z.....
172 <7>[201192.342624]  front: 000001e0: 00 fe ff ff ff ff ff ff ff 00 00 00 00 08 00 00  ................
173 <7>[201192.342632]  front: 000001f0: 00 00 00 00 00 01 00 00 00 00 00 00 00 55 0d 00  .............U..
174 <7>[201192.342640]  front: 00000200: 00 00 00 00 00 d2 18 00 00 00 00 00 00 03 00 00  ................
175 <7>[201192.342646]  front: 00000210: 00 00 00 00 00 01 00 00 00 00 00 00 00 01 00 00  ................
176 <7>[201192.342651]  front: 00000220: 40 00 01 00 00 00 00 00 40 00 00 00 00 00 00 00  @.......@.......
177 <7>[201192.342657]  front: 00000230: 00 00 00 00 00 00 03 00 00 00 2f f1 03 66 54 18  ........../..fT.
178 <7>[201192.342663]  front: 00000240: c0 2b 2f f1 03 66 d7 26 73 2b 2f f1 03 66 d7 26  .+/..f.&s+/..f.&
179 <7>[201192.342668]  front: 00000250: 73 2b 02 00 00 00 00 00 00 00 00 00 00 00 00 00  s+..............
180 <7>[201192.342674]  front: 00000260: 00 00 00 00 00 00 ff ff ff ff ff ff ff ff 01 00  ................
181 <7>[201192.342680]  front: 00000270: 00 00 a4 81 00 00 e8 03 00 00 e8 03 00 00 01 00  ................
182 <7>[201192.342685]  front: 00000280: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
183 <7>[201192.342691]  front: 00000290: 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00  ................
184 <7>[201192.342696]  front: 000002a0: 00 00 00 00 00 00 00 00 00 00 2f f1 03 66 54 18  ........../..fT.
185 <7>[201192.342702]  front: 000002b0: c0 2b 00 00 00 00 00 00 00 00 00 00 00 00 00 00  .+..............
186 <7>[201192.342707]  front: 000002c0: 00 00 04 00 00 00 00 00 00 00 ff ff ff ff ff ff  ................
187 <7>[201192.342713]  front: 000002d0: ff ff 00 00 00 00 01 01 10 00 00 00 00 00 00 00  ................
188 <7>[201192.342719]  front: 000002e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
189 <7>[201192.342724]  front: 000002f0: 2f f1 03 66 4f 6f c9 2a 01 00 00 00 00 00 00 00  /..fOo.*........
190 <7>[201192.342730]  front: 00000300: ff ff ff ff 00 00 00 00 00 00 00 00 00 00 00 00  ................
191 <7>[201192.342736]  front: 00000310: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
192 <7>[201192.342741]  front: 00000320: 00 40 00 00 00 01 00 00 00 00 00 00 00 03 00 00  .@..............
193 <7>[201192.342747]  front: 00000330: 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00  ................
194 <7>[201192.342752]  front: 00000340: 00 00 00 00 00 03 00 00 00 00 00 00 00 02 00 00  ................
195 <7>[201192.342758]  front: 00000350: 00 00 00 00 00 03 00 00 00 00 00 00 00 02 00 00  ................
196 <7>[201192.342763]  front: 00000360: 00 00 00 00 00                                   .....
197 <7>[201192.342769] footer: 00000000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
198 <7>[201192.342775] footer: 00000010: 00 00 00 00 00                                   .....
199 <3>[201192.342780] ceph: [9a8fd138-5876-4325-af3b-ba7f972e5776 9426]: got corrupt reply mds0(tid:30)              
200 <7>[201192.342788] header: 00000000: 71 00 00 00 00 00 00 00 1e 00 00 00 00 00 00 00  q...............
201 <7>[201192.342793] header: 00000010: 1a 00 7f 00 01 00 65 03 00 00 00 00 00 00 00 00  ......e.........
202 <7>[201192.342799] header: 00000020: 00 00 00 00 02 00 00 00 00 00 00 00 00 01 00 00  ................
203 <7>[201192.342804] header: 00000030: 00 00 00 00 00                                   .....
204 <7>[201192.342810]  front: 00000000: 05 03 00 00 00 00 00 00 f2 00 00 00 01 00 01 7a  ...............z
205 <7>[201192.342815]  front: 00000010: 01 00 00 07 01 74 01 00 00 91 74 00 00 00 01 00  .....t....t.....
206 <7>[201192.342821]  front: 00000020: 00 fe ff ff ff ff ff ff ff 00 00 00 00 0a 0a 0a  ................
207 <7>[201192.342827]  front: 00000030: 00 00 00 00 00 00 00 00 00 00 00 00 00 55 01 00  .............U..
208 <7>[201192.342832]  front: 00000040: 00 00 00 00 00 01 00 00 00 00 00 00 00 08 00 00  ................
209 <7>[201192.342838]  front: 00000050: 00 00 00 00 00 01 00 00 00 00 00 00 00 01 00 00  ................
210 <7>[201192.342843]  front: 00000060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
211 <7>[201192.342849]  front: 00000070: 00 00 00 00 00 00 00 00 00 00 2f f1 03 66 4f 6f  ........../..fOo
212 <7>[201192.342855]  front: 00000080: c9 2a 2f f1 03 66 4f 6f c9 2a 1c f1 03 66 b7 5c  .*/..fOo.*...f.\
213 <7>[201192.342860]  front: 00000090: ec 2e 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
214 <7>[201192.342866]  front: 000000a0: 00 00 00 00 00 00 ff ff ff ff ff ff ff ff 01 00  ................
215 <7>[201192.342871]  front: 000000b0: 00 00 ed 41 00 00 e8 03 00 00 e8 03 00 00 01 00  ...A............
216 <7>[201192.342877]  front: 000000c0: 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
217 <7>[201192.342883]  front: 000000d0: 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00  ................
218 <7>[201192.342888]  front: 000000e0: 00 00 01 00 00 00 00 00 00 00 2f f1 03 66 54 18  ........../..fT.
219 <7>[201192.342894]  front: 000000f0: c0 2b 00 00 00 00 00 00 00 00 02 00 00 00 00 00  .+..............
220 <7>[201192.342900]  front: 00000100: 00 00 00 00 00 00 ff ff ff ff ff ff ff ff 00 00  ................
221 <7>[201192.342905]  front: 00000110: 00 00 01 01 10 00 00 00 00 00 00 00 00 00 00 00  ................
222 <7>[201192.342911]  front: 00000120: 00 00 00 00 00 00 00 00 00 00 00 00 1c f1 03 66  ...............f
223 <7>[201192.342916]  front: 00000130: b7 5c ec 2e 01 00 00 00 00 00 00 00 ff ff ff ff  .\..............
224 <7>[201192.342922]  front: 00000140: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
225 <7>[201192.342928]  front: 00000150: 00 00 00 00 01 30 00 00 00 01 00 00 00 28 00 00  .....0.......(..
226 <7>[201192.342933]  front: 00000160: 00 02 01 04 00 00 00 00 00 81 66 70 7d 58 e2 3b  ..........fp}X.;
227 <7>[201192.342939]  front: 00000170: 91 3b bc 4d 82 30 5b 68 a2 fd 80 c0 16 ac cb f5  .;.M.0[h........
228 <7>[201192.342945]  front: 00000180: 38 bd ea de e4 f3 c4 e3 57 00 00 00 00 90 01 00  8.......W.......
229 <7>[201192.342950]  front: 00000190: 00 01 01 0c 00 00 00 00 00 00 00 ff ff ff ff 00  ................
230 <7>[201192.342956]  front: 000001a0: 00 00 00 01 00 00 00 01 07 12 00 00 00 7e c7 2b  .............~.+
231 <7>[201192.342962]  front: 000001b0: ca 9b 70 74 5f 63 72 61 73 68 5f 66 69 6c 65 02  ..pt_crash_file.
232 <7>[201192.342967]  front: 000001c0: 01 0e 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
233 <7>[201192.342973]  front: 000001d0: 00 00 00 07 01 48 01 00 00 df 7a 00 00 00 01 00  .....H....z.....
234 <7>[201192.342978]  front: 000001e0: 00 fe ff ff ff ff ff ff ff 00 00 00 00 08 00 00  ................
235 <7>[201192.342984]  front: 000001f0: 00 00 00 00 00 01 00 00 00 00 00 00 00 55 0d 00  .............U..
236 <7>[201192.342990]  front: 00000200: 00 00 00 00 00 d2 18 00 00 00 00 00 00 03 00 00  ................
237 <7>[201192.342996]  front: 00000210: 00 00 00 00 00 01 00 00 00 00 00 00 00 01 00 00  ................
238 <7>[201192.343001]  front: 00000220: 40 00 01 00 00 00 00 00 40 00 00 00 00 00 00 00  @.......@.......
239 <7>[201192.343007]  front: 00000230: 00 00 00 00 00 00 03 00 00 00 2f f1 03 66 54 18  ........../..fT.
240 <7>[201192.343012]  front: 00000240: c0 2b 2f f1 03 66 d7 26 73 2b 2f f1 03 66 d7 26  .+/..f.&s+/..f.&
241 <7>[201192.343018]  front: 00000250: 73 2b 02 00 00 00 00 00 00 00 00 00 00 00 00 00  s+..............
242 <7>[201192.343024]  front: 00000260: 00 00 00 00 00 00 ff ff ff ff ff ff ff ff 01 00  ................                                                                                                                             
243 <7>[201192.343029]  front: 00000270: 00 00 a4 81 00 00 e8 03 00 00 e8 03 00 00 01 00  ................
244 <7>[201192.343035]  front: 00000280: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
245 <7>[201192.343041]  front: 00000290: 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00  ................
246 <7>[201192.343047]  front: 000002a0: 00 00 00 00 00 00 00 00 00 00 2f f1 03 66 54 18  ........../..fT.
247 <7>[201192.343053]  front: 000002b0: c0 2b 00 00 00 00 00 00 00 00 00 00 00 00 00 00  .+..............
248 <7>[201192.343058]  front: 000002c0: 00 00 04 00 00 00 00 00 00 00 ff ff ff ff ff ff  ................
249 <7>[201192.343064]  front: 000002d0: ff ff 00 00 00 00 01 01 10 00 00 00 00 00 00 00  ................
250 <7>[201192.343069]  front: 000002e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
251 <7>[201192.343075]  front: 000002f0: 2f f1 03 66 4f 6f c9 2a 01 00 00 00 00 00 00 00  /..fOo.*........
252 <7>[201192.343083]  front: 00000300: ff ff ff ff 00 00 00 00 00 00 00 00 00 00 00 00  ................
253 <7>[201192.343088]  front: 00000310: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
254 <7>[201192.343094]  front: 00000320: 00 40 00 00 00 01 00 00 00 00 00 00 00 03 00 00  .@..............
255 <7>[201192.343100]  front: 00000330: 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00  ................
256 <7>[201192.343105]  front: 00000340: 00 00 00 00 00 03 00 00 00 00 00 00 00 02 00 00  ................
257 <7>[201192.343111]  front: 00000350: 00 00 00 00 00 03 00 00 00 00 00 00 00 02 00 00  ................
258 <7>[201192.343116]  front: 00000360: 00 00 00 00 00                                   .....
259 <7>[201192.343122] footer: 00000000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
260 <7>[201192.343128] footer: 00000010: 00 00 00 00 00                                   .....
261 <7>[201192.343195] ceph:  [9a8fd138-5876-4325-af3b-ba7f972e5776 9426] ceph_mdsc_wait_request: do_request waited, got 0
262 <7>[201192.343206] ceph:  [9a8fd138-5876-4325-af3b-ba7f972e5776 9426] ceph_mdsc_do_request: do_request 0000000071b24ca5 done, result -5
263 <7>[201192.343289] ceph:  [9a8fd138-5876-4325-af3b-ba7f972e5776 9426] __ceph_put_cap_refs: 0000000039d46bc2 10000007491.fffffffffffffffe had p
264 <7>[201192.343302] ceph:  [9a8fd138-5876-4325-af3b-ba7f972e5776 9426] ceph_unreserve_caps: ctx=000000008741ca3c count=20
265 <7>[201192.343311] ceph:  [9a8fd138-5876-4325-af3b-ba7f972e5776 9426] __ceph_unreserve_caps: caps 25 = 5 used + 0 resv + 20 avail

Related issues 1 (0 open1 closed)

Related to CephFS - Tasks #63293: Implement fscrypt in libcephfs and cephfs-fuseResolvedChristopher Hoffman

Actions
Actions #1

Updated by Christopher Hoffman about 1 year ago

  • Assignee changed from Xiubo Li to Christopher Hoffman
  • Parent task set to #63293
Actions #2

Updated by Christopher Hoffman 4 months ago

  • Parent task deleted (#63293)
Actions #3

Updated by Christopher Hoffman 4 months ago

  • Related to Tasks #63293: Implement fscrypt in libcephfs and cephfs-fuse added
Actions

Also available in: Atom PDF