LINUX sshd 安全設定(安全遠端連線設定)

LINUX sshd 安全設定(安全遠端連線設定)

LINUX sshd 安全設定(安全遠端連線設定) 

資料來源:http://por.tw/linux/rewrite.php/read-111.html

SSH 伺服器的設定檔是 /etc/ssh/sshd_config,以下是一些 SSH 的安全配置:

為了加強SSH安全性, 除了限制root帳號登入這種必備的手段之外, 還參照了前輩們的做法, 從三部分來著手:

一. sshd_config 部分

這是一個很簡單的設定手段, 除了限制root之外, 還順便限制連線數, 如下:

#LoginGraceTime 2m
PermitRootLogin no
#StrictModes yes
MaxAuthTries 2

# To disable tunneled clear text passwords, change to no here!
#PasswordAuthentication yes
PermitEmptyPasswords no
PasswordAuthentication yes

# ChallengeResponseAuthentication=no
#UsePAM no
UsePAM yes

1. SSH 預設會使用 Port 22,將它改成其他的埠號,找到:

Port 22 換成:

Port new_port

2. 禁止 root 直接登入,先要登入一般賬戶,再用 su 指令切換到 root,把 PermitRootlogin 設成 no:

PermitRootlogin no

3. 只給予特定使用者或群組登入 SSH,以下是准許 my_name 使用者及 my_group 群組登入:

AllowUsers my_name
AllowGroups my_group

4. 禁止使用空密碼登入:

PermitEmptyPasswords no

最後儲存檔案,並重新啟動 SSH 伺服器。

—————————————————————————-

 

二.利用hosts.deny與hosts.allow 設定可以連線的ip:

先在 /etc/hosts.allow 裡面, 設定哪些ip是可以連線的, 例如前輩們所舉例的:
sshd:140.128.1.123

, 接著, 再到 /etc/hosts.deny 裡面設定拒絕所有ip連線:
sshd:all

於是, 就只有在 /etc/hosts.allow 清單裡面的IP, 才可以使用ssh 來主機連線, 其餘都會被拒絕掉.

—————————————————————————-

 

三. 利用pam機制:

在最上面那文章裡面提到, 利用pam機制, 讓sshd接到連線時, 先檢查是否在黑名單之中的做法. 方法很簡單, 就是在/etc/pam.d/ssh裡面增加下面的設定:

auth required pam_stack.so service=system-auth
auth required /lib/security/pam_listfile.so item=user sense=deny file=/etc/sshd_user_deny_list onerr=succeed
account required pam_nologin.so
account required pam_stack.so service=system-auth
password required pam_stack.so service=system-auth
session required pam_stack.so service=system-auth

session required pam_loginuid.so

(特別注意, 上面設定都是同一行, 並無斷行)
特別新增的是紅色字的部分. 當你的名字在該檔案( /etc/sshd_user_deny_list )之中時, 就無法利用ssh來登入系統.

利用以上三個方法, 可以讓你的主機在提供sshd連線的時候, 安全度提升不少. 但切記, 經常的檢查與更新, 減少不必要的服務, 增加許多的安全限制, 才是主機管理的最佳策略!

 

 

 

 

 

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *