一些FreeBSD相关的安全问题( 三 )



"no ip send-redirects"

(IV)你可以设置系统丢弃SYNFIN信息包,不过这个你可以更好的通过IPFW来过滤
这种信息包,但是你也可以在/etc/rc.conf中增加如下条目来激活这种选项:

tcp_drop_synfin="YES"

当然你需要在kernel配置中增加如下配置:

options TCP_DROP_SYNFIN

v)关闭对广播类型的响应

#sysctl -w net.inet.icmp.bmcastecho=0

过滤icmp响应这后,服务器无法ping通,这有助提高部份安全性能 。

vi)对udp包的校验和计算

#sysctl -w net.inet.udp.checksum=1

可以防止不正确的udp包的攻击 。

vii)设置rc.sysctl, rc.conf 和 sysctl.conf 权限:

# chmod 600 /etc/rc.sysctl
# chmod 600 /etc/rc.conf
# chmod 600 /etc/sysctl.conf

===================================================================

Crontab和at问题

----------------

crontab是一个比较强大的服务,有不少漏洞在cron发现过,普通用户最起码
也可以浪费资源等操作,这里建议"www", "nobody" 和 "bind" 不能使用crontab.

建立一/etc/cron/allow文件并把需要使用的用户放进去,如:

# echo root > /var/cron/allow
# chmod 600 /var/cron/allow

并设置权限crontab不能由其他用户任意访问:

# chmod 600 /etc/crontab

不过你如果不需要使用"at"命令,就关闭这个服务,因为安全的原则始终是"
你不许它,丢掉它",在/etc/crontab文件中注释掉下面一行:

# */5 * * * * root /usr/libexec/atrun

===================================================================

inetd和rate限制问题
---------------------

Inetd默认情况下是启用的,它控制了不少不安全的服务,如:telnet, ntalk
和finger 。检查你所有/etc/inetd.conf中的服务,关闭任何你不需要的服务 。
如果没有一个用户需要,请在/etc/rc.conf中关闭inetd启动:

inetd_enable="NO"

如果你要使用FreeBSD的inetd.你可以通过inent请求来控制rate的资源,如:

auth stream tcp nowait/10/10 root internal auth -r -f -n -o UNKNOWN -t 30

第一个10表示我们允许的最大子进程数量,第二个值是每一个IP每一分钟连接的
最大数量,一般10/10的值是健康的,不过你一般不要使用这个ident,我们一般也只在IRC里看到这个服务 。

=======================================================================、

Securelevel 问题
=================

FreeBSD内核有一个安全级别(securelevel)的概念,这是指系统内核运行使用
的安全等级,不同的等级具备不同的保护和检查机制 。一般工作站运行在securelevel
0级别,因为他们可能需要运行X11,而服务器一般运行在2或者1级别上,关于
内核安全级别的详细资料中文你可以参看王波的"FreeBSD使用大全连载 " 。

如果你要改变级别系统为2,你可以在/etc/rc.conf中增加如下条目:

kern_securelevel_enable="YES"
kern_securelevel="2"

你可以重新去启动,或者使用

# sysctl -w kern.securelevel=2

来激活 。

=====================================================================

一些本地安全tip
---------------

i)编辑/etc/ttys,把下面的一行的secure改为insecure:

console none unknown off secure

这样用户进入单用户模式时会要求输入ROOT密码,当然这样也使你忘记ROOT密码
时恢复存在一定难度了 。

ii)修改一些计算机相关设置,如BIOS,不允许软盘启动,CDROM启动等,即在装载
硬盘驱动以前不允许其他媒介启动 。设置BIOS密码,保护机器物理安全(如果人家
带着榔头,炸弹,一盆水来那就没办法了) 。

iii)关于虚拟终端和虚拟终端缓冲,虚拟终端缓冲中的内容在你logoff以后并

推荐阅读