前言
近期自己架設郵件伺服器 (Mail Server) 上線了,是在本地端透過 Ubuntu Server 建置,會將整個過程拆成幾篇文章記錄下,這篇是紀錄如何安裝 Ubuntu Server
說明
- 到 Ubuntu 官方下載 ISO,我是選
Ubuntu Server 22.04.2 LTS
,LTS 是長期支援版本,長期支援(LTS)版本每兩年釋出一次。普通版本一般只支援 9 個月,但 LTS 版本一般能提供 5 年的支援。 - 為方便截圖安裝步驟,是在 Windows 作業系統上,以 VirtualBox 虛擬機器軟體來安裝作業系統
- 將開機順序 USB/DVD 設定成第一順位, VirtualBox 中則是掛載 ISO 檔案
安裝步驟
- 選第一個
2. 語系選 English
3. 選「Continue without updating」
4. 選「Done」
5. 依需求選
6. 由於路由器 (Router) 是設定 DHCP ,會直接分配一個區域網路的 IP ,為避免之後 IP 跑掉,建議可以改成固定 IP
7. 選「Edit IPv4」
8. 設置如下 (請依照需求調整)
Subnet: 192.168.1.0/24
Address: 192.168.1.126
Gateway: 192.168.1.1
Name Server: 1.1.1.1,1.0.0.1
9. 確認能正常抓到設定後,選「Done」
10. 選「Done」
11. 電腦有連網路的話,確認能抓到後,選「Done」
12. 對 LVM 不熟的話,建議取消打勾,然後選「Done」
13. 這邊將 VirtualBox 配置的 25 GB 容量全給
14. 選「Continue」(會把硬碟格式化)
15. 設定名稱、密碼
16. 選「Continue」
17. 勾選安裝「Install OpenSSH server」
18. 依需求選,選「Done」之後就會開始安裝,會需要一些時間
19. 安裝完成後,會看到「Reboot Now」的選項
20. 看到這畫面時,先把 USB/DVD 退出,然後按「Enter」鍵
21. 等待下,便會看到此畫面
22. 輸入剛才建立的 username 及密碼,便會看到登入成功的畫面
SSH 連線
以 PowerShell 示範,用 SSH 連線到剛才建立的 Ubuntu Server
$ ssh demo@192.168.1.126
安裝完成後的設定
習慣先將系統更新到最新
$ apt update -y && apt upgrade -y
# 等上面指令跑完後,會有提示訊息,接著重開 server
$ reboot
安裝一些常用的套件
習慣使用 htop
及 ripgrep
$ apt install htop ripgrep -y
改作業系統的時區
預設是 Etc/UTC (UTC, +0000)
時區,改成 Asia/Taipei 時區
$ timedatectl
# 改成 Asia/Taipei 時區
$ timedatectl set-timezone Asia/Taipei
調整 SSH 設定
為避免有人想要惡意連線、猜密碼,除了更改 SSH 預設 22 port 之外,也要改成不允許輸入密碼 SSH 連線,只有 SSH public key 被加入的可以連線
另外可以安裝 Fail2ban 來 ban 惡意連線的 IP
$ vim /etc/ssh/sshd_config
# /etc/ssh/sshd_config
# before
#Port 22
#PasswordAuthentication yes
#PermitEmptyPasswords no
# after, 移除前面 #, 調整設定
Port 9527
PasswordAuthentication no
PermitEmptyPasswords no
上述的 /etc/ssh/sshd_config
檔案中,可將 Include /etc/ssh/sshd_config.d/*.conf
這行註解
或者更改檔案 /etc/ssh/sshd_config.d/50-cloud-init.conf
中的設定,二擇一即可
改成以下
# /etc/ssh/sshd_config.d/50-cloud-init.conf
# before
PasswordAuthentication yes
# after
PasswordAuthentication no
改好設定後,要重啟服務,才會生效
$ service ssh restart
接著用區域網路內其他電腦,嘗試連線看看
# 使用 SSH 預設 22 port 連線
$ ssh demo@192.168.1.126
ssh: connect to host 192.168.1.126 port 22: Connection refused
# 使用剛設定的 9527 port 連線
$ ssh demo@192.168.1.126 -p 9527
demo@192.168.1.126: Permission denied (publickey).
小結
在設定 sshd_config
時,沒發現 Include /etc/ssh/sshd_config.d/*.conf
這行,很困惑怎設定沒生效,也重開機過,感謝 Michael 協助,才發現小丑是我自己 xDD
medium 文章連結:https://riverye.medium.com/19d070c1623c
本文同步發布於 小菜的 Blog https://riverye.com/
備註:之後文章修改更新,以個人部落格為主