iptables root,防火墙功能有关问题

seosqwseo2周前 (05-09)测评日记10

一、linux怎么关闭iptables linux如何关闭防火墙

Linux关闭iptables防火墙的方法如下:

通过iptables-F清除防火墙关闭,并通过iptables-L查看,如图所示:

通过/etc/init.d/iptables stop命令停止并关闭iptables,如图所示:

也可以使用 service iptables stop来停止并关闭iptables,如图所示:

如设置了自启动服务,需要查看系统自动启动的进程服务,如图所示:

通过查询之后,可以通过[root@localhost~]# chkconfig iptables off命令来设置自启动为关闭,或者通过# chkconfig--del iptables命令,移除开机自启动,如图所示:

利用图形界面的方法关闭防火墙,如图:

在图形界面中点击【防火墙配置】然后再点击关闭防火墙设置

二、Linux下针对路由功能配置iptables的方法详解

作为公司上网的路由器需要实现的功能有nat地址转换、dhcp、dns缓存、流量控制、应用程序控制,nat地址转换通过iptables可以直接实现,dhcp服务需要安装dhcpd,dns缓存功能需要使用**nd,流量控制可以使用tc,应用程序控制:例如对qq的封锁可以使用 netfilter-layer7-v2.22+17-protocols-2009-05-28.tar.gz来实现

1、网络规划

*作系统是centos5.8

2、安装dhcpd

代码如下:

yum install dhcp-3.0.5-31.el5

vim/etc/dhcp/dhcpd.conf

ddns-update-style interim;

ignore client-updates;

subnet 10.0.0.0 netmask 255.255.255.0{

option routers 10.0.0.1;

option subnet-mask 255.255.255.0;

option domain-name-servers 10.0.0.1;

range dynamic-bootp 10.0.0.100 10.0.0.200;

default-lease-time 21600;

max-lease-time 43200;

}

3、安装**nd,实现dns缓存

代码如下:

yum install **nd97.i386 **nd97-libs.i386 **nd97-utils.i386

vim/etc/named.conf

options{

directory"/var/named";

allow-recursion{ 10.0.0.0/24;};

recursion yes;

forward first;#将所有请求都进行转发

forwarders{ 114.114.114.114;};#定义转发服务器地址

};

zone"." IN{

type hint;

file"named.ca";

};

zone"localhost" IN{

type master;

file"named.localhost";

allow-transfer{ none;};

};

zone"0.0.127.in-addr.arpa" IN{

type master;

file"named.loopback";

allow-transfer{ none;};

};

创建根域文件,默认有

代码如下:

dig-t NS./var/named/named.ca

chown:named/var/named/named.ca

创建本地正向解析文件,默认有

代码如下:

vim/var/named/named.localhost

$TTL 1D

@ IN SOA@ rname.invalid.(

0; serial

1D; refresh

1H; retry

1W; expire

3H); minimum

NS@

A 127.0.0.1

chown:named/var/named/named.localhost

创建本地反向解析文件,默认有

代码如下:

vim/var/named/named.loopback

$TTL 1D

@ IN SOA@ rname.invalid.(

0; serial

1D; refresh

1H; retry

1W; expire

3H); minimum

NS@

A 127.0.0.1

PTR localhost.

chown:named/var/named/named.loopback

检查主配置文件

代码如下:

named-checkconf

检查根区域配置文件

代码如下:

named-checkzone“.”/var/named/named.ca

检查区域文件

代码如下:

named-checkzone“localhost”/var/named/named.localhost

启动服务

代码如下:

service named start

4、重新编译编译内核和iptables以支持应用层过滤

由于实行防火墙功能的是netfilter内核模块,所以需要重新编译内核,需要**新的内核源码,并使用netfilter-layer7-v2.22作为内核的补丁一起编译到内核中。而控制netfiler的是iptables工具,因此iptables也必须重新编译安装,后再安装应用程序过滤特征码库17-protocols-2009-05028.tar.gz

1、给内核打补丁,并重新编译内核

2、给iptables源码打补丁,并重新编译iptables

3、安装17proto

备份iptables脚本和配置文件

代码如下:

cp/etc/rc.d/init.d/iptables/root/iptables.sysv

cp/etc/sysconfig/iptables-config/root/iptables-config

2.6内核**地址

netfilter**地址

iptables源码**地址

应用程序特征码库**地址

代码如下:

