生活娱乐榜

Iptables防火墙

iptables是Linux系统中的防火墙管理工具,与大多数的Linux软件一样,这个包过滤防火墙可以免费使用,能够取代昂贵的商业防火墙解决方案,完成封包过滤、封包重定向和网络地址转换(NAT)等功能。由于防火墙功能是基于Linux内核实现的,具有稳定和高效率的特点,因此常被广泛地使用到多个场景中。
目录
Iptables防火墙介绍

基本介绍

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

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

虽然netfilter/iptables IP信息包过滤系统被称为单个实体,但它实际上由两个组件netfilter和iptables组成。

netfilter 组件也称为内核空间(kernelspace),是内核的一部分,由一些信息包过滤表组成,这些表包含内核用来控制信息包过滤处理的规则集。

iptables 组件是一种工具,也称为用户空间(userspace),它使插入、修改和除去信息包过滤表中的规则变得容易。除非您正在使用 Red Hat Linux 7.1或更高版本,否则需要下载该工具并安装使用它。

历史版本

与Linux内核各版本集成的防火墙历史版本:

2.0.X内核:ipfwadm

2.2.X内核:ipchains

2.4.X内核:iptables

表链结构

系统优点

netfilter/iptables 的最大优点是它可以配置有状态的防火墙,这是 ipfwadm 和 ipchains 等以前的工具都无法提供的一种重要功能。有状态的防火墙能够指定并记住为发送或接收信息包所建立的连接的状态。防火墙可以从信息包的连接跟踪状态获得该信息。在决定新的信息包过滤时,防火墙所使用的这些状态信息可以增加其效率和速度。这里有四种有效状态,名称分别为 ESTABLISHED、INVALID、NEW和RELATED。

版本发布

2010年10月30日,iptables 1.4.10发布,支持2.6.36内核。

2012年03月28日,iptables 1.4.13 发布Linux防火墙。

2012年12月28日,iptables 1.4.17 发布,Linux防火墙。

产品设计

操作方法

启动及关闭iptables

设置iptables开机启动

chkconfig iptables on

chkconfig iptables off

即时启动iptables

service iptables start

即时关闭iptables

service iptables stop

ubuntu中启动及关闭iptables

在ubuntu中由于不存在 /etc/init.d/iptales文件,所以无法使用service等命令来启动iptables,需要用modprobe命令。

启动iptables

modprobe ip_tables

关闭iptables(关闭命令要比启动复杂)

iptables -F

iptables -X

iptables -Z

iptables -P INPUT ACCEPT

iptables -P OUTPUT ACCEPT

iptables -P FORWARD ACCEPT

modprobe -r ip_tables

依次执行以上命令即可关闭iptables,否则在执行modproble -r ip_tables时将会提示

FATAL: Module ip_tables is in use.

保存和恢复 IPTables 规则

防火墙规则只在计算机处于开启状态时才有效。如果系统被重新引导,这些规则就会自动被清除并重设。要保存规则以便今后载入,请使用以下命令:

/sbin/service iptables save

保存在 /etc/sysconfig/iptables 文件中的规则会在服务启动或重新启动时(包括机器被重新引导时)被应用。

规则示例

下面是适合Web服务器的iptables规则:

IPT="/sbin/iptables"

$IPT --delete-chain

$IPT --flush

$IPT -P INPUT DROP #1

$IPT -P FORWARD DROP#1

$IPT -P OUTPUT DROP #1

$IPT -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT #2

$IPT -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT #3

$IPT -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT #3

$IPT -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT#3

$IPT -A INPUT -p tcp -m tcp --dport 873 -j ACCEPT #3

$IPT -A INPUT -i lo -j ACCEPT #4

$IPT -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT#5

$IPT -A INPUT -p icmp -m icmp --icmp-type 11 -j ACCEPT #5

$IPT -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT #6

$IPT -A OUTPUT -p udp -m udp --dport 53 -j ACCEPT #7

$IPT -A OUTPUT -o lo -j ACCEPT #4

$IPT -A OUTPUT -p tcp -m tcp --dport 80 -j ACCEPT #8

$IPT -A OUTPUT -p tcp -m tcp --dport 25 -j ACCEPT #9

$IPT -A OUTPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT#10

$IPT -A OUTPUT -p icmp -m icmp --icmp-type 11 -j ACCEPT #10

service iptables save

service iptables restart

存为脚本iptables. sh,执行sh iptables. sh自动配置防火墙。

解释:

#1、设置INPUT,FORWARD,OUTPUT链默认target为DROP,也就是外部与服务器不能通信。

#2、设置当连接状态为RELATED和ESTABLISHED时,允许数据进入服务器。

