1ftpd_selinux(8)               SELinux Policy ftpd              ftpd_selinux(8)
2
3
4

NAME

6       ftpd_selinux - Security Enhanced Linux Policy for the ftpd processes
7

DESCRIPTION

9       Security-Enhanced  Linux secures the ftpd processes via flexible manda‐
10       tory access control.
11
12       The ftpd processes execute with the ftpd_t SELinux type. You can  check
13       if  you  have  these processes running by executing the ps command with
14       the -Z qualifier.
15
16       For example:
17
18       ps -eZ | grep ftpd_t
19
20
21

ENTRYPOINTS

23       The ftpd_t SELinux type can be entered via the ftpd_exec_t file type.
24
25       The default entrypoint paths for the ftpd_t domain are the following:
26
27       /usr/sbin/ftpwho,         /usr/sbin/vsftpd,          /usr/sbin/in.ftpd,
28       /usr/sbin/proftpd,    /usr/sbin/muddleftpd,    /usr/kerberos/sbin/ftpd,
29       /etc/cron.monthly/proftpd
30

PROCESS TYPES

32       SELinux defines process types (domains) for each process running on the
33       system
34
35       You can see the context of a process using the -Z option to ps
36
37       Policy  governs  the  access confined processes have to files.  SELinux
38       ftpd policy is very flexible allowing users to setup  their  ftpd  pro‐
39       cesses in as secure a method as possible.
40
41       The following process types are defined for ftpd:
42
43       ftpd_t, ftpdctl_t
44
45       Note:  semanage  permissive  -a  ftpd_t can be used to make the process
46       type ftpd_t permissive. SELinux does  not  deny  access  to  permissive
47       process  types, but the AVC (SELinux denials) messages are still gener‐
48       ated.
49
50

BOOLEANS

52       SELinux policy is customizable based on least  access  required.   ftpd
53       policy is extremely flexible and has several booleans that allow you to
54       manipulate the policy and run ftpd with the tightest access possible.
55
56
57
58       If you want to determine whether ftpd can  connect  to  all  unreserved
59       ports,  you  must turn on the ftpd_connect_all_unreserved boolean. Dis‐
60       abled by default.
61
62       setsebool -P ftpd_connect_all_unreserved 1
63
64
65
66       If you want to determine whether ftpd can connect to databases over the
67       TCP  network, you must turn on the ftpd_connect_db boolean. Disabled by
68       default.
69
70       setsebool -P ftpd_connect_db 1
71
72
73
74       If you want to determine whether ftpd can login to local users and  can
75       read  and write all files on the system, governed by DAC, you must turn
76       on the ftpd_full_access boolean. Disabled by default.
77
78       setsebool -P ftpd_full_access 1
79
80
81
82       If you want to determine whether ftpd can use CIFS used for public file
83       transfer services, you must turn on the ftpd_use_cifs boolean. Disabled
84       by default.
85
86       setsebool -P ftpd_use_cifs 1
87
88
89
90       If you want to allow ftpd to use ntfs/fusefs volumes, you must turn  on
91       the ftpd_use_fusefs boolean. Disabled by default.
92
93       setsebool -P ftpd_use_fusefs 1
94
95
96
97       If  you want to determine whether ftpd can use NFS used for public file
98       transfer services, you must turn on the ftpd_use_nfs boolean.  Disabled
99       by default.
100
101       setsebool -P ftpd_use_nfs 1
102
103
104
105       If  you want to determine whether ftpd can bind to all unreserved ports
106       for passive mode, you must turn on the  ftpd_use_passive_mode  boolean.
107       Disabled by default.
108
109       setsebool -P ftpd_use_passive_mode 1
110
111
112
113       If  you  want  to  dontaudit all daemons scheduling requests (setsched,
114       sys_nice), you must turn on the  daemons_dontaudit_scheduling  boolean.
115       Enabled by default.
116
117       setsebool -P daemons_dontaudit_scheduling 1
118
119
120
121       If you want to allow all domains to execute in fips_mode, you must turn
122       on the fips_mode boolean. Enabled by default.
123
124       setsebool -P fips_mode 1
125
126
127
128       If you want to allow confined applications to run  with  kerberos,  you
129       must turn on the kerberos_enabled boolean. Enabled by default.
130
131       setsebool -P kerberos_enabled 1
132
133
134
135       If  you  want  to  allow  system  to run with NIS, you must turn on the
136       nis_enabled boolean. Disabled by default.
137
138       setsebool -P nis_enabled 1
139
140
141
142       If you want to support NFS home  directories,  you  must  turn  on  the
143       use_nfs_home_dirs boolean. Disabled by default.
144
145       setsebool -P use_nfs_home_dirs 1
146
147
148
149       If  you  want  to  support SAMBA home directories, you must turn on the
150       use_samba_home_dirs boolean. Disabled by default.
151
152       setsebool -P use_samba_home_dirs 1
153
154
155

