CentOS服務器安全配置策略

近期服務器頻繁有被暴力破解,大致分析了一下入侵行爲,整理了常用的安全策略:

最小的權限+最少的服務=最大的安全


1. 修改ssh默認連接22端口 和 添加防火牆firewalld 通過端口


步驟:

1) 修改ssh的默認端口22:

vi /etc/ssh/sshd_config

這裏寫圖片描述

2)讓防火牆通過這個端口

firewall-cmd --state【firewalld是否運行】
firewall-cmd --permanent --list-port【查看端口列表】
firewall-cmd --permanent --zone=public --add-port=48489/tcp【添加端口】
firewall-cmd --permanent --remove-port=48489/tcp【刪除端口】

3)重啓SSH服務,並退出當前連接的SSH端口

service sshd restart

4)然後通過putty ssh連接軟件鏈接一下,使用默認22號端口無法進入SSH,達到目的,就OK了~


2. 禁止root帳號直接登錄


Linux的默認管理員名即是root,只需要知道ROOT密碼即可直接登錄SSH。禁止Root從SSH直接登錄可以提高服務器安全性。經過以下操作後即可實現。

1)新建帳戶和設置帳戶密碼

useradd ityangs
passwd ityangs

2)不允許root直接登陸

vi /etc/ssh/sshd_config

查找“#PermitRootLogin yes”,將前面的“#”去掉,短尾“Yes”改爲“No”,並保存文件。

這裏寫圖片描述

systemctl restart sshd.service【重啓ssh,另一種方法重啓】

3)下次登陸

  • 先使用新建賬號“ityangs”以普通用戶登陸。

  • 若要獲得ROOT權限,在SSH中執行以下命令

su root

執行以上命令並輸入root密碼後即可獲得root權限。

4)WinSCP下su切換到root的技巧(禁止root遠程ssh登錄時)

限制了root用戶的遠程登錄,但是重要的數據文件都是700。更可悲的是,WinSCP完全失去了用武之地。因爲root賬戶無法登陸,而像是FTP,SFTP,SCP這些協議都不支持在登錄以後切換用戶。
SCP協議在登錄的時候可以指定shell,一般默認的也就是推薦的是/bin/bash,但是我們可以修改它來玩花樣,比如改成sudo su -
但是新問題又來了,sudo需要輸入密碼,但是WinSCP在登錄的時候並沒有交互過程。但是天無絕人只要在root權限之路,只要在root權限下visudo,添加如下一行即可取消sudu時的密碼:
yourusername ALL=NOPASSWD: ALL
爲了可以在非putty的環境下sudo,我們還需要註釋掉下面一行:
Defaults requiretty
然後保存,即可在登錄到WinSCP的時候享受root的快感啦!

步驟:

  • 普通用戶ssh到服務器,切換到root權限
  • visudo,然後添加 yourusername ALL=NOPASSWD: ALL 這一行,註釋掉Defaults requiretty
[root@iZ252wo3Z ~]# visudo
ityangs ALL=NOPASSWD: ALL
#Defaults requiretty 【沒有可不用管】
  • 修改WinSCP的文件協議爲SCP

這裏寫圖片描述

  • 修改環境-SCP/Shell下的shell爲sudo su-

這裏寫圖片描述

  • 登錄WinSCP即可。

3. 安裝DenyHosts【攔截獲取攻擊的IP,生成黑名單,防止再次攻擊】


DenyHosts(項目主頁:http://denyhosts.sourceforge.net/)是運行於Linux上的一款預防SSH暴力破解的軟件,可以從http://sourceforge.net/projects/denyhosts/files/進行下載,然後將下載回來的DenyHosts-2.6.tar.gz源碼包上傳到Linux系統中。

下面是安裝過程
****************************************************************
tar zxvf DenyHosts-2.6.tar.gz                                           #解壓源碼包
cd DenyHosts-2.6                                                            #進入安裝解壓目錄
python setup.py install                                                    #安裝DenyHosts
cd /usr/share/denyhosts/                                                #默認安裝路徑
cp denyhosts.cfg-dist denyhosts.cfg                                #denyhosts.cfg爲配置文件
cp daemon-control-dist daemon-control                        #daemon-control爲啓動程序
chown root daemon-control                                           #添加root權限
chmod 700 daemon-control                                            #修改爲可執行文件
ln -s /usr/share/denyhosts/daemon-control /etc/init.d     #對daemon-control進行軟連接,方便管理

安裝到這一步就完成了。
/etc/init.d/daemon-control start          #啓動denyhosts
chkconfig daemon-control on             #將denghosts設成開機啓動
******************************************************************

vi /usr/share/denyhosts/denyhosts.cfg       #編輯配置文件,另外關於配置文件一些參數,通過grep -v "^#" denyhosts.cfg查看
SECURE_LOG = /var/log/secure                  #ssh 日誌文件,redhat系列根據/var/log/secure文件來判斷;Mandrake、FreeBSD根據 /var/log/auth.log來判斷
                                                                  #SUSE則是用/var/log/messages來判斷,這些在配置文件裏面都有很詳細的解釋。
HOSTS_DENY = /etc/hosts.deny                 #控制用戶登陸的文件
PURGE_DENY = 30m                                  #過多久後清除已經禁止的,設置爲30分鐘;
# ‘m’ = minutes
# ‘h’ = hours
# ‘d’ = days
# ‘w’ = weeks
# ‘y’ = years
BLOCK_SERVICE = sshd                           #禁止的服務名,當然DenyHost不僅僅用於SSH服務
DENY_THRESHOLD_INVALID = 1             #允許無效用戶失敗的次數
DENY_THRESHOLD_VALID = 3                 #允許普通用戶登陸失敗的次數
DENY_THRESHOLD_ROOT = 3                 #允許root登陸失敗的次數
DAEMON_LOG = /var/log/denyhosts      #DenyHosts日誌文件存放的路徑,默認

更改DenyHosts的默認配置之後,重啓DenyHosts服務即可生效: 
/etc/init.d/daemon-control restart         #重啓denyhosts
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章