一、操作系统的检测

更多最新更新:请点击这里

1、设置密码安全策略

1)修改vim /etc/login.defs文件

#vim /etc/login.defs
PASS_MAX_DAYS   90          # 密码最长过期天数
PASS_MIN_DAYS   80         # 密码最小过期天数
PASS_MIN_LEN    16        # 密码最小长度
PASS_WARN_AGE   14         # 密码过期警告天数

2)修改/etc/pam.d/system-auth文件

vim /etc/pam.d/system-auth
在 password requisite pam_cracklib.so 一行换成如下内容:password  requisite pam_cracklib.so retry=5  difok=3 minlen=10 ucredit=-1 lcredit=-3 dcredit=-3 dictpath=/usr/share/cracklib/pw_dict参数含义:尝试次数:5 ;最少不同字符:3 ;最小密码长度:10 ;最少大写字母:1;最少小写字母:3 ;最少数字:3 ;字典位置:/usr/share/cracklib/pw_dict

2、查看是否存在特权用户,通过判断uid是否为0来查找系统是否存在特权用户,使用命令awk即可查出

awk -F: '$3==0 {print $1}' /etc/passwd

3、查看是否存在空口令用户

在/etc/passwd中用户的密码是被保护的状态,即使用了*号来隐藏。而实际的密码内容是加密后

保存在/etc/shadow文件中了,我们确认是否存在空口令的用户就确认该文件中密码对应字段的长度是否为0,

如果为0则证明该用户密码为空。

awk -F: 'length($2)==0 {print $1}' /etc/shadow

4、删除多余的账号

userdel uucp
userdel nuucp
userdel lp
userdel adm
userdel sync
userdel shutdown
userdel halt
userdel news
userdel operator
userdel gopher
userdel bin
userdel mail
userdel games
userdel ftp
userdel vcsa
userdel abrt
userdel ntp
userdel saslauth
userdel tcpdump

5、日志权限不得大于640 设置日志权限为640

chmod 640 /var/log/messages
chmod 640 /var/log/secure
chmod 640 /var/log/audit/audit.log

6、设置历史命令的记录为5条

sed -i 's/HISTSIZE\=1000/HISTSIZE\=5/g' /etc/profile

7、添加审计账号

useradd audit
usermod -G audit audit

8、操作系统审计

安装审计服务

yum -y install audit audit-libs-devel
systemctl daemon-reload
systemctl enable auditd

简单版本:

vim /etc/audit/rules.d/audit.rules
-a exit,always -F arch=b64 -S umask -S chown -S chmod
-a exit,always -F arch=b64 -S unlink -S rmdir
-a exit,always -F arch=b64 -S setrlimit
-a exit,always -F arch=b64 -S setuid -S setreuid
-a exit,always -F arch=b64 -S setgid -S setregid
-a exit,always -F arch=b64 -S sethostname -S setdomainname
-a exit,always -F arch=b64 -S adjtimex -S settimeofday
-a exit,always -F arch=b64 -S mount -S _sysctl
-w /etc/group -p wa
-w /etc/passwd -p wa
-w /etc/shadow -p wa
-w /etc/sudoers -p wa
-w /etc/ssh/sshd_config
-w /etc/bashrc -p wa
-w /etc/profile -p wa
-w /etc/profile.d/
-w /etc/aliases -p wa
-w /etc/sysctl.conf -p wa
-w /var/log/lastlog
# Disable adding any additional rules - note that adding *new* rules will require a reboot

详细版本:

