Linux網(wǎng)絡(luò)服務(wù)器配置入門(二)
更新時(shí)間:2006年10月24日 00:00:00 作者:
* /etc/inetd.conf 文件
眾所周知,作為服務(wù)器來說,服務(wù)端口開放越多,系統(tǒng)安全穩(wěn)定性越難以保證。所以提供特定服務(wù)的服務(wù)器應(yīng)該盡可能開放提供服務(wù)必不可少的端口,而將與服務(wù)器服務(wù)無關(guān)的服務(wù)關(guān)閉,比如:一臺作為www和ftp服務(wù)器的機(jī)器,應(yīng)該只開放80 和25端口,而將其他無關(guān)的服務(wù)如:finger auth等服務(wù)關(guān)掉,以減少系統(tǒng)漏洞。
而inetd,也叫作“超級服務(wù)器”,就是監(jiān)視一些網(wǎng)絡(luò)請求的守護(hù)進(jìn)程,其根據(jù)網(wǎng)絡(luò)請求來調(diào)用相應(yīng)的服務(wù)進(jìn)程來處理連接請求。inetd.conf則是inetd的配置文件。inetd.conf文件告訴inetd監(jiān)聽哪些網(wǎng)絡(luò)端口,為每個(gè)端口啟動(dòng)哪個(gè)服務(wù)。在任何的網(wǎng)絡(luò)環(huán)境中使用Linux系統(tǒng),第一件要做的事就是了解一下服務(wù)器到底要提供哪些服務(wù)。不需要的那些服務(wù)應(yīng)該被禁止掉,最好卸載掉,這樣黑客就少了一些攻擊系統(tǒng)的機(jī)會(huì)。查看“/etc/inetd.conf”文件,了解一下inetd提供哪些服務(wù)。用加上注釋的方法(在一行的開頭加上#號),禁止任何不需要的服務(wù),再給inetd進(jìn)程發(fā)一個(gè)SIGHUP信號。
第一步:把文件的許可權(quán)限改成600。
[root@deep]# chmod 600 /etc/inetd.conf
第二步:確信文件的所有者是root。
[root@deep]# stat /etc/inetd.conf
第三步:編輯“inetd.conf”文件(vi /etc/inetd.conf),禁止所有不需要的服務(wù),如:ftp、 telnet、 shell、 login、 exec、talk、ntalk、 imap、 pop-2、pop-3、finger、auth,等等。如果你覺得某些服務(wù)有用,可以不禁止這些服務(wù)。但是,把這些服務(wù)禁止掉,系統(tǒng)受攻擊的可能性就會(huì)小很多。改變后的“inetd.conf”文件的內(nèi)容如下面所示:
# To re-read this file after changes, just do a 'killall -HUP inetd'
#
#echo stream tcp nowait root internal
#echo dgram udp wait root internal
#discard stream tcp nowait root internal
#discard dgram udp wait root internal
#daytime stream tcp nowait root internal
#daytime dgram udp wait root internal
#chargen stream tcp nowait root internal
#chargen dgram udp wait root internal
#time stream tcp nowait root internal
#time dgram udp wait root internal
#
# These are standard services.
#
#ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd -l -a
#telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd
#
# Shell, login, exec, comsat and talk are BSD protocols.
#
#shell stream tcp nowait root /usr/sbin/tcpd in.rshd
#login stream tcp nowait root /usr/sbin/tcpd in.rlogind
#exec stream tcp nowait root /usr/sbin/tcpd in.rexecd
#comsat dgram udp wait root /usr/sbin/tcpd in.comsat
#talk dgram udp wait root /usr/sbin/tcpd in.talkd
#ntalk dgram udp wait root /usr/sbin/tcpd in.ntalkd
#dtalk stream tcp wait nobody /usr/sbin/tcpd in.dtalkd
#
# Pop and imap mail services et al
#
#pop-2 stream tcp nowait root /usr/sbin/tcpd ipop2d
#pop-3 stream tcp nowait root /usr/sbin/tcpd ipop3d
#imap stream tcp nowait root /usr/sbin/tcpd imapd
#
# The Internet UUCP service.
#
#uucp stream tcp nowait uucp /usr/sbin/tcpd /usr/lib/uucp/uucico -l
#
# Tftp service is provided primarily for booting. Most sites
# run this only on machines acting as "boot servers." Do not uncomment
# this unless you *need* it.
#
#tftp dgram udp wait root /usr/sbin/tcpd in.tftpd
#bootps dgram udp wait root /usr/sbin/tcpd bootpd
#
# Finger, systat and netstat give out user information which may be
# valuable to potential "system crackers." Many sites choose to disable
# some or all of these services to improve security.
#
#finger stream tcp nowait root /usr/sbin/tcpd in.fingerd
#cfinger stream tcp nowait root /usr/sbin/tcpd in.cfingerd
#systat stream tcp nowait guest /usr/sbin/tcpd /bin/ps -auwwx
#netstat stream tcp nowait guest /usr/sbin/tcpd /bin/netstat -f inet
#
# Authentication
#
#auth stream tcp nowait nobody /usr/sbin/in.identd in.identd -l -e -o
#
# End of inetd.conf
注意:改變了“inetd.conf”文件之后,別忘了給inetd進(jìn)程發(fā)一個(gè)SIGHUP信號(killall –HUP inetd)。
[root@deep /root]# killall -HUP inetd
第四步:
為了保證“inetd.conf”文件的安全,可以用chattr命令把它設(shè)成不可改變。把文件設(shè)成不可改變的只要用下面的命令:
[root@deep]# chattr +i /etc/inetd.conf
這樣可以避免“inetd.conf”文件的任何改變(意外或是別的原因)。一個(gè)有“i”屬性的文件是不能被改動(dòng)的:不能刪除或重命名,不能創(chuàng)建這個(gè)文件的鏈接,不能往這個(gè)文件里寫數(shù)據(jù)。只有系統(tǒng)管理員才能設(shè)置和清除這個(gè)屬性。如果要改變inetd.conf文件,你必須先清除這個(gè)不允許改變的標(biāo)志:
[root@deep]# chattr -i /etc/inetd.conf
但是對于諸如sendmail,named,www等服務(wù),由于它們不象finger,telnet等服務(wù),在請求到來時(shí)由inet守護(hù)進(jìn)程啟動(dòng)相應(yīng)的進(jìn)程提供服務(wù),而是在系統(tǒng)啟動(dòng)時(shí),作為守護(hù)進(jìn)程運(yùn)行的。而對于redhat linux,提供了一個(gè)linuxconfig命令,可以通過它在圖形界面下交互式地設(shè)置是否在啟動(dòng)時(shí)運(yùn)行相關(guān)服務(wù)。也可以通過命令來設(shè)置是否啟動(dòng)時(shí)啟動(dòng)某個(gè)服務(wù),如:[root@deep]# chkconfig –level 35 named off
具體命令可以參考man chkconfig的說明。
* /etc/hosts.allow 文件
但是對于telnet、ftp等服務(wù),如果將其一同關(guān)閉,那么對于管理員需要遠(yuǎn)程管理時(shí),將非常不方便。Linux提供另外一種更為靈活和有效的方法來實(shí)現(xiàn)對服務(wù)請求用戶的限制,從而可以在保證安全性的基礎(chǔ)上,使可信任用戶使用各種服務(wù)。Linux提供了一個(gè)叫TCP wrapper的程序。在大多數(shù)發(fā)布版本中該程序往往是缺省地被安裝。利用TCP wrapper你可以限制訪問前面提到的某些服務(wù)。而且TCP wrapper的記錄文件記錄了所有的企圖訪問你的系統(tǒng)的行為。通過last命令查看該程序的log,管理員可以獲知誰曾經(jīng)或者企圖連接你的系統(tǒng)。
在/etc目錄下,有兩個(gè)文件:hosts.deny hosts.allow 通過配置這兩個(gè)文件,你可以指定哪些機(jī)器可以使用這些服務(wù),哪些不可以使用這些服務(wù)。
當(dāng)服務(wù)請求到達(dá)服務(wù)器時(shí),TCP wrapper就按照下列順序查詢這兩個(gè)文件,直到遇到一個(gè)匹配為止:
1.當(dāng)在/etc/hosts.allow里面有一項(xiàng)與請求服務(wù)的主機(jī)地址項(xiàng)匹配,那么就允許該主機(jī)獲取該服務(wù)
2.否則,如果在/etc/hosts.deny里面有一項(xiàng)與請求服務(wù)的主機(jī)地址項(xiàng)匹配,就禁止該主機(jī)使用該項(xiàng)服務(wù)。
3.如果相應(yīng)的配置文件不存在,訪問控制軟件就認(rèn)為是一個(gè)空文件,所以可以通過刪除或者移走配置文件實(shí)現(xiàn)對清除所有設(shè)置。在文件中,空白行或者以#開頭的行被忽略,你可以通過在行前加 # 實(shí)現(xiàn)注釋功能。
配置這兩個(gè)文件是通過一種簡單的訪問控制語言來實(shí)現(xiàn)的,訪問控制語句的基本格式為:
程序名列表:主機(jī)名/IP地址列表。
程序名列表指定一個(gè)或者多個(gè)提供相應(yīng)服務(wù)的程序的名字,名字之間用逗號或者空格分割,可以在inetd.conf文件里查看提供相應(yīng)服務(wù)的程序名:如上面的文件示例中,telent所在行的最后一項(xiàng)就是所需的程序名:in.telnetd。
主機(jī)名/IP地址列表指定允許或者禁止使用該服務(wù)的一個(gè)或者多個(gè)主機(jī)的標(biāo)識,主機(jī)名之間用逗號或空格分?。辰{蠣橢骰刂范伎梢允褂猛ㄅ浞?,实现藩?jiǎng)愕鬧付ǘ嘞罘窈投喔鮒骰?
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ò)/掩碼,如果請求服務(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提供的方式中的幾種,但是對于我們的一般應(yīng)用來說是足夠了。我們通過舉幾個(gè)例子來說明這個(gè)問題:
例一:我們只希望允許同一個(gè)局域網(wǎng)的機(jī)器使用服務(wù)器的ftp功能,而禁止廣域網(wǎng)上面的ftp服務(wù)請求,本地局域網(wǎng)由 202.39.154.、202.39.153.和202.39.152. 三個(gè)網(wǎng)段組成。
在hosts.deny文件中,我們定義禁止所有機(jī)器請求所有服務(wù):
ALL:ALL
在hosts.allow文件中,我們定義只允許局域網(wǎng)訪問ftp功能:
in.ftpd -l –a: 202.39.154 202.39.153. 202.39.152.
這樣,當(dāng)非局域網(wǎng)的機(jī)器請求ftp服務(wù)時(shí),就會(huì)被拒絕。而局域網(wǎng)的機(jī)器可以使用ftp服務(wù)。此外,應(yīng)該定期檢查/var/log目錄下的紀(jì)錄文件,發(fā)現(xiàn)對系統(tǒng)安全有威脅的登錄事件。last命令可以有效的查看系統(tǒng)登錄事件,發(fā)現(xiàn)問題所在。
最后tcpdchk是檢查TCP_WAPPERS配置的程序。它檢查TCP_WAPPERS的配置,并報(bào)告它可以發(fā)現(xiàn)的問題或潛在的問題。在所有的配置都完成了之后,請運(yùn)行tcpdchk程序:
[root@deep]# tcpdchk (出處:網(wǎng)絡(luò))
相關(guān)文章
window10系統(tǒng)安裝Ubuntu18.04系統(tǒng)的圖文教程詳解
這篇文章主要介紹了window10系統(tǒng)安裝Ubuntu18.04系統(tǒng),本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下2019-06-06