xz-d linux-2.6.28.10.tar.xz

tar-xvf linux-2.6.28.10.tar.gz-C/usr/src#新的内核源码,用于重新编译

tar-zxvf netfilter-layer7-v2.22.tar.gz-C/usr/src#内核补丁和iptables补丁,只支持到2.6.28

#进入解压目录并创建软连接

pcd/usr/src

ln-sv linux-2.6.28.10 linux

#进入内核目录

pcd/usr/src/linux

#为当前内核打补丁

ppatch-p1../netfilter-layer7-v2.22/kernel-2.6.25-2.6.28-layer7-2.22.path

#为了方便编译内核将系统上的内核配置文件**过来

pcp/boot/config-2.6.18-164.el5/usr/src/linux/.config

编译内核

代码如下:

make menuconfig

Networking support- Networking Options- Network packet filtering framework- Core Netfilter Configuration

Netfilter connection tracking support

"lawyer7" match support

"string" match support

"time" match support

"iprange" match support

"connlimit" match support

"state" match support

"conntrack" connection match support

"mac" address match support

"multiport" Multiple port match support

Networking support- Networign options- Network packet filtering framework- IP:Netfiltr Configuration

IPv4 connection tracking support(required for NAT)

Full NAT

MASQUERADE target support

NETMAP target support

REDIRECT target support

在Networking support中选择 Networking options

查找Network packet filtering framework(Netfilter)–Core Netfiler Configrationg–Netfilter connection tracking support(NEW),”layer7″ match support(NEW),”time” match support(NEW),”iprange”

查找IP:Netfilter Configuration–IPv4 connection tracking support,Full NAT(NEW)

代码如下:

make

make modules_install

make install

重启*作系统选择新内核登录

卸载旧的iptables

代码如下:

rpm-e iptables-1.3.5-9.1.el5 iptables-ipv6-1.3.5-9.1.el5 iptstate-1.4-2.el5--nodeps

安装新的iptables,以支持新的netfiler模块

代码如下:

tar-jsvf iptables-1.4.6.tar.bz2-C/usr/src

cd/usr/src/netfilter-layer7-v2.23

cd iptables-1.4.3forward-for-kernel-2.6.20forward

cp*/usr/src/iptables-1.4.6/extensions/

cd/usr/src/iptables-1.4.6/

./configure--prefix=/usr--with-ksource=/usr/src/linux

make

make install

查看安装后的iptables的文件

代码如下:

ls/usr/s**n|grep iptables

ls/usr/libexec/xtables

**之前备份的配置文件和脚本

代码如下:

cp/root/iptables-config/etc/sysconfig/

cp/root/iptables.sysv/etc/rc.d/init.d/iptables

修改脚本中iptables的路径

代码如下:

vim/etc/rc.d/init.d/iptables

:.,$s@/s**n/$IPTABLES@/usr/s**n/$IPTABLES@g

让iptables服务开机自动启动

代码如下:

chkconfig--add iptables

修改iptables配置文件

将/etc/sysconfig/iptables-config中的

IPTABLES_MODULES=”ip_conntrack_net**os_ns”注释掉

安装协议特征码

代码如下:

tar xvf 17-protocols-2009-05028.tar.gz

make install

完成后在/etc/l7-protocols会生成文件

支持的协议/etc/l7-protocols/protocols

添加iptables策略,运行内部网络上网,禁止qq和视频

代码如下:

iptables-t nat-A POSTROUTING-s 10.0.0.0/24-j SNAT--to-soure 192.168.6.67

iptables-A FORWARD-m layer7--l7proto qq-j DROP

iptables-A FORWARD-m layer7--l7proto httpvideo-j DROP

iptables-A FORWARD-m layer7--l7proto httpaudio-j DROP

指定8点到12点无法上网

**代码

代码如下:

iptables-A FORWARD-m time--timestart 08:00--timestop 12:00-j DROP

5、使用tc控制带宽

例如公司出口带宽是10Mbps,个用户A分配500KB的大**带宽,给用户B分配分配的大**带宽是200KB

A用户ip:10.0.0.100

B用户ip:10.0.0.101

代码如下:

#在eth0网卡上创建一个根队列规则,队列规则的算法使用htb,default 2表示指定一个默认类别编号,默认的流量控制策略,如果ip没有在后面的filter中被匹配到就都是有这个策略

tc qdisc add dev eth0 root handle 1:0 htb default 2

