千家信息网

iptables上课内容

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,iptables全称Packets Filter Firewall; iptables/netfilter:包过滤型防火墙;带状态检测的包过滤型防火墙;连接追踪(connection tracking
千家信息网最后更新 2026年11月02日iptables上课内容

iptables


全称Packets Filter Firewall; iptables/netfilter:包过滤型防火墙;带状态检测的包过滤型防火墙;连接追踪(connection tracking);

Firewall:隔离工具;工作于主机或网络的边缘,对经由的报文根据预先定义的规则(识别条件)进行检测,对于能够被规则匹配到的报文实行某预定义的处理机制的一套组件;
硬件防火墙:在硬件级别能部分防火墙,另一部分功能基于软件实现;
软件防火墙:应用软件处理逻辑运行通用硬件实现的防火墙;

主机防火墙:服务范围为当前主机;
网络防火墙:服务范围为局域网;

获取帮助:
CentOS 7:man iptables-extensions
CentOS 6:man iptables

iptables/netfilter:软件实现的主机或网络防火墙;
netfilter:位于内核中tcp/ip协议栈上的一个framework;5个钩子函数;
iptables:位于用户空间的命令行程序,用于生成规则送往内核中的netfilter之上;
hook function钩子函数:
prerouting
input
forward
output
postrouting
chain链:
PREROUTING
INPUT
FORWARD
OUTPUT
POSTROUTING
四表
filter:过滤,防火墙;
nat:network address translation;用于修改报文的源地址或目标地址,甚至是端口;
mangle:拆解报文,做出修改,并重新封装起来;
raw:关闭nat表上启用的连接追踪机制;
优先级次序(由高而低):
raw --> mangle --> nat --> filter

4个表中,每个表多对应的链分别为(功能<-->钩子):
raw:PREROUTING,OUTPUT
mangle:PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING
nat:PREROUTING,INPUT,OUTPUT,POSTRUTING
filter:INPUT,FORWARD,OUTPUT

报文流向:
到本机某进程的报文:PREROUTING --> INPUT
由本转发的报文:PREROUTING --> FORWARD --> POSTROUTING
由本某进程发出的:OUTPUT --> POSTROUTING

规则的组成的部分:
匹配条件:
网络层首部属性值;
传输层首部属性值;
附加的条件;
处理动作:

TCP/IP协议栈:
数据链接层:物理到物理设备之间的通信;(MAC,Media Access Control)
网络层:源主机到目标主机之间的通信;
传输层:进程到进程之间的通信;

CentOS 5/6:iptables命令编写规则;
CentOS 7:firewalld;
systemctl disable firewalld.service

iptables命令:
规则:根据指定的匹配条件来尝试匹配每个流经此处的报文,一旦匹配成功,就由规则后面指明的处理动作进行处理;
匹配条件:
基本匹配条件:简单检查IP、TCP、UDP等报文的某属性进行匹配的
扩展匹配条件:需要借助于扩展模块进行的匹配条件指定即为扩展匹配;
处理动作:
基本动作:ACCEPT,DROP, ...
扩展动作:需要借助扩展模块进行的动作;
添加规则之时需要考量的问题:
(1) 报文的流经路径,判断添加规则至哪个链上;
(2) 确定要实现的功能,判断添加规则至哪个表上;
(3) 要指定的匹配条件,以用于匹配目标报文;

规则的编写格式:iptables [-t table] COMMAND chain [-m matchname [per-match-options]] [-j targetname [per-target-options]]
-t table:
默认为filter;其它可用的有raw, mangle, nat;
COMMAND:
链:
-P:policy,策略,定义默认策略; 一般有两种选择,ACCEPT和DROP;
-N:new,新建一条自定义的规则链;被内建链上的规则调用才能生效;[-j chain_name];
-X:drop,删除自定义的引用计数为0的空链;
-F:flush,清空指定的链;
-E:重命名自定义的引用计数和为0的链;
规则:
-A:append,追加,在指定链的尾部追加一条规则;
-I:insert,插入,在指定的位置(省略位置时表示链首)插入一条规则
-D:delelte,删除,删除指定的规则;
-R:replace,替换,将指定的规则替换为新规则;不能仅修改规则中的部分,而是整条规则完全替换;
查看:
-L:list,列出表中的链上的规则;
-n:numeric,以数值格式显示;
-v:verbose,显示详细格式信息;
-vv, -vvv
-x:exactly,计数器的精确结果;
--line-numbers:显示链中的规则编号;

计数器:
规则,以及默认策略有专用的计数器;
记录被当前规则所匹配到的:
(1) 报文个数;
(2) 字节总数;

重置规则计数器:
-Z:zero,置0;

chain:
(1) 内建链;
(2) 自定义链;

匹配条件:
多重条件:逻辑关系为"与";
基本匹配条件:
[!] -s, --source address[/mask][,...]:检查报文中的源IP地址是否符合此处指定的地址或范围;
[!] -d, --destination address[/mask][,...]:检查报文中的目标IP地址是否符合此处指定的地址或范围;
[!] -p, --protocol protocol:
protocol:{tcp|udp|icmp}
[!] -i, --in-interface name:数据报文的流入接口;INPUT, FORWARD and PREROUTING
[!] -o, --out-interface name:数据报文的流出接口; FORWARD, OUTPUT and POSTROUTING
扩展匹配条件
隐式扩展:不用-m选项指出matchname即可使用此match的专用选项进行匹配;
-p tcp:隐含了-m tcp;
[!] --source-port,--sport port[:port]:匹配报文中传输层的源端口;
[!] --destination-port,--dport port[:port]:匹配报文中传输层的目标端口;
[!] --tcp-flags mask comp
SYN,ACK,FIN,RST,URG,PSH;

mask:要检查的标志位列表,以逗号分隔;
comp:必须为1的标志位,余下的出现在mask列表中的标志位则必须为0;

--tcp-flags SYN,ACK,FIN,RST SYN
[!] --syn:
相当于--tcp-flags SYN,ACK,FIN,RST SYN
-p udp:隐含了-m udp:
[!] --source-port,--sport port[:port]:匹配报文中传输层的源端口;
[!] --destination-port,--dport port[:port]:匹配报文中传输层的目标端口;
-p icmp:隐含了-m icmp:
[!] --icmp-type {type[/code]|typename}
8:echo-request
0:echo-reply

显式扩展:必须使用-m选项指出matchname,有的match可能存在专用的选项;


1、multiport扩展
以离散或连续的方式定义多端口匹配条件;

[!] --source-ports,--sports port[,port|,port:port]...:指定多个源端口;
[!] --destination-ports,--dports port[,port|,port:port]...:指定多个目标端口
[!] --ports port[,port|,port:port]...:指定多个端口;

2、iprange扩展
以连续的ip地址范围指明连续的多地址匹配条件;
[!] --src-range from[-to]:源IP地址;
[!] --dst-range from[-to]:目标IP地址;

3、string扩展
对报文中的应用层数据做字符串匹配检测;

[!] --string pattern:要检测字符串模式;
[!] --hex-string pattern:要检测的字符串模式,16进制编码;
--algo {bm|kmp}

4、time扩展
根据报文到达的时间与指定的时间范围进行匹配度检测;

--datestart YYYY[-MM[-DD[Thh[:mm[:ss]]]]]:起始日期时间;
--datestop YYYY[-MM[-DD[Thh[:mm[:ss]]]]]:结束日期时间;
--timestart hh:mm[:ss]
--timestop hh:mm[:ss]
[!] --monthdays day[,day...]
[!] --weekdays day[,day...]

~]# iptables -I INPUT -d 172.16.100.67 -p tcp --dport 23 -m time --timestart 09:00:00 --timestop 18:00:00 --weekdays Tue,Thu,Sat -j ACCEPT

