日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

服務(wù)器安全加固清單要點

馬哥Linux運維 ? 來源:馬哥Linux運維 ? 2026-05-11 16:46 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

問題背景

新機器上線前不做安全加固,等于把門打開等人進來。生產(chǎn)環(huán)境的服務(wù)器一旦暴露在公網(wǎng),各種掃描、暴力破解、漏洞利用會在上線后幾小時內(nèi)接踵而至。等被黑了再去加固,不僅被動,而且恢復成本極高——日志可能被清、植入后門可能還在、數(shù)據(jù)可能已泄露。

服務(wù)器安全加固不是裝一個殺毒軟件那么簡單。它涉及操作系統(tǒng)層面的賬號與權(quán)限管理、網(wǎng)絡(luò)層面的防火墻配置、服務(wù)層面的安全選項、應(yīng)用層面的加密通信、系統(tǒng)層面的漏洞修復。每一個環(huán)節(jié)都有可能被利用。

這篇文章面向初中級 Linux 運維工程師,提供一份新機器上線前的安全加固清單,包含 20 個具體操作項,每個操作項都有操作步驟、驗證方法和風險說明。文章基于 CentOS 7/8 和 Ubuntu 20.04/22.04 兩個主流發(fā)行版,命令在兩個系統(tǒng)上分別標注。文中所有涉及網(wǎng)絡(luò)和服務(wù)重啟的操作都會標注風險級別。

適用場景

新采購的服務(wù)器首次上線

接手他人維護的服務(wù)器

服務(wù)器重裝系統(tǒng)后

等保合規(guī)整改

安全評估后發(fā)現(xiàn)基線不符合要求

參加 CTF 或滲透測試前的自我加固

加固前準備:快照和備份

任何生產(chǎn)環(huán)境操作前,都必須先做好備份和快照。加固涉及 SSH、iptables、服務(wù)重啟等操作,操作失誤可能導致服務(wù)器無法登錄。請務(wù)必在執(zhí)行前:

在云控制臺創(chuàng)建服務(wù)器快照(或用 VMware/vSphere 創(chuàng)建虛擬機快照)

記錄當前 SSH 連接的方式和 IP

準備ILO/IPMI/云廠商的VNC/遠程終端作為緊急回滾通道

如果通過快照恢復,請確認恢復后需要重新配置的項(IP、hostname、SSH keys等)。

第 1-5 項:賬號與權(quán)限管理

第 1 項:禁用 root 用戶直接登錄

root 是所有 Linux 系統(tǒng)的默認管理員賬號,也是黑客暴力破解的首要目標。禁用 root 直接登錄,迫使用戶使用普通賬號 + sudo,可以極大提高攻擊成本。

操作步驟(CentOS/RHEL):

# 1. 創(chuàng)建普通管理員賬號
sudo useradd -m -s /bin/bash -G wheel admin

# 2. 設(shè)置 admin 賬號密碼
sudo passwd admin

# 3. 將 admin 加入 wheel 組(Ubuntu 中默認已配置 sudo)
# CentOS 中 wheel 組默認已配置為 sudo 組

# 4. 配置 SSH 禁止 root 登錄
sudo vi /etc/ssh/sshd_config
# 找到并修改:
# PermitRootLogin no
# 或者在 Ubuntu 中默認可能是 without-password,改為 no

# 5. 重啟 SSH 服務(wù)
sudo systemctl restart sshd

# 6. 驗證:另開一個終端,用 root 登錄應(yīng)該被拒絕

操作步驟(Ubuntu):

# 1. 創(chuàng)建管理員賬號(安裝時已創(chuàng)建,這里假設(shè)需要新建)
sudo adduser admin
sudo usermod -aG sudo admin

# 2. 復制當前用戶的 SSH 公鑰到新用戶(如果有的話)
sudo mkdir -p /home/admin/.ssh
sudo chmod 700 /home/admin/.ssh
sudo cp ~/.ssh/authorized_keys /home/admin/.ssh/
sudo chown -R admin:admin /home/admin/.ssh

# 3. 配置 SSH 禁止 root 登錄
sudo vi /etc/ssh/sshd_config
# 確認或添加:
# PermitRootLogin no

# 4. 重啟 SSH
sudo systemctl restart sshd

驗證方法:

# 用普通賬號登錄后測試 sudo
sudo -l
# 應(yīng)該列出該用戶的 sudo 權(quán)限

# 用 root 登錄(另開終端測試)
ssh root@
# 應(yīng)該提示:Permission denied, please try again.

第 2 項:使用 SSH 公鑰認證,禁止密碼登錄

