首页 理论教育 UNIX系统安全-用户口令、文件系统与系统配置

UNIX系统安全-用户口令、文件系统与系统配置

时间:2023-11-23 理论教育 版权反馈
【摘要】:UNIX系统经历了几次更新换代,其功能和安全性都日臻完善,尽管如此,攻击者还是可以利用系统的一些漏洞进入系统。但后来的新版本引进了受控访问环境的增强特性,增加了审计特性,进一步限制用户执行某些系统指令,其中审计特性可跟踪所有的“安全事件”和系统管理员的工作,从而使UNIX系统达到了C2安全级。UNIX系统安全性措施包括用户与口令安全、文件系统安全和系统配置安全等。

UNIX系统安全-用户口令、文件系统与系统配置

UNIX系统经历了几次更新换代,其功能和安全性都日臻完善,尽管如此,攻击者还是可以利用系统的一些漏洞进入系统。

(一)UNIX系统的安全基础

文件系统安全是UNIX系统的重要部分。在UNIX中,所有的对象都是文件。UNIX中的基本文件类型有正规文件、特殊文件、目录、链接、套接字、字符设备等,这些文件以一个分层的树型结构进行组织,以一个称为root的目录为起点,整个就是一个文件系统。UNIX中的每个用户都有一个唯一的用户名和UID(用户ID号),每个用户属于一个或多个组。基本分组成员在/etc/passwd中定义,附加的分组成员在/etc/group中定义。每个文件和目录有三组权限:一组是文件的拥有者,一组是文件所属组的成员,一组是其他所有用户。在所有文件中,需要注意文件的SUID(设置文件所有者ID号)位和SGID(设置文件所在组ID号)位,因为一些攻击者常利用这些文件留下后门。当用户执行一个SUID文件时,用户ID在程序运行的过程中被置为文件拥有者的用户ID,如果文件属于root,则用户就成为超级用户。同样,当一个用户执行SGID文件时,用户的组被置为文件的组。UNIX系统实际上有两种类型的用户ID:实际ID和有效ID。实际ID是在登录过程中建立的用户ID,有效ID是用户运行进程时的有效权限。一般情况下,当一个用户执行一条命令时,进程继承了用户登录Shell的权限,这时,实际ID和有效ID是相同的。当SUID位被设置时,进程则继承了命令所有者的权限,通过创建一个SUID是root的Shell副本,攻击者可以借此建立后门。因此,系统管理员应定期查看系统中有哪些SUID和SGID文件。

UNIX早期版本的安全性能很差,仅达到TCSEC的Cl安全级。但后来的新版本引进了受控访问环境的增强特性,增加了审计特性,进一步限制用户执行某些系统指令,其中审计特性可跟踪所有的“安全事件”和系统管理员的工作,从而使UNIX系统达到了C2安全级。

(二)UNIX系统漏洞与防范

1.RPC服务缓冲区溢出

远程过程调用(RPC)是SUN公司开发的用于在远程主机上执行特定任务的一种协议。RPC允许一台计算机上的程序远程执行另一台计算机上的程序。它被广泛用来提供网络远程服务,如NFS文件共享等。但由于代码实现的问题,RPC的几个服务进程很容易遭到远程缓冲区溢出的攻击。因为RPC不能进行必要的错误检查,所以缓冲区溢出允许攻击者发送程序不支持的数据,使这些数据被继续传送和处理。

采取安装补丁程序、从因特网直接访问的计算机上关闭或删除RPC服务、关闭RPC的oopback端口、关闭路由器或防火墙中的RPC端口等措施可避免该漏洞被攻击。

2.Sendmail漏洞

Sendmail是UNIX上用得最多的用于发送、接收和转发电子邮件的程序。Sendmail在因特网上的广泛应用使其成为攻击者的主要目标,攻击者可利用Sendmail存在的缺陷进行攻击。最常见的攻击是攻击者发送一封特别的邮件消息给运行Sendmail的计算机,Sendmail会根据该消息要求被攻击的计算机将其口令文件发送给攻击者,这样,口令就会被暴露。

可通过采取更新Sendmail为最新版本、及时下载或更新补丁程序、非邮件服务器或代理服务器不要在daemon模式下运行Sendmail等措施防范Sendmail攻击。

3.BIND的脆弱性

BIND是域名服务DNS中用得最多的软件包。它存在一定的缺陷,攻击者可利用BIND缺陷攻击DNS服务器,如删除系统日志、安装软件工具以获得管理员权限、编辑安装IRC工具和网络扫描工具、扫描网络以寻找更多的易受攻击的BIND等。可采取以下措施防范BIND攻击。

(1)在所有非DNS服务器的计算机上,取消BIND的named。

(2)在DNS服务器的计算机上将DNS软件升级到最新版本或补丁版本。

(3)选择部分补丁程序,以非特权用户的身份运行BIND,以防止远程控制攻击。

4.R命令缺陷

