2021年11月5日 星期五

在 Fedora 設定 SSH Server 的 port

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


沒有留言:

張貼留言