个人工具

“UbuntuHelp:IptablesHowTo/zh”的版本间的差异

来自Ubuntu中文

跳转至: 导航, 搜索
iptables中数据包的处理
第98行: 第98行:
  
 
==iptables中数据包的处理==
 
==iptables中数据包的处理==
 +
iptables通过内置的序列表(队列)检查所有经过的数据包。每组队列都用于特定的包行为,而且为一个相关的包转发/过滤链控制。
 +
 +
总共有3个表。第一个mangel表用于变更TCP头里面的bit流QOS。这引用户家庭或小型办公环境。
 +
 +
第二个表是过滤队列,它负责包过滤。它有3个内建的链,在这些链里面你可以设置您的防火墙策略规则。它们是:
 +
 +
*Forward chain(转发链):处理受防火墙保护流经服务器的数据包。
 +
*Input chain(输入链):处理目的地是防火墙的数据包。
 +
*Output chain(输出链):处理发源于防火墙的数据包。
 +
 +
第三个表是NAT队列,它负责网络地址翻译。它有2条内置链:
 +
*Pre-routing chain:当数据包的目的地址需要转换时执行NATs转换。
 +
*Post-routing chain:当数据包的源地址需要转换时执行NATs转换。

2007年7月31日 (二) 17:33的版本

1.简介

2.什么是iptables?

3.下载和安装iptables包

4.怎样启动iptables

5.检查iptables的状态

6.iptables中数据包的处理状态

 6.1 表14-1 防火墙处理被路由的数据包
 6.2 图14-1 iptables 中数据包的流程图

7.目标与跳转

 7.1 表14-2 最常用的目标的描述

8.重要的iptables命令转换操作

 8.1 表14-2 概述iptables状态标准
 8.2 表14-4 普通 TCP 和 UDP 状态标准
 8.3 表14-5 普通 ICMP(ping)  状态标准
 8.4 表14-6 普通扩展状态标准

9.使用用户自定义链

 9.1 表14.7 自定义队列例子列表

10. 保存您的iptables脚本

11.Fedora 的iptables规则生成器

12.恢复一个丢失的iptables脚本

13.加载iptables所需要的内核模块

14.iptables脚本例子

 14.1 基本的的操作系统防御
 14.2 高级iptables初始化
 14.3 允许DNS解析通过您的防火墙
 14.4 允许WWW和SSH服务通过您的防火墙
 14.5 允许您通过防火墙访问Internet
  14.6 允许您的家庭网络通过防火墙
 14.7 伪装(多对一的NAT)
  14.8 端口转发型的NAT(DHCP DSL)
  14.9 静态NAT

15.iptables排错

 15.1 检查防火墙日志
 15.2 iptables停止工作

16.总结



简介

网络安全是个首先要考虑的问题,尤其是在网站威胁越来越普遍化的今天。一种提供额外波户的手段是购置防火墙。尽管防火墙价格一直在下降,但在某些情况下,你可以花很少甚至不需要花费额外的开销通过在一台linux服务器上配置iptables来创建一个可与之媲美的防火墙。

本章节将向你展示如何将一台linux服务器配置成:

  • 一台防火墙,同时是你的本地web站点的mail、web、dns服务器
  • 一台路由器,并且利用NAT和端口转发同时保护您的本地网络和使得你的另外一个网络共享您防火墙上的公有IP地址。


什么是iptables?

起初,linux上最流行的防火墙/NAT 软件包是ipchains,但它有太多缺点。为了校正这些缺点,Netfilter机构决定创建一个叫做iptables的产品,并对它做了如下改进:

  • 更好地整合了linux内核加载iptables特殊模块的能力,提高了速度和可靠性.
  • 所有状态包的检查。这就意味这防火墙能保持跟踪通过它的每个数据包,而且在某些情况下可以查看数据流内容来预测某些协议的下一个行为。这在支持活动的TCP和DNS以及其他许多网络服务方面是一大亮点。
  • 基于MAC地址和TCP头标志过滤数据包。这对于阻止使用畸形数据包的攻击和限制通过本地服务器到达其他网络(不用查看ip地址)尤其有效。
  • 提供可选择不同级别的详细报告的系统日志
  • 更好的网络地址翻译(NAT)
  • 更好的对squid类透明web代理的支持
  • 一定程度上防御拒绝服务(DOS)攻击

与可选的ipchains相比,iptables更为快速、安全,而且iptables已经成为了Redhat和Fedora Linux上的默认防火墙。

下载和安装iptables软件包

在您开始前,您必须确保iptables RPM软件包已经安装上了。(如果您需要参考的话,请看第6章,:Wikipedia:Installing Linux Software)。当您搜索RPM软件包时,记得软件包经常是以软件包版本命名的,例如iptables-1.2.9-1.0.i386.rpm。

如何启动iptables

您可以在系统启动后通过以下命令启动、停止、重启动iptables:

 [root@bigboy tmp]# service iptables start
  [root@bigboy tmp]# service iptables stop
  [root@bigboy tmp]# service iptables restart

为了配置iptables在系统启动时自动启动,可以使用下面的chkconfig命令:

 [root@bigboy tmp]# chkconfig iptables on

检查iptabels的状态

 [root@bigboy tmp]# service iptables status
 Firewall is stopped.
 [root@bigboy tmp]#

iptables中数据包的处理

iptables通过内置的序列表(队列)检查所有经过的数据包。每组队列都用于特定的包行为,而且为一个相关的包转发/过滤链控制。

总共有3个表。第一个mangel表用于变更TCP头里面的bit流QOS。这引用户家庭或小型办公环境。

第二个表是过滤队列,它负责包过滤。它有3个内建的链,在这些链里面你可以设置您的防火墙策略规则。它们是:

  • Forward chain(转发链):处理受防火墙保护流经服务器的数据包。
  • Input chain(输入链):处理目的地是防火墙的数据包。
  • Output chain(输出链):处理发源于防火墙的数据包。

第三个表是NAT队列,它负责网络地址翻译。它有2条内置链:

  • Pre-routing chain:当数据包的目的地址需要转换时执行NATs转换。
  • Post-routing chain:当数据包的源地址需要转换时执行NATs转换。