密碼登錄容易被暴力破解和字典攻擊。公鑰認證配合 SSH key,安全性高出幾個數(shù)量級。

操作步驟:

# 1. 在本地機器(你的電腦)上生成 SSH 密鑰對
ssh-keygen -t ed25519 -C"your_email@example.com"
# 按回車接受默認路徑,建議設(shè)置 passphrase(密碼短語)

# 2. 將公鑰上傳到服務(wù)器
ssh-copy-id -i ~/.ssh/id_ed25519.pub admin@
# 這次仍然需要輸入密碼,是最后一次

# 3. 確認公鑰已復制
ssh admin@"cat ~/.ssh/authorized_keys"

# 4. 修改 SSH 配置,禁止密碼登錄
sudo vi /etc/ssh/sshd_config

# 確保以下配置存在且沒有被注釋:
# PubkeyAuthentication yes
# PasswordAuthentication no
# ChallengeResponseAuthentication no
# UsePAM yes

# 5. 重啟 SSH
sudo systemctl restart sshd

驗證方法:

# 在本地機器測試:使用公鑰登錄
ssh -i ~/.ssh/id_ed25519 admin@
# 應(yīng)該不需要輸入密碼即可登錄

# 測試:禁用密碼登錄后,用密碼登錄應(yīng)該被拒絕
ssh admin@
# 輸入密碼應(yīng)該被拒絕:Permission denied (publickey,password)

風險提醒:在退出當前 SSH 會話前,務(wù)必確認新登錄方式(公鑰)能正常工作。如果公鑰配置有誤又禁止了密碼登錄,你將被鎖在服務(wù)器外面,只能通過 VNC/ILO 恢復。

第 3 項:刪除或鎖定不需要的系統(tǒng)賬號

Linux 系統(tǒng)默認會創(chuàng)建一些服務(wù)賬號(bin、daemon、adm、nobody 等)。如果這些賬號不需要登錄且不需要 shell,應(yīng)該鎖定它們。

操作步驟:

# 查看所有用戶賬號
cat /etc/passwd | grep -v /sbin/nologin | grep -v /bin/false| grep -v'^#'

# 常見的應(yīng)該保留的系統(tǒng)賬號(不要動):
# root
# admin / ubuntu(你自己創(chuàng)建的普通管理員賬號)
# daemon(部分系統(tǒng)服務(wù)需要)
# sshd(SSH 服務(wù)需要)

# 鎖定不需要登錄的賬號(使用 nologin 或 false shell)
# 例如鎖定 games 賬號
sudo usermod -s /sbin/nologin games

# 如果賬號根本不需要(比如刪除測試賬號)
sudo userdel -r testuser # -r 同時刪除 home 目錄

# 鎖定賬號(禁止登錄,也不允許切換)
sudo passwd -l  # 鎖定
sudo passwd -u  # 解鎖

驗證方法:

# 查看哪些賬號有有效 shell
cat /etc/passwd | awk -F:'{print $1":"$7}'| grep -v nologin | grep -vfalse

# 測試賬號是否被鎖定
su -  # 應(yīng)該直接退出或提示 This account is currently not available

第 4 項:設(shè)置密碼策略

密碼策略包括密碼復雜度、密碼長度、密碼過期時間、密碼歷史記錄等。

操作步驟(CentOS/RHEL):

# 1. 安裝密碼策略工具
sudo yum install -y libpwquality cracklib

# 2. 配置密碼復雜度
sudo vi /etc/security/pwquality.conf

# 主要配置項:
# minlen = 12       # 最小密碼長度
# dcredit = -1       # 至少包含一個數(shù)字
# ucredit = -1       # 至少包含一個大寫字母
# lcredit = -1       # 至少包含一個小寫字母
# ocredit = -1       # 至少包含一個特殊字符
# difok = 3        # 新密碼和舊密碼至少3個字符不同
# maxrepeat = 2      # 同一字符最多連續(xù)出現(xiàn)2次

# 3. 配置密碼過期時間
sudo vi /etc/login.defs
# PASS_MAX_DAYS 90    # 密碼最長使用天數(shù)
# PASS_MIN_DAYS 7     # 密碼最短使用天數(shù)
# PASS_WARN_AYS 7     # 密碼過期前多少天警告

# 4. 對現(xiàn)有用戶設(shè)置密碼過期
sudo chage -M 90 admin  # admin 賬號密碼 90 天過期
sudo chage -m 7 admin  # 密碼至少使用 7 天才能改
sudo chage -W 7 admin  # 過期前 7 天警告

操作步驟(Ubuntu):

