文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>Iptables 路由表的配置及功能简介

Iptables 路由表的配置及功能简介

时间:2010-03-10  来源:forwardinng

                            Iptables 路由表的配置及功能简介

在介绍iptables之前,我们先来了解一下防火墙的相关知识:

防火墙存在于网络边界,通过预设规则对进出口路由进行检查的处理组件;防火墙分为包过滤防火墙和procy防火墙,(第二种称谓可能不太合适,欢迎大家来指点哦),第一种防火墙的工作速度比较快,但只能检查到第三层的内容,而procy则可以检查所有内容,目前来讲,在条件允许的情况下,我们通常是将两者结合起来使用,这样,既提高防火墙的工作效率又可对所有内容进行检查,是一种完美的方法。

 

内核分为内核空间和用户空间,两者之间通常是不能相互通信的,若要相互访问,要通过调用来实现,在内核中,tcp/ip 选择了五个点,调用钩子函数,当数据包通过时将相关项“勾上去”。数据包是必须要经过这五个点中的某几个点的.

 

Iptables不是一个防火墙,而是一个规则管理器,而netfilter 架构才是防火墙,iptables形象的说就是镶嵌在这五个点里面,来提供过滤规则

 

Iptables表分为四个:filer,nat,mangle,raw。它们有各自的功能如:做过滤,地址转发等

上面提到的五个点叫做链:chains

FORWARD:转发

PREROUTING:进入防火墙之前

POSTROUING:离开防火墙之前

INPUT:进入主机内

OUTPUT:离开主机内

 

下面介绍iptables的命令使用:

 

1:首先对链中的rules作管理

       -A:append :在链的尾部加一条规则

       -I:[+n] insert:在第n行之前插入一条规则,默认插入到第一行的前面

       -R:+n  replace:更换一条新的条目 后加数字,即要更换的条的序号

       -d:[+n]  delete:删除一条规则

 

2:对链的设置:

       -F:flush:冲除,清空,不加参数的时候默认删除所有链

       -P:policy:设置默认策略

       -N:new:用户自定义新链

       -X:删除用户自定义的新链

       -Z:清空计数器

       -E:将用户自定义的链重命名

 

3:匹配选项。匹配分为通用匹配和扩展匹配两种:

  通用匹配:

      -p:protocol 指定协议 {tcp,udp,icmp等}

      -s:src address 指定源地址

      -d:dst address 指定目标地址

      -i:in interface 指定进入的网卡接口

      -o:our interface 指定出去的网卡接口

      -j:jump 跳转

             DROP:悄悄丢掉

             REJECT:明确的拒绝

             ACCEPT:接受

             SNAT:指明是源地址转换

             DNAT:指明是目的地址转换

              LOG: 为匹配的包开启内核记录。当在规则中设置了这一选项后,linux内核会通过printk()打印一些关于全部匹配包的信息(诸如IP包头字段等)。       --log-level level   记录级别。

          --log-prefix prefix   :在纪录信息前加上特定的前缀:最多14个字母长,用来和记录中其他信息区别。

             REDIRECT: 只适用于nat表的PREROUTING和OUTPUT链,和只调用它们的用户自定义链。它修改包的目标IP地址来发送包到机器自身(本地生成的包被安置为地址127.0.0.1)。它包含一个选项:

             MASQERADE:(他和SNAT 的用法一样,只是SNAT用于静态的源地址转换,而后者是动态的 伪装相当于给包发出时所经过接口的IP地址设置一个映像)

      -L:列出iptables表

             --line-numbers  给规则编号

             -n    以数字形式ip格式显示信息,不做名称解析

             -v    显示详细信息

             -x  不做单位换算,直接显示精确值

         

 扩展匹配。扩展匹配又分为隐含扩展和显示扩展

             隐含扩展:

 tcp :–dport        –sport  --tcp-flag (分别为指定目标端口,源端口,tcp标志,)   

     --syn   --只匹配那些设置了SYN位而清除了ACK和FIN位的TCP包。这些包用于TCP连接初始化时发出请求;例如,大量的这种包进入一个接口发生堵塞时会阻止进入的TCP连接,而出去的TCP连接不会受到影响。这等于 --tcp-flags SYN, RST, ACK SYN。如果"--syn"前面有"!"标记,表示相反的意思。

      udp:--sport  --dport       指定udp的源端口和目的端口

      icmp:--icmp-type       8 显示请求

                    --icmp-type 0  显示回应

                    --icmp-type    3     主机不可达

 

      显式扩展:

-m state –state  检查状态      这里state是一个逗号分割的匹配连接状态列表。可能的状态是:INVALID表示包是未知连接,ESTABLISHED表示是双向传送的连接,NEW表示包为新的连接,否则是非双向传送的,而RELATED表示包由新连接开始,但是和一个已存在的连接在一起,如FTP数据传送,或者一个ICMP错误。

                   

-m multport –ports (port1,port2,port3 …..)

                      --source-ports (port1,port2,port3….)

                      --source-ports (port1,port2,port3….)

-m limit –limit  指定平均速率

             --limit burst 指定最大个数

-m mac –mac-source  (它只用在PREROUTING ,FORWARD,INPUT链中 )指定mac地址

 

开启防火墙功能并查看的命令:

#vim /etc/sysctl.conf  

#sysctl  -p

#cat /proc/sys/net/ipv4/

 

保存防火墙配置信息:

Service iptables save

 

 

下面介绍一下几种服务,通过实例来理解防火墙的工作原理:

Web服务(监听端口80 ,tcp协议)

ftp服务:(监听端口: 21 和其它被动模式下所用的端口 ,tcp协议)

             ftp服务器可以工作在主动和被动两种模式,而被动模式比主动模式安全的多,

ssh服务:(端口22,tcp协议)

ping:(类型 8 ;0;3 ,icmp协议 )

 

实验环境:

 内网服务器:10.0.2.2

网关防火墙:10.0.2.1(内网网卡)

                         10.0.3.1( 外网网卡)

 外网:               10.0.3.2

 

 

一:结合路由追踪来实现两个网络的web通信:

服务器配置:

#yum install httpd

#service httpd start

网关防火墙配置:

#vim /etc/sysctl.conf               开启路由功能

#sysctl –p

#iptables –P FORWARD DROP     将防火墙的forward链的默认规则设为drop

# iptables –A FORWARD –s 10.0.3.0/24 –d 10.0.2.2 –p tcp –dport 80 –m state –state NEW,ESTABLESHE –j ACCEPT

iptables –A FORWARD –d 10.0.3.0/24 –s 10.0.2.2 –p tcp –sport 80 –m state –state ESTABLESHE –j ACCEPT

 

 

客户机验证:

#elinks 10.0.2.2

 

二:ssh服务:

服务器端的配置:

#yum install ssh

#service ssh start

       网关防火墙的配置:

        #ipatables –A FORWARD –s 10.0.3.0/24 –d 10.0.2.2 –p tcp –dport 22 –m state –state NEW,ESTABLISHED –j ACCEPT

       #ipatables –A FORWARD –d 10.0.3.0/24 –s 10.0.2.2 –p tcp –sport 22 –m state –state ESTABLISHED –j ACCEPT

       客户端访问:

       #ssh [email protected]

 

       三:ftp服务:

       服务器端:

       #yum install vsftpd

       #service vsfstpd start

      网关防火墙的配置:

       #iptables –A FORWARD –s 10.0.3.0/24 –d 10.0.2.2 –p tcp –dport 21 –m state –state NEW,ESTABLISHED –j ACCEPT

 

#iptables –A FORWARD –d 10.0.3.0/24 –s 10.0.2.2 –p tcp –sport 21 –m state –state ESTABLISHED –j ACCEPT

 

#iptables –A FORWARD –s 10.0.3.0/24 –d 10.0.2.2 –p tcp –m state –state ESTABLISHED,RELATED –j ACCEPT

 

#iptables –A FORWARD –d 10.0.3.0/24 –s 10.0.2.2 –p tcp –m state –state ESTABLISHED,RELATED –j ACCEPT

 

       客户端访问:

       #ftp 10.0.2.2

四:ping服务

       网关防火墙的配置:

       #iptables –A  FORWARD   -p  icmp  –icmp-type  8  -j  ACCEPT

       #iptables –A  FORWARD    -p icmp  --icmp-type  0  -j  ACCEPT  

nat  地址转换的应用:

一:将内网所有主机作snat地址转换 来访问Internet                          

#iptables  -t nat  POSTROUTING  -s 10.0.2.0/24  –d  10.0.3.0/24  -p  tcp    -j  DNAT  --to-source   10.0.3.1

 

二:外网访问内网中ftp服务的时候,需要将目的地址作转换

#iptables  -t  nat   PREROUTING   -s  10.0.3.0/24  –d 10.0.3.1  -p  tcp  --dport 2020 -j  DNAT   --to-destination   10.0.2.2 :20

 

 

相关阅读 更多 +
排行榜 更多 +
试着飞手游下载

试着飞手游下载

休闲益智 下载
血染小镇(功能菜单)中文版下载

血染小镇(功能菜单)中文版下载

飞行射击 下载
泰坦之旅高爆版下载

泰坦之旅高爆版下载

角色扮演 下载