服务器安全配置检测
背景介绍
服务器安全配置是确保信息系统安全的关键步骤,一个未正确配置的服务器容易受到各种攻击,如数据泄露、恶意软件感染和未经授权的访问,进行全面的安全配置检测是保障系统安全性的重要环节。
基础安全配置检测
密码复杂度检测
系统版本:CentOS7/8
:设置密码最小长度为8-32位,至少包含小写字母、大写字母、数字、特殊字符中的三类或四类。
检测方式:
#!/usr/bin/env sh echo "检测是否符合密码复杂度要求" st1=cat /etc/security/pwquality.conf | grep minlen| grep -v '#'
st2=cat /etc/security/pwquality.conf | grep minclass| grep -v '#'
if [ -z "$st1" ] && [ -z "$st2" ]; then echo "检测结果为:未设置密码复杂度" elif [cat /etc/security/pwquality.conf | grep minlen| grep -v '#' |awk -F ' ' '{print $3}'
-gt 8 ] && [cat /etc/security/pwquality.conf | grep minclass| grep -v '#' |awk -F ' ' '{print $3}'
-gt 2 ]; then echo "检测结果为:密码复杂度符合要求" else echo "检测结果为:密码复杂度不符合要求" fi
rsyslog服务是否启用检测
系统版本:CentOS7/8
:确保rsyslog服务已启用,用于记录日志以供审计。
检测方式:
#!/usr/bin/env sh
echo "检测rsyslog服务是否启用"
rsyslog="active(running)"
rsyslogstatus=systemctl status rsyslog| grep Active | awk '{print$2$3}'
if [ "$rsyslogstatus" == "$rsyslog" ]; then
echo "检测结果为:rsyslog服务已启用"
else
echo "检测结果为:rsyslog服务未启用"
fi
禁止ROOT远程登录检测
系统版本:CentOS6/7/8
:在/etc/ssh/sshd_config
文件中,将PermitRootLogin
设置为no
。
检测方式:
#!/usr/bin/env sh echo "检测是否禁止ROOT远程登录" set -e cfgfile='/etc/ssh/sshd_config' if [ "cat ${cfgfile} | grep -E '^PermitRootLogin' | awk '{print $1}'
" == "#PermitRootLogin" -o "cat ${cfgfile} | grep '^PermitRootLogin'
" == "" -o "cat ${cfgfile} | grep '^PermitRootLogin' | awk '{print $2}'
" == "yes" ]; then echo "检测结果为:未禁止root远程登录" exit 1 else echo "检测结果为:已禁止root远程登录" exit 0 fi
进阶安全配置检测
禁止空密码登录检测
系统版本:CentOS6/7/8
:在/etc/ssh/sshd_config
文件中,将PermitEmptyPasswords
设置为no
。
检测方式:
#!/usr/bin/env sh echo "检测是否禁止空密码登录" set -e cfgfile='/etc/ssh/sshd_config' if [ "cat ${cfgfile} | grep 'PermitEmptyPasswords' | awk '{print $1}'
" == "#PermitEmptyPasswords" -o "cat ${cfgfile} | grep 'PermitEmptyPasswords'
" == "" -o "cat ${cfgfile} | grep 'PermitEmptyPasswords' | awk '{print $2}'
" == "yes" ]; then echo "检测结果为:未禁止空密码登录" exit 1 else echo "检测结果为:已禁止空密码登录" exit 0 fi
SSH访问限制检测
系统版本:CentOS6/7/8
:限制SSH访问来源IP地址范围。
检测方式:
#!/usr/bin/env sh
echo "检测SSH访问是否受限制"
set -e
cfgfile='/etc/ssh/sshd_config'
if [ "cat ${cfgfile} | grep 'AllowUsers' | awk '{print $1}'
" != "AllowUsers" ]; then
echo "检测结果为:SSH访问不受限制"
exit 1
else
echo "检测结果为:SSH访问受限制"
exit 0
fi
专业术语解释
1、minlen:密码最小长度。
2、minclass:密码必须包含的字符类别数。
3、rsyslog:一种日志系统,用于收集和存储系统的日志信息。
4、PermitRootLogin:控制是否允许root用户通过SSH远程登录。
5、PermitEmptyPasswords:控制是否允许空密码用户通过SSH登录。
6、AllowUsers:指定允许通过SSH登录的用户列表。
问题与解答
问题1:如何更改Linux服务器的SSH端口号?
答:可以通过修改/etc/ssh/sshd_config
文件中的Port
参数来更改SSH端口号,然后重新启动SSH服务,将默认的22端口改为2222:
sudo vi /etc/ssh/sshd_config 找到并修改以下行 Port 2222 保存并退出编辑器后,重启SSH服务 sudo systemctl restart sshd
确认更改后,使用新端口进行SSH连接。
问题2:如何确保服务器上的文件和目录权限设置合理?
答:合理的文件和目录权限设置可以有效防止未经授权的访问,以下是一些常见的权限设置建议:
根目录(/):只允许root用户访问。
用户主目录(/home/username):所有者完全控制,组用户和其他用户无权限。
网站目录(/var/www/html):Web服务器用户(如www-data)拥有读写权限,其他用户无权限。
日志目录(/var/log):日志服务用户(如adm)拥有读写权限,其他用户无权限。
以上内容就是解答有关“服务器安全配置检测”的详细内容了,我相信这篇文章可以为您解决一些疑惑,有任何问题欢迎留言反馈,谢谢阅读。
文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/19185.html<