目錄
1、停用root使用者登入" >1、停用root使用者登入
2、更改預設SSH埠" >2、更改預設SSH埠
3、禁止使用空白密碼登入" >3、禁止使用空白密碼登入
4、限制登入/存取嘗試次數" >4、限制登入/存取嘗試次數
5、使用SSH Version 2" >5、使用SSH Version 2
6、关闭TCP端口转发和X11转发" >6、关闭TCP端口转发和X11转发
7、使用SSH密钥连接" >7、使用SSH密钥连接
8、SSH连接的IP限制" >8、SSH连接的IP限制
9、有选择地允许用户和组访问" >9、有选择地允许用户和组访问
10、设置空闲超时时间间隔" >10、设置空闲超时时间间隔
12、添加 Banner 警告语言" >12、添加 Banner 警告语言
12、强制使用强大的MAC算法" >12、强制使用强大的MAC算法
13、将LogLevel设置为监视SSH活动" >13、将LogLevel设置为监视SSH活动
Linux 服务器安全的重要性" >Linux 服务器安全的重要性
首頁 系統教程 Linux SSH安全入門:在Linux上建立安全連線的13種方法

SSH安全入門:在Linux上建立安全連線的13種方法

Feb 11, 2024 am 10:54 AM
linux linux教程 linux系統 linux指令 shell腳本 嵌入式linux linux入門 linux學習

SSH是一種用於遠端登入和管理Linux伺服器的協議,它可以加密傳輸數據,防止中間人攻擊和竊聽。但是,SSH本身也可能面臨一些安全威脅,例如暴力破解密碼、連接埠掃描、會話劫持等。因此,我們需要採取一些措施來保護我們的SSH伺服器連接,以提高安全性和可靠性。本文將介紹在Linux上建立SSH安全連線的13種方法,包括更改預設連接埠、停用root登入、使用金鑰認證、限制登入嘗試、使用防火牆、使用雙重認證等。

1、停用root使用者登入

#首先,停用 root 使用者的 SSH 存取並建立具有 root 特權的新使用者。關閉 root 使用者的伺服器存取權是一種防禦策略,可防止攻擊者達到入侵系統的目的。例如,您可以建立名為 exampleroot 的用戶,如下所示:

useradd -m exampleroot
passwd exampleroot
usermod -aG sudo exampleroot
登入後複製

以下是上述指令的簡要解釋:

useradd 指令用於建立新用戶,-m 參數會在 home 目錄下為所建立的使用者建立一個資料夾。

passwd 指令用於給新使用者指派密碼。請記住,分配給使用者的密碼應該是複雜的、難以猜測的密碼。

usermod -aG sudo 將新建立的使用者新增至管理員群組。

在建立使用者後,需要對 sshd_config 檔案進行一些更改。您可以在 /etc/ssh/sshd_config 找到此檔案。使用任何文字編輯器開啟該文件並進行以下更改:

# Authentication: 

#LoginGraceTime 2m 
PermitRootLogin no 
AllowUsers exampleroot
登入後複製

SSH安全入門:在Linux上建立安全連線的13種方法

#PermitRootLogin參數可以防止root使用者使用SSH取得遠端存取權限。將exampleroot包含在AllowUsers清單中授予使用者必要的權限。

最後,使用以下指令重啟SSH服務:

sudo systemctl restart ssh
登入後複製

如果失敗並收到錯誤訊息,請嘗試下面的命令。這可能會因您使用的Linux發行版而異。

sudo systemctl restart sshd
登入後複製

2、更改預設SSH埠

#預設的SSH連接埠是22。當然,所有攻擊者都知道這一點,因此需要更改預設連接埠號碼以確保SSH安全性。雖然攻擊者可以使用Nmap掃描輕鬆找到新連接埠號,但這裡的目標是使攻擊者的工作更加困難。

要變更連接埠號,請開啟/etc/ssh/sshd_config並對檔案進行以下變更:

Include /etc/ssh/sshd_config.d/*.conf

Port 5922
登入後複製

完成此步驟後,再次使用sudo systemctl restart ssh指令重新啟動SSH服務。現在,您可以使用剛定義的連接埠存取伺服器。

如果您正在使用防火牆,則必須在那裡進行必要的規則變更。執行netstat -tlpn指令,您可以看到SSH的連接埠號碼已更改。

3、禁止使用空白密碼登入

#在您的系統上可能存在沒有密碼的用戶,這可能是您不小心創建的。為了防止這樣的使用者存取伺服器,您可以將sshd_config檔案中的PermitEmptyPasswords行值設為no。

PermitEmptyPasswords no
登入後複製

4、限制登入/存取嘗試次數

預設情況下,您可以使用任意多的密碼嘗試來存取伺服器。但是,攻擊者可以利用此漏洞對伺服器進行暴力破解。

您可以透過在sshd_config檔中指定允許的密碼嘗試次數來自動終止SSH連線。

為此,請變更MaxAuthTries值。

MaxAuthTries 3
登入後複製

5、使用SSH Version 2

SSH Version 2 的发布是因为第一版存在许多漏洞。默认情况下,您可以通过将 Protocol 参数添加到您的 sshd_config 文件中来启用使用SSH Version 2。

这样,您所有未来的连接都将使用 SSH2。

Include /etc/ssh/sshd_config.d/*.conf

Protocol 2
登入後複製

SSH安全入門:在Linux上建立安全連線的13種方法

6、关闭TCP端口转发和X11转发

攻击者可以通过SSH连接进行端口转发,尝试获取访问您其他系统的权限。为了防止这种情况发生,您可以在sshd_config文件中关闭AllowTcpForwarding和X11Forwarding功能。

X11Forwarding no 
AllowTcpForwarding no
登入後複製

7、使用SSH密钥连接

连接到服务器最安全的方法之一是使用SSH密钥。使用SSH密钥,您可以无需密码访问服务器。此外,您可以通过更改sshd_config文件中的与密码相关的参数来完全关闭服务器的密码访问。

创建SSH密钥时,有两个密钥:公钥和私钥。公钥上传到您要连接的服务器,私钥存储在使用该密钥进行连接的计算机上。

在计算机上使用ssh-keygen命令创建SSH密钥。不要留空Passphrase字段,并记住您在此输入的密码。

如果您留空该字段,则只能通过SSH密钥文件进行访问。但是,如果设置了密码,您可以防止拥有密钥文件的攻击者访问它。

例如,您可以使用以下命令创建SSH密钥:

ssh-keygen
登入後複製

8、SSH连接的IP限制

大多数情况下,防火墙使用其标准框架阻止访问并旨在保护服务器。但是,这并不总是足够的,您需要增加此安全性潜力。

要做到这一点,请打开/etc/hosts.allow文件。通过在此文件中进行添加,您可以限制SSH权限,允许特定IP块或输入单个IP并使用拒绝命令阻止所有其余IP地址。

下面是一些示例设置。完成这些操作后,像往常一样重新启动SSH服务以保存更改。

IP-Restriction-for-SSH-Connection-1
登入後複製

SSH安全入門:在Linux上建立安全連線的13種方法

9、有选择地允许用户和组访问

您可以配置sshd配置文件以有选择地允许或禁止用户和组从SSH登录到您的服务器。默认情况下,所有用户和组都允许访问。当您管理不应由除那些具有适当权限的人以外的任何人访问的生产服务器时,这是一种安全风险。

以下是您需要添加以允许/拒绝用户和组访问SSH的行:

AllowUsers: username sshuser@ip:port
AllowGroups: groupname
DenyUsers: username1 username2 sshuser@ip:port
DenyGroups: groupname
登入後複製

10、设置空闲超时时间间隔

如果一个受信任的用户离开他们的桌面未经注销,那么拥有他们电脑访问权限的对手可以利用这一点,在缺席或不活动的受信任用户的情况下对服务器进行恶意操作。

抵御这种情况的最简单方法是设置一个空闲超时时间间隔。在定义的一段不活动时间后,服务器将终止与用户的SSH连接,以防止在缺席或不活动的情况下未经授权的访问。

以下是您需要添加到ssh配置文件中以开启此设置的行:

ClientAliveInterval 120
登入後複製

根据配置文件中发出的命令,经过120秒的不活动时间后,连接将被终止。您可以更改数字以适应自己的喜好。

12、添加 Banner 警告语言

虽然这不是一种主动的安全措施,但添加 Banner 警告语言可以是一种有用的心理策略,用于防止不受欢迎的访客,并在他们试图以恶意意图连接到您的服务器时使对手处于不利位置。

要添加自定义 Banner 警告语言,请首先仔细准备横幅的文本或从互联网上抓取一个通用的文本文件,然后将以下行添加到您的配置文件中:

Banner /path/to/banner/banner.txt
登入後複製
登入後複製

12、强制使用强大的MAC算法

在SSH的上下文中,MAC代表消息认证码。MAC是一种加密算法,用于验证和确认客户端与服务器之间的数据传输。

设置强大的MAC算法非常重要,以确保数据的完整性和保密性,这是网络安全的两个关键支柱。以下是您需要在配置文件中添加的行:

Banner /path/to/banner/banner.txt
登入後複製
登入後複製

13、将LogLevel设置为监视SSH活动

您可以监视SSH活动的不同详细程度。默认情况下,此功能可能已关闭。建议您打开此功能,并将其设置为基本日志记录级别 – INFO,该级别仅记录用户的错误、消息、密钥验证、登录和注销活动。

如果您愿意,可以将其更改为更详细的级别,例如VERBOSE或DEBUG。以下是您需要在sshd配置文件中添加的行:

LogLevel INFO
登入後複製

现在,您的SSH服务器将生成基本日志数据,您可以通过导航到并读取基于Debian / Ubuntu的机器上的/var/log/auth.log*文件和基于RHEL / CentOS / Fedora的机器上的/var/log/secure文件来阅读此日志数据。

您可以查看整个日志文件并导航到带有sshd的部分,或者使用grep命令过滤内容并仅阅读sshd日志。

Linux 服务器安全的重要性

通过本文的介绍,我们学习了在Linux上建立SSH安全连接的13种方法,它们可以帮助我们防止一些常见的SSH攻击和漏洞,提高我们的服务器安全性和可信度。当然,这些方法并不是全部,还有一些其他的技巧和工具可以用来增强SSH的安全性,比如使用SSH代理、隧道、跳板等。我们建议你根据自己的实际情况和需求,选择合适的方法来保护你的SSH服务器连接。希望你喜欢这篇文章,并享受你的SSH体验。

以上是SSH安全入門:在Linux上建立安全連線的13種方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

vscode需要什麼電腦配置 vscode需要什麼電腦配置 Apr 15, 2025 pm 09:48 PM

VS Code 系統要求:操作系統:Windows 10 及以上、macOS 10.12 及以上、Linux 發行版處理器:最低 1.6 GHz,推薦 2.0 GHz 及以上內存:最低 512 MB,推薦 4 GB 及以上存儲空間:最低 250 MB,推薦 1 GB 及以上其他要求:穩定網絡連接,Xorg/Wayland(Linux)

Linux體系結構:揭示5個基本組件 Linux體系結構:揭示5個基本組件 Apr 20, 2025 am 12:04 AM

Linux系統的五個基本組件是:1.內核,2.系統庫,3.系統實用程序,4.圖形用戶界面,5.應用程序。內核管理硬件資源,系統庫提供預編譯函數,系統實用程序用於系統管理,GUI提供可視化交互,應用程序利用這些組件實現功能。

notepad怎麼運行java代碼 notepad怎麼運行java代碼 Apr 16, 2025 pm 07:39 PM

雖然 Notepad 無法直接運行 Java 代碼,但可以通過借助其他工具實現:使用命令行編譯器 (javac) 編譯代碼,生成字節碼文件 (filename.class)。使用 Java 解釋器 (java) 解釋字節碼,執行代碼並輸出結果。

vscode終端使用教程 vscode終端使用教程 Apr 15, 2025 pm 10:09 PM

vscode 內置終端是一個開發工具,允許在編輯器內運行命令和腳本,以簡化開發流程。如何使用 vscode 終端:通過快捷鍵 (Ctrl/Cmd ) 打開終端。輸入命令或運行腳本。使用熱鍵 (如 Ctrl L 清除終端)。更改工作目錄 (如 cd 命令)。高級功能包括調試模式、代碼片段自動補全和交互式命令歷史。

vscode 無法安裝擴展 vscode 無法安裝擴展 Apr 15, 2025 pm 07:18 PM

VS Code擴展安裝失敗的原因可能包括:網絡不穩定、權限不足、系統兼容性問題、VS Code版本過舊、殺毒軟件或防火牆干擾。通過檢查網絡連接、權限、日誌文件、更新VS Code、禁用安全軟件以及重啟VS Code或計算機,可以逐步排查和解決問題。

git怎麼查看倉庫地址 git怎麼查看倉庫地址 Apr 17, 2025 pm 01:54 PM

要查看 Git 倉庫地址,請執行以下步驟:1. 打開命令行並導航到倉庫目錄;2. 運行 "git remote -v" 命令;3. 查看輸出中的倉庫名稱及其相應的地址。

vscode在哪寫代碼 vscode在哪寫代碼 Apr 15, 2025 pm 09:54 PM

在 Visual Studio Code(VSCode)中編寫代碼簡單易行,只需安裝 VSCode、創建項目、選擇語言、創建文件、編寫代碼、保存並運行即可。 VSCode 的優點包括跨平台、免費開源、強大功能、擴展豐富,以及輕量快速。

vscode 可以用於 mac 嗎 vscode 可以用於 mac 嗎 Apr 15, 2025 pm 07:36 PM

VS Code 可以在 Mac 上使用。它具有強大的擴展功能、Git 集成、終端和調試器,同時還提供了豐富的設置選項。但是,對於特別大型項目或專業性較強的開發,VS Code 可能會有性能或功能限制。

See all articles