# Ubuntu 默認使用 PAM(pam_pwquality)
sudo apt-get install -y libpwquality

# 配置密碼策略(和 CentOS 相同)
sudo vi /etc/security/pwquality.conf

# Ubuntu 中密碼策略也通過 /etc/login.defs 控制
sudo vi /etc/login.defs

驗證方法:

# 測試密碼復雜度(嘗試設(shè)置一個弱密碼)
sudo passwd admin
# 設(shè)置密碼時,如果提示 "BAD PASSWORD: ..." 說明被策略攔截

# 查看用戶密碼過期信息
sudo chage -l admin
# 輸出:
# Last password change:     Apr 29, 2026
# Password expires:       Jul 28, 2026
# Password inactive:       never
# Account expires:        never
# Minimum number of days between password change: 7
# Maximum number of days between password change: 90
# Number of days of warning before password expires: 7

第 5 項:配置 sudo 日志記錄

sudo 操作應(yīng)該被記錄,以便審計和排查問題。

操作步驟:

# 1. 確認 sudo 日志已啟用(默認已啟用)
# CentOS/RHEL: sudo 日志記錄到 /var/log/secure
# Ubuntu: sudo 日志記錄到 /var/log/auth.log

# 2. 如果需要獨立的 sudo 日志,可以在 /etc/sudoers 中配置
sudo visudo
# 添加:
# Defaults logfile=/var/log/sudo.log

# 3. 確保 rsyslog 或 journald 在記錄 sudo 日志
sudo systemctl status rsyslog
# 或
sudo systemctl status systemd-journald

驗證方法:

# 查看 sudo 日志
# CentOS
sudo tail -20 /var/log/secure | grep sudo

# Ubuntu
sudo tail -20 /var/log/auth.log | grep sudo

# 測試日志記錄:執(zhí)行一個 sudo 命令
sudo whoami
# 然后檢查日志中是否有記錄

第 6-10 項:防火墻與網(wǎng)絡(luò)配置

第 6 項:配置 iptables/firewalld 防火墻

防火墻是新服務(wù)器的第一道防線。即使云平臺有安全組,服務(wù)器內(nèi)部的防火墻也應(yīng)當配置,防止云安全組規(guī)則配置錯誤導致的暴露。

操作步驟(CentOS 7/8 - firewalld):

# 1. 啟動 firewalld
sudo systemctl start firewalld
sudo systemctlenablefirewalld

# 2. 查看默認 zone
sudo firewall-cmd --get-default-zone

# 3. 添加允許的 SSH(防止把自己踢出去)
# 先添加,確認能用,再移除 22/TCP 的 all 訪問
sudo firewall-cmd --zone=public --add-port=22/tcp --permanent

# 4. 只允許特定 IP 段訪問 SSH(如果固定 IP)
# sudo firewall-cmd --zone=public --add-source=192.168.1.0/24 --permanent
# sudo firewall-cmd --zone=public --remove-port=22/tcp --permanent

# 5. 允許必要的服務(wù)
sudo firewall-cmd --zone=public --add-service=ssh --permanent
sudo firewall-cmd --zone=public --add-service=https --permanent
sudo firewall-cmd --zone=public --add-service=http --permanent

# 6. 拒絕所有其他入站流量
sudo firewall-cmd --zone=public --add-rich-rule='rule protocol value=icmp drop'--permanent

# 7. 重載防火墻規(guī)則
sudo firewall-cmd --reload

# 8. 查看當前規(guī)則
sudo firewall-cmd --list-all

操作步驟(Ubuntu - ufw):

# 1. 啟用 ufw
sudo ufwenable

# 2. 設(shè)置默認策略:拒絕所有入站,允許所有出站
sudo ufw default deny incoming
sudo ufw default allow outgoing

# 3. 允許 SSH(先做,防止把自己踢出去)
# 如果使用默認 22 端口
sudo ufw allow ssh
# 如果使用非標準端口,比如 2222
sudo ufw allow 2222/tcp

# 4. 只允許特定 IP 訪問 SSH(推薦)
sudo ufw allow from 192.168.1.0/24 to any port 22

# 5. 允許必要的服務(wù)
sudo ufw allow http
sudo ufw allow https

# 6. 查看規(guī)則
sudo ufw status numbered

# 7. 刪除規(guī)則(如果需要)
sudo ufw delete 

驗證方法:

# 查看防火墻狀態(tài)
# CentOS
sudo firewall-cmd --state
# 或
sudo systemctl status firewalld

# Ubuntu
sudo ufw status verbose

