网络安全系列之十二 Linux用户账号安全设置

用户账号是计算机使用者的身份凭证或标识,每一个要访问系统资源的人,必须凭借他的用户账号才能进入计算机。在Linux系统中,提供了多种机制来确保用户账号的正当、安全使用。合理地规划用户账号,并合理地分配权限,是保证Linux系统安全的第一步。

1. 清理系统账号
在Linux系统中,一些程序在安装时会创建特有的用户和组,这些用户仅仅用于启动服务或运行进程,通常是不允许登录的,例如mysql、apache、named、news……。当攻击者假冒这些用户或组身份时,往往不易被管理员发现。
对于这些系统账号,首先要确保他们不能用于登录,也就是要将他们的登录shell设为/sbin/nologin,同时可以考虑将账号删除或是锁定。
根据当前服务器的具体应用情况,可以将不使用的用户和组删除。例如,很少使用的用户、组包括:news、uucp、games、gopher等。再如,假设服务器不需要启用named服务,那么就可以删除named用户、named组;如果不提供FTP服务,就可以删除ftp用户、ftp组;……。
如果不确定用户能否删除,也可以将用户锁定。例:锁定用户sync。
        [[email protected] ~]# passwd -l sync

推荐采用锁定的方式。

2. 锁定账号文件
如果确定系统中的账号已经达到了稳定状态,不需要再做改动,那么可以利用chattr命令将账号文件/etc/passwd和/etc/shadow锁定。

[[email protected] ~]# chattr +i /etc/passwd /etc/shadow
        [[email protected] ~]# lsattr /etc/passwd /etc/shadow
        ----i-------- /etc/passwd
        ----i-------- /etc/shadow
此时再创建用户就会出现错误提示。

[[email protected] ~]# useradd temp
        useradd:无法打开密码文件
将文件解锁:

[[email protected] ~]# chattr -i /etc/passwd /etc/shadow
        [[email protected] ~]# lsattr /etc/passwd /etc/shadow
        ------------- /etc/passwd
        ------------- /etc/shadow

3. 设置用户密码策略
在Linux系统中,设置用户密码策略的操作要分为两种情况:针对新创建的账号,针对系统中原先已经存在的账号。
对于新创建的账号,可以通过修改配置文件/etc/login.defs来设置密码策略,该文件用来定义创建用户账号时的默认设置,比如指定用户的UID和GID的范围,账号的过期时间、是否需要创建用户家目录等等。
下面是/etc/login.defs文件的重要参数介绍:

修改该文件中的设置,只针对新创建的用户有效。例如限制用户的密码有效期(最大天数)为30天,可以将“PASS_MAX_DAYS”的值设为30,那么所有新建用户的密码有效期都将是30天。
对于系统中已经存在的账号,可以通过chage命令设置密码策略。
chage命令的常用选项:
    -M,设置用户密码最长使用时间。
    -W,设置用户密码过期警告时间。
    -d,设置密码修改时间。
例:将zhangsan的密码有效期更改为30天。
         [[email protected] ~]# chage -M 30 zhangsan
例:将zhangsan的密码过期警告时间更改为7天。
         [[email protected] ~]# chage -W 7 zhangsan
例:强制用户zhangsan在下次登录时需要更改密码。

[[email protected] ~]# chage -d 0 zhangsan

4. 设置历史命令条数
通过执行history命令可以列出以前曾执行过的历史命令,这也带来了一定的安全隐患。
假如我们需要将所有用户的历史命令记录条数设置为100条,这需要修改/etc/profile文件。
/etc/profile文件用于设置用户在登录系统时自动执行某些操作,对所有用户都有效。

例如,我们希望root用户在每次注销退出时能自动清空历史命令,可以在用户家目录的.bash_logout文件中添加一条“history –c”命令。

5. 设置终端自动注销
在用户通过终端登录时,可以设置一个TMOUT变量,当超过指定的时间(默认单位为秒)没有输入即自动将账号注销。设置恰当的超时时间,可以有效地避免当管理员不在时其他人员对服务器的误操作风险。
设置自动注销仍是需要修改/etc/profile文件。
例:设置账号超时10分钟自动注销。

时间: 2024-10-29 19:06:25

网络安全系列之十二 Linux用户账号安全设置的相关文章

网络安全系列之四十 在Linux中设置SET位权限

虽然通过ACL增加了权限设置的灵活性,但是Linux系统中可供设置的权限只有读.写.执行三种,在某些特殊的场合,这可能将无法满足要求.因而,在Linux系统中还提供了几种特殊的附加权限,用于为文件或目录提供额外的控制方式,可用的附加权限包括:SET位权限(SUID.SGID)和粘滞位权限(Sticky Bit).本文将介绍SET位权限. SET位权限多用于给可执行的程序文件或目录进行设置,其中SUID表示对所有者用户添加SET位权限,SGID表示对所属组内的用户添加SET位权限.当一个可执行文件

