76 FreeBSD连载:设置基本系统( 五 )


注意,如果存在/etc/pam.d目录,PAM将在这个目录中寻找设置信息,而忽略pam.conf 。
这些认证系统的动态连接库均位于系统中的/usr/lib/目录下,如果需要,可以增加其他认证方式 。
# ls -l /usr/lib/*pam*-r--r--r--1 rootwheel59938 Feb 15 18:41 /usr/lib/libpam.alrwxrwxrwx1 rootwheel11 Apr 14 16:24 /usr/lib/libpam.so -> libpam.so.1-r--r--r--1 rootwheel33451 Feb 15 18:41 /usr/lib/libpam.so.1-r--r--r--1 rootwheel2895 Feb 15 18:41 /usr/lib/pam_cleartext_pass_ok.so-r--r--r--1 rootwheel6587 Feb 15 18:41 /usr/lib/pam_radius.so-r--r--r--1 rootwheel3798 Feb 15 18:41 /usr/lib/pam_skey.so-r--r--r--1 rootwheel6497 Feb 15 18:41 /usr/lib/pam_tacplus.so-r--r--r--1 rootwheel3333 Feb 15 18:41 /usr/lib/pam_unix.so其中每个以pam_开头的库均对应一种认证方式,可以看出系统中还能提供其他几种认证方式,如RADUIS、TACPLUS等方式 。使用libpam能帮助用户开发其他PAM认证程序 。
PAM是一种新的、更为灵活的认证机制,以前的FreeBSD版本并不支持这种方式 。PAM虽然更为灵活,但对于一般目的,缺省的支持s/key和标准认证方式的设置就能满足需要了,一般不必改动配置文件 。然而有些时候,譬如ISP,通常使用RADUIS服务器来保存用户的认证数据,此时使用RADUIS进行认证就能带来非常大的益处 。因为PAM涉及系统认证,因而对安全性非常重要,不能轻易加入一个非信任的认证模块,因为除了模块本身的问题之外,认证模块中很容易加入后门 。建议经常检查/etc/pam.conf,/etc/pam.d/目录,以及/usr/lib/*pam*文件是否被非法改动,以保证系统安全 。
网络服务与应用程序安全
由于提供服务与保障系统安全性是有冲突的,提供的服务越多,就会存在越多的潜在的危险性 。因此为了增加系统安全,就要尽量减少系统提供的服务 。
提供网络服务的守护进程主要有两种启动方式,一种为从系统启动文件中启动,另一种为通过inetd超级守护进程启动应用程序 。
系统rc文件
通常的系统启动文件启动的守护进程有sendmail、syslogd、lpd等,要改变系统启动的服务进程,需要更改的文件包括/etc/rc.conf、/etc/rc.local,以及/usr/local/etc/rc.d与/usr/X11R6/etc/rc.d目录下的以.sh结尾的启动文件(这两个启动脚本目录是由rc.conf中的local_startup定义,因此也有可能被设置为了其他的值) 。除非特殊情况,其他的rc文件不应该被改动,如果其他的rc文件被非法更改,很可能是入侵行为 。
特别需要注意/etc/default/rc.conf,/etc/rc.conf.local文件,因为这些文件也能用于设置启动服务,而不被管理员所注意,因此可能是入侵者用于放置后门程序的位置 。
为了减少守护进程,就需要将rc.conf中相关选项设置为NO,例如要屏蔽sendmail,就可以设置sendmail_enable=”NO” 。此外,缺省的rc.local文件中没有内容,因此在这里也不应该有降低系统安全的设置,/usr/local/etc/rc.d/和/usr/X11R6/etc/rc.d/目录下的执行脚本为安装其他软件包时所安装的,对于不希望提供的网络服务,应该将执行脚本更改为以其他后缀结尾的文件,只有以.sh结尾的执行脚本才会在启动时自动执行 。
一个安全的FreeBSD系统,应该具有干净的rc.local文件,/usr/local/etc/rc.d与/usr/X11R6/etc/rc.d目录,以及尽量减少基本启动进程的rc.conf文件 。
守护进程直接放在rc文件中启动,将具备root的权限,危险性较大 。如果能使用用户的身份可以执行守护进程的相应操作,就应该使用用户的身份执行它 。这可以通过使用su命令启动服务进程的方式,代替直接启动服务进程的命令 。
su user services_processinetd服务器
然而,Unix系统中绝大多数服务进程还是通过超级服务器进程inetd来启动的 。它的设置文件为/etc/inetd.conf,以下为这个文件的一部分 。

推荐阅读