Orange的運維學習日記--18.Linux sshd安全實踐

Orange的運維學習日記–18.Linux sshd安全實踐

文章目錄

  • Orange的運維學習日記--18.Linux sshd安全實踐
    • 場景模擬
    • sshd配置
      • 需求:
      • 參數表格:
    • MOTD警告
    • 定期備份SSH密鑰與配置
    • 登錄防護:fail2ban
      • 測試與日志

場景模擬

你是某金融科技公司的Linux運維工程師,負責維護核心生產服務器集群。近期公司安全審計發現,SSH服務存在以下風險:

  1. 暴力破解攻擊頻繁(平均每天嘗試1000+次)
  2. 部分服務器仍使用默認22端口
  3. 所有服務器未啟用雙因素認證
  4. 未限制 SSH訪問源IP
  5. 部分服務器仍允許root直接登錄

sshd配置

需求:

  • 將 SSH 默認端口 22 修改為 2222
  • 禁用 root 直接登錄
  • 禁用密碼認證,僅保留密鑰認證
  • 禁止空口令的 SSH 密鑰
  • 設置登錄超時為 120
  • 禁用 DNS 反向解析

參數表格:

參數對應需求
Port2222修改默認端口
PermitRootLoginno禁用 root 直接登錄
PasswordAuthenticationno禁用密碼認證
PermitEmptyPasswordsno禁止空口令的密鑰
LoginGraceTime120登錄超時 120 秒
UseDNSno禁用 DNS 反向解析
sudo vim /etc/ssh/sshd_config
Port 2222
PermitRootLogin no
PasswordAuthentication no
PermitEmptyPasswords no
LoginGraceTime 120
UseDNS no
sudo systemctl restart sshd

MOTD警告

sudo bash -c "echo '授權訪問將被記錄并追究法律責任' >> /etc/motd"

登錄效果:

在這里插入圖片描述


定期備份SSH密鑰與配置

  1. 編寫備份腳本
sudo vim /usr/local/bin/backup_ssh.sh

參考腳本1–未按用戶分類

#!/bin/bash
TARGET_DIR=/secure_backups/ssh_$(date +%F)
mkdir -p "$TARGET_DIR"
cp /etc/ssh/sshd_config "$TARGET_DIR/"
cp -r /root/.ssh "$TARGET_DIR/"
find /home -maxdepth 2 -type d -name ".ssh" -exec cp -r {} "$TARGET_DIR/" \;

參考腳本2–按用戶分別存儲

