自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Linux服務(wù)器安全配置實(shí)例(二)用戶賬戶權(quán)限配置

系統(tǒng) Linux 系統(tǒng)運(yùn)維
配置用戶權(quán)限是個(gè)細(xì)致的活,尤其在不同用戶活動(dòng)空間和執(zhí)行命令上配置需要謹(jǐn)慎,稍有遺漏都有可能會(huì)被惡意攻擊者利用。通常我們會(huì)采用編寫(xiě)腳本方式對(duì)這些進(jìn)行配置,如果對(duì)服務(wù)器腳本有興趣的同學(xué)不妨鉆研一下。

沒(méi)有絕對(duì)的安全

在上一篇文章《linux服務(wù)器安全配置實(shí)例(一)》中介紹了我對(duì)ssh服務(wù)的一些常用的安全配置和性能優(yōu)化。

其實(shí)ssh服務(wù)是我們進(jìn)入服務(wù)器的一扇大門(mén),這扇大門(mén)是提供正常人使用鑰匙打開(kāi)后進(jìn)屋的。而對(duì)于一些惡意的小伙伴,他們會(huì)使用一些非法的方式,比如走窗戶、暴力開(kāi)鎖等去不經(jīng)過(guò)我們的同意就進(jìn)屋大肆破壞。

走窗戶:通過(guò)一些系統(tǒng)的0day漏洞或者第三方服務(wù)以及軟件的漏洞溢出或者注入,在服務(wù)器中運(yùn)行惡意的代碼來(lái)得到登陸權(quán)限。

暴力開(kāi)鎖:通過(guò)一些暴力破解軟件,暴力破解我們的ssh服務(wù)、網(wǎng)站管理員密碼等。

對(duì)于暴力開(kāi)鎖我們?cè)趯?duì)sshd服務(wù)器安全配置和優(yōu)化中已經(jīng)說(shuō)明如何防范。對(duì)于走窗戶、跳煙囪這樣采用漏洞攻擊的方式,我們最簡(jiǎn)單的方式就是及時(shí)修復(fù)漏洞,配置防火墻和殺毒軟件等。

當(dāng)然在一些大型的企業(yè)、政府的辦公環(huán)境下,網(wǎng)絡(luò)安全是十分主要的,自然會(huì)加入更多的安全機(jī)制,如:入侵檢測(cè)系統(tǒng)、安全網(wǎng)關(guān)、網(wǎng)閘、堡壘機(jī)等。其實(shí)無(wú)論我們?nèi)绾闻渲没蛘呒尤霟o(wú)數(shù)安全機(jī)制,都是沒(méi)有絕對(duì)的安全的。沒(méi)有絕對(duì)安全這句話是在網(wǎng)絡(luò)安全圈子內(nèi)最流行的一句話。

漏洞的產(chǎn)生是防不勝防的,我們?cè)?jīng)依托于openssl去保護(hù)我們的信息傳輸過(guò)程中不被第三方嗅探到內(nèi)容,但是萬(wàn)萬(wàn)沒(méi)想到的心臟大出血漏洞出現(xiàn)了。我們?cè)?jīng)吶喊著Linux服務(wù)器是最安全的(沒(méi)錯(cuò),因?yàn)閘inux操作系統(tǒng)用的人少,它的安全機(jī)制也確實(shí)十分完善),但是沒(méi)有一點(diǎn)點(diǎn)防備的bash破殼漏洞出現(xiàn)了。

攻擊者的目標(biāo):root權(quán)限

當(dāng)這些漏洞被挖掘出來(lái),無(wú)論漏洞公布者是出于學(xué)術(shù)交流還是炫耀自己多么牛逼,那么當(dāng)公布出來(lái)的那一刻就意味著成千上萬(wàn)的服務(wù)器造成嚴(yán)重的威脅。其實(shí)不公布才是最可怕的!所以我們無(wú)法預(yù)測(cè)漏洞合適會(huì)出現(xiàn),也無(wú)法預(yù)計(jì)自己的服務(wù)器是否會(huì)被人利用。那么我們可以假設(shè):我的服務(wù)器被攻陷后怎么辦?

其實(shí)在漏洞凌完成后,第二部就是拿到登陸服務(wù)器的權(quán)限。所以我們可以很確定的說(shuō),用戶權(quán)限就是惡意攻擊者的下一個(gè)目標(biāo)。linux、unix操作系統(tǒng)的最高權(quán)限都是root,其uid為0。   

 

