欢迎来到上海木辰信息科技有限公司!我司专业做企业邮箱、网站建设、网站设计、云服务器、域名注册等互联网业务。

服务器安全防护的具体措施有哪些?

作者:author    发布时间:2025-10-09 20:18:08  访问量:6  

服务器安全防护的具体措施有哪些?

服务器是网站与应用的核心承载载体,其安全直接决定了业务稳定性与数据安全性。以下是从账户权限、网络访问、系统加固、数据防护、监控审计五大维度出发的具体防护措施,包含可落地的配置示例,适用于 Linux(如 CentOS、Ubuntu)和 Windows Server 主流系统。

一、账户与权限安全:从源头阻断非授权访问

服务器的账户权限失控是最危险的安全隐患之一,需通过 “最小权限原则” 和 “强身份验证” 严格管控。

1. 禁用 / 加固超级管理员账户

Linux 系统(以 CentOS 为例):

禁用 root 直接登录 SSH:编辑 SSH 配置文件 /etc/ssh/sshd_config,将 PermitRootLogin 改为 no,保存后重启 SSH 服务:systemctl restart sshd。

创建普通管理员账户:执行 useradd admin(创建账户)→ passwd admin(设置密码,需满足 “12 位 + 大小写 + 数字 + 特殊符号”)→ 赋予 sudo 权限:usermod -aG sudo admin(仅允许通过sudo执行高权限操作)。

Windows Server 系统:

重命名默认 Administrator 账户:打开 “计算机管理→本地用户和组→用户”,右键 Administrator→重命名(如改为 “ServerAdmin”),避免黑客暴力破解默认账户名。

禁用 Guest 账户:同上路径,右键 Guest 账户→属性→勾选 “账户已禁用”,防止匿名访问。

2. 强化身份验证方式

优先使用 SSH 密钥登录(Linux):

本地生成密钥对:Windows 用 PuTTYgen,macOS/Linux 执行 ssh-keygen -t rsa -b 4096(4096 位加密,比 2048 位更安全),一路回车不设置密码(或设置密钥密码进一步加固)。

上传公钥到服务器:ssh-copy-id admin@服务器IP(输入 admin 账户密码),公钥会自动保存到服务器 /home/admin/.ssh/authorized_keys。

禁用密码登录:编辑 /etc/ssh/sshd_config,将 PasswordAuthentication 改为 no,重启 SSH 服务 systemctl restart sshd,后续仅能通过密钥登录。

设置账户密码策略(Windows/Linux 通用):

Linux:编辑 /etc/login.defs,设置 PASS_MAX_DAYS 90(密码有效期 90 天)、PASS_MIN_LEN 12(最小密码长度 12 位)、PASS_COMPLEXITY_CHECKS 1(启用复杂度检查)。

Windows:通过 “组策略→计算机配置→Windows 设置→安全设置→账户策略→密码策略”,启用 “密码必须符合复杂性要求”“密码最长使用期限 90 天”“强制密码历史 5 次”(避免重复使用旧密码)。

3. 清理无用账户与权限

定期检查服务器账户:Linux 执行 cat /etc/passwd 查看所有账户,Windows 在 “计算机管理→用户” 中检查,删除长期未使用(如超过 3 个月)、用途不明的账户。

限制文件 / 目录权限:Linux 重要目录设置严格权限,如 /etc/passwd 权限设为 644(所有者读 / 写,其他只读)、/bin/su 权限设为 4755(仅 root 可修改);Windows 通过 “文件夹属性→安全”,移除普通账户对 C:\Windows、C:\Program Files 的 “写入 / 修改” 权限。

二、网络访问控制:只开放必要端口与服务

服务器的网络端口是外部攻击的 “入口”,需通过防火墙和服务管理,关闭所有非必要端口,限制访问来源。

1. 配置防火墙(核心措施)

(1)Linux 系统(以 firewalld 为例,替代旧版 iptables)

查看当前开放端口:firewall-cmd --list-ports。

仅开放必要端口(示例:Web 服务 80/443、SSH 22):

bash

# 开放80(HTTP)、443(HTTPS)、22(SSH)端口

firewall-cmd --add-port=80/tcp --permanent

firewall-cmd --add-port=443/tcp --permanent

firewall-cmd --add-port=22/tcp --permanent

# (可选)限制SSH仅允许特定IP访问(如管理员办公IP 192.168.1.100)

firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="22" accept' --permanent

# 移除所有无用端口(如FTP 21、Telnet 23)

firewall-cmd --remove-port=21/tcp --permanent

firewall-cmd --remove-port=23/tcp --permanent

# 重启防火墙生效

firewall-cmd --reload

禁用 ICMP ping(防止被扫描):firewall-cmd --add-icmp-block=echo-request --permanent,重启防火墙。

(2)Windows Server 系统(高级防火墙)

打开 “控制面板→系统和安全→Windows Defender 防火墙→高级设置”。

入站规则:禁用所有 “默认允许” 规则,手动新建规则:

允许 TCP 80/443 端口(Web 服务):规则类型选 “端口”→协议 TCP→特定本地端口填 “80.443”→允许连接→适用场景选 “域、专用、公用”→命名为 “允许 Web 服务”。