网络安全系列之十五 Linux日志管理1

Linux服务器一般都是被放置在机房中自动运行,管理员要了解服务器或是应用程序的运行状态,大都需要通过日志.日志文件用于记录Linux系统中各种运行消息,不同的日志文件记载了不同类型的信息,例如Linux内核消息.用户登录记录.程序错误等.日志文件对于诊断和解决系统中的问题很有帮助,因为在Linux系统中运行的程序通常会把系统消息和错误消息写入相应的日志文件,这样系统一旦出现问题就会有据可查.此外,当主机遭受攻击时,日志文件还可以帮助寻找攻击者留下的痕迹. 1. 主要日志文件 Linux系统本身

网络安全系列之三十二 组策略中的安全选项

在Win2003系统中打开组策略编辑器,展开[计算机配置\Windows设置\安全设置\本地策略\安全选项].通过本地策略中的安全选项,可以控制一些和操作系统安全相关的设置. 下面是一些常用的安全选项策略: (1)"关机:允许系统在未登录前关机" 正常情况下,用户只有登录到系统后,具有权限的用户才能关机,启用此策略后,登录屏幕上的关机命令可用. (2)"账户:使用空白密码的本地账户只允许进行控制台登录" 启用此策略后,密码为空的用户只能在本地登录,而无法通过网络访问

网络安全系列之四十二 木马的原理及使用

木马是一种基于远程控制的黑客工具,具有很强的隐蔽性和危害性.一台被安装了木马的计算机就称为"肉鸡",黑客对肉鸡基本上是可以为所欲为的.黑客可以轻易地复制.删除.上传.下载肉鸡上的文件,还可以记录用户的每一个键盘操作,用户的QQ号.游戏账户和银行密码会被黑客轻易获得,甚至还可以控制用户的摄像头,因而木马的危害非常之大.本文以国内曾经鼎鼎大名的灰鸽子木马为例讲述木马的使用和防御,下载地址http://down.51cto.com/data/1901166 (1)木马基本原理 木马是一种典型

网络安全系列之十六 Linux日志管理2

管理日志服务 RHEL系统中的内核及系统日志功能主要由rsyslogd服务提供,该服务的配置文件为"/etc/rsyslog.conf". rsyslogd服务默认已经安装并自动运行,/etc/rsyslog.conf配置文件则可以对日志进行设置,它可以指定那些信息需要记录,以及记录在哪里. 例:查看/etc/rsyslog.conf配置文件中的主要内容. /etc/rsyslog.conf文件中的每一行代表一条设置值,每一条设置值的语法如下: 消息类型   执行动作 其中的"

网络安全系列之五十二 组策略中的软件限制策略

在组策略编辑器中展开"计算机配置/Windows设置/安全设置/软件限制策略",通过设置软件限制策略,可以限制用户在计算机上使用某些未经许可的软件,从而提高安全性. 下面以禁用记事本程序为例来介绍其相关操作. 在"软件限制策略"上单击右键,选择"创建软件限制策略",在下面会多出"安全级别"和"其它规则"2个项目,在"其它规则"上单击右键,可以选择创建4种不同的软件限制规则. 这4种规则分

Liferay 6.2 改造系列之十二:修改Portal设置页面表单内容

将Portal设置页面中无用的内容删除: 在/portal-master/portal-impl/src/portal.properties文件中,有如下配置: # # Input a list of sections that will be included as part of the company # settings form. # company.settings.form.configuration=general,authentication,users,mail-host-n

C++语言笔记系列之十二——C++的继承

C++的继承 1.继承方式 public(公有继承) 派生类中的成员可以访问基类的public成员和protected成员,但不能访问基类的private成员. 派生类的对象只能访问基类的public成员. protected(保护继承),private(私有继承) 派生类中的成员可以访问基类的public成员和protected成员,但不能访问基类的private成员. 派生类的对象不能访问基类的任何成员. 2.例子 example 1: #include <iostream.h> clas

hbase源码系列(十二)Get、Scan在服务端是如何处理?

继上一篇讲了Put和Delete之后,这一篇我们讲Get和Scan, 因为我发现这两个操作几乎是一样的过程,就像之前的Put和Delete一样,上一篇我本来只打算写Put的,结果发现Delete也可以走这个过程,所以就一起写了. Get 我们打开HRegionServer找到get方法.Get的方法处理分两种,设置了ClosestRowBefore和没有设置的,一般来讲,我们都是知道了明确的rowkey,不太会设置这个参数,它默认是false的. if (get.hasClosestRowBef