iptables -t nat -vnL是什么命令?
用详细方式列出 nat 表所有链的所有规则,只显示 IP 地址和端口号
iptables -L
粗略列出 filter 表所有链及所有规则
iptables -t nat -vxnL PREROUTING
用详细方式列出 nat 表 PREROUTING 链的所有规则以及详细数字,不反解
iptables -t nat -F PREROUTING
-F: FLASH,清空规则链的(注意每个链的管理权限)
PREROUTING (路由前)
-t nat:显示所有的关卡的信息
iptables -t nat -F 清空nat表的所有链
iptables -t nat -F PREROUTING 清空nat表PREROUTING链
iptables -t nat -vnL | grep SNAT | awk -F : {'print $2'} 得到snat ip
iptables -t nat -D POSTROUTING -o eth1 -j SNAT --to ${snat_ip} 删除所有源地址转换表项
iptables -t nat -A PREROUTING -i %{G_HOST_IF0_0_0} -p tcp --dport %{G_TESTBED_SELENIUM_DPORT} -j DNAT --to %{G_PROD_IP_BR0_0_0}:80 添加源转换表项
iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to ${ip} 添加目的转换表项
iptables -t nat -vnL 察看定义规则的详细信息
./configure --host=arm-linux
arm-linux 代表你安装的cross compiler名,取前半部分,如 arm-gnuabi-linux-gcc 你就舔 arm-gnuabi-linux
./configure 后还可以跟很多参数选项,用于包含和指定依赖库的位置等等。你用 ./configure --help看看就行了。
Ⅲ 如何查看linux iptables dnat转换表项
根据前面的hook函数挂载图我们可以清晰的知道,对于那些需要被本机转发的数据包,注册在NF_IP_PRE_ROUTING点的ip_nat_in ()函数完成对其目的地址转换的操作,注册在NF_IP_POST_ROUTING点的ip_nat_out()函数完成源地址转换任务。如果在编译Linux内核源码时打开了CONFIG_IP_NF_NAT_LOCAL选项,则注册在NF_IP_LOCAL_OUT和NF_IP_LOCAL_IN点的hook函数就会工作,最常见的用法的是用NF_IP_LOCAL_OUT点的ip_nat_local_fn()函数来改变本机发出报文的目的地址。至于注册在NF_IP_LOCAL_IN点的ip_nat_fn()函数一般不会起作用,只是当数据包到达该HOOK点后会例行被调用一下。因为,NAT的所有规则只可能被配置到nat表的PREROUTING、POSTROUTING和OUTPUT三个点
Ⅳ linux运维之iptables的一些操作(参考大神的)
1.安装iptables管理命令
2.加载防火墙的内核模块
3.查看已加载的模块
4.启动防火墙
首先停止firewalld
开启iptables
1.查看防火墙规则
2.清除防火墙规则
3.添加防火墙规则
4.网络连接状态
5.删除某个规则
1.禁止某个端口访问
2.规则解释:
3.禁止除跳板机以外的IP访问
4.匹配端口范围
5. 匹配ICMP类型
6.一些操作
1、封掉10.0.0.7
2、让10.0.0.7和SSH客户端(10.0.0.1)服务器可以Ping,其它的不能Ping
3、封掉3306端口
1.从上往下依次匹配
2.一但匹配上,就不在往下匹配了
3.默认规则,默认的情况,默认规则是放行所有
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
iptables A INPUT -p tcp -m state --dport 22 -j DROP
禁止一个数据包:
tcp协议
访问的端口是22
禁止源地址是10.0.0.7的主机访问22端口
禁止源地址是10.0.0.7的主机访问任何端口
禁止源地址是10.0.0.8的主机访问80端口
禁止除了10.0.0.7以外的地址访问80端口
2条规则冲突,会以谁先谁为准
禁止10.0.0.7访问22和80端口
禁止10.0.0.7访问22到100之间的所有端口
禁止所有主机ping
放行10.0.0.7可以ping
只允许10.0.0.7可以ping
等同于上一条,优化版,只要不是10.0.0.7就不允许ping
优先级:
匹配频次最高的条件放前面
Ⅳ 如何编译linuxiptables
默认应该是安装的啊 rpm -qa|grep iptables 察看一下 如果没装的话到安装盘里找相应的rpm包安装就是了
Ⅵ LInux iptables 屏蔽设置
1.修改SSH配置文件:/etc/ssh/sshd_config #找到Port 22,这里是标识默认使用22端口,修改为:
Port 22
Port 1234
/etc/init.d/sshd restart
#这样SSH端口将同时工作在22、1234上
查看防火墙规则
1、iptables -nvL
2、more /etc/sysconfig/iptables
2.添加防火墙规则
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 1234 -j ACCEPT
/etc/rc.d/init.d/iptables save
/etc/rc.d/init.d/iptables restart
然后使用SSH工具 测试 你所设置的端口是否能正常使用
如果能正常使用返回到第一步,删除原来的22端口,以及修改防火墙配置文件
之所以先设置成两个端口,测试成功后再关闭一个端口,是为了方式在修改的过程中,万一出现掉线、断网、误操作等未知情况时候,还能通过另外一个端口连接上去调试以免发生连接不上的状况。
开启自动启动:chkconfig iptables on
开启不自动启动:chkconfig iptables off
附录:
设定预设规则,INPUT链默认拒绝,OUTPUT链默认接受,FORWARD链默认拒绝
iptables -F #清除预设表filter中的所有规则链的规则
iptables -X #清除预设表filter中使用者自定链中的规则
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
iptables -L -n --line #按行数显示防火墙规则
iptables -D INPUT 1 #删除INPUT表第一条
iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT #来源、目的为127.0.0.1都接受,这条放最后就可以了
1、安装iptables防火墙
如果没有安装iptables需要先安装,CentOS执行:
yum install iptables
Debian/Ubuntu执行:
apt-get install iptables
2、清除已有iptables规则
iptables -F
iptables -X
iptables -Z
3、开放指定的端口
#允许本地回环接口(即运行本机访问本机)
iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
# 允许已建立的或相关连的通行
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#允许所有本机向外的访问
iptables -A OUTPUT -j ACCEPT
# 允许访问22端口
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
#允许访问80端口
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
#允许FTP服务的21和20端口
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -p tcp --dport 20 -j ACCEPT
#如果有其他端口的话,规则也类似,稍微修改上述语句就行
#禁止其他未允许的规则访问
iptables -A INPUT -j REJECT (注意:如果22端口未加入允许规则,SSH链接会直接断开。)
iptables -A FORWARD -j REJECT
4、屏蔽IP
#如果只是想屏蔽IP的话“3、开放指定的端口”可以直接跳过。
#屏蔽单个IP的命令是
iptables -I INPUT -s 123.45.6.7 -j DROP
#封整个段即从123.0.0.1到123.255.255.254的命令
iptables -I INPUT -s 123.0.0.0/8 -j DROP
#封IP段即从123.45.0.1到123.45.255.254的命令
iptables -I INPUT -s 124.45.0.0/16 -j DROP
#封IP段即从123.45.6.1到123.45.6.254的命令是
iptables -I INPUT -s 123.45.6.0/24 -j DROP
5、查看已添加的iptables规则
iptables -L -n
v:显示详细信息,包括每条规则的匹配包数量和匹配字节数
x:在 v 的基础上,禁止自动单位换算(K、M) vps侦探
n:只显示IP地址和端口号,不将ip解析为域名
6、删除已添加的iptables规则
将所有iptables以序号标记显示,执行:
iptables -L -n --line-numbers
比如要删除INPUT里序号为8的规则,执行:
iptables -D INPUT 8
7、iptables的开机启动及规则保存
CentOS上可能会存在安装好iptables后,iptables并不开机自启动,可以执行一下:
chkconfig --level 345 iptables on
开启自动启动:chkconfig iptables on
开启不自动启动:chkconfig iptables off
将其加入开机启动。
CentOS上可以执行:
service iptables save
/etc/rc.d/init.d/iptables save
/etc/rc.d/init.d/iptables restart
保存规则。
另外更需要注意的是Debian/Ubuntu上iptables是不会保存规则的。
需要按如下步骤进行,让网卡关闭是保存iptables规则,启动时加载iptables规则:
创建/etc/network/if-post-down.d/iptables 文件,添加如下内容:
#!/bin/bash
iptables-save > /etc/iptables.rules
执行:chmod +x /etc/network/if-post-down.d/iptables 添加执行权限。
创建/etc/network/if-pre-up.d/iptables 文件,添加如下内容:
#!/bin/bash
iptables-restore < /etc/iptables.rules
执行:chmod +x /etc/network/if-pre-up.d/iptables 添加执行权限。
关于更多的iptables的使用方法可以执行:iptables --help或网上搜索一下iptables参数的说明。
注:每次服务在停止之前会自动将现有的规则保存
在 /etc/sysconfig/iptables 这个文件中去.
Ⅶ iptables详解
netfilter/iptables (简称为iptables)组成Linux平台下的包过滤防火墙,与大多数的Linux软件一样,这个包过滤防火墙是免费的,它可以代替昂贵的商业防火墙解决方案,完成封包过滤、封包重定向和网络地址转换(NAT)等功能。
iptables和netfilter的关系:
这是第一个要说的地方,Iptables和netfilter的关系是一个很容易让人搞不清的问题。很多的知道iptables却不知道 netfilter。其实iptables只是Linux防火墙的管理工具而已,位于/sbin/iptables。真正实现防火墙功能的是 netfilter,它是Linux内核中实现包过滤的内部结构。
规则 (rules)其实就是网络管理员预定义的条件,规则一般的定义为“如果数据包头符合这样的条件,就这样处理这个数据包”。规则存储在内核空间的信息包过滤表中,这些规则分别指定了源地址、目的地址、传输协议(如TCP、UDP、ICMP)和服务类型(如HTTP、FTP和SMTP)等。当数据包与规则匹配时,iptables就根据规则所定义的方法来处理这些数据包,如放行(accept)、拒绝(reject)和丢弃(drop)等。配置防火墙的 主要工作就是添加、修改和删除这些规则。
① 当一个数据包进入网卡时,它首先进入PREROUTING链,内核根据数据包目的IP判断是否需要转送出去。
② 如果数据包就是进入本机的,它就会沿着图向下移动,到达INPUT链。数据包到了INPUT链后,任何进程都会收到它。本机上运行的程序可以发送数据包,这些数据包会经过OUTPUT链,然后到达POSTROUTING链输出。
③ 如果数据包是要转发出去的,且内核允许转发,数据包就会如图所示向右移动,经过FORWARD链,然后到达POSTROUTING链输出。
过程图如下:
Iptables采用“表”和“链”的分层结构。
表 (tables)提供特定的功能,iptables内置了4个表,即filter表、nat表、mangle表和raw表,分别用于实现包过滤,网络地址转换、包重构(修改)和数据跟踪处理。
(1)filter表——三个链:INPUT、FORWARD、OUTPUT
作用:过滤数据包 内核模块:iptables_filter.
(2)Nat表——三个链:PREROUTING、POSTROUTING、OUTPUT
作用:用于网络地址转换(IP、端口) 内核模块:iptable_nat
(3)Mangle表——五个链:PREROUTING、POSTROUTING、INPUT、OUTPUT、FORWARD
作用:修改数据包的服务类型、TTL、并且可以配置路由实现QOS内核模块:iptable_mangle(别看这个表这么麻烦,咱们设置策略时几乎都不会用到它)
(4)Raw表——两个链:OUTPUT、PREROUTING
作用:决定数据包是否被状态跟踪机制处理 内核模块:iptable_raw
Raw——mangle——nat——filter
链 (chains)是数据包传播的路径,每一条链其实就是众多规则中的一个检查清单,每一条链中可以有一 条或数条规则。当一个数据包到达一个链时,iptables就会从链中第一条规则开始检查,看该数据包是否满足规则所定义的条件。如果满足,系统就会根据 该条规则所定义的方法处理该数据包;否则iptables将继续检查下一条规则,如果该数据包不符合链中任一条规则,iptables就会根据该链预先定 义的默认策略来处理数据包。
(1)INPUT——进来的数据包应用此规则链中的策略
(2)OUTPUT——外出的数据包应用此规则链中的策略
(3)FORWARD——转发数据包时应用此规则链中的策略
(4)PREROUTING——对数据包作路由选择前应用此链中的规则
(记住!所有的数据包进来的时侯都先由这个链处理)
(5)POSTROUTING——对数据包作路由选择后应用此链中的规则(所有的数据包出来的时侯都先由这个链处理)
从外界到达防火墙的数据包,先被PREROUTING规则链处理(是否修改数据包地址等),之后会进行路由选择(判断该数据包应该发往何处),如果数据包 的目标主机是防火墙本机(比如说Internet用户访问防火墙主机中的web服务器的数据包),那么内核将其传给INPUT链进行处理(决定是否允许通 过等),通过以后再交给系统上层的应用程序(比如Apache服务器)进行响应。
来自外界的数据包到达防火墙后,首先被PREROUTING规则链处理,之后会进行路由选择,如果数据包的目标地址是其它外部地址(比如局域网用户通过网 关访问QQ站点的数据包),则内核将其传递给FORWARD链进行处理(是否转发或拦截),然后再交给POSTROUTING规则链(是否修改数据包的地 址等)进行处理。
防火墙本机向外部地址发送的数据包(比如在防火墙主机中测试公网DNS服务器时),首先被OUTPUT规则链处理,之后进行路由选择,然后传递给POSTROUTING规则链(是否修改数据包的地址等)进行处理。
iptables-save把规则保存到文件中,再由目录rc.d下的脚本(/etc/rc.d/init.d/iptables)自动装载
使用命令iptables-save来保存规则。一般用
iptables-save > /etc/sysconfig/iptables
生成保存规则的文件 /etc/sysconfig/iptables,
也可以用
service iptables save
它能把规则自动保存在/etc/sysconfig/iptables中。
当计算机启动时,rc.d下的脚本将用命令iptables-restore调用这个文件,从而就自动恢复了规则。
删除INPUT链的第一条规则:
1.拒绝进入防火墙的所有ICMP协议数据包
2.允许防火墙转发除ICMP协议以外的所有数据包
说明:使用“!”可以将条件取反。
3.拒绝转发来自192.168.1.10主机的数据,允许转发来自192.168.0.0/24网段的数据
说明:注意要把拒绝的放在前面不然就不起作用了啊。
4.丢弃从外网接口(eth1)进入防火墙本机的源地址为私网地址的数据包
5.封堵网段(192.168.1.0/24),两小时后解封。
说明:这个策略咱们借助crond计划任务来完成,就再好不过了。
[1] Stopped at now 2 hours
6.只允许管理员从202.13.0.0/16网段使用SSH远程登录防火墙主机。
说明:这个用法比较适合对设备进行远程管理时使用,比如位于分公司中的SQL服务器需要被总公司的管理员管理时。
7.允许本机开放从TCP端口20-1024提供的应用服务。
8.允许转发来自192.168.0.0/24局域网段的DNS解析请求数据包。
9.禁止其他主机ping防火墙主机,但是允许从防火墙上ping其他主机
10.禁止转发来自MAC地址为00:0C:29:27:55:3F的和主机的数据包
说明:iptables中使用“-m 模块关键字”的形式调用显示匹配。咱们这里用“-m mac –mac-source”来表示数据包的源MAC地址。
11.允许防火墙本机对外开放TCP端口20、21、25、110以及被动模式FTP端口1250-1280
说明:这里用“-m multiport –dport”来指定目的端口及范围
12.禁止转发源IP地址为192.168.1.20-192.168.1.99的TCP数据包。
说明:此处用“-m –iprange –src-range”指定IP范围。
13.禁止转发与正常TCP连接无关的非—syn请求数据包。
说明:“-m state”表示数据包的连接状态,“NEW”表示与任何连接无关的,新的嘛!
14.拒绝访问防火墙的新数据包,但允许响应连接或与已有连接相关的数据包
说明:“ESTABLISHED”表示已经响应请求或者已经建立连接的数据包,“RELATED”表示与已建立的连接有相关性的,比如FTP数据连接等。
15.只开放本机的web服务(80)、FTP(20、21、20450-20480),放行外部主机发住服务器其它端口的应答数据包,将其他入站数据包均予以丢弃处理。
Ⅷ 浅谈iptables
iptables是linux系统下用来做防火墙的二进制文件(linux上位于/sbin/iptables,android中位于/system/bin/iptables),底层依赖于内核的netfilter模块,用来完成封包过滤、封包重定向和网络地址转换(NAT)等功能(在android上需要root使用)。
举个例子来简单看看iptables命令的基本用法。
意思是在nat转发表的OUTPUT输出链中增加这样一条规则:倘若OUTPUT输出链拦到了tcp请求,则将其重定向到本地的8123端口。
可以看到iptables中有 表 、 链 和 规则 的概念,那么先通过iptables传输数据包的过程来简单了解下表和链是什么以及他们之间的关系。
可以看到 链 就是对数据包传输路径的一种抽象,一个数据包根据其具体场景以固定的顺序依次经过PREROUTING、INPUT等各个链,在经过各个链时,又有不同的表在监听这个链,而nat、filter等 表 中有包含一系列的 规则 ,当一个数据包到达一个链时,iptables就会从链中第一条规则开始检查,看该数据包是否满足规则所定义的条件。如果满足,系统就会根据该条规则所定义的方法处理该数据包;否则iptables将继续检查下一条规则。
值得注意的是,
至此我们了解了表、链和规则是什么以及他们之间的关系,下面来具体看下 iptables命令的基本用法 。
更多关于各command、parameter的具体含义以及用法可以参考 https://wangchujiang.com/linux-command/c/iptables.html
iptables对网络数据包做过滤或拦截时其维度只能局限于网络数据包收发的ip地址、端口号、网卡、tcp/udp协议,因此可以推测iptables最终是在ip层对网络数据包做的拦截。
那iptables基于netfilter具体是怎么做到在各个链上对数据包做拦截的呢?
/net/ipv4/ip_output.c
/net/ipv4/ip_input.c
/net/ipv4/ip_forward.c
可以看到内核在每一个数据转发的关键节点都调用了NF_HOOK这个宏,来看下NF_HOOK这个宏干了啥
关于NF_HOOK相关具体逻辑可参见 https://sites.google.com/site/ibms/network-security-development/netfilter%E8%AE%BE%E8%AE%A1%E4%B8%8E%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90
Ⅸ linux下查看iptables开放了哪些端口的命令是什么
打开指定端口:/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT #80为指定端口
将更改进行保存:/etc/rc.d/init.d/iptables save
直接在/etc/sysconfig/iptables中增加一行:-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
关闭端口:iptables -A INPUT -p tcp --dport 111 -j DROP
开发不连续端口(包括单个):iptables -A INPUT -p tcp -m multiport --dport 21,20 -j ACCEPT
Ⅹ 怎么给3.4.11的linux内核 添加iptables string模块
(一).处理内核源码.
1. [root@kindgeorge src]# cd /usr/src/linux-2.4
2.
[root@kindgeorge linux-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/moles/2.4.20-8/kernel/net/ipv4/netfilter/ipt_iprange.o:
kernel-mole version mismatch (版本错误)
/lib/moles/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/moles/2.4.20-8/kernel/net/ipv4/netfilter/ipt_iprange.o:
insmod /lib/moles/2.4.20-8/kernel/net/ipv4/netfilter/ipt_iprange.o
failed
/lib/moles/2.4.20-8/kernel/net/ipv4/netfilter/ipt_iprange.o: insmod
ipt_iprange failed
3. [root@kindgeorge linux-2.4]# make mrproper
4.
[root@kindgeorge linux-2.4]# make oldconfig
'make oldconfig' - 采用以前的
.config 文件 (编译时十分有用)
技巧:在make
menuconfig时,我们面对众多的选项常常不知道该如何选择,此时可以把安装时的配置文件到/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.tar.bz2
包后,进入该目录,就会发现有很多目录,其实每个目录对应一个模块.
我们可以这样来选择,根据不同贮仓库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模块
1.这里只需要编译netfilter,不需要编译整个内核和模块.这里我只需要ipv4的,ipv6我还没用到,所以不管了
cd
/usr/src/linux-2.4
make dep
make moles
SUBDIRS=net/ipv4/netfilter
2.建立一个新目录备份原来模块,以防万一:
mkdir
/usr/src/netfilter
cp /lib/moles/2.4.20-8/kernel/net/ipv4/netfilter/*.o
/usr/src/netfilter/
3.应用新的模块
cp -f
/usr/src/linux-2.4/net/ipv4/netfilter/*.o
/lib/moles/2.4.20-8/kernel/net/ipv4/netfilter/
4.更新你的moles.dep
depmod
-a
当出现这个时,可以不用理会,因为ipchains, ipfwadm模块都没用,也可以把出错的删除.
depmod: ***
Unresolved symbols in
/lib/moles/2.4.20-8/kernel/net/ipv4/netfilter/ipchains_core.o
depmod: ***
Unresolved symbols in
/lib/moles/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