榜单搜索

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 旧的链名 新的链名

用新的链名取代旧的链名

Iptables防火墙相关榜单
十大免费防火墙软件 电脑防火墙软件哪个好用 网络防火墙软件推荐
十大防火墙软件名单如下:Comodo防火墙、ClearOS防火墙、PfSense防火墙、ZoneAlarm免费防火墙、IPFire防火墙、OPNsense防火墙、Untangle防火墙、Iptables防火墙、Shorewall防火墙、IPCop防火墙,下面请看榜单详细内容。
更多榜中榜推荐
十大好用的手机克隆APP 一键换机助手排名 手机搬家软件哪个好
十大手机克隆软件名单如下:华为手机克隆、VIVO互传、欢太手机搬家、腾讯换机助手、小米换机、荣耀换机克隆、快牙ZAPYA、QQ同步助手、S换机助手、360安全换机,下面请看榜单详细内容。
十大好用的虚拟光驱软件 虚拟光驱工具有哪些 免费的虚拟光驱软件
十大虚拟光驱软件名单如下:UltraISO软碟通、精灵虚拟光驱、酒精120、gBurner Virtual Drive、VirtualDVD、Virtual CloneDrive、WinMount、软媒魔方、LZZ VirtualDrive、WinCDEmu,下面请看榜单详细内容。
十大好用的硬盘分区工具 硬盘分区软件哪个好 免费的磁盘分区软件
十大硬盘分区软件名单如下:傲梅分区助手、DiskGenius、MiniTool分区向导、易我EaseUS、GParted、Partition Magic、Primo Ramdisk、KDE分区管理器、Gdisk、Fdisk,下面请看榜单详细内容。
十大好用的电脑清理软件 磁盘清理软件哪个好 电脑垃圾清理软件推荐
十大电脑清理软件名单如下:WizTree、Glary Utilities、CCleaner Professional、360清理大师电脑版、Wise Disk Cleaner、金山C盘清理大师、腾讯电脑管家、Geek Uninstaller、360安全卫士、金山毒霸,下面请看榜单详细内容。
十大好用的手机测速软件 wifi测速app哪个好 最准的测网速软件
十大测速软件名单如下:测网速UUSpeed、花瓣测速、Speedtest、安兔兔评测、网络万用表、全球网测、网速管家、泰尔网测、信通测速Speedtest、鲁大师,下面请看榜单详细内容。
十大专业显卡测试软件 显卡测试工具哪个好 显卡性能测试软件推荐
十大显卡测试软件名单如下:FurMark、Unigine Superposition、3D Mark、GPU-Z、Unigine Heaven Benchmark、GeekBench、Fraps、AIDA64、鲁大师、安兔兔评测,下面请看榜单详细内容。
十大数据分析必备软件 数据分析工具排名 好用的大数据分析软件
十大数据分析软件名单如下:SAS系统、Power BI、Tableau、Datawrapper、Zoho Analytics、MongoDB、Matlab、Stata、Minitab、EViews,下面请看榜单详细内容。
十大手机识图软件排行 拍照识图app哪个好用 免费识图搜图软件推荐
十大识图软件名单如下:形色、百度APP、Google Lens、慧眼识图、搜图神器、万能识图、搜狗浏览器、360识图、TinEye、SauceNAO,下面请看榜单详细内容。
什么软件跑分靠谱 跑分软件哪个权威 跑分排行榜前十名
十大跑分软件名单如下:3D Mark、鲁大师、AIDA64、PCMark、FurMark、GPU-Z、GeekBench、CPU-Z、Fritz Chess Benchmark、Prime95,下面请看榜单详细内容。
十大建模软件排行榜 三维建模软件排名 最好用的3d建模软件
十大建模软件名单如下:3DS MAX、Maya、Rhino、ZBrush、SketchUp、Blender、AutoCAD、Creo、SolidWorks、CATIA,下面请看榜单详细内容。
七大分屏软件推荐 手机同屏多窗口软件 手机分屏软件哪个好
七大分屏软件名单如下:VMOS、多任务分屏、SkyOlin Helper、多屏任务插件、牛轧糖平行窗口、XHFW3、XMultiWindow,下面请看榜单详细内容。
九大刷机软件排行 手机刷机软件哪种好 安卓刷机软件哪个好
九大刷机软件名单如下:奇兔刷机、刷机大师、甜椒刷机助手、卓大师刷机专家、线刷宝、爱思助手、兔兔助手、XY苹果助手、手机刷机管家,下面请看榜单详细内容。
十大画图软件排行 绘图软件都有哪些 画画软件用什么好
十大画图软件名单如下:Adobe Illustrator、Photoshop、CorelDRAW、Microsoft Office Visio、SAI、Origin、AutoCAD、几何画板、Painter、3DS MAX,下面请看榜单详细内容。
看图软件哪个好用 看图软件排行榜前十名 看图软件app推荐
十大看图软件名单如下:美图看看、2345看图王、ACDSee、Honeyview、Google Picasa、XNview、光影看图、FastStone Image Viewer、ImageGlass、Irfanview,下面请看榜单详细内容。
十大音频剪辑软件 音频编辑软件有哪些 音乐剪辑软件哪个好用
十大音频剪辑软件名单如下:Adobe Audition、Audacity、GoldWave、Pro Tools、Nuendo、Sound Forge、迅捷音频剪辑软件、闪电音频剪辑软件、FL Studio、AudioDirector,下面请看榜单详细内容。
相关分类
  • win10激活工具
  • 防蹭网软件
  • 比价软件
  • 短视频制作软件
  • 科研软件
  • 驱动软件
  • 内存测试软件
  • 显示器测试软件
  • 测量软件
  • 同步软件
  • 地图制作软件
  • 计算器软件
  • AI修图软件
  • 软件测试工具
  • 数据可视化工具软件
  • u盘修复软件
  • 照片恢复软件
  • 网页制作软件
  • 笔记软件
  • 拆单软件
  • 便签软件
  • 热门文章
  • 十大资料软件
  • 十大手机克隆软件
  • 十大显示器测试软件
  • 十大比价软件
  • 十大同声翻译软件
  • 十大内存测试软件
  • 十大手机cad软件
  • 十大测速软件
  • 十大笔记软件
  • 十大看图软件
  • 十大编程软件
  • 十大同步软件
  • 十大计算器软件
  • 十大测温软件
  • 十大cpu超频软件
  • 热门词条
  • 1
    捷速OCR
  • 2
    迅捷藏文在线翻译
  • 3
    马化腾
  • 4
    维汉翻译官
  • 5
    马云
  • 6
    百度翻译
  • 7
    张一鸣
  • 8
    文字网·上海话翻译器
  • 9
    追求AI手语识别
  • 10
    丁磊
  • 11
    博大意汉词典
  • 12
    欧陆词典
  • 13
    金山词霸
  • 14
    网易公开课
  • 15
    网易有道词典
  • 16
    WPS
  • 17
    狗语翻译器华为应用
  • 18
    旅行翻译官
  • 19
    快吧游戏盒
  • 20
    谷歌翻译