中文(Chinese) 英文(English) Tel: 4006-858-981           Msn: China@Safe.sh         QQ: 7387526       Server Hosting        加入收藏
主页 >> 精辟见解 >> 专家答疑
精辟见解
分类
服务器安全维护之三系统安全

三. 系统安全

系统安全是站点安全的主要部分。如果你的系统存在明显漏洞,那么再好的物理环境和网络环境也保不了你。一个很明显的问题是,如果你的WEB服务器存在安全漏洞,你在没有将其修补的情况下对外提供服务,那么不管你的防火墙有多坚固,也会很快被入侵。因此,系统管理员在保证系统功能稳定的同时,不得不花时间来研究系统的安全问题。

我所接触的服务器主要有Windows2000 Server、Freebsd、Linux和Solaris。第一种是微软的产品,方便好用,但是,你必须要不断的patch它。Freebsd是一种优雅的操作系统,它简洁的内核和优异的性能让人感动。Linux和Freebsd一样,是免费的操作系统,它们都广泛使用GNU(一个伟大的组织)的实用工具集,Linux容易上手,但不如Freebsd简洁。Solaris是SUN的商用操作系统,关于SUN OS的文章在网上被贴得到处都是,但遗憾的是,它看起来并不快,而且,你也要经常对它打补丁。

关于这几种操作系统的安全,每种都可以写一本书。我不会在这里对它们进行详细描述,只讲一些系统初始化安全配置。

1. Windows2000 Server的初始安全配置

Windows的服务器在运行时,都会打开一些端口,如135、139、445等。这些端口用于Windows本身的功能需要,冒失的关闭它们会影响到Windows的功能。然而,正是因为这些端口的存在,给Windows服务器带来诸多的安全风险。远程攻击者可以利用这些开放端口来广泛的收集目标主机信息,包括操作系统版本、域SID、域用户名、主机SID、主机用户名、帐号信息、网络共享信息、网络时间信息、Netbios名字、网络接口信息等,并可用来枚举帐号和口令。今年8月份和9月份,微软先后发布了两个基于135端口的RPC DCOM漏洞的安全公告,分别是MS03-026和MS03-039,该漏洞风险级别高,攻击者可以利用它来获取系统权限。而类似于这样的漏洞在微软的操作系统中经常存在。

解决这类问题的通用方法是打补丁,微软有保持用户补丁更新的良好习惯,并且它的 Windows2000 SP4安装后可通过Windows Update来自动升级系统补丁。另外,在防火墙上明确屏蔽来自因特网的对135-139和445、593端口的访问也是明智之举。

Microsoft的SQL Server数据库服务也容易被攻击,今年3月份盛行的SQL蠕虫即使得多家公司损失惨重,因此,如果安装了微软的SQL Server,有必要做这些事:1)更新数据库补丁;2)更改数据库的默认服务端口(1433);3)在防火墙上屏蔽数据库服务端口;4)保证sa口令非空。

另外,在Windows服务器上安装杀毒软件是绝对必须的,并且要经常更新病毒库,定期运行杀毒软件查杀病毒。

不要运行不必要的服务,尤其是IIS,如果不需要它,就根本不要安装。IIS历来存在众多问题,有几点在配置时值得注意:1)操作系统补丁版本不得低于SP3;2)不要在默认路径运行WEB(默认是c:inetpubwwwroot);3)以下 ISAPI应用程序扩展可被删掉:.ida .idq .idc .shtm .shtml .printer。

2. Freebsd的初始安全配置

Freebsd在设计之初就考虑了安全问题,在初次安装完成后,它基本只打开了22 (SSH)和25(Sendmail)端口,然而,即使是Sendmail也应该把它关闭(因为历史上Sendmail存在诸多安全问题)。方式是编辑 /etc/rc.conf文件,改动和增加如下四句:

sendmail_enable="NO"

sendmail_submit_enable="NO"

sendmail_outbound_enable="NO"

sendmail_msp_queue_enable="NO"

这样就禁止了Sendmail的功能,除非你的服务器处于一个安全的内网(例如在防火墙之后并且网段中无其他公司主机),否则不要打开Sendmail。

禁止网络日志:在/etc/rc.conf中保证有如下行:

syslogd_flags="-ss"

这样做禁止了来自远程主机的日志记录并关闭514端口,但仍允许记录本机日志。

禁止NFS服务:在/etc/rc.conf中有如下几行:

nfs_server_enable="NO"

nfs_client_enable="NO"

portmap_enable="NO"

有些情况下很需要NFS服务,例如用户上传图片的目录通常需要共享出来供几台WEB服务器使用,就要用到NFS。同理,要打开NFS,必须保证你的服务器处于安全的内网,如果NFS服务器可以被其他人访问到,那么系统存在较大风险。

保证/etc/inetd.conf文件中所有服务都被注销,跟其他系统不同,不要由inetd运行任何服务。将如下语句加进/etc/rc.conf:

inetd_enable="NO"

所有对/etc/rc.conf文件的修改执行完后都应重启系统。

如果要运行Apache,请编辑httpd.conf文件,修改如下选项以增进安全或性能:

