千家信息网

iptables学习总结

发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,一、iptables 基础1、容器:包含或者说属于的关系2、Netfilter/iptables是表的容器,iptables包含的各个表(filter,NAT,MANGLE,RAW)3、iptable
千家信息网最后更新 2025年12月01日iptables学习总结

一、iptables 基础

1、容器:包含或者说属于的关系

2、Netfilter/iptables是表的容器,iptables包含的各个表

(filter,NAT,MANGLE,RAW)

3、iptables的表tables又是链的容器

链chains:INPUT,OUTPUT,FORWARD,PREROUTING,POSTROUTING

4、链chains是规则容器:

5、规则Policy:一条条过滤的语句。

二、查看系统内核防火墙功能模块加载情况

lsmod |egrep "nat|filter"

[root@server_02 ~]# lsmod |egrep "nat|filter"nf_nat_ftp              3507  0 nf_conntrack_ftp       12913  1 nf_nat_ftpiptable_nat             6158  1 nf_nat                 22759  2 nf_nat_ftp,iptable_natnf_conntrack_ipv4       9506  3 iptable_nat,nf_natnf_conntrack           79758  6 xt_state,nf_nat_ftp,nf_conntrack_ftp,iptable_nat,nf_nat,nf_conntrack_ipv4iptable_filter          2793  0 ip_tables              17831  2 iptable_nat,iptable_filter

如果没有,可以通过以下命令加载相关模块

modprobe ip_tables

modprobe iptable_filter

modprobe iptable_nat

modprobe ip_conntrack

modprobe ip_conntrack_ftp

modprobe ip_nat_ftp

modprobe ipt_state

三、iptables使用

iptables -F //清除所有规则,不会处理默认的规则。

iptables -X //删除用户自定义的链。

iptables -Z //链的记数器清零。

(2)禁止掉当前主机SSH功能,这里ssh端口用的是52113。

[root@ipt ~]# iptables -t filter -A INPUT -p tcp --dport 52113 -j DROP

命令语法:

Usage:

iptables -t [table] -[AD] chain rule-specification [options]

具体命令示例

iptables -A INPUT -p tcp --dport 52113 -j DROP

iptables -t filter -A INPUT -p tcp --dport 52113 -j DROP

说明

1.iptables默认用的就是filter表,因此,以上两条命令等价。

2. 其中的INPUT DROP要大写。

3. --jump -j target

target for rule (may load target extension)

基本的处理行为:ACCEPT(接受)、DROP(丢弃)、REJECT(拒绝)

比较:DROP好于REJECT

(3)显示filter表过滤规则的序号

[root@ipt ~]# iptables -L -n --line-numbers

Chain INPUT (policy ACCEPT)

num target prot opt source destination

1 DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80

Chain FORWARD (policy ACCEPT)

num target prot opt source destination

Chain OUTPUT (policy ACCEPT)

num target prot opt source destination

[root@ipt ~]# iptables -t filter -D INPUT 1

根据源地址封:

[root@ipt ~]# iptables -t filter -A INPUT -i eth0 -s 10.0.0.104 -j DROP

iptables -t filter -A INPUT -i eth0 ! -s 10.0.0.104 -j DROP

iptables -t filter -I INPUT -p icmp --icmp-type 8 -i eth0 ! -s 10.0.0.0/24 -j DROP

[root@ipt ~]# iptables -t filter -I INPUT -p icmp --icmp-type 8 -i eth0 -s 10.0.0.0/24 -j DROP

封掉3306端口

iptables -A INPUT -p tcp --dport 3306 -j DROP

匹配指定协议外的所有协议

iptables -A INPUT -p ! tcp

匹配主机源IP

iptables -A INPUT -s 10.0.0.14

iptables -A INPUT -s ! 10.0.0.14

匹配网段

iptables -A INPUT -s 10.0.0.0/24

iptables -A INPUT -s ! 10.0.0.0/24

匹配单一端口

iptables -A INPUT -p tcp --sport 53

iptables -A INPUT -p udp --dport 53

匹配指定端口之外的端口

iptables -A INPUT -p tcp --dport ! 22

iptables -I INPUT -p tcp ! --dport 22 -s 10.0.0.123 -j DROP

匹配单一端口

iptables -A INPUT -p tcp --sport 53

iptables -A INPUT -p udp --dport 53

匹配指定端口之外的端口

iptables -A INPUT -p tcp --dport ! 22

iptables -I INPUT -p tcp ! --dport 22 -s 10.0.0.123 -j DROP

匹配端口范围:

iptables -I INPUT -p tcp --dport 52000:53000 -j DROP //端口范围52000-53000

iptables -A INPUT -p tcp --sport 22:80 //端口范围22-80

iptables -I INPUT -p tcp --dport 21,22,23,24 -j ACCEPT===》错误语法

iptables -I INPUT -p tcp -m multiport --dport 21,22,23,24 -j ACCEPT===》正确写法

iptables -I INPUT -p tcp --dport 3306:8809 -j ACCEPT

iptables -I INPUT -p tcp --dport 18:80 -j DROP

匹配ICMP类型

iptables -A INPUT -p icmp --icmp-type 8

例:iptables -A INPUT -p icmp --icmp-type 8 -j DROP

iptables -A INPUT -p icmp -m icmp --icmp-type any -j ACCEPT

匹配指定的网络接口

iptables -A INPUT -i eth0

iptables -A FORWARD -o eth0

记忆方法:

--in-interface -i [!] input name[+]

network interface name ([+] for wildcard)

--out-interface -o [!] output name[+]

