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服務 [[email protected] ~] # chkconfig --list | grep telnet telnet:啟用 #看到了嗎?我們一開始已經把Telnet服務的自啟動關閉了。后面的實驗雖然只啟動了#Telnet服務,但是該服務自動變為了自啟動狀態
這個實驗說明了基于 xinetd 服務的啟動和自啟動命令之間是通用的,在當前系統中啟動了服務,服務的自啟動也會開啟;關閉了服務的自啟動,當前系統中的服務也會關閉。
到此這篇關于Linux使用xinetd服務的管理方法案例詳解的文章就介紹到這了,更多相關Linux使用xinetd服務的管理內容請搜索以前的文章或繼續瀏覽下面的相關文章,希望大家以后多多支持!
相關文章:
