/etc/security/limits.conf #定义对用户的各种限制
#<domain> <type> <item> <value> #具体文件中有定义 user4 hard nofile 10 #限制user4最多打开10个文件 user5 hard as 10240 #限制user5只能使用10M内存
MAC:强制访问控制。添加了对应用程序的控制。
/etc/selinux/config #配置文件
# This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: #3种工作模式 # enforcing - SELinux security policy is enforced.#强制模式 # permissive - SELinux prints warnings instead of enforcing.#警告模式 # disabled - No SELinux policy is loaded. SELINUX=enforcing # SELINUXTYPE= can take one of these two values: # targeted - Targeted processes are protected, #不限制本地用户和服务,只限制网络用户 # minimum - Modification of targeted policy. Only selected processes are protected. # mls - Multi Level Security protection. #最高的保护级别。 #如果要使用此级别需要安装一个包。selinux-policy-mls。 SELINUXTYPE=targeted
在强制模式下面,selinux策略生效
在警告模式下面,selinux不会禁用策略,但是会记录下警告信息。
从enforcing切换到permissive,相互切换不需要重启,其它都需要重启才行。切换到permissive多用于排错。
[root@localhost ~]# getenforce #查看目前处于什么模式下 Enforcing [root@localhost ~]# setenforce 0 #切换到permissive模式 0:permissive模式 1:enforcing模式
所有的文件和进程都有一个security context,
[root@localhost ~]# ls -lZ #查看文件的context值 -rw-------. root root system_u:object_r:admin_home_t:s0 anaconda-ks.cfg system_u:用户 object_r:角色 admin_home_t:类型 drwxr-xr-x. root root unconfined_u:object_r:admin_home_t:s0 Desktop drwxr-xr-x. root root unconfined_u:object_r:admin_home_t:s0 Documents drwxr-xr-x. root root unconfined_u:object_r:admin_home_t:s0 Downloads -rw-r--r--. root root system_u:object_r:admin_home_t:s0 initial-setup-ks.cfg
如何查看程序的context值:
[root@localhost ~]# ps -Z LABEL PID TTY TIME CMD unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 2077 pts/0 00:00:00 bash unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 61994 pts/0 00:00:00 ps
手动创建的文件的context值会继承上一级目录
系统中有一个数据库记录了文件的context值,如下命令查看所有目录的context值:
[root@localhost ~]# semanage fcontext -l /var/run/kismet_server\.pid regular file system_u:object_r:kismet_var_run_t:s0 /var/run/klogd\.pid regular file system_u:object_r:klogd_var_run_t:s0 /var/run/krb5kdc(/.*)? all files system_u:object_r:krb5kdc_var_run_t:s0
如何修改文件的context值:
[root@localhost ~]# chcon -t xen_p_w_picpath_t /var/www #-R代表递归
依据数据库恢复文件的context值:
[root@localhost ~]# restorecon -vvFR /var/www/ #-R代表递归,恢复www目录以及目录下的所有
如何把文件的context值写进数据库:
[root@localhost ~]# semanage fcontext -a -t xen_p_w_picpath_t '/xen(/.*)?'
表示把xen目录下的所有文件的context值都定义为xen_p_w_picpath_t,加入数据库。
Booleans:限定进程的动作
[root@localhost ~]# getsebool -a #查看bool值 ftp_home_dir --> off ftpd_anon_write --> off ftpd_connect_all_unreserved --> off ftpd_connect_db --> off ftpd_full_access --> off ftpd_use_cifs --> off ftpd_use_fusefs --> off ftpd_use_nfs --> off ftpd_use_passive_mode --> off httpd_can_connect_ftp --> off httpd_enable_ftp_server --> off sftpd_anon_write --> off sftpd_enable_homedirs --> off sftpd_full_access --> off sftpd_write_ssh_home --> off tftp_anon_write --> off tftp_home_dir --> off
[root@localhost ~]# setsebool ftpd_full_access on
#修改bool值,立即生效,开机无效。选项-P,下次开机任然有效。
限制端口
查看se允许服务使用的端口
[root@localhost ~]# semanage port -l zarafa_port_t tcp 236, 237 zebra_port_t tcp 2600-2604, 2606, 2608-2609 zebra_port_t udp 2600-2604, 2606, 2608-2609 zented_port_t tcp 1229
添加端口到数据库
[root@localhost ~]# semanage port -a -t zebra_port_t -p tcp 8899
SELinux排错
troubleshoot:排错图形化工具
selinux日志记录在审计日志里面,查看审计日志
[root@localhost ~]# sealert -a /var/log/audit/audit.log
/var/log/messages 中也有selinux日志
转载于:https://blog.51cto.com/chomper/1694199