8.1Linux/Unix系统概述众所周知,网路安全是一个十分重要的课题,而服务器是网路安全中最关键的环节。Linux被觉得是一个比较安全的Internet服务器。作为一种开放源代码操作系统,一旦Linux系统中发觉有安全漏洞,Internet上来自世界各地的志愿者会踊跃修复它。Unix系统作为一个稳定的操作系统,也有许多漏洞须要修复。但是,系统管理员常常不能及时地对Linux/Unix系统的漏洞进行修复,这就给黑客以可乘之机。而且,相对于这种系统本身的安全漏洞,更多的安全问题是由不当的配置引起的,可以通过适当的配置来避免。系统运行的服务越多,不当的配置出现的机会也就越多,出现安全问题的可能性就越大。8.1Linux、Unix系统概述Unix操作系统经过20年的发展,早已成为了一种成熟的主流操作系统,并在发展过程中,其主要特色包括:(1)可靠性高(2)极强的伸缩性(3)网路功能强(4)强悍的数据库支持功能(5)开放性好8.2Linux/Unix系统安全Linux/Unix操作系统有许多安全配置.系统安全记录文件操作系统内部的记录文件是检查是否有网路入侵的重要线索。若果系统直接连到Internet,发觉有好多人对系统做Telnet/FTP登陆尝试,可以运行"#more/var/log/securegreprefused"来检测系统所遭到的功击,便于采取相应的对策,如使用SSH来替换Telnet/rlogin等。
2.启用和登陆安全性1.BIOS安全用户口令是Linux安全的一个基本起点,好多人使用的用户口令过分简单,这等于给侵入者敞开了房门,尽管从理论上说,只要有足够的时间和资源可以借助,就没有不能破解的用户口令,但选定得当的口令是难于破解的。较好的用户口令是这些只有他自己容易记得并理解的一串字符,但是绝对不要在任何地方写下来。选择口令的原则如下:应当严禁所有默认的被操作系统本身启动的而且何必要的帐号,当第一次安装系统时就应当如此做,Linux提供了好多默认帐号,而帐号越多linux之家,系统就越容易遭到功击。groupdelusernamechattr命令给下边的文件加上不可修改属性,进而避免非授权用户获得权限。更改/etc/inittab文件linux是什么系统,将"ca::ctrlaltdel:/sbin/shutdown-t3now"一行注释掉。之后重新设置/etc/rc.d/init.d/目录下所有文件的许可权限,运行如下命令:700/etc/rc.d/init.d/*若果不想任何人就能su作为root,可以编辑/etc/pam.d/su文件,降低如下两行:authsufficient/lib/security/pam_rootok.sodebugauthrequired/lib/security/pam_wheel.sogroup=isd这时,仅isd组的用户可以su作为root。
随后,假如希望用户admin才能su作为root,可以运行如下命令:usermod-G10admin默认情况下,登陆提示信息包括Linux发行版、内核版本名和服务器主机名等。对于一台安全性要求较高的机器来说这样泄露了过多的信息。可以编辑/etc/rc.d/rc.local将输出系统信息的如下行注释掉。overwrite/etc/issueeveryboot.So,makeanychangesyou/etc/issueherelosethemwhenyoureboot.echo"Kernel$(uname/etc/issue/etc/严格限制root只能在某一个终端登陆,远程用户可以使用/bin/su-l来成为root不要随便把rootshell留在终端上;若某人确实须要以root来运行命令,则考虑安装sudo这样的工具,它能使普通用户以root来运行个人命令并维护日志;不要把当前目录(“./”)和普通用户的bin目录置于root帐号的环境变量PATH中;在/etc/lilo.conf文件中降低选项,因而使LILO启动时要求输入口令,以强化系统的安全性。具体设置如下:time-out=60#等待1分钟口令是系统中认证用户的主要手段,系统安装时默认的口令最小宽度一般为5,但为保证口令不易被推测功击,可降低口令的最小宽度,起码等于8。
因此,需更改文件/etc/login.defs中的参数PASS_MIN_LEN。同时应限制口令使用时间,保证定期更换口令,建议更改参数PASS_MIN_DAYS。假如用户离开时忘掉注销帐户,则可能给系统安全带来隐患。可更改/etc/profile文件,保证帐户在一段时间没有操作后,手动从系统注销。编辑文件/etc/profile,在“HISTFILESIZE=”行的下一行降低如下一行:假如使用NFS网路文件系统服务,应当确保/etc/exports具有最严格的访问权限设置,也就是意味着不要使用任何键值、不容许root写权限而且只能安装为只读文件系统。编辑文件/etc/exports并加入如下两行:/dir/to/(ro,root_squash)/dir/to/(rounix操作系统教程,root_squash)首先要确认/etc/inetd.conf的所有者是root,且文件权限设置为600。设置完成后,可以使用"stat"命令进行检测。chmod600/etc/inetd.confftptelnetshellloginexectalkntalkimappop-2pop-3fingerauth假如安装了ssh/scp,也可以严禁掉Telnet/FTP。
为了使改变生效,运行如下命令:#killall-HUPinetd/etc/securetty文件指定了容许root登陆的tty设备,由/bin/login程序读取unix操作系统教程,其格式是一个被准许的名子列表,可以编辑/etc/securetty且注释掉如下的行。假如希望远程登陆用户看不到系统和版本信息,可以通过一下操作改变/etc/inetd.conf文件:telnetstreamtcpnowaitroot/usr/sbin/tcpdin.telnetd加-h表示telnet不显示系统信息,而仅仅显示"login:"哪些是SUID和SGID程序呢?Unix中的SUID(SetUserID)/SGID(SetGroupID)设置了用户id和分组id属性,容许用户以特殊权力来运行程序,这些程序执行时具有寄主的权限。如passwd程序,它就设置了SUID位。rootroot10704Apr152002/usr/bin/passwd为何要有SUID和SGID程序呢?SUID程序是为了使普通用户完成一些普通用户权限不能完成的事而设置的。例如每位用户都容许更改自己的密码。并且更改密码时又须要root权限。所以更改密码的程序须要以管理员权限来运行。
SUID程序对系统安全的恐吓有这些呢?它黑客可以采用它来非法命令执行和权限提高。为了保证SUID程序的安全性,在SUID程序中要严格限制功能范围,不能有违背安全性规则的SUID程序存在,而且要保证SUID程序自身不能被任意更改。用户可以通过检测权限模式来辨识一个SUID程序。若果“x”被改为“s”,这么程序是SUID。如:rootroot12672oct271997/bin/su避免功击1.制止ping若果没人能ping通系统,安全性自然降低了。因此,可以在/etc/rc.d/rc.local文件中降低如下一行:echo