這個(gè)用戶權(quán)限擁有至高無(wú)上的能力。所以惡意攻擊者會(huì)用各種手段去獲取root權(quán)限。獲取root權(quán)限也常在安卓手機(jī)中使用,安卓操作系統(tǒng)也是linux的分支,所以當(dāng)安卓root后手機(jī)將不會(huì)安全,任何進(jìn)程都可以使用setuid()系統(tǒng)調(diào)用,設(shè)置自己進(jìn)程擁有root權(quán)限,那么木馬病毒也不例外了。所以完全杜絕使用root用戶在服務(wù)器中啟動(dòng)任何服務(wù),使用私有用戶去啟動(dòng)進(jìn)程,同時(shí)禁止root用戶登錄。也就是在惡意攻擊者通過(guò)對(duì)服務(wù)進(jìn)程漏洞攻擊后,拿到的用戶權(quán)限不是root,同時(shí)利用一些系統(tǒng)內(nèi)核級(jí)的漏洞對(duì)root進(jìn)行提權(quán)也是無(wú)法登錄的。對(duì)私有用戶的活動(dòng)目錄進(jìn)行限制,提權(quán)操作也更是難上加難。

防御技巧

下面詳細(xì)說(shuō)明一下賬戶權(quán)限和目錄權(quán)限的配置。

1.禁止root

禁止root登陸有2個(gè)地方可以配置,第一個(gè)在ssh服務(wù)中:   

 

這一點(diǎn)在對(duì)sshd服務(wù)安全配置和優(yōu)化已經(jīng)說(shuō)明了,具體配置可以點(diǎn)開(kāi)鏈接查看。第二個(gè)就是在系統(tǒng)內(nèi)使用su命令切換root用戶了。其實(shí)這是一件挺麻煩的事情,我們知道對(duì)系統(tǒng)一些更改、安裝軟件、升級(jí)系統(tǒng)都需要root權(quán)限。那么為了安全我們需要禁用它,為了配置系統(tǒng)我們又要使用它,自相矛盾了。這里給出2種解決矛盾的方法:

徹底禁用root登陸,使用sudo。

root可以使用su切換,但是禁止遠(yuǎn)程登陸。

這兩種方法各有利弊,第一種完全可以杜絕root用戶的使用,同時(shí)也很難對(duì)root提權(quán)。這里需要說(shuō)明下sudo,sudo可以讓普通用戶擁有root用戶的權(quán)限,例如在普通用戶下使用   

 

就可以直接在非root用戶的情況下安裝namp端口掃描工具??梢允褂胹udo命令的用戶需要在/etc/sudoers文件中進(jìn)行一些配置。   

 

該配置文件的格式為:

用戶或者組(組需要在組名前加%)主機(jī)=(用戶) 執(zhí)行的命令,如:   

 

全句的意思是:授權(quán)根用戶在所有計(jì)算機(jī)上以所有用戶的身份運(yùn)行所有文件。其實(shí)簡(jiǎn)單來(lái)說(shuō),我們可以在sudoers文件中配置哪些用戶可以使用root權(quán)限執(zhí)行哪些命令。

對(duì)于第一種方案,我們就是在禁用root以后通過(guò)sudo對(duì)系統(tǒng)進(jìn)行一些修改,所以說(shuō)sudo相當(dāng)于擁有一定的root權(quán)限,因此sudo的權(quán)限也需要嚴(yán)格控制。這一點(diǎn)就有一些麻煩,通常建議為每個(gè)服務(wù)創(chuàng)建一個(gè)私有用戶,倘若啟動(dòng)一些服務(wù)需要root權(quán)限,那么可以將需要root的命令配置到sudoers文件中。例如:為nginx創(chuàng)建了nginx私有用戶,需要使用80端口,linux系統(tǒng)是不允許非root用戶請(qǐng)求低端口的,一般有兩種方案解決:1、創(chuàng)建使能2、在sudoers文件中配置如下:  

 

而對(duì)于日常巡檢系統(tǒng)升級(jí)需要用到root權(quán)限的命令也可以為巡檢用戶進(jìn)行配置,如:   

 

第一種方案麻煩就麻煩在需要每個(gè)用戶都進(jìn)行配置,但是權(quán)限細(xì)分安全有保證。

徹底禁用root登陸,當(dāng)前用戶為root下編輯/etc/shadow執(zhí)行:   

 

