加強VPS SSH帳號安全:改端口,禁用Root,密鑰登陸,Denyhosts防暴力攻擊

VPS SSH帳號是咱們平常管理VPS的主要登入方式,尤爲是Root帳號,對Linux系統安全相當重要。之前好多站長喜歡用Putty中文版,這實際是別人修改官方Putty漢化而來,這些軟件被植入了後門,致使好幾個有名的站點信息泄露,損失慘重。linux

如何知道本身的VPS帳號正在遭受壞人的掃描和暴力破解呢?簡單的方法就是查看日誌:cat /var/log/auth.log。如何來加強VPS SSH帳號的安全性呢?除了養成使用正規軟件的好習慣外,還要從VPS自己來增強VPS SSH帳號的安全性。shell

默認的SSH端口都是22,經過修改本身的VPS的端口先爲掃描者增長一道端口門檻,VPS默認的帳號是Root,若是咱們禁用了Root,那麼要攻破帳號又得先暴力猜想VPS的帳號,難度又增長几分。若是還不放心,咱們能夠直接禁用密碼登陸驗證VPS的方式,改用密鑰登陸,這樣安全係數是至關高了。vim

Linux還有一個自動統計VPS登陸錯誤工具:Denyhosts,一旦登陸VPS帳號錯誤次數超過了Denyhosts安全設置,Denyhosts就會將該IP記錄下來,同時將其放入黑名單當中,禁止該IP在某一段時間內繼續訪問VPS,經過Denyhosts能夠實現自動封鎖惡意IP。安全

VPS主機和網站安全優化是一個持久的問題,沒有一勞永逸的「安全設置」,道高一尺,魔高一丈,咱們只有不斷地發現問題,才能最大限度地保護本身網站和VPS安全服務器

 

加強VPS SSH帳號安全:改端口,禁止Root,密鑰登陸,Denyhosts防暴力攻擊ssh

1、加強VPS SSH帳號安全方法一:修改SSH登陸端口ide

一、用下面命令進入配置文件。工具

vi /etc/ssh/sshd_config

二、找到#port 22,將前面的#去掉,而後修改端口 port 123(本身設定)。優化

三、而後重啓ssh服務。網站

/etc/init.d/ssh restart

2、加強VPS SSH帳號安全方法二:使用密鑰登陸SSH

一、SSH登陸方式有帳號+密碼和密鑰兩種形式,爲了阻止暴力破解VPS的帳號和密碼,咱們能夠放棄密碼驗證的方式,改用密鑰文件驗證。

二、執行如下命令在VPS上生成密鑰文件。

ssh-keygen -t rsa

三、生成密鑰時會詢問你密鑰保存的位置,默認便可,還有你能夠爲你的密鑰還設置一個密碼,默認爲空。

VPS安全生成密鑰

四、密鑰生成後,進入密鑰存放的目錄中,執行如下命令,將公鑰生成一個新的文件。

cat id_rsa.pub >> authorized_keys

VPS安全生成新文件

五、將id-rsa這個私鑰文件下載到本地,打開PuTTYGen軟件,執行Conversions->Import Key,導入這個私鑰文件。

VPS安全導入私鑰文件

六、Putty使用密鑰登陸SSH方法:若是你要使用Putty,在PuTTYGen中選擇Save private key,這時會在本地生成一個PPK文件。

VPS安全保存本地文件

七、而後在Putty中填入服務器名,在SSH受權方式中選擇密鑰,導入剛剛保存的PPK文件。

VPS安全Putty受權方式

八、使用Xshell經過密鑰登陸VPS方法:若是要使用Xshell,請在PuTTYGen的Conversions中選擇Export Open#SSH Key,設置一個名稱保存。

VPS安全新的格式

九、而後啓用Xshell,填入服務器IP,在用戶身份驗證中選擇「Public Key」,而後瀏覽導入剛剛你保存的Key文件。

VPS安全Xshell導入密鑰

十、導入了Key後,你就能夠直接打開登陸VPS了,不須要輸入密碼,便可進入VPS。

VPS安全直接進入

