频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

用SELinux加强网络安全

来源: 作者:Joshua Brindle/黄永 出处:巧巧读书 2008-03-13 进入讨论组
上一页 1 2 3 4 5 6 下一页 
访问 http://www.qqread.com/net-saft/d401196.html

在SELinux中有两种标记网络通讯的方法:NetLabel,它是CIPSO的实现,另外一种是基于IPSec的标记,我将不讨论NetLabel,因为它仅仅提供了SELinux上下文MLS支持,并且主要是应用于传统的可靠的操作系统如HP-UX和Solaris与SELinux进行协作。

基于IPSec的标记条目内容,目前只工作在SELinux系统之间。

因为NetLabel主要为传统的可靠的系统提供MLS支持,我将不讨论它,我将重点介绍基于IPSec的标记。

在这里将涉及到一些IPSec的知识,如果你对它们还不熟悉请参阅IPSec相关文档,尤其要知道什么是SPD和SA,以及它们在IPSec中的角色。

首先你需要准备一个支持IPSec的内核,如果你使用的是redhat的系统就很容易了,可以使用目前Fedora rawhide内核或LSSP内核,LSSP内核可以在

http://people.redhat.com/sgrubb/files/lspp/找到,如果不是redhat的系统,可以升级到2.6.22内核,它包含了IPSec的支持。

你还需要一个ipsec工具用来标记,rawhide或LSSP版本也将在这里用到,一旦你安装好所有需要的东西就可以开始使用IPSec标记了,我们将从简单的标记SA开始。

首先,我有一组程序用来测试并确定所有需要的东西都在工作,它们是一个简单的客户端和连接用的服务端,使用getpeercon()返回网络套接字的上下文。

client.c【译者注:内容见附录A】
server.c【译者注:内容见附录B】
编译它们并将其连接到libselinux:
gcc -o client client.c -lselinux
gcc -o server server.c –lselinux

首先尝试在没有IPSec的情况运行它们看会发生什么:

我的测试用机是192.168.147.132(主机名:scarecrow)和192.168.147.130(主机名:poisonivy),很明显,请替换为你的ip地址

在192.168.147.132上运行服务端和客户端后,在其他机器上的输出类似下面这样:

[root@poisonivy ~]# ./client 192.168.147.132 
getpeercon: Protocol not available Received: Hello, (null) from (null)
[root@scarecrow ~]# ./server 
getsockopt: Protocol not available server: got connection from 
192.168.147.130, (null) 
getpeercon()返回协议不可用,因为在本次连接中没有标记被启用,你可以根据
错误信息来判断你是否使用了标记网络套接字。

如果我们在这两台机器之间不指定一个上下文而产生一个SA,我们将得到同样的结果: 

[root@scarecrow ~]# cat dev/ipsec/setkey.scarecrow.test 
spdflush; 
flush; 
spdadd 192.168.147.130 192.168.147.132 any
-P in ipsec esp/transport//require; 
spdadd 192.168.147.132 192.168.147.130 any 
-P out ipsec esp/transport//require; 
[root@poisonivy ~]# cat dev/ipsec/setkey.poisonivy.test 
spdflush; 
flush; 
spdadd 192.168.147.132 192.168.147.130 any 
-P in ipsec esp/transport//require; 
spdadd 192.168.147.130 192.168.147.132 any 
-P out ipsec esp/transport//require; 

然后运行:

[root@poisonivy ~]# setkey -f dev/ipsec/setkey.poisonivy.test 
[root@scarecrow ~]# setkey -f dev/ipsec/setkey.scarecrow.test 

注意:当尝试连接时,要想创建SA两台机器都需要运行racoon。

象之前那样运行服务端和客户端会得到同样的结果,你可以使用setkey –D来查看新创建的SA,注意它是没有标记的SA。

更多文章 更多内容请看路由安全配置专题网络管理实用手册系统安全设置专题,或进入讨论组讨论。
上一页 1 2 3 4 5 6 下一页 
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章