| 关键词: 运行 系统 端口 安全 服务 Sendmail 服务器 文件 etc 可疑 |
Microsoft的SQL Server数据库服务也容易被攻击,今年3月份盛行的SQL蠕虫即使得多家公司损失惨重,因此,如果安装了微软的SQL Server,有必要做这些事:1)更新数据库补丁;2)更改数据库的默认服务端口(1433);3)在防火墙上屏蔽数据库服务端口;4)保证sa口令非空。 另外,在Windows服务器上安装杀毒软件是绝对必须的,并且要经常更新病毒库,定期运行杀毒软件查杀病毒。 不要运行不必要的服务,尤其是IIS,如果不需要它,就根本不要安装。IIS历来存在众多问题,有几点在配置时值得注意:1)操作系统补丁版本不得低于SP3;2)不要在默认路径运行WEB(默认是c:\inetpub\wwwroot);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源路由。 四. 服务器安全管理 4.1 安全管理应做的事 安全管理是站点安全中最重要的一环,离开了管理,安全将变得不切实际。以下也许是Windows系统安全管理员每天应做的事: 1. 检查系统有无新增帐户,并了解其来源及用途;查看管理员组里有无新增帐户,该组的帐户除系统最初设置外,以后不应该增加帐户; 2. 在命令行状态下,运行netstat –an命令查看当前连接及打开的端口,查找可疑连接及可疑的端口; 3. 查看“任务管理器”,查找有无可疑的应用程序或后台进程在运行,并观察CPU及内存的使用状态; 4. 运行注册表编辑器,查找有无可疑的程序被加到windows的启动项里,并查看有无新增的可疑服务; 5. 使用 Windows事件查看器查看“系统日志”“安全日志”和“应用程序日志”,以发现有无可疑的事件或影响系统性能的事件; 6. 检查共享目录,不应有对所有用户可写的目录存在; 7. 如果运行Microsoft IIS,查看C:\WINNT\system32\LogFiles\下的WEB 服务器日志,以发现是否有试图攻击WEB的行为; 8. 不定期运行杀毒软件查杀病毒; 9. 经常浏览微软的网站,保持服务器的补丁同步更新,留意微软发布的安全公告。 以下是Unix系统安全管理员应经常做的事: 1. 以root运行last,查看用户在过去一段时间内所发生的事件; 2. 查看/etc/passwd和/etc/shadow文件,以发现是否有新增用户,并追查用户来源及用途;保证这两个文件中的系统用户(如Daemon bin sys adm lp uucp nuucp listen noaccess、mysql、sshd、nobody等)没有自己的shell;检查有无帐户被提升到root权限(UID 0); 3. 运行netstat –an |grep LISTEN查看有无可疑的打开的端口; 4. 使用ps命令查看系统进程,保证只有必要的进程在运行; 5. 检查被cron运行的程序,Solaris一般在/var/spool/cron目录里,Freebsd一般在/var/cron里,初始化的crontable除root外,其他用户不应拥有;仔细查看root的crontable; 6. 使用vmstat和top查看系统资源占用状况,对高资源占用的系统进程要做谨慎处理; 7. 查看系统日志,包括Solaris下的/var/adm/messages和Freebsd下的/var/log/messages,以发现有无可疑的事件发生; 8. 查看系统安全日志,包括用户登陆尝试、验证失败、可疑的IP地址登陆等,在solaris下是/var/log/authlog,freebsd下是/var/log/auth.log; 9. 运行chkrootkit,以检查系统是否被植入木马程序; 10. 安装了Apache的主机,不定期查看Apache的访问日志和错误日志, 以发现是否有试图攻击WEB的行为。 4.2 系统及服务的稳定性 一些重要的服务器是片刻也不能停的,一旦发生服务器down机事故,而你又没有及时发现和恢复,那么你面对的将是铺天盖地的指责。系统安全管理的任务也许不是很重,但责任却并不轻。因此,你有必要时刻了解服务器的存活状况,一旦发生down机事件,你应在第一时间知道。 有些好的IDC机房有服务器监控系统,一旦某台机器down掉,它会发出警报。然后机房的值班人员会电话通知你,这样你就能从容的处理事故。然而,并非所有的机房都有这样的措施,很多时候还得依靠自己的小心。 在机房网络中,应该有一它网管机器,这台机器最好是Unix系统,因为你可以在上面编写脚本来监控网络,并通过sendmail发送邮件给自己。这台机器可以是一台服务器,象前面讲过的登陆入口服务器,就完全可以充当网管机;也可以是一台配置很低的普通PC,能运行Linux或Freebsd就可以了。有必要在上面运行sendmail,因为它要对外发送邮件。当然,sendmail有一些安全问题,因此在运行它之前,你必须确认服务器处于安全的网络:在防火墙之后,且同一网段中没有其他公司的服务器。否则,就不要运行它。当然,你也可以配置sendmail绑定在127.0.0.1端口,不接受网络请求(在Linux默认安装的sendmail不接受网络请求,Freebsd中可以在rc.conf文件中设置使sendmail绑定在127.0.0.1端口),这样的sendmail会安全很多。 然后你可以写一个简单的脚本来监控网络主机生存状况。在Unix主机上,使用shell或perl都很容易编写脚本,但是,shell脚本用于系统管理更简单明了,除非你要进行复杂的数学计算或文本处理。 |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|