安装完成以后,应该马上采取哪些措施来增强服务器的安全性。对于其他的Linux发布或者版本,这些方法也是适用的。
一、关闭不必要的服务
Linux的服务分为两种,一种是由inetd超级服务器来启动的,如:ftp、telnet等;对于这些服务来说,系统并不总是运行telnetd、ftpd等服务进程,而是由inetd进程监听这些服务的服务端口,一旦有服务请求到达就启动对应的服务进程(如:telnetd等)来提供服务。另外一种是独立的服务器,系统一直运行有对应的服务进程。
关闭这两种服务的方法是不同的,对于inetd启动的进程:
inetd超级服务器的配置文件为/etc/inetd.conf,该文件指示了inetd应该监听哪些服务请求,并在请求时启动对应的服务。因此只要通过编辑/etc/inetd.conf文件就可以实现关闭不需要的服务,例如希望关闭pop3服务,则在编辑/etc/inetd.conf文件以前文件中有如下的内容:
pop-3streamtcpnowaitroot/usr/sbin/tcpdipop3d
要关闭pop3服务则在该行前添加注释符即可:
#pop-3streamtcpnowaitroot/usr/sbin/tcpdipop3d
通过编辑该文件,实现关闭不需要的服务(例如我的系统我仅仅开放了telnet和ftp服务)以后,则需要重新启动inetd超级服务器。首先找到inetd的进程号:
[root@aid/etc]#psax|grepinetd
358?S0:00inetd
然后重新启动inetd服务器:
[root@aid/etc]#kill-HUP358
最后因为inetd.conf应该不允许普通用户读写,因此设置其访问权限为600:
chmod600/etc/inetd.conf
而且该文件应该不被任何用户修改,包括root用户。因此为了防止用户错误的修改该文件,为该文件添加不可修改位:
chattri/etc/inetd.conf
对于独立服务器,则需要通过/usr/sbin/ntsysv命令来修改:
只需要服务前面通过空格键来选择是否在系统启动时启动该服务就可以实现关闭某个服务器,如:希望系统关闭dhcpd服务,则通过上下键选中该服务器,然后通过空格键去掉该服务前[]内的星号即表示系统启动时不开放该服务。若希望了解某个服务的具体含义,可以选择该服务以后按F1键来查看该服务的含义。
设置完毕以后,只有希望打开的服务前的[]内才会有星号。然后通过Tab键选择OK,按空格键。重新启动机器。
重新启动机器以后,可以通过下面的命令来察看系统打开了哪些服务,来决定是否已经关闭了不需要的服务,例如我仅仅希望提供telnet服务则:
[ideal@aidideal]$netstat-ln
ActiveInternetconnections(onlyservers)
ProtoRecv-QSend-QLocalAddressForeignAddressState
tcp000.0.0.0:230.0.0.0:*LISTEN
raw000.0.0.0:10.0.0.0:*7
raw000.0.0.0:60.0.0.0:*7
ActiveUNIXdomainsockets(onlyservers)
ProtoRefCntFlagsTypeStateI-NodePath
从上面的命令输出可以看到系统仅仅开放了23号端口,也就是telnet服务。