南方Linux论坛   首页 | 行业 | 下载 | Blog | 桌面应用 | 数据库 | 电子商务 | 文摘 | 网络服务 | 开源 | 系统管理 | 内核代码 | 教程

返回   南方Linux论坛 > Linux基础技术支持区 > Linux 网络与服务器架设 > 系统及网络安全讨论专版
注册账号 Blog 论坛帮助 会员列表 日历事件 搜索 今日新帖 标记讨论区已读

发表新主题 回复
 
主题工具 显示模式
旧 2006-09-06, 05:13 PM   #1
TOM
级别:10 | 在线时长:143小时 | 升级还需:22小时级别:10 | 在线时长:143小时 | 升级还需:22小时级别:10 | 在线时长:143小时 | 升级还需:22小时级别:10 | 在线时长:143小时 | 升级还需:22小时
论坛义工
 
注册日期: 2006-07-05
帖子: 477
精华: 0
现金: 1632 金币
资产: 1632 金币
声望: 16 TOM 正向着好的方向发展
微笑 LINUX 安全防范 100式

▓ 服务器基础

1.删除不必要的服务

精细调整服务器,以便仅仅提供确实需要的服务

在构建服务器时。创建的系统应该尽可能快速、高效地完成预期的功能。我们还要明白地问自己:我确实需要这台计算机做什么?真的需要在Web服务器上提供FTP服务吗?即使没有共享的情况下,也应该在DNS服务器中运行NFS吗?如果已静态挂载所有的卷,那还需要运行自动挂载程序吗?

要了解服务器运行了哪些进程,只需执行ps ax。如果没有用户登录,该命令会告知服务器当前运行的进程。还可使用grep -v ^# /etc/inetd.cdnf或(更简单的方法) netstat -Ip来查看哪些程序决定inetd接受的连接类型。第一条命令显示inetd.conf中所有未加注释的行;第二条命令(以root运行时)显示所有处于LISTEN状态的套接字(socket),以及在每个端口的监听程序。理想情况下,应该能将ps ax的输出缩减到一页信息甚或更少(当然,不包括httpd之类采用preforking(预先并发进程)机制的服务器)。

下面列举了一些,众人皆知(通常是不必要的)的服务,在许多发布版本中都默认地启用了这些服务:


portmap、rpc.mountd、rpc.nfsd

以上是NFS子系统的所有服务。您在运行NFS服务器吗?您需要挂载远程NFS共享吗?除非这些问题的答案都为“是”,否则就不需要运行这些后台程序。可回收这些程序占用的资源并消除潜在的安全风险。


smbd和nmbd

以上是Samb 后台程序。您需要将SMB共享导出到Windows主机(或其他电脑上吗? 如果不需要,那么就可以安全地结束这些进程。


Automount

自动挂载程序可根据需要方便地调用网络(或本地)文件系统,并且在访问时无需要root权限。对那些用户需要使用可移动媒介(如CD或软盘)或需要访问网络资源的客户端桌面电脑来说,该功能特别方便。但是在专用服务器上,可能不需要自动挂载程序。除非计算机提供控制台访问或远程网络共享功能,否则就可使用kill命令结束自动挂载序(并在/etc/fstab中静态设置所有配置)。


named

有没有运行域名服务器? 如果只需要解析网络域名,那么就不必运行named;这是/etc/resolv.conf 和bind库的任务。除非为其他电脑运行着域名服务,或者运行缓存DNS服务器(请参阅往后第78节“使用本地域授权建立缓存DNS”),则无须使用named命令。


lpd

可曾在这台电脑上打印过文件? 如果此电脑是专门用来提供Internet资源的,那此台电脑不应接受任何打印请求。如果不打算使用打印功能.那么请删除打印机后台程序。


inetd

真需要从inetd运行服务吗? 如果以standalone模式运行ssh,而且只运行standalone后台程序(如Apache、BIND、MysQL或ProFTPD),那么inetd可能是多余的。至少,要使用grep命令grep -v ^# /etc/inetd.cdnf来检查系统正接受哪些服务。如果发现每个服务都可使用注译行安全地取消掉,那么为何要运行这个后台程序呢? 因此,可从引导进程(可从系统rc中删除,也可简单地使用命令chmod -x /usr/sbin/inetd删除) 中删除该后台程序。


telnet、rlogin、rexec、ftp

对于这些古老的后台程序来说,其远程登录、执行和文件传输功能大部分都由具备密码安全性和极高灵活性的ssh和scp代替了。除非确实很有必要保留这些后台程序,否则从系统中取消对这些程序的支持不失为上策。如果确实需要支持ftp连接,则可尝试在proftpd中加入mod_sql插件 (请参阅第85小节“使用带有mysql验证源的proftpd工具”)。


finger、comast、chargen、echo、identd

finger和comsat服务在开放Internet时代很有意义,那时用户比较好奇但一般没有不良动机。在当今秘密扫描端口和远程缓冲区溢出攻击盛行的时代,一般认为运行这些无关的服务很不好,因为这会向外部暴露有关服务器的信息。chargen和echo端口曾一度适于测试网络连接性,但现在这两个端口太容易勾起动机不良者入侵的欲望(并可能相互连接,从而快速而轻易地加重服务器负载)。

最后,identd服务曾经是意义重大的信息源,可向服务器提供哪些用户连接到电脑上的信息。不幸的是,在当今本地root账户滥用和桌面Linux电脑盛行的时代,安装实际上谎报连接者信息的identd(不要有这种想法) 变得很常见,以致于多数站点忽略任何作者信息。既然ident 声名不佳的、不可靠的信息源,那为什么还要保留它呢?

要想删除不必要的服务,首先就要关闭这些服务 (可在 /etc/rc.d/init.d/ 中停止服务,然后从~/etc/inetd.conf 中删除,或者通过kill手工停止服务)。然后为确保计算机在下次引导时不会再运行这些服务,可从 /etc/rc.d/* 中删除它们相应的项目。一旦完成对系统的调整和裁减使之只运行所需的服务,即可重启电脑再次查看进程表。


如果绝对需要在电脑中运行不安全的服务,那就应该使用tcp wrapper或者本地防火墙来限制对电脑的访问,使得用户只能访问其绝对需要问的电脑。

另请参阅:

● 第45节“从任意服务器的命令行创建防火墙”
● 第78节“使用本地域授权建立缓存DNS”
● 第85节“使用带有mysql验证源的proftpd工具”



编者:

余下 99 式 请大家往本网站的 网络服务 版块继续参阅。
http://www.linuxunion.net/index/netw...htm?t=wl&id=41

此帖于 2006-09-07 11:37 PM 被 TOM 编辑.
TOM 当前离线  
回复时引用此帖
旧 2008-05-13, 11:46 AM   #2
miki922
级别:0 | 在线时长:0小时 | 升级还需:5小时
初级会员
 
注册日期: 2008-05-13
帖子: 5
精华: 0
现金: 10 金币
资产: 10 金币
声望: 10 miki922 正向着好的方向发展
默认 回复: LINUX 安全防范 100式

看过了。。。多谢分享!
miki922 当前离线  
回复时引用此帖
发表新主题 回复


当前查看此主题的会员: 1 (0 位会员和 1 位游客)
 
主题工具
显示模式

发帖规则
不可以发表新主题
不可以回复主题
不可以上传附件
不可以编辑您的帖子

论坛启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码


所有时间均为北京时间。现在的时间是 07:07 AM


vBulletin 3.6.8 Powered by 南方Linux联盟
版权所有 ©2004 - 2009, bbs.linuxunion.net