📄 增强linux 安全的几个基本步骤.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0057)http://www.freelamp.com/new/publish/1003237741/index_html -->
<HTML><HEAD><TITLE>不要让您的的红帽子变成绿帽子</TITLE><LINK
href="增强Linux 安全的几个基本步骤.files/global_css.css" rel=stylesheet type=text/css>
<META content=no-cache http-equiv=Pragma>
<META content="text/html; charset=gb2312" http-equiv=Content-Type>
<META content="MSHTML 5.00.3315.2870" name=GENERATOR>
<META content="Xu Yongjiu" name=Author>
<META content=Linux,Apache,MySQL,PHP,Perl,Python,Zope,Oracle,Java,WinZen,徐永久
name=Keywords>
<META content="像风一样自由,FreeLAMP.com LAMP=Linux+Apache+MySQL+PHP/Perl/Python"
name=Description></HEAD>
<BODY bgColor=#0772b1 leftMargin=0 link=#0066cc text=#333333 topMargin=5
vLink=#000000>
<CENTER></CENTER>
<TABLE align=center bgColor=#999999 border=0 cellPadding=5 cellSpacing=0
width=768>
<TBODY>
<TR bgColor=#ffffff>
<TD align=left vAlign=bottom width=300><A name=top></A><A class=path
href="http://www.freelamp.com/new/publish/index_html"><IMG
alt="欢迎访问 FreeeLAMP.com " border=0 height=75
src="增强Linux 安全的几个基本步骤.files/sitetitle_img.gif" width=270></A> </TD><!-- 类别小图标 -->
<TD vAlign=center width=380><A
href="http://www.freelamp.com/new/publish/index_html#1094005705"><IMG
alt=Opinion border=0 height=30 src="增强Linux 安全的几个基本步骤.files/Opinion.jpg"
width=40></A> <A
href="http://www.freelamp.com/new/publish/index_html#1094003927"><IMG
alt=Linux border=0 height=30 src="增强Linux 安全的几个基本步骤.files/Linux.gif"
width=40></A> </TD>
<TD align=middle vAlign=center width=88></TD></TR>
<TR bgColor=#ffffff>
<TD class=path colSpan=2 vAlign=top><FONT color=#999999><I><FONT
color=red><B>版权声明:</B></FONT></I> 本网站对于未经许可的转载,将保留诉诸法律的权利,如需转载请和作者联系。 <A
class=small href="http://www.freelamp.com/new/publish/rdf">RDF 订阅</A>
<HR>
</FONT> </TD>
<TD width=88></TD></TR></TBODY></TABLE>
<TABLE align=center bgColor=#ffffff border=0 cellPadding=5 cellSpacing=0
width=768>
<TBODY>
<TR><!--第一列 -->
<TD align=left rowSpan=5 vAlign=top width=120><!--1st col of 1st row of main table --><FONT size=2><B> <A
class=mid
href="http://www.freelamp.com/new/publish/searchForm">搜索</A><BR> <A
class=mid href="http://www.freelamp.com/new/publish/index_html">首页</A>
<BR></B></FONT>
<P><BR>Let's Blog
<HR width="100%">
<A href="http://blog.freelamp.com/6" target=_blank>金融财经</A><BR><A
href="http://blog.freelamp.com/1" target=_blank>蓝蓝白云天</A><BR><A
href="http://blog.freelamp.com/register.php"
target=_blank>申请Blog空间</A><BR></TD>
<TD align=left vAlign=top width=auto><FONT color=#000000>
<TABLE border=0 cellPadding=0 cellSpacing=0 width="99%">
<TBODY>
<TR>
<TD bgColor=#0066cc vAlign=top><IMG align=top alt="" height=16
src="增强Linux 安全的几个基本步骤.files/roundedge_img.gif" width=13><FONT
class=mid><B>不要让您的的红帽子变成绿帽子</B></FONT></TD>
<TD vAlign=bottom width=4><IMG align=bottom alt="" height=18
src="增强Linux 安全的几个基本步骤.files/rtshadow_img.gif" width=4></TD></TR>
<TR>
<TD background="增强Linux 安全的几个基本步骤.files/botshadow_img.gif"><IMG
alt="" height=4 src="增强Linux 安全的几个基本步骤.files/botshadow_img.gif"
width=1></TD>
<TD width=4><IMG alt="" height=4
src="增强Linux 安全的几个基本步骤.files/rtbotshadow_img.gif"
width=4></TD></TR></TBODY></TABLE></FONT><A
href="http://www.freelamp.com/new/publish/search?subject=Tutorial&op=articles"><IMG
align=right alt=Tutorial border=0 hspace=20
src="增强Linux 安全的几个基本步骤.files/Tutorial.gif" vspace=10></A> 由 <A class=small
href="mailto:albertxu@bigfoot.com">徐永久</A> <FONT class=small>发表于
2001年10月16日 21:09。 </FONT><BR><BR>简介:本文将介绍增强Linux
安全的几个基本步骤,让每个人都能为RedHat 的箱子加上一把坚固的锁。<BR><BR>简介:本文将介绍增强Linux
安全的几个基本步骤,让每个人都能为RedHat 的箱子加上一把坚固的锁。<BR><BR>一、BIOS 安全<BR>永远为机器加上BIOS
口令,防治从软盘启动。这样就能阻挡一些别有用心的人设置BIOS 。<BR><BR>二、LILO 安全<BR>为 "/etc/lilo.conf"
增加三个参数:time-out, restricted 和 password。<BR>这些选项将会在启动时询问口令。<BR>第一步:编辑
lilo.conf 文件,增加或者改变这三个选项:: <BR>boot=/dev/hda <BR>map=/boot/map
<BR>install=/boot/boot.b <BR>time-out=00 # 改变这行的参数为 00<BR>prompt
<BR>Default=linux <BR>restricted # 增加这一行<BR>password=<password> #
增加这一行,加入口令,注意:这里是明码<BR>image=/boot/vmlinuz-2.2.14-12 <BR>label=linux
<BR>initrd=/boot/initrd-2.2.14-12.img <BR>root=/dev/hda6 <BR>read-only
<BR><BR>第二步:设置"/etc/lilo.conf" 文件为root 只读,因为他包含了未加密的口令。<BR><BR>[root@kapil
/]# chmod 600 /etc/lilo.conf <BR><BR>第三步:让改变生效<BR>[Root@kapil /]#
/sbin/lilo -v <BR><BR>第四步:另外一步更加安全的步骤是,使用chattr
让该文件永远不会被改变。<BR><BR>[root@kapil /]# chattr +i /etc/lilo.conf
<BR><BR>这样就防止了对/etc/lilo.conf
文件的可能改变(无论是有意还是无意)<BR><BR>三、禁用所有特殊帐户<BR><BR>应该删除你系统中没有用到的所有缺省的用户和组,像
lp,sync,shutdown,halt,news,uucp,operator,games,gopher 等。<BR><BR>一个删除lp
用户的示范命令:<BR>[root@kapil /]# userdel lp<BR><BR>一个删除lp
组的示范命令:<BR>[root@kapil /]# groupdel LP
<BR><BR>四、选择好口令<BR>口令长度:系统安装完毕,缺省的最短长度是5位,这个其实并不够,至少8位。编辑/etc/login.defs
文件,改变 <BR>PASS_MIN_LEN 5 为 PASS_MIN_LEN 8 <BR><BR>五、支持 shadow
口令<BR>你应该打开口令的 shadow 特性,如果没有,可以使用 "/usr/sbin/authconfig"
来打开。如果要把当前口令转换到shadow 的话,可以使用pwconv和 grpconv 分别来转换用户和组信息。<BR><BR>六、root
帐户<BR>在Unix 系统里,"root" 帐户是享有特权的帐户,如果系统管理员忘记了从 root
提示符下退出,那么必须设定空闲限时退出。必须设定特定的环境变量:"TMOUT" 来指定秒数。<BR>编辑/etc/profile 文件,在
"HISTFILESIZE=" 行之后增加<BR><BR>TMOUT=3600
<BR><BR>这样系统中的任何用户只要超过一个小时空闲就会自动logout。<BR>对于个别用户的不同需求,可以通过在".bashrc "
中设置来解决。您必须重新登录一遍才能生效。<BR><BR>七、禁止所有与控制台等同存取权限的用户
<BR><BR>您应该禁止让普通用户使用诸如shutdown, reboot 以及 halt
等的命令。运行以下的命令就可以做到:<BR><BR>[root@kapil /]# rm -f
/etc/security/console.apps/<servicename> <BR><BR>其中的
<servicename>
就是您想要禁止的程序名字。<BR><BR>八、禁止或者卸载没有用到的服务<BR>您应该禁止或者卸载您没有用到的服务,这样,您担心的事情就又少了一样。检查
"/etc/inetd.conf" 文件,注释掉那些你不需要的行(前面加# 号了),然后发送一个SIGHUP 信号给inetd
进程,使他得到最新的"inetd.conf"
文件配置信息。步骤如下:<BR><BR>第一步:<BR><BR>改变文件"/etc/inetd.conf"的权限为 600,这样只有root
才能读写。<BR><BR>[root@kapil /]# chmod 600 /etc/inetd.conf <BR><BR>第二步:<BR>确认
"/etc/inetd.conf" 的文件属主是root 。<BR><BR>第三步:<BR>编辑 inetd.conf
文件,禁止服务,例如:<BR>ftp, telnet, shell, login, exec, talk, ntalk, imap, pop-2,
pop-3, finger, auth, 等,除非你计划使用他们。如果关掉了这些服务,危险程度就降低了很多。<BR><BR>第四步:<BR>发送一个
HUP 信号给 inetd 进程<BR><BR>[root@kapil /]# killall -HUP inetd
<BR><BR>第五步:<BR><BR>设置 "/etc/inetd.conf" 为不可改变,还是使用chattr
命令。<BR><BR>[root@kapil /]# chattr +i /etc/inetd.conf <BR><BR>这样,就算是root
要更改文件,也必须首先关掉“不可更改”的状态:<BR><BR>[root@kapil /]# chattr -i /etc/inetd.conf
<BR><BR>然后,才能修改了。<BR><BR>九、使用TCP_WRAPPERS <BR><BR>通过利用 TCP_WRAPPERS
,您可以使服务器不怕外界的侵入了。最好的策略是在"/etc/hosts.deny"中使用下面的语句挡住所有的主机<BR>"ALL: ALL@ALL,
PARANOID" <BR>然后那些特定在"/etc/hosts.allow" 列出的主机才可以访问。TCP_WRAPPERS
由以上提到的两个文件控制,搜索主机时,遇到第一个符合条件的即停止。实施步骤:<BR><BR>第一步:<BR><BR>编辑 hosts.deny
文件,添加以下行:<BR># Deny access to everyone. <BR>ALL: ALL@ALL, PARANOID
<BR><BR>也即所有服务和所有主机被挡住,除非在allow 文件中指定。<BR><BR>第二步:<BR><BR>编辑 hosts.allow
文件,添加以下示范行:<BR>ftp: 202.54.15.99 foo.com<BR><BR>这个例子中,只有202.54.15.99 和
foo.com 才可以使用ftp 。<BR><BR>第三步:<BR>使用 tcpdchk 检查 tcpd wrapper
的配置。它除了检查<BR>外,还能报告潜在的和实际存在的问题。因此配置完毕以后,运行这个程序。<BR>[root@kapil /]# tcpdchk
<BR><BR>十、不要显示系统的 issue 文件<BR>没有必要让系统显示 issue
文件给远程登录的用户,因此,可以在"/etc/inetd.conf" 文件中改变telnet 选项。<BR>改变前:<BR>telnet
stream tcp nowait root /usr/sbin/tcpd
in.telnetd<BR><BR>改变后的内容:<BR><BR>telnet stream tcp nowait root
/usr/sbin/tcpd in.telnetd -h <BR><BR>增加的 "-h"
参数,导致守护程序不显示任何系统信息,只是显示给用<BR>户 login: 提示,建议您使用 ssh 。<BR><BR>注意: RH7.0 采用了
xinetd ,因此需要修改 /etc/xinetd.d 目录下面的 telnet 文件。<BR><BR>十一、改变
"/etc/host.conf" 文件<BR>"/etc/host.conf" 文件指定主机名怎样解析。<BR>编辑 host.conf
文件,加入下面的行:<BR># Lookup names via DNS first then fall back to /etc/hosts.
<BR>order bind,hosts <BR># We have machines with multiple IP addresses.
<BR>multi on <BR># Check for IP address spoofing. <BR>nospoof on
<BR><BR>第一个选项,指定解析顺序为首先DNS,然后 hosts 文件。<BR>multi 选项决定"/etc/hosts"
文件中的主机是否可以有多个IP 地址(多张 ethN 界面). <BR>nospoof 选项不允许对本机欺骗(spoofing)
。<BR><BR>十二、使 "/etc/services" 文件不可改变<BR>你必须使 "/etc/services"
文件不可改变以防止未经授权的删除或增加服务<BR>[root@kapil /]# chattr +i /etc/services
<BR><BR>十三、不允许root 从不同的控制台登录<BR>"/etc/securetty" 文件允许您指定root 可以从那些TTY
设备登录。编辑 "/etc/securetty" 文件,禁止那些不想让root 登录的行。行首加一个 #
号注释就可以了)<BR><BR>十四、阻止任何人通过 su 成为 root <BR>su 命令允许你成为系统中的其他用户,如果不想让任何人su
到root ,或者限制su 对特定用户使用,那么只要在/etc/pam.d 目录中的su 文件头上加上下面的两行:<BR><BR>auth
sufficient /lib/security/pam_rootok.so debug <BR>auth required
/lib/security/Pam_wheel.so group=wheel <BR><BR>意思是只有 "wheel" 组的用户才能 su 到
root,同时包括日志记录。<BR><BR>十五、Shell 日志记录<BR>bash shell 可以存储 500
条命令历史在"~/.bash_history" 文件中,以方便您输入那些很长的命令。每个用户的目录下有".bash_history" 文件,bash
shell 应该存储较少的命令,在退出时删除。具体步骤如下:<BR><BR>第一步:<BR>变量 HISTFILESIZE 和 HISTSIZE
存放在 "/etc/profile" 文件中,决定了".bash_history" 文件的大小,建议您使用较小的数值30。<BR>编辑
/etc/profile ,改变为:<BR>HISTFILESIZE=30 <BR>HISTSIZE=30 <BR>意思是:每一个用户自己目录下的
".bash_history" 文件最多容纳30 条命令,系统最多记忆30条命令。<BR><BR>第二步:<BR>系统管理员应该把 "rm -f
$HOME/.bash_history" 行加入到 "/etc/skel/.bash_logout" 文件中,这样用户每次退出,他的
".bash_history" 文件都会被删除。<BR><BR>vi /etc/skel/.bash_logout
<BR>增加以下行:<BR><BR>rm -f $HOME/.bash_history <BR><BR>十六、禁止
Control-Alt-Delete 关机<BR>只要在 "/etc/inittab"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -