糯米文學吧

位置:首頁 > IT認證 > Linux認證

Linux服務器安全技巧有哪些

一台服務器由大量功能各異的部件組成,這一點使得很難根據每個人的需求去提供定製的解決方案。這篇文章儘可能涵蓋一些有所裨益的小技巧來幫助管理員保證服務器和用户安全。下面是yjbys小編為大家分享的Linux服務器安全技巧,希望對大家有所幫助!

Linux服務器安全技巧有哪些

  更改SSH默認端口

在搭建好一台全新的服務器後要做的第一件事情就是更改SSH的默認端口。這個小小的改動能夠使你的服務器避免受到成千上萬的暴力攻擊(LCTT 譯註:不更改默認端口相當於黑客們知道你家的門牌號,這樣他們只需要一把一把的試鑰匙就可能打開你家的鎖)。

要更改默認的SSH端口,先打開sshd_config文件:

sudo vim /etc/ssh/sshd_config

找到下面這行:

#Port 22

“#”號表示這行是註釋。首先刪除#號,然後把端口號改成目的端口。端口號不能超過65535,確保要指定的端口號沒有被系統或其它服務佔用。建議在[維基百科]上查看常用端口號列表。在本文中,使用這個端口號:

Port 16543

然後保存並關閉文件。

接下來的一步是:

  使用SSH密鑰認證

在通過SSH訪問服務器時,使用SSH密鑰進行認證是尤其重要的。這樣做為服務器增加了額外的保護,確保只有那些擁有密鑰的人才能訪問服務器。

在本地機器上運行下面命令以生成SSH密鑰:

ssh-keygen -t rsa

你會看到下面的輸出,詢問要將密鑰寫到哪一個文件裏,並且設置一個密碼:

Generating public/private rsa key pair.

Enter file in which to save the key (/root/_rsa): my_key

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

Your identification has been saved in my_key.

Your public key has been saved in my_.

The key fingerprint is:

SHA256:MqD/pzzTRsCjZb6mpfjyrr5v1pJLBcgprR5tjNoI20A

完成之後,就得到兩個文件:

my_key

my_

接下來把my_拷貝到~/_key中

cp my_ ~/_keys

然後使用下面命令將密鑰上傳到服務器:

scp -P16543 authorized_keys user@yourserver-ip:/home/user/

至此,你就可以從這台本地機器上無密碼地訪問服務器了。

  關閉SSH的密碼認證

既然已經有了SSH密鑰,那麼關閉SSH的密碼認證就會更安全了。再次打開並編輯sshd_config,按如下設置:

ChallengeResponseAuthentication no

PasswordAuthentication no

UsePAM no

  關閉Root登錄

下面關鍵的一步是關閉root用户的直接訪問,而使用sudo或su來執行管理員任務。首先需要添加一個有root權限的新用户,所以編輯這個路徑下的sudoers文件:

/etc/sudoers/

推薦使用如visudo這樣的命令編輯該文件,因為它會在關閉文件之前檢查任何可能出現的語法錯誤。當你在編輯文件時出錯了,這就很有用了。

接下來賦予某個用户root權限。在本文中,使用用户sysadmin。確保在編輯後這個文件時使用的用户是系統已有的用户。找到下面這行:

root ALL=(ALL) ALL

拷貝這行,然後粘貼在下一行,然後把root更改為“sysadmin”,如下所示:

root ALL=(ALL) ALL

sysadmin ALL=(ALL) ALL

現在解釋一下這行的每一個選項的含義:

(1) root (2)ALL=(3)(ALL) (4)ALL

(1) 指定用户

(2) 指定用户使用sudo的終端

(3) 指定用户可以擔任的用户角色

(4) 這個用户可以使用的命令

(LCTT 譯註:所以上面的配置是意思是:root 用户可以在任何終端擔任任何用户,執行任何命令。)

使用這個配置可以給用户訪問一些系統工具的權限。

這時,可以放心保存文件了。

為了關閉通過SSH直接訪問root,需要再次打開sshd_config,找到下面這行:

#PermitRootLogin yes

更改為:

PermitRootLogin no

然後保存文件,重啟sshd守護進程使改動生效。執行下面命令即可:

sudo /etc/init.d/sshd restart

設置防火牆

防火牆有助於過濾出入端口和阻止使用暴力法的登錄嘗試。我傾向於使用SCF(Config Server Firewall)這個強力防火牆。它使用了iptables,易於管理,而且對於不擅於輸入命令的用户提供了web界面。

要安裝CSF,先登錄到服務器,切換到這個目錄下:

cd /usr/local/src/

然後以root權限執行下面命令:

wget

tar -xzf

cd csf

sh

只需等待安裝程序完成,然後編輯CSF的配置文件:

/etc/csf/

默認情況下CSF是以測試模式運行。通過將“TESTING”的.值設置成0,切換到product模式。

TESTING = "0"

下面要設置的就是服務器上允許通過的端口。在中定位到下面的部分,根據需要修改端口:

# 允許入站的 TCP 端口

TCP_IN = "20,21,25,53,80,110,143,443,465,587,993,995,16543"

# 允許出站的 TCP 端口

TCP_OUT = "20,21,22,25,53,80,110,113,443,587,993,995,16543"

# 允許入站的 UDP 端口

UDP_IN = "20,21,53"

標籤:LINUX 服務器