linux安全
发布日期:2021-07-29 11:00:09 浏览次数:7 分类:技术文章

本文共 3055 字,大约阅读时间需要 10 分钟。

http://www.ibm.com/developerworks/cn/linux/theme/security/index.html

Linux认证辅导:Linux系统安全配置详解

系统安全性对于用户来说至关重要,Linux用户也不例外。笔者就自己使用Linux的经历,总结了一些增强Linux安全防护的小窍门,在此介绍给大家。
1.为LILO增加开机口令
在/etc/lilo.conf文件中增加选项,从而使LILO启动时要求输入口令,以加强系统的安全性。具体设置如下:
boot=/dev/hdamap=/boot/mapinstall=/boot/boot.btime-out=60 #等待1分钟promptdefault=linuxpassword=#口令设置image=/boot/vmlinuz-2.2.14-12label=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了。
十招:
第1招:取消不必要的服务
早期的Unix版本中,每一个不同的网络服务都有一个服务程序在后台运行,后来的版本用统一的/etc/inetd服务器程序担此重任。Inetd是Internetdaemon的缩写,它同时监视多个网络端口,一旦接收到外界传来的连接信息,就执行相应的TCP或UDP网络服务。
由于受inetd的统一指挥,因此Linux中的大部分TCP或UDP服务都是在/etc/inetd.conf文件中设定。所以取消不必要服务的第一步就是检查/etc/inetd.conf文件,在不要的服务前加上“#”号。
一般来说,除了http、smtp、telnet和ftp之外,其他服务都应该取消,诸如简单文件传输协议tftp、网络邮件存储及接收所用的imap/ipop传输协议、寻找和搜索资料用的gopher以及用于时间同步的daytime和time等。
还有一些报告系统状态的服务,如finger、efinger、systat和netstat等,虽然对系统查错和寻找用户非常有用,但也给黑客提供了方便之门。例如,黑客可以利用finger服务查找用户的电话、使用目录以及其他重要信息。因此,很多Linux系统将这些服务全部取消或部分取消,以增强系统的安全性。
Inetd除了利用/etc/inetd.conf设置系统服务项之外,还利用/etc/services文件查找各项服务所使用的端口。因此,用户必须仔细检查该文件中各端口的设定,以免有安全上的漏洞。
在Linux中有两种不同的服务型态:一种是仅在有需要时才执行的服务,如finger服务;另一种是一直在执行的永不停顿的服务。这类服务在系统启动时就开始执行,因此不能靠修改inetd来停止其服务,而只能从修改/etc/rc.d/rc[n].d/文件或用Runleveleditor去修改它。提供文件服务的NFS服务器和提供NNTP新闻服务的news都属于这类服务,如果没有必要,最好取消这些服务。

转载地址:https://blog.csdn.net/thq0201/article/details/7611128 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:集线器hub、交换机switch、路由器router 的区别
下一篇:CPP读取文件速度比较

发表评论

最新留言

逛到本站,mark一下
[***.202.152.39]2024年03月31日 10时39分29秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章