歡迎來到上海木辰信息科技有限公司!我司專業做企業郵箱、網站建設、網站設計、云服務器、域名注冊等互聯網業務。
作者:author 發布時間:2025-10-09 20:18:08 訪問量:68
服務器安全防護的具體措施有哪些?
服務器是網站與應用的核心承載載體,其安全直接決定了業務穩定性與數據安全性。以下是從賬戶權限、網絡訪問、系統加固、數據防護、監控審計五大維度出發的具體防護措施,包含可落地的配置示例,適用于 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)或有特殊場景(如數據庫服務器、郵件服務器),可告訴我,我會提供更針對性的配置方案!
點贊 0 來源:木辰建站
上一篇:網站建設中怎么進行色彩搭配?
下一篇:如何注冊企業微信郵箱?
相關搜索: