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


的可能性 。

对于sshd,你可以通过下面的方法来限制组用户或者光是单独用户来访问SHELL:

AllowGroups shellusers
或者
AllowGroups wheel
或者
AllowUsers xundi

当然你如果要改变原来的用户访问SHELL属性,如要把用户改变成/sbin/nologin
而不让它访问shell,你可以使用下面的命令直接改变:

chsh -s /sbin/nologin user

最后你最好使用tcpwrappers来限制一些访问,你修改/etc/hosts.allow文件,注释
掉"ALL : ALL : allow", 去掉其他无关控制访问,增加如下内容:

sshd : localhost : allow
sshd : frIEndlycomputer : allow
sshd : all : deny

FreeBSD默认情况下不把ssh登陆失败的内容记录下来,你需要对/etc/security
进行修改,下面的补丁只检测密码无效的登陆并记录下来,你可以增加对dsa/rsa
key登陆失败或者不合法用户登陆的检测:

--- /etc/security Mon Jun 11 15:45:02 2001
/etc/security Mon Jun 11 15:48:29 2001
@@ -44,644,7 @@
sort -t. -r -n1 -2 |
xargs zcat -f
[ -f $LOG/messages ] && cat $LOG/messages
[ -f $LOG/security ] && cat $LOG/security
}

sflag=FALSE ignore=
@@ -188,6189,12 @@
separator
echo "${host} login failures:"
n=$(catmsgs | grep -i "^$yesterday.*login failure" | tee /dev/stderr | wc -l)
[ $n -gt 0 -a $rc -lt 1 ] && rc=1

# Show "${host} SSH login failures:"
separator
echo "${host} login failures:"
n=$(catmsgs | grep -i "^$yesterday.*failed password" | tee /dev/stderr | wc -l)
[ $n -gt 0 -a $rc -lt 1 ] && rc=1

# Show tcp_wrapper warning messages

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

网络部分

---------

默认情况下FreeBSD和许多操作系统在关闭的端口上接受到TCP SYN段的时候,会
发送RST信息包,也就是告诉攻击者这个端口关闭了,导致攻击者继续扫描下一个
端口,一般情况下我们都不愿意使端口扫描简单化,和不想浪费过多的CPU时间
在Dos攻击上 。因此我们可以使用FreeBSD系统中叫blackhole的特征,blackhole
sysctl(8) MIB用来控制当对一些没有socket监听的TCP或者UDP端口接收到连接
请求时所操作的行为,你可以使用man blackhole获得详细的信息,当设置这个
选项后,对那些连接没有socket监听的TCP或者UDP端口的连接,系统将马上丢弃
这个包而不发RST包 。连接端将看到"Connection reset by peer".下面的操作
将激活这个特征:

sysctl -w net.inet.tcp.blackhole=2
sysctl -w net.inet.udp.blackhole=1

你可以通过下面的操作马上启动实现这个特征:

# /bin/sh /etc/rc.sysctl

当然这个特征不能作为ipfw(8)工具的替代品来防卫系统,要建立更高安全的
系统,你当然需要使用Ipfw(8)或者Ipfilter工具实现 。

修改/etc/rc.conf,把不需要的服务关闭,i)portmap服务,如果你没有NFS, NIS
等需要 。再/etc/rc.conf中加入:

portmap_enable="NO"

你可能经常发现有人讨厌的扫描你整个网络,目标端口为111的信息,这是有人
想查找是否有rpc服务漏洞的扫描,你可以在你的边缘路由器中丢弃dstport为
111的信息包 。

ii)除非你运行mail服务器或者mail网关,这里建议你把sendmail置于queueing only
模式,如果你确实需要SMTP网关,建议你安装postfix.

sendmail_flags="-q1m"

iii)建议你丢弃icmp重定向,可以防止Dos攻击或劫持进程(hijack sessions),
你也可以记录icmp重定向,不过这里你要区分一些信息,因为有的时候Cisco
路由器也会产生重定向而不是攻击信息,要记录这些信息,使用如下条目:

icmp_log_redirect="YES"

当然你要完全去掉不确定信息记录,你可以在你的CISCO路由器上关闭重定向:

推荐阅读