#在eth0网卡上定义一个类,prant 1:0中的1对应根队列规则中的handle 1:0,classid 1:2表示当前这个类的标识,用于应用在后面的得到filter中,rate 200kbsp表示带宽为200KB/s,ceil 200kbps表示大带宽也为200KB/s,prio 2是优先级

tc class add dev eth0 parent 1:0 classid 1:2 htb rate 200kbps ceil 200kbps prio 2

tc class add dev eth0 parent 1:0 classid 1:3 htb rate 500kbps ceil 500kbps prio 2

#将两个类的默认的fifq队列规则改为sfq

tc qdisc add dev eth0 parent 1:2 handle 20 sfq

tc qdisc add dev eth0 parent 1:3 handle 30 sfq

#在网卡eth0上的1:0节点(对应qdisc中的handle 1:0)添加一个u32过滤规则,优先级为1,凡是目标地址是10.0.0.100的数据包都使用1:2类(对应classid为1:2的类)

tc filter add dev eth0 parent 1:0 protocol ip prio 1 u32 match ip dst 10.0.0.100 flowid 1:2

tc filter add dev eth0 parent 1:0 protocol ip prio 1 u32 match ip dst 10.0.0.101 flowid 1:3

如果还有其他用户例如用户C和D的ip是102、103,要求的**带宽也要求500那么在加入

代码如下:

tc filter add dev eth0 parent 1:0 protocol ip prio 1 u32 match ip dst 10.0.0.102 flowid 1:3

tc filter add dev eth0 parent 1:0 protocol ip prio 1 u32 match ip dst 10.0.0.103 flowid 1:3

清除eth0上的规则

代码如下:

tc qdisc del dev eth1 root/dev/null

三、急*********利用***iptables***实现***linux***防火墙功能有关问题

自己看:

什么是Iptables?

iptables是建立在 netfilter架构基础上的一个包过滤管理工具,主要的作用是用来做防火墙或透明代理。Iptables从 ipchains发展而来,它的功能更为强大。Iptables提供以下三种功能:包过滤、NAT(网络地址转换)和通用的 pre-route packet mangling。包过滤:用来过滤包,但是不修改包的内容。Iptables在包过滤方面相对于 ipchians的主要优点是速度更快,使用更方便。NAT:NAT可以分为源地址 NAT和目的地址 NAT。

Iptables可以追加、插入或删除包过滤规则。实际上真正执行这些过虑规则的是 netfilter及其相关模块(如 iptables模块和 nat模块)。Netfilter是 Linux核心中一个通用架构,它提供了一系列的“表”(tables),每个表由若干“链”(chains)组成,而每条链中可以有一条或数条“规则”(rule)组成。

系统缺省的表为“filter”,该表中包含了 INPUT、FORWARD和 OUTPUT 3个链。

每一条链中可以有一条或数条规则,每一条规则都是这样定义的:如果数据包头符合这样的条件,就这样处理这个数据包。当一个数据包到达一个链时,系统就会从第一条规则开始检查,看是否符合该规则所定义的条件:如果满足,系统将根据该条规则所定义的方法处理该数据包;如果不满足则继续检查下一条规则。后,如果该数据包不符合该链中任一条规则的话,系统就会根据该链预先定义的策略来处理该数据包。

? table,chain,rule

iptables可以*纵3个表:filter表,nat表,mangle表。

NAT和一般的 mangle用-t参数指定要*作哪个表。filter是默认的表,如果没有-t参数,就默认对 filter表*作。

Rule规则:过滤规则,端口转发规则等,例如:禁止任何机器 ping我们的服务器,可以在服务器上设置一条规则:

iptables-A INPUT-s! 127.0.0.1-p icmp-j DROP

从–s开始即是一条规则,-j前面是规则的条件,-j开始是规则的行为(目的)。整条命令解释为,在filter表中的 INPUT规则链中插入一条规则,所有源地址不为 127.0.0.1的 icmp包都被抛弃。

Chain规则链:由一系列规则组成,每个包顺序经过 chain中的每一条规则。chain又分为系统 chain和用户创建的 chain。下面先叙述系统 chain。

filter表的系统 chain: INPUT,FORWAD,OUTPUT

nat表的系统 chain: PREROUTING,POSTROUTING,OUTPUT

mangle表的系统 chain: PREROUTING,OUTPUT