1) Timeout 300--->Timeout 120

2) MaxKeepAliveRequests 256

3) ServerSignature on--->ServerSignature off

4) Options Indexes FollowSymLinks 行把indexes删掉(目录的Options不要带index选项)

5) 将Apache运行的用户和组改为nobody

6) MaxClients 150——>MaxClients 1500

(如果要使用Apache,内核一定要重新编译,否则通不过Apache的压力测试,关于如何配置和管理WEB服务器请见我的另一篇文章)

如果要运行FTP服务,请安装proftpd,它比较安全。在任何服务器上,都不要打开匿名FTP。

3. Linux的初始安全配置

Linux安装完成后,默认会打开一些不必要端口,运行netstat –an |grep LISTEN命令看一下,会看到本机打开的所有端口。除了必须的网络端口如SSH、FTP和WEB,其他端口都关闭。如果你不熟悉这些端口对应什么程序,那么请参看/etc/services文件,里面有端口和服务的对应列表。

在Redhat 9.0默认安装完成后,请进入/etc/rc2.d和/etc/rc3.d,将系统启动时打开的不必要服务都在这里注销掉。这些服务通常包括 sendmail、NFS、rpc等,注销的方法是将S打头的相关服务文件重命名(注意不要命名为S或K 打头的其他文件)。

例如将/etc/rc2.d/S80sendmail 改名为 X80sendmail

将/etc/rc3.d/S13portmap S14nfslock S28autofs S80sendmail 改名为 X13portmap X14nfslock X28autofs X80sendmail

RPC的安全问题历来很多,请注意一定不要打开111端口。

改完后需要重启Linux服务器。

如果你的Linux直接面对因特网,那么可以配置它的防火墙来实现访问控制。 Linux2.4内核支持iptables,2.4以下支持ipchains,它们的语法差不多,都是很好的防火墙工具。例如,如果你只允许从因特网访问 SSH和WWW服务,那么可将如下语句加进/etc/rc.d/rc.local文件:

/sbin/iptables -F

/sbin/iptables -A INPUT -p tcp -d 211.96.13.* --dport 80 -i eth0 -j ACCEPT

/sbin/iptables -A INPUT -p tcp -d 211.96.13.* --dport 22 -i eth0 -j ACCEPT

/sbin/iptables -A INPUT -i eth0 -j DROP

说明:iptables –F刷新iptables规则表,接下来两条语句允许任何人访问211.96.13.*这个地址的WWW和SSH服务,最后一条DROP语句将不符合规则的其他访问过滤掉。

这样系统在启动后即可自动运行防火墙规则。

通常在Freebsd或Linux上会运行Mysql数据库服务,不要将数据库服务端口(3306)暴露在防火墙之外。如果运行Apache,同样要做如Freebsd的修改。

4. Solaris的初始安全配置

关于Solaris的安全配置网上有一篇非常好的文章,叫做《The Solaris Security FAQ》,照着做就可以了。

1) 禁止root从网络直接登陆:修改/etc/default/login文件,确保CONSOLE=/dev/console被设置,该行只允许root从控制台登陆。将root用户加入/etc/ftpusers,保证root不可以远程使用ftp。

2) 禁止rlogin和rsh访问:删除/etc/hosts.equiv和/.rhosts文件,从/etc/inetd.conf文件里注释掉所有以r打头的服务。

3) 帐号控制:删除、锁定或注释掉不必要的系统帐号,包括sys/uucp/nuucp/listen等

4) 改变/etc目录的访问权限:该目录下文件不应该对同组用户可写,执行:chmod –R g-w /etc (不推荐)

5) 在solaris2.5 以上版本的系统中,创建/etc/notrouter文件来关闭solaris默认的路由转发。

6) 禁止automounter:删除/etc/auto_*配置文件,删除/etc/init.d/autofs

7) 禁止NFS服务:删除/etc/dfs/dfstab,重命名/etc/rc3.d/S15nfs.server,重命名/etc/rc2.d/S73nfs.client (不要再以S打头)

8) 禁止rpc服务:重命名/etc/rc2.d/S71RPC

9) 修改/etc/inetd.conf文件,注释掉大部分不必要服务,只保留telnet和ftp服务,然后重启inetd进程。

10) 给系统打补丁:包括各版本Solaris通用补丁和单个补丁集合。

11) 将如下三行加进/etc/init.d/inetinit文件:

ndd -set /dev/ip ip_forward_directed_broadcasts 0

ndd -set /dev/ip ip_forward_src_routed 0

ndd -set /dev/ip ip_forwarding 0

这样在系统启动后就关闭了IP转发和IP源路由。

Safe.sh反病毒工程师建议

  安全有威胁拨打Safe.sh急救电话0755-3300-7600,反病毒专家将为您提供帮助。我们的业务范围:

服务器安全管理、服务器安全急救中心、服务器安全培训、服务器安全代管、网络安全、网站建设、网站

维护、IT外包。

页面工具 打印 | 电子邮件 | 评价
关于我们 | 沪ICP备12021423号-1 | 联系我们 友情链接 | 站点地图 | 隐私 | 法律 | Copyright © 2019 Safe.Sh