如果當(dāng)前用戶為非root下編輯/etc/shadow執(zhí)行:   

 

需要注意如果sudo沒(méi)有權(quán)限,請(qǐng)通過(guò)root用戶配置sudoers。   

 

shadow文件保存了用戶和密碼等信息,每一列中間以:分割。

  • 列1 定義與這個(gè) shadow 條目相關(guān)聯(lián)的特殊用戶帳戶。
  • 列2 包含一個(gè)加密的密碼。
  • 列3 自 1/1/1970 起,密碼被修改的天數(shù)
  • 列4 密碼將被允許修改之前的天數(shù)(0 表示“可在任何時(shí)間修改”)
  • 列5 系統(tǒng)將強(qiáng)制用戶修改為新密碼之前的天數(shù)(1 表示“永遠(yuǎn)都不能修改”)
  • 列6 密碼過(guò)期之前,用戶將被警告過(guò)期的天數(shù)(-1 表示“沒(méi)有警告”)
  • 列7 密碼過(guò)期之后,系統(tǒng)自動(dòng)禁用帳戶的天數(shù)(-1 表示“永遠(yuǎn)不會(huì)禁用”)
  • 列8 該帳戶被禁用的天數(shù)(-1 表示“該帳戶被啟用”)
  • 列9 保留供將來(lái)使用

在root用戶的第二列之前加入!!,表示禁止該用戶。   

 

對(duì)shadow文件編輯完成后保存退出。

編輯/etc/passwd,執(zhí)行   

  

 

passwd文件保存了用戶賬戶的基本信息,每一列中間以:分割。

  • 列1 用戶名,用戶名在系統(tǒng)中是唯一的。
  • 列2 用戶密碼列,新版本的unix/linux系統(tǒng)密碼已經(jīng)轉(zhuǎn)移到/etc/shadow中。
  • 列3 用戶id(UID),UID是在系統(tǒng)中是唯一的,對(duì)于操作系統(tǒng)來(lái)說(shuō)只認(rèn)識(shí)UID,用戶名是給用戶看的。
  • 列4 組id(GID),GID是在系統(tǒng)中是唯一的,對(duì)于操作系統(tǒng)來(lái)說(shuō)只認(rèn)識(shí)GID,組名稱是給用戶看的。
  • 列5 用戶全名,包含有關(guān)用戶的一些信息,如用戶的真實(shí)姓名、辦公室地址、聯(lián)系電話等。在Linux系統(tǒng)中,mail和finger等程序利用這些信息來(lái)標(biāo)識(shí)系統(tǒng)的用戶。
  • 列6 用戶home目錄,該字段定義了個(gè)人用戶的主目錄,當(dāng)用戶登錄后,他的Shell將把該目錄作為用戶的工作目錄。
  • 列7 命令解釋程序(Shell),Shell是當(dāng)用戶登錄系統(tǒng)時(shí)運(yùn)行的程序名稱,通常是一個(gè)Shell程序的全路徑名, 如/bin/bash。 注意如果需要禁止用戶登錄可以把該列改為/sbin/nologin。

根據(jù)上面的描述,可以將root用戶的第七列改為/sbin/nologin,禁止root用戶的登錄。   

 

2.創(chuàng)建私有用戶

私有用戶的意思是對(duì)每一個(gè)服務(wù)創(chuàng)建專用的用戶來(lái)運(yùn)行服務(wù),比如nginx使用nginx用戶運(yùn)行,apache使用apache用戶運(yùn)行,mariadb使用MySQL用戶運(yùn)行等。私有用戶包含了私有用戶和私有用戶組,私有用戶組是指組中只有一個(gè)用戶,如nginx組為nginx的私有用戶。為每一個(gè)服務(wù)創(chuàng)建一個(gè)私有用戶好處在于,當(dāng)對(duì)外提供的服務(wù)由于不可預(yù)知的漏洞,惡意攻擊者對(duì)服務(wù)進(jìn)行溢出攻擊,溢出的惡意代碼執(zhí)行成功后惡意攻擊者拿到的用戶權(quán)限也只是服務(wù)的私有用戶,由于私有用戶的權(quán)限非常低,所以減小了系統(tǒng)以及應(yīng)用暴露的范圍。使得危險(xiǎn)可控。