PORT TYPES

157       SELinux defines port types to represent TCP and UDP ports.
158
159       You can see the types associated with a port  by  using  the  following
160       command:
161
162       semanage port -l
163
164
165       Policy  governs  the  access  confined  processes  have to these ports.
166       SELinux ftpd policy is very flexible allowing users to setup their ftpd
167       processes in as secure a method as possible.
168
169       The following port types are defined for ftpd:
170
171
172       ftp_data_port_t
173
174
175
176       Default Defined Ports:
177                 tcp 20
178
179
180       ftp_port_t
181
182
183
184       Default Defined Ports:
185                 tcp 21,989,990
186                 udp 989,990
187

MANAGED FILES

189       The  SELinux process type ftpd_t can manage files labeled with the fol‐
190       lowing file types.  The paths listed are the default  paths  for  these
191       file types.  Note the processes UID still need to have DAC permissions.
192
193       cifs_t
194
195
196       cluster_conf_t
197
198            /etc/cluster(/.*)?
199
200       cluster_var_lib_t
201
202            /var/lib/pcsd(/.*)?
203            /var/lib/cluster(/.*)?
204            /var/lib/openais(/.*)?
205            /var/lib/pengine(/.*)?
206            /var/lib/corosync(/.*)?
207            /usr/lib/heartbeat(/.*)?
208            /var/lib/heartbeat(/.*)?
209            /var/lib/pacemaker(/.*)?
210
211       cluster_var_run_t
212
213            /var/run/crm(/.*)?
214            /var/run/cman_.*
215            /var/run/rsctmp(/.*)?
216            /var/run/aisexec.*
217            /var/run/heartbeat(/.*)?
218            /var/run/pcsd-ruby.socket
219            /var/run/corosync-qnetd(/.*)?
220            /var/run/corosync-qdevice(/.*)?
221            /var/run/corosync.pid
222            /var/run/cpglockd.pid
223            /var/run/rgmanager.pid
224            /var/run/cluster/rgmanager.sk
225
226       faillog_t
227
228            /var/log/btmp.*
229            /var/log/faillog.*
230            /var/log/tallylog.*
231            /var/run/faillock(/.*)?
232
233       ftpd_lock_t
234
235            /var/lock/subsys/*.ftpd
236
237       ftpd_tmp_t
238
239
240       ftpd_tmpfs_t
241
242
243       ftpd_var_run_t
244
245            /var/run/proftpd.*
246
247       fusefs_t
248
249            /var/run/user/[0-9]+/gvfs
250
251       httpd_user_content_t
252
253            /home/[^/]+/((www)|(web)|(public_html))(/.+)?
254
255       initrc_var_run_t
256
257            /var/run/utmp
258            /var/run/random-seed
259            /var/run/runlevel.dir
260            /var/run/setmixer_flag
261
262       krb5_host_rcache_t
263
264            /var/tmp/krb5_0.rcache2
265            /var/cache/krb5rcache(/.*)?
266            /var/tmp/nfs_0
267            /var/tmp/DNS_25
268            /var/tmp/host_0
269            /var/tmp/imap_0
270            /var/tmp/HTTP_23
271            /var/tmp/HTTP_48
272            /var/tmp/ldap_55
273            /var/tmp/ldap_487
274            /var/tmp/ldapmap1_0
275
276       lastlog_t
277
278            /var/log/lastlog.*
279
280       nfs_t
281
282
283       non_security_file_type
284
285
286       root_t
287
288            /sysroot/ostree/deploy/.*-atomic/deploy(/.*)?
289            /
290            /initrd
291
292       security_t
293
294            /selinux
295
296       user_home_t
297
298            /home/[^/]+/.+
299
300       user_tmp_t
301
302            /dev/shm/mono.*
303            /var/run/user/[^/]+
304            /tmp/.ICE-unix(/.*)?
305            /tmp/.X11-unix(/.*)?
306            /dev/shm/pulse-shm.*
307            /tmp/.X0-lock
308            /var/run/user
309            /tmp/hsperfdata_root
310            /var/tmp/hsperfdata_root
311            /home/[^/]+/tmp
312            /home/[^/]+/.tmp
313            /var/run/user/[0-9]+
314            /tmp/gconfd-[^/]+
315
316       var_auth_t
317
318            /var/ace(/.*)?
319            /var/rsa(/.*)?
320            /var/lib/abl(/.*)?
321            /var/lib/rsa(/.*)?
322            /var/lib/pam_ssh(/.*)?
323            /var/lib/pam_shield(/.*)?
324            /var/opt/quest/vas/vasd(/.*)?
325            /var/lib/google-authenticator(/.*)?
326
327       wtmp_t
328
329            /var/log/wtmp.*
330
331       xferlog_t
332
333            /var/log/vsftpd.*
334            /var/log/xferlog.*
335            /var/log/proftpd(/.*)?
336            /var/log/xferreport.*
337            /var/log/muddleftpd.log.*
338            /var/log/proftpd.log
339            /usr/libexec/webmin/vsftpd/webalizer/xfer_log
340
341

FILE CONTEXTS

343       SELinux requires files to have an extended attribute to define the file
344       type.
345
346       You can see the context of a file using the -Z option to ls
347
348       Policy governs the access  confined  processes  have  to  these  files.
349       SELinux ftpd policy is very flexible allowing users to setup their ftpd
350       processes in as secure a method as possible.
351
352       STANDARD FILE CONTEXT
353
354       SELinux defines the file context types for the ftpd, if you  wanted  to
355       store  files with these types in a different paths, you need to execute
356       the semanage command to specify alternate labeling  and  then  use  re‐
357       storecon to put the labels on disk.
358
359       semanage fcontext -a -t ftpd_exec_t '/srv/ftpd/content(/.*)?'
360       restorecon -R -v /srv/myftpd_content
361
362       Note:  SELinux  often  uses  regular expressions to specify labels that
363       match multiple files.
364
365       The following file types are defined for ftpd:
366
367
368
369       ftpd_etc_t
370
371       - Set files with the ftpd_etc_t type, if you want to store  ftpd  files
372       in the /etc directories.
373
374
375
376       ftpd_exec_t
377
378       - Set files with the ftpd_exec_t type, if you want to transition an ex‐
379       ecutable to the ftpd_t domain.
380
381
382       Paths:
383            /usr/sbin/ftpwho,       /usr/sbin/vsftpd,       /usr/sbin/in.ftpd,
384            /usr/sbin/proftpd,  /usr/sbin/muddleftpd, /usr/kerberos/sbin/ftpd,
385            /etc/cron.monthly/proftpd
386
387
388       ftpd_initrc_exec_t
389
390       - Set files with the ftpd_initrc_exec_t type, if you want to transition
391       an executable to the ftpd_initrc_t domain.
392
393
394       Paths:
395            /etc/rc.d/init.d/vsftpd, /etc/rc.d/init.d/proftpd
396
397
398       ftpd_keytab_t
399
400       - Set files with the ftpd_keytab_t type, if you want to treat the files
401       as kerberos keytab files.
402
403
404
405       ftpd_lock_t
406
407       - Set files with the ftpd_lock_t type, if you want to treat  the  files
408       as ftpd lock data, stored under the /var/lock directory
409
410
411
412       ftpd_tmp_t
413
414       -  Set files with the ftpd_tmp_t type, if you want to store ftpd tempo‐
415       rary files in the /tmp directories.
416
417
418
419       ftpd_tmpfs_t
420
421       - Set files with the ftpd_tmpfs_t type, if you want to store ftpd files
422       on a tmpfs file system.
423
424
425
426       ftpd_unit_file_t
427
428       -  Set  files  with the ftpd_unit_file_t type, if you want to treat the
429       files as ftpd unit content.
430
431
432       Paths:
433            /usr/lib/systemd/system/vsftpd.*,            /usr/lib/systemd/sys‐
434            tem/proftpd.*
435
436
437       ftpd_var_run_t
438
439       - Set files with the ftpd_var_run_t type, if you want to store the ftpd
440       files under the /run or /var/run directory.
441
442
443
444       ftpdctl_exec_t
445
446       - Set files with the ftpdctl_exec_t type, if you want to transition  an
447       executable to the ftpdctl_t domain.
448
449
450
451       ftpdctl_tmp_t
452
453       -  Set  files with the ftpdctl_tmp_t type, if you want to store ftpdctl
454       temporary files in the /tmp directories.
455
456
457
458       Note: File context can be temporarily modified with the chcon  command.
459       If  you want to permanently change the file context you need to use the
460       semanage fcontext command.  This will modify the SELinux labeling data‐
461       base.  You will need to use restorecon to apply the labels.
462
463

SHARING FILES

465       If  you  want to share files with multiple domains (Apache, FTP, rsync,
466       Samba), you can set a file context of public_content_t and  public_con‐
467       tent_rw_t.   These  context  allow any of the above domains to read the
468       content.  If you want a particular domain to write to  the  public_con‐
469       tent_rw_t domain, you must set the appropriate boolean.
470
471       Allow  ftpd  servers to read the /var/ftpd directory by adding the pub‐
472       lic_content_t file type to the directory  and  by  restoring  the  file
473       type.
474
475       semanage fcontext -a -t public_content_t "/var/ftpd(/.*)?"
476       restorecon -F -R -v /var/ftpd
477
478       Allow  ftpd  servers to read and write /var/ftpd/incoming by adding the
479       public_content_rw_t type to the directory and  by  restoring  the  file
480       type.  You also need to turn on the ftpd_anon_write boolean.
481
482       semanage fcontext -a -t public_content_rw_t "/var/ftpd/incoming(/.*)?"
483       restorecon -F -R -v /var/ftpd/incoming
484       setsebool -P ftpd_anon_write 1
485
486
487       If  you want to determine whether ftpd can modify public files used for
488       public file transfer services. Directories/Files must be  labeled  pub‐
489       lic_content_rw_t., you must turn on the ftpd_anon_write boolean.
490
491       setsebool -P ftpd_anon_write 1
492
493

COMMANDS

495       semanage  fcontext  can also be used to manipulate default file context
496       mappings.
497
498       semanage permissive can also be used to manipulate  whether  or  not  a
499       process type is permissive.
500
501       semanage  module can also be used to enable/disable/install/remove pol‐
502       icy modules.
503
504       semanage port can also be used to manipulate the port definitions
505
506       semanage boolean can also be used to manipulate the booleans
507
508
509       system-config-selinux is a GUI tool available to customize SELinux pol‐
510       icy settings.
511
512

AUTHOR

514       This manual page was auto-generated using sepolicy manpage .
515
516

SEE ALSO

518       selinux(8), ftpd(8), semanage(8), restorecon(8), chcon(1), sepolicy(8),
519       setsebool(8)
520
521
522
523ftpd                               23-10-20                    ftpd_selinux(8)
Impressum