每条系统 chain在确定的位置被检查。比如在包过滤中,所有的目的地址为本地的包,则会进入INPUT规则链,而从本地出去的包会进入 OUTPUT规则链。

所有的 table和 chain开机时都为空,设置 iptables的方法就是在合适的 table和系统 chain中添相应的规则。

--------------------------------------------------------------

IPTABLES语法:

表: iptables从其使用的三个表(filter、nat、mangle)而得名,对包过滤只使用 filter表, filter还是默认表,无需显示说明.

*作命令:即添加、删除、更新等。

链:对于包过滤可以针对filter表中的INPUT、OUTPUT、FORWARD链,也可以*作用户自定义的链。

规则匹配器:可以指定各种规则匹配,如IP地址、端口、包类型等。

目标动作:当规则匹配一个包时,真正要执行的任务,常用的有:

ACCEPT允许包通过

DROP丢弃包

一些扩展的目标还有:

REJECT拒绝包,丢弃包同时给发送者发送没有接受的通知

LOG包有关信息记录到日志

TOS改写包的TOS值

为使FORWARD规则能够生效,可使用下面2种方法的某种:

[root@rhlinux root]# vi/proc/sys/net/ipv4/ip_forward

[root@rhlinux root]# echo"1">/proc/sys/net/ipv4/ip_forward

[root@rhlinux root]# vi/etc/sysconfig/network

[root@rhlinux root]# echo"FORWARD_IPV4=true">/etc/sysconfig/network

--------------------------------------------------------

iptables语法可以简化为下面的形式:

iptables [-t table] CMD [chain] [rule-matcher] [-j target]

--------------------------------------------------------

常用*作命令:

-A或-append在所选链尾加入一条或多条规则

-D或-delete在所选链尾部删除一条或者多条规则

-R或-replace在所选链中替换一条匹配规则

-I或-insert以给出的规则号在所选链中插入一条或者多条规则.如果规则号为1,即在链头部.

-L或-list列出指定链中的所有规则,如果没有指定链,将列出链中的所有规则.

-F或-flush清除指定链和表中的所由规则,假如不指定链,那么所有链都将被清空.

-N或-new-chain以指定名创建一条新的用户自定义链,不能与已有链名相同.

-X或-delete-chain删除指定的用户定义帘,必需保证链中的规则都不在使用时才能删除,若没有指定链,则删除所有用户链.

-P或-policy为永久帘指定默认规则(内置链策略),用户定义帘没有缺省规则,缺省规则也使规则链中的后一条规则,用-L显示时它在第一行显示.

-C或-check检查给定的包是否与指定链的规则相匹配.

-Z或-zero将指定帘中所由的规则包字节(BYTE)计数器清零.

-h显示帮助信息.

-------------------------------------------------------------

常用匹配规则器:

-p, [!] protocol指出要匹配的协议,可以是tcp, udp, icmp, all,前缀!为逻辑非,表示除该协议外的所有协议.

-s [!] address[/mask]指定源地址或者地址范围.

-sport [!] port[:port]指定源端口号或范围,可以用端口号也可以用/ETC/SERVICES文件中的名子.

-d [!] address[/mask]指定目的地址或者地址范围.

-dport [!] port[:port]指定目的端口号或范围,可以用端口号也可以用/ETC/SERVICES文件中的名子.

-icmp-type [!] typename指定匹配规则的ICMP信息类型(可以使用 iptables-p icmp-h查看有效的ICMP类型名)

-i [!] interface name[+]匹配单独或某种类型的接口,此参数忽略时,默认符合所有接口,接口可以使用"!"来匹配捕食指定接口来的包.参数interface是接口名,如 eth0, eht1, ppp0等,指定一个目前不存在的接口是完全合法的,规则直到接口工作时才起作用,折中指定对于PPP等类似连接是非常有用的."+"表示匹配所有此类型接口.该选项只针对于INPUT,FORWARD和PREROUTING链是合法的.

-o [!] interface name[+]匹配规则的对外网络接口,该选项只针对于OUTPUT,FORWARD,POSTROUTING链是合法的.

[!]--syn仅仅匹配设置了SYN位,清除了ACK, FIN位的TCP包.这些包表示请求初始化的TCP连接.阻止从接口来的这样的包将会阻止外来的TCP连接请求.但输出的TCP连接请求将不受影响.这个参数仅仅当协议类型设置为了TCP才能使用.此参数可以使用"!"标志匹配已存在的返回包,一般用于限制网络流量,即只允许已有的,向外发送的连接所返回的包.