#3、设置外部客户端连接服务器端口80,22,21,873。

#4、允许内部数据循回。

#5、允许外部ping服务器。

#6、设置状态为RELATED和ESTABLISHED的数据可以从服务器发送到外部。

#7、允许服务器使用外部dns解析域名。

#8、设置服务器连接外部服务器端口80。

#9、允许服务器发送邮件。

#10、允许从服务器ping外部。

iptables保存:iptables-save

iptables还原:iptables-restore

特色功能

相关应用

iptables模块编译及应用

相信很多人都会用iptables,我也一直用,并且天天用.特别是看完platinum的>介绍后,觉得有必要深入了解一下它的拓展功能.于是立刻下载,先查看一下它的说明,其功能很是令人感觉很兴奋,例如:comment(备注匹配),string(字符串匹配,可以用做内容过滤),iprang(p2p(点对点匹配),connlimit(同时连接个数匹配),Nth(第n个包匹配),geoip(根据国家地区匹配).quota(配额匹配),还有很多......之后编译,几经测试,在rh7.3 kernel2.4.18-3和rh9.0 kernel2.4.20-8下均成功实现添加扩展功能.以下是介绍其部分功能,及编译方法.环境rh9.0 kernel2.4.20-8. root身份.

一,准备原码.

⒈内核原码:为了减少复杂性,不编译所有内核和模块,建议找一个跟当前版本一样的内核原码,推荐安装时光盘的

a. [root@kindgeorge] uname -r (查看当前版本)

⒉4.20-8

可以cd /usr/src 查看是否有这个目录2.4.20-8

b. 或者[root@kindgeorge]rpm -qa|grep kernel

kernel-source-2.4.20-8 如果有这个说明已安装了.

如果没有安装,可以在RH第二张光盘中拷贝过来或安装 rpm -ivh kernel-source-2.4.18-3.i386.rpm. 安装后会在/usr/src/出现linux-2.4连接和linux-2.4.20-8目录.

二.安装说明

(一).处理内核源码.

⒈ [root@kindgeorge src]# cd /usr/src/linux-2.4

⒉ [root@kindgeorgelinux-2.4]# vi Makefile,

VERSION = 2

PATCHLEVEL = 4

SUBLEVEL = 20

EXTRAVERSION = -8custom

将“EXTRAVERSION = -8custom”改为“EXTRAVERSION = -8”

即:

VERSION = 2

PATCHLEVEL = 4

SUBLEVEL = 20

EXTRAVERSION = -8

为何要修改呢?因为不同版本的内容是不可以使用的,当不修改时,则变成这个版本(2.4.20-8custom)了,不同时是这样出错的:

/lib/modules/2.4.20-8/kernel/net/ipv4/netfilter/ipt_iprange.o: kernel-module version mismatch(版本错误)

/lib/modules/2.4.20-8/kernel/net/ipv4/netfilter/ipt_iprange.o was compiled for kernel version 2.4.20-8custom

while this kernel is version 2.4.20-8.

/lib/modules/2.4.20-8/kernel/net/ipv4/netfilter/ipt_iprange.o: insmod /lib/modules/2.4.20-8/kernel/net/ipv4/netfilter/ipt_iprange.o failed

/lib/modules/2.4.20-8/kernel/net/ipv4/netfilter/ipt_iprange.o: insmod ipt_iprange failed

⒊ [root@kindgeorgelinux-2.4]# make mrproper

⒋ [root@kindgeorgelinux-2.4]# make oldconfig

'make oldconfig' - 采用以前的 .config 文件 (编译时十分有用)

技巧:在make menuconfig时,我们面对众多的选项常常不知道该如何选择,此时可以把安装时的配置文件copy到/usr/src/linux-2.4中:cp /boot/config-2.4.* /usr/src/linux-2.4/.config,再用make menuconfig编译,它会读取.config中原来的配置信息.

(二).给netfilter打补丁

解开tar xjvf patch-o-matic-ng-20050331.包后,进入该目录,就会发现有很多目录,其实每个目录对应一个模块.

我们可以这样来选择,根据不同贮仓库submitted|pending|base|extra,例如:

KERNEL_DIR=/usr/src/linux-2.4 IPTABLES_DIR=/usr/src/iptables-1.3.1 ./runme base .

或:KERNEL_DIR=/usr/src/linux-2.4 IPTABLES_DIR=/usr/src/iptables-1.3.1 ./runme extra

执行后,会测试是否已经应用和提示你是否应用该模块,但这样会遍历所有模块,有很多是用不着的,并且可能和系统版本有冲突,如果不管三七二十一全部选择的话,一般都会在编译和使用时出错.所以推荐用cat /模块目录名/info 和cat /模块目录名/help 看过后,认为适合自己,才选择.

我是针对在上面看过后,有目的的一个一个的应用的,这样做:

KERNEL_DIR=/usr/src/linux-2.4 IPTABLES_DIR=/usr/src/iptables-1.3.1 ./runme string

执行后,会测试是否已经应用和提示你是否应用该模块,按"y"应用.然后继续下一个

KERNEL_DIR=/usr/src/linux-2.4 IPTABLES_DIR=/usr/src/iptables-1.3.1 ./runme comment

KERNEL_DIR=/usr/src/linux-2.4 IPTABLES_DIR=/usr/src/iptables-1.3.1 ./runme connlimit

KERNEL_DIR=/usr/src/linux-2.4 IPTABLES_DIR=/usr/src/iptables-1.3.1 ./runme time

KERNEL_DIR=/usr/src/linux-2.4 IPTABLES_DIR=/usr/src/iptables-1.3.1 ./runme iprange

KERNEL_DIR=/usr/src/linux-2.4 IPTABLES_DIR=/usr/src/iptables-1.3.1 ./runme geoip

KERNEL_DIR=/usr/src/linux-2.4 IPTABLES_DIR=/usr/src/iptables-1.3.1 ./runme nth

KERNEL_DIR=/usr/src/linux-2.4 IPTABLES_DIR=/usr/src/iptables-1.3.1 ./runme ipp2p

KERNEL_DIR=/usr/src/linux-2.4 IPTABLES_DIR=/usr/src/iptables-1.3.1 ./runme quota

上面全部完成后,

cd /usr/src/linux-2.4

make menuconfig,确认[*] Prompt for development and/or incomplete code/drivers要选中

然后进入Networking options

再进入IP:Netfilter Configuration,会看到增加很多模块,每个新增的后面都会出现"NEW",把其想要的选中为模块"M"

保存、退出,至此,给netfilter打补丁工作完成

(三).编译netfilter模块

⒈这里只需要编译netfilter,不需要编译整个内核和模块.这里我只需要ipv4的,ipv6我还没用到,所以不管了

cd /usr/src/linux-2.4

make dep

make modules SUBDIRS=net/ipv4/netfilter

⒉建立一个新目录备份原来模块,以防万一:

mkdir /usr/src/netfilter

cp /lib/modules/2.4.20-8/kernel/net/ipv4/netfilter/*.o /usr/src/netfilter/

⒊应用新的模块

cp -f /usr/src/linux-2.4/net/ipv4/netfilter/*.o /lib/modules/2.4.20-8/kernel/net/ipv4/netfilter/

⒋更新你的modules.dep

depmod-a

当出现这个时,可以不用理会,因为ipchains,ipfwadm模块都没用,也可以把出错的删除.

depmod: *** Unresolved symbols in /lib/modules/2.4.20-8/kernel/net/ipv4/netfilter/ipchains_core.o

depmod: *** Unresolved symbols in /lib/modules/2.4.20-8/kernel/net/ipv4/netfilter/ipfwadm_core.o

(四).编译安装新的iptables

解压后有目录iptables-1.3.1

cd /usr/src/iptables-1.3.1

export KERNEL_DIR=/usr/src/linux-2.4

export IPTABLES_DIR=/usr/src/iptables-1.3.1

make BINDIR=/sbin LIBDIR=/lib MANDIR=/usr/share/man install

三.安装完成,测试及应用

1.内容过滤

iptables -I FORWARD -m string --string "360" -j DROP

iptables -I FORWARD -s 192.168.3.159 -m string --string" -j DROP

iptables -I FORWARD -d 192.168.3.0/24 -m string --string "宽频影院" -j DROP

iptables -I FORWARD -s 192.168.3.0/24 -m string --string "色情" -j DROP

iptables -I FORWARD -p tcp --sport 80 -m string --string "广告" -j DROP

⒉备注应用

iptables -I FORWARD -s 192.168.3.159 -p tcp --dport 80 -j DROP -m comment --comment "the bad guy can not online"

iptables -I FORWARD -s 192.168.3.159 -m string --string " -j DROP -m comment --comment "denny go to

⒊并发连接应用

模块 connlimit 作用:连接限制

--connlimit-above n 限制为多少个

--connlimit-mask n 这组主机的掩码,默认是connlimit-mask 32,即每ip.

这个主要可以限制内网用户的网络使用,对服务器而言则可以限制每个ip发起的连接数...比较实用

例如:只允许每个ip同时5个80端口转发,超过的丢弃:

iptables -I FORWARD -p tcp --syn --dport 80 -m connlimit --connlimit-above 5 -j DROP

例如:只允许每组ip同时10个80端口转发:

iptables -I FORWARD -p tcp --syn --dport 80 -m connlimit --connlimit-above 10 --connlimit-mask 24 -j DROP

例如:为了防止DOS太多连接进来,那么可以允许最多15个初始连接,超过的丢弃.

/sbin/iptables -A INPUT -s 192.186.1.0/24 -p tcp --syn -m connlimit --connlimit-above 15 -j DROP

/sbin/iptables -A INPUT -s 192.186.1.0/24 -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT

⒋ip范围应用

iptables -A FORWARD -m iprange --src-range 192.168.1.5-192.168.1.124 -j ACCEPT

⒌每隔N个匹配

iptables -t mangle -A PREROUTING -m nth --every 10 -j DROP

⒍封杀BT类P2P软件

iptables -A FORWARD -m ipp2p --edk--kazaa --bit -j DROP

iptables -A FORWARD -p tcp -m ipp2p --ares -j DROP

iptables -A FORWARD -p udp -m ipp2p --kazaa -j DROP

⒎配额匹配

iptables -I FORWARD -s 192.168.3.159 -p tcp --dport 80 -m quota --quota 500 -j DROP

iptables -I FORWARD -s 192.168.3.159 -p tcp --dport 80 -m quota --quota 500 -j ACCEPT

以上均测试通过,只有geoip的geoipdb.bin没下载到,所以没测试

在此仅为抛个砖头,更多的应用,要根据自己的需要来组合各个规则和模块了.

相关命令

用iptables -ADC 来指定链的规则,-A添加 -D删除 -C 修改

iptables - [RI] chain rule num rule-specification[option]

用iptables - RI 通过规则的顺序指定

iptables -D chain rule num[option]

删除指定规则

iptables -[LFZ] [chain][option]

用iptables -LFZ 链名 [选项]

iptables -[NX] chain

用 -NX 指定链

iptables -P chain target[options]

指定链的默认目标

iptables -E old-chain-name new-chain-name

-E 旧的链名 新的链名

用新的链名取代旧的链名

更多榜中榜推荐
十大减脂记录打卡小工具 做好记录实时掌握减脂进度
减脂最怕“凭感觉”,感觉没瘦就焦虑,感觉吃不多却热量超标。真正有效的减脂,需要把体重、围度、饮食、运动等数据记录下来,用真实反馈代替猜测。从智能体脂秤到厨房秤,从打卡App到软尺和体脂钳,从拍照对比到手工记录表,这些工具成本不高,却能让你清楚看到自己的变化,及时调整计划,不再盲目努力。本榜盘点十个减脂记录打卡小工具,帮你把减脂这件事变得可量化、可追踪、可持续。下面跟着小编一起来看看详细名单吧!
产品经理出身的十大互联网大佬 中国顶级互联网产品经理有哪些[2026]
中国互联网十大产品经理名单如下:张小龙、俞军、张一鸣、周鸿祎、王兴、黄峥、雷军、程维、庄辰超、周源,下面请看榜单详细内容。
十大好用的报表软件 做报表用什么软件好 主流报表工具推荐[2026]
十大报表软件名单如下:FineReport、Tableau、Power BI、山海鲸报表、VeryReport、Crystal Reports、Zoho Analytics、BIRT、Pentaho、JasperReport,下面请看榜单详细内容。
十大好用的文件加密软件 文件加密用什么软件比较好[2026]
十大文件加密软件名单如下:VeraCrypt、AxCrypt、Cryptomator、Boxcryptor、7-zip、BitLocker、FileVault 2、NordLocker、Folder Lock、Encrypto,下面请看榜单详细内容。
十大好用的游戏录屏软件 录制游戏视频用什么软件好[2026]
十大游戏录像软件名单如下:OBS Studio、Bandicam、NVIDIA ShadowPlay、Xbox Game Bar、AMD relive、Streamlabs Desktop、XSplit Gamecaster、ScreenFlow、Action、Camtasia Studio,下面请看榜单详细内容。
十大好用的双机热备软件推荐 服务器双机热备软件哪个好[2026]
十大双机热备软件名单如下:Windows Server Failover Cluster、Veritas InfoScale Availability、Red Hat High-Availability Add-On、RoseMirrorHA、HeartBeat RoseHA、Keepalived、NewStart HA、pacemaker、LifeKeeper、pluswell HA Mirror,下面请看榜单详细内容。
十大好用的bi数据分析软件 主流的BI数据分析工具推荐[2026]
十大bi数据分析软件名单如下:Tableau、Power BI、Qlik、Sisense、Looker、FineBI、DataEase、DataFocus、Quick BI、QuickSight,下面请看榜单详细内容。
十大好用的影视特效制作软件 做特效视频用什么软件比较好(2026)
十大特效制作软件名单如下:Houdini、Maya、Nuke、Blender、DaVinci Resolve、Adobe After Effects、ZBrush、Cinema 4D、Unreal Engine、3DS MAX,下面请看榜单详细内容。
国内十大好用的ai图片生成工具 国产主流AI文生图软件推荐(2026)
国内十大AI图片生成软件名单如下:即梦AI、LibLib AI、通义万相、WHEE、腾讯混元生图、文心一格、智谱CogView、可图Kolors、秒画SenseMirage、豆包,下面请看榜单详细内容。
十大好用的python编程软件 初学Python需要安装哪些软件[2026]
十大python软件名单如下:Anaconda、Jupyter Notebook、PyCharm、Visual Studio Code、Sublime Text、Spyder、Vim、Notepad++、Atom、IDLE,下面请看榜单详细内容。
十大好用的机器人编程软件 机器人编程用什么软件好[2026]
十大机器人编程软件名单如下:RobotStudio、RoboGuide、SimPro、ROBCAD、MotoSim EG-VRC、RobotMaster、Robomove、Robot Art、RobotWorks、DELMIA,下面请看榜单详细内容。
十大好用的知识图谱软件推荐 制作知识图谱用什么软件好(2026)
十大知识图谱软件名单如下:Neo4j、GraphRAG、Obsidian、Stardog、GraphDB、HugeGraph、Protégé、Gephi、XMIND、PicDoc,下面请看榜单详细内容。
十大课程录制软件 录微课用什么软件 教师录课软件推荐[2026]
十大录课软件名单如下:Camtasia Studio、OBS Studio、Bandicam、芦笋录屏、迅捷屏幕录像工具、EV录屏、Captura、Ocam、ShareX、video321,下面请看榜单详细内容。
十大好用的论文绘图软件 论文画图一般用什么工具(2026)
十大论文画图软件名单如下:Graphpad Prism、Origin、Adobe Illustrator、ggplot2、Matplotlib、TikZ、SigmaPlot、ParaView、Matlab、ChemDraw,下面请看榜单详细内容。
10类常见的工业软件盘点 常用工业软件分类名称大全[2026]
十大常用工业软件名单如下:CAD软件、PLM软件、ERP软件、EDA软件、CAE软件、MES软件、CRM软件、SCM软件、CAM软件、EAM系统,下面请看榜单详细内容。
十大好用的压力测试软件 压力测试常用工具有哪些(2026)
十大压力测试软件名单如下:Apache JMeter、LoadRunner、Grafana k6、Gatling、Tricentis NeoLoad、Python Locust、WebLOAD、kylinPET、Artillery、Apache Bench,下面请看榜单详细内容。
相关分类
  • win10激活工具
  • 防蹭网软件
  • 比价软件
  • 短视频制作软件
  • 科研软件
  • 驱动软件
  • 内存测试软件
  • 显示器测试软件
  • 测量软件
  • 同步软件
  • 地图制作软件
  • 计算器软件
  • AI修图软件
  • 软件测试工具
  • 数据可视化工具软件
  • u盘修复软件
  • 照片恢复软件
  • 网页制作软件
  • 笔记软件
  • 拆单软件
  • 便签软件
  • 热门文章
  • 十大数控仿真软件
  • 十大ai聊天软件
  • 十大图形化编程软件
  • 十大验机软件
  • 十大方言翻译软件
  • 十大上位机软件
  • 十大平板画画软件
  • 十大虚拟视频软件
  • 十大系统还原软件
  • 十大ai办公软件
  • 十大AI写真软件
  • 十大标书制作软件
  • 十大cpu测试软件
  • 十大AI编程软件
  • 十大写诗软件
  • 热门词条
  • 1
    Yandex浏览器
  • 2
    QQ
  • 3
    用友ERP-U8生产制造管理软件
  • 4
    通义千问
  • 5
    喜马拉雅
  • 6
    有道翻译官
  • 7
    有道翻译
  • 8
    作业帮
  • 9
    Kimi
  • 10
    深度求索DeepSeek
  • 11
    钉钉
  • 12
    王兴
  • 13
    Microsoft Edge浏览器
  • 14
    张一鸣
  • 15
    卡巴斯基免费版
  • 16
    SAP S/4HANA Cloud
  • 17
    ChatGPT
  • 18
    雷军
  • 19
    得物POIZON
  • 20
    豆包