前言
内核级加强型火墙主要是指系统中的selinux功能,该功能开启时,会对系统中的文件和程序产生影响,用户的一些操作会被限制。
一、Selinux开启后所产生的影响
对于文件的影响:
当selinux开启时,内核会对每个文件及每个开启的程序进行标签加载
标签内记录程序和文件的安全上下文(context)
对于程序功能的影响:
当selinux开启会对程序的功能加载开关,并设定此开关的状态为关闭
当需要此功能时需要手动开启功能开关
此开关叫做sebool
二、Selinux的状态及管理
selinux的开启:
vim /etc/selinux/config 或者/etc/sysconfig/selinux
SELINUX=disabled %selinux关闭
SELINUX=enforcing %selinux开机设定为强制状态,此状态为selinux开启
SELINUX=permissive %selinux开机设定为警告状态,此状态为selinux开启
"selinux从开启到关闭需要重启系统"
enforcing:
不符合条件一定不能被允许,并会收到警告信息
permissive:
不符合条件被允许,并会收到警告信息
selinux状态的查看:
getenforce
selinux开启后强制和警告级别的转换
setenforce 0 %警告
setenforce 1 %强制
强制模式下,用lftp不能访问,警告模式下可以访问,两种情况下都会在/var/log/audit/audit.log中生成日志
selinux日志位置:
/var/log/audit/audit.log
三、Selinux的安全上下文
临时修改文件的安全上下文:此方式更改的安全上下文在selinux重启后会还原
chcon -t 标签 文件|目录
chcon -t public_content_t /var/ftp/westosfile1 %不能改/var/ftp里面的,因为该目录下的文件原本的安全上下文就为public_content_t,改完再重启系统没有变化
chcon -Rt public_content_t /westosdir %修改目录及目录中的所有子文件的安全上下文
永久修改安全上下文:如果需要特殊指定安全上下文需要修改内核安全上下文列表
semanage fcontext -l %查看内核安全上下文列表
semanage fcontext -a -t public_content_t '/westosdir(/.*)?' %如果不加(/.*)?,则只是目录本身的安全上下文被记录了,目录里面的内容不会发生变化
restorecon -RvvF /westosdir/ %使上述设定生效
touch /.autorelabel %重启系统时selinux初始化文件标签开关文件
四、SEBOOL开关和SEPORT
SEBOOL:
getsebool -a %查看现实服务的bool值
setsebool -P ftpd_anon_write on %更改(开启write开关),加-P表示永久开启,不加表示临时,重启后还会关闭
SEPORT:
semanage port -l | grep http %查看现实服务的port值列表,即系统允许更改的端口号
semanage port -a -t http_port_t -p tcp 1111 %更改
netstat -antlupe | grep httpd %查看httpd的当前端口
五、setrouble
/var/log/audit/audit.log %selinux警告信息
/var/log/messages %可在此日志中查找selinux问题解决方案
[root@server mnt]# touch hello
[root@server mnt]# ls
hello
[root@server mnt]# mv hello /var/ftp
[root@server mnt]# lftp 172.25.254.101
lftp 172.25.254.101:~> ls
-rw-r--r-- 1 0 0 0 Nov 29 01:38 file
drwxrwxrwx 2 0 0 33 Nov 29 01:16 pub
lftp 172.25.254.101:/> exit
[root@server mnt]# cat /var/log/messages
[root@server mnt]# setsebool -P ftpd_full_access 1 %日志中提供的解决方案
[root@server mnt]# ls
[root@server mnt]# lftp 172.25.254.101
lftp 172.25.254.101:~> ls %可以看到安全上下文不正确的文件
-rw-r--r-- 1 0 0 0 Nov 29 01:38 file
-rw-r--r-- 1 0 0 0 Nov 29 01:45 file2
-rw-r--r-- 1 0 0 0 Nov 29 01:49 hello
drwxrwxrwx 2 0 0 33 Nov 29 01:16 pub
lftp 172.25.254.101:/> exit