iptables 的基本操作

简介:

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


[root@www ~]# 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]


[root@www ~]# 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 INVALID -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连接则丢弃,ssh
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

#icmp
icmp_type="0 3 4 8 11 12 14 16 18"
for typeicmp in $icmp_type
do
   iptables -A INPUT -p icmp --icmp-type $typeicmp -s 192.168.200.156 -j ACCEPT
   iptables -A INPUT -p icmp --icmp-type $typeicmp -s 192.168.200.158 -j ACCEPT
done
iptables -A INPUT  -s 192.168.200.157 -j ACCEPT #使得192.168.200.157能够ping 192.168.200.157
iptables -A INPUT -s 127.0.0.1 -j ACCEPT #使得192.168.200.157能够ping通127.0.0.1(localhost)
service iptables save



本文转自神ge 51CTO博客,原文链接:
http://blog.51cto.com/12218412/1873019

相关文章
|
3月前
|
网络协议 Linux 网络安全
iptables基础
iptables基础
|
网络协议 算法 Linux
iptables 常用命令
使用 -t 选项指定了要操作的表,此处指定了操作 filter 表,与之前的查看命令一样,不使用-t 选项指定表时,默认为操作 filter 表。 使用-I 选项,指明将”规则”插入至哪个链中,-I 表示 insert,即插入的意思,所以-I INPUT 表示将规则插入于 INPUT 链中,即添加规则之意。 使用-s 选项,指明”匹配条件”中的”源地址”,即如果报文的源地址属于-s 对应的地址,那么报文则满足匹配条件,-s 为 source 之意,表示源地址。
|
网络协议 安全 开发者
iptables 命令使用 | 学习笔记
快速学习iptables 命令使用
iptables 命令使用 | 学习笔记
|
Linux 网络安全
iptables简介1及常用命令
第一章:简述 iptables是一个用户态工具,用于操作linux内核部分的netfilter模块(包过滤),用来完成防火墙相关的工作。linux的netfilter工作于2层(开启bridge-nf时刻)和3层(ip层),可以对ip包,二层数据链路包进行操作;而市面上还有一种防火墙是应用层防火墙,可以对应用层包进行检查(过滤)。
1208 0
|
网络协议 网络安全 开发工具
|
网络协议 Linux 网络安全