扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
由于提供服务与保障系统安全性是有冲突的,提供的服务越多,就会存在越多的潜在的危险性。因此为了增加系统安全,就要尽量减少系统提供的服务。
提供网络服务的守护进程主要有两种启动方式,一种为从系统启动文件中启动,另一种为通过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_process
* inetd服务器
然而,Unix系统中绝大多数服务进程还是通过超级服务器进程inetd来启动的。它的设置文件为/etc/inetd.conf ,以下为这个文件的一部分。
##$Id: inetd.conf,v 1.30 1998/09/30 16:12:40 wosch Exp $## Internet server configuration database##@(#)inetd.conf5.4 (Berkeley) 6/30/90#ftpstreamtcpnowaitroot/usr/libexec/ftpdftpd -ltelnetstreamtcpnowaitroot/usr/libexec/telnetdtelnetdshellstreamtcpnowaitroot/usr/libexec
/rshdrshdloginstreamtcpnowaitroot/usr/libexec/rlogindrlogindfingerstreamtcpnowait/3/10 nobody /usr/libexec/fingerdfingerd -s#execstreamtcpnowaitroot/usr/libexec/rexecdrexecd#uucpdstreamtcpnowaitroot/usr/libexec
/uucpduucpd#nntpstreamtcpnowaitusenet/usr/libexec/nntpdnntpdcomsatdgramudpwaitroot/usr
/libexec/comsatcomsatntalkdgramudpwaitroot/usr/libexec/ntalkdntalkd
这个文件中的每一行对应一个服务程序。为了增强系统安全,建议除了必要的服务,如telnetd、ftpd之外,其他比如rshd、rlogind等r 命令服务程序,fingerd等守护进程都应该加以注释。telnet和ftp 也应该与S/key等认证方式相结合,来保证口令的安全性。除非需要,不要提供匿名ftp服务。
当使用rlogin,rsh等r命令的时候,/etc/hosts.equiv文件和用户个人目录下的.rhosts 文件中的设置将对系统安全有严重的影响。
如果要求更安全的系统,甚至可以屏蔽inetd,不使用inetd来提供任何服务,通过其他安全途径来完成远程访问FreeBSD。要屏蔽inetd,需要在rc.conf中改变inetd_enable变量的值为NO。即使使用inetd的时候,最好让inetd记录相关日志,这需要使用参数-l启动 inetd,在rc.conf中可以设置inetd_flags为”-l”。
当需要启动某个守护进程的时候,inetd.conf中的第五列参数对安全性有重要影响,这个参数设置启动这个进程的用户标识,应该尽量不要使用root用户,以减少具备root身份的进程。
为了避免服务程序出现问题,还要经常更新软件的版本,或应用补丁程序,以堵上可能出现的漏洞,因此有些服务程序的老版本存在已经发现的安全问题,如果不及时弥补,入侵者就能利用这些漏洞达到入侵系统的目的。虽然每个FreeBSD 版本使用的都是最新版本的服务软件,但服务器软件是不断升级的,因此就需要及时升级服务器软件。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者