# 測試防火墻規(guī)則:從另一臺機器測試
# 應(yīng)該只能訪問允許的端口
nmap -sT -p 22,80,443 

風險提醒:配置防火墻前,務(wù)必確認:

你有其他方式(如VNC/ILO)訪問服務(wù)器

SSH 端口沒有被錯誤拒絕

如果有固定 IP,把固定 IP 加入 SSH 允許列表后再操作

第 7 項:關(guān)閉不必要的服務(wù)和端口

服務(wù)器上默認運行了很多不需要的服務(wù),每個服務(wù)都是潛在的攻擊面。

操作步驟:

# 1. 查看所有正在運行的服務(wù)
sudo systemctl list-units --type=service --state=running

# 2. 查看監(jiān)聽端口
sudo ss -tunapl | grep LISTEN

# 3. 識別不需要的服務(wù)(常見可以禁用的)
# telnet-server: 明文協(xié)議,應(yīng)該禁用
# rsh-server: 不安全的遠程 shell
# vsftpd: 如果不用 FTP
# named: 如果不用 DNS 服務(wù)
# dovecot/postfix: 如果不用郵件服務(wù)
# cups: 打印服務(wù),通常服務(wù)器不需要

# 4. 停止并禁用不需要的服務(wù)
sudo systemctl stop 
sudo systemctldisable

# 5. 常見可以安全禁用的服務(wù)示例:
sudo systemctl stop anddisabletelnet.socket # CentOS
sudo systemctl stop anddisablersh.socket  # CentOS
sudo systemctl stop cups           # 打印服務(wù)
sudo systemctl stop postfix         # 郵件服務(wù)
sudo systemctl stop dovecot         # IMAP/POP3

驗證方法:

# 查看監(jiān)聽端口變化
sudo ss -tunapl | grep LISTEN

# 確認服務(wù)已禁用
sudo systemctl is-enabled 
# 返回 "disabled" 表示已禁用

# 用 nmap 從外部掃描(如果有測試機)
nmap -sT -p 1-1000 
# 只應(yīng)該看到 SSH(22)和你明確開啟的端口

第 8 項:禁用 ICMP 響應(yīng)(可選但推薦)

禁用 ICMP(ping)響應(yīng)可以增加攻擊者掃描的難度,但不影響網(wǎng)絡(luò)功能。

操作步驟:

# 方法一:使用 iptables/firewalld 丟棄 ping 請求
# CentOS
sudo firewall-cmd --permanent --add-icmp-block=echo-reply
sudo firewall-cmd --permanent --add-icmp-block=echo-request
sudo firewall-cmd --reload

# Ubuntu
sudo ufw insert 1 deny proto icmp from any to any icmptypeecho-request

# 方法二:修改內(nèi)核參數(shù)(永久生效)
sudo vi /etc/sysctl.conf
# 添加:
net.ipv4.icmp_echo_ignore_all = 1

# 應(yīng)用配置
sudo sysctl -p

驗證方法:

# 從外部機器測試 ping
ping 
# 應(yīng)該無響應(yīng)或超時

# 在本機測試(應(yīng)該能 ping 自己)
ping 127.0.0.1

風險提醒:有些監(jiān)控系統(tǒng)(如 Zabbix、Nagios)會通過 ping 檢測主機存活。禁用 ICMP 后需要確保監(jiān)控有其他方式檢測(如端口檢測)。另外,部分網(wǎng)絡(luò)故障排查工具依賴 ICMP,禁用后 Traceroute 可能不正常。

第 9 項:配置內(nèi)核網(wǎng)絡(luò)參數(shù)

Linux 內(nèi)核的網(wǎng)絡(luò)參數(shù)有很多可以加固的地方,比如 SYN Flood 攻擊防護、ICMP 廣播限制等。

操作步驟:

# 編輯 /etc/sysctl.conf
sudo vi /etc/sysctl.conf

# 添加以下內(nèi)容:
# 防止 SYN Flood 攻擊
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_syn_retries = 2
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_max_syn_backlog = 65535

# 禁止 IP 源路由(防止 IP 欺騙)
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.default.accept_source_route = 0

# 禁止 ICMP 重定向
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv6.conf.all.accept_redirects = 0
net.ipv6.conf.default.accept_redirects = 0

# 開啟 IP 轉(zhuǎn)發(fā)檢查
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1

# 禁止 ICMP 廣播
net.ipv4.icmp_echo_ignore_broadcasts = 1

# 忽略 ICMP ping 請求
net.ipv4.icmp_echo_ignore_all = 1

# 禁止 IP 路由到偽造地址(減少 IP 欺騙)
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0

# 應(yīng)用配置
sudo sysctl -p

# 驗證
sudo sysctl net.ipv4.tcp_syncookies
# 應(yīng)該返回 net.ipv4.tcp_syncookies = 1

第 10 項:限制文件描述符和進程數(shù)

資源耗盡攻擊(ulimit 耗盡)是一種 DoS 攻擊方式。默認的 ulimit 值可能不夠高。

操作步驟:

# 1. 查看當前限制
ulimit-a

# 2. 修改 /etc/security/limits.conf
sudo vi /etc/security/limits.conf

# 添加:
# 每個用戶最大打開文件描述符數(shù)
*        soft  nofile     65535
*        hard  nofile     65535

# 每個用戶最大進程數(shù)
*        soft  nproc      65535
*        hard  nproc      65535

# root 用戶不受限制(需要保留)
root      soft  nofile     65535
root      hard  nofile     65535

# 3. 修改 /etc/pam.d/common-session(Ubuntu)或 /etc/pam.d/system-auth(CentOS)
# 確保有這行:
session required pam_limits.so

# 4. 修改 /etc/sysctl.conf 中的 fs.file-max(系統(tǒng)級限制)
sudo vi /etc/sysctl.conf
fs.file-max = 655360

# 應(yīng)用
sudo sysctl -p

驗證方法:

# 重新登錄后測試
su - admin
ulimit-n
# 應(yīng)該顯示 65535

# 測試是否能達到這個限制
ulimit-n 65535

第 11-15 項:系統(tǒng)安全配置

第 11 項:更新系統(tǒng)和軟件包

操作步驟:

# CentOS/RHEL
sudo yum update -y
# 或
sudo dnf update -y

# Ubuntu
sudo apt update && sudo apt upgrade -y

# 升級完成后重啟(如有必要)
sudo reboot

驗證方法:

# 查看上次更新時間
rpm -qa --last | head -10
# 或
dpkg -l | tail -10

第 12 項:安裝并配置 fail2ban

fail2ban 可以自動封禁連續(xù)登錄失敗的 IP,是防止 SSH 暴力破解的利器。

操作步驟:

# 安裝
# CentOS(需要 EPEL 源)
sudo yum install -y epel-release
sudo yum install -y fail2ban

# Ubuntu
sudo apt-get install -y fail2ban

# 配置
sudo vi /etc/fail2ban/jail.local
# 如果文件不存在,創(chuàng)建它
# [DEFAULT]
# bantime = 3600      # 封禁 1 小時
# findtime = 600      # 10 分鐘內(nèi)
# maxretry = 5       # 最多 5 次嘗試
# banaction = iptables-multiport

# [sshd]
# enabled = true
# port = ssh
# filter = sshd
# logpath = /var/log/secure # CentOS
# logpath = /var/log/auth.log # Ubuntu
# maxretry = 3

# 啟動
sudo systemctlenablefail2ban
sudo systemctl start fail2ban

驗證方法:

# 查看 fail2ban 狀態(tài)
sudo fail2ban-client status

# 查看 SSH 防護狀態(tài)
sudo fail2ban-client status sshd

# 測試:從另一臺機器故意輸錯密碼 3 次,應(yīng)該被封禁
# 查看被封禁的 IP
sudo iptables -L -n | grep fail2ban

第 13 項:配置 auditd 審計

auditd 可以記錄系統(tǒng)調(diào)用和文件訪問,是等保合規(guī)和事后審計的重要工具。

操作步驟:

# 安裝
# CentOS
sudo yum install -y audit

# Ubuntu
sudo apt-get install -y auditd

# 啟動
sudo systemctlenableauditd
sudo systemctl start auditd

# 配置審計規(guī)則
sudo vi /etc/audit/rules.d/audit.rules

# 添加:
# 記錄所有 rm mv chmod chown 等敏感操作
-w /usr/bin/rm -p x -k delete
-w /usr/bin/mv -p x -k move
-w /usr/bin/chmod -p x -k perm_chmod
-w /usr/bin/chown -p x -k perm_chown

# 記錄 /etc/passwd /etc/shadow 的修改
-w /etc/passwd -p wa -k identity
-w /etc/shadow -p wa -k identity
-w /etc/group -p wa -k identity

# 記錄 SSH 配置修改
-w /etc/ssh/sshd_config -k sshd_config

# 重載規(guī)則
sudo auditctl -R /etc/audit/rules.d/audit.rules

# 或者直接添加規(guī)則(臨時生效)
sudo auditctl -w /usr/bin/rm -p x -k delete

