iptables 的基本操作

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iptables 的基本操作相关的知识,希望对你有一定的参考价值。


[[email protected] ~]# iptables [-t nat] -P [INPUT,OUTPUT,FORWARD] [ACCEPT,DROP]选项与参数:
-P :定义政策( Policy )。注意,这个 P 为大写啊!
ACCEPT :该封包可接受
DROP   :该封包直接丢弃,不会让 client 端知道为何被丢弃


[[email protected] ~]# iptables [-AI 链名] [-io 网络接口] [-p 协议] \> [-s 来源IP/网域] [-d 目标IP/网域] -j [ACCEPT|DROP|REJECT|LOG]选项与参数:
-AI 链名:针对某的链进行规则的 "插入" 或 "累加"
   -A :新增加一条规则,该规则增加在原本规则的最后面。例如原本已经有四条规则,
        使用 -A 就可以加上第五条规则!
   -I :插入一条规则。如果没有指定此规则的顺序,默认是插入变成第一条规则。
        例如原本有四条规则,使用 -I 则该规则变成第一条,而原本四条变成 2~5 号
   链 :有 INPUT, OUTPUT, FORWARD 等,此链名称又与 -io 有关,请看底下。

-io 网络接口:设定封包进出的接口规范
   -i :封包所进入的那个网络接口,例如 eth0, lo 等接口。需与 INPUT 链配合;
   -o :封包所传出的那个网络接口,需与 OUTPUT 链配合;

-p 协定:设定此规则适用于哪种封包格式
  主要的封包格式有: tcp, udp, icmp 及 all 。

-s 来源 IP/网域:设定此规则之封包的来源项目,可指定单纯的 IP 或包括网域,例如:
  IP  :192.168.0.100
  网域:192.168.0.0/24, 192.168.0.0/255.255.255.0 均可。
  若规范为『不许』时,则加上 ! 即可,例如:
  -s ! 192.168.100.0/24 表示不许 192.168.100.0/24 之封包来源;

-d 目标 IP/网域:同 -s ,只不过这里指的是目标的 IP 或网域。

-j :后面接动作,主要的动作有接受(ACCEPT)、丢弃(DROP)、拒绝(REJECT)及记录(LOG)


# iptables [-AI 链] [-io 网络接口] [-p tcp,udp] 
\> [-s 来源IP/网域] [--sport 埠口范围]
\> [-d 目标IP/网域] [--dport 埠口范围] -j [ACCEPT|DROP|REJECT]


[[email protected] ~]# iptables -A INPUT [-m state] [--state 状态]选项与参数:
-m :一些 iptables 的外挂模块,主要常见的有:
    state :状态模块
    mac   :网络卡硬件地址 (hardware address)
--state :一些封包的状态,主要有:
    INVALID    :无效的封包,例如数据破损的封包状态
    ESTABLISHED:已经联机成功的联机状态;
    NEW        :想要新建立联机的封包状态;
    RELATED    :这个最常用!表示这个封包是与我们主机发送出去的封包有关

iptables -F
#杀掉所有使用者"自定义"的chain
iptables -X
#将所有chain的计数与流量都归零
iptables -Z

#给filter表格的三条chain设置默认规则
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT

#基本规则
iptables -i lo -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -m state --state INVALIDE -j DROP
iptables -A INPUT -m mac --mac-source 94:de:80:89:41:93 -j DROP
#只要是来自lo接口或者通过lo接口出去都放行
iptables -A INPUT -icmp -j ACCEPT

#自定义规则
#对于filter 的INPUT chain,来自192.168.200.158的ip,目标主机接口是
eth0,目标port是22的丢弃,且进行的是tcp连接则丢弃
iptables -A INPUT -p tcp -s 192.168.200.158  -i eth0 --dport 22 -j DROP
iptables -A INPUT -p udp -s 192.168.200.158  -i eth0 --dport 22 -j DROP

#对于filter 的INPUT chain,来来自端口号1024:65000,在通过192.168.200.158的ip,到通过主机接口
#eth0 到端口号21 进行tcp连接,则丢弃.注意:这里-p 一定要在 --sport 的前面.
iptables -A INPUT -p tcp --sport 1024:65000 -s 192.168.200.158 -i eth0 --dport 21 -j DROP
#注意syn:主动连接标志
iptables -A INPUT -p tcp --sport 1024:65000 -i eth0 --dport 22 --syn -j DROP

iptables -A INPUT -s 192.168.200.156 -i eth0 -j DROP
#对于INPUT chain,来自192.168.200.0这个网段的ip 经过主机的eth0网络接口都放行
iptables -A INPUT -s 192.168.200.0/24 -i eth0 -j ACCEPT


本文出自 “12208412” 博客,请务必保留此出处http://12218412.blog.51cto.com/12208412/1873019

以上是关于iptables 的基本操作的主要内容,如果未能解决你的问题,请参考以下文章

iptables iptables实际操作之规则查询

iptables 的基本操作

(19)iptables防火墙基本操作

iptables详解:iptables实际操作之规则查询

iptables的基本使用方法

Iptables - iptables命令的基本用法