配置规则
cat >> /etc/audit/rules.d/audit.rules <<EOF
###记录系统的日期和时间的修改
-a always,exit -F arch=b64 -S adjtimex -S settimeofday -k time-change
-a always,exit -F arch=b32 -S adjtimex -S settimeofday -S stime -k timechange
-a always,exit -F arch=b64 -S clock_settime -k time-change
-a always,exit -F arch=b32 -S clock_settime -k time-change
-w /etc/localtime -p wa -k time-change####记录用户和组的修改的事件
-w /etc/group -p wa -k identity
-w /etc/passwd -p wa -k identity
-w /etc/gshadow -p wa -k identity
-w /etc/shadow -p wa -k identity
-w /etc/security/opasswd -p wa -k identity####记录网络环境修改时间
-a always,exit -F arch=b64 -S sethostname -S setdomainname -k system-locale
-a always,exit -F arch=b32 -S sethostname -S setdomainname -k system-locale
-w /etc/issue -p wa -k system-locale
-w /etc/issue.net -p wa -k system-locale
-w /etc/hosts -p wa -k system-locale
-w /etc/sysconfig/network -p wa -k system-locale
-w /etc/sysconfig/network-scripts/ -p wa -k system-locale####记录登录和登出事件
-w /var/log/lastlog -p wa -k logins
-w /var/run/faillock/ -p wa -k logins####记录会话启动事件
-w /var/run/utmp -p wa -k session
-w /var/log/wtmp -p wa -k logins
-w /var/log/btmp -p wa -k logins####监视对文件权限、属性、所有权和组的更改
-a always,exit -F arch=b64 -S chmod -S fchmod -S fchmodat -F auid>=1000 -F auid!=4294967295 -k perm_mod
-a always,exit -F arch=b32 -S chmod -S fchmod -S fchmodat -F auid>=1000 -F auid!=4294967295 -k perm_mod
-a always,exit -F arch=b64 -S chown -S fchown -S fchownat -S lchown -F auid>=1000 -F auid!=4294967295 -k perm_mod
-a always,exit -F arch=b32 -S chown -S fchown -S fchownat -S lchown -F auid>=1000 -F auid!=4294967295 -k perm_mod
-a always,exit -F arch=b64 -S setxattr -S lsetxattr -S fsetxattr -S removexattr -S lremovexattr -S fremovexattr -F auid>=1000 -F auid!=4294967295 -k perm_mod
-a always,exit -F arch=b32 -S setxattr -S lsetxattr -S fsetxattr -S removexattr -S lremovexattr -S fremovexattr -F auid>=1000 -F auid!=4294967295 -k perm_mod####记录未授权文件访问尝试
-a always,exit -F arch=b64 -S creat -S open -S openat -S truncate -S ftruncate -F exit=-EACCES -F auid>=1000 -F auid!=4294967295 -k access
-a always,exit -F arch=b32 -S creat -S open -S openat -S truncate -S ftruncate -F exit=-EACCES -F auid>=1000 -F auid!=4294967295 -k access
-a always,exit -F arch=b64 -S creat -S open -S openat -S truncate -S ftruncate -F exit=-EPERM -F auid>=1000 -F auid!=4294967295 -k access
-a always,exit -F arch=b32 -S creat -S open -S openat -S truncate -S ftruncate -F exit=-EPERM -F auid>=1000 -F auid!=4294967295 -k access####收集成功挂载磁盘事件
-a always,exit -F arch=b64 -S mount -F auid>=1000 -F auid!=4294967295 -k mounts
-a always,exit -F arch=b32 -S mount -F auid>=1000 -F auid!=4294967295 -k mount####收集用户的文件删除事件
-a always,exit -F arch=b64 -S unlink -S unlinkat -S rename -S renameat -F auid>=1000 -F auid!=4294967295 -k delete
-a always,exit -F arch=b32 -S unlink -S unlinkat -S rename -S renameat -F auid>=1000 -F auid!=4294967295 -k delete####收集对系统管理范围(sudoers)的更改
-w /etc/sudoers -p wa -k scope
-w /etc/sudoers.d/ -p wa -k scope####收集内核模块加载和卸载
-w /sbin/insmod -p x -k modules
-w /sbin/rmmod -p x -k modules
-w /sbin/modprobe -p x -k modules
-a always,exit -F arch=b64 -S init_module -S delete_module -k modules####收集使用特权命令
-a always,exit -F path=/usr/bin/wall -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged
-a always,exit -F path=/usr/bin/chfn -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged
-a always,exit -F path=/usr/bin/chsh -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged
-a always,exit -F path=/usr/bin/su -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged
-a always,exit -F path=/usr/bin/chage -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged
-a always,exit -F path=/usr/bin/gpasswd -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged
-a always,exit -F path=/usr/bin/newgrp -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged
-a always,exit -F path=/usr/bin/staprun -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged
-a always,exit -F path=/usr/bin/mount -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged
-a always,exit -F path=/usr/bin/pkexec -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged
-a always,exit -F path=/usr/bin/umount -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged
-a always,exit -F path=/usr/bin/write -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged
-a always,exit -F path=/usr/bin/crontab -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged
-a always,exit -F path=/usr/bin/sudo -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged
-a always,exit -F path=/usr/bin/ssh-agent -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged
-a always,exit -F path=/usr/bin/passwd -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged
-a always,exit -F path=/usr/sbin/pam_timestamp_check -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged
-a always,exit -F path=/usr/sbin/unix_chkpwd -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged
-a always,exit -F path=/usr/sbin/netreport -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged
-a always,exit -F path=/usr/sbin/usernetctl -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged
-a always,exit -F path=/usr/sbin/postdrop -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged
-a always,exit -F path=/usr/sbin/postqueue -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged
-a always,exit -F path=/usr/lib/polkit-1/polkit-agent-helper-1 -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged
-a always,exit -F path=/usr/libexec/utempter/utempter -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged
-a always,exit -F path=/usr/libexec/dbus-1/dbus-daemon-launch-helper -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged
-a always,exit -F path=/usr/libexec/openssh/ssh-keysign -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged
EOF然后重新加载规则
/sbin/augenrules --load