十一、有了密鑰登陸VPS,咱們就能夠禁止用密碼登陸這種驗證方式了,仍是編輯配置:vim /etc/ssh/sshd_config,

 

添加一行:PasswordAuthentication no,若是有了這一行,請把yes改爲no,保存,重啓SSH服務,生效。

ChallengeResponseAuthentication no
UsePam no

 

VPS安全不用密碼了

3、加強VPS SSH帳號安全方法三:禁用Root帳號

一、若是你已經設置SSH密鑰登陸的方式,就能夠禁用Root帳號了,或者你能夠新建一個VPS帳號。執行如下命令:

useradd freehao123 #添加用戶名
passwd freehao123 #爲freehao123用戶名設置密碼

VPS安全增長新的用戶

二、而後編輯進入配置:vim /etc/ssh/sshd_config,找到PermitRootLogin yes,而後後面的Yes改no,若是沒有這一行命令,直接將:PermitRootLogin no 加進去。

VPS安全不用Root

三、保存後,重啓SSH服務,生效。

4、加強VPS SSH帳號安全方法四:Denyhosts防暴力攻擊

一、Linux各平臺如今基本上均可以直接安裝Denyhosts了,執行如下命令:

Debian/Ubuntu:
sudo apt-get install denyhosts
 
RedHat/CentOS
yum install denyhosts
 
Archlinux
yaourt denyhosts
 
Gentoo
emerge -av denyhosts

二、安裝好了Denyhosts,默認的配置基本上就能夠防護必定的暴力攻擊了,/etc/hosts.deny 文件裏保存了被屏蔽的記錄。

VPS安全自定義設置

三、若是你要自定義Denyhosts的相關配置,執行:vim /etc/denyhosts.conf,如下是相關參數的說明:

SECURE_LOG = /var/log/auth.log #ssh 日誌文件,它是根據這個文件來判斷的。
HOSTS_DENY = /etc/hosts.deny #控制用戶登錄的文件
PURGE_DENY = #過多久後清除已經禁止的,空表示永遠不解禁
BLOCK_SERVICE = sshd #禁止的服務名,如還要添加其餘服務,只需添加逗號跟上相應的服務便可
DENY_THRESHOLD_INVALID = 5 #容許無效用戶失敗的次數
DENY_THRESHOLD_VALID = 10 #容許普通用戶登錄失敗的次數
DENY_THRESHOLD_ROOT = 1 #容許root登錄失敗的次數
DENY_THRESHOLD_RESTRICTED = 1
WORK_DIR = /var/lib/denyhosts #運行目錄
SUSPICIOUS_LOGIN_REPORT_ALLOWED_HOSTS=YES
HOSTNAME_LOOKUP=YES #是否進行域名反解析
LOCK_FILE = /var/run/denyhosts.pid #程序的進程ID
ADMIN_EMAIL = root@localhost #管理員郵件地址,它會給管理員發郵件
SMTP_HOST = localhost
SMTP_PORT = 25
SMTP_FROM = DenyHosts 
SMTP_SUBJECT = DenyHosts Report
AGE_RESET_VALID=5d #用戶的登陸失敗計數會在多久之後重置爲0,(h表示小時,d表示天,m表示月,w表示周,y表示年)
AGE_RESET_ROOT=25d
AGE_RESET_RESTRICTED=25d
AGE_RESET_INVALID=10d
RESET_ON_SUCCESS = yes #若是一個ip登錄成功後,失敗的登錄計數是否重置爲0

5、加強VPS SSH帳號小結

一、上面講到了四個方法來加強VPS SSH帳號的安全性,那麼如何得知本身的VPS曾經或正在遭受帳號暴力破解登陸呢?執行如下命令,查詢出來的結果中包含了「ip地址=數量」就是攻擊者信息。

cat /var/log/secure|awk '/Failed/{print $(NF-3)}'|sort|uniq -c|awk '{print $2"="$1;}'

VPS是否是安全了

二、目前在Putty官網上沒有看到中文版本的Putty,因此網上流行的一些漢化版本的Putty頗有可能被植入了後門,你們在使用時必定要特別留心。Xshell官網直接提供了多國語言,包括中文在內。

相關文章
相關標籤/搜索