SELINUX
关闭selinux有两种方法:暂时关闭selinux防火墙,下次重启后selinux还会开启。#setenforce 0 #getenforce
#查看临时关闭selinux的状态命令永久关闭selinux
#vi /etc/selinux/config
#修改selinux的配置文件
更改“SELINUX=enforcing”为 SELINUX=disabled 保存退出。
此处需要重启。方能改成disabled.
[root@localhost ~]# /usr/sbin/sestatus -v 或者 #sestatus
#查看selinux的状态命令SELinux status: disabled
2,netfliter 防火墙,以及其工具iptables
# iptables -nvL
nvL 就是查看规则,-n表示不针对IP反解析主机名;-L表示列出的意思;而-v表示列出的信息更加详细。如果不加-t ,则打印filter表的相关信息。
#iptables -F 表示把所有规则全部删除;
#iptables -Z表示把包以及流量计数器置零
-F 是把当前规则清除,但这个只是临时的,重启系统或者重启 iptalbes 服务后还会加载已经保存的规则,所以需要使用 /etc/init.d/iptables save 保存一下规则,通过上边的命令输出我们也可以看到,防火墙规则保存在了/etc/sysconfig/iptables 你可以查看一下这个文件。
-A/-D :增加删除一条规则;
-I :插入一条规则,其实跟-A的效果一样;
-p :指定协议,可以是tcp,udp或者icmp;
--dport :跟-p一起使用,指定目标端口;
--sport :跟-p一起使用,指定源端口;
-s :指定源IP(可以是一个ip段);
-d :指定目的IP(可以是一个ip段);
-j :后跟动作,其中ACCEPT表示允许包,DROP表示丢掉包,REJECT表示拒绝包;
-i :指定网卡(不常用,但有时候能用到);
-P(大写)后面跟链名,策略内容或者为DROP或者为ACCEPT,默认是ACCEPT。
注意:如果你在连接远程服务器,千万不要随便敲这个命令,因为一旦你敲完回车你就会断掉。
这个策略一旦设定后,只能使用 iptables -P INPUT ACCEPT 才能恢复成原始状态,而不能使用-F参数。
例子:
# iptables -A INPUT -s 10.72.11.12 -p tcp --sport 1234 -d 10.72.137.159 --dport 80 -j DROP
这就是增加了一条规则,省略-t所以针对的是filter表。-A 表示增加一条规则,另外还有-I 表示插入一条规则,-D删除一条规则;后面的INPUT即链名称,还可以是OUTPUT或者FORWORD;-s 后跟源地址;-p 协议(tcp, udp, icmp); --sport/--dport
后跟源端口/目标端口;-d 后跟目的IP(主要针对内网或者外网);-j 后跟动作(DROP即把包丢掉,REJECT即包拒绝;ACCEPT即允许包)。
[root@localhost ~]# iptables -I INPUT -s 1.1.1.1 -j DROP
上例表示:插入一条规则,把来自1.1.1.1的所有数据包丢掉。
[root@localhost ~]# iptables -D INPUT -s 1.1.1.1 -j DROP
删除刚刚插入的规则。注意要删除一条规则时,必须和插入的规则一致,也就是说,两条iptables命令,除了-I 和-D不一样外,其他地方都一样。
[root@localhost ~]# iptables -I INPUT -s 2.2.2.2 -p tcp --dport 80 -j DROP
上例表示把来自2.2.2.2 并且是tcp协议到本机的80端口的数据包丢掉。这里要说的是,--dport/--sport
必须要和-p选项一起使用,否则会出错。
[root@localhost ~]# iptables -p tc
这条规则表示,把发送到10.0.2.34的22端口的数据包丢掉。
iptables规则脚本设定
需求:只针对filter表,预设策略INPUT链DROP,其他两个链ACCEPT,然后针对192.168.137.0/24开通22端口,对所有网段开放80端口,对所有网段开放21端口。这个需求不算复杂,但是因为有多条规则,所以最好写成脚本的形式。脚本内容如下:
# cat /usr/local/sbin/iptables.sh
#! /bin/bashipt="/sbin/iptables"
$ipt -F
$ipt -P INPUT DROP
$ipt -P OUTPUT ACCEPT
$ipt -P FORWARD ACCEPT
$ipt -A INPUT -s 192.168.137.0/24 -p tcp --dport 22 -j ACCEPT
$ipt -A INPUT -p tcp --dport 80 -j ACCEPT
$ipt -A INPUT -p tcp --dport 21 -j ACCEPT
完成脚本的编写后,直接运行
/bin/sh /usr/local/sbin/iptables.sh 即可。如果想开机启动时初始化防火墙规则,则需要在 /etc/rc.d/rc.local 中添加一行
“/bin/sh /usr/local/sbin/iptables.sh”
保存以及备份iptalbes规则
设定的防火墙规则只是保存在内存中,并没有保存到某一个文件中,也就说当系统重启后以前设定的规则就没有了,所以设定好规则后要先保存一下。
[root@localhost ~]# service iptables save
iptables:将防火墙规则保存到 /etc/sysconfig/iptables: [确定]
它会提示防火墙规则保存在了/etc/sysconfig/iptables文件内,这个文件就是iptables的配置文件了。所以日后,如果你遇到备份防火墙规则的任务,其实就是要拷贝一份这个文件的副本。
有时,我们会需要把防火墙所有规则都清除,使用 iptables -F 命令虽然可以,但是最好的办法是把防火墙服务停止:
[root@localhost ~]# service iptables stop
iptables:清除防火墙规则: [确定]
iptables:将链设置为政策 ACCEPT:nat filter [确定]
iptables:正在卸载模块: [确定]
这样防火墙就失效了,但是一旦重新设定规则后(哪怕只有一条),防火墙服务会自动开启。下面阿铭介绍给你一个用来备份防火墙规则的命令:
[root@localhost ~]# sh /usr/local/sbin/iptables.sh
[root@localhost ~]# iptables-save > myipt.rule
先执行一下刚才我们写的iptables脚本,使用 iptables-save 命令重定向到一个文件里。要想恢复这些规则使用下面的命令即可:
[root@localhost ~]# iptables-restore < myipt.rule
http://blog.chinaunix.net/uid-X125X ... htmlX102X
参考资料