9、将/var/log/赋给audit

chown audit:audit -R /var/log
chown root:root -R /var/log/audit

10、禁止root登陆

vim /etc/ssh/sshd_config
PermitRootLogin no

111、日志上传服务器

vim  /etc/rsyslog.conf
*.info;mail.none;news.none;authpriv.none;cron.none /var/log/messages
*.* @@172.16.x.xx:514
*.* @172.16.x.xx:514

12、ssh配置

修改/etc/ssh/sshd_config配置文件ssh访问控制
AllowUsers <userlist>
AllowGroups <grouplist>
DenyUsers <userlist>
DenyGroups <grouplist> 配置加密算法
Ciphers aes256-ctr,aes192-ctr,aes128-ctr  # 使用已批准的加密类型
MACs hmac-sha2-512,hmac-sha2-256          # 使用已批准的Mac算法密码验证
PermitEmptyPasswords no  # 禁止无密码访问服务器
PermitRootLogin yes      # 是否禁止使用root登录(为方便管理,暂未收回权限)
如果禁用root需要创建一个超级管理员。
openssh主机认证
HostbasedAuthentication no限制用户认证次数
MaxAuthTries 4  # 等保三要求该值小于等于 4ssh空闲超时
ClientAliveInterval 300  # 小于等于300s
ClientAliveCountMax 3    # 存活用户数小于等于3

  13、单个用户做审计

 cat >> /etc/profile <<EOFexport HISTTIMEFORMAT="[`whoami`] ${USER_IP} %F %T "historyUSER=`whoami`##是从那个IP登录的(例如是从堡垒机登录服务器的)USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`if [ "$USER_IP" = "" ]; thenUSER_IP=`hostname`fiif [ ! -d /var/log/history ]; thenmkdir /var/log/historychmod 777 /var/log/historyfiif [ ! -d /var/log/history/${LOGNAME} ]; thenmkdir /var/log/history/${LOGNAME}chmod 300 /var/log/history/${LOGNAME}fiexport HISTSIZE=5DT=`date +"%Y%m%d_%H:%M:%S"`export HISTFILE="/var/log/history/${LOGNAME}/${USER}@${USER_IP}_$DT"chmod 600 /var/log/history/${LOGNAME}/*history* 2>/dev/nullEOF
source /etc/profile
EOF###修改过期用户,并且配置最大的过期时间和警告天数
sudo cat /etc/shadow |grep -E -v ':(\*+|\!+):' |awk -F ':' '{print $1}'|xargs -I {} -n 1 sudo chage -M 90 -W 15 {}

 二、身份鉴别

a) 应对登录的用户进行身份标识和鉴别,身份标识具有唯一性,身份鉴别信息具有复杂度要求并定期更换;

在linux,设置密码复杂度的方法有几个
1. 一个是在/etc/login.defs文件,里面几个选项
PASS_MAX_DAYS   90  #密码最长过期天数
PASS_MIN_DAYS   80  #密码最小过期天数
PASS_MIN_LEN    10  #密码最小长度
PASS_WARN_AGE   7   #密码过期警告天数2. 另外一个方法是,修改/etc/pam.d/system-auth文件
找到 password requisite pam_cracklib.so这么一行替换成如下:
password  requisite pam_cracklib.so retry=5  difok=3 minlen=10 ucredit=-1 lcredit=-3 dcredit=-3 dictpath=/usr/share/cracklib/pw_dict参数含义:
尝试次数:5
最少不同字符:3
最小密码长度:10
最少大写字母:1
最少小写字母:3
最少数字:3

b) 应具有登录失败处理功能,应配置并启用结束会话、限制非法登录次数和当登录连接超时自动退出等相关措施;

 1.备份相关文件:

cp /etc/pam.d/sshd /etc/pam.d/sshd.bak
cp /etc/pam.d/login /etc/pam.d/login.bak

2.检查是否有pam_tally2.so模块

[root@mycloud security]# find /lib* -iname "pam_tally2.so"
/lib64/security/pam_tally2.so
[root@mycloud security]# find /lib* -iname "pam_tally.so"
[root@mycloud security]# cat /etc/pam.d/sshd

3.终端登录失败处理功能

