Linux 安全设置之yum源与账户安全
yum源安全设置
- EPEL源 extra Packages for Enterprise Linux 企业版Linux额外包 是由Fedora小组维护的软件安装仓库,为RHEL/CENTOS提供他们原本不提供的软件包,并且他兼容RHEL,不会与他们发行的包有冲突
- yum update不升级系统内核,因为考虑到系统及程序的稳定性,建议不要升级内核
先将/etc/yum.conf yum的主配置文件进行备份
修改/etc/yum,在main字段后追加一行
exclude=kernel*
- 关闭yum自动更新 ,如果有安装yum-cron,需要配置
vi /etc/yum/yum-cron.conf
apply_updates = no
download_update=no
账号的基本安全设置
- 注释掉系统不需要的用户和用户组
cp /etc/passwd /etc/bak/passwd
vi /etc/passwd
用户名:密码占位符:uid:gid:说明信息:宿主目录:使用的shell
可以注释的:
adm
lp
sync
shutdown
halt
operator
games
ftp
cp /etc/group /etc/bak/
vi /etc/group
adm,lp,floppy,games,ftp 可注释
原则就是最小的权限+最少的服务=最大的安全
- 非登录用户的shell设置为/sbin/nologin ,如程序账号mysql.nginx仅用于程序调用
usermod -s /sbin/nologin username
- 锁定账号,当某个账号不允许其在登录,但是该账户下可能存在一些程序,不能直接删除账号,建议锁定账号
比如该账户下存在定时任务,删除账号后定时任务不再执行,可以锁定账号
usermod -L username #加锁
usermod -U username #解锁
#锁定后可查看/etc/shadow密码文件,密码位置前面会有!
test:!$6$Av7Eplo5$x2rnMJvLd7CAcW4aQfXaUQn1f0LCBWFRMuB.ixDehOhmjnTi4zDlMsPF4IuQQ.fpjV0xqZIAsIZNgneSsjwcr.:19091:0:99999:7:::
- 给账号,组账号,账号口令文件加上不可更改属性,从而防止非授权用户获取权限
chattr +i /etc/passwd
chattr +i /etc/shadow
chattr +i /etc/group
chattr +i /etc/group
chattr +i /etc/gshadow
lsattr /etc/passwd /etc/shadow /etc/group /etc/gshadow
----i----------- /etc/passwd
----i----------- /etc/shadow
----i----------- /etc/group
----i----------- /etc/gshadow
修改后无法添加修改用户,需要添加用户时 -i解锁,加完之后在加锁
- 账号的口令设置
设置密码有效期与最短长度限制
要求用户下次登录时修改密码
vi /etc/login.defs #适用于新建账户
PASS_MAX_DAYS 90 #密码最长使用天数
PASS_MIN_DAYS 0 #密码最短使用天数
PASS_MIN_LEN 10 #密码最短长度
PASS_WARN_AGE 7 #密码最短使用天数
修改已存在用户的口令设置
chage -M 30 username #设置用户密码的有效期
chage -E 1970-01-01到有效期截止日的天数 #设置到期时间
chage -d 0 username #强制用户下次登录修改密码
cat /etc/shadow
test:$6$6R8LZtHj$BGlGl/KxSXDRdsJQqSublxXGpN/Pf3wetxfp.kY7w8DmndxN3lxpvV6flQLBcrFZobCXRQ5MNn7Kt45bmu.LH/:19093:0:10:7::19093:
#用户名:密码:最后一次修改密码的日期(1970-01-01到修改密码的日期天数):密码最小修改间隔:密码有效期(相对最后一次修改密码的时间的天数):密码到期前多少天提示:密码到期后延迟多少天:账号有效时间(1970-01-01到有效期的天数):保留
- 历史命令限制
减少历史命令记录条数
vi /etc/profile
HISTSIZE=50
#注销时自动清空历史命令记录
cat .bash_logout
# ~/.bash_logout
history -c
clear
- 终端自动注销
vi ~./bash_profile #或者/etc/profile 所有用户有效
#添加TMOUT,单位秒
export TMOUT=600
- 账号用户切换,安全考虑不允许某些账户随意切换到其他账号,先看一
[test@localhost ~]$ cat /etc/pam.d/su
#%PAM-1.0
auth sufficient pam_rootok.so
# Uncomment the following line to implicitly trust users in the "wheel" group.
auth sufficient pam_wheel.so trust use_uid
# Uncomment the following line to require a user to be in the "wheel" group.
#auth required pam_wheel.so use_uid
......
其中这一条放开
auth sufficient pam_wheel.so trust use_uid
表示加入到wheel的用户可以随意切换,不需要输入密码,这很明显不安全
放开
auth required pam_wheel.so use_uid
表示只有加入wheel组的用户才能切换到其他账户,没有这个组的不允许切换到其他账户,切root也是不允许的
- sudo机制提升权限
用途:以其他用户的身份执行授权命令
使用时验证的是自己的密码
sudo -u username 命令
#配置sudo
vi /etc/sudoers
root ALL=(ALL) ALL
test localhost=(root) /usr/bin/yum
#用户名 地址=(以谁的身份执行)执行什么命令