network interface name ([+] for wildcard)

匹配网络状态

-m state --state

NEW:已经或将启动新的连接

ESTABLISHED:已建立的连接

RELATED:正在启动新连接

INVALID:非法或无法识别的

FTP服务是特殊的,需要配状态连接。

7.允许关联的状态包通过(web服务不要使用FTP服务)

#others RELATED ftp协议

#允许关联的状态包

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

#___________________________ ipconfig conf end _______________________________

比喻:看电影出去WC或者接个电话,回来也得允许进去。

-m limit

--limit n/{second/minute/hour}:指定时间内的请求速率"n"为速率,后面为时间分别为:秒、分、时

--limit-burst [n]:在同一时间内允许通过的请求"n"为数字,不指定默认为5

fg:本机地址:172.16.14.1,允许172.16.0.0/16网络ping本机,但限制每分钟请求不能超过20,每次并发不能超过6个

iptables -A INPUT -s 172.16.0.0/16 -d 172.16.14.1 -p icmp --icmp-type 8 -m limit --limit 20/min --limit-burst 6 -j ACCEPT

iptables -A OUTPUT -s 172.16.14.1 -d 172.16.0.0/16 -p icmp --icmp-type 0 -j ACCEPT

配置一个企业防火墙规则示例

[root@ipt ~]# iptables -F

[root@ipt ~]# iptables -X

[root@ipt ~]# iptables -Z

[root@ipt ~]# iptables -A INPUT -p tcp --dport 52113 -s 10.0.0.0/24 -j ACCEPT

[root@ipt ~]# iptables -A INPUT -i lo -j ACCEPT

[root@ipt ~]# iptables -A INPUT -o lo -j ACCEPT

[root@ipt ~]# iptables -A OUTPUT -o lo -j ACCEPT

允许合法的进入:

iptables -A INPUT -s 124.43.62.96/27 -p all -j ACCEPT

iptables -A INPUT -s 192.168.1.0/24 -p all -j ACCEPT

iptables -A INPUT -s 10.0.0.0/24 -p all -j ACCEPT

iptables -A INPUT -s 203.83.24.0/24 -p all -j ACCEPT

iptables -A INPUT -s 201.82.34.0/24 -p all -j ACCEPT

iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT

#others RELATED ftp协议

#允许关联的状态包

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables禁ping

iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT

#others RELATED ftp协议

#允许关联的状态包

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

修改链表默认策略:

iptables -P OUTPUT ACCEPT

iptables -P FORWARD DROP

iptables -A INPUT -s 124.43.62.96/27 -p all -j ACCEP

iptables -A INPUT -s 192.168.1.0/24 -p all -j ACCEPT

iptables -A INPUT -s 10.0.0.0/24 -p all -j ACCEPT

iptables -A INPUT -s 203.83.24.0/24 -p all -j ACCEPT

iptables -A INPUT -s 201.82.34.0/24 -p all -j ACCEPT

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

iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

企业iptables面试题:自定义链处理syn***

iptables -N syn-flood

iptables -A INPUT -i eth0 -syn -j syn-flood

iptables -A syn-flood -m limit -limit 5000/s -limit-burst 200 -j RETURN

iptables -A syn-flood -j DROP

保存iptables的配置

iptables-save >/etc/sysconfig/iptables

局域网共享的两条命令方法:

方法1:适合于有固定外网地址的:

iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to-source 10.0.0.7

(1)-s 192.168.1.0/24 办公室或IDC内网网段。

(2)-o eth0 为网关的外网卡接口。

(3)-j SNAT --to-source 10.0.0.19 是网关外网卡IP地址。

方法2:适合变化外网地址(ADSL):

iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE 伪装源地址

iptables的生产常用场景:

1)实现服务器本身防火墙功能,使用filter表。

2)实现局域网上网网关,使用nat表,网关上也可以同时用filter表做防火墙。

3)实现NAT功能,如:由外部IP映射到内部服务器IP(包括端口),使用nat表。

端口映射配置示例:
iptables -t nat -A PREROUTING -d 10.0.0.7 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.8:9000


7.映射多个外网IP上网
iptables -t nat -A POSTROUTING -s 10.0.0.0/255.255.240.0 -o eth0 -j SNAT --to-source 124.42.60.11-124.42.60.16
iptables -t nat -A POSTROUTING -s 172.16.1.0/255.255.255.0 -o eth0 -j SNAT --to-source 124.42.60.103-124.42.60.106



端口 地址 状态 规则 命令 服务 功能 容器 方法 防火墙 关联 防火 示例 网关 网络 范围 处理 配置 主机 企业 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 试述软件开发工具的性能指标 中国公开数据库 和记山东网络技术有限公司 南京证券网络安全负责人待遇 公务员网络安全和信息化的区别 对象式访问的数据库 国外免费学位论文全文数据库 驻马店软件开发厂家价格 东莞旅游软件开发 数据库中平均成绩怎么表示 网络安全高级画 互联网黑科技vlog 数据库parentld 少年三国怎么删除服务器人物 互联网和科技成功率对比 嵌入式软件开发术语 手机远程访问公司云服务器 MMC数据库什么时候成立的 山西hp服务器维修调试费用 数据库几种常见索引 电脑代理服务器自动开启怎么办 计算机网络技术的大趋势 关于数据库系统的不正确叙述 网络安全技术四大类 上海专业软件开发服务价格优惠 linux压缩数据库文件 上网提示网络安全证书已过期 数据库添加记录应对措施 学生网络安全宣传图片 如何制作网络安全手抄报图片
0