编辑系统/etc/pam.d/system-auth 文件,在 auth 字段所在的那一部分策 略下面添加如下策略参数:

auth required pam_tally2.so  onerr=fail  deny=3  unlock_time=40 even_deny_root root_unlock_time=30

说明:注意添加的位置,要写在第一行,即#%PAM-1.0的下面。以上策略表示:普通帐户和 root 的帐户登录连续 3 次失败,就统一锁定 40 秒, 40 秒后可以解锁。如果不想限制 root 帐户,可以把  even_deny_root root_unlock_time这两个参数去掉, root_unlock_time 表示 root 帐户的 锁定时间,onerr=fail 表示连续失败,deny=3,表示 超过3 次登录失败即锁定。

4.远程登录失败处理功能

上面只是限制了从终端登陆,如果想限制ssh远程的话, 要改的是/etc/pam.d/sshd这个文件,添加的内容跟上面一样!

如果在操作中间出现下面这个错误

Dec  7 15:06:51 iZ2zee7gmy40tbverl53rfZ sshd[15747]: PAM unable to dlopen(/lib64/security/pam_tally.so): /lib64/security/pam_tally.so: cannot open shared object file: No such file or directory
Dec  7 15:06:51 iZ2zee7gmy40tbverl53rfZ sshd[15747]: PAM adding faulty module: /lib64/security/pam_tally.so执行以下命令
[root@mycloud ~]# cd /lib64/security/
[root@mycloud ~]#ln -s pam_tally2.so pam_tally.so

5.配置连接超时自动退出功能

[root@mycloud /]$ cd ~
[root@mycloud ~]$ echo "TMOUT=300">>/etc/profile
[root@mycloud ~]$ source /etc/profile

 三、mysql数据库

1、修改默认的root用户

use mysql;
update user set user='admin' where user='root';
flush privileges;###以后登录的时候就是用  mysql -uadmin -p登录

2、添加审计功能

查看插件存放地:
mysql> show global variables like 'plugin_dir';把解压开的libaudit_plugin.so拷备到插件目录下,并且给与+x权限,修改为属主和组为mysql在解压开的utils目录下
[root@edu-mysql-02 utils]# pwd
/opt/audit-plugin-mysql-5.7-1.1.4-725/utils
[root@edu-mysql-02 utils]# chmod +x offset-extract.sh
[root@edu-mysql-02 opt]# which mysqld
/usr/sbin/mysqld
[root@edu-mysql-02 utils]# ./offset-extract.sh /usr/sbin/mysqld
获取到一串的数字,然后在/etc/my.cnf配置文件里面写入
plugin-load=AUDIT=libaudit_plugin.so
audit_offsets = 7824, 7872, 3632, 4792, 456, 360, 0, 32, 64, 160, 536, 7988, 4360, 3648, 3656, 3660, 6072, 2072, 8, 7056, 7096, 7080
audit_json_file = on
audit_record_cmds = 'insert,delete,update,create,drop,alter,grant,truncate'然后重启mysql
yum install gdb -y
然后再进入mysql
mysql> install plugin audit soname 'libaudit_plugin.so';验证:
mysql> show plugins;
mysql> show global status like 'AUDIT_version';
mysql> show variables like '%audit%'\G;一般审计日志放在了数据库的数据存放的路径上也可以修改
mysql > set global audit_json_log_file='你想放置的路径';缩减日志内容
mysql > set global audit_record_cmds = 'insert,delete,update';默认是所有的数据库 audit_record_objs=null可以修改只是审计几个数据库或者那些表
mysql > set global audit_record_objs = 'mysql.*,test.*';白名单,那个不审计
mysql > set global audit_whitelist_users = 'z';查看审计的内容
cat /data0/mysql-data/mysql-audit.json

3、mysql登录失败限制

###登录mysql管理用户后
install plugin CONNECTION_CONTROL soname 'connection_control.so';
install plugin CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS soname 'connection_control.so';###查看是否已经安装了插件,显示为CONNECTION_CONTROL等
show plugins;然后在/etc/my.cnf下添加
connection-control-failed-connections-threshold=5   #登陆失败次数限制
connection-control-min-connection-delay=1800000    #限制重试时间,此处为毫秒,注意按需求换算然后重启mysql再次登录查看
show variables like '%connection_control%';验证
输错5次后,第六次会发现第6次登录会卡住,限制登录

