安全测试|服务器安全加固方法

在数字化时代,服务器主机安全是任何组织都必须高度重视的问题。无论是大型企业还是小型企业,无论是政府机构还是个人用户,都需要确保其服务器主机的安全,以防止数据泄露、网络攻击和系统瘫痪等严重后果。

1安全的重要性

  • 数据保护:服务器主机存储了大量的重要数据,包括客户信息、财务数据、商业策略等。这些数据如果被非法获取或破坏,将对组织造成巨大的损失。因此,保护服务器主机的安全是保护数据的重要措施。

  • 防止网络攻击:网络攻击者常常将服务器主机作为攻击目标,利用漏洞进行渗透,获取敏感信息,或者破坏系统。保护服务器主机的安全可以防止网络攻击,保护组织的网络安全。

  • 维护系统稳定:服务器主机是网络系统的核心,其稳定运行是保障网络服务正常运转的基础。一旦服务器主机受到攻击或出现故障,将导致网络服务的中断,给组织带来巨大的损失。

2安全加固方法与实例

1、环境说明

服务器:云服务器

操作系统:Centos7.9.2009(Core)

2、安全加固项目

  • 禁用账号SSH登陆

  • 端口调整

  • 防火墙调整

  • 密码策略

2.1禁用账号SSH登陆

禁用用户远程SSH登陆包括禁用root用户和禁用普通用户直接登陆

2.1.1禁用root远程ssh直接登陆

修改/etc/ssh/sshd_config文件

复制代码
#PermitRootLogin yes

修改为:

复制代码
PermitRootLogin no

重启ssh服务,重启后查看

复制代码
systemctl restart sshd.service

2.1.2禁用普通用户远程ssh直接登陆

打开配置文件/etc/ssh/sshd_config

复制代码
vim /etc/ssh/sshd_config

在文件末尾加入要禁用的信息

复制代码
DenyUsers yelflower

保存退出,重启ssh服务

复制代码
systemctl restart sshd.service

2.2修改SSH默认端口

ssh默认端口22,默认扫描的重灾区。将默认端口调整为不常用端口。建议10000~65536端口之间的随机端口,跟现有端口不冲突。

2.2.1 新增端口,后修改

2.2.2防火墙设置

需要将新增调整的端口在防火墙上开启策略

复制代码
#firewall-cmd --zone=public --add-port=31697/tcp --permanent#firewall-cmd --reload

2.2.3 SELinux中添加修改的SSH端口

安装SELinux管理工具semanage

复制代码
#yum provides semanage

安装semanage依赖工具包policycoreutils-python

复制代码
#yum -y install policycoretuils-python

查询ssh服务端口

复制代码
#semanage port -l | grep ssh

像SELinux中添加ssh端口

复制代码
#semanage port -a -t ssh_port_t -p tcp 31697

添加完毕查看端口,确认添加成功后,

重启ssh服务

复制代码
systemctl restart sshd.service

使用31697登陆测试,登陆成功后禁用22端口

2.3 防火墙设置

查看防火墙状态

复制代码
systemctl status firewalld

启动防火墙

复制代码
systemctl start firewalld

关闭防火墙

复制代码
systemctl stop firewalld

重启防火墙

复制代码
systemctl restart firewalld

查看防火墙端口

复制代码
firewall-cmd --list-port

新增端口

复制代码
firewall-cmd --zone=public --add-port=80/tcp --permanent

关闭端口

复制代码
firewall-cmd --zone=public --remove-port=80/tcp --permanent

重新加载

复制代码
firewall-cmd --reload

最小端口法,将不用的端口进行关闭,保留再用的端口,减少安全隐患。

2.4 密码策略

信息系统安全等级保护关于主机的访问控制有一个控制点是这样要求的:操作系统和数据库系统管理用户身份标识应具有不易被冒用的特点,口令应有复杂度要求并定期更换。

密码口令配置文件/etc/login.defs

修改如下:

复制代码
PASS_MAX_DAYS    90PASS_MIN_DAYS    5PASS_MIN_LEN    10PASS_WARN_AGE    7

配置信息查看

通过命令chage -l username来查看账户的配置信息。

这些配置并不对已有账户生效,只对新建账户生效。因此对于已有账户,一定要用chage命令进行逐一修改。

设置密码复杂度

一般要求口令由大小写字母、数字和字符共同组成。唯一的缘由就是这样的口令复杂度高,不容易被暴力破解。在/etc/pam.d/system-auth中添加配置如下:

复制代码
password    required     pam_cracklib.so retry=5 difok=3 minlen=10 ucredit=-1 lcredit=-1 dcredit=-1 

保存测试验证

新增用户

复制代码
#useadd yelflower#passwd yelflower

用户修改密码,必须得遵守设定的密码复杂度的规则。密码过于简单,系统会提示。这个配置要求密码长度10位以上,由至少1位大写、小写字母和数字组成。

登陆失败锁定设置

确认需要达到的效果

云服务器使用的是最小系统安装法,在ssh登陆时限制设置

配置命令

复制代码
auth   required   pam_tally2.so deny=5 lock_time=5 unlock_time=5 
相关推荐
2401_858286117 小时前
OS79.【Linux】POSIX信号量
linux·运维·服务器
公众号:fuwuqiBMC7 小时前
(转自“服务器BMC”)服务器BMC功能——DDR故障预测
运维·服务器·人工智能
Sagittarius_A*7 小时前
Command Injection 命令注入漏洞:系统命令拼接缺陷与执行利用技术
网络·安全·web安全·dvwa·命令注入漏洞
CodingPioneer7 小时前
03零刻Pro-LS2K3000-Loongnix 20.7.rc1硬盘分区、格式化、挂载与卸载
linux·运维·服务器·硬盘挂载
Huangjin007_8 小时前
【Linux 系统篇(三)】入门基础指令详解(三)
linux·服务器
谷禾牛博8 小时前
肠道菌群检测流程及差异和技术门槛在哪里?
数据库·经验分享·功能测试
Android洋芋8 小时前
漏洞挖掘与赏金攻略
网络·安全·web安全
Mico189 小时前
MySQL 8.0.35 源码编译安装笔记
数据库·笔记·mysql
开发小程序的之朴9 小时前
安企CMS的安装-PHPStudy(小皮面板)部署
windows·mysql·nginx