荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: fbird (jack), 信区: Hacker
标  题: Linux上的防火墙(3)
发信站: BBS 荔园晨风站 (Tue Oct 27 13:18:57 1998), 站内信件

3.  动手吧!

3.1.  硬体需求

    本例中, 电脑采用486-DX66, 8M RAM, 500M Linux 分割, 以一台1.44 bps
MODEM连到ISP上。这就是原本Linux box的基本配备, 要架成Firewall, 我们还得加
上一块NE2000 Ethernet网路卡。接著连上三部PC(Win 3.1+Trumpet Winsock)和两
台Suns(SunOS 4.1)。我选择这样的架构是著眼於它很普通常见, 而且我对这两种平
台都蛮熟悉的。本来有考虑要加上Mac, 可是我不太常用也不熟, 就算了。

3.2.  设定软体

    现在, Linux box 透过14.4 PPP line连上Internet, 再用Ethernet连上其他
的电脑。首先, 先recomplie linux kernel, make config时得做适当的调整。
我参考了Kernel HOWTO, Ethernet HOWTO, NET-2 HOWTO然後进行"make config":

1. 使用Networking Support
2. 使用TCP/IP Networking
3. 取消IP Forwarding (CONFIG_IP_FORWARD).
4. 使用IP Firewalling
5. 可以使用IP accounting, 这样比较审慎一点。
6. 使用Networking Device Support
7. 使用PPP 及Ethernet support, 视你的界面而定

    接著, 我们recompile, reinstall kernel 後重开机。应该可以在开机过程中
看到我们所加入的界面的资料, 如果没有, 参考其他的HOWTO, 看看是那里做错了。

3.3.  设定网路位址

    这是很有趣的一部份。因为我们不希望Internet直接Access我们的网路, 所以
不必使用真实位址。一个不错的选择是C Class的192.168.2.xxx, 它是设定来做测
试的dummy domain。所以放心大胆的用它吧! 没人会跟你抢的。在我们的设定中,
只需要一个真实的位址, 其他的自设就可以了。指定连上PPP 的串列埠一个真实IP
位址, Firewall上的Ethernet卡设为192.168.2.1, 将其他电脑设为192.168.2.xxx。

3.4.  测试看看
    试著从Firewall上ping一个Internet上的Node。我使用nic.ddn.mil做为测试点
。[ 译注: 在国内可以ping edu.tw 看看 ]如果不行, 查查你的PPP 有没有设好,
仔细的读一下Net-2 HOWTO, 再试一次。

    现在, 试著ping保护网路内的电脑, 所有网路内的电脑应该可以ping其他任何
一台电脑, 如果不行, 老话一句, 看看NET-2 HOWTO 再试一次。接著, 所有在保护
网路内的机器应该都可以ping Firewall。若不行, 再重覆以上步骤, 记得, 你该
ping 192.168.2.1, 而非PPP 的真实IP位址。

    然後试著从Firewall里的电脑去ping PPP的IP位址, 如果可以, 表示你IP
Forwarding的功能未取消, 你必须重新compile kernel。虽然我们已经把受保护的
网路设为192.168.2.1 domain, 不会收到来自Internet的封包, 可是把IP Forwarding
关掉还是比较保险一点, 可以自己主控全局而非仰赖ISP。

    最後, 从Firewall上ping一下受保护的网路内的机器, 到这个地步, 应该不会
有什麽问题。到这里, 我们已经完成了最基础的Firewall安装。

3.5.  Firewall的安全性

    目前的Firewall还不够好, 因为它还敞开著大门等待别人来攻击。首先, 找到
/etc/inetd.conf, 它又被称为"super server", 因为在上面有超过一打的server
daemon被执行。例如:
o  Telnet
o  Talk
o  FTP
o  Daytime

    取消所有不需要的功能, 例如netstat、systat、tftp、bootp、finger。甚至
你可以关掉telnet只允许rlogin或vica-versa。你只要在该功能前加上# 就可以轻
易的把它取消掉。利用kill -HUP <pid> 送出一个SIG-HUP给inetd, 使inetd 重新
去读取我们刚才改的设定(inetd.conf)同时restart。试试telnet Firewall的port
15(netstat port), 如果你还读得到netstat的资料, 表示你没有正确的restart
inetd。[译注: 如果还搞不定, 考虑reboot吧!]

--
※ 来源:.BBS 荔园晨风站 bbs.szu.edu.cn.[FROM: 192.168.1.89]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店