----------------------------------------------------------

如何制定永久规则集:

/etc/sysconfig/iptables文件是 iptables守护进程调用的默认规则集文件.

可以使用以下命令保存执行过的IPTABLES命令:

/s**n/iptables-save>/etc/sysconfig/iptables

要恢复原来的规则库,可以使用:

/s**n/iptables-restore</etc/sysconfig/iptables

iptables命令和route等命令一样,重启之后就会恢复,所以:

[root@rhlinux root]# service iptables save

将当前规则储存到/etc/sysconfig/iptables: [确定 ]

令一种方法是/etc/rc.d/init.d/iptables是IPTABLES的启动脚本,所以:

[root@rhlinux root]#/etc/rc.d/init.d/iptables save

将当前规则储存到/etc/sysconfig/iptables: [确定 ]

以上几种方法只使用某种即可.

若要自定义脚本,可直接使用iptables命令编写一个规则脚本,并在启动时执行:

例如若规则使用脚本文件名/etc/fw/rule,则可以在/etc/rc.d/rc.local中加入以下代码:

if [-x/etc/fw/rule]; then/etc/fw/sule; fi;

这样每次启动都执行该规则脚本,如果用这种方法,建议NTSYSV中停止IPTABLES.

----------------------------------------------------------

实例:

链基本*作:

[root@rh34 root]# iptables-L-n

(列出表/链中的所有规则,包过滤防火墙默认使用的是filter表,因此使用此命令将列出filter表中所有内容,-n参数可加快显示速度,也可不加-n参数。)

[root@rh34 root]# iptables-F

(清除预设表filter中所有规则链中的规则)

[root@rh34 root]# iptables-X

(清除预设表filter中使用者自定义链中的规则)

[root@rh34 root]# iptables-Z

(将指定链规则中的所有包字节计数器清零)

------------------------------------------------------------

设置链的默认策略,默认允许所有,或者丢弃所有:

[root@rh34 root]# iptables-P INPUT ACCEPT

[root@rh34 root]# iptables-P OUTPUT ACCEPT

[root@rh34 root]# iptables-P FORWARD ACCEPT

(以上我们在不同方向设置默认允许策略,若丢弃则应是DROP,严格意义上防火墙应该是DROP然后再允许特定)

---------------------------------------------------------------

向链中添加规则,下面的例子是开放指定网络接口(信任接口时比较实用):

[root@rh34 root]# iptables-A INPUT-i eth1-j ACCEPT

[root@rh34 root]# iptables-A OUTPUT-o eth1-j ACCEPT

[root@rh34 root]# iptables-A FORWARD-i eth1-j ACCEPT

[root@rh34 root]# iptables-A FORWARD-o eth1-j ACCEPT

--------------------------------------------------------------

使用用户自定义链:

[root@rh34 root]# iptables-N brus

(创建一个用户自定义名叫brus的链)

[root@rh34 root]# iptables-A brus-s 0/0-d 0/0-p icmp-j DROP

(在此链中设置了一条规则)

[root@rh34 root]# iptables-A INPUT-s 0/0-d 0/0-j brus

(向默认的INPUT链添加一条规则,使所有包都由brus自定义链处理)

----------------------------------------------------------------

基本匹配规则实例:

匹配协议:

iptables-A INPUT-p tcp

(指定匹配协议为TCP)

iptables-A INPUT-p! tcp

(指定匹配TCP以外的协议)

匹配地址:

iptables-A INPUT-s 192.168.1.1

(匹配主机)

iptables-A INPUT-s 192.168.1.0/24

(匹配网络)

iptables-A FORWARD-s! 192.168.1.1

(匹配以外的主机)

iptables-A FORWARD-s! 192.168.1.0/24

(匹配以外的网络)

匹配接口:

iptables-A INPUT-i eth0

iptables-A FORWARD-o eth0

(匹配某个指定的接口)

iptables-A FORWARD-o ppp+

(匹配所有类型为ppp的接口)

匹配端口:

iptables-A INPUT-p tcp--sport www

iptables-A INPUT-p tcp--sport 80

(匹配单一指定源端口)

iptables-A INPUT-p ucp--dport 53

(匹配单一指定目的端口)

iptables-A INPUT-p ucp--dport! 53

(指定端口以外)

iptables-A INPUT-p tcp--dport 22:80

(指定端口范围,这里我们实现的是22到80端口)

---------------------------------------------------------------------------------

指定IP碎片的处理:

[root@rh34 root]# iptables-A FORWARD-p tcp-s 192.168.1.0/24-d 192.168.1.234--dport 80-j ACCEPT

[root@rh34 root]# iptables-A FORWARD-f-p tcp-s 192.168.1.0/24-d 192.168.1.234--dport 80-j ACCEPT

[root@rh34 root]# iptables-L

Chain INPUT(policy ACCEPT)

target prot opt source destination

Chain FORWARD(policy ACCEPT)

target prot opt source destination

ACCEPT tcp-- 192.168.1.0/24 192.168.1.234 tcp dpt:http

ACCEPT tcp-f 192.168.1.0/24 192.168.1.234 tcp dpt:http

Chain OUTPUT(policy ACCEPT)

target prot opt source destination

----------------------------------------------------------------------------------

设置扩展的规测匹配:

(希望获得匹配的简要说明,可使用: iptables-m name_of_match--help)

多端口匹配扩展:

iptables-A INPUT-p tcp-m multiport--source-port 22,53,80

(匹配多个源端口)

iptables-A INPUT-p tcp-m multiport--destination-port 22,53,80

(匹配多个目的端口)

iptables-A INPUT-p tcp-m multiport--port 22,53,80

(匹配多个端口,无论是源还是目的端口)

-----------------------------------------------------------------------------

TCP匹配扩展:

iptables-A INPUT-p tcp--tcp-flags SYN,FIN,ACK SYN

(表示SYN、ACK、FIN的标志都要被检查,但是只有设置了SYN的才匹配)

iptables-A INPUT-p tcp--tcp-flags ALL SYN,ACK

(表示ALL:SYN、ACK、FIN、RST、URG、PSH的标志都被检查,但是只有设置了SYN和ACK的才匹配)

iptables-p tcp--syn

(选项--syn是以上的一种特殊情况,相当于“--tcp-flags SYN,RST,ACK SYN”的简写)

--------------------------------------------------------------------------------

limit速率匹配扩展:

[root@redhatlinux9 root]# iptables-A FORWARD-m limit--limit 300/hour

(表示限制每小时允许通过300个数据包)

[root@redhatlinux9 root]# iptables-A INPUT-m limit--limit-burst 10

(--limit-burst指定触发时间的值(默认为5),用来比对瞬间大量数据包的数量。)

(上面的例子用来比对一次同时涌入的数据包是否超过十个,超过此上限的包将直接被丢弃)

[root@redhatlinux9 root]# iptables-A FORWARD-p icmp-m limit--limit 3/m--limit-burst 3

(假设均匀通过,平均每分钟3个,那么触发值burst保持为3。如果每分钟通过的包的数目小于3,那么触发值busrt将在每个周期(若每分钟允许通过3个,则周期数为20秒)后加1,但大值为3。每分钟要通过的包数量如果超过3,那么触发值busrt将减掉超出的数值,例如第二分钟有4个包,那么触发值变为2,同时4个包都可以通过,第三分钟有6个包,则只能通过5个,触发值busrt变为0。之后,每分钟如果包数量小于等于3个,则触发值busrt将加1,如果每分钟包数大于3,触发值busrt将逐渐减少,终维持为0)

(即每分钟允许的大包数量等于限制速率(本例中为3)加上当前的触发值busrt数。任何情况下,都可以保证3个包通过,触发值busrt相当于是允许额外的包数量)

---------------------------------------------------------------------------------

基于状态的匹配扩展(连接跟踪):

每个网络连接包括以下信息:源和目的地址、源和目的端口号,称为套接字对(cocket pairs);协议类型、连接状态(TCP协议)和超时时间等。防火墙把这些叫做状态(stateful)。能够监测每个连接状态的防火墙叫做状态宝过滤防火墙,除了能完成普通包过滤防火墙的功能外,还在自己的内存中维护一个跟踪连接状态的表,所以拥有更大的安全性。

其命令格式如下:

iptables-m state--state [!] state [,state,state,state]

state表示一个用逗号隔开的的列表,用来指定的连接状态可以有以下4种:

NEW:该包想要开始一个连接(重新连接或将连接重定向)。

RELATED:该包属于某个已经建立的连接所建立的新连接。例如FTP的数据传输连接和控制连接之间就是RELATED关系。

