安裝 CentOS 7 後必做的七件事
CentOS是最多人用來運(yùn)行服務(wù)器的Linux版本,當(dāng)在一臺(tái)主機(jī)或VPS上安裝CentOS 7后,首要的工作肯定是加強(qiáng)它的安全性,以下列出的七件事,是進(jìn)一步配置系統(tǒng)和安裝其他軟件前必須做的。
1. 更改root密碼
首先使用ssh登入服務(wù)器,在Windows可以使用Putty、Xshell,或者在Cygwin環(huán)境下執(zhí)行OpenSSH。在Mac和Linux上只需在終端機(jī)(terminal)中執(zhí)行以下指令便可以了,比Windows簡單得多:
ssh root@45.56.78.90
第一次使用ssh登陸服務(wù)器,你的電腦會(huì)把服務(wù)器的加密公鑰下載,然后詢問你是否信任它,選擇是就可以了。
用passwd命令更改密碼,需要輸入兩次新密碼。
好的密碼應(yīng)該同時(shí)包含數(shù)字、小寫英文字母、大寫英文字母、和標(biāo)點(diǎn)符號(hào),最少15個(gè)字符,這樣的密碼強(qiáng)度大概有90 bit,一般可以對(duì)付暴力破解。
2. 新增一個(gè)普通帳號(hào)
這一步連同下一步,相當(dāng)于為一個(gè)城市筑起兩道城墻,既可加強(qiáng)防衛(wèi),也建立了一道警報(bào)機(jī)制,當(dāng)敵人(***)卒然來襲,第一道城墻被襲擊和破壞,我們還有第二道城墻阻延一下,有時(shí)間部署防衛(wèi)甚至反擊。所以這是一個(gè)很多人忽略,但其實(shí)非常重要的步驟。
首先我們新增一個(gè)帳號(hào):useradd abcd
設(shè)定abcd的密碼: passwd abcd
平時(shí)我們用abcd賬號(hào)登錄,需要特權(quán)命令時(shí)候再su到root賬號(hào)下進(jìn)行操作,這樣安全的多。
3. 禁止root使用ssh登入
CentOS 7預(yù)設(shè)容許任何帳號(hào)透過ssh登入,包括root和一般帳號(hào),為了不讓root帳號(hào)被***暴力***,我們必須禁止root帳號(hào)的ssh功能,事實(shí)上root也沒有必要ssh登入服務(wù)器,因?yàn)橹灰褂胹u或sudo (當(dāng)然需要輸入root的密碼)普通帳號(hào)便可以擁有root的權(quán)限。使用vim編輯/etc/ssh/sshd_config,尋找:#PermitRootLogin yes 修改為PermitRootLogin no
然后重起sshd服務(wù):systemctl restart sshd
這樣***要取得root的權(quán)限,必須破解root和一個(gè)普通用戶的密碼,難度增加了。
完成后不要登出系統(tǒng),使用另一個(gè)視窗嘗試登入root和普通帳號(hào),測試無誤便可進(jìn)行下一步。
4. 使用非常規(guī)的ssh端口
SSH默認(rèn)使用端口22,這是在IANA注冊(cè)的官方端口,但沒有人說ssh不能使用其他端口,很多***專門向服務(wù)器的22端口發(fā)動(dòng)***,即使你的服務(wù)器固若金湯、牢不可破,但是要系統(tǒng)日以繼夜接受***,消耗的系統(tǒng)資源非常大的,何況它是否真的牢不可破還說不定呢!所以有必要讓ssh使用其他端口,只讓有權(quán)使用ssh的用戶知道。
使用vim編輯/etc/ssh/sshd_config,尋找:#Port 22 修改為 Port 12345
你可以把12345改為任何1024 – 65535之間的任何數(shù)字,若果怕與某些系統(tǒng)服務(wù)發(fā)生沖突,可以參考一下這里。
重新啟動(dòng)sshd服務(wù):systemctl restart sshd
最后是設(shè)定防火墻放行新端口:
firewall-cmd –zone=public –add-port=12345/tcp –permanent
不論使用哪種方法,完成后不要登出系統(tǒng),使用另一個(gè)視窗嘗試登入,例如:ssh -p 12345 abcd@45.56.78.90 登錄正常即可放心登出。
5.啟用公鑰驗(yàn)證登入ssh
現(xiàn)在只有普通帳號(hào)才能透過ssh登入服務(wù)器,但是ssh提供一個(gè)更先進(jìn)更安全的驗(yàn)證方法:公鑰驗(yàn)證法。
首先每一名用戶建立一對(duì)加密鑰匙(密鑰和公鑰),密鑰儲(chǔ)存在日常使用的電腦,公鑰則儲(chǔ)存在服務(wù)器,使用ssh聯(lián)系到服務(wù)器的時(shí)候,電腦會(huì)把一些建立連接請(qǐng)求的資料,其中包括帳號(hào)名稱和公鑰,并且把部分資料用密鑰制作數(shù)碼簽署,一股腦兒送到服務(wù)器,服務(wù)器檢查自己的公鑰庫是否包含送來的公鑰,有的話再驗(yàn)證數(shù)碼簽署,成功的話便直接登入服務(wù)器,無需輸入帳號(hào)密碼。
第一步在日常使用的電腦上使用ssh-keygen指令建立一對(duì)加密鑰匙,它會(huì)詢問儲(chǔ)存加密鑰匙的文件名稱,和把鑰匙加密的密碼,文件名稱使用預(yù)設(shè)的路徑和名稱便可以,密碼則無需輸入:ssh-keygen -t rsa
這個(gè)指令會(huì)創(chuàng)造兩個(gè)文件,一個(gè)名為id_rsa,是你的RSA密鑰,另一個(gè)是id_rsa.pub,是你的RSA公鑰。公鑰必需上傳到服務(wù)器并且附加于用戶帳號(hào)里面的.ssh/authorized_keys文件中,這個(gè)文件儲(chǔ)存所有可透過ssh登入到這一個(gè)帳號(hào)的公鑰,一行一條公鑰。
把公鑰使用ssh-copy-id或scp命令上傳到服務(wù)器家目錄.ssh目錄下面。ssh-copy-id -i .ssh/id_rsa.pub abcd@45.56.78.90
這樣登錄時(shí)候可以使用公鑰認(rèn)證了,使用公鑰驗(yàn)證法登入ssh又省力又安全,因?yàn)槲覀儾挥幂斎朊艽a,自然也沒有密碼被盜取的憂慮,簡簡單單地輸入連接指令便可以了。
但是存放在日常電腦中的密鑰卻帶來新的安全隱患,萬一密鑰被盜取了,其他人豈不是可以隨便登入服務(wù)器?現(xiàn)在是雙重驗(yàn)證(two-factor authentication) 隆重登場的時(shí)候,雙重驗(yàn)證的理念是我們必須向服務(wù)器證明兩種不同性質(zhì)的東西,才能成功驗(yàn)證身分,第一樣是我們知道什么,第二樣是我們擁有什么。首先服務(wù)器會(huì)要求我們輸入密碼,我們知道密碼,過了第一關(guān)。跟著服務(wù)器要求我們證明擁有公鑰驗(yàn)證法中的密鑰,透過上面的設(shè)定程序我們也通過了驗(yàn)證,過了第二關(guān)。現(xiàn)在服務(wù)器才會(huì)讓我們進(jìn)入系統(tǒng)。
設(shè)定ssh的雙重驗(yàn)證法很簡單,使用vim打開/etc/ssh/sshd_config,在文件的末端假如這一行:AuthenticationMethods publickey,password
它告訴服務(wù)器用戶必須擁有合法的公鑰,和輸入正確的密碼才能成功登入。修改完成后重新啟動(dòng)sshd:systemctl restart sshd
完成后不要登出系統(tǒng),使用另一個(gè)視窗嘗試登入,測試無誤便可進(jìn)行下一步。
6. 更新、更新、每天更新、每天自動(dòng)更新
每一天都有成千上萬的***在世界各地尋找Linux系統(tǒng)和常見軟件的安全漏洞,一有發(fā)現(xiàn)便會(huì)發(fā)動(dòng)規(guī)模龐大而迅速的網(wǎng)絡(luò)***,務(wù)求在我們來得及反應(yīng)前把系統(tǒng)攻陷。不要以為***都只是十來歲的年輕小毛頭,大部分***背后都有勢力龐大、資源幾乎無限的國家機(jī)構(gòu)支持,有些甚至屬于這些機(jī)構(gòu)的雇員,美國的NSA,英國的GQHC,都是比較明目張膽由國家支持的網(wǎng)絡(luò)黑幫,可見我們的系統(tǒng)時(shí)時(shí)刻刻都被兇狠之徒盯著,保持軟件在最新的狀態(tài)是其中一項(xiàng)我們必須做,也很容易做到的工作。
首先我們立即手動(dòng)更新所有預(yù)先安裝的軟件:yum -y update
跟著設(shè)定系統(tǒng)定時(shí)自動(dòng)更新,第一步確定服務(wù)器是否安裝了自動(dòng)執(zhí)行指令的工具,跟著使用yum一個(gè)名叫yum-cron插件。
CentOS 7有幾個(gè)類似軟件來自動(dòng)執(zhí)行指令:cron、anacron、at和batch,其中cron和anacron用來定期重復(fù)執(zhí)行指令,At和batch則用來在特定時(shí)間執(zhí)行一次性的指令。安裝cron:
yum -y install yum-cron
接著我們修改配置文件,讓yum-cron自動(dòng)更新軟件,使用vim 編輯/etc/yum/yum-cron.conf,尋找:apply_updates = no修改為:apply_updates = yes
啟動(dòng)服務(wù):systemctl start crond ?systemctl start yum-cron
7.開啟防火墻
防火墻的作用好比網(wǎng)絡(luò)警察,它監(jiān)察所有進(jìn)出系統(tǒng)的IP 封包,哪些端口容許封包進(jìn)入,哪些端口容許封包外出等等,都由防火墻控制,保護(hù)使用這些端口的應(yīng)用程式,所以設(shè)定防火墻是極重要的工作。
過濾封包功能的netfilter 已經(jīng)內(nèi)建在CentOS 7 的內(nèi)核。
查看一下防火墻現(xiàn)在編輯了哪些服務(wù)和端口:firewall-cmd –list-all
一般防火墻只開啟了DHCP 客戶端和ssh 兩個(gè)服務(wù)的通訊端口,倘若日后安裝了其他網(wǎng)絡(luò)軟件,如web服務(wù)器,必須要檢查安裝程式有否編輯他們的通訊端口,沒有的話便要手動(dòng)編輯。如果好像前面第四點(diǎn)那樣使用了非常規(guī)的通訊端口,也可能要手動(dòng)配置防火墻。firewall幾個(gè)常用命令:
systemctl start firewalld
systemctl enable firewalld
systemctl stop firewalld
systemctl disable firewalld
firewall-cmd –help
firewall-cmd –add-service=ftp –permanent
firewall-cmd –remove-service=ftp –permanent
firewall-cmd –add-port=3128/tcp
systemctl restart firewalld
firewall-cmd –state
轉(zhuǎn)載于:https://blog.51cto.com/itpanda/1722769
總結(jié)
以上是生活随笔為你收集整理的安裝 CentOS 7 後必做的七件事的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CCNP学习笔记7-路由部分--OSPF
- 下一篇: Linux scp复制文件,不需要输入密