對(duì)于服務(wù),我們使用UID為100-999之間任意一個(gè)未被使用的UID,UID 1~99是保留給其它預(yù)定義用戶的,UID 100~999是保留給系統(tǒng)用戶的。而GID由于是私有組,建議與用戶UID相同。

創(chuàng)建私有用戶和普通用戶一樣,與普通用戶區(qū)別在于:

  • 針對(duì)服務(wù)UID在999以內(nèi),普通用戶UID在999以后。
  • 活動(dòng)空間一般只在應(yīng)用服務(wù)的安裝路徑,普通用戶活動(dòng)空間在/home下。
  • 針對(duì)服務(wù)的私有用戶只用于啟動(dòng)服務(wù),禁止登陸,普通用戶一般用于登陸。

使用groupadd創(chuàng)建組,-g參數(shù)指定組ID,即GID  

 

使用useradd創(chuàng)建用戶,-g參數(shù)指定GID,-u參數(shù)指定UID,-d參數(shù)指定用戶的home目錄,-s參數(shù)指定用戶的shell程序,由于服務(wù)私有用戶不需要遠(yuǎn)程登錄,所以配置為/sbin/nologin   

 

3.設(shè)置私有用戶活動(dòng)權(quán)限

對(duì)于服務(wù)的私有用戶,需要對(duì)其目錄訪問(wèn)權(quán)限進(jìn)行一些設(shè)定,防止應(yīng)用服務(wù)被滲透后,惡意攻擊者在服務(wù)器中使用已有的權(quán)限亂搞。同時(shí)需要說(shuō)明一下如何使用私有用戶啟動(dòng)服務(wù)。需要注意的是,每個(gè)針對(duì)服務(wù)的私有用戶權(quán)限配置都不同,但是基本配置方式都差不多,都是有規(guī)律可循的。首先我們需要確定應(yīng)用服務(wù)的基本,即需要什么?變動(dòng)什么?不變動(dòng)什么?

需要什么?應(yīng)用服務(wù)最基本提供的是用戶的交互請(qǐng)求、數(shù)據(jù)存儲(chǔ)和計(jì)算。所以可以看出應(yīng)用服務(wù)需要提供端口來(lái)保證用戶的請(qǐng)求,而對(duì)于數(shù)據(jù)存儲(chǔ)需要提供存儲(chǔ)空間。對(duì)于web容器我們需要一個(gè)合理的端口,大多為80。對(duì)于數(shù)據(jù)庫(kù)和緩存我們需要一個(gè)合理的存儲(chǔ)空間,這個(gè)空間大多與服務(wù)器操系統(tǒng)盤(pán)分開(kāi),以外掛數(shù)據(jù)盤(pán)的方式存在,當(dāng)然數(shù)據(jù)庫(kù)和緩存服務(wù)也需要端口。

變動(dòng)什么?服務(wù)應(yīng)用程序在運(yùn)行時(shí)間必然會(huì)產(chǎn)生臨時(shí)文件和日志,臨時(shí)文件我們大多保存在/tmp下,對(duì)于日志有很多種:

  • syslog,大多在/var/log/message中
  • 程序自己的日志空間
  • 寫(xiě)入數(shù)據(jù)庫(kù),mongodb、mysql等
  • 標(biāo)準(zhǔn)輸出

不變動(dòng)什么?應(yīng)用服務(wù)的配置文件、庫(kù)文件和可執(zhí)行文件大多是不變的。在大多情況下,一個(gè)應(yīng)用服務(wù)配置完成后啟動(dòng)對(duì)外服務(wù),基本是不變的,但相對(duì)于庫(kù)文件和可執(zhí)行文件這種徹底不會(huì)變動(dòng)的文件還算是可變。對(duì)于配置文件,與數(shù)據(jù)存儲(chǔ)一樣通常單獨(dú)劃分出來(lái)。

所以可以看出,我們只要需要把每個(gè)服務(wù)的日志文件、存儲(chǔ)數(shù)據(jù)的文件、端口權(quán)限、執(zhí)行文件和庫(kù)文件進(jìn)行授權(quán)。而對(duì)于其他目錄和端口是不允許訪問(wèn)的。

這里使用nginx舉例,我的nginx在服務(wù)器上的配置如下:

安裝路徑/srv/nginx   

 

nginx的配置文件路徑/data/config/nginx_config   

 

nginx的日志和pid文件路徑/data/var/nginx   

 

nginx的服務(wù)端口為80