驗證方法:

# 查看審計日志
sudo ausearch -k delete | head -20

# 查看最近的審計事件
sudo ausearch -i | tail -20

# 查看 auditd 狀態(tài)
sudo systemctl status auditd

第 14 項:關(guān)閉 Ctrl+Alt+Del 重啟

防止物理接觸服務(wù)器的人通過鍵盤組合鍵重啟系統(tǒng)。

操作步驟:

# CentOS 7/8
# 修改 /etc/systemd/system/ctrl-alt-del.target
sudo systemctl mask ctrl-alt-del.target

# Ubuntu
# 修改 /etc/systemd/system/ctrl-alt-del.target 的軟鏈接
sudo systemctl mask ctrl-alt-del.target

# 驗證
sudo systemctl status ctrl-alt-del.target
# 應(yīng)該顯示 "masked"

第 15 項:設(shè)置 GRUB 密碼

防止未經(jīng)授權(quán)修改 GRUB 啟動參數(shù)(比如進入單用戶模式重置 root 密碼)。

操作步驟:

# 生成 GRUB 密碼哈希
grub2-mkpasswd-pbkdf2
# 或
# CentOS 8 中可能是
# grub2-mkpasswd-pbkdf2

# 輸入密碼后得到一串 hash

# 編輯 /etc/grub.d/00_header
sudo vi /etc/grub.d/00_header

# 在文件末尾添加:
cat << EOF
set?superusers="admin"
password_pbkdf2 admin <生成的hash>
EOF

# 重新生成 GRUB 配置
# CentOS
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
# UEFI
# sudo grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg

# Ubuntu
sudo update-grub

驗證方法:

# 重啟服務(wù)器,在 GRUB 菜單按 'e' 編輯
# 如果需要輸入 admin 密碼,說明配置成功

第 16-20 項:SSH 和遠程訪問加固

第 16 項:修改 SSH 默認端口

SSH 默認監(jiān)聽 22 端口,掃描器會首先掃描 22 端口。改成非標準端口可以減少大量無效掃描。

操作步驟:

# 1. 修改 SSH 配置
sudo vi /etc/ssh/sshd_config

# 找到#Port22,改為非標準端口(如 2222)
Port 2222

# 2. 確認新端口已在防火墻開放(先做?。?# CentOS
sudo firewall-cmd --permanent --add-port=2222/tcp
sudo firewall-cmd --reload

# Ubuntu
sudo ufw allow 2222/tcp

# 3. 重啟 SSH
sudo systemctl restart sshd

# 4. 驗證:用新端口登錄
ssh -p 2222 admin@

# 5. 確認舊端口 22 不再監(jiān)聽(可選)

驗證方法:

# 查看 SSH 監(jiān)聽端口
sudo ss -tunapl | grep ssh

# 從外部測試
nmap -sT -p 2222 

風險提醒:修改 SSH 端口后,新的 SSH 連接命令必須加-p 參數(shù)。確保記錄了新端口。如果忘了加參數(shù),會一直嘗試連接本地的 22 端口。

第 17 項:配置 SSH 空密碼和公鑰檢查

操作步驟:

sudo vi /etc/ssh/sshd_config

# 確保以下配置存在:
# 不允許空密碼登錄
PermitEmptyPasswords no

# 不允許使用公鑰認證時不檢查 key 的完整性(中間人攻擊防護)
StrictHostKeyChecking ask

# 禁用 .rhosts 文件
IgnoreRhosts yes

# 禁用基于主機的認證
HostbasedAuthentication no

第 18 項:限制 SSH 允許的用戶和組

操作步驟:

sudo vi /etc/ssh/sshd_config

# 只允許特定用戶登錄
AllowUsers admin deploy

# 只允許特定組登錄
AllowGroups sudo admin

# 禁止 root 用戶登錄(已在第 1 項中配置)
PermitRootLogin no

第 19 項:安裝配置 AIDE 文件完整性檢測

AIDE(Advanced Intrusion Detection Environment)可以檢測系統(tǒng)文件被篡改。

操作步驟:

# 安裝
# CentOS
sudo yum install -y aide

# Ubuntu
sudo apt-get install -y aide

# 初始化數(shù)據(jù)庫(第一次運行)
sudo aide --init

# 移動數(shù)據(jù)庫文件
sudo mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz

# 定期檢查(建議加入 cron)
# 0 3 * * * /usr/sbin/aide --check | /usr/bin/mail -s "AIDE check report" admin@example.com

# 手動檢查
sudo aide --check

驗證方法:

