Linux使用xinetd服務的管理方法案例詳解

基於 xinetd 服務的啟動

基於 xinetd 的服務沒有自己獨立的啟動腳本程序,是需要依賴 xinetd 的啟動腳本來啟動的。xinetd 本身是獨立的服務,所以 xinetd 服務自己的啟動方法和獨立服務的啟動方法是一致的。

但是,所有基於 xinetd 這個超級守護進程的其他服務就不是這樣的瞭,必須修改該服務的配置文件,才能啟動基於 xinetd 的服務。所有基於 xinetd 服務的配置文件都保存在 /etc/xinetd.d/ 目錄中。

我們使用 Telnet 服務來舉例。Telnet 服務是用來進行系統遠程管理的,端口是 23。不過需要註意的是,Telnet 服務的遠程管理數據在網絡中是明文傳輸的,非常不安全,所以在生產服務器上是不建議啟動 Telnet 服務的。在生產服務器上,遠程管理使用的是 ssh 協議,ssh 協議是加密的,更加安全。

Telnet 服務也是分為"客戶端/服務器端"的,其中服務器端是用來啟動 Telnet 服務的,並不安全;客戶端是用來連接服務器端或測試服務器的端口是否開啟的,在實際工作中我們主要使用 Telnet 客戶端來測試遠程服務器開啟瞭哪些端口。

客戶端的命令格式如下:

[root@localhost ~]# telnet 服務器 IP
#連接並管理遠程服務器,因為數據明文傳輸,所以不安全
[root@localhost ~]# telnet 服務器IP 端口
#測試遠程服務器的端口是否開啟。如果能夠正常連接,則證明該端口是開啟的

例如:

[root@localhost ~]# telnet 192.168.0.210 22
#測試一下192.168.0.210這臺服務器上的22(ssh服務)端口是否打開
#連接成功後,退出時使用"Ctrl+]"快捷鍵回到telnet交互模式,再輸入"quit"退出

雖然 Telnet 服務不安全,但 Telnet 服務是基於 xinetd 的服務,我們使用 Telnet 服務來學習一下基於 xinetd 服務的啟動管理。在目前的 Linux 系統中,Telnet 的服務器端都是不安裝的,如果進行測試,則需要手工安裝。安裝命令如下:

[root@localhost ~]#rpm-ivh/mnt/cdroin/Packages/telnet-server-0.17-47.el6.i686.rpm
[100%]
###############
Preparing...
1:telnet-server
###############
[100%]
#安裝
[root@localhost ~]# chkconfig -list
#安裝之後查詢一下
…省略部分輸出...
基於xinetd的服務:
chargen-dgram:關閉
chargen-stream:關閉
cvs:關閉
daytime-dgram:關閉
daytime-stream:關閉
discard-dgram:關閉
discard-stream:關閉
echo-dgram:關閉
echo-stream:關閉
rsync:關閉
tcpmux-server:關閉
telnet:關閉
time-dgram:關閉
time-stream:關閉
#Telnet服務已經安裝,是基於xinetd的服務,自啟動狀態是關閉

接下來我們就要啟動 Telnet 服務瞭。既然基於 xinetd 服務的配置文件都在 /etc/xinetd.d/ 目錄中,那麼 Telnet 服務的配置文件就是 /etc/xinetd.d/telnet。我們打開這個文件看看,如下:

[root@localhost ~]#vi /etc/xinetd.d/telnet
#default: on
#description: The telnet server serves telnet sessions; it uses \
#unencrypted username/password pairs for authentication.
service telnet
#服務的名稱為telnet
{
flags = REUSE
#標志為REUSE,設定TCP/IP socket可重用
socketjtype = stream
#使用 TCP協議數據包
wait = no
#允許多個連接同時連接
user = root
#啟動服務的用戶為root
server = /usr/sbin/in.telnetd
#服務的啟動程序
log_on_failure += USERID
#登錄失敗後,記錄用戶的ID
disable = yes
#服務不啟動
}

