iptables命令

来源:互联网 发布:詹姆斯数据统计 编辑:程序博客网 时间:2024/06/05 11:49

iptables是与最新的 3.5 版本 Linux 内核集成的 IP 信息包过滤系统。如果 Linux 系统连接到因特网或 LAN、服务器或连接 LAN 和因特网的代理服务器, 则该系统有利于在 Linux 系统上更好地控制 IP 信息包过滤和防火墙配置。

防火墙在做信息包过滤决定时,有一套遵循和组成的规则,这些规则存储在专用的信息包过滤表中,而这些表集成在Linux内核中。在信息包过滤表中,规则被分组放在我们所谓的链(chain)中。而iptables信息包过滤系统是一款功能强大的工具,可用于添加、编辑和移除规则。

规则:就是网络管理员预定义的条件,规则一般定义为“如果数据包头符合这样的条件,就这样处理这个数据包”。规则存储在内核空间的信息包过滤表中,这些规则分别定义了源地址、目的地址、传输协议(如TCP,UDP,ICMP)和服务类型(HTTP,FTP,SMTP)等,当数据包与规则匹配时,iptables就根据规则所定义的方法来处理这些数据包,如放行(accept),拒绝(reject),和丢弃(drop)等。配置防火墙主要工作就是添加,修改和删除这些规则。

链:链(CHAINS)是数据包传播的途径,每一条链其实就是众多规则中的一个检查清单,每一条链可以有一条或数条规则。当一个数据包到达一条链时,iptables就从链中第一条规则开始检查,看该数据包是否满足规则定义的条件。如果满足,系统就会根据这条规则所定义的方法处理该数据包;否则iptables将继续检查下一条规则,如果该数据包不符合链中任一条规则,iptables将会按照默认策略来处理数据包。

表:表(tables)提供了特定的功能,iptables内建了3个表,即filter表、nat表、和mangle表。分别用于实现包过滤,网络地址转换和包重构的功能


iptables常用命令格式:iptables [-t –命令 匹配 动作

    1. 表选项: filter(预设)、natmangle

    2. 命令选项:用于指定执行方式,包括插入规则、删除规则、添加规则等。常用命令,见表1

常用命令

-P

定义默认策略

-L

查看iptables规则列表

-A

在规则列表最后面添加1条规则

-I

在指定位置插入1条规则

-D

从规则列表中删除1条规则

-F

删除表中所有规则

    3、匹配选项:匹配指定数据包与规则匹配所具有的特征,包括源地址、目的地址、传输协议和端口号。常用匹配选项见表2

常用匹配选项

-p

指定数据包匹配的协议tcp,udp,icmp

-s

指定数据包匹配的源地址

--sport

指定数据包匹配的源端口号

 -d

指定数据包匹配的目的地址

--dport

指定数据包匹配的目标端口号

-j

后面接动作

-i

入站网卡

-o

出站网卡

    4、动作选项:指定当数据包与规则匹配时,应该做什么操作,如接收,丢弃等 

常用匹配选项

ACCEPT

接受数据包

DROP 

丢弃数据包


实际应用:    

iptables针对TCP/IP数据包实施过滤和限制。使用预设的表filter,使用输入INPUT及输出OUTPUT链限制包的流进及流出。以下介绍一些iptables常用调试方法及示例:


1、设置默认策略:当所有规则不匹配时,使用的就是默认策略:

iptables -P INPUT ACCEPT

输入允许

iptables -P OUTPUT ACCEPT

输出允许

2、黑名单:除了设置的黑名单地址不允许过,其他所有的包通过。

iptables -F                            #清除所有规则

iptables -A INPUT -s 192.0.0.128 j DROP  #增加第1条规则:丢弃源地址 192.0.0.128 数据包

iptables -A INPUT -s 192.0.0.65 -j DROP     #增加第2条规则:丢弃源地址 192.0.0.65 数据包

例:

1.         192.0.0.65访问设备,匹配第1条规则,不匹配,接着匹配第2条规则,匹配上,动作丢弃,设备不响应

2.         192.0.0.129访问设备,那么所有规则均不匹配,那么使用默认策略,IPPUT输入默认允许,那么允许数据包通过,访问设备成功

通过示例可以清楚的看到,黑名单中地址被过滤掉,其他地址允许通过,实现黑名单效果

3、白名单:除了设置的白名单地址,禁止其他所有包。

iptables -F #清除所有规则

iptables  -A INPUT -s 172.8.4.205 –j ACCEPT   #增加第1条规则:允许源地址192.0.0.128通过

iptables  -A INPUT -s 172.8.4.199 –j ACCEPT  #增加第2条规则:允许源地址192.168.1.100通过

………………

iptables  -A INPUT -j DROP #增加最后一条规则,丢弃

4ftp 服务设置

u  禁用设备ftp服务

iptables -A INPUT -p TCP --dport 21 -j DROP  #禁止访问IPC21端口,即ftp服务器

u  禁用指定主机访问设备ftp

iptables -A INPUT -s 192.0.0.65 -p TCP --dport 21 -j DROP  #禁止192.0.0.65通过TCP协议访问设备的21端口

5telnet服务设置

u  iptables -A INPUT -p TCP --dport 23 -j DROP #禁止访问IPC23端口,即telnet服务

6、调试

我们常常调试设备时,很多多余的网络信息干扰,此时我们可以通过iptables简单设置几条规则,就可屏蔽其他的多余网络包的干扰。比如要使我们自己一台主机访问设备,只需设置允许自己主机通过,禁用其他所有包,就如白名单设置;再如我们PC主机是192.0.0.65IPC地址时192.0.0.64,我们调试某一WEB接口(80端口)功能,去除其他的一些干扰网络信息,可做如下地址过滤:

#清除所有规则

iptables -F   

#允许192.0.0.65访问设备TCP80端口

iptables -A INPUT -s 192.0.0.65 -p tcp -dport 80 -j ACCEPT

#允许本机访问本机,这条规则要加上,要不然设备内部套接字通信的功能都将失效,比如串口命令等

iptables -A INPUT -s 127.0.0.1 -j ACCEPT

#不允许其他包通过

iptables -A INPUT -j DROP

原创粉丝点击