10/11/2017

SSH 遠端連線伺服器 增強安全性

每天都有被大量掃 port 的記錄,為了安全還是將必要的設置變更一下,減少系統資源被消耗殆盡

 

建立新用戶
adduser username


登入用戶
su username


使用 RSA 加密演算出用戶的 密鑰及公鑰
ssh-keygen -t rsa


演算後會在 /home/username/.ssh/ 裡面出現 id_rsa id_rsa.pub 密鑰及公鑰
將 id_rsa.pub 公鑰上傳至 server 將檔案更名 authorized_keys,並設定 .ssh 權限 700,及 authorized_keys id_rsa 權限 600
mv /home/username/.ssh/id_rsa.pub /home/username/.ssh/authorized_keys
chmod 700 /home/username/.ssh
chmod 600 /home/username/.ssh/authorized_keys
chmod 600 /home/username/.ssh/id_rsa


登入 root 將 id_rsa 密鑰複製到方便傳給客戶端的位置,例如 /home 供客戶端抓取密鑰
su root
cp /home/username/.ssh/id_rsa /home


將密鑰傳給客戶端後,將 id_rsa 刪除
rm -f /home/id_rsa


如果客戶端是 Windows 使用 PuTTYgen 將 id_rsa 轉換成 username.ppk
Load 輸入密鑰(id_rsa)路徑
Save private key(儲存 username.ppk)

SSH 設定
vi /etc/ssh/sshd_config


變更默認的 SSH 端口 (建議設置 1024~65535 之間)
啟用 SSH v2 協議
停用根登入 (設置前必須創建用戶或可登入的用戶)
禁止空密碼登入
停用密碼登入
Port 1024
Protocol 2
PermitRootLogin no
PermitEmptyPasswords no
PasswordAuthentication no

Service 設定
vi /usr/lib/firewalld/services/ssh.xml


變更 SSH 服務 (service)的端口 (port),與 SSH 設定端口一致,否則會被防火牆阻擋
<port protocol="tcp" port="1024"/>

重啟 SSH 服務
systemctl restart sshd.service


 




 

重啟 sshd 服務之前需要注意使用的發行版

CentOS 7.3-1611 版本開始 SELinux 默認只能使用 port 22

如果是最小安裝(Minimal),不能使用 semanage 指令

安裝相關套件使用 semanage 增加 SELinux port
yum install policycoreutils-python -y


添加 semanage port 1024
semanage port -a -t ssh_port_t -p tcp 1024


查看 semanage port 的 ssh 設定
semanage port -l | grep ssh


添加後重啟 sshd 服務

 

沒有留言:

張貼留言