Linux等保三级整改相关推荐

  1. 阿里云官方推出操作系统“等保合规”镜像 -- Alibaba Cloud Linux 等保2.0三级版

    前言 Alibaba Cloud Linux 2(原Aliyun Linux 2)是阿里云操作系统团队为云应用场景打造的一款云操作系统.随其发展,使用该系统的用户对安全的需求也不断增加.另一方面,根据 ...

  2. 等保建设整改_等保三级必备网络安全设备

    一.等保整改内容包含哪些? 等保整改的内容主要是安全防护设备或系统的缝隙查看,只是在每个层面有针对性且有效地安置安全防备或检测系统,产生系统间的互利共赢,从而完成对安全性趋势的全方位感知才干.一般防御 ...

  3. 什么是等保三级?等保三级的认证流程有哪些?

    "等保三级"的概念很多人都听过,但并不知道具体是什么.本文中科三方针对等保三级的概念以及一些技术要求做下介绍. 什么是等级保护? 在认识等保三级之前,首先要了解我国的等级保护.等级 ...

  4. 等保三级,多级等保认证的一点了解

    2022年11月21日10:28:28 信息安全等级保护管理办法 信息系统的安全保护等级分为以下五级: 第一级,信息系统受到破坏后,会对公民.法人和其他组织的合法权益造成损害,但不损害国家安全.社会秩 ...

  5. 网站等保三级怎么做?手续是怎样的?

    现在网站上都有很多真实用户,并存储了一些重要信息,这些信息如被泄露,则会对网站产生重大影响,且对用户产生一定影响.因此部分网站需要过等保三级.这不很多网站负责人在问,网站等保三级怎么做?手续是怎样的? ...

  6. 等保三级收费-等保三级的办理流程

    等保三级收费-等保三级的办理流程 费用:二级系统测评费5万起,三级系统测评费7万起. 等级保护处理流程为: 1.深入调查:找出信息系统的基本数量,掌握信息系统的业务类型.应用或服务范围.系统结构等基本 ...

  7. 你说的等保3.0,是不是等保三级测评

    不懂等级保护的朋友,也许很容易出现这样的错误.不少首次咨询等保测评服务的朋友,很容易这样说,你好,我想做等保3.0,您这里可以帮忙吗?一听这哥们这样说话,我就知道他是不清楚信息安全等级保护或者网络安全 ...

  8. 等保三级安全要求简要攻略-安全物理环境

    之前有两篇文章写了为什么要做等保测评.等保测评的含义以及等保测评这份工作的一些职责和一些常见的FAQ,没有看过的朋友可以先去看下我的另外两篇文章:一起聊聊等保测评 和 一起聊聊等保测评工作内容以及FA ...

  9. 等保三级认证基本要求

    一.什么是等保测评? 企业单位委托经公安部认证的具有资质的测评机构,按照管理规范和技术标准,对相应的测评对象(信息系统)的状况进行测评. 1.安全技术测评:包括物理安全.网络安全.主机系统安全.应用安 ...

最新文章

  1. linux 查看ftp账户,linux的ftp服务之本地访问浏览与虚拟账户
  2. 关于催收那些事儿(下)
  3. Quartz-中断正在执行的任务
  4. 2017-2018-1 20155330 《信息安全系统设计基础》第11周学习总结
  5. org.hibernate.exception.SQLGrammarException: Error calling Driver#connect
  6. JS设计模式七:发布-订阅模式
  7. 移动开发(C#、VB.NET)Smobiler开发平台——GifView控件的使用方式
  8. J2EE软件开发视频教程
  9. 防止头文件重复包含之pragma once与#ifndef
  10. 底层软件工程师的一次冒险经历
  11. 超干货 | 2019秋招CV算法面经
  12. oracle11g scn 补丁,Oracle11g中SCN与TimeStamp的相互转换
  13. ID7S625高压逆变器驱动芯片
  14. 闲鱼x-sign, x-mini-wua算法签名接口调用
  15. SpringBoot配置SSL证书
  16. 共享网络打印机无法连接计算机,电脑中出现共享打印机连接错误问题的解决方法...
  17. 在线社交网络的影响力最大化算法
  18. 【洛谷 2958】木瓜的丛林
  19. 关于桌面程序被安全软件误判为HEUR:Trojan.Win32.Generic的解决方案
  20. 用matlab做随机实验1

热门文章

  1. 软考信息系统监理师:2016年4月22日作业
  2. 智能测试实践之路-UI缺陷检测
  3. 小米手机刷android one,小米手机(Mi One)刷机教程详解完整版 (刷MIUI官方刷机包)...
  4. .net中对象名无效问题解决
  5. 使用Python,OpenCV沿着轮廓寻找极值点
  6. 如何将旧手机soul聊天记录导入到新手机中
  7. kali虚拟机-----破解wifi密码(WiFi渗透)
  8. 基于tp5的免费开源企业官网系统
  9. VC++6.0安装、编译NTL类库
  10. Burpsuite简单代理配置