以下介绍防火墙入门时,所需要的一些基本观念。
TCP/IP
Figure 2. TCP/IP 四层架构
封包过滤
所谓封包过滤,是一种小软件,它藉以检查 IP 封包的表头,来决定该封包的命运(接受/转向/丢弃/拒绝)。在 Linux 中,封包过滤的功能,已整合进入 Linux 核心(kernel)之中。
如何得知核心目前是有支持封包过滤功能呢?
查看此? /proc/net/ip_fwchains 是否存在便知(适用 Linux kernel 2.1.x~2.x)。
若此?不存在,则核心必须重新制作,打开封包过滤选项,重新编译安装之。
IP 封包,如下图所示:
Figure 3. IP 封包
Figure 4. TCP 封包
封包过滤程序,即根据 IP 封包的表头中的来源IP、目的IP、封包型态、取自TCP/UPD表头的 port 及其它一些旗标信息,来决定此封包最后的命运。
至目前为止,Linux 核心封包过滤已发展到了第四代:
第 1 代 : Linux 1.x 移植自 BSD 的 ipfw第 2 代 : Linux 2.0 ipfwadm第 3 代 : Linux 2.1~2.x ipchains第 4 代 : Linux 2.4~ iptables
服务信道 (Service Ports)
所谓服务信道(port)是指:主机中应用程序对外服务的管道。
port 的范围从 0 到 65535。1~1023 保留给系统专用,仅有 root 权限者才能使用,称之为:privileged ports (特权信道)。1024 ~ 65535 则称为 unprivileged ports (非特权信道)。
非特权信道有二种用途:
?开放给系统中其它应用服务程序使用,如 mysql 用 3306, X11 用 6000。
?当使用 client 端程序(如 ssh),连接到其它 server 主机的服务时(如 ssh server),系统会在 1024 ~ 65535 中,随机抽出一个未被占用的 port,指定给 client 联机端,来当作 client 端这边的通讯 port,此时 client端的IP、port 以及 server端的IP、port,四者形成联机时唯一的连结识别,当双方完成联机所需的沟通时,我们说:client 端和 server 端的联机,已经建立(ESTABLISHED)。(我们称这四者形成一组 socket pair。)
如下图所示:
Figure 5. client 和 server 联机图 (1)
Figure 6. client 和 server 联机图 (2)
常见的服务信道
Table 1. port list
IANA : port 的完整定义
IANA port numbers
封包的种类
有三种 IP 封包,我们称之为 IP 网络讯息。这三种封包,正是封包过滤型防火墙所要专注的对象。它们各有不同的特性,如下所示:
?ICMP (network layer / IP control / status messages)
?UDP (request / response)
?TCP (syn, syn/ack, ack 三向交握)
其过程,如下图所示。
Figure 7. ICMP ping and pong
Figure 8. UDP request/response
Figure 9. TCP 三向交握
私有 IP 空间
RFC 1918 里规定了三段范围的 IP,供私有网络(private network)实验用途使用,在公开的网络上它们不会被路由,正因为这种特性,因此极适合拿它们当作内部网络的 IP,从而达到保护内部网络的目的。列出如下:
?Class A : 10.0.0.0/8 (整个 10.0.0.0 的 A Class 的 IP,约 1 千 6 百多万个可用 IP
?Class B : 172.16.0.0/12 (共 16 个 B Class 的 IP,由 172.16.0.0 ~ 172.31.0.0,约一百万个可用 IP)
?Class C : 192.168.0.0/16 (共有 255 个 C Class 的 IP,即:192.168.1.0 ~ 192.168.255.0,约 65000 个可用 IP
NAT
何谓 NAT ?
NAT 的 Network Address Translation 的简称,简单来说,它是一种转换地址的技术,经常运用在防火墙的建置上,使得内部的私有 IP,转换成公开的 IP,而能和外界沟通。
IDS
何谓 IDS ?
IDS 是 Intrusion detection system 的简称(入侵侦测系统),它是一种监测封包进出、比对入侵型态、预防入侵攻击,并能适时提出警告的防御系统。
OLS3 推荐的 IDS 是 Snort,不输商用专业级的入侵侦测系统。
Figure 10. 可爱的 Snort
DMZ
何谓 DMZ ?
DMZ 是 De-militarized zone 的简称(非军事区),它是内部网络(军事区)和外部网络之间的一小段网络,该区可受 IDS 的侦测保护,亦可受防火墙的监控,或受其它安全机制的检测,有一点接近公开的网段,但却可以受到整个防火墙系统的保护。
封包过滤预设政策(Default Packet-Filtering Policy)
有二种预设的政策,设定防火墙时,要选择使用那一种。
1.丢弃所有,欲放行,需用设定将它打开。(deny-everything policy)
2.接受所有,欲丢弃,需用设定将它关闭。(accept-everything policy)
第一种比第二种安全,在设定上比较单纯。但第二种,比较容易使用,唯较容易忽略了某些考量。