背景:
以前安装Redhat AS4的时候总是关闭SELinux,就是怕系统在运行时由于启用SELinux而使一些应用变得不那么“方便”,所以一直回避
现在发现,只要你去简单的学习一下,其实SELinux对我们的工作还是有很大的帮助的
介绍:
SELinux 是美国国家安全局对于强制访问控制的实现,是 Linux® 上最杰出的新安全子系统。SELinux 默认安装在 Fedora 和 Red Hat Enterprise Linux 上,也可以作为其他发行版上容易安装的包得到
RedHat Enterprise 3及以后的版本才集成了这一功能,关于概念性的东西请朋友们到下面的连接上去看一下,接下来我们用一组简单的实验来看一下SELinux是如何工作的
实验:SELinux保护Apache的端口
1. 启用Redhat SELinux内核支持
[root@localhost ~]# vi /etc/sysconfig/selinux
SELINUX=enforcing (这条语句是启用SELinux支持)
2. 重新启动Redhat主机
3. 启动默认的apache服务器
[root@localhost ~]# service httpd restart
Stopping httpd: [FAILED]
Starting httpd: [ OK ]
4. 将apache监听的默认端口更改为8080
[root@localhost ~]# vi /etc/httpd/conf/httpd.conf
#Listen 80 (这条语句是控制apache监听的默认端口,将80更改为8080,如下)
Listen 8080
5. 再次重新启动apache服务器
[root@localhost ~]# service httpd restart
Stopping httpd: [ OK ]
Starting httpd: [FAILED]
[root@localhost ~]# service httpd restart
Stopping httpd: [FAILED]
Starting httpd: [FAILED]
我们可以看到apache已经无法启动,在系统日志中会看到下面的信息
[root@localhost ~]# tail /var/log/messages
May 10 07:43:20 ns kernel: audit(1210376600.574:2048): avc: denied { name_bind } for pid=20834 comm="httpd" src=88 scontext=root:system_r:httpd_t:s0 tcontext=system_u:object_r:kerberos_port_t:s0 tclass=tcp_socket
实验:SELinux保护Apache文件
==各位==,先去个football game