扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
取消所有非必要的服务,尽量做到干净,减少后门
把Linux作为专用服务器是个明智的举措。例如,希望Linux成为强大的Web服务器,可以取消系统内所有非必要的服务,只开启必要服务。这样做可以尽量减少后门,降低隐患,而且可以合理分配系统资源,提高整机性能。以下是几个不常用的服务:
1. fingerd(finger服务器)报告指定用户的个人信息,包括用户名、真实姓名、shell、目录和联系方式,它将使系统暴露在不受欢迎的情报收集活动下,应避免启动此服务。
2. R服务(rshd、rlogin、rwhod、rexec)提供各种级别的命令,它们可以在远程主机上运行或与远程主机交互,在封闭的网络环境中登录而不再要求输入用户名和口令,相当方便。然而在公共服务器上就会暴露问题,导致安全威胁。
3. X-Window从严格的意义上说,是Linux窗口管理器的扩展,而不是重要组成部分。从目前的GNOME、KDE这两种主流图形服务器来看,体积越来越臃肿,耗存越来越大,一些基于图形界面的软件在使用上也存在不少问题。虽然开发人员不会放弃对它的完善,但对于服务器来说,它的存在价值几乎没有。因此,在安装服务器时,务必考虑是否真的需要图形管理界面。
4. 其它服务,如amd、arpwatch、atd、dhcpd、innd、nntpd、talkd、lpd、named、routed、snmpd、 xfs、wuftpd、tftpd、telnet、ypbind、yppasswd、ypserv,既然是Web服务器,都可以取消或卸载掉。
同理,如果是作为FTP服务器运行,只需FTP进程和必要的程序。
用安全系数高的服务替代正在运行的服务进程
对于一些必要的服务器,如前所说的Web服务器,理论上只需要Apache的进程就可以工作了。但是如果管理员需要远程控制放在运营中心的主机呢?或者用户需要通过FTP上传更新资料呢?Telnet、wu-ftp这些服务的安全性太低,这时,就需要启用安全级别高的服务来替代这些服务程序。以下为几个需要替代的进程:
1.用OpenSSH替代Telnet
推荐使用开放软件OpenSSH(Secure Shell),这是一个安全的登录系统,且不受加密方法的出口限制,适用于替代Telnet、rlogin、rsh、rcp、rdist。另外, OpenSSH也可以用来在两台计算机间建立一条加密信道供其它不安全软件使用。OpenSSH支持多种算法,包括BlowFish、Triple DES、IDEA、RSA。目前支持SSH的客户端软件不少,推荐使用Putty和Filezilla。关于服务器和软件的安装使用,请参见相关文章,在此不再详述。
2.用Vsftpd替代wu-ftpd、tftpd(基本的FTP服务)、ncftpd(匿名服务)
如果想要一个优秀的FTP软件,建议使用Vsftpd。Vsftpd(Very Secure)是一个非常值得信赖的FTP软件。除了与生俱来的高安全性外,在ASCⅡ传输模式下的速度是wu-ftpd的两倍,在千兆以太网的下载速度可达86Mb/s;在稳定性方面,Vsftpd可以在单机(非集群)上支持4000~15000个以上的并发用户同时连接。除此以外,还可以建立虚拟 FTP服务器,支持非系统用户的登录下载,同时也可以给不同的用户分配不同的权限,保证服务的安全最大化。现在世界上很多著名的公司都在使用 Vsftpd,如Red Hat、GNU、GNOME、SuSe、KDE、OpenBSD等。具体安装和配置请见参考资料。
3.用Qmail替代Sendmail
Sendmail 将来仍然是主要的SMTP服务器,网络上有关Sendmail服务器的配置资料随处可见。但事实上由于Sendmail代码的复杂性,使得很多人对其配置一知半解。多数情况下,新手们往往只要能够让Sendmail启动起来、能收发邮件就觉得万事大吉了。这样的配置其实漏洞太多,难以保证安全性。所以, Qmail是个更好的选择。当然,要想真正建立一个功能强大、运行稳定的邮件服务器,掌握其灵活的配置,认真阅读How-to手册和FAQ是很有必要的。
使用tcpwrappers控制文件
在没有设置防火墙之前,可以通过一种简单而可靠的机制——tcpwrappers来加强网络访问控制。tcpwrappers从两个文件中读取网络访问控制规则:
|
配置文件的编写规则非常简单,一般是:
|
1. 如果client及services满足hosts.allow里面的条目,那么访问将被允许。
2. 如果client及services满足hosts.deny里面的条目,那么访问将被禁止。
3. 如果以上两条都不满足,访问将被允许。
4. 如果访问控制文件不存在,将被当作空规则文件处理。所以可以通过删除访问控制文件来关闭访问限制。
其中services_list可以列出一个或几个服务进程名,也可以使用通配符;client_list可以是IP地址、主机名或者网络号,也可以使用通配符。
services_list有两个特殊用法的符号:ALL和EXCEPT。ALL表示所有的进程,而EXCEPT表示排除某个进程。比如,ALL EXCEPT in.fingerd表示除了in.fingerd外所有的进程。
client_list可以使用如下通配符:
1. “.”号在字符串前匹配所有后面部分和所提供字符串一样的主机名。比如:.xssz.net可以匹配www.xssz.net或mail.xssz.net。
2. “.”号在字符串后匹配以所提供字符串开头的地址,比如,10.44.可以匹配所有10.44.xxx.xxx的地址。
3. 可以使用n.n.n.n/m.m.m.m的格式来表示net/mask,比如,10.44.72.0/255.255.254.0匹配从10.44.72.0到10.44.73.255的地址。
4. 以“/”号开头的字符串将被看作一个文件处理,它匹配所有在这个文件中列出的主机名或者地址。
5. “@”开头的串将被当作一个NIS组的名字。
6. ALL表示所有的主机,LOCAL匹配所有机器名中不带“.”号的主机,EXCEPT表示排除某些主机。
比如,hosts.allow中有一行,ALL: .edu.cn EXCEPT example.edu.cn表示允许除了主机名叫example.edu.cn 以外的所有.edu.cn域内的机器访问所有的服务。而在hosts.deny中,ALL EXCEPT in.fingerd:192.168.0.0/255.255.255.0则表示禁止192.168.0.1到192.168.0.254的机器访问除了in.fingerd以外的服务。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者