龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 操作系统 > LINUX系统 >

Linux极客的56个技巧(11)

时间:2014-05-22 02:29来源:网络整理 作者:网络 点击:
分享到:
企图第二次写文件失败,因为它将覆盖这个文件。然而,在文件的末尾追加仍然是被允许的: echo appending to file /var/log/logfilecat /var/log/logfileappend-only not s

企图第二次写文件失败,因为它将覆盖这个文件。然而,在文件的末尾追加仍然是被允许的:

echo "appending to file" >> /var/log/logfilecat /var/log/logfileappend-only not setappending to file

显而易见,一个获得root特权的侵入者能意识到使用了文件属性,并且可以通过运行chattr -a来移除append-only标志。为了防止这种情况,我们需要禁用移除append-only属性的性能,在Linux下使用功能机制完成这个。

Linux功能模型分割特权给全能的root账户,并且允许你有选择的禁用它们。为了防止一个用户移除一个文件的append-only属性,我们需要移除CAP_LINUX_IMMUTABLE功能。当体现在当前运行系统中时,这个功能允许append-only属性被修改。为了当前系统中获得修改这个功能的设置,我们将简单有效地调用lcap.

为了解压和编译这个工具,运行这条命令:

tar xvfj lcap-0.0.3.tar.bz2 && cd lcap-0.0.3 && make

然后,不允许修改append-only标志,运行:

./lcap CAP_LINUX_IMMUTABLE./lcap CAP_SYS_RAWIO

第一条命令移除了改变append-only标志的功能,然后第二条移除了原始I/O的功能。这是很有必要的,因为这样就能保护文件不被访问块设备时驻留在其上的东西修改。这阻止了访问/dev/mem和/dev/kmem,有可能给入侵者提供恢复CAP_LINUX_IMMUTABLE功能的漏洞。为了在boot上移除这项功能,添加之前的两条命令到你的系统启动脚本中(例如/etc/rc.local)。你应该确保这个功能在boot命令中被移除了,防止其他启动脚本出问题。一旦lcap移除了内核功能,就只能通过重启系统来恢复了。

在做这些之前,你应该明白,给你的日志文件添加append-only标志,将会造成日志循环脚本失败。然而,做这件事将会极大的提升你的审计追踪的安全性。安全性的提升在突发事件中会被证明是很有用的。

55:自动加密连接

难度:高级

应用程序:FreeS/WAN

一个FreeS/WAN支持的特别cool的功能是,当其他主机运行FreeS/WAN时随机加密。这允许FreeS/WAN在所有支持随机加密的主机间透明传输。为了这个,每台主机必须使用FreeS/WAN生成一个公钥,这个公钥可以存储于那台主机的一个DNS TXT记录中。当一台主机要与另一个主机建立一个随机加密,希望初始化一个加密连接时,将会通过DNS查询这台主机的公钥并且初始化这个连接。

一开始,你想使用这个功能时,需要为每一台主机生成一个公钥。你可以通过运行如下命令来实现它:

ipsec newhostkey --output /tmp/`hostname`.key

现在你需要添加通过那条命令创建的文件的内容到/etc/ipsec.secrets中。

cat /tmp/`hostname`.key >> /etc/ipsec.secrets

然后,你需要生成一个TXT记录来存放你的DNS区域。你可以通过运行如下命令来实现它:

ipsec showhostkey --txt @colossus.nnc

现在添加这条记录到你的空间然后重载它。你会证实DNS已经通过这条命令正确的运行了:

ipsec verify
Checking your system to see if IPsec got installed and started correctlyVersion check and ipsec on-path[OK]Checking for KLIPS support in kernel [OK]Checking for RSA private key (/etc/ipsec.secrets) [OK]Checking that pluto is running [OK]DNS checks. Looking for TXT in forward map: colossus [OK]Does the machine have at least one non-private address [OK]

现在只需要重启FreeS/WAN-你现在应该能连接到任何支持随机加密的主机上了。但是如果其他的主机想要连接你该怎么办?要授权连接,你需要在你的DNS反向查找区域为你的机器创建一个TXT记录。

你可以通过运行一个简单的命令来生成一条记录:

ipsec showhostkey --txt 192.168.0.64

为你的子网添加这条记录到反向查找区域,然后其他的机器就可以和你的机器初始化随机加密了。伴随着随机加密的使用,所有主机间的传输将被自动加密,同时保护所有的服务。

56:消除二进制suid

难度:中等

应用程序:find

如果你的服务器有比你自身多的shell用户,你应该在你的系统上定期的审核setuid和setgid的二进制文件。可能你会惊讶你找到了那么多文件。这里有一个搜寻所有setuid或者setgid的文件的命令位设置:

find / -perm +6000 -type f -exec ls -ld {} \; > setuid.txt &
精彩图集

赞助商链接