Running Man (2021)|第559集|韩国综艺 - Viu
CentOS7系统检测和加固脚本
脚本来源:
https://github.com/xiaoyunjie/Shell_Script
主要是为了Linux系统的安全,通过脚本对Linux系统进行一键检测和一键加固
公众号后台回复:【安全加固脚本】获取脚本下载链接
1、系统检测脚本:CentOS_Check_Script.sh
#包含2个文件
CentOS_Check_Script.sh
README.txt
操作说明
#执行CentOS-Check_Script.sh脚本文件进行检查,命令格式如下
sh CentOS_Check_Script.sh | tee check_`date +%Y%m%d_%H%M%S`.txt
检查说明
此脚本是按三级等保要求,编写的一键检查脚本,此脚本只适合linux分支中的redhat、centos,运行脚本将结果输出到自定义的文件中,脚本结果需要人为检查。
此检查脚本包含以下几块内容:
- 系统基本信息
- 资源使用情况
- 系统用户情况
- 身份鉴别安全
- 访问控制安全
- 安全审计
- 剩余信息保护
- 入侵防范安全
- 恶意代码防范
- 资源控制安全
效果如下
[root@centos ~]# ll
total
-rw-------. 1 root root Nov : anaconda-ks.cfg
-rwxr-xr-x. 1 root root Apr 2 CentOS_Check_Script.sh
[root@centos ~]#
[root@centos ~]#
[root@centos ~]#
[root@centos ~]# sh CentOS_Check_Script.sh | tee check_`date +%Y%m%d_%H%M%S`.txt
##########################################################################
# #
# Epoint health check script #
# #
#警告:本脚本只是一个检查的操作,未对服务器做任何修改,管理员可以根据此报告 #
#进行相应的安全整改 #
##########################################################################
##########################################################################
# #
# 主机安全检测 #
# #
##########################################################################
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>系统基本信息<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
主机名: centos.walkingcloud.cn
系统名称: CentOS Linux
系统版本: (Core)
内核版本: .el7.x86_64
系统类型: x86_64
本机IP地址: /
CPU型号: AMD Ryzen 7 5800X 8-Core Processor
CPU核数: 8
机器型号: Product Name: VMware Virtual Platform Product Name: 440BX Desktop Reference Platform
系统时间: Sun Nov :: CST
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>资源使用情况<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
总内存大小: 7.6G
已使用内存大小: 406M
可使用内存大小: 7.1G
系统运行时间: up 3 min, 1
系统负载: , ,
=============================dividing line================================
内存状态:
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 0 0 0 4 0 1 0 0
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
=============================dividing line================================
僵尸进程:
>>>无僵尸进程
=============================dividing line================================
耗CPU最多的进程:
root ? Ss : 0: /usr/lib/systemd/systemd-udevd
root 1 ? Ss : 0: /usr/lib/systemd/systemd --switched-root --system --deserialize
root ? Ssl : 0: /usr/bin/python2 -Es /usr/sbin/firewalld --nofork --nopid
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 0 0 ? S< : 0: \_ [deferwq]
=============================dividing line================================
耗内存最多的进程:
root ? Ssl : 0: /usr/bin/python2 -Es /usr/sbin/firewalld --nofork --nopid
root ? Ssl : 0: /usr/bin/python2 -Es /usr/sbin/tuned -l -P
root ? Ssl : 0: /usr/sbin/NetworkManager --no-daemon
polkitd ? Ssl : 0: /usr/lib/polkit-1/polkitd --no-debug
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
=============================dividing line================================
环境变量:
XDG_SESSION_ID=1
HOSTNAME=centos.walkingcloud.cn
SELINUX_ROLE_REQUESTED=
SHELL=/bin/bash
TERM=xterm-256color
HISTSIZE=
SSH_CLIENT=
SELINUX_USE_CURRENT_RANGE=
SSH_TTY=/dev/pts/0
USER=root
LS_COLORS=rs=0:di=;5;:ln=;5;:mh=;;5;:pi=;;5;:so=;5;:do=;5;5:bd=;5;;;5;:cd=;5;;;5;3:or=;5;;;5;9:mi=;;5;;;5;:su=;5;;;5;:sg=;5;;;5;:ca=;5;;;5;:tw=;5;;;5;:ow=;5;;;5;:st=;5;;;5;:ex=;5;:*.tar=;5;9:*.tgz=;5;9:*.arc=;5;9:*.arj=;5;9:*.taz=;5;9:*.lha=;5;9:*.lz4=;5;9:*.lzh=;5;9:*.lzma=;5;9:*.tlz=;5;9:*.txz=;5;9:*.tzo=;5;9:*.t7z=;5;9:*.zip=;5;9:*.z=;5;9:*.Z=;5;9:*.dz=;5;9:*.gz=;5;9:*.lrz=;5;9:*.lz=;5;9:*.lzo=;5;9:*.xz=;5;9:*.bz2=;5;9:*.bz=;5;9:*.tbz=;5;9:*.tbz2=;5;9:*.tz=;5;9:*.deb=;5;9:*.rpm=;5;9:*.jar=;5;9:*.war=;5;9:*.ear=;5;9:*.sar=;5;9:*.rar=;5;9:*.alz=;5;9:*.ace=;5;9:*.zoo=;5;9:*.cpio=;5;9:*.7z=;5;9:*.rz=;5;9:*.cab=;5;9:*.jpg=;5;:*.jpeg=;5;:*.gif=;5;:*.bmp=;5;:*.pbm=;5;:*.pgm=;5;:*.ppm=;5;:*.tga=;5;:*.xbm=;5;:*.xpm=;5;:*.tif=;5;:*.tiff=;5;:*.png=;5;:*.svg=;5;:*.svgz=;5;:*.mng=;5;:*.pcx=;5;:*.mov=;5;:*.mpg=;5;:*.mpeg=;5;:*.m2v=;5;:*.mkv=;5;:*.webm=;5;:*.ogm=;5;:*.mp4=;5;:*.m4v=;5;:*.mp4v=;5;:*.vob=;5;:*.qt=;5;:*.nuv=;5;:*.wmv=;5;:*.asf=;5;:*.rm=;5;:*.rmvb=;5;:*.flc=;5;:*.avi=;5;:*.fli=;5;:*.flv=;5;:*.gl=;5;:*.dl=;5;:*.xcf=;5;:*.xwd=;5;:*.yuv=;5;:*.cgm=;5;:*.emf=;5;:*.axv=;5;:*.anx=;5;:*.ogv=;5;:*.ogx=;5;:*.aac=;5;:*.au=;5;:*.flac=;5;:*.mid=;5;:*.midi=;5;:*.mka=;5;:*.mp3=;5;:*.mpc=;5;:*.ogg=;5;:*.ra=;5;:*.wav=;5;:*.axa=;5;:*.oga=;5;:*.spx=;5;:*.xspf=;5;:
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
MAIL=/var/spool/mail/root
PWD=/root
LANG=en_US.UTF-8
SELINUX_LEVEL_REQUESTED=
HISTCONTROL=ignoredups
HOME=/root
SHLVL=2
LOGNAME=root
SSH_CONNECTION=
LESSOPEN=||/usr/bin/lesspipe.sh %s
XDG_RUNTIME_DIR=/run/user/0
HISTTIMEFORMAT=%Y-%m-%d %H:%M:%S
_=/usr/bin/env
=============================dividing line================================
路由表:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
UG 0 0 ens33
U 0 0 ens33
=============================dividing line================================
监听端口:
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 : :* LISTEN /sshd
tcp 0 0 : :* LISTEN /master
tcp6 0 0 ::: :::* LISTEN /sshd
tcp6 0 0 ::1: :::* LISTEN /master
udp 0 0 : :* /dhclient
=============================dividing line================================
当前建立的连接:
ESTABLISHED 1
=============================dividing line================================
开机启动的服务:
abrt-ccpp.service enabled
abrt-oops.service enabled
abrt-vmcore.service enabled
abrt-xorg.service enabled
abrtd.service enabled
auditd.service enabled
autovt@.service enabled
crond.service enabled
dbus-org.fedoraproject.FirewallD1.service enabled
dbus-org.freedesktop.nm-dispatcher.service enabled
firewalld.service enabled
getty@.service enabled
irqbalance.service enabled
kdump.service enabled
lvm2-monitor.service enabled
microcode.service enabled
NetworkManager-dispatcher.service enabled
NetworkManager-wait-online.service enabled
NetworkManager.service enabled
postfix.service enabled
rhel-autorelabel-mark.service enabled
rhel-autorelabel.service enabled
rhel-configure.service enabled
rhel-dmesg.service enabled
rhel-domainname.service enabled
rhel-import-state.service enabled
rhel-loadmodules.service enabled
rhel-readonly.service enabled
rsyslog.service enabled
sshd.service enabled
sysstat.service enabled
systemd-readahead-collect.service enabled
systemd-readahead-drop.service enabled
systemd-readahead-replay.service enabled
tuned.service enabled
vgauthd.service enabled
vmtoolsd.service enabled
dm-event.socket enabled
lvm2-lvmetad.socket enabled
lvm2-lvmpolld.socket enabled
default.target enabled
multi-user.target enabled
remote-fs.target enabled
runlevel2.target enabled
runlevel3.target enabled
runlevel4.target enabled
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>系统用户情况<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
活动用户:
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 : 9.00s 0.02s 0.00s tail -n +2
=============================dividing line================================
系统所有用户:
root:x:0:0
bin:x:1:1
daemon:x:2:2
adm:x:3:4
lp:x:4:7
sync:x:5:0
shutdown:x:6:0
halt:x:7:0
mail:x:8:
operator:x::0
games:x::
ftp:x::
nobody:x::
systemd-network:x::
dbus:x::
polkitd:x::
tss:x::
abrt:x::
sshd:x::
postfix:x::
=============================dividing line================================
系统所有组:
root:x:0
bin:x:1
daemon:x:2
sys:x:3
adm:x:4
tty:x:5
disk:x:6
lp:x:7
mem:x:8
kmem:x:9
wheel:x:
cdrom:x:
mail:x:
man:x:
dialout:x:
floppy:x:
games:x:
tape:x:
video:x:
ftp:x:
lock:x:
audio:x:
nobody:x:
users:x:
utmp:x:
utempter:x:
stapusr:x:
stapsys:x:
stapdev:x:
input:x:
systemd-journal:x:
systemd-network:x:
dbus:x:
polkitd:x:
ssh_keys:x:
tss:x:
abrt:x:
sshd:x:
postdrop:x:
postfix:x:
=============================dividing line================================
当前用户的计划任务:
no crontab for root
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>身份鉴别安全<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
>>>密码复杂度:已设置
=============================dividing line================================
>>>(root) 是一个未被锁定的账户,请管理员检查是否是可疑账户--------[需调整]
=============================dividing line================================
>>>密码过期天数是天,请管理员改成天------[需调整]
=============================dividing line================================
>>>登入失败处理:未开启,请加固登入失败锁定功能----------[需调整]
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>访问控制安全<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
系统中存在以下非系统默认用户:
>>>/etc/passwd里面的polkitd的UID为,该账户非系统默认账户,请管理员确认是否为可疑账户--------[需调整]
=============================dividing line================================
系统特权用户:
root
=============================dividing line================================
系统中空口令账户:
systemd-network该账户为空口令账户,请管理员确认是否为新增账户,如果为新建账户,请配置密码-------[需调整]
dbus该账户为空口令账户,请管理员确认是否为新增账户,如果为新建账户,请配置密码-------[需调整]
polkitd该账户为空口令账户,请管理员确认是否为新增账户,如果为新建账户,请配置密码-------[需调整]
tss该账户为空口令账户,请管理员确认是否为新增账户,如果为新建账户,请配置密码-------[需调整]
abrt该账户为空口令账户,请管理员确认是否为新增账户,如果为新建账户,请配置密码-------[需调整]
sshd该账户为空口令账户,请管理员确认是否为新增账户,如果为新建账户,请配置密码-------[需调整]
postfix该账户为空口令账户,请管理员确认是否为新增账户,如果为新建账户,请配置密码-------[需调整]
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>安全审计<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
正常情况下登录到本机天内的所有用户的历史记录:
root pts/0 Sun Nov : still logged in
reboot system boot .el7. Sun Nov : - : (:)
root pts/0 Sat Nov : - crash (7+:)
root pts/0 Sat Nov : - : (:)
root tty1 Sat Nov : - : (:)
reboot system boot .el7. Sat Nov : - : (7+:)
wtmp begins Sat Nov ::
=============================dividing line================================
查看syslog日志审计服务是否开启:
Redirecting to /bin/systemctl status rsyslog.service
Active: active (running) since Sun :: CST; 3min 7s ago
>>>经分析,syslog服务已开启
=============================dividing line================================
查看syslog日志是否开启外发:
>>>经分析,客户端syslog日志未开启外发---------[无需调整]
=============================dividing line================================
审计的要素和审计日志:
*.info;mail.none;authpriv.none;cron.none /var/log/messages
authpriv.* /var/log/secure
mail.* -/var/log/maillog
cron.* /var/log/cron
*.emerg :omusrmsg:*
uucp,news.crit /var/log/spooler
local7.* /var/log/boot.log
=============================dividing line================================
系统中关键文件修改时间:
>>>文件名:/bin/ls 最后修改时间:Aug
>>>文件名:/bin/ps 最后修改时间:Oct :
>>>文件名:/bin/login 最后修改时间:Oct :
>>>文件名:/etc/shadow 最后修改时间:Nov :
>>>文件名:/etc/passwd 最后修改时间:Nov :
###############################################################################################
# ls文件:是存储ls命令的功能函数,被删除以后,就无法执行ls命令 #
# login文件:login是控制用户登录的文件,一旦被篡改或删除,系统将无法切换用户或登陆用户 #
# /etc/passwd是一个文件,主要是保存用户信息 #
# /bin/ps 进程查看命令功能支持文件,文件损坏或被更改后,无法正常使用ps命令 #
# /etc/shadow是/etc/passwd的影子文件,密码存放在该文件当中,并且只有root用户可读 #
###############################################################################################
=============================dividing line================================
检查重要日志文件是否存在:
>>>/var/log/secure日志文件存在
>>>/var/log/messages日志文件存在
>>>/var/log/cron日志文件存在
>>>/var/log/boot.log日志文件存在
>>>/var/log/dmesg日志文件存在
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>剩余信息保护<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
分区情况:
如果磁盘空间利用率过高,请及时调整---------[需调整]
Filesystem Size Used Avail Use% Mounted on
devtmpfs 3.8G 0 3.8G 0% /dev
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 3.9G 12M 3.8G 1% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/mapper/centos-root 74G 2.1G 68G 3% /
/dev/sda1 976M 121M 789M % /boot
/dev/mapper/centos-opt 24G 45M 23G 1% /opt
tmpfs 781M 0 781M 0% /run/user/0
=============================dividing line================================
可用块设备信息:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 100G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 99G 0 part
├─centos-root :0 0 75G 0 lvm /
└─centos-opt :1 0 24G 0 lvm /opt
sr0 :0 1 1024M 0 rom
=============================dividing line================================
文件系统信息:
/dev/mapper/centos-root / ext4 defaults 1 1
UUID=b76e122d--43ac-835c-5b3de7d1678e /boot ext4 defaults 1 2
/dev/mapper/centos-opt /opt ext4 defaults 1 2
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>入侵防范安全<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
系统入侵行为:
>>>无入侵行为
=============================dividing line================================
用户错误登入列表:
>>>用户错误登入--------[需调整]
btmp begins Sun Nov ::
=============================dividing line================================
ssh暴力登入信息:
>>>无ssh暴力登入信息
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>恶意代码防范<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
检查是否安装病毒软件:
no crontab for root
>>>未安装ClamAV杀毒软件,请部署杀毒软件加固主机防护--------[无需调整]
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>资源控制安全<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
查看是否开启了xinetd服务:
>>>xinetd服务未开启-------[无需调整]
=============================dividing line================================
查看是否开启了ssh服务:
Redirecting to /bin/systemctl status sshd.service
Active: active (running) since Sun :: CST; 3min 7s ago
Nov :: centos.walkingcloud.cn sshd[]: Server listening on port .
Nov :: centos.walkingcloud.cn sshd[]: Server listening on :: port .
>>>SSH服务已开启
=============================dividing line================================
查看是否开启了Telnet-Server服务:
>>>Telnet-Server服务未开启--------[无需调整]
=============================dividing line================================
root ? Ssl : 0: /usr/bin/python2 -Es /usr/sbin/firewalld --nofork --nopid
>>>防火墙已启用
=============================dividing line================================
查看系统SSH远程访问设置策略(host.deny拒绝列表):
>>>远程访问策略未设置--------[无需调整]
=============================dividing line================================
查看系统SSH远程访问设置策略(hosts.allow允许列表):
>>>远程访问策略未设置--------[无需调整]
=============================dividing line================================
当hosts.allow和host.deny相冲突时,以hosts.allow设置为准
=============================dividing line================================
>>>未设置登入超时限制,请设置,设置方法:在/etc/profile或者/etc/bashrc里面添加参数TMOUT= --------[需调整]
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>end<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
2、 加固脚本:Protective_Script
#包含2个文件
CentOS_Protective_Script.sh
README.txt
操作说明
#执行CentOS_Protective_Script.sh脚本文件进行加固,命令格式如下
sh CentOS_Protective_Script.sh
#执行完成后,请按脚本提示重启相应服务
功能说明
- 一键进行全部加固
- 设置密码复杂度
- 添加eproot账号
- 禁止root远程登入
- 设置history保存行数以及命令时间,设置窗口超时时间
- 更改SSH端口
- 登入失败处理
- 还原配置文件
效果如下
sh CentOS_Protective_Script.sh
###########################################################################################
OS type is centos
###########################################################################################
###########################################################################################
Auto backup successfully
###########################################################################################
#########################################################################################
# Menu #
# 1:ALL protective #
# 2:Set Password Complexity Requirements #
# 3:Create eproot account #
# 4:Set Remote Login Configuration(SSH) #
# 5:Set Shell History and TMOUT #
# 6:Set SSH Port #
# 7:Set Logon failure handling #
# 8:Recover Configuration #
# 9:Exit #
#########################################################################################
Please choice[]:1
#########################################################################################
2、 set password complexity requirements
#########################################################################################
密码修改重试3次机会,新密码与老密码必须有3字符不同,最小密码长度个字符,包含大写字符至少一个,小写字母至少一个,数字至少一个,特殊字符至少一个
[Password complexity set success]
#########################################################################################
3、Create eproot account
#########################################################################################
Be sure to create an eproot account?[y/n]:y
Please enter your password:yuanfan@
eproot account created successfully
[Permissions set success]
#########################################################################################
4、Set Remote Login Configuration(SSH)
#########################################################################################
[Success: Set SSH Protocol to 2]
Disable root remote login?[y/n](Please make sure you have created at least one another account):n
#########################################################################################
5、set history and timeout
#########################################################################################
set history size, format, and TMOUT?[y/n]:y
HISTSIZE has been set to
HISTTIMEFORMAT has been set to Number-Time-User-Command
set shell TMOUT?[]seconds:
[Success]
#########################################################################################
6、set ssh port
#########################################################################################
change ssh port?[y/n]:n
#########################################################################################
7、set logon failure handling
#########################################################################################
Are you sure set logon failure handling?[y/n]:y
#########################################################################################
[Logon failure handling set success]
限制登入失败三次,普通账号锁定5分钟,root账号锁定5分钟
#########################################################################################
截图如下
(图片可放大查看)
(图片可放大查看)
WalkingCloud公众号后台回复:【安全加固脚本】获取脚本下载链接