限制 SSH(若安装 OpenSSH):新建规则允许 TCP 22 端口,在 “作用域”→“远程 IP 地址” 中仅添加管理员 IP(如 192.168.1.100),拒绝其他 IP 访问。

出站规则:仅允许必要服务(如 DNS、HTTPS),禁止服务器主动连接外部可疑 IP(如批量封禁境外 IP 段)。

2. 关闭无用服务

Linux 系统:

查看运行中的服务:systemctl list-units --type=service --state=running。

禁用无用服务(如 FTP 服务 vsftpd、Telnet 服务 telnet、邮件服务 postfix):

bash

systemctl stop vsftpd # 停止服务

systemctl disable vsftpd # 禁止开机自启

systemctl stop postfix

systemctl disable postfix

Windows Server 系统:

打开 “服务”(运行 services.msc),找到 “FTP Publishing Service”“Telnet”“Simple Mail Transfer Protocol (SMTP)” 等无用服务,将 “启动类型” 改为 “禁用”,并点击 “停止” 服务。

禁用 “远程桌面服务”(若无需远程桌面):右键 “此电脑→属性→远程设置”,取消勾选 “允许远程协助连接到此计算机” 和 “允许远程连接到此计算机”。

网站建设

三、系统加固:修复漏洞与禁用危险功能

服务器系统本身可能存在漏洞(如操作系统漏洞、Web 服务器漏洞),需通过更新、配置优化降低风险。

1. 定期更新系统与组件

Linux 系统:

CentOS/RHEL:yum update -y(更新所有软件包),更新后重启(重要内核更新需重启生效)。

Ubuntu/Debian:apt update && apt upgrade -y。

建议设置自动更新:CentOS 安装 yum-cron(yum install yum-cron -y),编辑 /etc/yum/yum-cron.conf,将 apply_updates = no 改为 yes,启动服务 systemctl start yum-cron && systemctl enable yum-cron。

Windows Server 系统:

打开 “设置→更新和安全→Windows 更新”,开启 “自动下载更新,包括更新后重启”,确保及时修复系统漏洞(如永恒之蓝等高危漏洞)。

安装 “Windows Server Update Services(WSUS)”(企业级场景),统一管理多台服务器的更新,避免遗漏。

2. 禁用危险系统功能

Linux 系统:

禁用 SUID/SGID 权限(防止普通用户通过特殊权限执行高危命令):执行 find / -perm -4000 -o -perm -2000 查找带 SUID/SGID 的文件,对非必要文件(如 /usr/bin/find)移除权限:chmod u-s /usr/bin/find。

禁用 ICMP 重定向(防止路由欺骗):编辑 /etc/sysctl.conf,添加 net.ipv4.conf.all.accept_redirects = 0、net.ipv4.conf.default.accept_redirects = 0.执行 sysctl -p 生效。

Windows Server 系统:

禁用 “CMD 命令提示符” 和 “PowerShell” 的非授权使用:通过组策略 “用户配置→管理模板→系统”,启用 “阻止访问命令提示符”“阻止访问 PowerShell”,仅对管理员账户例外。

启用 “数据执行保护(DEP)”:右键 “此电脑→属性→高级系统设置→性能→设置→数据执行保护”,选择 “为所有程序和服务启用 DEP,除了我选择的程序”,防止恶意代码执行。

3. 加固 Web 服务器(Nginx/Apache/IIS)

Nginx(Linux):

隐藏版本号:编辑 /etc/nginx/nginx.conf,在 http 块中添加 server_tokens off;,重启 Nginx:systemctl restart nginx,避免泄露版本信息被针对性攻击。

禁用目录浏览:在虚拟主机配置中(如 /etc/nginx/conf.d/default.conf),确保 autoindex off;(默认关闭,若开启需手动禁用),防止目录文件被遍历。

Apache(Linux):

隐藏版本号:编辑 /etc/httpd/conf/httpd.conf,添加 ServerTokens Prod、ServerSignature Off,重启 Apache:systemctl restart httpd。

限制请求频率:安装 mod_evasive 模块(防 CC 攻击),配置 DOSHashTableSize 3097、DOSPageCount 20(同一 IP 10 秒内请求 20 次触发限制)。

四、数据防护:防止数据泄露与丢失

服务器存储的业务数据、用户信息需通过加密、备份双重防护,确保 “不泄露、不丢失”。

1. 数据加密存储

Linux 系统(文件系统加密):

对敏感数据目录(如 /data)加密:使用 cryptsetup 工具创建加密分区,步骤:

bash

yum install cryptsetup -y # 安装工具

cryptsetup luksFormat /dev/sdb1 # 对磁盘分区/dev/sdb1加密(需输入密码)

cryptsetup luksOpen /dev/sdb1 encrypted_data # 解锁分区

mkfs.ext4 /dev/mapper/encrypted_data # 格式化加密分区

mount /dev/mapper/encrypted_data /data # 挂载到/data目录

