| 网站首页 | 新闻中心 | 系统安全 | 网络安全 | 安全技术 | 下载中心 | 安全365社区 |
安全365
收藏本站
设为首页
会员登录:
站内搜索: 新闻中心 系统安全 网络安全 安全技术 下载中心
| 网络安全首页 | 信道安全 | 设备安全 | 协议安全 | Web安全 |
[图文]用SELinux加强网络安全
用SELinux加强网络安全
作者:Joshua B… 文章来源:51CTO.com 点击数: 更新时间:2008-3-6 1:53:45

在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] 下一页

文章录入:郝丽    责任编辑:郝丽 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
     
     
     
    真实世界的忠告同样适用
    网络安全重心正从被动检
    网络安全运行 常见故障诊
    如何保障无线网络安全
    网络安全中起重大作用的
    网络安全中“瑞士军刀”
    抵挡DoS远程连接远离威胁
    到底安全不安全?网络安
    五大手段确保你的网络安
    如何学黑客并从事网络安
    站长邮箱:webmaster@anquan365.com
    联系电话:86-10-67634029 点击这里给我发消息

    Copyright © 2006-2008 www.anquan365.com 北京华安普特网络科技有限公司 版权所有