# 修改一個文件,測試 AIDE 能否檢測到
sudo touch /tmp/test_change
sudo aide --check | grep /tmp/test_change
# 應(yīng)該報告文件被修改

# 清理測試文件
sudo rm /tmp/test_change

第 20 項:配置日志集中收集和告警

服務(wù)器的安全日志需要集中收集和分析,防止被篡改或刪除。

操作步驟(使用 rsyslog 發(fā)送到日志服務(wù)器):

# 1. 配置 rsyslog 發(fā)送日志到遠程服務(wù)器
sudo vi /etc/rsyslog.conf

# 添加(UDP 方式):
# *.* @log-server-ip:514

# 或(TCP 方式,更可靠):
# *.* @@log-server-ip:514

# 2. 啟用并重啟 rsyslog
sudo systemctlenablersyslog
sudo systemctl restart rsyslog

# 3. 配置日志輪轉(zhuǎn),防止日志過大
sudo vi /etc/logrotate.d/syslog
# 確保有類似內(nèi)容:
# /var/log/secure
# /var/log/messages
# {
#   daily
#   rotate 30
#   missingok
#   notifempty
#   compress
#   sharedscripts
#   postrotate
#     /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` || true
#   endscript
# }

驗證方法:

# 測試日志能否發(fā)送到遠程服務(wù)器
logger"Test log from$(hostname)"
# 在日志服務(wù)器上檢查是否收到

# 查看日志輪轉(zhuǎn)配置
sudo logrotate -d /etc/logrotate.conf | head -30

加固完成后的驗證

檢查清單

#!/bin/bash
# save as: security_check.sh
# 服務(wù)器安全加固完成后的自檢腳本

echo"===== 服務(wù)器安全加固自檢 ====="

echo"[1] 檢查 root 登錄是否禁用..."
grep"PermitRootLogin"/etc/ssh/sshd_config

echo"[2] 檢查 SSH 公鑰認證..."
grep"PubkeyAuthentication"/etc/ssh/sshd_config
grep"PasswordAuthentication"/etc/ssh/sshd_config

echo"[3] 檢查防火墻狀態(tài)..."
systemctl status firewalld 2>/dev/null | grep"Active"|| ufw status 2>/dev/null | head -3

echo"[4] 檢查 fail2ban..."
systemctl status fail2ban 2>/dev/null | grep"Active"

echo"[5] 檢查不必要的服務(wù)..."
systemctl list-units --type=service --state=running | grep -E"telnet|rsh|vsftpd|cups|postfix"

echo"[6] 檢查文件描述符限制..."
ulimit-n

echo"[7] 檢查內(nèi)核參數(shù)..."
sysctl net.ipv4.tcp_syncookies
sysctl net.ipv4.icmp_echo_ignore_all

echo"[8] 檢查 auditd..."
systemctl status auditd 2>/dev/null | grep"Active"

echo"[9] 檢查 AIDE..."
aide --check 2>/dev/null | head -5

echo"[10] 檢查密碼策略..."
grep"minlen"/etc/security/pwquality.conf
grep"PASS_MAX_DAYS"/etc/login.defs

總結(jié)

服務(wù)器安全加固是"縱深防御"的體現(xiàn)——每一層都有防線,即使某一層被突破,還有其他層保護。以下 20 項操作的優(yōu)先級和分類:

高優(yōu)先級(必須做):

禁用 root 登錄

SSH 公鑰認證 + 禁止密碼登錄

配置防火墻(iptables/firewalld/ufw)

關(guān)閉不必要的服務(wù)和端口

更新系統(tǒng)補丁

fail2ban 防暴力破解

中優(yōu)先級(應(yīng)該做):

禁用 ICMP 響應(yīng)

內(nèi)核網(wǎng)絡(luò)參數(shù)加固

資源限制(ulimit)

sudo 日志記錄

密碼策略

SSH 端口修改

低優(yōu)先級(推薦做):

auditd 審計

GRUB 密碼

AIDE 文件完整性檢測

日志集中收集

安全加固不是一次性的工作,應(yīng)該定期:

每季度審查一次賬號和權(quán)限

每次系統(tǒng)更新后確認加固配置未被動

定期查看 fail2ban 和 auditd 日志

定期檢查是否有新的漏洞和加固手段

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Linux
    +關(guān)注

    關(guān)注

    88

    文章

    11839

    瀏覽量

    219696
  • 服務(wù)器
    +關(guān)注

    關(guān)注

    14

    文章

    10399

    瀏覽量

    91803
  • 網(wǎng)絡(luò)
    +關(guān)注

    關(guān)注

    14

    文章

    8349

    瀏覽量

    95655