#!/bin/bash# 備份根目錄與當天日期
BACKUP_ROOT=/secure_backups/ssh_$(date +%F)
mkdir -p "$BACKUP_ROOT"# 1. 備份 SSH 配置文件
cp /etc/ssh/sshd_config "$BACKUP_ROOT/"# 2. 備份 root 用戶的 .ssh
if [ -d /root/.ssh ]; thenmkdir -p "$BACKUP_ROOT/root"cp -a /root/.ssh "$BACKUP_ROOT/root/"
fi# 3. 按用戶分別備份 /home 下的 .ssh
for homedir in /home/*; do[ -d "$homedir/.ssh" ] || continueuser=$(basename "$homedir")mkdir -p "$BACKUP_ROOT/$user"cp -a "$homedir/.ssh" "$BACKUP_ROOT/$user/"
done
  1. 配置權限
sudo chmod +x /usr/local/bin/backup_ssh.sh
  1. 測試腳本
sudo /usr/local/bin/backup_ssh.sh
  1. 設定定時任務
sudo bash -c "echo '0 0 * * * root /usr/local/bin/backup_ssh.sh' > /etc/cron.d/backup_ssh"
  • 第1個字段(分鐘):0
  • 第2個字段(小時):0
  • 第3個字段(日):*(每天)
  • 第4個字段(月):*(每月)
  • 第5個字段(星期):*(每周)

效果:每天凌晨 00:00,系統以root身份執行/usr/local/bin/backup_ssh.sh


登錄防護:fail2ban

安裝并配置 fail2ban,自動屏蔽惡意的 SSH 登錄嘗試。

# 安裝(CentOS/RHEL)
sudo yum install -y fail2ban# 或(Debian/Ubuntu)
sudo apt-get install -y fail2ban

/etc/fail2ban/jail.local 添加或修改以下內容:

[sshd]
enabled  = true
port     = 2222
filter   = sshd
logpath  = /var/log/secure
maxretry = 5
bantime  = 600
findtime = 600
  • enabled:啟用 sshd 監控
  • port:與 SSHD 配置中一致
  • maxretry:最大失敗嘗試次數
  • bantime:封禁時長(秒)
  • findtime:統計失敗窗口(秒)
# 啟動并設置開機自啟
sudo systemctl enable --now fail2ban# 查看 SSHD jail 狀態
sudo fail2ban-client status sshd

測試與日志

  • 人為輸入錯誤密碼超過 maxretry,再觀察 IP 是否被封
  • 日志位置:/var/log/fail2ban.log

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/91302.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/91302.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/91302.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

聚觀早報 | 德賽電池自主研發主動安全AI電芯;華為首展線下昇騰384超節點;蔚來純電小車螢火蟲已交付一萬輛

聚觀早報每日整理最值得關注的行業重點事件,幫助大家及時了解最新行業動態,每日讀報,就讀聚觀365資訊簡報。整理丨肖羽7月28日消息德賽電池自主研發主動安全AI電芯華為首展線下昇騰384超節點蔚來純電小車螢火蟲已交付一萬輛京東已成立智能機器…

python可視化:按序號展示社團星級分布 - 熱力圖樣式

目錄 關鍵代碼: 運行結果: 關鍵代碼: # 4. 按序號展示社團星級分布 - 熱力圖樣式 plt.subplot(2, 2, 4) # 創建星級映射為數值 star_mapping {五星:4, 四星:3, 三星:2, 星級入圍:1} star_values df[答辯結果].map(star_mapping) plt.s…

智能家居平臺服務端安裝教程——東方仙盟部署

1. 準備工作 登錄阿里云服務器:使用 SSH 工具(如 ssh 命令)登錄到你的阿里云 Linux 服務器。確保服務器已安裝并能正常運行,且網絡連接正常。更新系統軟件包:執行以下命令更新系統軟件包到最新版本。 bash sudo apt …

360環視技術推薦的硬件平臺:支持多攝像頭與三屏異顯的理想選擇

在智能硬件不斷升級的今天,360環視技術早已不只是豪華車型的專屬。通過布置多路攝像頭,并將其圖像進行融合處理,360環視可以為系統提供車輛或設備周圍的完整視野。 它不僅能夠消除盲區,還能通過AI識別實現物體檢測、避障判斷、自動…

FFmpeg:因碼流采集與封裝不同步導致錄制出來的MP4文件會出現黑屏、綠屏的問題

項目要求實時播放視頻,并且需要支持播放中途可以錄制視頻。但是錄制出來的文件會黑屏,過一段時間后正常顯示。即:碼流采集—>播放—>(一段時間后)錄制MP4,黑屏出現的時間就在采集到錄制之前。黑屏現象…

C 語言與 C++、Java、Python 等編程語言的區別

C 語言與 C、Java、Python 等編程語言在設計理念、特性和應用場景上存在顯著差異,以下從核心區別、特性對比和適用場景三個維度詳細解析:一、C 語言與 C 的核心區別C 是在 C 語言基礎上發展而來(最初名為 “C with Classes”)&…

Apache Ignite 的分布式鎖Distributed Locks的介紹

以下這段內容是關于 Apache Ignite 的分布式鎖(Distributed Locks) 的介紹。這是一個非常重要的功能,用于在分布式系統中協調多個節點對共享資源的并發訪問。 下面我們來一步步深入理解它。🎯 一、一句話理解:什么是 I…

第十二天:C++ 標準庫函數分類總結

C 標準庫函數分類總結 數學函數&#xff08;<cmath>&#xff09; 基本運算函數 abs(x)&#xff1a;返回整數或浮點數的絕對值。int a abs(-5); // 返回 5fabs(x)&#xff1a;返回浮點數的絕對值。double b fabs(-3.14); // 返回 3.14fmod(x, y)&#xff1a;計算 x 除以…

Unity Standard Shader 解析(四)之ForwardAdd(簡化版)

一、ForwardAdd// Additive forward pass (one light per pass)Pass{Name "FORWARD_DELTA"Tags { "LightMode" "ForwardAdd" }Blend [_SrcBlend] OneFog { Color (0,0,0,0) } // in additive pass fog should be blackZWrite OffZTest LEqualC…

第十九周-文檔數據庫MongoDB、消息隊列和微服務

1. 完成redis單機安裝&#xff0c;哨兵模式安裝&#xff0c;主從安裝&#xff0c;集群安裝單機安裝#安裝依賴包 [rootcentos8~]#yum -y install gcc make jemalloc-devel #如果支持systemd需要安裝下面包 [rootubuntu2204 ~]#apt update && apt -y install make gcc li…

C++中sizeof運算符全面詳解和代碼示例

sizeof 是 C 中的一個編譯時運算符&#xff0c;用于獲取對象或類型所占的字節數&#xff08;以 size_t 返回&#xff09;。它是掌握底層內存模型、結構體對齊、數組大小計算等的重要工具。1. 基本語法 sizeof(type) // 獲取類型的大小 sizeof expression // 獲取表達式結果…

內容中臺:在一個地方管理多渠道內容

在數字化競爭愈演愈烈的今天&#xff0c;企業官網、社交平臺、移動應用、郵件營銷等渠道已成為品牌觸達用戶的關鍵接口。內容仍是連接企業與客戶的核心資產。然而&#xff0c;內容創作與分發的復雜性持續攀升&#xff0c;多平臺運營面臨重復維護、更新不一致、資源冗余等諸多挑…

【刷題】東方博宜oj 1307 - 數的計數

樣例輸入&#xff1a; 6輸出&#xff1a; 16 26 126 36 136原版是直接輸出總數量&#xff0c;但我修改了一些&#xff0c;輸出所有的新數。 #include <iostream> #include <vector> #include <string> using namespace std; //int c; void g(int num, string…

阿里云AI代碼助手通義靈碼開發指導

與阿里云一起輕松實現數智化讓算力成為公共服務&#xff1a;用大規模的通用計算&#xff0c;幫助客戶做從前不能做的事情&#xff0c;做從前做不到的規模。讓數據成為生產資料&#xff1a;用數據的實時在線&#xff0c;幫助客戶以數據為中心改變生產生活方式創造新的價值。智能…

設計模式(二十三)行為型:模板方法模式詳解

設計模式&#xff08;二十三&#xff09;行為型&#xff1a;模板方法模式詳解模板方法模式&#xff08;Template Method Pattern&#xff09;是 GoF 23 種設計模式中的行為型模式之一&#xff0c;其核心價值在于定義一個操作中的算法骨架&#xff0c;而將一些步驟延遲到子類中實…

Postgresql 查詢使用正則

今天接到任務&#xff0c;要從數據庫中查詢數據&#xff0c;對于postgresql 我并不熟悉&#xff0c;問了百度&#xff0c;問了通義千問。發現Postgresql 在寫query sql 的時候&#xff0c;可以使用正則匹配&#xff0c;不單是使用like 這種關鍵字。我像發現了新大陸一樣的興奮。…

【WRF-Chem Emissions教程第八期】轉換實用程序

轉換實用程序 8.1 將中間二進制文件轉換為 WRF-Chem 數據文件 文件命名規范與風格 8.2 Binary data file format(中間二進制排放數據文件的格式和結構) FORTRAN 示例程序說明 8.3 Building the WRF-Chemistry emissions conversion code 編譯步驟 驗證編譯結果 8.4 Namelist …

Qt Ribbon效果界面

實現效果&#xff1a;頭文件&#xff1a;#pragma once #include <QMdiArea> #include <QMdiSubWindow> #include <QMainWindow> #include "ui_MainFrame1.h" #include "DockManager.h" #include "DockAreaWidget.h"class Main…

如何修改 MySQL 8.0 的密碼,和忘記密碼時如何修改

要修改 MySQL 8.0 的密碼&#xff0c;可以通過以下幾種方法實現&#xff1a;方法 1&#xff1a;使用 ALTER USER 命令&#xff08;推薦&#xff09;這是 MySQL 8.0 推薦的修改密碼方式&#xff1a;-- 修改當前登錄用戶的密碼 ALTER USER USER() IDENTIFIED BY 新密碼;-- 修改指…

圖像處理控件Aspose.Imaging教程:使用 C# 編程將 CMX 轉換為 PNG

PNG圖像文件格式是廣泛使用的圖像格式之一。這種圖像文件格式提供了增強的共享和顯示功能。另一方面&#xff0c;CMX也是 Corel 應用程序主要使用的圖像文件格式。然而&#xff0c;將 CMX 轉換為 PNG 可以幫助用戶在網絡上查看和共享文件。因此&#xff0c;在本指南中&#xff…