[指令日記] 003 Kali Linux SSH 設定與安全性強化指南:從安裝到遠端連線

飛飛 | 2024-10-24

在進行 Kali Linux SSH 設定之前,我們需要了解完整的安裝流程、基礎配置以及安全性設定。本教學將帶您一步步建立安全的 SSH 環境,適合初學者從頭學習。

1. Kali Linux SSH 基礎設定

1.1 系統需求與準備

  • Kali Linux 作業系統(建議使用最新版本)
  • 系統管理員權限
  • 穩定的網路連線
  • 至少 100MB 的硬碟空間

1.2 OpenSSH Server 安裝步驟

  1. 檢查現有安裝
dpkg -l | grep ssh
  1. 更新套件庫並安裝
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 密鑰認證設定

  1. 生成 SSH 密鑰對
# 在客戶端生成密鑰對
ssh-keygen -t rsa -b 4096
  1. 設定伺服器端
# 將公鑰複製到伺服器
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

安全性建議與最佳實踐

  1. 定期更新系統和 SSH
sudo apt update && sudo apt upgrade
  1. 監控 SSH 日誌
sudo tail -f /var/log/auth.log
  1. 設定防火牆規則
sudo ufw allow 2222/tcp
sudo ufw enable
  1. 使用 fail2ban 防止暴力破解
sudo apt install fail2ban
sudo systemctl enable fail2ban
sudo systemctl start fail2ban

透過以上完整的設定和實作,您可以在 Kali Linux 上建立一個安全且可靠的 SSH 環境。記得定期檢查系統日誌、更新安全性設定,並保持良好的密碼管理習慣。

相關資源:

您想了解更多關於特定設定或有任何疑問,歡迎在下方留言詢問!

[指令日記] 002 正則表達式於 VSCode 與 Notepad++ 的取代技巧

飛飛 | 2023-02-27

前言

記錄一下,針對 vscode 或 notepad ++ 正則表達式的取代技巧。

正文

  1. 原始資料
    • class feifeiview(ListView,...
  2. 取得該段資料
    • 正則表達式 class (.*)\(
  3. 保留原本的資料
    • vscode: class $1(要增加的內容,
    • notepad++: class $1\(要增加的內容,
    • $1 代表的是 (.*) 的內容

截圖

  • NotePad ++ 規則運算式取代截圖
    • NotePad ++ 規則運算式取代截圖
  • vscode 正則表達式取代截圖
    • 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 檔案名稱