新聞中心
在Linux服務(wù)器的管理過程中,安全一直是至關(guān)重要的問題,因?yàn)榘踩珕栴}會(huì)對(duì)服務(wù)器的數(shù)據(jù)和用戶造成很大的損失。為了保護(hù)服務(wù)器和用戶安全,Linux提供了一個(gè)特殊的賬戶nobody,本文將介紹如何使用nobody賬戶鎖定系統(tǒng)安全。

10年的永勝網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。營銷型網(wǎng)站的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整永勝建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。成都創(chuàng)新互聯(lián)從事“永勝網(wǎng)站設(shè)計(jì)”,“永勝網(wǎng)站推廣”以來,每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
一、nobody是什么?
nobody是Linux系統(tǒng)中一個(gè)特殊的賬戶,它是用于運(yùn)行服務(wù)進(jìn)程或訪問權(quán)限受限的系統(tǒng)資源的虛擬賬戶。由于該賬戶沒有任何特權(quán),所以即使攻擊者能夠登錄該賬戶,也不能對(duì)系統(tǒng)造成任何損害。
二、如何啟用nobody賬戶?
在Linux系統(tǒng)中,默認(rèn)情況下是沒有nobody賬戶存在的,需要手動(dòng)創(chuàng)建。我們可以通過以下方式啟用nobody賬戶:
1. 打開/etc/passwd文件,添加一行nobody:x:65534:65534:nobody:/nonexistent:/bin/false;
2. 打開/etc/group文件,添加一行nogroup:x:65534:nobody。
以上操作會(huì)在系統(tǒng)中創(chuàng)建nobody賬戶。其中,UID和GID都是65534,這意味著該賬戶沒有任何特權(quán)和權(quán)限。
三、如何使用nobody賬戶?
1. 限制應(yīng)用程序權(quán)限
在Linux系統(tǒng)中,有很多應(yīng)用程序需要運(yùn)行服務(wù)進(jìn)程來提供服務(wù),比如Apache、Nginx等。我們可以使用nobody賬戶來啟動(dòng)這些服務(wù),以限制它們的運(yùn)行權(quán)限。
以Apache為例,我們可以在配置文件中修改啟動(dòng)Apache的用戶和組如下:
User nobody
Group nogroup
這些設(shè)置可以將Apache運(yùn)行時(shí)的用戶和組設(shè)置為nobody和nogroup,從而限制了它的訪問權(quán)限。同樣的,我們也可以在其他應(yīng)用程序中使用nobody賬戶來限制運(yùn)行權(quán)限。
2. 限制文件和目錄的權(quán)限
除了應(yīng)用程序,文件和目錄的權(quán)限也是服務(wù)器安全的關(guān)鍵。我們可以使用nobody賬戶來限制這些文件和目錄的訪問權(quán)限。
我們可以在/etc/fstab文件中設(shè)置nobody賬戶作為文件系統(tǒng)的所有者,僅允許nobody和root賬戶對(duì)其進(jìn)行讀寫,其他用戶無法訪問。例如:
/dev/sda1 /home ext4 defaults,nobootwt,uid=nobody,gid=nogroup,umask=007 0 2
此外,我們還可以通過chown命令將文件和目錄的所有者更改為nobody,從而限制了其他用戶的訪問權(quán)限。
3. 限制進(jìn)程的權(quán)限
在Linux系統(tǒng)中,有些進(jìn)程需要使用root權(quán)限才能運(yùn)行,但root權(quán)限也會(huì)帶來很大的安全風(fēng)險(xiǎn)。我們可以使用nobody賬戶來限制這些進(jìn)程的權(quán)限。
我們可以使用/etc/sudoers文件來限制nobody賬戶可使用的命令和參數(shù)。例如:
nobody ALL=(ALL) NOPASSWD: /usr/bin/apt-get, /usr/bin/aptitude
此設(shè)置將允許nobody賬戶在不輸入密碼的情況下,使用apt-get和aptitude命令完成特定的任務(wù)。
四、結(jié)論
通過使用nobody賬戶可以限制進(jìn)程和文件的權(quán)限,有效提升了Linux服務(wù)器的安全性。尤其是在需要運(yùn)行服務(wù)進(jìn)程的情況下,使用nobody賬戶來啟動(dòng)這些服務(wù)可以避免應(yīng)用程序產(chǎn)生的安全風(fēng)險(xiǎn)。因此,我們一定要重視nobody賬戶的使用,以提升系統(tǒng)的安全性。
相關(guān)問題拓展閱讀:
- linux多用戶,多用戶組互訪權(quán)限問題
- 關(guān)于Linux的安全問題
linux多用戶,多用戶組互訪權(quán)限問題
三種思想:
這種情況是每個(gè)組創(chuàng)建的目錄,默認(rèn)權(quán)限是755,文件是644,掘雀這個(gè)默認(rèn)祥散銀權(quán)限和umask有關(guān)。不設(shè)置公共文件夾的訪問控制列表,打開所有權(quán)限,修改umask為0000,這樣任何組創(chuàng)建的目錄,權(quán)限都是777,而不是755;
在公共文件夾的訪問控制列表里,加上每個(gè)組的權(quán)限,不權(quán)權(quán)是nobody的,因?yàn)檫@個(gè)公共文件夾里,創(chuàng)建出來的目錄,所有組不是nobody,而是各個(gè)創(chuàng)建者的所屬組。
修改公共文件夾的sgid,以至于讓任何用戶創(chuàng)建文件或目錄,所屬組都是nobody,這樣也可以解決問題,’chmod g+s 謹(jǐn)宴公共文件夾’ 就可以了,但是所有用戶都需要加入到nobody組里。
關(guān)于Linux的安全問題
自己摸索著做吧!因?yàn)檫@東西是要實(shí)踐的@
一、關(guān)閉不必要的服務(wù)
Linux的服務(wù)分為兩種,一種是由inetd超級(jí)服務(wù)器來啟動(dòng)的,如:ftp、telnet等;對(duì)于這些服務(wù)來說,系統(tǒng)并不總是運(yùn)行telnetd、 ftpd等服務(wù)進(jìn)程,而是由inetd進(jìn)程監(jiān)聽這些服務(wù)的服務(wù)端口,一旦有服務(wù)請(qǐng)求到達(dá)就啟動(dòng)對(duì)應(yīng)的服務(wù)進(jìn)程(如:telnetd等)來提供服務(wù)。另外一種是獨(dú)立的服務(wù)器,系統(tǒng)一直運(yùn)行有對(duì)應(yīng)的服務(wù)進(jìn)程。
關(guān)閉這兩種服務(wù)的方法是不同的,對(duì)于inetd啟動(dòng)的進(jìn)程:
inetd超級(jí)服務(wù)器的配置文件為/etc/inetd.conf,該文件指示了inetd應(yīng)該監(jiān)聽哪些服務(wù)請(qǐng)求,并在請(qǐng)求時(shí)啟動(dòng)對(duì)應(yīng)的服務(wù)。因此只要通過編輯/etc/inetd.conf文件就可以實(shí)現(xiàn)關(guān)閉不需要的服務(wù),例如希望關(guān)閉pop3服務(wù),則在編輯/etc/inetd.conf文件以前文件中有如下的內(nèi)容:
pop-3 stream tcp nowait root /usr/in/tcpd ipop3d
要關(guān)閉pop3服務(wù)則在該行前添加注釋符即可:
#pop-3 stream tcp nowait root /usr/in/tcpd ipop3d
通過編輯該文件,實(shí)現(xiàn)關(guān)閉不需要的服務(wù)(例如我的系統(tǒng)我僅僅開放了telnet和ftp服務(wù))以后,則需要重新啟動(dòng)inetd超級(jí)服務(wù)器。首先找到inetd的進(jìn)程號(hào):
# ps ax|grep inetd
358 ? S 0:00 inetd
然后重新啟動(dòng)inetd服務(wù)器:
# kill -HUP 358
最后因?yàn)閕netd.conf應(yīng)該不允許普通用戶讀寫,因此設(shè)置其訪問權(quán)限為600:
chmod 600 /etc/inetd.conf
而且該文件應(yīng)該不被任何用戶修改,包括root用戶。因此為了防止用戶錯(cuò)誤的修改該文件,為該文件添加不可修改位:
chattr i /etc/inetd.conf
對(duì)于獨(dú)立服務(wù)器,則需要通過/usr/in/ntsysv命令來修改:
只需要服務(wù)前面通過空格鍵來選擇是否在系統(tǒng)啟動(dòng)時(shí)啟動(dòng)該服務(wù)就可以實(shí)現(xiàn)關(guān)閉某個(gè)服務(wù)器,如:希望系統(tǒng)關(guān)閉dhcpd服務(wù),則通過上下鍵選中該服務(wù)器,然后通過空格鍵去掉該服務(wù)前內(nèi)的星號(hào)即表示系統(tǒng)啟動(dòng)時(shí)不開放該服務(wù)。若希望了解某個(gè)服務(wù)的具體含義,可以選擇該服務(wù)以后按F1鍵來查看該服務(wù)的含義。
設(shè)置完畢以后,只有希望打開的服務(wù)前的內(nèi)才會(huì)有星號(hào)。然后通過Tab鍵選擇OK,按空格鍵。重新啟動(dòng)機(jī)器。
重新啟動(dòng)機(jī)器以后,可以通過下面的命令來察看系統(tǒng)打開了哪些服務(wù),來決定是否已經(jīng)關(guān)閉了不需要的服務(wù),例如我僅僅希望提供telnet服務(wù)則:
$ netstat -ln
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:23 0.0.0.0:* LISTEN
raw 0 0 0.0.0.0:1 0.0.0.0:* 7
raw 0 0 0.0.0.0:6 0.0.0.0:* 7
Active UNIX domain sockets (only servers)
Proto RefCnt Flags Type State I-Node Path
從上面的命令輸出可以看到系統(tǒng)僅僅開放了23號(hào)端口,也就是telnet服務(wù)。
二、控制使用開放的服務(wù)的用戶
在上面提到的/etc/inetd.conf的配置文件中,我們看到pop3服務(wù)配置一行的最后兩個(gè)字段為:
/usr/in/tcpd ipop3d
很顯然,pop3的服務(wù)器程序?yàn)閕pop3d,那么/usr/in/tcpd又是什么含義呢?這是一個(gè)稱為Tcp wrapper的安全程序。該程序用來在啟動(dòng)某個(gè)服務(wù)以前查看兩個(gè)配置文件來決定該用戶是否允許使用該服務(wù)。在/etc目錄下,有兩個(gè)文件: hosts.deny hosts.allow。
通過配置這兩個(gè)文件,你可以指定哪些客戶機(jī)允許使用這些服務(wù)。配置這兩個(gè)文件是通過一種簡單的訪問控制語言來實(shí)現(xiàn)的,訪問控制語句的基本格式為: 程序名列表,主機(jī)名/IP地址列表。
程序名列表指定一個(gè)或者多個(gè)提供相應(yīng)服務(wù)的程序的名字,名字之間用逗號(hào)或者空格分隔,可以在inetd.conf文件里查看提供相應(yīng)服務(wù)的程序名:如上面的文件示例中,pop所在行的最后一項(xiàng)就是所需的程序名:ipop3d。
主機(jī)名/IP地址列表指定允許或者禁止使用該服務(wù)的一個(gè)或者多個(gè)主機(jī)的標(biāo)識(shí),主機(jī)名之間用逗號(hào)或空格分隔。程序名和主機(jī)地址都可以使用通配符,實(shí)現(xiàn)方便的指定多項(xiàng)服務(wù)和多個(gè)主機(jī)。 當(dāng)服務(wù)請(qǐng)求到達(dá)服務(wù)器時(shí),訪問控制軟件就按照下列順序查詢這兩個(gè)文件,直到遇到一個(gè)匹配為止:
1. 當(dāng)在/etc/hosts.allow里面有一項(xiàng)與請(qǐng)求服務(wù)的主機(jī)地址項(xiàng)匹配,那么就允許該主機(jī)獲取該服務(wù)
2. 否則,如果在/etc/hosts.deny里面有一項(xiàng)與請(qǐng)求服務(wù)的主機(jī)地址項(xiàng)匹配,就禁止該主機(jī)使用該項(xiàng)服務(wù)
3. 若均沒有匹配,則允許使用該服務(wù)。若相應(yīng)的配置文件不存在,訪問控制軟件就認(rèn)為是一個(gè)空文件,所以可以通過刪除或者移走配置文件實(shí)現(xiàn)對(duì)所有主機(jī)關(guān)閉所有服務(wù)。
在文件中,空白行或者以#開頭的行被忽略,你可以通過在行前加 # 實(shí) 現(xiàn)注釋功能。Linux提供了下面靈活的方式指定進(jìn)程或者主機(jī)列表:
1. 一個(gè)以”.”起始的域名串,如 .amms.ac.cn 那么
www.amms.ac.cn
就和這一項(xiàng)匹配成功
2. 以.結(jié)尾的IP串如 202.37.152. 那么IP地址包括202.37.152.的主機(jī)都與這一項(xiàng)匹配
3. 格式為n.n.n.n/m.m.m.m表示網(wǎng)絡(luò)/掩碼,如果請(qǐng)求服務(wù)的主機(jī)的IP地址與掩碼的位與的結(jié)果等于n.n.n.n 那么該主機(jī)與該項(xiàng)匹配。
4. ALL表示匹配所有可能性
5. EXPECT表示除去后面所定義的主機(jī)。如:list_1 EXCEPT list_2 表示list_1主機(jī)列表中除去List_2所列 出的主機(jī)
6. LOCAL表示匹配所有主機(jī)名中不包含.的主機(jī)
上面的幾種方式只是Linux提供的方式中的幾種,但是對(duì)于我們的一般應(yīng)用來說是足夠了。我們通過舉幾個(gè)例子來說明這個(gè)問題:
例一:我們只希望允許同一個(gè)局域網(wǎng)的機(jī)器使用服務(wù)器的ftp功能,而禁止上面的ftp服務(wù)請(qǐng)求,本地局域網(wǎng)由 202.39.154. 、202.39.153. 和202.39.152. 三個(gè)網(wǎng)段組成。在hosts.deny文件中,我們定義禁止所有機(jī)器請(qǐng)求所有服務(wù): ALL:ALL 在hosts.allow文件中,我們定義只允許局域網(wǎng)訪問ftp功能:
in.ftpd: 202.39..39.153. 202.39.152.
這樣,當(dāng)非局域網(wǎng)的機(jī)器請(qǐng)求ftp服務(wù)時(shí),就會(huì)被拒絕。而局域網(wǎng)的機(jī)器可以使用ftp服務(wù)。
然后重新啟動(dòng)你的 inetd進(jìn)程:
/etc/rc.d/init.d/inet restart
但是hosts.deny|allow文件只控制/etc/inetd.conf文件中包含的服務(wù)的訪問這些服務(wù)有/usr/bin/tcpd管理,監(jiān)聽接入的網(wǎng)絡(luò)請(qǐng)求,然后與在hosts.allow和hosts.deny的中的服務(wù)比較,然后做出允許或拒絕的決定。
最后因?yàn)閔osts.allow|hosts.deny應(yīng)該不允許普通用戶讀寫,因此設(shè)置其訪問權(quán)限為600:
chmod 600 /etc/hosts.*
并且該文件應(yīng)該不被任何用戶修改,包括root用戶。因此為了防止用戶錯(cuò)誤的修改該文件,為該文件添加不可修改位:
chattr i /etc/hosts.*
三、”/etc/exports”文件設(shè)置
如果通過NFS把文件共享出來,那么一定要配置”/etc/exports”文件,使得訪問限制盡可能的嚴(yán)。這就是說,不要用通配符,不允許對(duì)根目錄有寫權(quán)限,而且盡可能只給只讀權(quán)限。編輯exports文件(vi /etc/exports)加入:
例如:
/dir/to/export host1.mydomain.com(ro,root_squash)
/dir/to/export host2.mydomain.com(ro,root_squash)
“/dir/to/export”是你想共享出來的目錄,host.mydomain.com是允許訪問這個(gè)目錄的計(jì)算機(jī)。
代表只讀,代表不允許對(duì)根目錄進(jìn)行寫操作。使這些改變生效,你還要運(yùn)行 “/usr/in/exportfs -a”命令。
注意:在服務(wù)器上裝NFS服務(wù)是會(huì)有安全隱患的,就我個(gè)人而言,不建議你使用NFS。
四、禁止使用控制臺(tái)程序
一個(gè)最簡單而且最常用的保證系統(tǒng)安全的方法就是禁止使用所有的控制臺(tái)程序,如:shutdown和halt??梢赃\(yùn)行下面的命令來實(shí)現(xiàn):
# rm -f /etc/security/console.apps/servicename
這里servicename是你要禁止的控制臺(tái)程序名。除非你使用xdm,否則不要把xserver文件刪掉,如果這樣除了root之外,沒有人可以啟動(dòng) X服務(wù)器了。(如果使用xdm啟動(dòng)X服務(wù)器,這時(shí)root是唯一需要啟動(dòng)X服務(wù)器的用戶,這才有必要把xserver文件刪掉)。例如:
# rm -f /etc/security/console.apps/halt
# rm -f /etc/security/console.apps/poweroff
# rm -f /etc/security/console.apps/reboot
# rm -f /etc/security/console.apps/shutdown
# rm -f /etc/security/console.apps/xserver (如果刪除,只有root可以啟動(dòng)X).
這些命令就可以禁止所有的控制臺(tái)程序:halt、poweroff、reboot和shutdown。記住,只有裝了Xwindow,刪除xerver文件才會(huì)有效果。
五、”/etc/aliases”文件
aliases文件可能會(huì)造成安全隱患。例如:很多的軟件產(chǎn)商都把 “decode”這個(gè)別名放在aliases文件里。這樣做的目的是為了方便通過email傳送二進(jìn)制文件。在發(fā)送郵件的時(shí)候,用戶把二進(jìn)制文件用 “uuencode”轉(zhuǎn)成ASCII文件,然后把結(jié)果發(fā)給接收端的”decode”。由這個(gè)別名讓郵件信息通過”/usr/bin/uuencode”程序把二進(jìn)制文件重新轉(zhuǎn)換成ASCII文件。如果允許”decode”出現(xiàn)在aliases文件中,可以想象將會(huì)有什么樣的安全隱患。
把定義”decode”這個(gè)別名的行從aliases文件中刪除。同樣地,每一個(gè)會(huì)運(yùn)行程序的別名都要好好查看一下,很有可能要把它們刪除掉。要使改動(dòng)生效,還必須運(yùn)行:
# /usr/bin/newaliases
編輯aliases文件(vi /etc/aliases),刪除或注釋掉下面這些行:
# Basic system aliases — these MUST be present.
MAILER-DAEMON: postmaster
postmaster: root
# General redirections for pseudo accounts.
bin: root
daemon: root
#games: root
#ingres: root
nobody: root
#system: root
#toor: root
#uucp: root
# Well-known aliases.
#manager: root
#dumper: root
#operator: root
# trap decode to catch security attacks
#decode: root
# Person who should get roots mail
#root: marc
最后記得運(yùn)行”/usr/bin/newaliases”使改變生效。
六、使系統(tǒng)對(duì)ping沒有反應(yīng)
防止你的系統(tǒng)對(duì)ping請(qǐng)求做出反應(yīng),對(duì)于網(wǎng)絡(luò)安全很有好處,因?yàn)闆]人能夠ping你的服務(wù)器并得到任何反應(yīng)。TCP/IP協(xié)議本身有很多的弱點(diǎn),黑客可以利用一些技術(shù),把傳輸正常數(shù)據(jù)包的通道用來偷偷地傳送數(shù)據(jù)。使你的系統(tǒng)對(duì)ping請(qǐng)求沒有反應(yīng)可以把這個(gè)危險(xiǎn)減到最小。用下面的命令:
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
運(yùn)行完這個(gè)命令后,系統(tǒng)對(duì)ping就沒有反應(yīng)了??梢园堰@一行加到”/etc/rc.d/rc.local”文件中去,這樣當(dāng)系統(tǒng)重新啟動(dòng)的時(shí)候,該命令就會(huì)自動(dòng)運(yùn)行。對(duì)ping命令沒有反應(yīng),至少可以把絕大多數(shù)的黑客排除到系統(tǒng)之外,因?yàn)楹诳筒豢赡苤滥愕姆?wù)器在哪里。重新恢復(fù)對(duì)ping的響應(yīng),可以用下面的命令:
echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all”
七、不要顯示系統(tǒng)提示信息
如果你不想讓遠(yuǎn)程登錄的用戶看到系統(tǒng)的提示信息,你可以改變”/etc/inetd.conf”文件中的telnet設(shè)置:
telnet stream tcp nowait root /usr/in/tcpd in.telnetd -h
在末尾加上”-h”參數(shù)可以讓daemon不顯示任何系統(tǒng)信息,只顯示登錄提示。當(dāng)然,只有在服務(wù)器上裝了telnet服務(wù)器才有這樣做的必要。
八、”/etc/host.conf”文件
Linux用解析器(resolver)庫把主機(jī)名翻譯成IP地址。”/etc/host.conf”文件定義主機(jī)名是怎樣解析的。”/etc/host.conf”文件中的項(xiàng)告訴解析器庫用什么服務(wù),以什么順序解析主機(jī)名。
編輯”host.conf”文件(vi /etc/host.conf)加入下面這些行:
# Lookup names via DNS first then fall back to /etc/hosts.
order bind,hosts
# We have machines with multiple IP addresses.
multi on
# Check for IP address spoofing.
nospoof on
order選項(xiàng)指明的是選擇服務(wù)的順序。上面”order bind, hosts”說的是解析器庫解析文件名的時(shí)候先查詢域名服務(wù)器,然后再查看”/etc/hosts”文件。因?yàn)樾阅芎桶踩系脑?,更好將解析器庫的查找順序設(shè)成先查域名服務(wù)器(bind)。當(dāng)然也要先安裝了DNS/BIND軟件,否則這樣配置根本沒有任何作用。
multi選項(xiàng)決定在”/etc/hosts”文件中出現(xiàn)的主機(jī)能不能有多個(gè)IP地址(多個(gè)網(wǎng)絡(luò)界面)。具有多個(gè)IP網(wǎng)絡(luò)界面的主機(jī)被稱為具有多個(gè)網(wǎng)絡(luò)界面(multiomed),因?yàn)橥瑫r(shí)有多個(gè)IP地址也就意味著這臺(tái)主機(jī)有多個(gè)網(wǎng)絡(luò)界面。例如:網(wǎng)關(guān)服務(wù)器就有多個(gè)IP地址,必須把這個(gè)選項(xiàng)設(shè)成ON。
nospoof選項(xiàng)指明不允許IP偽裝。IP偽裝是把自己偽裝成別的計(jì)算機(jī)去欺騙其它的計(jì)算機(jī),獲得它的信任。這種攻擊方法把自己偽裝成別的服務(wù)器,并且與其它客戶機(jī)、服務(wù)器和大型數(shù)據(jù)存儲(chǔ)系統(tǒng)建立網(wǎng)絡(luò)連接或其它類型的網(wǎng)絡(luò)活動(dòng)。不管對(duì)任何類型的服務(wù)器,這個(gè)選項(xiàng)都要設(shè)成ON。
九、防止源路由
路由和路由協(xié)議會(huì)導(dǎo)致一些問題。IP源路徑路由(IP source routing),也就是IP包包含到達(dá)底目的地址的詳細(xì)路徑信息,是非常危險(xiǎn)的,因?yàn)楦鶕?jù)RFC 1122規(guī)定目的主機(jī)必須按原路徑返回這樣的IP包。如果黑客能夠偽造原路徑路由的信息包,那么它就能截取返回的信息包,并且欺騙你的計(jì)算機(jī),讓它覺得正在和它交換信息的是可以信任的主機(jī)。我強(qiáng)烈建議你禁止IP原路徑路由以避免這個(gè)安全漏洞。
用下面的命令在你的服務(wù)器上禁止IP原路徑路由:
for f in /proc/sys/net/ipv4/conf/*/accept_source_route; do
echo 0 > $f
done
把上面的命令加到”/etc/rc.d/rc.local”文件中去,你就不用在系統(tǒng)重新啟動(dòng)之后再把這些命令敲一遍。注意,上面的命令將禁止所有的網(wǎng)絡(luò)界面(lo、ethN、pppN,等等)的源路徑路由包。
十、使TCP SYN Cookie保護(hù)生效
“SYN Attack”是一種拒絕服務(wù)(DoS)的攻擊方式,會(huì)消耗掉系統(tǒng)中的所有資源,迫使服務(wù)器重新啟動(dòng)。拒絕服務(wù)(這種攻擊方式用巨大的信息流來消耗系統(tǒng)的資源,以至于服務(wù)器不能夠響應(yīng)正常的連接請(qǐng)求)是很容易被黑客利用的。在2.1系列的內(nèi)核中,”syn cookie”只是一個(gè)可選項(xiàng),并沒有使其生效。想要使其生效必須用下面的命令:
# echo 1 > /proc/sys/net/ipv4/tcp_syncookies
把這個(gè)命令加入”/etc/rc.d/rc.local”文件中,等下次系統(tǒng)重新啟動(dòng)的時(shí)候就不必重新敲一遍了。如果打算安裝IPCHAINS防火墻,你就沒有必要用這個(gè)命令,因?yàn)樗呀?jīng)包含在防火墻的腳本文件里了。
十一、特殊的帳號(hào)
禁止中不必要的預(yù)置帳號(hào)(每次升級(jí)或安裝完都要檢查一下)。Linux系統(tǒng)中就提供這樣一些你可能不需要的預(yù)置帳號(hào)。如果確實(shí)不需要這些帳號(hào),就把它們刪掉。系統(tǒng)中有越多的帳號(hào),就越容易受到攻擊。
我們假定你已經(jīng)在系統(tǒng)中使用shadow口令。如果不是這樣,更好在系統(tǒng)中加上shadow口令的支持,因?yàn)檫@樣系統(tǒng)會(huì)更安全。如果你是按照上一章介紹的方法安裝服務(wù)器,那么在”安全驗(yàn)證配置”這一步就已經(jīng)選上”Enable Shaow Passwords”這個(gè)選項(xiàng)了。
在系統(tǒng)中刪除一個(gè)用戶可以用這個(gè)命令:
# userdel username
在系統(tǒng)中刪除一個(gè)組可以用這個(gè)命令:
# groupdel username
之一步 用下面的命令刪除一些不必要的用戶:
# userdel adm
# userdel lp
# userdel sync
# userdel shutdown
# userdel halt
# userdel news
# userdel uucp
# userdel operator
# userdel games (如果不用X Window服務(wù)器,可以刪除這個(gè)用戶)
# userdel gopher
# userdel ftp (如果沒安裝匿名ftp服務(wù)器,可以刪除這個(gè)用戶)
第二步 輸入下面的命令刪除一些不必要的組:
# groupdel adm
# groupdel lp
# groupdel news
# groupdel uucp
# groupdel games (delete this group if you don use X Window Server).
# groupdel dip
# groupdel pppusers
# groupdel popusers (delete this group if you don use pop server for email).
# groupdel slipusers
第三步
“不允許改變”位可以用來保護(hù)文件使其不被意外地刪除或重寫,也可以防止有些人創(chuàng)建這個(gè)文件的符號(hào)連接。刪除”/etc/passwd”、 “/etc/shadow”、”/etc/group”或”/etc/gshadow”都是黑客的攻擊方法。給口令文件和組文件設(shè)置不可改變位,可以用下面的命令:
# chattr i /etc/passwd
# chattr i /etc/shadow
# chattr i /etc/group
# chattr i /etc/gshadow
注意:如果將來要在口令或組文件中增加或刪除用戶,就必須先清除這些文件的不可改變位,否則就不能做任何改變。如果沒有清除這些文件的不可改變位,安裝那些會(huì)自動(dòng)在口令文件和組文件中加入新用戶的rpm軟件包的時(shí)候,在安裝過程中就會(huì)出現(xiàn)出錯(cuò)的提示。
十二、防止任何人都可以用su命令成為root
如果不想任何人都可以用”su”命令成為root或只讓某些用戶有權(quán)使用”su”命令,那么在”/etc/pam.d/su”文件中加入下面兩行。建議盡量限制用戶通過”su”命令成為root。
之一步
編輯su文件(vi /etc/pam.d/su)在文件的頭部加入下面兩行:
auth sufficient /lib/security/pam_rootok.so debug
auth required /lib/security/pam_wheel.so group=wheel
加入這兩行之后,”/etc/pam.d/su”文件變?yōu)椋?/p>
#%PAM-1.0
auth sufficient /lib/security/pam_rootok.so debug
auth required /lib/security/pam_wheel.so group=wheel
auth required /lib/security/pam_pwdb.so shadow nullok
account required /lib/security/pam_pwdb.so
password required /lib/security/pam_cracklib.so
password required /lib/security/pam_pwdb.so shadow use_authtok nullok
session required /lib/security/pam_pwdb.so
session optional /lib/security/pam_xauth.so
這兩行的意思是只有”wheel”組的成員才能用su命令成為root。注意,”wheel”組是系統(tǒng)中用于這個(gè)目的的特殊帳號(hào)。不能用別的組名。
第二步
在”/etc/pam.d/su”配置文件中定義有”wheel”組,現(xiàn)在介紹一下怎樣讓一些用戶可以用”su”命令成為”root”。下面是一個(gè)例子,讓admin用戶成為”wheel”組的成員,這樣就可以用”su”命令成為”root”:
# usermod -G10 admin
“G”是表示用戶所在的其它組?!?0″是”wheel”組的ID值,”admin”是我們加到”wheel”組的用戶。用同樣的命令可以讓其他的用戶可以用su命令成為root。
十三、 把rpm程序轉(zhuǎn)移到一個(gè)安全的地方,并改變默認(rèn)的訪問許可
一旦在上用rpm命令安裝完所有需要的軟件,更好把rpm程序轉(zhuǎn)移到一個(gè)安全的地方,如:軟盤或其它你認(rèn)為安全的地方。因?yàn)槿绻腥巳肭至四愕姆?wù)器,他就不能用rpm命令安裝那些有害的軟件。當(dāng)然,如果將來要用rpm安裝新的軟件,你就要把rpm程序拷回原來的目錄。把rpm程序移到軟盤上,用下面的命令:
# mount /dev/fd0 /mnt/floppy/
# mv /bin/rpm /mnt/floppy/
# umount /mnt/floppy
注意:千萬不要把rpm程序從系統(tǒng)中卸載掉,否則以后就不能重新安裝它,因?yàn)榘惭brpm程序或其它軟件包本身就要用rpm命令。
還有一點(diǎn)要注意的是,把rpm命令的訪問許可從默認(rèn)的755改成700。這樣非root用戶就不能使用rpm命令了。特別是考慮到萬一在安裝完新軟件之后忘了把rpm程序移到一個(gè)安全的地方,這樣做就更有必要了。
改變”/bin/rpm”默認(rèn)的訪問權(quán)限,用下面這個(gè)命令:
# chmod 700 /bin/rpm
十四、登錄shell
為了方便重復(fù)輸入很長的命令,bash shell可以在”~/.bash_history”文件(”~/”是家目錄,每個(gè)用戶都是不一樣的)中存500個(gè)曾經(jīng)輸入過的命令。每一個(gè)有自己帳號(hào)的用戶,在自己的家目錄中,都會(huì)有”.bash_history”文件??赡軙?huì)有這種情況,用戶在不該輸入口令的地方輸入了口令,而輸入的口令會(huì)在 “.bash_history”文件中保存下來。而且”.bash_history”文件越大這種可能性也越大。
在”/etc/profile”文件中HISTFILESIZE和HISTSIZE這兩行決定了系統(tǒng)中所有用戶的 “.bash_history”文件可以保存多少命令。我建議把”/etc/profile”文件中的HISTFILESIZE和HISTSIZE都設(shè)成一個(gè)比較小的值,如:20。
編輯profile文件(vi /etc/profile),把這些行改成:
HISTFILESIZE=20
HISTSIZE=20
這樣每個(gè)用戶家目錄下的”.bash_history”就最多只能存20個(gè)命令。如果黑客試圖在用戶的”~/.bash_history”文件中發(fā)現(xiàn)一些口令,他就沒有什么機(jī)會(huì)了。
十五、改變”/etc/rc.d/init.d/”目錄下的腳本文件的訪問許可
改變啟動(dòng)和停止daemon的腳本文件的權(quán)限。
# chmod -R 700 /etc/rc.d/init.d/*
這樣只有root可以讀、寫和執(zhí)行這個(gè)目錄下的腳本。我想一般用戶沒有什么必要知道腳本文件的內(nèi)容。
注意:如果你安裝或升級(jí)了一個(gè)程序,要用到”/etc/rc.d/init.d/”中system V腳本,不要忘記再檢查一下改變和檢查這個(gè)腳本文件的許可。
安全是針對(duì)性很強(qiáng)的問題,根據(jù)linux版本不同的。
比如 suse 是默認(rèn)配置也是安全性高的。
給Grub設(shè)了密碼(通常在裝系統(tǒng)時(shí)設(shè)定),在第二步按”e”時(shí),
就會(huì)提示你輸入Grub密碼,輸對(duì)了才能修改啟動(dòng)參數(shù).
所以給Grub設(shè)個(gè)密碼就好了.
關(guān)于linuxnobody 鎖定的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
成都創(chuàng)新互聯(lián)建站主營:成都網(wǎng)站建設(shè)、網(wǎng)站維護(hù)、網(wǎng)站改版的網(wǎng)站建設(shè)公司,提供成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、成都網(wǎng)站推廣、成都網(wǎng)站優(yōu)化seo、響應(yīng)式移動(dòng)網(wǎng)站開發(fā)制作等網(wǎng)站服務(wù)。
網(wǎng)頁標(biāo)題:如何使用Linux的nobody賬戶鎖定系統(tǒng)安全?(linuxnobody鎖定)
本文URL:http://www.dlmjj.cn/article/dghhpes.html


咨詢
建站咨詢
