1. 前言
因為 Fedora 有一些安全設定,導致要更動 SSH 的 port 比較麻煩,在不關閉原有的安全設定下,這裡提示一些必要的安全設定操作指令。
2. 相關設定
2.1. sshd_config
/etc/ssh/sshd_config
2.1.1. 安全性設定
# What ports, IPs and protocols we listen for
Port 12345
SSH 預設使用 port 22,建議更改,特別在面向網路網路使用時,幾乎只要一上網就會被攻擊。埠號可自定,不要與使用中的埠號即可。
PermitRootLogin prohibit-password
建議不要使用 root 登入 SSH,所以可將 PermitRootLogin 設為 no。但讓 root 能登入有時候滿方便的,特別是有時需要傳一些需要 root 權限的檔案時,可以省掉一些操作上的麻煩。所以這裡使用 prohibit-password,再加上使用免密碼登入方式,就可以讓 root 能登入 SSH,且能保持一定程度的安全性。
#AllowUsers cy # NOTE! this will disable root login
可限定只有某些使用者登入,值得注意的是,若沒有加入 root,將會使 root 不能登入,即使 PermitRootLogin 為 yes 或 prohibit-password 亦然。在我的 Server 並未實作此項,所以前面加 #。
2.1.2. 效能性設定
UseDNS no
加了這個據說能加速登入速度。
2.2. 變更 systemd socket
systemctl edit sshd.socket
將前面的#符號去掉,修改以下設定:
[Socket]
ListenStream=
ListenStream=12345
2.2. 變更 SELinux
增加新修改的port號如下,但是要去掉原先的22埠似乎有問題,暫且不管它。
semanage port -a -t ssh_port_t -p tcp 12345
用以下的指令可觀察是否變更。
semanage port -l | grep ssh_port_t
以下為執行結果,僅供參考。
ssh_port_t                     tcp      12345, 22
2.2. 變更防火牆
打開新修改的port:
firewall-cmd --permanent --service="ssh" --add-port "12345/tcp"
開閉原來的port22:
firewall-cmd --permanent --service="ssh" --remove-port "22/tcp"
重啟防火牆:
firewall-cmd --reload
5. 服務管理
安裝完會自動啟動服務,其餘服務常用操作指令如下所列。
systemctl status sshd.service
systemctl restart sshd.service
systemctl enable sshd.service