原文標題:服務(wù)器安全加固清單:新機器上線前必做的 20 件事

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    網(wǎng)絡(luò)授時服務(wù)器 ntp時間服務(wù)器品牌 校時服務(wù)器廠家#電工

    服務(wù)器
    jf_47371611
    發(fā)布于 :2026年02月11日 17:53:43

    如果同時部署應(yīng)用安全、防火墻、系統(tǒng)加固,是不是比僅靠高防服務(wù)器安全?

    如果同時配置應(yīng)用安全、防火墻、系統(tǒng)加固,是不是比只靠高防服務(wù)器安全? 答案是:絕對是 安全領(lǐng)域有個基本原則:
    的頭像 發(fā)表于 12-02 17:32 ?971次閱讀

    恒訊科技解析:如何在日本服務(wù)器上安裝和配置數(shù)據(jù)庫(如MySQL)?

    CentOS 8/Stream為例)上從零開始安裝、配置到安全加固的完整實戰(zhàn)指南。 一、 準備工作 在開始之前,請確保您已具備以下條件: 一臺日本服務(wù)器: 您已擁有一臺位于日本數(shù)據(jù)中心的云服務(wù)
    的頭像 發(fā)表于 11-04 11:07 ?852次閱讀

    如何構(gòu)建Linux服務(wù)器安全防護體系

    前言:作為一名運維工程師,我見過太多因為安全配置不當而被攻破的服務(wù)器。本文將分享我多年來積累的實戰(zhàn)經(jīng)驗,教你如何構(gòu)建一套完整的Linux服務(wù)器安全防護體系。
    的頭像 發(fā)表于 08-05 17:35 ?1283次閱讀

    華納云服務(wù)器角色服務(wù)器失敗的原因和解決辦法

    是常見的,這可能導致數(shù)據(jù)丟失、系統(tǒng)停機和效率降低等嚴重后果。因此,了解服務(wù)器角色故障的原因和影響,并采取有效的預(yù)防措施,對于確保業(yè)務(wù)連續(xù)性和數(shù)據(jù)安全性至關(guān)重要。 一、服務(wù)器角色故障的原因 1. 硬件故障:硬盤驅(qū)動
    的頭像 發(fā)表于 07-17 18:18 ?726次閱讀

    AI 服務(wù)器電源如何迭代升級?

    解決方案創(chuàng)新峰會分會場三:AI 服務(wù)器與電源技術(shù)創(chuàng)新研討會將于2025 年6月26日重磅開啟,帶著AI 服務(wù)器電源行業(yè)最真實的痛點清單與解決方案,打造AI 服務(wù)器電源工程師的“破局充電
    的頭像 發(fā)表于 06-23 14:51 ?1780次閱讀

    歐洲服務(wù)器免費ip地址怎么獲?。?歐洲服務(wù)器 #免費IP地址 #服務(wù)器

    服務(wù)器
    jf_57681485
    發(fā)布于 :2025年06月13日 11:15:04

    DNS服務(wù)器無法訪問?2分鐘快速排查與解決!#DNS服務(wù)器 #DNS #服務(wù)器

    服務(wù)器
    jf_57681485
    發(fā)布于 :2025年06月10日 14:55:34

    直播云服務(wù)器對帶寬有什么要求?#直播云服務(wù)器 #直播 #帶寬

    服務(wù)器
    jf_57681485
    發(fā)布于 :2025年05月30日 11:54:24

    服務(wù)器數(shù)據(jù)恢復—Linux系統(tǒng)服務(wù)器崩潰的數(shù)據(jù)恢復案例

    服務(wù)器數(shù)據(jù)恢復環(huán)境: linux操作系統(tǒng)服務(wù)器中有一組由4塊SAS接口硬盤組建的raid5陣列。 服務(wù)器故障: 服務(wù)器工作過程中突然崩潰。管理員將
    的頭像 發(fā)表于 05-20 15:46 ?1053次閱讀
    神农架林区| 杨浦区| 富顺县| 茶陵县| 涞源县| 望奎县| 斗六市| 阜新市| 环江| 郑州市| 河源市| 诏安县| 枣强县| 崇左市| 绥阳县| 海口市| 马边| 芦溪县| 开江县| 古丈县| 阳江市| 嘉黎县| 区。| 呼玛县| 孝义市| 泊头市| 阳原县| 武功县| 天全县| 静宁县| 乌海市| 寻甸| 溆浦县| 东丽区| 眉山市| 阿拉尔市| 云梦县| 安达市| 伊吾县| 宣城市| 历史|