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

📄 防火墙简介.htm

📁 这是我对防火墙技术的一些见解
💻 HTM
📖 第 1 页 / 共 4 页
字号:
        为OFF <BR>设IP: aliasing 为OFF <BR>设IP: PC/TCP compatibility mode 为OFF 
        <BR>设 IP: Reverse ARP 为OFF <BR>设Drop source routed frames 为ON 
        <BR>在Network device support项下 <BR>设Network device support 为ON <BR>设Dummy 
        net driver support 为ON <BR>设Ethernet (10 or 100Mbit) 为ON <BR>选择网路卡 
        <BR>现在重新编辑,重新安装内核,重新启动。网路卡应在启动的提示中显示。如果没有抓到网路卡,查阅其他HOWTO,直到设对为止。 
        <BR><BR>4.2 设定两张网路卡 
        <BR>电脑中如有两张网路卡,极可能需要在/etc/lilo.conf档中增加一行,说明两张网路卡的IRQ和地址。在我的机器中,lilo.conf档增加的一行如下∶ 
        <BR><BR>append="ether=12,0x300,eth0 ether=15,0x340,eth1" <BR><BR>4.3 
        设定Network Addresses 
        <BR><BR>这部分比较有趣,而且得要做些决定。由于不打算让网际网路进入自设网路的任何部分,因此网路中不需要用实际的网址。在网际网路中留了一些地址可让网路随意使用,因为自设网路总得需要地址,而且这些地址也无法进入网际网路,搅浑全局。因此不妨选用这些地址。在这些地址中,192.168.2.xxx是被留用的地址,因此就用这些地址来作说明。 
        <BR><BR>由于代理伺服器同时身处两个网路,因此它能居中传送两边的数据。 <BR><BR><BR>199.1.2.10 __________ 
        192.168.2.1 <BR>_ __ _ | | / _______________ <BR>| / / | | |/ | | 
        <BR>网际网路 -------------| 防火墙 |-------------------| 工作站 | <BR>\_/\_/\_/\_/ 
        |_________| |______________| <BR>如要设置过滤防火墙,依旧可用这些网址,不过得使用IP 
        masquerading。经过这种设定,防火墙就会转送数据包,并加附实际的IP地址送往网际网路。在网路卡的网际网路端(外端)得设定真正的IP地址,在以太网卡的内端设为192.168.2.1。这是这台电脑代理/网关的IP地址。受保护的网路内的所有其他电脑均可选用192.168.2.xxx中的任何一个作为地址(从192.168.2.2 
        到192.168.2.254)。在RedHat Linux 中,得在 
        /etc/sysconfig/network-scripts目录下增加一个ifcfg-eth1档,以便在启动时,通过这个档设定网路和routing表。 
        ifcfg-eth1的参数可设定如下∶ <BR>#!/bin/sh <BR>#&gt;&gt;&gt;Device type: ethernet 
        <BR>#&gt;&gt;&gt;Variable declarations: <BR>DEVICE=eth1 
        <BR>IPADDR=192.168.2.1 <BR>NETMASK=255.255.255.0 <BR>NETWORK=192.168.2.0 
        <BR>BROADCAST=192.168.2.255 <BR>GATEWAY=199.1.2.10 <BR>ONBOOT=yes 
        <BR>#&gt;&gt;&gt;End variable declarations <BR>可试用这些参数使数据机与ISP自动连接。不妨看看 
        ipup-ppp档。如用数据机与网际网路连接,ISP会在连接时指定外端的IP地址。 <BR><BR>4.4 测试网路 
        <BR>从测试ifconfig和route开始。如机器上有两张网路卡,各项设置应有如下情况∶ <BR><BR>#ifconfig <BR>lo 
        Link encap:Local Loopback <BR>inet addr:127.0.0.0 Bcast:127.255.255.255 
        Mask:255.0.0.0 <BR>UP BROADCAST LOOPBACK RUNNING MTU:3584 Metric:1 
        <BR>RX packets:1620 errors:0 dropped:0 overruns:0 <BR>TX packets:1620 
        errors:0 dropped:0 overruns:0 <BR><BR>eth0 Link encap:10Mbps Ethernet 
        HWaddr 00:00:09:85:AC:55 <BR>inet addr:199.1.2.10 Bcast:199.1.2.255 
        Mask:255.255.255.0 <BR>UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 
        <BR>RX packets:0 errors:0 dropped:0 overruns:0 <BR>TX packets:0 errors:0 
        dropped:0 overruns:0 <BR>Interrupt:12 Base address:0x310 <BR><BR>eth1 
        Link encap:10Mbps Ethernet HWaddr 00:00:09:80:1E:D7 <BR>inet 
        addr:192.168.2.1 Bcast:192.168.2.255 Mask:255.255.255.0 <BR>UP BROADCAST 
        RUNNING MULTICAST MTU:1500 Metric:1 <BR>RX packets:0 errors:0 dropped:0 
        overruns:0 <BR>TX packets:0 errors:0 dropped:0 overruns:0 
        <BR>Interrupt:15 Base address:0x350 <BR>route 表应看起来如下∶ <BR>#route -n 
        <BR>Kernel routing table <BR>Destination Gateway Genmask Flags MSS 
        Window Use Iface <BR>199.1.2.0 * 255.255.255.0 U 1500 0 15 eth0 
        <BR>192.168.2.0 * 255.255.255.0 U 1500 0 0 eth1 <BR>127.0.0.0 * 
        255.0.0.0 U 3584 0 2 lo <BR>default 199.1.2.10 * UG 1500 0 72 eth0 
        <BR>注∶ 199.1.2.0在防火墙的网际网路端,192.168.2.0在自设网路一端。首先试试从防火墙ping 
        网际网路。不妨把nic.ddn.mil作试验点。这个试验点还不错,只是不如我预期的可靠。如果没联上,试试ping几个不是你网路上的地址。如果仍联不上,则PPP的设定一定不对。再读一次Net-2 
        HOWTO,然後再试。然後,试验从防火墙ping保护网路内的电脑。所有网路内的电脑应能ping网路内的任何其他一台电脑。如果不行,再读读Net-2 
        HOWTO,再试一次。接著试验从保护网路内ping防火墙以外的地址。(注意∶不属于192.168.2.xxx的任何地址)如果可以,表示IP 
        Forwarding的功能没有取消。想一想这是否符合原先的构想。如果保留IP Forwarding的功能,就别放过下面设定IP 
        filtering的部分。现在试试从防火墙後ping 网际网路。利用以前试通的同一地址(例如,nic.ddn.mil)。如果 IP 
        Forwarding功能已经取消,就不应接通。不过如果这项功能没有取消,就应该接通。假设保留了IP 
        Forwarding功能,而在自设的网路中使用实际的IP地址(不是192.168.2.*),在这种设定下,如果无法ping 
        网际网路,但能够ping网际网路边的防火墙,就得检查上一层的router有否把数据包传送到自设网路的地址上。(可能得由ISP作这项检查)如果保护网路的地址定为192.168.2.*,则任何数据包都不能传送。如果没有作这些设定,而使用了IP 
        masquerading,这项试验应该成功。至此,各项设定基本完成。 <BR><BR><BR>4.5 加固防火墙 
        <BR>如果通过防火墙上没有使用的功能能够随意进出防火墙,则这种防火墙也就没有什么用处。 "骇客" 
        能到防火墙内作出必要的修改,供其所用。首先关闭所有不用的功能。先检查 
        /etc/inetd.conf档。这个档控制所谓的"超级伺服器"。它控制了许多伺服器的daemon,然後在需要时启动这些daemon。完全取消netstat、 
        systat、 tftp、 bootp和finger功能。取消功能的方法是把#作为功能行的行首字母。设定完毕後,键入"kill -HUP 
        <PID>",执行SIG-HUP 
        ,其中<PID>是inetd的程序编号。inetd会再次读取配置档(inetd.conf),并从新启动系统。利用telnet 
        测试防火墙的埠号(port)15,这是netstat的埠号。如netstat回应网路情况,系统并没有按要求正确地从新启动。 
        <BR><BR><BR><BR><BR>5. IP filtering 的设置(IPFWADM) <BR>首先设定内核的IP 
        Forwarding功能,系统应开始转送每一信息。路径表(routing 
        table)应已设定,因此应该可以通往任何地点,从网内可以联到网外,从网外也可进到网内。但是防火墙的作用是不让任何人可以随便进出网路。 
        在示□系统中设定了两套指令(script),对防火墙的forwarding和accounting作了规定。系统在运行/etc/rc.d时取用这两套指令,因此在系统启动时就对系统作了设置。 
        Linux的内核自设转送一切信息的IP 
        Forwarding系统。因此,防火墙的指令应首先禁止一切进入系统的权利,清除上次运行後留下的任何ipfw规则。下面的指令应能达到这项目的。 
        <BR><BR><BR># <BR># setup IP packet Accounting and Forwarding <BR># 
        <BR># Forwarding <BR># <BR># By default DENY all services <BR>ipfwadm -F 
        -p deny <BR># Flush all commands <BR>ipfwadm -F -f <BR>ipfwadm -I -f 
        <BR>ipfwadm -O -f 
        <BR>好了,现在有了绝对保险的防火墙。一切都被屏挡在外面,无法穿越防火墙一步。当然,有些功能还是需要的,下面的一些例子可作参考。 <BR># 
        Forward email to your server ∶转送电子邮件到伺服器 <BR>ipfwadm -F -a accept -b -P 
        tcp -S 0.0.0.0/0 1024:65535 -D 192.1.2.10 25 <BR><BR># Forward email 
        connections to outside email servers ∶将电子邮件连到网路外的电子邮件伺服器 <BR>ipfwadm -F 
        -a accept -b -P tcp -S 196.1.2.10 25 -D 0.0.0.0/0 1024:65535 <BR><BR># 
        Forward Web connections to your Web Server∶将Web连到Web伺服器 
        <BR>/sbin/ipfwadm -F -a accept -b -P tcp -S 0.0.0.0/0 1024:65535 -D 
        196.1.2.11 80 <BR><BR># Forward Web connections to outside Web 
        Server∶将Web连到外界Web伺服器 <BR>/sbin/ipfwadm -F -a accept -b -P tcp -S 
        196.1.2.* 80 -D 0.0.0.0/0 1024:65535 <BR><BR># Forward DNS 
        traffic∶转送DNS信息 <BR>/sbin/ipfwadm -F -a accept -b -P udp -S 0.0.0.0/0 53 
        -D 196.1.2.0/24 <BR>如果想知道通过防火墙的信息来往情况,下列指令会统计所有数据包。 <BR><BR># Flush the 
        current accounting rules <BR>ipfwadm -A -f <BR># Accounting 
        <BR>/sbin/ipfwadm -A -f <BR>/sbin/ipfwadm -A out -i -S 196.1.2.0/24 -D 
        0.0.0.0/0 <BR>/sbin/ipfwadm -A out -i -S 0.0.0.0/0 -D 196.1.2.0/24 
        <BR>/sbin/ipfwadm -A in -i -S 196.1.2.0/24 -D 0.0.0.0/0 
        <BR>/sbin/ipfwadm -A in -i -S 0.0.0.0/0 -D 196.1.2.0/24 
        <BR>如果只把电脑设为过滤防火墙,到这里就大功告成了! <BR><BR><BR><BR><BR>6. 安装TIS代理伺服器 
        <BR><BR>6.1 取得软件 <BR>TIS FWTK软件可从下列网址得到∶<A href="ftp://ftp.tis.com/." 
        target=_blank>ftp://ftp.tis.com/.</A> 千万记住∶从TIS下载软件後,首先阅读README。TIS 
        fwtk存放在伺服器的一个隐藏目录内,需要发电子邮件给<A 
        href="mailto:fwtk-request@tis.com">fwtk-request@tis.com</A> 
        并在信文内填入SEND才能得知隐藏的目录的名字。Subject栏内不必填入任何内容。在回覆的电子邮件内会告知存放软件的目录的名字,有效时间为12小时,得赶快下载。在编写本文时,FWTK的最新版本为2.0(beta)。除了几个小地方之外,这个版本在编辑时没有问题,运行时也正常,此处就以这一版本为例。如有最後定本时,将在以後的HOWTO中增订。安装FWTK时,首先在 
        /usr/src下建立fwtk-2.0目录。将FWTK(fwtk-2.0.tar.gz)放在这个目录内解压(tar zxf 
        fwtk-2.0.tar.gz)。 FWTK并无代理SSL的网路文件,Jean-Christophe Touvet写了一些附加资料,可从<A 
        href="ftp://ftp.edelweb.fr/pub/contrib/fwtk/ssl-gw.tar.Z" 
        target=_blank>ftp://ftp.edelweb.fr/pub/contrib/fwtk/ssl-gw.tar.Z</A>取得。 
        Eric Wedel写了修订本,其中包括使用网景(Netscape)的新闻伺服器。这套软件可从下列网址取得∶<A 
        href="ftp://mdi.meridian-data.com/pub/tis.fwtk/ssl-gw/ssl-gw2.tar.Z" 
        target=_blank>ftp://mdi.meridian-data.com/pub/tis.fwtk/ssl-gw/ssl-gw2.tar.Z</A> 
        以下以Eric Wedel的版本为例。要安装,只要在/usr/src/fwtk-2.0目录内建立一个 
        ssl-gw目录,把文档放在其中即可。在安装这个网关时,得要作些改动才能进行编辑。首先改变ssl-gw.c档,其中遗漏了必要的include档。 
        <BR><BR>#if defined(__linux) <BR>#include <SYS ioctl.h><BR>#endif 
        <BR>其次,也没有Makefile档。不妨从其他网关目录拷贝一个,然後将网关的名字改为ssl-gw。 <BR><BR>6.2 编辑TIS 
        FWTK 
        <BR>版本2.0的FWTK比以往任何一个版本都易于编辑。不过在编辑以前还需要对BETA版本作一些更动。希望这些更动会加附到最後定本中。修改方法如下∶首先进入/usr/src/fwtk/fwtk目录,拷贝Makefile.config.linux档,以此档替代Makefile.config档。 
        不要运行FIXMAKE。虽然在说明中建议执行这个程序。但运行後会破坏每一个目录中的makefile。修改fixmake的方法是在每一个Makefile的sed指令的include行中添加‘.’和"。按下例更改,便可运行无碍。 
        <BR><BR>sed s/^include[ ]*([^ ].*)/include 1/ $name .proto &gt; $name 
        <BR>然後需要编辑Makefile.config档,但首先得作两项修改。 
        Makefile.config档中的source目录应改为进行编辑的/usr/src,因此FWTKSRCDIR应作相应的改变。 
        <BR>FWTKSRCDIR=/usr/src/fwtk/fwtk 
        <BR>有些Linux系统使用gdbm数据库。Makefile.config使用dbm。例如,RedHat 
        3.0.3就使用dbm,因此需要作出相应更动。 <BR>DBMLIB=-lgdbm 
        <BR>最後需要改x-gw。BETA版内socket.c中的下列数行必需删除。 <BR>#ifdef SCM_RIGHTS /* 4.3BSD 
        Reno and later */ <BR>+ sizeof(un_name-&gt;sun_len) + 1 <BR>#endif 
        <BR>如在FWTK源目录中添加ssl-gw,则在Makefile的目录单中也要加上ssl-gw。 <BR>DIRS= smap smapd 
        netacl plug-gw ftp-gw tn-gw rlogin-gw http-gw x-gw ssl-gw 
        <BR>完成上述修改後,运行make。 <BR><BR>6.3 安装TIS FWTK <BR>运行make 
        install。默认的安装目录是/usr/local/etc。可以改到更加安全可靠的目录进行安装,但也可以不改,也可将其特权改为chmod 
        700。现在开始设定防火墙。 <BR><BR><BR>6.4 设置TIS FWTK 
        <BR>好!下面就比较有趣了!设定的系统要能调用这些新功能,并建立管制表管理这些功能。以下的说明并不是为了要重写TIS 
        FWTK的使用手册,其目的只是为了显示可行的设定、可能遇到的问题和解决的办法。有三个文档组成这些controls。 
        <BR><BR><BR>/etc/services <BR>告诉系统所定功能在何埠号 <BR>/etc/inetd.conf 
        <BR>当服务埠有动作时告诉inetd启动那个程式 <BR>/usr/local/etc/netperm-table 
        <BR>告诉FWTK同意和拒绝来往的用户 <BR>要FWTK发挥作用,应彻底编辑这些档案。编辑这些功能档而不正确设定 
        inetd.conf或netperm-table,可能使系统完全无法作用。 <BR><BR>netperm-table档 
        <BR>这个档控制何人可以使用TIS 
        FWTK的功能。首先应该想到防火墙两边的需求。网路外面的用户在进入网路之前应首先表明身份,但网路内部的用户则可直接通过。在表明身份时,防火墙使用一个称为authsrv的程式,其中存有用户的ID和密码。netperm-table中的authentication部分控制这一数据库存放何处和谁可取用。要不让人取用这一功能并不容易,在premit-hosts这一行中使用“*”,以致每人都能取用这一功能。这一行的正确设定应该是“authsrv: 
        premit-hosts localhost”,但似乎不起作用。 <BR><BR># <BR># Proxy configuration 
        table: 代理伺服器设置表 <BR># <BR># Authentication server and client rules 
        <BR>authsrv: database /usr/local/etc/fw-authdb <BR>authsrv: permit-hosts 
        * <BR>authsrv: badsleep 1200 <BR>authsrv: nobogus true <BR># Client 
        Applications using the Authentication server <BR>*: authserver 127.0.0.1 
        114 <BR>要启动数据库,以root在/var/local/etc内运行./authsrv,设立管理者的使用记录。实际操作如下∶ 
        阅读FWTK文档了解如何添加用户和用户组。 <BR># <BR># authsrv <BR>authsrv# list <BR>authsrv# 
        adduser admin "Auth DB admin" <BR>ok - user added initially disabled 
        <BR>authsrv# ena admin <BR>enabled <BR>authsrv# proto admin pass 
        <BR>changed <BR>authsrv# pass admin "plugh" <BR>Password changed. 
        <BR>authsrv# superwiz admin <BR>set wizard <BR>authsrv# list <BR>Report 
        for users in database <BR>user group longname ok? proto last <BR>------ 
        ------ ------------------ ----- ------ ----- <BR>admin Auth DB admin ena 
        passw never <BR>authsrv# display admin <BR>Report for user admin (Auth 

⌨️ 快捷键说明

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