考点 15.03 网络地址转换
网络地址转换(NAT)可使你网络中计算机访问因特网时隐藏其IP地址(不过其最大的用处是共享上网,呵呵)。NAT 使用防火墙服务器的地址替换包中的源地址,同样服务器作为网络中的网关。源地址被保存在网关的缓存中,以使其知道哪个计算机发出的请求。
当防火墙接收到数据,如网页,程序进行反向解析。当这些包经过防火墙,从缓存中确定其源计算机。每个包的包头在分发前被修改。
这项技术相当有用,源于以下几个原因。隐藏你的因特网地址,增大其他人入侵你网络的难度。NAT 允许你每一台计算机通过一个公有IP地址连接到因特网。并允许你来内部网络使用私有地址,在第1章有详细讨论。在 Linux 中,这通常称之为 “IP 伪装”。
IP 伪装
Red Hat Enterprise Linux 支持IP 伪装的NAT技术。IP 伪装允许你使用一个公有的IP地址,为多台计算机提供因特网服务。IP伪装允许你将多个IP地址映射为一个公有的因特网地址。
使用IP 伪装技术将多个系统连接到因特网的过程是相当简单的。你的防火墙服务器需要一块连接你局域网的网卡以及一块连接因特网的网卡。第二块网卡需要能连接到 modem或其他网络连接设备上(即能访问因特网)。配置遵循以下步骤:
1、将你的公有IP地址配置到能够直连到因特网的网卡上。
2、为你的局域网网卡配置私有地址,如第1章描述。
3、为你的防火墙服务器保留一个私有地址,以连接到局域网。
4、使用 iptables 配置 IP 伪装。
5、允许防火墙服务器的IP 转发。
6、将防火墙服务器配置为局域网的网关。
仔细查看一条通过防火墙,从局域网计算机到因特网的消息。当你局域网的一台计算机想要获取因特网的一个网页时,它向防火墙发送包。防火墙将每个包中的源地址替换为防火墙的公有地址。并为包分配一个新的端口号。防火墙在缓存中记录源地址与分配的端口号。
当包从因特网返回到防火墙时,它将包含一个端口号。当防火墙在外部发来的包中找到匹配的端口号后,进行反向解析。防火墙将包中的目的地址和端口号用原私有地址替换掉,然后将包转发给局域网中的原主机。
下一步是使 iptables 激活伪装功能。在下面命令中,eth1为直连到因特网的网卡,192.168.0.0/24 为本地局域网的私有地址段:
# iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth1 -j MASQUERADE
以下命令是防火墙允许 FTP 的连接:
# modprobe -a ip_conntrack_ftp ip_nat_ftp
如果你已经安张内核的源代码,你可以在以下内核目录下找到相似的模块:
/usr/src/redhat/BUILD/kernel-2.6.18/linux-2.6.18.i386/net/ipv4/netfilter
注意! 如果你没有允许包转发的话,IP 伪装是不会工作的。在下一节有详细描述。
IP 包转发
IP 包转发通常在路由中提及。路由对因特网或任何IP网络都是至关重要的。路由器连接和沟通多个网络。当你的一台电脑要连接到一个外部网络的网站时,你需要一个网关地址。这对应的IP地址,就是网络中的路由。
路由检查每个包的目的地址。如果这个IP地址是局域网中的一个,它将包直接发送到该计算机。否则,它将包发送到其他最接近目的地址网关。将 Red Hat Enterprise Linux 系统作为路由,你需要打开 /etc/systcl.conf 配置文件中的包转发。将
net.ipv4.ip_forward = 0
修改为
net.ipv4.ip_forward = 1
配置将在你重新启动系统后生效。在重启前,你可是使用以下命令,打开包转发功能:
echo 1 > /proc/sys/net/ipv4/ip_forward
现在你已经了解了Red Hat Enterprise Linux 的一些安全性能,查阅以下的案例与解决方法。包括一些发生的情况和问题,以及解答。不管你做什么,能解决问题就可以。
案例与解决方法
1、案例:你只有一个公有IP地址,但你要为局域网所有的系统提供因特网服务。局域网的每台电脑都拥有一个私有地址。
解决方法:使用 iptables 配置IP伪装。确定IP转发已激活。
2、案例:你已经在公司网络中安装了一台e-mail服务器,你想限制某个部门的访问。每个部门都有独立的子网。
解决方法:使用 tcp_wrappers 系统的 /etc/hosts.deny 文件,以阻止非允许子网对 e-mail 的访问。
3、案例:你的局域网中存在 Linux 和 Unix 系统,你想部署单一的认证数据库,包括用户名和密码。
解决方法: 使用网络的 NFS 共享。建立一个 NIS 服务器。将局域网其他系统设为 NIS 客户端。
4、案例:你想修改关闭和重启计算机的命令的使用权限,以使其仅限root用户。
解决方法:设定安全认证模块的配置文件 /etc/pam.d,使用 system-auth 模块。
阅读(885) | 评论(0) | 转发(0) |