UNIX系统提供了R系列命令(rsh、rcp、rlogin和rcmd)和相应的R服务功能。UNIX管理员经常使用信任关系和R命令,从一个系统方便地切换到另一个系统。R命令允许一个人登录远程计算机而不必提供口令,远程计算机不用询问用户名和口令,而认可来自可信赖IP地址的任何人。如果攻击者获得了可信赖网络中的任何一台计算机,就能登录到任何信任该IP的计算机。

采取不允许以IP为基础的信任关系、不使用R命令和更安全的认证方式等措施可防范R命令的缺陷。

(三)UNIX的主机安全性

UNIX系统主机的安全是网络安全的重要方面,攻击者往往通过控制网络中的系统主机来入侵信息系统和窃取数据信息,或通过已控制的系统主机来扩大已有的破坏行为。为UNIX操作系统安全制定较详细的安全性原则,可从技术层面指导用户对主机系统进行安全设置和管理,从而使信息系统的安全性达到一个更高的层次。

UNIX系统安全性措施包括用户与口令安全、文件系统安全和系统配置安全等。

1.用户与口令安全性(www.xing528.com)

(1)设置/etc/passwd文件权限为400,且所有者为root。因为/etc/passwd文件中存放着系统的账号信息,只有root可以写。如果其他用户可写,就有可能出现设置后门、提升权限、增删用户等问题。

(2)设置用户密码。空密码用户的存在将增加服务器被入侵的可能性,因此要为每个用户设置密码。密码要有一定的长度,要大小写字母、数字和符号组合,增加密码的复杂性,减少密码被猜中的可能性。

(3)设置账号锁定功能。攻击者可能会使用一些软件工具通过重复登录来穷举密码,锁定账号可以使这种穷举密码攻击失效。

(4)封闭不常用的账号。bin、sys、daemon、adm、lp、tftp、nobody等账号一般用不到,但有可能被攻击者利用,因此可将这些无用账号删除。

(5)启用审计功能。审计功能可为管理员提供用户登录、用户操作及网络资源的使用等情况,因此可使管理员很清楚服务器的使用现状。

2.文件系统安全性

(1)设置内核文件的所有者为root,且组和其他用户对内核文件不可写,防止其他用户修改内核文件。

(2)禁止普通用户运行crontab,并确保/usr/lib/crontab和该表中列出的任何程序对任何人都不可写。明确crontab运行脚本中的路径和不安全的命令,因为crontab经常会被一些攻击者设置后门,所以要弄清楚crontab中的脚本用途。

(3).netrc文件中不能包含密码信息。ftp命令在执行时会去寻找一个文件名为.netrc的文件,如果此文件存在且其中有ftp命令行中指定的主机名,则会执行.netrc文件中的命令行。.netrc文件中存放有远程主机名、注册用户名、用户密码和定义的宏,因此要将其权限设置为0600,并注意不包含密码信息。

(4)对一些开机启动的文件设置正确的权限,因为这些文件很容易被放置木马。

(5)将文件/etc/inetd.conf和/var/adm/inetd.sec的访问权限设置为0600,并且所有者为root。这样可以使这些服务配置文件不能被root以外的用户读或修改。

(6)将文件/etc/services设置成组和其他用户不可读。

(7)将所有人可以写和执行的文件重新设置权限,把无用户文件重新设置为用户权限。

3.系统配置安全性

(1)禁止root远程Telnet登录和FTP。Telnet和FTP使用明文方式传输用户名和密码,很容易被窃听。因此,禁止root远程Telnet登录和FTP,可减少root密码被窃取的可能。

(2)禁止匿名FTP。匿名FTP不需要账号密码就可执行FTP操作。因此,匿名FTP中可能会被人放置一些攻击文件和木马,也可能窃取一些系统资料。

(3)在非邮件服务器上禁止运行Sendmail。Sendmail存在较多的安全漏洞,且它是以root用户权限运行的,如果发生缓冲区溢出,就会被攻击者获得root权限。

(4)snmp密码不要设置为默认的public和private。因为使用默认密码可使攻击者得到很多系统的信息,甚至可以控制系统,所以尽量将snmp的密码重新设置。

(5)尽量不运行NFSServer。NFS提供不同机器间文件的共享,大部分系统的NFS服务默认情况下设定文件共享是可读写的,而且对访问的机器没有限制,所以很容易泄露和被删改。

(6)关闭潜在的危险服务。Echo、chargen、rpc、finger等服务并不是很重要的,但对于攻击者,它们可以提供系统信息,或可对它们进行各种溢出攻击,有的可能直接获取root权限。因此在不必要时要尽量关闭这些服务。

(7)禁止非路由器设备转发数据包。可以防止黑客使用DoS(拒绝服务)攻击,也可避免黑客利用该设备去DoS攻击其他服务器。

(8)为系统打最新补丁。系统管理员要随时浏览安全网站信息,下载最新补丁程序来弥补各种系统漏洞。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