5、connlimit扩展
根据每客户端IP做并发连接数匹配;
--connlimit-upto n:连接数数量小于等于n,此时应该允许;
--connlimit-above n:连接数数量大于n,此时应该拒绝;

~]# iptables -A INPUT -d 172.16.100.67 -p tcp --dport 23 -m connlimit --connlimit-upto 2 -j ACCEPT

6、limit扩展
基于收发报文的速率进行匹配;
--limit rate[/second|/minute|/hour|/day]:平均速率
--limit-burst number:峰值速率

7、state扩展
状态检测;连接追踪机制(conntrack);
INVALID:无法识别的状态;
ESTABLISHED:已建立的连接;
NEW:新连接;
RELATED:相关联的连接;
UNTRACKED:未追踪的连接;

nf_conntrack内核模块;
追踪到的连接:/proc/net/nf_conntrack文件中;
能追踪的最大连接数量定义在:/proc/sys/net/nf_conntrack_max
此值可自行定义,建议必要时调整到足够大;

不同的协议的连接追踪的时长:
/proc/sys/net/netfilter/

[!] --state STATE

如何开放被模式的ftp服务:
(1) 装载追踪ftp协议的模块;
# modprobe nf_conntrack_ftp

(2) 放行命令连接
~] # iptables -A INPUT -d 172.16.100.67 -p tcp -m state --state ESTABLISHED -j ACCEPT
~] # iptables -A INPUT -d 172.16.100.67 -p tcp --dport 21 -m state --state NEW -j ACCEPT

(3) 放行数据连接
~] iptables -A INPUT -d 172.16.100.67 -p tcp -m state --state RELATED -j ACCEPT

处理动作(目标)
-j targetname [per-target-options]
targetname:
ACCEPT:接受;
DROP:丢弃;
REJECT:拒绝;

保存和重载规则:
iptables-save > /PATH/TO/SOME_RULE_FILE
iptables-restore < /PATH/FROM/SOME_RULE_FILE

CentOS 6:
保存规则:
service iptables save
自动保存规则至/etc/sysconfig/iptables文件中;
重载规则:
server iptables restore
从/etc/sysconfig/iptables文件中重载规则;
规则优化:
(1) 可安全放行所有入站及出站,且状态为ESTABLISHED的连接;
(2) 服务于同一类功能的规则,匹配条件严格的放前面,宽松放后面;
(3) 服务于不同类功能的规则,匹配报文可能性较大扩前面,较小放后面;
(4) 设置默认策略;
(a) 最后一条规则设定;
(b) 默认策略设定;


规则 报文 条件 地址 防火墙 防火 目标 端口 动作 处理 检测 主机 范围 传输 功能 数据 网络 服务 命令 时间 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网络科技 上海喔噻互联网科技有限公司 科技互联网龙头 互联网科技公司税收优惠 互联网科技战争 智网互联网科技 百单互联网科技有限公司 亿账通互联网科技 哈尔滨秒房互联网科技有限公司 蓝色互联网科技 北京华百购互联网科技有限公司 受益于互联网科技的高速发展 中国航天科技大学国际工业互联网 成都互联网科技公司工作好不好 佛山市拉法互联网科技有限公司 黑云互联网科技有限公司 从那以后互联网科技有限公司 前海云享互联网科技 每日互联网科技新闻 武汉亿视互联网科技有限公司 亿人帮互联网科技有限公司 智能科技公司是互联网公司吗 北京互联网科技公司 丰台科技园 互联网 新浪科技互联网 苏州大垚互联网科技 郑州华宇互联网科技 联恩商钥互联网科技有限公司 哈尔滨屹滨互联网科技有限公司 广西泛欧互联网科技有限公司
0