让你的Linux系统变成铜墙铁壁Word文档格式.docx
《让你的Linux系统变成铜墙铁壁Word文档格式.docx》由会员分享,可在线阅读,更多相关《让你的Linux系统变成铜墙铁壁Word文档格式.docx(9页珍藏版)》请在冰豆网上搜索。
label=linux
initrd=/boot/initrd-2.2.14-12.img
root=/dev/hda6
read-only
步骤2
由于其中的密码未加密,“/etc/lilo.conf”文件只对根用户为可读。
[root@kapil/]#chmod600/etc/lilo.conf(不再为全局可读)
步骤3
作了上述修改后,更新配置文件“/etc/lilo.conf”。
[Root@kapil/]#/sbin/lilo-v(更新lilo.conf文件)
步骤4
还有一个方法使“/etc/lilo.conf”更安全,那就是用chattr命令将其设为不可改:
[root@kapil/]#chattri/etc/lilo.conf
它将阻止任何对“lilo.conf”文件的更改,无论是否故意。
关于lilo安全的更多信息,请参考LILO。
禁用所有专门帐号
在lp,sync,shutdown,halt,news,uucp,operator,games,gopher等系统中,将你不使用的所有默认用户帐号和群组帐号删除。
要删除用户帐号:
[root@kapil/]#userdelLP
要删除群组帐号:
[root@kapil/]#groupdelLP
选择恰当的密码
选择密码时要遵循如下原则:
密码长度:
安装Linux系统时默认的最短密码长度为5个字符。
这个长度还不够,应该增为8个。
要改为8个字符,必须编辑login.defs文件(/etc/login.defs):
PASS_MIN_LEN5
改为:
PASS_MIN_LEN8
“login.defs”是登录程序的配置文件。
启用盲区密码支持
请启用盲区密码功能。
要实现这一点,使用“/usr/sbin/authconfig”实用程序。
如果想把系统中现有的密码和群组改为盲区密码和群组,则分别用pwconv和grpconv命令。
根帐户
在UNIX系统中,根帐户具有最高权限。
如果系统管理员在离开系统时忘了从根系统注销,系统应该能够自动从shell中注销。
那么,你就需要设置一个特殊的Linux变量“TMOUT”,用以设定时间。
编辑“/etc/profile”文件在
"
HISTFILESIZE="
之后添加:
TMOUT=3600
为“TMOUT=”输入的值代表1小时的妙数(60*60=3600妙)。
在“/etc/profile”文件中加了这一行后,任何用户使用该系统时有1小时的休止状态,将自动执行注销操作。
而如果用户要对该变量进行分别设定,可以在“.bashrc”文件中定义自动注销的时间。
修改了该参数后,必须退出并重新登录(为根帐户),更改才能生效。
禁止普通用户对控制台的所有访问
应该禁止服务器上的普通用户对关闭、重启、挂起等控制台级别程序的访问。
运行如下命令:
[root@kapil/]#rm-f/etc/security/console.apps其中为禁止访问的程序名称。
禁用&
卸载所有不使用的服务
对所有不使用的服务,应该禁用并卸载,这样可以少些麻烦。
查看“/etc/inetd.conf”文件,在不需要的项目行前加“#”号,即改为注释语句,就可以禁用它们了。
然后给inetd过程发送一个SIGHUP命令,对“inetd.conf”文件进行更新。
步骤如下:
将“/etc/inetd.conf”文件许可改为600,使其只对根用户为可读写。
[Root@kapil/]#chmod600/etc/inetd.conf
确保“/etc/inetd.conf”文件的所有者为根用户。
编辑inetd.conf文件(/etc/inetd.conf),禁用如下服务:
ftp、telnet、shell、login、exec、talk、ntalk、imap、pop-2、pop-3、finger、auth,等等。
如果不打算用,禁用了这些服务可以减少风险。
给inetd过程发送HUP信号:
[root@kapil/]#killall-HUPinetd
步骤5
将“/etc/inetd.conf”文件设为不可更改,chattr命令可以使任何人都无法对其进行修改:
[root@kapil/]#chattri/etc/inetd.conf
唯一可以设置或清除该属性的用户只有根用户。
要修改inetd.conf文件,必须去掉不可更改标记:
[root@kapil/]#chattr-i/etc/inetd.conf
TCP_WRAPPERS
通过TCP_WRAPPERS,可以使服务器更好地抵制外部侵入。
最好的办法是拒绝所有主机:
在“/etc/hosts.deny”文件中加入“ALL:
ALL@ALL,PARANOID”,然后在“/etc/hosts.allow”列出允许访问的主机。
TCP_WRAPPERS受控于两个文件,搜索时停在第一个匹配的地方。
/etc/hosts.allow
/etc/hosts.deny
编辑hosts.deny文件(/etc/hosts.deny),加入如下行:
#Denyaccesstoeveryone.
ALL:
ALL@ALL,PARANOID
语句的意思是,除非在allow文件中说明允许访问,所有服务、所有主机都被拒绝。
编辑hosts.allow文件(/etc/hosts.allow),例如在文件中添加如下行:
ftp:
202.54.15.99
对于你的客户机来说:
202.54.15.99为IP地址,为允许使用ftp的一个客户机。
tcpdchk程序是tcpdwrapper配置的检查程序。
它对tcpdwrapper的配置进行检查,并报告所发现的潜在的和实际存在的问题。
配置完成后,运行tcpdchk程序:
[Root@kapil/]#tcpdchk
不要显示系统发行文件
当别人远程登录时,不应该显示系统发行文件。
做法是在“/etc/inetd.conf”文件中更改telnet选项:
telnetstreamtcpnowaitroot/usr/sbin/tcpdin.telnetd
telnetstreamtcpnowaitroot/usr/sbin/tcpdin.telnetd-h
在末尾加“-h”标记使后台程序不显示任何系统信息,而只给用户提供一个login:
提示符。
更改“/etc/host.conf”文件
“/etc/host.conf”文件用来指定如何解析名称的方法。
编辑host.conf文件(/etc/host.conf),添加如下各行:
#LookupnamesviaDNSfirstthenfallbackto/etc/hosts.
orderbind,hosts
#WehavemachineswithmultipleIPaddresses.
multion
#CheckforIPaddressspoofing.
nospoofon
第一个选项首先通过DNS解析主机名称,然后解析主机文件。
multi选项用于确定“/etc/hosts”文件中的主机是否有多个IP地址(多接口以太网)。
nospoof选项指明该机器不允许假信息。
为“/etc/services”文件免疫
必须为“/etc/services”文件进行磁盘免疫,以避免对文件XX的删除或添加。
使用如下命令:
[root@kapil/]#chattri/etc/services
不接受从不同控制台的根用户登录
“/etc/securetty”文件可以指定“root”用户允许从哪个TTY设备登录。
编辑“/etc/securetty”文件,在不需要的tty前面加“#”,禁用这些设备。
禁止任何人使用su命令
su命令(SubstituteUser,替代用户)可以使你成为系统的现有用户。
如果不希望别人使用su进入根帐户,或者对某些用户限制使用“su”命令,则在“/etc/pam.d/”目录的“su”配置文件顶部加上下文中给出的两行代码。
编辑su文件(/etc/pam.d/su),在文件顶部添加如下两行:
authsufficient/lib/security/pam_rootok.sodebug
authrequired/lib/security/Pam_wheel.sogroup=wheel
意思是,只有“wheel”组的成员可以用su命令;
其中还包括了日志。
你可以在wheel组中添加允许使用该命令的用户。
shell日志
shell可存储500个旧命令在“~/.bash_history”文件中(其中“~/”代表主目录),这样可以便于重复前面的长命令。
系统中的每个帐号用户在各自的主目录中都有这个“.bash_history”文件。
为安全起见,应使shell存储较少的命令,并在注销用户时将其删除。
“/etc/profile”文件中的HISTFILESIZE和HISTSIZE行决定了系统中所有用户的“.bash_history”文件可容纳的旧命令个数。
建议将“/etc/profile”文件中的HISTFILESIZE和HISTSIZE设为比较小的数,比如30。
编辑profile文件(/etc/profile),并更改:
HISTFILESIZE=30
HISTSIZE=30
系统管理员还应在“/etc/skel/.bash_logout”文件中加进“rm-f$HOME/.bash_history”行,这样就可以在每次用户退出时删除“.bash_history”文件。
编辑.bash_logout文件(/etc/skel/.bash_logout),并添加如下行:
rm-f$HOME/.bash_history
禁用Control-Alt-Delete键盘关机命令
只要在该行前面加“#”,改为注释行。
在“/etc/inittab”文件中找到:
ca:
:
ctrlaltdel:
/sbin/shutdown-t3-rnow
#ca:
然后,为使更改生效,在提示符下输入:
[root@kapil/]#/sbin/initq
修正脚本文件在“/etc/rc.d/init.d”目录下的权限
对脚本文件的权限进行修正,脚本文件用以决定启动时需要运行的所有正常过程的开启和停止。
添加:
[root@kapil/]#chmod-R700/etc/rc.d/init.d/*
这句指的是,只有根用户允许在该目录下使用Read、Write,和Execute脚本文件。
隐藏系统信息
默认情况下,当用户登录到Linux中时,会显示Linux发行名称、版本、内核版本,以及服务器名称。
这些已经足够让黑客获取服务器的信息了。
正确的做法是只为用户显示“Login:
”提示符。
编辑“/etc/rc.d/rc.local”文件,并将“#”标在下列行的前面:
#Thiswilloverwrite/etc/issueateveryboot.So,makeanychangesyou
#wanttomaketo/etc/issuehereoryouwilllosethemwhenyoureboot.
#echo"
"
>
/etc/issue
$R"
>
Kernel$(uname-r)on$a$(uname-m)"
#
#cp-f/etc/issue/etc/
#echo>
然后在“/etc”目录下删除“”和“issue”文件:
[root@kapil/]#rm-f/etc/issue
[root@kapil/]#rm-f/etc/
禁用通常不用的SUID/SGID程序
如果设为SUID根用户,普通用户也可以作为根用户运行程序。
系统管理员应该减少SUID/GUID程序的使用,并禁用那些不需要的程序。
要从根用户的程序中搜索所有包含“s”字符的文件,使用命令:
[root@kapil]#find/-typef(-perm-04000-o-perm-02000)-execls-lg{};
要在搜索到的程序中禁用suid程序,键入如下命令:
[root@kapil/]#chmoda-s[program]
按照上述的一些安全指南,系统管理员就可以达到基本的系统安全要求。
上述的一些操作是一个连续的过程。
系统管理员必须保持它们的连续性,才能使系统真正安全。