前言
近期自己架設郵件伺服器 (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 檔案
安裝步驟
-
選第一個
-
語系選 English
-
選「Continue without updating」
-
選「Done」
-
依需求選
-
由於路由器 (Router) 是設定 DHCP ,會直接分配一個區域網路的 IP ,為避免之後 IP 跑掉,建議可以改成固定 IP
-
選「Edit IPv4」
-
設置如下 (請依照需求調整)
1
2
3
4Subnet: 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
-
確認能正常抓到設定後,選「Done」
-
選「Done」
-
電腦有連網路的話,確認能抓到後,選「Done」
-
對 LVM 不熟的話,建議取消打勾,然後選「Done」
-
這邊將 VirtualBox 配置的 25 GB 容量全給
-
選「Continue」(會把硬碟格式化)
-
設定名稱、密碼
-
選「Continue」
-
勾選安裝「Install OpenSSH server」
-
依需求選,選「Done」之後就會開始安裝,會需要一些時間
-
安裝完成後,會看到「Reboot Now」的選項
-
看到這畫面時,先把 USB/DVD 退出,然後按「Enter」鍵
-
等待下,便會看到此畫面
-
輸入剛才建立的 username 及密碼,便會看到登入成功的畫面
SSH 連線
以 PowerShell 示範,用 SSH 連線到剛才建立的 Ubuntu Server1
ssh demo@192.168.1.126
安裝完成後的設定
習慣先將系統更新到最新
1
2
3
4 apt update -y && apt upgrade -y
等上面指令跑完後,會有提示訊息,接著重開 server
reboot
安裝一些常用的套件
習慣使用 htop
及 ripgrep
1
apt install htop ripgrep -y
改作業系統的時區
預設是 Etc/UTC (UTC, +0000)
時區,改成 Asia/Taipei 時區
1
2
3
4 timedatectl
改成 Asia/Taipei 時區
timedatectl set-timezone Asia/Taipei
調整 SSH 設定
為避免有人想要惡意連線、猜密碼,除了更改 SSH 預設 22 port 之外,也要改成不允許輸入密碼 SSH 連線,只有 SSH public key 被加入的可以連線
另外可以安裝 Fail2ban 來 ban 惡意連線的 IP
1
vim /etc/ssh/sshd_config
1
2
3
4
5
6
7
8
9
10
11# /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
中的設定,二擇一即可
改成以下
1
2
3
4
5
6
7# /etc/ssh/sshd_config.d/50-cloud-init.conf
# before
PasswordAuthentication yes
# after
PasswordAuthentication no
改好設定後,要重啟服務,才會生效
1
service ssh restart
接著用區域網路內其他電腦,嘗試連線看看
1
2
3
4
5
6
7 使用 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/
備註:之後文章修改更新,以個人部落格為主