ESTABLISHED:该包属于某个已经建立的连接。

INVALID:该包不匹配于任何连接,通常这些包会被DROP。

例如:

[root@redhatlinux9 root]# iptables-A INPUT-m state--state RELATED,ESTABLISHED

(匹配已经建立的连接或由已经建立的连接所建立的新连接。即匹配所有的TCP回应包)

[root@redhatlinux9 root]# iptables-A INPUT-m state--state NEW-i! eth0

(匹配所有从非eth0接口来的连接请求包)

下面是一个被动(Passive)FTP连接模式的典型连接跟踪

[root@redhatlinux9 root]# iptables-A INPUT-p tcp--sport 1024:--dport 1024:-m state--state ESTABLISHED-j ACCEPT

[root@redhatlinux9 root]# iptables-A OUTPUT-p tcp--sport 1024:--dport 1024:-m state--state ESTABLISHED,RELATED-j ACCEPT

下面是一个主动(Active)FTP连接模式的典型连接跟踪

[root@redhatlinux9 root]# iptables-A INPUT-p tcp--sport 20-m state--state ESTABLISHED,RELATED-j ACCEPT

[root@redhatlinux9 root]# iptables-A INPUT-p tcp--dport 20-m state--state ESTABLISHED-j ACCEPT

--------------------------------------------------------------------------------------

日志记录:

格式为:-j LOG--log-level 7--log-prefix"......"

[root@redhatlinux9 root]# iptables-A FORWARD-m tcp-p tcp-j LOG

[root@redhatlinux9 root]# iptables-A FORWARD-m icmp-p icmp-f-j LOG

[root@redhatlinux9 root]# iptables-A FORWARD-s 192.168.1.0/24-d 10.10.10.0/24-p tcp--sport 80-j LOG

[root@redhatlinux9 root]# iptables-A INPUT-m limit--limit 3/minute--limit-burst 3-j LOG--log-prefix"INPUT packet died:"

[root@redhatlinux9 root]# iptables-A INPUT-p tcp!--syn-m state--state NEW-j LOG--log-prefix"New net syn:"

------------------------------------------------

回答你的问题:

1:设置为DROP默认不允许,然后你再开启,这样比门户大开再阻止某些服务来的安全(避免遗漏)

2:前面阻止了后面就无效了,有先后顺序的.

3:你了解了服务和端口号等即可用规则限制.

相关文章

海信电视55E3G-PRO55英寸4K超清120Hz防抖质量好吗

海信电视55E3G-PRO55英寸4K超清120Hz防抖质量好吗

很多小伙伴在关注海信电视55E3G-PRO55英寸4K超清120Hz防抖怎么样?质量好不好?使用测评如何?本文综合已购用户的客观使用分享和相应的优惠信息,为大家推荐一款高性...

Vidda海信电视使用感受如何

Vidda海信电视使用感受如何

很多小伙伴在关注Vidda海信电视怎么样?质量好不好?使用测评如何?本文综合已购用户的客观使用分享和相应的优惠信息,为大家推荐一款高性价比的产品,一起来看看吧。...

TCL电视43V8E怎么样?质量测评好不好用?

TCL电视43V8E怎么样?质量测评好不好用?

很多小伙伴在关注TCL电视43V8E怎么样?质量好不好?使用测评如何?本文综合已购用户的客观使用分享和相应的优惠信息,为大家推荐一款高性价比的产品,一起来看看吧。...

海信(Hisense)70英寸70E3F测评分享

海信(Hisense)70英寸70E3F测评分享

很多小伙伴在关注海信(Hisense)70英寸70E3F怎么样?质量好不好?使用测评如何?本文综合已购用户的客观使用分享和相应的优惠信息,为大家推荐一款高性价比的产品,一起...

酷开(coocaa)创维酷开43P31图文测评

酷开(coocaa)创维酷开43P31图文测评

很多小伙伴在关注酷开(coocaa)创维酷开43P31怎么样?质量好不好?使用测评如何?本文综合已购用户的客观使用分享和相应的优惠信息,为大家推荐一款高性价比的产品,一起来...

亚美嘉擦镜纸测评分享

亚美嘉擦镜纸测评分享

很多小伙伴在关注亚美嘉擦镜纸怎么样?质量好不好?使用测评如何?本文综合已购用户的客观使用分享和相应的优惠信息,为大家推荐一款高性价比的产品,一起来看看吧。...