系统安全-----------账号安全管理

系统账号管理

账号清理

  • 账号分为 登录用户 与 非登录用户:
    登录用户:为超级用户root、自己创建的普通用户、别人使用的其他用户。
    非登录用户:为随系统或程序安装过程产生的其他大量其他账号包(例如 bin、daemon、adm、ip、mail、nobady、apache、mycql、dbus、ftp、gdm、haldaemon等)

  • 为了确保系统安全,这些非登录用户shell通常是 /sbin/nologin 的,表示禁止终端登录,确保别人不能随意改动。

[root@localhost~]#grep “/sbin/nologin” /etc/passwd ######可以查看禁止登录的非登录用户

而这种非登录用户中有相当一部分很少用到或根本不会用到,这些账号可以视为冗余账号,没什么卵用还占开机速度占空间等,我们就直接删除即可

  • 对于Linux服务器中长期不用的用户账号,不确定能不能删除,可以暂时时将其锁定,等到以后再删。

示例:
[root@localhost~]#usermod -L xiaojiejie 或者 passwd -l xiaojiejie ########锁定账号
[root@localhost~]#passwd -S xiaojiejie #########查看账号是否锁定状态

[root@localhost~]#usermod -U xiaojiejie 或者 passwd -u xiaojiejie ############解锁账号
[root@localhost~]#passwd -S xiaojiejie ##########查看账号是否锁定状态

  • 最安全的便是锁定账号的配置文件,只要锁上,如果不解开是无法删除的,无法添加账号,不能更改密码,登录shell,属主目录等属性信息。

[root@localhost~]#chattr +i /etc/passwd /etc/shadow #######锁定文件
[root@localhost~]#lsattr /etc/passwd /etc/shadow###########查看锁定的状态
----i-------- /etc/passwd
----i-------- /etc/shadow
[root@localhost~]#chattr -i /etc/passwd /etc/shadow #########解锁文件
[root@localhost~]#lsattr /etc/passwd /etc/shadow###########查看锁定的状态
------------- /etc/passwd
------------- /etc/shadow

账号安全设置

在不安全的网络环境中,为了降低密码被猜出或者被暴力破解的风险,用户应该养成定期更改密码的习惯,避免长期使用同一个密码。管理员可以在服务器端限制用户密码的最大有效天数,对于密码已经过期的用户,登录时将被要求重新设置密码,否则将拒绝登录。
密码有效期为30天:
[root@localhost~]#vi /etc/login.defs###########适用于新建的用户
PASS_MAX_DAYS 30########添加这条命令
[root@localhost~]#chage -M 30 lisi###########适用于已有的lisi用户

统一要求所有用户更改新密码:
[root@localhost~]#chage -d 0 xiaojiejie##########要求小姐姐用户下次登录需要改密码

删除历史命令

防止你的电脑被入侵后一查你的历史命令,你输了哪些命令一清二楚
有二种清除历史命令的方式:
1、history -C##########只能清除当时的历史命令,重启机器后就会再次出现
2、**vi /.bash_profile**#######vi编辑/.bash_profile
export HISTSIZE=0######添加这条命令,重启后删除这条命令,在刷新下

用户切换与提权

大多数Linux服务器并不建议用户直接以root用户进行登录,一方面可以大大减少因错误操作而导致的破坏,另一方面也降低了特权密码在不安全的网络环境中被泄露的风险。鉴于这些原因,需要为普通用户提供一种身份切换或权限提升机制,以便在必要的时候执行管理任务。

su命令——切换账户

示例:
[root@localhost~]#su - root ##############切换至root账户
password:

其中选项“-”表示切换用户后进入目标用户的登录shell环境,若缺少此选项则仅切换身份,不切换用户环境。对于切换root 用户,目标 root 可以省略不写。

  • 默认情况下,任何用户都允许使用su命令,从而有机会反复尝试其他用户(如root)的登录密码,带来安全风险。为了加强su命令的使用控制,可以借助于pam_wheel 认证模块,至允许极个别用户使用su命令进行切换。
    示例:
    将授权使用su命令的用户kcce添加到wheel 组,修改/etc/pam.d/su 认证配置以启用pam_wheel认证
    [root@localhost~]#gpasswd -a kcce wheel ######添加授权用户kcce
    (显示:) Adding user kcce to group wheel
    [root@localhost~]#grep wheel /etc/group###########确认wheel组成员
    (显示:) wheel:x:10:kcce
    [root@localhost~]#vi /etc/pam.d/su###########编辑配置文件/etc/pam.d/su
    (显示:) #%PAM-1.0
    auth sufficient pam_rootok.so

    auth required pam_wheel so use_uid #############去掉此行开头的#号

启用pam_wheel 认证后,未加入到wheel 组内的其他用户将无法使用su命令,尝试切换时会显示“拒绝权限”

