iptables简单命令

  IPTables是基于Netfilter基本架构实现的一个可扩展的数据报高级管理系统或核外配置工具,利用tablechainrule三级来存储数据报的各种规则。Netfilter-iptables由两部分组成,一部分是Netfilter"钩子",另一部分则是知道这些钩子函数如何工作的一套规则--这些规则存储在被称为iptables的数据结构之中。钩子函数通过访问iptables来判断应该返回什么值给Netfilter框架。

 

iptables的结构:

 

    表名包括(4张表):
    raw:高级功能,如:网址过滤。
    mangle:数据包修改(QOS),用于实现服务质量。
    nat:地址转换,用于网关路由器。
    filter:包过滤,用于防火墙规则。 (默认)

  规则链名包括(5条链):
    INPUT链:处理输入数据包。
    OUTPUT链:处理输出数据包。
    PORWARD链:处理转发数据包。
    PREROUTING链:用于目标地址转换(DNAT)。
    POSTOUTING链:用于源地址转换(SNAT)。

  动作包括:
    ACCEPT:接收数据包。
    DROP:丢弃数据包(无返回值)。
    REJECT:拒绝(有返回值)。
    SNAT:源地址转换。
    DNAT:目标地址转换。 
    LOG:日志记录。

 

iptables命令输入格式:

 

iptables -t 表名 <-A/I/D/R>  规则链名 [规则号]  <-i/o 网卡名>  -p 协议名  <-s 源IP/源子网>  --sport 源端口  <-d 目标IP/目标子网>  --dport 目标端口  -j  动作

 

语法格式:

iptables(选项)(参数)

选项:

-t <表>:指定要操纵的表;(没有这个 "-t <table>"参数的话,默认使用 “filter”表!)
-A:向规则链中添加条目;
-D:从规则链中删除条目;
-I:向规则链中插入条目;
-R:替换规则链中的条目;
-L:显示规则链中已有的条目;
-F:清楚规则链中已有的条目;
-h:显示帮助信息;
-p:指定要匹配的数据包协议类型;
-s:匹配来源地址IP/MASK,加叹号"!"表示除这个IP外;
-j<目标>:指定要跳转的目标;
-i<网络接口>:指定数据包进入本机的网络接口;
-o<网络接口>:指定数据包要离开本机所使用的网络接口。

-m <模块名> <匹配该模块下的某一项> : 使用扩展模块来进行数据包的匹配

 

删除已添加的iptables规则:

1 将所有iptables以序号标记显示,执行:
2 iptables -L -n --line-numbers
3 
4 比如要删除INPUT里序号为8的规则,执行:
5 iptables -D INPUT 8

 

实例:

1 iptables -I INPUT -p tcp --dport 80 -j ACCEPT   (这里没有  -t <table>,默认为“-t filter”)
2 iptables -A INPUT -p tcp --dport 2225 -j ACCEPT #允许访问22--25之间的端口
3 iptables -I INPUT -s 123.45.6.0/24 -j DROP #封IP段即从123.45.6.1到123.45.6.254的命令
4 iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT #使用模块 “state” 下的 “--state” 规则,允许已建立的或相关连的通行
posted @ 2017-09-02 20:34  Downtime  阅读(350)  评论(0编辑  收藏  举报
TOP