发新话题
打印

Linux安全防护十招

Linux安全防护十招

<table class="normalfont" border="0" cellpadding="3" cellspacing="0" width="95%"><tbody><tr><td valign="top">不明白?欢迎到 [url="http://bbs.linuxmine.com/"]linux论坛 (http://bbs.linuxmine.com)[/url] 参加讨论!

1.为LILO增加开机口令
----在/etc/lilo.conf文件中增加选项,从而使LILO启动时要求输入口令,以加强系统的安全性。具体设置如下:

----boot=/dev/hda

----map=/boot/map

----install=/boot/boot.b

----time-out=60 #等待1分钟

----prompt

----default=linux

----password=<ASSWORD>

---- #口令设置

----image=/boot/vmlinuz-2.2.14-12

----label=linux

----initrd=/boot/initrd-2.2.14-12.img

----root=/dev/hda6

----read-only

----此时需注意,由于在LILO中口令是以明码方式存放的,所以还需要将

----lilo.conf的文件属性设置为只有root可以读写。

----# chmod 600 /etc/lilo.conf

----当然,还需要进行如下设置,使

----lilo.conf的修改生效。

----# /sbin/lilo -v

2.设置口令最小长度和

----最短使用时间

----口令是系统中认证用户的主要手段,系统安装时默认的口令最小长度通常为5,但为保证口令不易被猜测攻击,可增加口令的最小长度,至少等于8。为 此,需修改文件/etc/login.defs中参数PASS_MIN_LEN。同时应限制口令使用时间,保证定期更换口令,建议修改参数 PASS_MIN_DAYS。

3.用户超时注销

----如果用户离开时忘记注销账户,则可能给系统安全带来隐患。可修改/etc/profile文件,保证账户在一段时间没有操作后,自动从系统注销。

----编辑文件/etc/profile,在“HISTFILESIZE=”行的下一行增加如下一行:

----TMOUT=600

----则所有用户将在10分钟无操作后自动注销。

4.禁止访问重要文件

----对于系统中的某些关键性文件如inetd.conf、services和lilo.conf等可修改其属性,防止意外修改和被普通用户查看。

----首先改变文件属性为600:

----# chmod 600 /etc/inetd.conf

----保证文件的属主为root,然后还可以将其设置为不能改变:

----# chattr +i /etc/inetd.conf

----这样,对该文件的任何改变都将被禁止。

----只有root重新设置复位标志后才能进行修改:

----# chattr -i /etc/inetd.conf

5.允许和禁止远程访问

----在Linux中可通过/etc/hosts.allow 和/etc/hosts.deny 这2个文件允许和禁止远程主机对本地服务的访问。通常的做法是:

----(1)编辑hosts.deny文件,加入下列行:

----# Deny access to everyone.

----ALL: ALL@ALL

----则所有服务对所有外部主机禁止,除非由hosts.allow文件指明允许。

----(2)编辑hosts.allow 文件,可加入下列行:

----#Just an example:

----ftp: 202.84.17.11 xinhuanet.com

----则将允许IP地址为202.84.17.11和主机名为xinhuanet.com的机器作为Client访问FTP服务。

----(3)设置完成后,可用tcpdchk检查设置是否正确。

6.限制Shell命令记录大小

----默认情况下,bash shell会在文件$HOME/.bash_history中存放多达500条命令记录(根据具体的系统不同,默认记录条数不同)。系统中每个用户的主目录下都有一个这样的文件。在此笔者强烈建议限制该文件的大小。

----您可以编辑/etc/profile文件,修改其中的选项如下: HISTFILESIZE=30或HISTSIZE=30

7.注销时删除命令记录

----编辑/etc/skel/.bash_logout文件,增加如下行:

----rm -f $HOME/.bash_history

----这样,系统中的所有用户在注销时都会删除其命令记录。

----如果只需要针对某个特定用户,如root用户进行设置,则可只在该用户的主目录下修改/$HOME/.bash_history文件,增加相同的一行即可。

8.禁止不必要的SUID程序

----SUID可以使普通用户以root权限执行某个程序,因此应严格控制系统中的此类程序。

----找出root所属的带s位的程序:

----# find / -type f ( -perm -04000 -o -perm -02000 ) -print |less

----禁止其中不必要的程序:

----# chmod a-s program_name

9.检查开机时显示的信息

----Linux系统启动时,屏幕上会滚过一大串开机信息。如果开机时发现有问题,需要在系统启动后进行检查,可输入下列命令:

----#dmesg >bootmessage

----该命令将把开机时显示的信息重定向输出到一个文件bootmessage中。

10.磁盘空间的维护

----经常检查磁盘空间对维护Linux的文件系统非常必要。而Linux中对磁盘空间维护使用最多的命令就是df和du了。

----df命令主要检查文件系统的使用情况,通常的用法是:

----#df -k

----Filesystem 1k-blocks Used Available Use% Mounted on

----/dev/hda3 1967156 1797786 67688 96% /

----du命令检查文件、目录和子目录占用磁盘空间的情况,通常带-s选项使用,只显示需检查目录占用磁盘空间的总计,而不会显示下面的子目录占用磁盘的情况。

----% du -s /usr/X11R6/*

----34490 /usr/X11R6/bin

----1 /usr/X11R6/doc

----3354 /usr/X11R6/include
※ 本文版权归 未知 与 中国X黑客小组[CnXHacker.Net] 共同所有 ※



不明白?欢迎到 [url="http://bbs.linuxmine.com/"]linux论坛 (http://bbs.linuxmine.com)[/url] 参加讨论! <!-- 正文结束 -->                                   

</td></tr></tbody></table>      

TOP

1, 现在grub用的更广泛一些,可以方便的实现密码认证;但该设置意义并不大,
2,这个选项不错,密码长度,密码修改时间,锁定帐户前的缓冲时间都是不错的选项;
有个疑问,不知密码认证与公钥认证那个更可靠?有种倾向是使用密码认证,不知有没有依据?
3,用户超时设置,一般用半个或者1个小时,1100分钟太短了,这里的设置要比在sshd_config中设置超时更有效,避免了机房中出现的本地登陆但未退出的终端
4和8,在安装完系统后需要进行的常规操作,还有特定软件的涉及,主要是对外的daemon进程
5,是/etc/hosts.deny /etc/hosts.allow的设置并不是对所有的服务生效,需要软件支持TCP Wrappers
6,.bash_history 也可用在误操作的分析上;保留命令记录对系统并没有坏处,相反入侵者如果没有处理该文件倒留下了重要的线索
7,同6
9,如果可以直接查看,为什么要重定向呢? redhat系统中可以读取文件 /var/log/dmesg 获得该输出
10,空间的问题的确不能忽略      

TOP

楼上的说的不错啊      
沧海桑田

TOP

发新话题