針對(duì)上面的配置需要對(duì)nginx用戶進(jìn)行授權(quán),下面說(shuō)一下具體如何授權(quán)。

在對(duì)每個(gè)目錄進(jìn)行授權(quán)之前,先確保這些目錄父目錄的所屬用戶和組都為root,同時(shí)保證父目錄中的nginx目錄是700的權(quán)限(當(dāng)然最好父目錄下的所有文件目錄都是700),這樣保證了nginx目錄不被其他用戶所訪問(wèn)。

修改/srv的權(quán)限:  

 

修改/srv/nginx的權(quán)限:  

 

修改/data/和/data/config的權(quán)限   

 

修改/data/config/nginx_config的權(quán)限   

 

修改/data/var/的權(quán)限   

 

修改/data/var/nginx的權(quán)限   

 

文件權(quán)限已經(jīng)修改好了,接下來(lái)需要配置nginx能夠使用80端口。之前說(shuō)過(guò)可以使用sudoers文件給nginx用戶root權(quán)限,還有一個(gè)方式就是讓nginx的啟動(dòng)文件/srv/nginx/sbin/nginx進(jìn)行使能操作。使能顧名思義,使其擁有一定能力,這里使能是請(qǐng)求低端口使能。

內(nèi)核2.1以后使用   

 

進(jìn)行使能操作。

接下來(lái)再在nginx的配置文件nginx.conf中加入user nginx來(lái)配置nginx使用nginx這個(gè)用戶運(yùn)行。

四、刪除沒(méi)用的用戶

linux系統(tǒng)中有很多沒(méi)用的用戶,這些用戶可以直接刪除掉不影響系統(tǒng)。系統(tǒng)內(nèi)存在沒(méi)用的用戶可能會(huì)被惡意入侵者提權(quán)利用,存在很大的安全隱患。同樣有一些沒(méi)用的組也可以刪除掉。

刪除用戶使用userdel命令:   

 

刪除用戶組使用groupdel命令:   

 

注意組中可能存在多個(gè)用戶,同時(shí)組內(nèi)存在用戶的話系統(tǒng)是不讓刪除的,一般沒(méi)用的用戶組內(nèi)的用戶也大多是沒(méi)用的,所以可以把組內(nèi)用戶全部刪除掉再刪除組。

下面列出可刪除的用戶:

adm、lp、sync、shutdown、halt、news、uucp、operator、games、gopher

下面列出可刪除的用戶組:

adm、lp、news、uucp、games、dip、ppusers、popusers、slipusers

用戶賬戶權(quán)限配置做到這些就已經(jīng)可以了,配置用戶權(quán)限是個(gè)細(xì)致的活,尤其在不同用戶活動(dòng)空間和執(zhí)行命令上配置需要謹(jǐn)慎,稍有遺漏都有可能會(huì)被惡意攻擊者利用。通常我們會(huì)采用編寫(xiě)腳本方式對(duì)這些進(jìn)行配置,如果對(duì)服務(wù)器腳本有興趣的同學(xué)不妨鉆研一下。 

 

責(zé)任編輯:龐桂玉 來(lái)源: 馬哥Linux運(yùn)維
相關(guān)推薦

2017-04-06 09:30:16

2011-07-14 14:45:01

網(wǎng)絡(luò)服務(wù)器配置DHCP服務(wù)器

2012-12-18 16:22:36

2017-03-29 15:12:43

2010-08-06 15:44:11

Linux服務(wù)器

2011-09-07 10:44:36

DHCP服務(wù)器配置

2010-01-07 15:37:09

Linux配置DNS

2010-05-18 13:37:03

IIS服務(wù)器

2009-09-08 14:18:35

NFS服務(wù)器

2018-08-07 08:54:18

2011-02-23 13:26:18

Linuxvsftp

2011-08-16 10:50:35

DHCP路由器配置

2011-02-22 10:55:13

ProFTPd服務(wù)器配置

2011-03-23 14:51:31

2011-07-14 14:17:33

網(wǎng)絡(luò)服務(wù)器配置DNS服務(wù)器

2011-07-14 15:28:11

服務(wù)器

2009-09-24 13:47:05

IIS安全配置web服務(wù)器訪問(wèn)控制

2009-12-29 16:25:51

VPN服務(wù)器配置

2010-09-02 14:09:06

LinuxDHCP服務(wù)器

2012-12-31 10:58:12

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)