[指令日記] 003 Kali Linux SSH 設定與安全性強化指南:從安裝到遠端連線
飛飛 | 2024-10-24在進行 Kali Linux SSH 設定之前,我們需要了解完整的安裝流程、基礎配置以及安全性設定。本教學將帶您一步步建立安全的 SSH 環境,適合初學者從頭學習。
1. Kali Linux SSH 基礎設定
1.1 系統需求與準備
- Kali Linux 作業系統(建議使用最新版本)
- 系統管理員權限
- 穩定的網路連線
- 至少 100MB 的硬碟空間
1.2 OpenSSH Server 安裝步驟
- 檢查現有安裝
dpkg -l | grep ssh
- 更新套件庫並安裝
sudo apt update
sudo apt install openssh-server
2. SSH 服務設定與啟用
2.1 啟動 SSH 服務
- 啟動 SSH 服務的標準流程
sudo systemctl start ssh
2.2 設定自動啟動
- 設定系統開機時自動啟動 SSH
sudo systemctl enable ssh
2.3 檢查服務狀態
- 確認 SSH 服務運作狀況
# 檢查服務狀態
sudo systemctl status ssh
# 檢查監聽端口
netstat -tulpn | grep ssh
3. SSH 安全性強化設定
3.1 修改預設連接埠
編輯 SSH 設定檔 /etc/ssh/sshd_config
:
# 備份原始設定檔
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
# 修改設定檔
sudo nano /etc/ssh/sshd_config
# 修改以下設定
Port 2222 # 更改預設的 22 端口
3.2 設定使用者權限
- 強化使用者存取控制
# 禁用 root 登入
PermitRootLogin no
# 限制允許的使用者
AllowUsers user1 user2
# 設定最大登入嘗試次數
MaxAuthTries 3
# 設定登入逾時時間
LoginGraceTime 30
3.3 密鑰認證設定
- 生成 SSH 密鑰對
# 在客戶端生成密鑰對
ssh-keygen -t rsa -b 4096
- 設定伺服器端
# 將公鑰複製到伺服器
ssh-copy-id -i ~/.ssh/id_rsa.pub user@server
# 禁用密碼認證
PasswordAuthentication no
4. 遠端連線與應用
4.1 基本連線指令
- 常用的 SSH 連線指令
# 基本連線
ssh user@server -p 2222
# 使用密鑰連線
ssh -i ~/.ssh/id_rsa -p 2222 user@server
# 啟用壓縮
ssh -C user@server
4.2 檔案傳輸應用
- 使用 SCP 進行安全檔案傳輸
# 上傳檔案
scp -P 2222 localfile.txt user@server:/remote/path
# 下載檔案
scp -P 2222 user@server:/remote/file.txt ./
# 傳輸整個目錄
scp -r -P 2222 localdir/ user@server:/remote/path
4.3 進階端口轉發
SSH 通道和端口轉發設定
# 本地端口轉發
ssh -L 8080:localhost:80 user@server
# 遠端端口轉發
ssh -R 8080:localhost:80 user@server
# 動態端口轉發 (SOCKS 代理)
ssh -D 9090 user@server
安全性建議與最佳實踐
- 定期更新系統和 SSH
sudo apt update && sudo apt upgrade
- 監控 SSH 日誌
sudo tail -f /var/log/auth.log
- 設定防火牆規則
sudo ufw allow 2222/tcp
sudo ufw enable
- 使用 fail2ban 防止暴力破解
sudo apt install fail2ban
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
透過以上完整的設定和實作,您可以在 Kali Linux 上建立一個安全且可靠的 SSH 環境。記得定期檢查系統日誌、更新安全性設定,並保持良好的密碼管理習慣。
相關資源:
您想了解更多關於特定設定或有任何疑問,歡迎在下方留言詢問!
[指令日記] 002 正則表達式於 VSCode 與 Notepad++ 的取代技巧
飛飛 | 2023-02-27前言
記錄一下,針對 vscode 或 notepad ++ 正則表達式的取代技巧。
正文
- 原始資料
class feifeiview(ListView,...
- 取得該段資料
- 正則表達式
class (.*)\(
- 正則表達式
- 保留原本的資料
- vscode:
class $1(要增加的內容,
- notepad++:
class $1\(要增加的內容,
$1
代表的是(.*)
的內容
- vscode:
截圖
- NotePad ++ 規則運算式取代截圖
- vscode 正則表達式取代截圖
[指令日記] 001 IIS Log 預設路徑 & 修改檔案時間(Windows、Linux)
飛飛 | 2022-04-25本系列紀錄維謢專案時用到的指令,本次專案遇到需要查詢 IIS Log 預設路徑,以及更改特定的檔案時間 Windows、Linux 。
IIS Logs Location
預設路徑: %SystemDrive%\inetpub\logs\LogFiles
修改檔案時間
修改 Windows 檔案的時間
$(Get-Item ).creationtime=$(Get-Date "mm/dd/yyyy hh:mm am/pm")
$(Get-Item ).lastaccesstime=$(Get-Date "mm/dd/yyyy hh:mm am/pm")
$(Get-Item ).lastwritetime=$(Get-Date "mm/dd/yyyy hh:mm am/pm")
修改 Linux 檔案的時間
touch -t 202204240145.10 檔案名稱