Linux系统安全详解

一,BIOS安全(硬件上的安全)

1,最基本最简单的安全配置,保障计算机硬件配置等不被别人更改.给BIOS设置密码,防止改变启动顺序从软盘或光盘启动.防止特殊的启动盘启动用户的系统,进入rescue或其他模式.改变或删除当前配置等.每一个细心的网管每个细节都不应该忽视!

2,禁止使用contral+alt+delete重起机器

编辑/etc/inittab文件,注释掉下面一行.

ca::ctrlaltdel:/sbin/shutdown -t3 -r now

该成:(使用#

# ca::ctrlaltdel:/sbin/shutdown -t3 -r now

 

二,帐号安全

口令,系统的第一道防线,目前大多数数攻击都是截获口令或猜测口令等口令攻击开始的.

/etc 目录下主要存放系统的配置文件.我们要对这个目录下的好多文件进行修改.

1,/etc/login.defs文件是login程序的配置文件.口令的长度和口令的有效期等可以在这里设置.

[root@tp ~]# vi /etc/login.defs
...

PASS_MAX_DAYS   9999  密码被用最多天数
PASS_MIN_DAYS   0     密码被用最少天数
PASS_MIN_LEN    5     系统默认密码长度5,我们可以该成8或更多.
PASS_WARN_AGE   7     密码有效期警告,超过7天将提示用户更换新的密码.
...

 

2,/etc/profile文件是环境变量设置文件.在此文件设置环境变量将对所有用户生效.我们要在此文件设置自动注销帐户的时间.及命令的历史记录数.

[root@tp ~]# vi /etc/profile
...

HOSTNAME=`/bin/hostname`
HISTSIZE=1000 这里1000代表用户操作命令的历史记录.应尽量小一些.设置成0也可以,呵呵.
tmout=600 添加此行,如果系统用户在600秒(10分钟)内不做任何操作,将自动注销这个用户.

...

3,/etc/passwd文件存放系统用户名,用户标识(UID),组标识(GID)等的地方.我们要在这里找到并清除没有设置口令的用户.同时还要清除一些特别帐号(因为可能会存在潜在的危险).

[root@tp ~]# vi /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin

...
wh::500:501::/home/wh:/bin/bash

仔细观察上面的一行(wh用户),在第二项,两个冒号中间什么都没有,而上面的的用户(如root用户)都是x. 这表明此用户没有密码.要不添加上,要不删掉.

4,特别帐号的处理

如果不启动用sendmail,删除如下用户

[root@tp wh]# userdel adm

[root@tp wh]# userdel lp

[root@tp wh]# userdel sync
[root@tp wh]# userdel shudown
[root@tp wh]# userdel halt

[root@tp wh]# userdel mail
如果不用X windows服务器.可有删除

[root@tp wh]# userdel news
[root@tp wh]# userdel uucp

[root@tp wh]# userdel operator
[root@tp wh]# userdel games
如果不允许匿名FTP帐号登陆,可删除

[root@tp wh]# userdel gopher
[root@tp wh]# userdel ftp

 

三,重要文件的安全设置.

首先要了解两个命令

1,chmod:改变文件的属主

2,chattr:改变文件属性

我们要做的是把重要文件的属主改成root并给相应的权限,还有就是改变文件的属性让它禁止被修改

我们来统计一下重要文件:(其实,只要你不想让其他用户更改的文件都可以这么做,我这里只是为安全而选择了下面的文件.)

1,/etc/passwd,passwd-,passwd.OLD,group,group- 用户,组的ID等信息文件.

2,/etc/shadow,shadow-,gshadow,gshadow- 用户,组密码加密文件.

3,/etc/xinetd.conf 网络守护进程主配置文件

4,/etc/inittab  系统在启动是会读取这个文件里的内容.

5,/etc/services 防止未经许可的删除或添加服务

6,/etc/rc.d/rc.sysinit 系统启动是需要读取的文件,

7,/etc/rc.d/init.d/*  

以一个文件为例,其它都一样

[root@tp etc]# chmod 700 passwd
[root@tp etc]# chattr +i passwd

当chattr +i时就是禁止对文件进行修改,当我们要添加用户时,就会有麻烦,因为passwd文件禁止修改写入.所以我们还要该掉它的属性.chattr -i.

 

四,防止攻击系统安全设置

1,限制用户使用系统资源,主要包括资源最大进程数,内存使用量等.这样可以防止DOS类型攻击.

需要编辑文件

[root@tp /]# vi /etc/security/limits.conf

...

(这三行是添加的)

* hard core 0    禁止创建core文件 
* hard rss 5000  其他用户(除root)最多使用5M内存
* hard nproc 20  最多进程数限制在20
注:*表示所有登陆到linux的用户.

# End of file

[root@tp /]# vi /etc/pam.d/login
...

在文件末尾加入下面一行

session required /lib/security/pam_limits.so

2,限制控制台的访问

[root@tp /]# vi /etc/securetty

...

我们注释掉
tty1
# tty2
# tty3
# tty4
# tty5
# tty6

只留下tty1,这时,root仅可在tty1终端登录

3,禁止外来ping请求.

[root@tp /]# vi /etc/rc.d/rc.local

...
在最后加入一行

echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

4,防止IP地址欺骗

[root@tp /]# vi /etc/host.conf

加入如下几行

order bind,hosts
multi off
nospoof on

5,禁止su命令进入root(这一部我反复测试总是不成功,group组里的用户依然不能su成root用户.希望知道的朋友告诉我,谢谢)

[root@tp pam.d]# vi /etc/pam.d/su

...

在下面加入如下两行

auth sufficient /lib/security/pam_rootok.so debug
auth required /lib/security/pam_wheel.so group=xxx

这���示只有xxx组的用户可以su成root.

6,使用TCP_WRAPPER

在默认情况下linux系统允许所有请求,可用TCP_WRAPPER增强安全性,

在/etc/hosts.deny写入"ALL:ALL"禁止所有请求

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wzyxxz.html