⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 00000014.htm

📁 一份很好的linux入门资料
💻 HTM
📖 第 1 页 / 共 5 页
字号:
&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;:output&nbsp;ACCEPT&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;-A&nbsp;forward&nbsp;-s&nbsp;202.199.249.0/255.255.255.0&nbsp;-d&nbsp;0.0.0.0/0.0.0.0&nbsp;-j&nbsp;ACCEPT&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;如果要从文件中读入ipchains的配置,使用ipchains-restore命令:&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;$ipchains-restore&nbsp;&lt;&nbsp;mychains&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;同样,ipchains-restore从标准输入读取信息,因此需要使用重定向命令。&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;8.2.2&nbsp;NAT和IP代理&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;现在我们来考虑一个重要的ipchains应用,即NAT(网络地址翻译),也称为IP代理。在&nbsp;<BR>第一章我们已经介绍过有关的概念,处于私用网络内的主机将自己的请求传递给代理机&nbsp;<BR>器,由代理机器重写源地址和端口,使得看上去数据包好像是从代理机器发出的,接受&nbsp;<BR>到的数据包也由代理机器转发给私用网络内的主机。在ipchains的术语中,这称为“伪&nbsp;<BR>装”(MASQ)。&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;要使用伪装功能,可以简单地使用-j&nbsp;MASQ命令。考虑一个典型的例子,eth0接到正常&nbsp;<BR>的internet中,地址是202.199.248.120,现在在eth1上连接一个私用网络,地址是192&nbsp;<BR>.168.254.0/24,eth1的地址是192.168.254.1,而且eth0已经能够正常访问internet,&nbsp;<BR>那么需要作的事情就是设置所有从192.168.254.0/24发出的请求包应该被伪装然后发送&nbsp;<BR>,因此,首先要按照前面的方法打开核心IP转发,然后设置对192.168.254.0的机器发出&nbsp;<BR>的数据包进行伪装:&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;ipchains&nbsp;–A&nbsp;forward&nbsp;–s&nbsp;192.168.254.0/24&nbsp;–d&nbsp;!192.168.254.0/24&nbsp;–j&nbsp;MASQ&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;然后把私用网络中的机器的网关设置成eth1的地址(192.168.254.1)就可以让私用网&nbsp;<BR>络中的机器访问internet了。&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;这种技术也用于设置拨号网关,即用一个拨号网络连接让局域网内的所有机器都能连&nbsp;<BR>接到internet。&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;telnet,www等服务都可以简单地通过这种伪装方法代理出去,但是ftp有一个特殊的&nbsp;<BR>问题。在第一章中,我们已经指出,ftp依赖于两个连接,其中用来传输数据的连接通常&nbsp;<BR>由服务器发起。问题是远端服务器根本不知道关于私用网络的事情,因此连接不会成功&nbsp;<BR>,例如,当你通过我们这里介绍的网关让私用网络内的机器进行ftp请求时,会产生这样&nbsp;<BR>的情况:&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;C:\&gt;ftp&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;ftp&gt;&nbsp;o&nbsp;202.199.248.3&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;Connected&nbsp;to&nbsp;202.199.248.3.&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;220&nbsp;asnt_1&nbsp;Microsoft&nbsp;FTP&nbsp;Service&nbsp;(Version&nbsp;4.0).&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;User&nbsp;(202.199.248.3:(none)):&nbsp;ftp&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;331&nbsp;Anonymous&nbsp;access&nbsp;allowed,&nbsp;send&nbsp;identity&nbsp;(e-mail&nbsp;name)&nbsp;as&nbsp;password.&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;Password:&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;230&nbsp;Anonymous&nbsp;user&nbsp;logged&nbsp;in.&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;ftp&gt;&nbsp;ls&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;500&nbsp;Invalid&nbsp;PORT&nbsp;Command.&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;150&nbsp;Opening&nbsp;ASCII&nbsp;mode&nbsp;data&nbsp;connection&nbsp;for&nbsp;file&nbsp;list.&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;然后这个ftp程序就会挂起。&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;解决问题的第一个办法是使用被动(passive)模式,在被动模式下,所有的ftp连接&nbsp;<BR>和数据传输请求都由ftp客户发起,这样就可以避免服务器反过来连接私用网络的机器。&nbsp;<BR>通常基于GUI的ftp客户软件一般都是使用的被动模式(例如cute_ftp),而命令行ftp工&nbsp;<BR>具则使用的是主动模式。&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;不幸的是,最常用的浏览工具:Internet&nbsp;Explorer&nbsp;用的正好是主动模式。显然,让&nbsp;<BR>你的客户了解这种晕头转向的概念显然无益于帮助他们使用internet。因此,ipchains&nbsp;<BR>提供了一个附加模块,专门用于解决ftp的问题,可以用insmod命令来加载这个模块:&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;insmod&nbsp;ip_masq_ftp&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;然后客户机器就可以正确地使用ftp了:&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;C:\&gt;ftp&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;ftp&gt;&nbsp;o&nbsp;202.199.248.3&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;Connected&nbsp;to&nbsp;202.199.248.3.&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;220&nbsp;asnt_1&nbsp;Microsoft&nbsp;FTP&nbsp;Service&nbsp;(Version&nbsp;4.0).&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;User&nbsp;(202.199.248.3:(none)):&nbsp;ftp&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;331&nbsp;Anonymous&nbsp;access&nbsp;allowed,&nbsp;send&nbsp;identity&nbsp;(e-mail&nbsp;name)&nbsp;as&nbsp;password.&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;Password:&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;230&nbsp;Anonymous&nbsp;user&nbsp;logged&nbsp;in.&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;ftp&gt;&nbsp;ls&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;200&nbsp;PORT&nbsp;command&nbsp;successful.&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;150&nbsp;Opening&nbsp;ASCII&nbsp;mode&nbsp;data&nbsp;connection&nbsp;for&nbsp;file&nbsp;list.&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;incoming&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;pub&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;226&nbsp;Transfer&nbsp;complete.&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;ftp:&nbsp;15&nbsp;bytes&nbsp;received&nbsp;in&nbsp;0.11Seconds&nbsp;0.14Kbytes/sec.&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;ftp&gt;&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;对于那些不想对客户解释什么是被动模式的管理者,这可能是唯一的方法了。&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;还有一些应用软件也需要类似的内核不定,其中最重要的应该是irc,要使得私用网上&nbsp;<BR>的用户能够使用irc程序,使用这个模块:&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;insmod&nbsp;ip_masq_irc&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;还有几个这一类的模块,都放在/lib/modules/2.2.14/ipv4目录下,你可以自己参考&nbsp;<BR>,例如连线对战quake用的模块等等。&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;8.3&nbsp;基于IPChains的防火墙系统&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;现在我们可以考虑如何实现一个简单的防火墙了。在这里我们将考虑一个代理和包过&nbsp;<BR>滤混合的防火墙系统,尽管比较简单,但是它仍然包含通常所说的防火墙的主要内容。&nbsp;<BR>对于这样的防火墙,ipchains就是你需要的一切。技术上,更强大的防火墙系统(例如&nbsp;<BR>带有数据过滤功能)也是存在的,但是对于一般的单位,下面解释的防火墙强度已经足&nbsp;<BR>够了。&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;8.3.1&nbsp;防火墙的设计&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;防火墙有两种,称为代理防火墙和包过滤型的防火墙。代理防火墙基本上就是前面说&nbsp;<BR>的NAT系统,或者是其他某种代理软件,客户机器把自己的请求提交给代理机器,然后由&nbsp;<BR>代理服务程序代替它进行网络访问。这种防火墙的主要优势在于其安全性,理论上,只&nbsp;<BR>要防火墙主机不出现问题,对客户机器进行非授权访问实际是不可能的。但是它的主要&nbsp;<BR>缺陷就是灵活性和功能,显然,页面服务是无法安装在私用网络中的(除非使用端口转&nbsp;<BR>发或者反向的NAT服务)。&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;包过滤型的防火墙是一个软件的路由器,由路由机器对通过的数据包进行检查,拦截&nbsp;<BR>所有非法的请求,并且对必要的情况进行记录。这种防火墙不会影响内部网络的正常功&nbsp;<BR>能,缺点则是不像代理防火墙那样可靠,必须记住,由于TCP/IP的实现,数据包可能会&nbsp;<BR>在你注意不到的地方穿过,而过分严厉的过滤策略又会影响网络的正常使用。&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;一般来说,设计防火墙的主要任务是确定哪些数据包可以透过,哪些数据包必须加以&nbsp;<BR>阻挡。这里,最重要的是熟知TCP/IP连接的性质和传输模式。&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;设计防火墙的策略有两种基本的思路,一种是一开始就禁止所有的数据包流通,然后&nbsp;<BR>根据需要打开的服务,依次开放各种端口;另外一种是一开始开放所有的服务,然后对&nbsp;<BR>不可靠的端口进行封锁。原则上,前一种方法比较可靠,但是对于不熟悉TCP/IP的用户&nbsp;<BR>,可能会导致一些困扰。&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;要使得防火墙起作用,显然必须将你的本地网络放在防火墙后面,这又存在许多的情&nbsp;<BR>况,最常见的情况,是将本地网络分成两部分,一部分使用正常的Internet地址,另一&nbsp;<BR>部分则使用私用的网络地址。这两部分可以正常相互通信。当与外部网络的机器对话的&nbsp;<BR>时候,使用正常地址的机器简单地通过防火墙,而私用网的机器则通过防火墙使用代理&nbsp;<BR>方式访问。&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;显然,这个系统需要有三个网络接口,一个用于连接到internet,另一个与正常地址&nbsp;<BR>的内部机器对话,另一个用来和私用网络地址的机器对话。其中,正常地址的内部机器&nbsp;<BR>是网络的中心部分,因为所有的本地服务器必须放在这个区域。在文献中,这个部分通&nbsp;<BR>常称为DMZ(停火区)。&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;在设计包过滤策略的时候,主要的应该是考虑TCP/IP连接的方式,如同我们知道的那&nbsp;<BR>样,TCP/IP连接是双向的,如果你要访问某台主机的www服务,那么这个连接涉及到的是&nbsp;<BR>:对方的主机地址;对方的www端口地址(80);自己的IP地址;除此之外,你的ftp程序&nbsp;<BR>还要申请一个端口地址用来通讯,本地机器的TCP/IP管理程序将为它分配一个大于1024&nbsp;<BR>的端口地址,这样才能实现连接。这样,通常为了避免对自己机器的非授权访问,你需&nbsp;<BR>要封禁对本地网络机器所有非必要的小于1024端口的访问,但是你仍然应该允许大于10&nbsp;<BR>24的端口的使用,否则本地机器无法使用internet。&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;从/etc/services文件可以查找到各种端口的定义,不过要注意ftp使用两个端口,即&nbsp;<BR>端口21(ftp)和20(ftp-data),分别用于发送ftp命令和发送ftp数据。另外,NFS服务要&nbsp;<BR>使用portmap端口。&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;ftp是一个几乎象是噩梦一样的东西,在主动模式中,除了我们说的两个端口之外,实&nbsp;<BR>际上,由于数据连接是从服务器发起,因此它是申请一个客户机器上的端口(同样&gt;102&nbsp;<BR>4),然后构作这个连接。显然,这个端口的值是不固定的,因此你实际上没有办法来判&nbsp;<BR>断一个连接会不会是ftp主动模式的数据,这也就意味着如果你想允许主动模式,那么对&nbsp;<BR>大于1024的端口进行过滤实际是不可能的。如果你坚持要一个“可靠”的防火墙,那么&nbsp;<BR>唯一的方法是强制性地命令你的员工使用被动模式的ftp工具。这是过分严厉的管理政策&nbsp;<BR>使得工作效率降低的一个例子。&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;另外一个需要注意的内容是关于IP隧道。IP隧道可以让TCP/IP连接运行在别的协议之&nbsp;<BR>上,例如IPX。这样,如果你的系统允许IPX路由,就有可能有别的网络上的用户利用IP&nbsp;<BR>隧道功能穿透你的防火墙设置。这是危险的事情,解决的方法就是原则上不对TCP/IP以&nbsp;<BR>外的任何协议路由。如果你的路由器有多协议路由功能,将它禁止掉。&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;8.3.2&nbsp;实例说明&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;现在我们用实例来说明一下一个上述的标准防火墙的配置过程,我们完全用ipchains&nbsp;<BR>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -