SELinux 使用示例
Published on 2015 - 06 - 10
SELinux 使用示例
1.关闭SELinux<
vi /etc/sysconfig/selinux
SELINUX=disabled #启动改成 enforcing
2.与Apache Httpd相关的 SELinux 安全策略
setsebool -P httpd_can_net-work_connect_db_1
允许httpd脚本或模块通过网络连接数据库
setsebool -P httpd_enable_cgi 1
允许httpd支持CGI程序
setsebool -P httpd_use_cifs 1
允许httpd访问cifs文件系统资源
setsebool -P allow_httpd_mod_auth_pam 1
允许Apache使用mod_auth_pam模块
setsebool -P httpd_use_nfs 1
允许httpd访问NFS文件系统资源
setsebool -P httpd_can_sendmail 1
允许http守护进程发送电子邮件
setsebool -P httpd_can_network_memcache 1
允许httpd 连接网络memcache服务器
如果希望多个进程域,(如:Apache,FTP,rsync等)共享相同的文件,我们可以设置文件安全上下文为 public_content_t
或者 public_content_rw_t
,这些安全上下文允许上面提到的所有服务进程域读取文件内容,如果修改为可读写,则需要 public_content_t
的类型标签。
通过添加 `public_content_t` 类型标签,允许httpd服务读取/var/httpd 目录:
semanage fcontext -a -t public_content_t "/var/httpd(/.*)?"
restorecon -F -R -v /var/httpd
通过添加 `public_content_rw_t` 类型标签,允许httpd可读写/var/web目录及子目录。注意,该设置需要开启布尔值 `allow_httpd_anon_write`:
semanage fcontext -a -t public_content_rw_t "/var/web(/.*)?"
restorecon -F -R -v /var/httpd/incoming
具体的安全上下文描述信息在下表:
文件与目录描述 | 安全上下文类型标签 |
---|---|
/var/cache 缓存目录资源 | httpd_cache_t |
Apache 配置文件 | httpd_config_t |
作为CVS内容的文件资源 | httpd_cvs_content_t |
apache日志文件资源 | httpd_log_t |
httpd代理内容资源 | httpd_squid_content_t |
httpd系统资源 | httpd_sys_content_t |
可读写httpd系统资源 | httpd_sys_rw_content_t |
3.与FTP相关的 SELinux 安全策略
setsebool -P ftp_home_dir 1
允许ftp读写用户家(home)目录中的数据
setsebool -P allow_ftpd_full_access 1
允许本地账号登陆ftp可以读写文件系统中的所有文件
setsebool -P ftpd_connect_db 1
允许ftp连接数据库
setsebool -P allow_fptd_use_cifs 1
允许FTP共享cifs文件系统
setsebool -P allow_ftpd_use_nfs 1
允许FTP共享NES文件系统
允许ftp读取/var/ftp目录
semanage fcontext -a -t public_content_t "/var/ftp(/.*)?"
restorecon -F -R -v /var/ftp
允许ftp读写/var/ftp目录
semanage fcontext -a -t public_content_rw_t "/var/ftp(/.*)?"
restorecon -F -R -v /var/ftp
具体的安全上下文描述信息在下表:
文件与目录描述 | 安全上下文类型标签 |
---|---|
/etc/目录下的ftp文档 | ftpd_etc_t |
控制ftp程序仅在ftpd_t域下运行 | ftpd_exec_t |
控制ftp程序仅在ftpd_initrc_t域下运行 | ftpd_exec_t |
ftp锁数据文件 | ftpd_lock_t |
ftp在/tmp目录下生成的临时文件 | ftpd_tmp_t |
4.MySQL 相关的SELinux安全策略
setsebool -P allow_user_mysql_connect 1
允许用户连接mysql服务器
setsebool -P mysql_connect_any 1
允许mysqld服务连接所有的端口号
具体的安全上下文描述信息在下表:
文件与目录描述 | 安全上下文类型标签 |
---|---|
mysqld数据库文件 | mysqld_db_t |
存储在/etc目录下的mysql文件 | mysqld_etc_t |
控制mysql程序仅在mysqld_t域中运行 | mysqld_exec_t |
控制mysql程序仅在mysqld_initrc_t域中运行 | mysqld_initrc_exec_t |
ftp在/tmp目录下生成的临时文件 | ftp_tmp_t |
控制mysql程序仅在mysqld_safe_t域中运行 | mysqld_safe_exec_t |
mysq存储在/tmp目录下的临时文件 | mysqld_tmp_t |
mysql存储在/var/run目录下的文件 | mysqld_var_run_t |
5.NFS相关的SELinux安全策略
setsebool -P allow_ftpd_use_nfs 1
允许ftp服务器使用NFS文件系统共享
setsebool -P git_system_use_nfs 1
允许git访问NFS文件系统
setsebool -P qemu_use_nfs 1
允许qemu使用NFS文件系统
setsebool -P rsync_use_nfs 1
允许rsync服务器共享NFS文件系统
setsebool -P cobbler_use_nfs 1
允许cobbler 访问NFS文件系统
具体的安全上下文描述信息在下表:
文件与目录描述 | 安全上下文类型标签 |
---|---|
nfs数据文件 | nfs_t |
控制NFS程序仅在nfsd_t域中运行 | nfsd_exec_t |
控制NFS程序仅在nfsd_initrc_exec_t域中运行 | nfsd_initrc_exec_t |
设置文件为之都NFS文件 | nfsd_ro_t |
设置文件为可读写NFS文件 | nfsd_rw_t |
6.Samba相关的SELinux安全策略
setsebool -P samba_domain_controller 1
允许samba作为域控制添加账户和修改密码
setsebool -P samba_export_all_ro 1
允许samba以只读方式共享任意文件或目录
setsebool -P samba_export_all rw 1
允许samba以读写方式共享任意文件或目录
setsebool -P use_samba_home_dirs 1
开启samba家目录
setsebool -P samba_enable_home_dirs 1
允许samba共享账户家目录
具体的安全上下文描述信息在下表:
文件与目录描述 | 安全上下文类型标签 |
---|---|
samba存储在/etc/目录下的文件 | samba_etc_t |
samba存储在/tmp/目录下的文件 | samba_net_tmp_t |
samba存储在/var/目录下的文件 | samba_var_t |
samba密码文件 | samba_secrets_t |
samba共享文件 | samba_share_t |
samba日志文件 | samba_log_t |
控制samba程序仅在samba_initrc_t域中运行 | samba_initrc_exec_t |
控制samba程序仅在samba_net_t域中运行 | samba_net_exec_t |