linux防火墙

CentOS SELinux与iptables详解

    selinux

    selinux是RedHat/Centos系统特有的安全机制,一般我们会关掉它,使“SELINUX=disables",它的默认值是enforcing,你可以用getenforce命令查看你的状态

[root@dong-Linux ~]# getenforce

    临时关闭它的命令

[root@dong-Linux ~]# setenforce 0

    永久关闭它,它的配置文件

[root@dong-Linux ~]# vim /etc/selinux/config
SELINUX=disabled

    重启之后才能生效,这时用getenforce,状态变成Disabled

    iptables

    iptables是linux上特有的防火墙,功能很强大,里面有很多哟的规则需要了解和掌握,

    查看规则

[root@dong-Linux ~]# iptables -nvL
Chain INPUT (policy ACCEPT 940K packets, 132M bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 1156K packets, 135M bytes)
 pkts bytes target     prot opt in     out     source               destination

    一般我清楚规则用iptables -F,但是重启之后这些规则又会重新加载进来,所以需要使用 /etc/init.d/iptables save 保存一下规则,通过上边的命令输出我们也可以看到,防火墙规则保存在了/etc/sysconfig/iptables

    1)iptalbes的三个表

    filter 这个表主要用于过滤包的,是系统预设的表,这个表也是阿铭用的最多的。内建三个链INPUT、OUTPUT以及FORWARD。INPUT作用于进入本机的包;OUTPUT作用于本机送出的包;FORWARD作用于那些跟本机无关的包。

    nat 主要用处是网络地址转换,也有三个链。PREROUTING 链的作用是在包刚刚到达防火墙时改变它的目的地址,如果需要的话。OUTPUT链改变本地产生的包的目的地址。POSTROUTING链在包就要离开防火墙之前改变其源地址。该表阿铭用的不多,但有时候会用到。

    mangle 这个表主要是用于给数据包打标记,然后根据标记去操作哪些包。

2)iptables 基本语法

    增加/删除一个规则

#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即允许包)。

#iptables -I INPUT -s 1.1.1.1 -j DROP

    上例表示:插入一条规则,把来自1.1.1.1的所有数据包丢掉

iptables -D INPUT -s 1.1.1.1 -j DROP

    删除刚刚插入的规则。注意要删除一条规则时,必须和插入的规则一致,也就是说,两条iptables命令,除了-I 和-D不一样外,其他地方都一样

iptables -I INPUT -s 2.2.2.2 -p tcp --dport 80 -j DROP

    上例表示把来自2.2.2.2 并且是tcp协议到本机的80端口的数据包丢掉。这里要说的是,--dport/--sport 必须要和-p选项一起使用,否则会出错。

iptables -I OUTPUT -p tcp --dport 22 -d 10.0.1.14 -j DROP

这条规则表示,把发送到10.0.2.34的22端口的数据包丢掉。

各个选项的规则:

-A/-D :增加删除一条规则;

-I :插入一条规则,其实跟-A的效果一样;

-p :指定协议,可以是tcp,udp或者icmp;

--dport :跟-p一起使用,指定目标端口;

--sport :跟-p一起使用,指定源端口;

-s :指定源IP(可以是一个ip段);

-d :指定目的IP(可以是一个ip段);

-j :后跟动作,其中ACCEPT表示允许包,DROP表示丢掉包,REJECT表示拒绝包;

-i :指定网卡(不常用,但有时候能用到);

iptables -A INPUT -s 192.168.1.0/24 -i eth0 -j ACCEPT

上例中表示,把来自192.168.1.0/24这个网段的并且作用在eth0上的包放行。有时候您的服务器上iptables过多了,想删除某一条规则时,又不容易掌握当时创建时的规则。其实有一种比较简单的方法:

[root@dong-Linux ~]# iptables -nvL --line-numbers
Chain INPUT (policy ACCEPT 14 packets, 1008 bytes)
num   pkts bytes target     prot opt in     out     source               destination
1        0     0 DROP       tcp  --  *      *       10.72.11.12          10.72.137.159
[root@dong-Linux ~]# iptables -D INPUT 1

    -D 后跟链名,然后是规则num,这个num就是查看iptables规则时第一列的值。再次查看刚才的规则,已经没有了:

    iptables还有一个选项经常用到,-P(大写)选项,表示预设策略。用法如下:

 iptables -P INPUT DROP

    -P后面跟链名,策略内容或者为DROP或者为ACCEPT,默认是ACCEPT。注意:如果您在连接远程服务器,千万不要随便敲这个命令,因为一旦您敲完回车您就会断掉。

这个策略一旦设定后,只能使用 iptables -P ACCEPT 才能恢复成原始状态,而不能使用-F参数。

保存和备份iptables规则

[root@dong-Linux ~]# service iptables save
iptables:将防火墙规则保存到 /etc/sysconfig/iptables:     [确定]

    停止防火墙:

[root@dong-Linux ~]# service iptables stop
iptables:将链设置为政策 ACCEPT:filter                    [确定]
iptables:清除防火墙规则:                                 [确定]
iptables:正在卸载模块:                                   [确定]

    随便加入一条规则

[root@dong-Linux ~]# iptables -I INPUT -p icmp --icmp-type 8 -j DROP
[root@dong-Linux ~]# iptables-save > myiptables.tule
[root@dong-Linux ~]# cat myiptables.tule
# Generated by iptables-save v1.4.7 on Thu Aug 27 17:55:45 2015
*filter
:INPUT ACCEPT [76:6264]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [51:6392]
-A INPUT -p icmp -m icmp --icmp-type 8 -j DROP
COMMIT
# Completed on Thu Aug 27 17:55:45 2015

    如果我们恢复我们的规则呢

[root@dong-Linux ~]# iptables-restore < myiptables.tule


转载于:https://my.oschina.net/lvguidong/blog/498277

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值