我用过的系统主要有两种,一个是ubuntu另一个是RedHat5
在Ubuntu里面默认情况下,没有安装selinux,而RedHat5默认装有。
这里主要是拿RHEL来说的。
当打开了SELinux时,使用的时候,会有很多问题。
比如,今天,我部署了一个简单的FTP,使anymous有上传下载的权限。当我从某主机访问,并试图上传文件时,结果出现了错误。
刚开始没意识到问题出在哪里,以为自己配置有问题,后来从Linux主机上看是,看到右上角有个小星星。于是知道了,SeLinux阻止了上传行为。
在做测试时,很多情况下会因为使用了SeLinux和Firewall而造成测试上的故障。
PS.只建议在实验环境中关闭SeLinux和firewall,在生产环境中,尽量开启,并学好如何使用SeLinux来使我们的系统更安全。如果Selinux用得不好的话,那就尽量关闭吧~不然会适得其反。
下面我就来记录一下关于SeLinux和Firewall,关于这些东西,在网上大部分都能找到,因为已经有很多很历害的前辈了,在这里,我也仅仅是将这些知识汇总,然后与大家分享。
查看SeLinux当前的状态:
#getenforce
#/usr/bin/setstatus -v
SELinux status: enabled
SELinuxfs mount: /selinux
Current mode: permissive
Mode from config file: enforcing
Policy version: 21
Policy from config file: targeted
SeLinux的启动与关闭:
setenforce的用法
usage: setenforce [ Enforcing | Permissive | 1 | 0 ]
临时关闭:#setenforce 0 设置SeLinux为permissive模式
临时开启:#setenforce 1 设置SeLinux为enforcing模式
非临时:修改/etc/selinux/config
#vim /etc/selinux/config
设置SELINUX=""或disabled或enforcing(前两项表示关闭,最后一项表示开启)
PS.这种方式需要重新启动才生效。
Linux防火墙
查看防火墙信息:
/etc/init.d/iptables status
或 service iptables status
重启后永久生效:
开启:chkconfig iptables on
关闭:chkconfig iptables off
临时生效:
开启:service iptables start
关闭:service iptables stop
开启防火墙后,做如下设置开启相关端口
#vim /etc/sysconfig/iptables,添加
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
[redhat下图形界面的方式关闭和开启]
#setup
选择Firewall configuration.
UBUNTU下没有相关的直接命令
则用:
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
我建议的关闭防火墙命令是
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -F //清除所有规则