前言
CentOS系统作为主流的linux系统分支,目前广泛部署应用于服务器作为服务器系统使用,为了提高服务器系统的安全行,需要根据自身安全工作需求,进一步对安装的CentOS系统进行简单的配置,来提高安全性,本文主要是总结工作中的一些简单安全配置
1.密码复杂度策略,编辑system-auth
# vi /etc/pam.d/system-auth
在配置文件中找到:password requisite pam_cracklib.so,
或password requisite pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type= 在其后边空格,添加配置:
minlen=8 lcredit=-1 ucredit=-1 dcredit=-1 ocredit=-1 difok=5 enforce_for_root
参数说明
负数:代表最少出现次数,正数:代表最多出现次数
minlen=8,密码长度至少8位;
lcredit=-1,至少包含一个小写字母;
ucredit=-1,至少包含一个大写字母;
dcredit=-1,至少包含要给数字;
ocredit=-1,至少包含一个特殊字符;
difok=5,新密码最多与旧密码重复5个字符;
enforce_for_root,对root强制执行密码复杂度策略。
2.*设置密码有效期*
(1)设置新用户密码有效期
#vi /etc/login.defs
#密码的最大有效期
PASS_MAX_DAYS 90
#是否可修改密码,多少天后可修改
PASS_MIN_DAYS 0
#密码最小长度,pam_pwquality设置优先
PASS_MIN_LEN 8
#密码失效前多少天在用户登录时通知用户修改密码
PASS_WARN_AGE 15
#以上设置只针对新用户生效,原来用户不生效。
(2)通过chage命令设置老用户密码有效期
#chage -d 0 -m 0 -M 90 -W 7 root
# -d,上一次更改时间,-m,可更改的最小天数,0则任何时间都可修改,-M,有效天数,-W,到期前多
少天提醒,root,用户名 #这里则是有效期90天,提前7天给出过期提醒,任意时间段都可以修改密码。 当密
码到期后进行ssh连接时会强制用户更改密码。
#查看用户的年龄信息
#chage -l 用户名
# source /etc/profile #配置生效
3.设置登陆会话超时**** ****
(1) 方法一
#vi /etc/profile
#例如设置10分钟无操作,自动退出会话,单位是:秒。
export TMOUT=600
# source /etc/profile
# 刷新profile
# echo $TMOUT # 查询是否生效
(2)方法二
#vi /etc/ssh/sshd_config
找到#ClientAliveInterval 将#删除,添加数字,单位:秒数
ClientAliveInterval 600 #600秒=10分钟
ClientAliveCountMax 表示允许超时最大次数
ClientAliveCountMax 3 表示允许超时最大次数3次
以上配置表示最大允许超时时间为600*3秒等于30分钟
#systemctl restart sshd
4.设置登陆失败锁定
(1)配置控制台密码输错5次密码,账号锁定10分钟。
# vi /etc/pam.d/system-auth
auth required pam_tally2.so onerr=fail deny=5 unlock_time=600 root_unlock_time=600
(2)配置ssh远程密码输错5次密码,账号锁定15分钟。
# vi /etc/pam.d/sshd
auth required pam_tally2.so onerr=fail deny=5 unlock_time=600 root_unlock_time=600
一旦用户失败登录尝试次数达到5次,该帐户立刻被锁定,除非root用户解锁,否则将无法远程登录。
root用户下使用如下命令解锁用户:
# pam_tally2 -u username -r --reset
或者
# pam_tally2 -r -u username 解锁用户
查看用户登录失败信息:
# pam_tally2 -u username
如果要在3次失败登录尝试后永久锁定用户,那么需要删除unlock_time字段,除非root用户解锁该账户,否则将永久锁定。
(3)通过pam_tally2.so的PAM模块,来限定用户的登录失败次数,如果次数达到设置的阈值,则锁定用户。
# vim /etc/pam.d/login
auth required pam_tally2.so deny=3 unlock_time=600 even_deny_root root_unlock_time=600
在#%PAM-1.0的下面,即第二行,添加内容,一定要写在前面,如果写在后面,虽然用户被锁定,但是只要用户输入正确的密码,还是可以登录的!
参数介绍:
even_deny_root 也限制root用户;
deny 设置普通用户和root用户连续错误登陆的最大次数,超过最大次数,则锁定该用户
unlock_time 设定普通用户锁定后,多少时间后解锁,单位是秒;
root_unlock_time 设定root用户锁定后,多少时间后解锁,单位是秒;
此处使用的是 pam_tally2 模块,如果不支持 pam_tally2 可以使用 pam_tally 模块。另外,不同
的pam版本,设置可能有所不同,具体使用方法,可以参照相关模块的使用规则。
全局选项
onerr=[succeed|fail]
file=/path/to/log 失败登录日志文件,默认为/var/log/tallylog
audit 如果登录的用户没有找到,则将用户名信息记录到系统日志中
silent 不打印相关的信息
no_log_info 不通过syslog记录日志信息
AUTH选项
deny=n 失败登录次数超过n次后拒绝访问
lock_time=n 失败登录后锁定的时间(秒数)
unlock_time=n 超出失败登录次数限制后,解锁的时间
no_lock_time 不在日志文件/var/log/faillog 中记录.fail_locktime字段
magic_root root用户(uid=0)调用该模块时,计数器不会递增
even_deny_root root用户失败登录次数超过deny=n次后拒绝访问
root_unlock_time=n 与even_deny_root相对应的选项,如果配置该选项,则root用户在登录失败次数超出限制后被锁定指定时间
二、CentOS系统用户限制策略
1.限制普通用户su到root,仅允许指定用户组内成员通过su切换到root账号
(1)使用PAM认证模块禁止wheel组之外的用户su为root
#vi /etc/pam.d/su
#在auth sufficient pam_rootok.so配置下另起一行添加如下配置
auth required pam_wheel.so use_uid
#这表明只有wheel组的成员可以使用su命令成为root用户。你可以把用户添加到wheel组,以使它可以使用su命令成为root用户。
添加用户到wheel用户组方法:
#usermod –G wheel 用户名
查看用户组
#id 用户名 #查看用户所属组信息
(2)如果不想使用wheel组,而是使用其他的组代替,比如指定组名为testgroup的组拥有su的权限,需要这么做:
#vim /etc/pam.d/su
auth required pam_wheel.so use_uid group=testgroup
补充为用户创建账号:
#useradd username #创建账号
#passwd username #设置密码
修改权限:
#chmod 750 directory #其中750为设置的权限,可根据实际情况设置相应的权限,directory是要更改权限的目录)
使用该命令为不同的用户分配不同的账号,设置不同的口令及权限信息等。
2.删除与设备运行,维护,工作无关的账号
删除用户:#userdel 用户名;
锁定用户:
#usermod -L 用户名
只有具备超级用户权限的使用者方可使用.
#usermod –U 用户名 #解锁用户。
3.按组进行账号管理
(1).执行备份:
#cp -p /etc/group /etc/group.bak
(2).创建新的用户组
#groupadd 组名
#usermod -g 组名 -d 用户目录 -m 用户名
把用户添加进入某个组(s)或参考usermod --help说明进行设置
4.普通用户授权sudo权限
(1)将用户添加到wheel用户组,也可自行创建用户组然后配置权限,即可拥有使用sudo执行root命令的权限
查看/etc/sudoers文件wheel用户组是否配置sudo权限
#cat /etc/sudoers
centos系统默认已配置%wheel ALL=(ALL) ALL
将要配置sudo权限的用户加入到wheel用户组
#usermod -aG wheel username
查看/etc/sudoers文件权限,如果只读权限,修改为可写权限
# ls -l /etc/sudoers
#chmod 777 /etc/sudoers
#ls -l /etc/sudoers
保存退出,并恢复/etc/sudoers的访问权限为440
chmod 440 /etc/sudoers
(2)可以给指定的用户配置sudo权限
#vim /etc/sudoers
#添加如下配置,保存退出
username ALL=(ALL) ALL
补充:
添加普通用户的sudo权限,可以操作root能够操作的所有指令,同时禁止其关机操作,同时取消sudo的密码交互
#vim /etc/sudoers
username ALL=(ALL) NOPASSWD: ALL, !SHUTDOWN
参数说明:
NOPASSWD是取消sudo时需要输入用户密码
ALL是具有所有权限
!SHUTDOWN是限制SHUTDOWN变量所限定的操作。
#配置允许指定用户关机,重启操作
username ALL=(root) /sbin/shutdown * ,/sbin/reboot *
username为用户名,ALL为主机名,ALL代表所有主机,如果你想在指定主机有效,
那就把ALL换成指定的主机名,(ROOT)代表以何种身份执行,
root为以root身份执行,/sbin/shutdonw *代表授权shutdown * 的权限,
使用逗号来授权多个命令,因为是只读文件,更改完之后wq!保存退出
5.禁止root用户远程telnet登录
#vim /etc/pam.d/login
auth required pam_securetty.so #配置该命令
三、CentOS系统日志策略
总结:
以上主要是根据实际使用中遇到的需求进行收集配置,后续会继续补充。
本文转载自: https://blog.csdn.net/weixin_44569100/article/details/131801906
版权归原作者 空灵之海 所有, 如有侵权,请联系我们删除。
版权归原作者 空灵之海 所有, 如有侵权,请联系我们删除。