sudo命令——提升执行权限

当你是普通用户在执行命令时有时会提示你没有执行权限,这会搞的你很不爽,所以这时你就得切换到超级用户root 账户,所以你必须得知道root 账户的密码,在生产环境中的Linux服务器每多一个人知道特权密码,其安全风险也就增加一分,而在这种情况下,管理员既不想给你密码又能让你有特权执行命令时就可以用到 sudo 命令了。(当然这得是管理员的事情了,是需要他来设置的)

  • 在配置文 /etc/sudoers 中添加授权
    sudo 机制的配置文件为 /etc/sudoers ,文件的默认权限为440,需使用专门的 visudo 工具进行编辑。
    也可以使用 vi /etc/sudoers 编辑文件,不过保存时必须执行 “wq!”强制操作,否则系统提示为只读文件而拒绝保存
    格式:user MACHINE=COMMANDS
    #:用户(user):授权的用户名,或采用 “%组名” 的形式 (授权一个组的所有用户)
    #:主机(MACHINE):使用此配置文件的主机名,此部分主要是方便在多个主机间共用同一份 sudoers 文件,一般设置为 localhost 或者实际的主机名即可。
    #:命令(COMMANDS):允许授权的用户通过sudo方式执行的授权命令,需要填写命令程序的完整路径,多个命令之间以 逗号 ”,“进行分隔。
    1、 典型的 sudo 配置记录中,每一行对应一个用户或组的 sudo 授权配置
    示例:
    要授权用户 Jerry 能够执行 ifconfig 命令来修改IP地址,而wheel 组的用户不需要验证密码就可执行文件

[root@localhost~]# visudo
(…省略一大堆内容)
Jerry localhost=/sbin/ifconfig
%wheel (空好几格) ALL=NOPASSWD:ALL

——————————————————————
2、当使用相同授权的用户较多,或者授权的命令较多时,可以采用集中定义的别名来设置。
用户(User_Alias)、主机(Host_Alias)、命令(Cmnd_Alias)
示例:
通过别名的方式来添加授权记录,允许用户Jerry、tom、kcce 在主机 smtp、pop 中执行 rpm、yum命令

[root@localhost~]#visudo
(…省略一部分内容)
User_Alias(空格)OPERATORS=jerry,tom,kcce
Host_Alias(空格)MAILSVRS=smtp,pop
Cmnd_Alias(空格)PKGTOOLS=/bin/rpm,/usr/bin/yum
OPERATORS(空格)MAILSVRS=PKGTOOLS
———————————————————————
3、sudo 配置记录的命令部分允许使用通配符 “*”、取反符号 “!”,当需要授权某个目录下的所有命令或取消其中个别命令时特别有用。
示例:
授权用户kkg 可以执行 /sbin/ 目录下除 ifconfig、route 以外的其他所以命令程序

[root@localhost~]#visudo
(…省略一部分内容)
kkg localhost=/sbin/*,!/sbin/ifconfig,!/sbin/route
———————————————————————

4、管理员想查看 sudo 日志记录,应在 /etc/sudoers 文件中增加 “Defaults logfile ” 设置
示例:
[root@localhost~]#visudo
(…省略一部分内容)
Defaults logfile = “/var/log/sudo

  • 通过 sudo 执行特权命令
    1、普通用户输入命令,会得到权限不够的提示

[kcce@localhost~]$ /sbin/ifconfig egh0 192.168.1.11/24#######未使用sudo的情况
SIOCSIFADDR:权限不够
SIOCSIFNETMASK:权限不够

[kcce@localhost~]$ sudo /sbin/ifconfig egh0 192.168.1.11/24#########使用sudo 的情况

passwd for 用户:

[kcce@localhost~]$/sbin/ifconfig egh0 ##########查看执行结果

第一次通过sudo 执行命令时,必须以用户自己的密码(不是root用户或者其他用户的密码)进行验证,此后再次通过sudo执行命令时,只要与前一次sudo 操作的间隔时间不超过5分钟,则不再重复验证。

2、已授权的用户查看自己的sudo 配置,未配置的用户将会得到 “may not run sudo”的提示
示例:
[kcce@localhost~]$visudo

用户kcce可以在该主机上运行以下命令:
kcce localhost=/sbin/ifconfig

3、如果已经启用sudo日志,则可以从 /var/log/sudo 文件中看到用户的 sudo 操作记录
示例:
[kcce@localhost~]$tail /var/log/sudo

May 13 09:49:47 :kcce : TTY=pts/0; PWD=/home/kcce ; USER=root;
COMMAND=/sbin/ifconfig eth0:0 192.168.1.11/24

猜你喜欢

转载自blog.csdn.net/XCsuperman/article/details/107518596