📄 0250simple_firewall.htm
字号:
<!DOCTYPE html PUBLIC "-//w3c//dtd html 4.0 transitional//en"><html><head> <meta http-equiv="Content-Type" content="text/html; "> <meta name="Author" content="VBird"> <meta name="GENERATOR" content="Mozilla/4.5 [zh-TW] (WinNT; I) [Netscape]"> <meta name="Description" content="利用簡單的 iptables 規則,配合 TCP_Wrappers 來進行防火牆建置呢!"> <title>鸟哥的 Linux 私房菜 -- Simple Firewall setup</title><!-- saved from url=(0022)http://internet.e-mail --><style> <!-- body{background-image=url(http://linux.vbird.org/VBirdLinux.jpg);background-ATTACHMENT=FIXED} --></style></head><body nosave="" background="0250simple_firewall_files/VBirdLinux.jpg"><center><center><b><font size="+2" color="#3333ff"><font face="SimSun">鸟哥的</font><font face="Times New Roman,Times"> Linux </font><font face="SimSun">与</font><font face="Times New Roman,Times"> ADSL </font><font face="SimSun">私房菜</font></font></b><br><a href="http://linux.vbird.org/" target="_top"><img src="0250simple_firewall_files/VBirdTitle2.jpg" nosave="" border="0" height="25" width="90"></a><a href="http://linux.vbird.org/linux_basic"><img src="0250simple_firewall_files/icon_system.gif" nosave="" border="0" height="25" width="90"></a><a href="http://linux.vbird.org/linux_server"><img src="0250simple_firewall_files/icon_server.gif" nosave="" border="0" height="25" width="90"></a><a href="http://linux.vbird.org/linux_security"><img src="0250simple_firewall_files/icon_security.jpg" nosave="" border="0" height="25" width="90"></a><a href="http://phorum.vbird.org/" target="_blank"><img src="0250simple_firewall_files/icon_forums.gif" nosave="" border="0" height="25" width="90"></a><a href="http://linux.vbird.org/adsl"><img src="0250simple_firewall_files/icon_adsl.gif" nosave="" border="0" height="25" width="90"></a><br><hr width="100%"></center><font size="+2" color="#3333ff"><a href="http://linux.vbird.org/linux_server/0250simple_firewall.php" target="_self"><font face="SimSun">简易</font><font face="Times New Roman,Times">Firewall </font><font face="SimSun">架设</font></a></font></center><div align="right"><font size="-1" color="#3333ff" face="SimSun">最近更新日期:2003/08/25</font></div><font size="-2" color="#3333ff" face="SimSun"> </font><table bgcolor="#ffcccc" border="1" cols="1" width="100%"><tbody><tr><td><font size="-1" color="#000099">在谈完了基本的网络安全观念之后,这个章节主要就要针对『防火墙』来进行介绍了!目前的防火墙机制主要是以Linux Kernel 2.4 版的 iptables 为主的,而 iptables 可以使用指令来下达,也可以透过编写shell script 来进行指令的整合。鸟哥本人比较习惯使用 scripts 来进行 iptables的机制规划呢!除了 iptables 之外,事实上,比较简单的还有 TCP Wrappers 这个玩意儿,他则主要是针对某些服务来进行管理的吶!本章的内容主要就是在介绍这两个重要的防火墙软件了!</font></td></tr></tbody></table><font size="-2" color="#000099"> </font><br><font color="#000099"><font size="+1"><a href="#firewall">防火墙</a></font>:</font><br><font color="#000099"> :<a href="#firewall_Why">为何需要防火墙</a></font><br><font color="#000099"> :<a href="#firewall_type">防火墙的主要类别</a></font><br><font color="#000099"> :<a href="#firewall_topo">防火墙的一般线路布线与抵挡技巧</a></font><br><font color="#000099"> :<a href="#firewall_limit">防火墙的使用限制</a></font><br><font color="#000099"><font size="+1"><a href="#iptables">Linux 的封包过滤机制</a></font>:</font><br><font color="#000099"> :<a href="#iptables_kernel_version">Linux核心版本与防火墙机制</a></font><br><font color="#000099"> :<a href="#iptables_fllow_table">iptables的表格与封包进入的流程</a></font><br><font color="#000099"> :<a href="#iptables_synx">iptables 的语法</a>:<a href="#iptables_synx_clean">清除规则</a>,<a href="#iptables_synx_policy">定义政策</a>,<a href="#iptables_synx_add_insert">增加与插入规则</a>,<a href="#iptables_synx_save_restore">纪录与回复防火墙规则</a></font><br><font size="+1" color="#000099"><a href="#simple_firewall">一个简单的防火墙设定</a>:</font><br><font color="#000099"> :<a href="#simple_firewall_rule">我的防火墙规则的草拟</a></font><br><font color="#000099"> :<a href="#simple_firewall_script">规则设定</a></font><br><font color="#000099"><font size="+1"><a href="#TCP_Wrappers">TCP Wrappers</a></font>:</font><br><font color="#000099"> :<a href="#TCP_Wrappers_WHAT">什么是 TCPWrappers 与他的抵挡机制</a></font><br><font color="#000099"> :<a href="#TCP_Wrappers_rule">TCP Wrapperes的规则说明</a></font><br><font color="#000099"><font size="+1"><a href="#other_test">其它的相关测试</a></font>:</font><br><font size="+1" color="#000099"><a href="#DMZ">进阶:防火墙后端服务器的架设</a></font><br><font size="+1" color="#000099"><a href="#review">重点回顾</a></font><br><font size="+1" color="#000099"><a href="#reference">参考数据</a></font><br><font size="+1" color="#000099"><a href="#ex">课后练习</a></font><br><hr width="100%"><a name="firewall"></a><font size="+1" color="#000099">防火墙:</font><ul>网络安全除了随时注意套件的漏洞,以及网络上的安全通报之外,您最好能够依据自己的环境来订定防火墙机制,这样对于您的网络环境,会比较有保障一点喔!那么什么是防火墙呢?说穿了,其实<font color="#000066">防火墙就是在管制进入到我们网域内的主机(或者可以说是网域)的资料封包的一种机制</font>,例如我们在前一章节<a href="http://linux.vbird.org/linux_server/0240network-secure-1.php">认识网络安全</a>当中提到的iptables 就是一种防火墙机制了。当然了,更广义的来说,<font color="#000066">只要能够分析与过滤进入我们管理之网域的封包资料,就可以称为防火墙</font>,所以这个防火墙又可以分为硬件防火墙与本机的软件防火墙啊!硬件防火墙也就是一些厂商设计好的硬件,里面的系统软件已经设定好了封包数据的过滤机制,因为他几乎单纯就是用来进行网络安全管理的,所以称为硬件防火墙。至于软件防火墙呢?那就是我们这个章节要来谈论的啊!软件防火墙本身就是在保护系统网络安全的一套软件(或称为机制),例如iptables 与 TCP Wrappers都可以称为软件防火墙。无论怎么分,反正防火墙就是用来保护我们网络安全的咚咚就对啦!呵呵!我们这个章节主要在介绍Linux 系统本身提供的软件防火墙的功能,那就是 iptables 与 TCP Wrappers 喔!<br> <br><hr width="100%"><a name="firewall_Why"></a><font color="#000099">为何需要防火墙</font><br> <br>因为不希望常常在网络上面看到『唉呀!我依据某某网页的信息架设了一个Linux 主机,为什么过了一个星期之后,以 root 的密码无法登入我的主机?』,还有一种说法『唉呦!我的Linux 主机为什么无法查询登录文件了?为什么被 ISP 警告说我的 mail server被列为黑名单了,为什么被侦测到说我有攻击人家?我都没有做坏事呀!?』呵呵!很伤脑筋对不对~没错啦!网络安全果然是很麻烦!又得要天天照顾他,又得要随时更新到最新版的套件!唉~麻烦吶!但是网络安全却又是一个网管人员的基本知识要求,一个具有良好的防火墙措施的主机,可以让一个网管人员过的更开心呀!<br> <br>要晓得的是,我们是一般的小家庭,所以主机即使被 Cracker 入侵,只要在对方利用我们的IP干坏事之前就将主机给他关掉的话,还能稍微保护一下自己,但是若您是一个大型企业的主机,而且还提供有关信用卡啦,个人用户的信息啦等等的讯息时,那么可不能说关机就关机的,这个时候怎么办?如果您没有设定紧急应变手则,没有良好的登录档案分析习惯,也没有实时回报系统在帮您侦测您的主机,嘿嘿!那总损失除了金额之外,还包括公司的信誉,那可是很可怕的呦!由国外的分析可以发现,几乎主机被入侵之后,损失的除了金钱之外,还有主机维护的时间、软硬件重新设定的费用等等,相当可观的一笔费用呀~<br> <br>所以啦!架设一部具有较为安全的主机,对我们来说,也是相当重要的,怎么说呢?别以为我们是一般的ADSL 拨接的小站就无所谓呦!等到真的被入侵之后,然后您的主机被利用来作坏事,然后利用您的主机作坏事的那个人又将他的登录信息杀掉,让人家找不到他,嘿嘿!到时候吃官司的可会是您!别以为ADSL 拨接制的频宽不足呢!要使用您的主机来做事那也不需要多大的频宽,只要能连上Internet ,只要能再藉由您的主机向外面扩散,嘿嘿!再怎么小的频宽都有人会利用的!『<font color="#000066">千万不要小看系统的安全性~</font>』<br> <br><hr width="100%"><a name="firewall_type"></a><font color="#000099">防火墙的主要类别</font><br> <br>除了以软件及硬件作为防火墙的分类之外,基本上,我们也可以使用防火墙对于封包的抵挡机制来进行分类。主要可以分为两大类,分别是<b><font color="#000066">代理服务器(Proxy)</font></b> 以及 <b><font color="#000066">IP Filter</font></b> 。在代理服务器方面,由名称我们就可以知道,代理服务器仅是代理Client 端去向 Internet 要求数据,所以呢, Proxy 其实已经将可代理的协议限制的很少很少,并且由于内部与外部计算机的并不能直接互通,所以可以达到良好的保护效果;另一种则是上面提到的IP fileter 啦!利用封包过滤的方式来达到防火墙的目的!<br> <ul><li><font color="#000099">Proxy :</font></li><br>这是属于网络『应用层』的咚咚了,这个 <a href="http://linux.vbird.org/linux_server/0420squid.php">Proxy( 代理服务器 )</a> 基本上就是一种『服务』喔!他的功能可以如下图来表示:<br> <center><img src="0250simple_firewall_files/0240network-secure-3.jpg" nosave="" height="92" width="432"><br><font color="#000066">图一、Proxy 主机的示意图</font></center> <br>当 Client 有要求的时候, Proxy Server 会帮 Client 去外面捉取数据,然后再将数据丢回给Client 端!请注意,此时真正出去 Internet 的,其实是 Proxy Server ,而不是Client 端呦!( 这个跟 NAT 服务并不太一样,会在后续的 <a href="http://linux.vbird.org/linux_server/0320nat.php">NAT主机设定</a>时再提到。)由于 Client 端并不是直接出去,加上 Proxy Server 一般仅开放 80 及 21, 20port 而已,因此可以较为安全!相对的,对于 Client 端的限制自然就较多了!更详细的Proxy 说明我们会在后续的<a href="http://linux.vbird.org/linux_server/0420squid.php">代理服务器</a>章节中提到。<br> </ul><ul><li><font color="#000099">IP fileter :</font></li><br>直接以 IP filter 来进行封包的过滤!这个时候会由 TCP 的 header 分析起来,再决定是否可以让该TCP 封包进入主机。因为是分析 TCP/IP 的封包,所以使用到的网络协议是比较底层的信息喔,因为底层的信息相当的复杂,包括了网络卡的硬件地址(MAC)、软件地址、TCP,UDP, ICMP 等封包的 Header 讯息、TCP 封包的三向交握观念等等,所以 IP Filter可以达成的功能可就大的多了!另外,一般我们谈到的 Linux 上的防火墙大多指的就是iptables 这个 IP Filter 机制了,他利用一些封包过滤的规则设定,来定义出什么数据可以接收,什么数据需要剔除,以达到保护主机的目的喔!</ul> <br>在这个章节中,我们先不谈 Proxy 这个东西,仅来分析一下最基础的两个防火墙机制,一个是iptables ,另一个则是 TCP_Wrappers !<br> <br><hr width="100%"><a name="firewall_topo"></a><font color="#000099">防火墙的一般线路布线与抵挡技巧</font><br> <br>由前面的说明当中,您应该可以了解到一件事,那就是防火墙除了可以『<font color="#000066">保护防火墙机制(iptables)本身所在的那部主机</font>』之外,还可以『<font color="#000066">保护防火墙后面的主机或PC</font>』。呵呵!没错!防火墙的功能可是很大的喔!除了可以帮助我们抵御外来的主动联机之外,也可以帮我们控管网络流量,并且,在简单的局域网络规划中,Firewall 搭配 Router ( 就是 NAT 主机的架构 ) 也是相当常见的一种规划!这种规划对于内部私有网域的安全也有一定程度的保护作用呢!底下我们稍微谈一谈目前常见的防火墙规划:<br> <ul><li><font color="#000099">单一 Linux 主机兼任防火墙功能:</font></li><br>我们的网域里面仅有一部 Linux 主机,该主机负责我们整个 LAN 里面所有个人计算机对外的联机,所以他也是我们LAN 里面的 Router 。该防火墙一般会有两个接口,一个对内一个对外,同时,您也可以直接在Linux 防火墙上面架设网站,这是目前针对小型的企业所常见的网络配置状态。在这样的配置状态中,所有的PC 都会经过 Firewall 的封包过滤之后,才能将数据封包送出或者是收受,而如果Internet 上面出现问题,您只要管理 Firewall 那部主机,就可以很轻易的将来自Internet 的不良封包抵挡掉喔!管理一部防火墙就能够造福整个 LAN 里面的 PC,很划算吧!^_^!而且,在 Firewall 上面可以同时架设 Proxy ,用来控制 Client 端的 WWW联机状态,呵呵!控制的更详尽吶!(注:也可以加设网络流量监控软件,例如 <a href="http://linux.vbird.org/linux_security/old/04mrtg.php">MRTG</a>来分析频宽喔!)基本上,这样的配置好处为:<ul><li><font color="#000066">安全维护在内部可以开放的权限较大!</font></li><li><font color="#000066">安全机制的设定可以针对 Linux 主机来维护即可!</font></li><li><font color="#000066">对外只看的到 Linux 主机,所以对于内部可以达到有效的安全防护!</font></li></ul> <center><a name="fig_02"></a><img src="0250simple_firewall_files/firewall-01.jpg" nosave="" height="221" width="439"><br><font color="#000066">图二、单一 Linux 防火墙主机</font></center> <li><font color="#000099">单一 Linux 防火墙,但 LAN 内另设防火墙:</font></li><br>一般来说,我们的防火墙对于 LAN 的防备都不会设定的很严格,因为是我们自己的LAN 嘛!所以是信任网域之一啰!不过,最常听到的入侵方法也是使用这样的一个信任漏洞!因为您不能保证所有使用企业内部计算机的使用者都是公司的员工,也无法保证您的员工不会『搞破坏!』呵呵!所以,如果您有特别重要的部门需要更安全的保护网络环境,那么将LAN 里面再加设一个防火墙,将安全等级分类,那么将会让您的重要数据获得更佳的保护喔!<br>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -