版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、NAT 服务器与防火墙-NAT 服务器与防火墙 浅谈 IP NAT原理及主要功能 NAT服务器的安装与使用 iptables在防火墙上的运用 实例练习 防火墙的简单设置 iptables 设置文件参考范例Squid 服务器有着快速读取功能, 减少了客户端直接连接 Internet 的机会, 不足, 这在目前以 IPv 4为主流的网络环境中,的确困扰着许多系统及网络设计人员。因此本章将使用 NA T 的方式来 提供这一问题的解决方案。除此之外,利用 NAT 概念的扩展,我们也将介绍防火墙的基本概念 以及它对企业网络安全性的影响。 浅谈 IP因为 NAT 的使用主要是为了解决 IP 地址不足的问题
2、,所以在学习 NAT 的内容前,必须先对 IP 地址的意义及功能要有基本的了解。本节将就 IP 的基本特性逐一介绍以帮助读者建立正确的概 念。 IP 的定义IP 是位于 OSI 网络模型中的网络层(Network Layer 能信协议,它也是 TCP/IP 通信协议,它 也是 TCP/IP通信协议组件中最重要的两个通信协议之一,目前 Internet 中使用的版本是 IPv4, 有关它的标准都定义在 RFC 791中。 IP 主要定义 3个基本概念: 在 TCP/IP网络中定义数据传输的基本单位 - -数据报 (Datagram , 所有数据在网络上传递都有 特定的格式。 IP运行路由(Rou
3、ting 的功能,它会选择一条最佳路径供数据传输之用。 订立数据报在不可靠(Unreliable 的网络上传递时应该遵循的原则。通常 IP 是利用以下的运作模式将数据发送到网络上的: 源主机 IP 层之上的传输服务会选将数据以 TCP 或 UDP 的格式发送到 IP 层上。 IP 层再将来源及目地的地信息(用来在网络上路由的数据与 IP 数据报组合。 接下来 IP 层将数据报向下发送到网络接口层,在这一层中,数据链路服务会将 IP 数据报转 换成框架,以便在物理网络中的特定媒体上进行传递。 因为每个 IP 数据报都包含来源及目的的地址,然后将这个地址与区域维护的路由表相比较, 再判定需进一步采
4、取的转送动作,而在目的地主机上则要运行反向处理。 IP 寻址除了路由之外, IP 的另一项重要功能为寻址(Addressing 目前 Internet 上都使用这套标准来表 示主机和网络点的逻辑地址, 而通过这个管理模式, 可以确定每台主机或网络都拥有惟一的识别 方法,这可避免地址重复问题的发生。有一点请大家注意的,每个网络设备的物理地址(MAC 也具有惟一性,可以用来精确表示网 络上的主机位置, 但因为无法利用其地址来建立一套管理方法, 所以通常无法达到寻址的功能所 以才设计出 IP 的寻址方法。在 IPv4中 , 每 台 主 机 所 使 用 的 IP 地 址 都 是 以 32个 二 进 制
5、 的 数 字 来 表 示 , 如 011110101011001010010110101101111, 这种表示法可以确保 Internet 上的每台主机都有惟一的地 址,因为这些地址都需要经过 InterNIC 的授权才可以使用。如果知道特定的 IP 地址,就可以利用这个地址来连接到此主机。以上的例子中使用 32个二进制的数字来表示 IP 地址,当然也可以使用十六进制(75652D6F 或十进制(196965039来表示,但这些表示法都很难让一般用户记忆。所以 IP 地址通常使用 Dotted Decimal Notation(DDN表示法, 它是将 32个二进制的位分为 4个字节 (有时也
6、称为 Octet , 然后将每个字节以十进制来表示,而每个字节之间以一具句点(. 来分隔。因此,上例中的 IP 地址 DDE 表示法为 11, 这个表示法并没有什么特殊意义, 只是利于识别的方便, 如 图 1-1所示。 根据 IP 的定义,每个 IP 地址都是由两个部分所组成:网络识别码(Network ID及主机识别码 (Host ID 。例如,网络识别码包含 8位,则主机识别码就有 32-8=24个位。而用来判断网络识 别码的主机识别码包含的位数,就必须使用 子网掩码 (Subet Mask 和 IP 地址来运算, 举例来 说,在一般情形下, IP 地址为 150.
7、23.51.36的网络识别码是 150.23 ,而主机识别码为 51. 36 , 如图 1-2所示。 网络识别码在网络中是相当重要的概念,因为它可用来识别 TCP/IP网络中的网络节点,而所有 位于同一具网络节点中的主机,都拥有相同的网络识别码。换句话说,如果两台主机的 IP 地址 中包含相同的网络识别码,则它们可以互相传递信息,而无需通过路由器或网关转送。 反之, 如 果两台主机的 IP 地址经过子网掩码运算后的网络识别码不同,则它们必须通过路由器或网关转 送才可彼此通信。当在规划局域网时须特别注意这一点,否则随意地指定 IP 地址,可能会产生 无法通信的问题。而主机识别码是用来识别 TCP
8、/IP网络中的节点(可能是工作站、服务器、路由器或其他 TCP/IP设备 ,每台设备的主机识别码在本地的网络节点都必须惟一,如果同一个网络节点中的两台主机具有相同的主机识别码, 则它们会发生无法连接网络的问题, 但是在不同网络节点中的两台主 机可以使用相同的主机识别码。例如, 1和 1不以同时存在网络中,因为 它们的网络识别码和主机识别码都相同,但是 1和 1可以同时存在不同的 网络中,因为它们的主机识别码虽然相同,但是网络识别码却不同。 IP 地址类别因为每个 IP 地址都是由 32个二进制的数字组成,所
9、以理论上来说,应该会存在 2的 32次方个 合法 IP 地址(232=4294967296 ,但是事实上并没有如此多的 IP 地址。目前 InterNIC 利用控制 IP 地址中的第一个字节(前 8个位来区分为 5个 IP 类别,我们称它们为 Class A、 Class B、 Class C、 Class D、和 Class E、如图 1-3所示。 Class A在 Class A的网络中,每个网络都是利用前 8个位来定义,因此有时也称为 /8网络 。因为第一 个位已被事先定义为二进制的 0,所以 ClassA 的第 1个字节是由 0000000101111111,也就是十 进制的 1127
10、,但因为 127是个特殊的网络识别码(Lookback Address ,所以目前 Internet 上具 有 126个 Class A网络。Class A 使用最后 3个字节(24个位来表示主机识别码,因此每个 Class A 网络可以包含的主 机数目为 224,也就是 16777216台主机。但是主机识别码全为 1和 0表示广播网络地址,因此 每个 Class A 网络实际的主机机数目为 16777214,由此可知,所有 Vlass A 的主机数目是 126*16777214=2113928964。 Class B在 Class B 网络中,每个网络都是利用前 16个位来定义,因此有时也称
11、为 /16网络 。因为前 2个位已被事先定义为二进制的 10, 所以 Class B的第一个字节是由 1000000110111111,也就是十 进制的 128191,而第二个字节也是网络识别码,所以 Internet 上具有 64*28=16384个 Class B 网络。Class B 使用最后 2个字节(16个位来表示主机识别码,因此每个 Class B 网络可以包含的主 机数目为 216 ,也就是 65536台主机。但是主机识别码,因此每个 Class B网络可以包含的主机 数目为 65534,由此可知,所有 Class B的主机数目是 167384 * 65534=107370905
12、6。 Class C在 Class C的网络中,每个网络都是利用前 24个位来定义,因此有时也称为 /24网络 。因为前 3个位已被事先定义为二进制的 110,所以 Class C的第一具个字节是由 1100000111011111,也 就是十进制的 192223,而第 2和第 3个字节也是网络识别码,所以目前 Internet 上具有 32 * 216=2097152个 Class C网络。Class C使用最后 1个字节(8个位来表示主机识别码,因此每个 Class C网络可以包含的主机 数目为 28,也就是 256台主机。但是主机识别码全为 1和 0表示广播及网络地址因此实际的主 机数目
13、为 254,而所有 Class C的主机数目是 254 *2097152=532676608。 Class DClass D的 IP 地址只供多点发送(Multicast 的群组计算机使用,也就是说以这些地址发送的信 息可以同时发送到多台主机,这些地址是用在某些特殊的软件组或服务。Class D 网络的前 4个位已被事先定义为二进制的 1110,所以 Class D 的第一个字节是由 111000011101111,也就是十进制 224239,所以目前有 16个 Class D网络,但这些地址并不提 供给一般的 Internet 主机使用,它可以不具有子网掩码。 Class EClass E的
14、 IP 地址是属于实验用的地址,这些地址并不提供给一般的 Internet 主机使用,它的前 5个位已被子事先定义为二进制的 11110,所以 Class E 的第一个字节是由 1111000111110111, 也就是十进制的 240254,所以目前有 15个 Class E网络。 私有 IP 地址(Private IP Address如果用户的网络不不连接 Internet , 那么无湎为了使用 TCP/IP通信协议而向 InterNIC 或 ISP 取得 已登录的 IP 地址使用权, 在此情形下, IANA (Internet Assigned Numbers Authority 建议使
15、用 私 有 IP 地址 。这些地址都是由 IANA 所保留,主要是提供在 TCP/IP网络上的私人使用, Internet 上的主机也不可使用这些地址,而这些私有 IP 地址正是 NAT 运作上所使用的地址。这些私有 IP 地址的范围如表 1-2所示 注:有些人习惯将这些 IANA 保留 IP 地址称为虚拟 IP ,而开放在 Internet 上的地址则称为物理 IP 地 址,但是作者认为这些名称并不合适。因为这些保留的 IP 地址也是由 RFC 正式定义的 IP 地址, 何称 虚拟 呢?所以我们将用 内部 IP 表示从 IANA 所保留的 IP 地址, 而在 Internet 上使用的 IP
16、 地址则是以 外部 IP 来表示。 子网掩码(Subnet Mask子掩码和一般的 IP 地址相同,都是由 32个二进制的数字所组成,它的惟一功能就是辨别 IP 地 址中网络识别码和主机识别码部分为什么, 这在网络传输上相当重要, 因为具有相同网络识别码 的主机要以直接地通信,而不同网络识别码的主机就需要通过网关来转送信息。在利用子网掩码判断 IP 地址的网络识别码和主机识别码的部分时,要按以下的步骤来运算我们 在此以一个 Class B的 IP 地址 5和 Clalss B默认的子网掩码 -为例。 将 IP 地址转换为二进制表示法在所有的子网掩码运
17、算和子网分割运算中,所有的 IP 地址及子网掩码都必须先转换为二进制表 示法。在本例中 5的二进制表示法为10010110000101110011100000011001注:在转换为二进制表示法时须注意一点,如果不足 8位时须以 0补足,例如 56的二进制表示法应 写成 00111000 ,而不是 111000 。将子网掩码转换为二进制表示法在本例中子网掩码 的二进制表示法为 1111111111111110000000000000000,而各种类 型网络默认的子网掩码如表 1-3所示。 将以二进制表示法的 IP 地址和子网掩码利用 AND 运算所谓
18、 AND 运算是指真值表中 与 的运算,只要二者其中有一个是 0,则运算后值就为 0,只有 在二者都为 1的情形下才会为 1。有关 AND 运算的结果如下所示:1 AND 1 = 1 1 AND 0 = 00 AND 1 = 0 0 AND 0 = 0在了解 AND 运算后,就可以将以二进制表示法的 IP 地址和子网掩码利用 AND 来运算,运算 的过程及结果如图 1-4所示。 运算结果中非 0的部分为网络识别码在 IP 地址和子网掩码利用 AND 运算后,它的结果中不是 0的部分就是网络识别码,在本例中 为 150.23,但是通常习惯用 0来将它写成类似 IP 地址的形态,如 150.23.
19、0.0。在发送信息前, IP 即是以这种方法来判断目的地的主机是否存在本地网络,如果目的地主机位于远程网络, IP 就 会将此信息发送到路由或默认的网关,如图 1-5所示。由以上的结果可知,如果要避免寻址及路由问题,应该确保在同一网络区域上的所有 TCP/IP主 机都使用相同的子网掩码。 NAT 原理及主要功能前面内容介绍了 IP 的基本概念,接下来将开始介绍有关 NA T 的内容。所谓 网络地址转换 (Network Address Translation, NAT , 它是定义于 RFC 1631中的 Internet 标准, 主要是用来简化 及保存 IP 地址, 它可让原本无法上网, 但
20、是可以使用内部 IP 地址的主机可以成功地连接 Internet 。 这可大大减少 IP 地址的需求,因为基本上整个内部网络都可凭借 NA T 上的一具外部 IP 来连接 Internet ,如图 1-6所示。 当 NAT 作用于路由器时,通常可连接两组以上的网络上在转送数据包到其他网络前,将内部 IP 地址转换为 Internet 上合法的外部 IP 地址。此外, NAT 还可以对外只用一个地址代表整个网络, 这样可以提供更高的安全性, 将整个内部网络隐藏在该地址后, 将这种安全性及地址保存的双重 功能的程序通常安装在远程访问的环境。目前许多的路由器支持 NA T 这项功能,其他如 Linu
21、x 中的 IP 伪装(IP Masquerade , FreeBSD 中的 NATD 或 Windows 上的 Sygate 软件都具有相同的 功能。使用 NAT 的优点如下: 减少 IP 地址使用量。在使用 NAT 以后, Internet 上的主机会误以为它正与 NAT 服务器进行通 信,因为它们并不知在 NAT 主机后包含一个局域网。于是, 回传的数据包会直接发送到 NA T 服 务器, 然后 NAT 服务器再将这个数据包头文件目的地的 IP 地址更为局域网里真正发出信息的计 算机。 可在 NAT 服务器上的外部 IP 上建立多个 IP Alias ,当收到传给那些 IP Alias的请
22、求时, NA T 可以把这些请示求转送给内部网络中提供服务的服务器。 负载平衡(Load Balancing ,也就是说,将同一个 IP Alias请求分别导向到其他运行相同服务 的服务器,可减少单一服务器的工作量。虽然使用 NAT 具有以上的优点,但是在某些情况下,必须注意 NA T 潜藏的缺点, 以下举出几个 例子以供读者参考: 理论上, NAT 服务器只使用一个 IP 地址,就可涵盖无数个内部 IP 地址,但是许多网络通信 协议或应用程序都需要真正点对点的连接。 有些数据包是从出发地到目的地过程中的过程中都不能修改,像 IP 安全体系结构就不可以使用 NAT 进行映射,因为数据包的头文件
23、中含有数字签名,如果头文件被更改(即使是任何一个 字 ,这个数字签名便从此失去效力。 虽然 NAT 对于无法取得足够 IP 地址的企业组织来说, 它是一个极佳的解决方案, 但当该组织 必须合并多个局域网时,必须仔细重新规划 IP 分配,否则很容易产生 IP 重复的情况(因为每个 局域网都使用内部 IP 地址 。 NAT通常被人视为增加计算机安全性的保护措施,但是如果入侵者可以控制 NAT 服务器,那 么整个局域网就会暴露在 Internet 当中,因此 NAT 并不能拿来代替防火墙使用。NAT 依其作用的方向性可区分两种类型: Source NAT (SNAT:所谓的 Source NAT 就
24、是改变第一个数据包的来源地址,它永远会在数据 包发送到网络之前完成,数据包伪装就是一具 SNAT 的例子。 Destination NAT (DNAT:Destination NAT刚好与 SNAT 相反,它是改变第一个数据懈的目的 地地址,如平衡负载就是属于 DNAT 。 NAT 服务器的安装与使用经过以上两个小节的说明, 想必各位读者现在对于 IP 及 NAT 服务器的原理一定有所了解, 接下 来将实际进行 NAT 服务器的安装。 本书中的环境假设 NAT 服务器目前只具备一张网卡 (负责连 接 Internet ,而且这张网卡使用以下的外部 IP 地址配置: 网卡名称:eth0。 IP地
25、址:18。 子网掩码:。而为了连接内部网络(本书假设为 192.168.1.x 必须再新建一张网卡,它使用内部 IP 地址配置: 网卡名称:eth1。 IP地址:. 子网掩码:。图 1-8所示是本书范例使用的网络体系结构。 iptables 安装在安装 NAT 服务器前,必须确定系统上已安装 iptables 程序,如果不知是否已经安装 iptables , 可以使用以下的方法来判断:root ns l root# rpm-qa iptablesIptables-1.2.7a-2如 果尚 未 安装 i
26、ptables , 可 以在 第 一 张 安装 光 盘 中 的 /Red Hat/RPMS目 录 下 ,找 到 名为 iptables -1.2.7a-2.i386.rpm 的安装程序,然后按照以下的方法进行安装:root ns l root# rpm ivh iptables-1.2.7a-2.i386.rpm为使开机时能自动运行 iptablas ,可以在终端机窗口中输入 ntsysv 指令,然后在出现的画面中, 利用上下方向键将光标移到菜单中的 iptables 项目(同时确定 ipchains 选项没有被选中 ,然后 按空格键以选择,最后利用 Tab 键将光标移到 确定 按钮并按 En
27、ter 键即完成设置,如图 1-9所 示。 网卡安装在安装 iptables 程序后,接下来我们将安装第二张网卡连接内部网络,以下是逐步的安装说明。 为了避免安装时的失败,建议先准备一张 Linux 支持的网卡, 如果不确定这张网卡是否可用, 可 到以下网址查阅(本书以 Red Hat为例 :http:/ 插入网卡并启动电源后, Linux 会自动检测这张网卡, 然后 Linux 会要求输入 IP 地址、 子网掩码、 网关和 DNS 服务器 IP 地址等配置信息。启动第二张卡。root ns l root# ifup eth l使用 IP Forwarding功能在安装第二张网卡后,接下来须使
28、用 IP Forwarding 的功能,代替内部网络的主机发送数据包, 以下是使用的步骤及说明: 修改 /etc/sysctl.conf文件内容,将 net .ipv4.ip_forward= 这行设置为 1 。root ns l root# vi /etc/sysctl.confNet.ipv4.ip_forward=1 使用 IP Forwarding 功能。在此介绍两种使用 IP Forwarding 功能方法,可以直接运行以下的 指令:root ns l root# echo 1 > /proc/sys/net/ipv4/ip_forward或在 /etc/sysconfig/n
29、etwork文件中,加入以下的记录:root ns l root# vi /etc/sysconfig/network 最后重新加载 /etc/rc.d/init.d/xinetd,以便设置生效:root ns l root# /etc/rc.d/init.d/xinetd reload重新加载配置设置:确定 在此可以先忽略安全性的考虑,等安装完成并测试成功后,再进行安全管理。以下的指令表 示允许所有内部网络的主机连接到 Internet ,这也是一般所称的 IP 伪装 (IP Masquerading : root ns l root # iptables t nat A POSTROUTI
30、NG s /24 j MASQUERADE但有时使用以上的指令后, FTP 会无法正常运作,此时可以尝试以下的指令:root ns l root# modprobe ip _conntrack_ftproot ns l root # modprobe ip_nat_ftp客户端设置在 NAT 服务器设置后,最后的步骤就是客户端的设置,本书在此以 Windows 2000客户端为例。 以下是设置的步骤与说明: 选择桌面上的 网上邻居 图标,然后右击并选择菜单中的 属性 选项,系统即会出现 网络和 拨号连接 窗口,如图 1-10所示。 在出现的 网络和拨号连接 窗口中选择 本
31、地连接 图标,然后右击并选择要菜单中的 属性 选项,系统会随即出现 本地连接属性 窗口,如图 9-11所示。 在出现的 本地连接属性 窗口中,选择 Internet 协议(TCP/IP 选项,并单击右下角的 属 性 按钮,系统会随即出现 Internet 协议(TCP/IP属性 窗口,如图 1-12所示。 在出现 Internet 协议(TCP/IP属性 窗口中,首先选择 使用下面的 IP 地址 选项, 然后输入 以下的信息: IP 地址 字段:输入 192.168.1.X ,本书在此以 为例。 子网掩码 字段:输入 ,必须与 NAT 服务器内部
32、 IP 使用的子网掩码相同。 默认网关 字段:这是最重要的设置,必须输入 NAT 服务器的内部 IP (此处是 , 千万不可填入 NAT 服务器的外部 IP ,否则数据包永远也无法传到 NA T 服务器(因为 网络 ID 不同即无法通信 。 首选 DNS 服务器 字段:如果网络中有 DNS 服务器, 就可以在此输入 DNS 服务器的 IP 地址。 完成客户端的设置。 iptables 在防火墙上的运用介绍安装 NAT 服务器时简要地说明了 iptables 程序,其实它还有许多功能尚未说明,因此本节 将再进一步说明 iptables 程序在防火墙上的运用。iptable
33、s 体系结构与处理流程iptables 程序的功能都是属于数据包(Packet 层的工作,而这些工作都是利用不同的 规则表 (Rule Table 来定义的。在 iptables 中包含 3个默认的 Rule Table :Filter Table 、 NAT Table 与 Mangle Table,而每一个 Rule Table又是由数个 链 (Chain 所组成。举例来说,在 Filter Table中除了定制的链之外, 还包含 3个内置的链:INPUT Chain、 OUTPUT Chain和 FORWARD Chain, 如图 1-13所法。 Filter Table是 iptabl
34、es 中的默认 Rule Table, 也就是说, 在运行时如果没有指定其他参数, 则 iptables 会套用 Filter Table中的规则, 令外两种 Rule Table都需要配合指令参数使用。 而在防火墙的运用 上, iptables 主要是使用默认的 Filter Table功能, 所以有人就称为 包过滤器 (Packet Filter 。 Filter Table 可以先检索到数据包,然后通过预选取一义的规则(Rule 来判断是否发送此数据包。由 于它运行于网络层,所以不论是否发送数据包,都不会影响到数据包中的数据内容。注:所谓 包过滤 是指利用一具软件查看经过数据包的表头(H
35、eader ,而由此决定整个数据包的处 理,可能的处理方式有:丢弃这个数据包(DROP 、接受这个数据包(ACCEPT ,或其他更复 杂的动作。数据包过滤原理图 1-14是在 Filter Table中内置的 3个链与防火墙发送数据包之间的流程图。 图 1-14表示,当一个数据包抵达图 9-13中的任何一个链,则这个链就会开始检查这个数据包, 以决定后续的处理,如丢弃或接受。其实每个链都是一个检查列表, 它会利用预先设置的规则来对数据包进行判断, 如果判断的结果 不符合(Mach ,就会交给链中的下一个规则继续处理。如果到最后已没有任何规则可供判断, 那内核就会利用链的规则(Policy 来作
36、出决定,但是为了安全起见,规则通常会要求内核丢弃 此数据包。以下就是防火墙发送数据包的流程说明: 当防火墙拦截到数据包后,内核首先会检查此数据包的目的地(Destination ,而这个检查的 过程便称为 路由(Routing 。 如果目的地址为本机,则此数据包就会流向 INPUT 链,而由本机程序来负责接管。然后由 OUTPUT 链处理,如果此数据包可被此处的规则接受,则这个数据包可送到它所指向的接口。 此时如果内核没有启动转送功能(Forwarding ,或不知道如何转送此数据包,则这个数据包 就会被丢弃。 如果转送功能已启动,那么此数据包就会被指向另一个网络接口,而流向 FORWARD
37、链,如 果此数据包可被此处的规则接受,这个数据包就可送到它所指向的接口。iptables 程序使用在了解 iptables 程序的基本原理后,接下来的内容将介绍 iptables 程序的使用方法以及各个选项 与参数。 Iptable 的语法结构如表 1-4所示。 Table 类型Table 类型 是指目前内核的 Rule Table类型,而在指定 Table 类型时必须配合 - -table 或 -t 参 数的使用,表 1-5列出了可供设置的 Table 类型及说明。 指令(Command 指令 表示要求 iptables 程序运行的工作,而在每一个 iptables 指令中,只允许使用一个指
38、令。 除了 help 指令之外,所有的指令都必须用大写(Upper-Case 字母来表示,表 1-6列出了可供 使用的指令名称及说明。 参数在指定 iptables 参数选项时, 如果在选项前加入惊叹号 ! 则表示否定的意思, 例如 -s! localhost 是表示除了 localhost 的来源地址都可以。可以命名用如表 1-7所示的参数。 注:在来源(-s 和目的地(-d 的表示法有以下 3种:使用完整的主机名称,如 或 localhost 。使用 IP 地址,如 26。使 用 网 络 地 址 , 如 /24或 /255.2
39、55.255.0, 两 者 都 是 包 含 55的 IP 地址。 斜线后的数字表示子网掩码的位数, 例如 /8表示 。 选项在 iptables 指令最后一部分为 选项 ,但这部分的可设置项目会随着前面的 参数 而变,因此本 书在此分别介绍不同情形下的选项说明:通信协议选项在 参数 部分如果使用 - -protocol 或 -p , 可以指定使用的通信协议种类, 其中包括 TCP 、 UDP 、 ICMP 或全部(all 。此处的写法没有区分大小写,而且能以数学代替,如果要知道每种通信协 议代表的数字,可以查阅 / etc/prot
40、ocols文件中的内容,例如 tcp 为 6、 udp 为 17而 icmp 为 1。表 1-8列出了在选择不同通信协议时可用的选项名称及说明。 目标选项在 参数 部分如果使用 -j 或 -jump ,就可设置此规则的 目标 (Target , 这可说是最重要的设 置项目,如果少了这个选项,此规则就形同虚设。在此选项后必须使用大写来指定规则的目标, 其中可用的目标选项及说明如表 1-9所示。 保存 iptables 设置因为使用 iptables 程序所建立的规则只会保存在内存中,因此如果要重新启动计算机,那么这些 设 置都 将 消 失 。 如果 希 望 某些 规 则 可 以 在每 次 开 机
41、后 都 生 效 , 则必 须 将 此规 则 保 存在 /etc/sysconfig/iptables文件中。要将规则保存在 /etc/sysconfig/iptables文件中并不需要手动输入,可利用以下的指令进行: root ns l root # /etc/rc.d/init.d /iptables save保存目前的设置到 /etc/sysconfig/iptables:确定 或root ns l root # /sbin/service iptables save保存目前的设置到 /etc/sysconfig/iptables:确定 在运行以上的指令后, iptables 初始指令文件
42、会运行 /sbin/iptables-save程序,并且将结果写入 /etc/sysconfig/iptables文件中。以下是 /etc/sysconfig/iptables文件的范例内容: 因为 /etc/sysconfig/iptables 文件只允许管理员读取,所以不必担心有关数据包筛选规则的内容会 泄露到其他用户。root ns l root # ls l /etc/sysconfig/iptables-rw- l root root 490 4 月 9 13:24 /etc/sysconfig/iptables在将 iptables 规则存入 /etc/sysconfig/ipta
43、bles文件后,下次主机重新启动时, iptables 初始指令文 件会运行 /sbin/iptables-restore程序来使用保存规则。 范例练习以下将通过各种不同类型的范例来说明 iptables 的实际设置,读者可以先由这些练习开始尝试, 待熟练后再加以修改其中的内容,以符合实际环境的需求。新建链以下的范例将新建一个简单链,可以定制链的名称,不过最多不可超过 31个字符,本书在此 chain-1为例。在新建后,才可以开始将规则加入其中,在此应该使用 -N 或 - -new-chain 选项: root ns l root# iptables Nchain-n或root ns l ro
44、ot # iptables new-chain chain-1如果使用的链名已经存在,系统会出现以下的错误信息:iptables:Chain already exists删除链以下的范例将删除一个链,这里应该用 -X 或 -delete-chain 选项,同时指定要删除的链名: root ns l root # iptables X chain-1或root ns l root # iptables -delete-chain chain-但是在删除链时需注意以下几个重点: 在此链中必须没有存在任何规则。 此链不可为任何规则的目标。 不可删除任何内置链。 如果没有指定链名,可能会误删所有用户定
45、义的链。清空链的内容以下的范例清空一个链的内容,在此应该使用 -F 或 - -flush 选项,同时指定要清空的链名,否 则会清空所有链的内容:root ns l root # iptables F chain l或root ns l root # iptables flush chain-l列出链的内容以下的范例将列出链的内容,在此应该使用 -L 或 - -list 选项,同时指定要列出内容的链名,否 则会列出所有链的内容:root ns l root # iptables L chain l或root ns l root # iptables -list chain-l因为目前范例为新建的
46、链, 因此列出的内容中只包含字段名称, 如果希望得到较详细的内容, 可 以同时使用 -V 选项:Chain chain -1 (0 referencesTarget prot opt source destination关闭所有服务为了达到最高的安全性,可以禁止所有进出 INPUT Chain、 FORWARD Chain和 OUTPUT Chain的数据包, 但因为此举具有最高的优选权, 即如果选设置禁止服务, 此后的所有允许的规则都将 失效,所以建议将此步骤列为最后的步骤。以下是关闭所有服务的方法:root ns l root# -P INPUT DENYroot ns l root# -
47、P FORWARD KENYroot ns l root# -P OUPPUT DENY提醒读者一点,在设置任何的规则后,千万不可重新启动 iptables 服务,否则所有的设置都会被 清空。root ns l root # /etc/rc.d /init.d/iptables restart释放所有目前的设置与用户定义的 chains :确定 清除所有的设置和用户定义的 chains :确定 套用 iptables 防火墙设置:确定 开放特定服务如果主机上提供某些服务, 可以利用启动该服务的连接端口, 允许客户端使用该服务, 以下的范 例表示开放 FTP 服务,因为 FTP 使用连接端口 2
48、0和 21,所以必须使用两行指令:root ns l root # iptables A INPUT i ethl p tcp -dport20 j ACCEPTroot ns l root # iptables A INPUT i ethl p tcp -dport21 j ACCEPT注:也可以直接使用服务名称来替代连接商品号码,请参考 /etc/services文件内容。关闭特定服务关闭原本提供的服务,其设置方法和开放服务时很相似,只是将 -j ACCEPT 修改为 -j DROP , 以下的范例表示关闭原来开放的 FTP 服务 :root ns l root # iptables A
49、INPUT i ethl p tcp dport20 j DROProot ns l root # iptables A INPUT i ethl p tcp -dport21 j DROP数据包过滤如果希望禁止网络上某台主机或某个网络节点发送数据包, 可以使用 数据包过滤 功能。 以下的 范例会禁止所有来自 /24 网络区段的主机,连接 IP 地址为 6的 Web 服务器: root ns l root # iptables A FORWARD p TCP s /24-d 6dport www j DRO
50、P 防火墙简单设置 除了以上利用 iptables 程序的方式来设置防火墙外,在 Red Hat Linux 中也包含了名为“lokkit”的 防火墙设置程序, 它最大的好处是允许用户利用预先设置的选项来进行防火墙设置, 虽然它的功 能不如 iptables 程序强大,但是它极易上物的特性,确实获得了许多用户的青睐。所以在这个小 节中,将介绍“loddik”程序的使用与设置时的选项说明。 要启动“lokkit”程序,可以在 X Window 或文字模式下输入“lokkit”,系统就会启动“Firewall Configuration”画面,如图 1-15 所示。 在“Firewall Conf
51、iguration”画面的“Security Level”选项中, 共包含 3 种内置的安全性设置, High、 即 Medium 和 No firewall。以下是这些内置安全性设置的说明: Hige 这是安全性最高的选项,如果选择此选项,在默认的情形下,防火墙只会开放以下两种服务的功 能: DNS 回应。 DHCP 请求。 如果主机目前已连接到 Internet,但是并不想提供任何的服务,这是最好的选项。 Medium 这是 Red Hat Linux 默认的防火墙设置,如果选择此选项,在默认情况下系统会禁止以下服力: 所有连接端口号码小于 1023 的服务,如 FTP、SSH、telnet 和 HTTP。 NFS 服务(连接端口 2049) 。 X 字型服务器(连接端口 7100) X Window 连接服务(连接端口 60006009) 。 注: 在高安全性和中等安全性的防火设置下,NIS 与 LDAP 等网络验证方式将无法使用。 No firewall 这个选项表示没有启动防火墙的功能,也就是说,系统可以提供客户端所有服务,而且不作任何 安全性的检查,它比较适合使用在内部的网络环境(不连接 Internet
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度全款购入进口跑车合同范本3篇
- 二零二五年度企业与个人投资回报对赌协议3篇
- 二零二五年度员工试用期工作内容调整及考核标准协议3篇
- 二零二五年度电商平台商家会员返利合同3篇
- 2025年度新能源汽车产业链投资基金合作协议3篇
- 2025年度公司股东内部关于企业并购整合的专项协议3篇
- 2025年度绿色能源项目分摊协议3篇
- 二零二五年度新能源汽车充电桩建设投资入股合同3篇
- 2025通信销售合同
- 2025年农村土地永久转让与农村电商合作框架合同3篇
- 承压设备事故及处理课件
- 煤层气现场监督工作要点
- 工会经费收支预算表
- 舒尔特方格55格200张提高专注力A4纸直接打印版
- 质量管理体系各条款的审核重点
- 聚丙烯化学品安全技术说明书(MSDS)
- BBC美丽中国英文字幕
- 卫生院工程施工组织设计方案
- CDR-临床痴呆评定量表
- 《八年级下学期语文教学个人工作总结》
- 铝合金门窗制作工艺卡片 - 修改
评论
0/150
提交评论