如果想要啟動 Telnet 服務,則隻需要把 /etc/xinetd.d/telnet 文件中的"disable=yes"改為"disable=no"即可,"disable"代表取消,"disable=yes"代表取消是 yes,當然不啟動服務;"disable=no"代表取消是 no,當然就是啟動服務瞭。具體命令如下:

[root@localhost ~]#vi /etc/xinetd.d/telnet
#修改配置文件
service telnet {
…省略部分輸出…
disable = no
#把 yes 改為no
}
[root@localhost ~]# service xinetd restart
#重啟xinetd服務
停止 xinetd:
[確定]
正在啟動xinetd:
[確定]
[root@localhost ~]# netstat -tlun|grep 23
tcp 0 0 :::23 :::* LISTEN
#查看端口,23端口啟動,表示Telne服務已經啟動瞭

基於 xinetd 服務的啟動都是這樣的,隻需修改 /etc/xinetd.d/ 目錄中的配置文件,然後重啟 xientd 服務即可。

基於xientd 服務的自啟動

基於 xinetd 服務的自啟動管理有兩種方法,分別是通過 chkconfig 命令管理自啟動和通過 ntsysv 命令管理自啟動。但是不能通過修改 /etc/rc.d/rc.local 配置文件來管理自啟動,因為基於 xinetd 的服務沒有自己的啟動腳本程序。我們分別來看看。

1) 使用 chkconfig 命令管理自啟動

chkconfig 自啟動管理命令可以管理所有 RPM 包默認安裝的服務,所以也可以用來管理基於 xinetd 服務的自啟動。命令格式如下:

[root@localhost ~]# chkconfig 服務名 on|off
#基於xinetd的服務沒有自己的運行級別,而依靠xinetd服務的運行級別,所以不用指定--level選項

例如:

[root@localhost ~]# chkconfig telnet on
#啟動Telnet服務的自啟動
[root@localhost ~]# chkconfig --list|grep telnet
telnet:啟用
#查看服務的自啟動,Telnet服務變為瞭"啟用"
[root@localhost ~]# chkconfig telnet off
#關閉Telnet服務的自啟動
[root@localhost ~]# chkconfig --list|grep telnet
telnet:關閉
#查看服務的自啟動,Telnet服務變為瞭 "關閉"

2) 使用 ntsysv 命令管理自啟動

ntsysv 命令既然可以管理所有 RPM 包默認安裝的服務,當然也能管理基於 xinetd 的服務。命令的使用方法和管理獨立的服務是一樣的,這裡就不再重復介紹瞭。

其實,如果我們仔細來看,就會發現基於 xinetd 服務的啟動和自啟動區分得並不嚴格。啟動命令也會把服務設置為自啟動,自啟動命令也會把服務設置為啟動。我們做一個實驗看看,命令如下:

[root@localhost ~]# vi /etc/xinetd.d/telnet service telnet
{
disable = yes
...省略部分輸出...
}
[root@localhost ~]# service xinetd restart
停止xinetd: [確定]
正在啟動xinetd: [確定】
[root@localhost ~]# chkconfig telnet off
#先關閉Telnet服務的啟動和自啟動,保證不會對後面的實驗產生影響
[root@localhost ~]# vi /etc/xinetd.d/telnet service telnet
{
disable = no
...省略部分輸出...
}
[root@localhost ~]# service xinetd restart
停止xinetd: [確定]
正在啟動xinetd: [確定】
#然後啟動Telnet服務
[root@localho.st ~] # chkconfig --list | grep telnet
telnet:啟用
#看到瞭嗎?我們一開始已經把Telnet服務的自啟動關閉瞭。後面的實驗雖然隻啟動瞭#Telnet服務,但是該服務自動變為瞭自啟動狀態

這個實驗說明瞭基於 xinetd 服務的啟動和自啟動命令之間是通用的,在當前系統中啟動瞭服務,服務的自啟動也會開啟;關閉瞭服務的自啟動,當前系統中的服務也會關閉。

到此這篇關於Linux使用xinetd服務的管理方法案例詳解的文章就介紹到這瞭,更多相關Linux使用xinetd服務的管理內容請搜索GuideAH以前的文章或繼續瀏覽下面的相關文章,希望大傢以後多多支持GuideAH!

閱讀更多: