CentOS系统安全合规配置

目录

前言

一、CentOS系统密码策略

     1.密码复杂度策略,编辑system-auth

     2.设置密码有效期

     3.设置登陆会话超时 

     4.设置登陆失败锁定   

二、CentOS系统用户限制策略

     1.限制普通用户su到root,仅允许指定用户组内成员通过su切换到root账号

     2.删除与设备运行,维护,工作无关的账号   

     3.按组进行账号管理

     4.普通用户授权sudo权限

     5.禁止root用户远程telnet登录   

三、CentOS系统日志策略

总结


前言

      CentOS系统作为主流的linux系统分支,目前广泛部署应用于服务器作为服务器系统使用,为了提高服务器系统的安全行,需要根据自身安全工作需求,进一步对安装的CentOS系统进行简单的配置,来提高安全性,本文主要是总结工作中的一些简单安全配置


一、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系统日志策略


总结:

          以上主要是根据实际使用中遇到的需求进行收集配置,后续会继续补充。

你可能感兴趣的:(centos,linux,运维,系统安全)