配置开机自动解锁:编辑 /etc/crypttab,添加 encrypted_data /dev/sdb1 /root/keyfile luks(/root/keyfile 为加密密钥文件,需设置权限 chmod 600 /root/keyfile)。

Windows Server 系统:

启用 BitLocker 加密:右键磁盘(如 D 盘)→“启用 BitLocker”,选择 “使用密码解锁驱动器”,设置复杂密码,备份恢复密钥(存储到安全位置,避免密码丢失后无法解密)。

2. 定期数据备份

Linux 系统(数据库 + 文件备份):

编写备份脚本(如备份 MySQL 数据库和 /var/www/html 网站目录):

bash

#!/bin/bash

BACKUP_DIR=/backup

DATE=$(date +%Y%m%d)

# 备份MySQL(需提前配置.my.cnf免密登录)

mysqldump -u root --all-databases > $BACKUP_DIR/mysql_backup_$DATE.sql

# 备份网站目录

tar -zcvf $BACKUP_DIR/www_backup_$DATE.tar.gz /var/www/html

# 删除7天前的备份(避免磁盘占满)

find $BACKUP_DIR -name "*.sql" -mtime +7 -delete

find $BACKUP_DIR -name "*.tar.gz" -mtime +7 -delete

设置定时任务:执行 crontab -e,添加 0 2 * * * /root/backup.sh(每天凌晨 2 点执行备份)。

Windows Server 系统:

使用 “Windows Server Backup” 工具:打开 “服务器管理器→工具→Windows Server Backup”,创建备份计划,选择 “备份目标”(如外接硬盘、网络共享文件夹),设置 “每日备份”,勾选需要备份的磁盘 / 目录。

五、监控与审计:及时发现异常行为

服务器安全需 “防患于未然”,通过实时监控和日志审计,及时发现暴力破解、异常登录、文件篡改等风险。

1. 实时监控工具

Linux 系统:

安装 fail2ban(防 SSH 暴力破解):yum install fail2ban -y,编辑 /etc/fail2ban/jail.local,配置:

ini

[sshd]

enabled = true

port = ssh

filter = sshd

logpath = /var/log/secure

maxretry = 5 # 5次失败登录后封禁

bantime = 3600 # 封禁1小时(单位:秒)

启动服务:systemctl start fail2ban && systemctl enable fail2ban,查看封禁列表:fail2ban-client status sshd。

安装 htop(监控系统资源)、iftop(监控网络流量),实时查看 CPU、内存、带宽使用情况,发现异常占用(如 CPU 突然 100%)及时排查。

Windows Server 系统:

使用 “性能监视器”(运行 perfmon.msc),添加 “CPU 使用率”“内存使用率”“网络发送 / 接收速率” 等计数器,设置阈值告警(如 CPU>90% 时发送邮件通知)。

安装 “Microsoft Defender for Endpoint”(企业级),实时检测恶意软件、异常进程,自动隔离威胁文件。

2. 日志审计

Linux 系统:

重要日志路径:/var/log/secure(SSH 登录日志)、/var/log/messages(系统日志)、/var/log/nginx/access.log(Nginx 访问日志)。

定期查看日志:执行 grep "Failed password" /var/log/secure 查看 SSH 失败登录记录,若发现大量来自同一 IP 的失败请求,通过防火墙封禁该 IP。

日志归档:配置 logrotate(默认已安装),自动切割日志(避免单日志文件过大),保留 30 天日志供审计。

Windows Server 系统:

查看安全日志:打开 “事件查看器→Windows 日志→安全”,筛选 “事件 ID”:4625(账户登录失败)、4624(账户登录成功)、4672(管理员登录),若发现异常登录(如异地 IP 登录),立即修改账户密码。

启用日志审核:通过组策略 “计算机配置→Windows 设置→安全设置→本地策略→审核策略”,启用 “审核账户登录事件”“审核对象访问”“审核进程跟踪”,确保所有关键操作都被记录。

六、补充:云服务器额外防护(如阿里云、AWS)

若使用云服务器,需结合云厂商提供的安全工具进一步加固:

启用安全组:云服务器的 “第一道防火墙”,优先级高于系统防火墙,仅开放 80/443/22 端口,限制来源 IP。

使用云盾 / 安全中心:阿里云 “云盾”、AWS “GuardDuty” 可自动检测暴力破解、Web 攻击,提供漏洞扫描、基线检查功能。

避免公网暴露数据库:将 MySQL、Redis 等数据库部署在 “私有网络(VPC)”,不分配公网 IP,通过应用服务器(如 Nginx)间接访问,防止数据库被直接攻击。

通过以上措施,可构建服务器的 “多层防护体系”,从账户、网络、系统、数据、监控多维度降低安全风险。若你使用特定系统(如 Ubuntu Server、Windows Server 2022)或有特殊场景(如数据库服务器、邮件服务器),可告诉我,我会提供更针对性的配置方案!




声明:本文由收集整理的《服务器安全防护的具体措施有哪些?》,如转载请保留链接:http://www.mcexmail.com/news_in/5191

点赞  0  来源:木辰建站

上一篇:网站建设中怎么进行色彩搭配?

下一篇: 暂无文章

相关搜索:

QQ咨询

微信咨询