[转帖]Linux 防火墙 IPtables 全攻略IPtables之二:基础规则编写_VMware, Unix及操作系统讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  VMware, Unix及操作系统讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 3562 | 回复: 0   主题: [转帖]Linux 防火墙 IPtables 全攻略IPtables之二:基础规则编写        下一篇 
Leon
注册用户
等级:少校
经验:1436
发帖:116
精华:7
注册:2013-1-4
状态:离线
发送短消息息给Leon 加好友    发送短消息息给Leon 发消息
发表于: IP:您无权察看 2013-1-8 10:28:34 | [全部帖] [楼主帖] 楼主

上一篇博文说明了iptable的一些常识
这里简明再复述一下

linux的防火墙包含了2部分,分别是存在于内核空间的netfilte和用户空间的iptables

而iptable可以定义4类规则
filter:防火墙核心所在
nat:地址转换
mangle:实现数据包修改;如TTL
raw:不常用,这里不做多解释
优先级次序:raw-mangle-nat-filter

在iptable中定义的规则要输送到内核中的netfilte才能生效

定义防火墙规则一般有2种模式。一种是比较严格的,只放行允许通过的数据包,其余数据包全部阻止。还有一种比较宽松的,只阻止不允许通过的数据包。在企业应用中,一般使用第一种,根据业务需要放行对应的数据包。

Iptable定义规则的一般机制(更加具体的语法参照man文档)

iptable  [-t table]  sub_command  CHAIN [num] [cretiria] [-j ACCTION]
-t:


        默认没有指定是filter,也可以指定mangle,nat,raw

sub_command:
rule:


        -A(append):追加
        -I(insert):插入,如 -I INPUT 3
        -D(delete):删除,指定标准或者num 如 -D OUTPUT 8
        -R(replace):替换 -R FORWARD 6

chain:


        -F(flush):清空链
        -N(new):新增一条链
        -X:删除用户自定义的空链
        -Z:清空计数器
            关于计数器:每条规则都有2条计数器
                        1:记录被本条规则匹配到的包个数
                        2:记录匹配到本条规则到的包的体积之和
        -E:重命名链

policy:
-P chain {ACCEPT|DROP}
exsample:


将INPUT链的默认策略修改为DROP

iptables -t filter -P INTPUT DROP
view:


        -L 显示定义的规则
            -n:使用这个选项,就不会去反向解析IP地址的主机名,加快察看速度
            -v:详细信息,可以多加几个v,越多越详细
            -x:精确显示数据包体积

 --line-numbers


匹配条件:
    通用匹配:
        -s IP/NETWORK:源地址
        -d IP/NETWORK:目标地址
        -p {tcp|udp|icmp}:指定协议
        -i input interface:指定数据包进入的接口
        -o output interface:指定数据包出去的接口

example:


禁止192.168.1.0/24网段ping192.168.2.1主机

iptables -t fliter -A INTUP -s 192.168.1.0/24 -d 192.168.2.1 -p icmp -j DROP


    扩展匹配
        隐式扩展:指对-p选项中指定的协议进行的扩展

 -p {tcp|udp|icmp}
--sport portnum 源端口
--dport portnum    目标端口   
--tcpflags 针对tcp的标志位
--icmp-type icmp的包类型。


扩展上面的exapmle

iptables -t fliter -A INTUP -s 192.168.1.0/24 -d 192.168.2.1 -p icmp –icmp-type 8 -j DROP


这里明确拒绝了192.168.1.0/24网段的icmp-request包,8是icmp-request包,0是icmp-echo包

example:


拒绝192.168.2.1主机访问本机的web服务

iptables -t fliter -A INPUT -s 192.168.2.1 -p --dport 80 -j DROP
iptables -t fliter -A INPUT -s 192.168.2.1 -p --dport 443 -j DROP


规则的写法有多种,也可以写在OUTPUT链上,不过效率没有INPUT上高,而如果写在OUTPUT上 ,应该这样写

iptables -t fliter -A OUTPUT -d 192.168.2.1 -p –sport 80 -j DROP
iptables -t fliter -A OUTPUT -d 192.168.2.1 -p –sport 443 -j DROP


具体写法要按照需求,分析数据包的走向而定

     显式扩展:使用-m指定要加载的扩展(下一章具体描述)

-j    TARGET:跳转到到的链常见的有以下3种

 ACCEPT
DROP
REJECT


基本的用法先到这里,下一篇将具体说说显式扩展

本文出自 “lustlost-迷失在欲望之中” 博客,请务必保留此出处http://lustlost.blog.51cto.com/2600869/939989




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论