Linux操作系统中的防火墙技术及应用

互联网 | 编辑: 杨剑锋 2006-11-21 11:00:00转载 一键看全文


构建IP防火墙的策略

一、基本配置方式

配置Ipchains防火墙基本上有两种方式: 第一种方式是先丢弃或拒绝所有的包,然后明确地指出允许符合哪些条件的包通过。这种方式最安全,但当用户需要某些服务时,必须针对相应的服务进行修改,管理者必须清楚应该打开哪些服务和端口。这种方式适合于仅包含服务器、没有终端用户的小型网络。另一种方式是先接受所有的包,然后明确指出禁止某些类型的包。这种方式使网络类型较为开放,只是对危险的或不需要的协议进行控制。例如为了减少网络的流量,可以阻止“CUSeeMe”的包。这种方式比较容易配置。

二、不应该过滤的包

在开始过滤某些不想要的包之前要注意以下内容:

● ICMP包

ICMP包可用于检测TCP/IP失败的情形。如果阻挡这些包将导致不能得到“Host unreachable”或“No route to host”等信息。ICMP包还用于MTU发现,某些TCP实现使用了MTU发现来决定是否进行分段。MTU发现通过发送设置了不进行分段的位的包探测,当得到的ICMP应答表示需要分段时,再发送较小的包。如果得不到ICMP包(“destination unreachable”类型的包),则本地主机不减少MTU大小,这将导致测试无法停止或网络性能下降。

● 到DNS的TCP连接

如果要拦阻出去的TCP连接,那么要记住DNS不总是使用UDP。如果从DNS服务器过来的回答超过512字节,客户端将使用TCP连接,并仍使用端口53接收数据。若禁止了TCP连接,DNS大多数情况下会正常工作,但可能会有奇怪的延时故障出现。如果内部网络的DNS查询总是指向某个固定的外部DNS服务器,可以允许本地域端口到该服务器的域端口连接。

● 主动式FTP的TCP连接

FTP有两种运作方式,即传统的主动式(active)方式和目前流行的被动式(passive)方式。在主动式FTP模式下,FTP 服务器发送文件或应答LS命令时,主动和客户端建立TCP连接。如果这些TCP连接被过滤,则主动方式的FTP将被中断。如果使用被动方式,则过滤远地的TCP连接没有问题。因为数据连接是从客户端到服务器进行的(包括双向的数据)。

三、针对可能的网络攻击

防火墙的性能是否优良关键在于其配置能否防护来自外界的各种网络攻击。这要求网络管理者能针对可能的网络攻击特点设定完善的安全策略。以网络常见的“ping of death”攻击为例,“ping of death”攻击通过发送一个非法的大ICMP包使接收者的TCP堆栈溢出从而引起混乱。针对这种攻击可将防火墙配置为阻挡ICMP分段。因为普通的ICMP包大都不需要到分段的程度,阻挡ICMP分段只拦阻大的“ping”包。 这种防护策略也可用于针对其他协议安全缺陷的网络攻击。

TurboLinux平台上的Ipchains防火墙实例

一、 应用背景

在TurboLinux 6.1平台上实现IP包过滤防火墙,将内部网络配置为IP伪装方式访问Internet。

内部网络与防火墙间用以太网连接,内部网址取IANA的C类地址192.168.1.*。防火墙与外部网络通过modem和电话线与PPP服务器连接(连接示意图如图2所示)。

二、准备工作

1. 检查Linux系统是否支持IP 伪装。输入命令:# ls /proc/sys/net/ipv4,若存在“ip_forward”、“ip_masq_debug”、“ip_masq_udp_dloose”、“ip_always_defrag”等文件则内核已支持IP 伪装,否则需要重新编译内核。

2. 配置网卡和PPP连接的IP地址,这部分可查阅相关资料。

三、配置命令

编辑配置命令文件/etc/rc.d/rc.firewall,将防火墙的配置命令写成执行脚本。

# 打开系统内核的IP转发功能 
echo “1”?? /proc/sys/net/ipv4/ip_forward 
# 打开系统内核的自动IP分段重组功能 
echo“1”?? /proc/sys/net/ipv4/ip_always_defrag 
# 设定IP伪装的超时时间,TCP会话超时为7200秒,
TCP/IP的“FIN”分组收到后会话的延迟时间为10秒,UDP超时160秒
/sbin/ipchains/ -M -S 7200 10 160 
# 设定内部网络的IP伪装,规定转发链规则 
/sbin/ipchains -P forward DENY 
      /sbin/ipchains -A forward -i eth0 -s 192.168.1.0/24 -j MASQ

最后,改变这个脚本文件的执行权限为可执行。输入命令:# chmod 700/etc/rc.d/rc.firewall。可以手工方式运行这个脚本,也可以在文件/etc/rc.d/init.d中加入一行: /etc/rc.d/rc.firewall,这样每次系统启动时可自动运行这个脚本。

四、系统测试

系统配置好以后,可以从内部子网的任意一台主机上“ping”一下外部的某个服务器,若能“ping”通,则IP伪装配置是正确的。

可能的安全漏洞

对防火墙的不当配置可能造成安全漏洞。如处理TCP分段时,Ipchains需要查看包头中的源端口、目的端口、ICMP代码或“TCP SYN”标志等信息,而这些信息只能在TCP分段的第一个IP包中才有。于是从第二个分段开始都不能匹配过滤规则。某些管理者将防火墙配置为仅对第一个分段进行处理。通常,一个TCP连接的第一个TCP分段被防火墙阻挡后,其他的TCP分段被认为不会产生安全性问题,因为在目的主机上由于缺少第一个分段而无法重新组装报文。然而,由于系统缺陷等原因,发送的分段可能使机器瘫痪,甚至人为精心设计的IP包可借此缺陷绕过防火墙。因此配置防火墙需要仔细分析过滤规则如何处理各种类型的分组。对分段的处理最好将系统内核编译为重新组装所有通过的分段,或在应用层另设安全机制。

对基于包过滤防火墙更常见的攻击是利用IP欺骗的方法。IP欺骗是指主机发送自称是另一个主机发送的包。防止IP欺骗的方法是使用源地址确认,它通过配置路由器识别路由代码实现,而不是防火墙。防火墙结合源地址确认能较好地增强系统的安全性。

提示:试试键盘 “← →” 可以实现快速翻页 

总共 2 页< 上一页12
一键看全文

本文导航

相关阅读

每日精选

点击查看更多

首页 手机 数码相机 笔记本 游戏 DIY硬件 硬件外设 办公中心 数字家电 平板电脑