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

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

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 
相关推荐
G311354227319 小时前
大模型不可用时,业务还能不能继续:企业需要设计降级方案
大数据·服务器·数据库·人工智能·深度学习
码农颜19 小时前
5.2.2 隔离级别
数据库·mysql
骇客野人20 小时前
MySQL 信创化迁移至 PolarDB-X 整体实施方案
数据库·mysql
小陈同学!!20 小时前
防火墙双机热备实验
运维·服务器
tianyuanwo20 小时前
DevOps主机管理员视角:企业级Linux主机权限管理策略与实践
linux·服务器·devops
三言老师20 小时前
CentOS8 Firewalld 高级规则中级实操教程
linux·运维·服务器·网络·centos
云贝贝贝1 天前
OceanBase认证体系介绍与备考指南
运维·服务器·oceanbase·1024程序员节
tedcloud1231 天前
Impeccable 部署指南:开源前端设计工具 Linux 环境搭建实践
linux·运维·服务器·前端·人工智能·开源
Hrain-AI1 天前
2026企业AI Agent本地化落地:6平台横评+搭建步骤+成本模板
服务器·网络·人工智能
保卫大狮兄1 天前
设备利用率低,到底是设备问题还是排产问题?
大数据·运维·服务器