xinetd使用指南(二)(轉)
xinetd使用指南(二)(轉)[@more@]例1 檔案/etc/xinetd.conf中的一部分 Serice ftp { Socket_type=stream protocol=tcp wait=no user=root server=root Server_args= - 1 - a } Service telnet { Socket_type=stream protocol=tcp wait=tcp user=root server=/usr/sbin/in.telnetd } 建立/etc/xinetd.conf檔案最容易的方法是用itox工具(該例假定當前工作目錄是xinetd的編譯目錄): # xinetd/itox -daemon_dir /usr/sbin /etc/xinetd.conf。itox的引數-daemon_dir /usr/sbin指定服務程式的目錄位置,如果實現了TCP_Wrappers,從/etc/inetd.conf中是不能確定它的,轉換完成以後,就開始增加屬性和值,以限制訪問並增加登記,最後要手工修改/etc/xinetd.conf以充分利用xinetd的特性;否則,如果只把 /etc/inetd.conf轉換為/etc/xinetd.conf, xinetd的行為就和inetd一樣了。 表1詳述了在/etc/xinetd.conf中最常使用的一些屬性和值。當然還有許多其他屬性,詳細配置選項可以在安裝xinetd以後透過man xinetd.conf來得到。在本小節後面的“配置例項”中,將用一些例子闡明其中的許多屬性。 表 2中給出only_from和no_access表的語法,定義了指定主機名,IP地址和網路的語法。注意表2中最後一項netmask的語法和之前看到的有所不同。它沒有采用傳統的十進位制或十六進位制netmask的表示方法,而是採用一個整數表示從netmask(用二進位制表示)的最高位(最左端)開始起每位都為1的位數。因此,給定例子的netmask值設定為20,意味著其最左端的20位都設定為1,而餘下12位設定為0,或 11111111 11111111 11110000 00000000 它是十進位制netmask255.255.240.0的二進位制表示。 表2 /etc/xinetd.conf的訪問控制表的語法 語 法 描 述 hostname 可解析的主機名。使用和這個主機名相關的所有IP地址 IPaddress 點和十進位制形式的標準IP地址,如192.168.0.1 Net_name /etc/networks中的網路名 x.x.x.0 x.x.0.0 x.0.0.0 0.0.0.0 0作為萬用字元看待。如項88.3.92.0匹配從88.3.92.0到88.3.92.255的所有IP地址。項0.0.0.0匹配所有地址 x.x.x.{a,b,…} x.x{a,b,…} x.{a,b,…} 指定主機表。如172.19.32.{1,56,59}意味著含IP地址172,19.32.1,172.19.32.56和172.19.32.59的表 Ipaddress/netmask 定義要匹配的網路或子網。如172.19.16.0/20匹配從172.19.16.0到172.19.31.255的所有地址 在看了這些基本屬性之後,下面我們仔細討論那些必需的屬性,特定服務和一些配置例項。 必需的屬性 對每種服務都必須指定某些屬性。一些服務比其他服務需要更多屬性,因為它們不被預設定義(即不在/etc/services或/etc/rpc中)。表3列出了必需的屬性。 表3 必需的屬性 語 法 描 述 Socket_type 所有服務 Wait 所有服務 User 在/etc/services或/etc/rpc中列出的服務 Server 非內部服務 Port 不在/etc/services中的非RPC服務 Protocol 不在/etc/services中的所有RPC服務和所有其他服務 Rpc_version 所有RPC服務 Rpc_number 不列在/etc/rpc中的任何RPC服務 特定的xinetd服務 /etc/xinetd.conf檔案中有4個特殊項。它們分別是defaults, servers,services和 xadmin。Defaults項不是一項服務,且不需要前置service關鍵字(否則它會被當成稱為defaults的服務對待)。這些特殊項在以下 4小段中描述。 Defaults項 /etc/xinetd.conf檔案中的defaults項是實現為該檔案中的所有服務指定某些屬性的預設值。這些預設值可被每個服務項取消或修改。表4中列出可在defaults項中指定的屬性。這個表也指明瞭具體服務項中可以修改哪些屬性。 表4 defaults可用的屬性 屬性 服務修改 Log_on_success Log-on_failure Only_from No_access Passenv 可以用=運算子改寫或用+ =或 - =運算子修改 Instances Log_type 可以用=運算子改寫 disabled 可註釋掉的服務,但disabled屬性可用於某個服務項內 例 2是defaults項的一個例項。從中看到對所有服務而言,登記訊息將透過loca14.info有選擇地送到syslogd程式。對成功的服務連線,將登記PID,客戶機IP地址,中止狀態和連線時間。對不成功的連線企圖,將登記客戶機IP地址。每項服務的最大例項數設定為8。禁止兩項服務: in.tftpd和in.rexecd。 defaults項從本質上提供了在整個檔案中建立某些屬性的預設值,它應用於沒有設定這些屬性的所有服務。 例2 /etc/xinetd.conf中defaults項的示例 Defaults { Log_type = SYSLOG loca14 info Log_on_success = PID HOST EXIT DURATION Log_on_failure = HOST Instances =8 Disabled = in.tftpd in.rexecd } 注:如果在/etcxinetd.conf檔案中沒有defaults項,且之後決定增加這一項,你必須中止和重新啟動xinetd以使defaults生效。這對任何要增加到/etc/xinetd.conf中的新服務也是正確的。它可以如下完成。 # kill-TERM xinetd #/ usr/sbin/xinetd 或者如果使用了啟動指令碼,則只需要簡單執行。 #/etc/rc.d/init.d/xinetd restart Servers 項 servers特殊服務是實現提供當前執行在伺服器上的程式表,以及有關這些程式的確切資訊。換句話說,它提供了活動連線的列表。這對排除故障和檢查 xinetd狀態是個有用機制。例3顯示了/etc/xinetd.conf檔案中的一個例項servers項。注意這項服務的型別是INTERNAL, UNLISTED,這意味著它是xinetd的內部功能,且不列在/etc/services中。使用的埠是完全任意的。 例3 servers項的示例 Service servers { type = INTERNAL UNLISTED Socket_type = stream Protocol = tcp Port = 9997 Wait = no Only_from = 172.17.33.111 Wait = no } 注意這項服務僅用於特定IP地址172.17.33.111,它是伺服器自身的IP地址。這表示不允許任何其他主機從這個伺服器獲得當前執行在伺服器上的程式列表。這樣做的原因是顯而易見的:如果這條資訊可被其他系統上的主機獲取,基於對當前正在執行的程式的瞭解就加以利用。除用於除錯之外,一般不要執行該服務,因為172.17.33.111上的任何使用者透過執行例4中的telnet 172.17.33.111 9997都能獲取這條資訊。注意 xinetd僅提供這條資訊就退出,不提供互動連線。例4中的輸出告訴我們有兩個正在執行的telnet程式(第5行和第31行),一個程式PID為 5931,另一個為5961(分別為第6行和第32行),有一個ftp程式(第18行),其執行PID為5960(第19行)。 例4 servers服務的輸出示例 1 $ telnet topcat 9997 2 Trying 172.17.33.111…… 3 Connected to topcat 4 Escape character is ‘^]’ 5 telnet server 6 Pid=5931 7 Start_time=Sat Apr 17 10:32:15 1999 8 Connection info: 9 State=CLOSED 10 Service=telnet 11 Descriptor=20 12 Flags=9 13 Remote_address=10.48.3.2,39958 14 Alternative services= 15 Log_remote_user=YES 16 Writes_to_log=YES 17 18 ftp server 19 Pid=5960 20 Start_time=Sat Apr 17 10:49:06 1999 21 Connection info: 22 State=CLOSED 23 Service=ftp 24 Descriptor=20 25 Flags=9 26 Remote_address=172.17.55.124,2320 27 Alternative services= 28 Log_remote_user=YES 29 Writes_to_log=YES 30 31 telnet server 32 Pid=5961 33 Start_time=Sat Apr 17 10:49:20 1999 34 Connection info: 35 State=CLOSED 36 Service=telnet 37 Descriptor=20 38 Flags=9 39 Remote_address=172.17.1.3,35461 40 Alternative services= 41 Log_remote_user=YES 42 Writes_to_log=YES 43 44 Connection closed by foreign host 45 $ Services項 services特定項的目的是提供可用服務的列表。對services特定項來說,這是個有用的排除故障工具,但為了上述同樣的安全因素,可能不會去用它。儘管如此,還是要看一看它如何工作。 例5是 services項的一個示例。埠號的選擇也是任意的。也應注意訪問限制於topcat,這是伺服器自身的主機名。 例5 /etc/xinetd.conf中services項示例 Service services { type = INTERNAL UNLISTED Socket_type = stream protocol = tcp port = 8099 wait = no Only_ from = topcat } 對於servers服務來說,任何使用者可執行telnet topcat 8099,並獲得來自services服務的輸出。例6給出了連線8099埠的例項資訊資訊。注意xinetd僅提供這條資訊就退出,而不提供任何互動連線。 例6 查詢services內部服務的輸出 $ telnet topcat 8099 Trying 172.17.33.111…… Connected to topcat. Escape character is ‘^]’ Servers tcp 9997 Services tcp 8099 ftp tcp 21 telnet tcp 23 Shell tcp 514 Login tcp 513 Talk udp 517 Ntalk udp 518 Pop-2 tcp 109 Pop-3 tcp 110 Imap tcp 143 Linuxconf tcp 98 Connection closed by foreign host. $ Xadmin項 這個特定服務項提供以互動方式獲得services特定服務所提供資訊的方法。例7是/etc/xinetd.conf項的一個示例(埠號的選擇也是任意的),類似於services和servers服務,這項服務也沒有口令或其他保護,所以要謹慎設定服務的only_from項,以增強安全性。(linux知識寶庫
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8225414/viewspace-945510/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Linux 7.x TCP Wrapper and xinetd(轉)LinuxTCPAPP
- Git submodule使用指南(二)Git
- Vsftp 交由 Xinetd 接管FTP
- hook使用指南(一) (轉)Hook
- RecyclerView使用指南(二)—— 多種ItemLayoutView
- LILO使用指南(下)(轉)
- LILO使用指南(中)(轉)
- LILO使用指南(上)(轉)
- 效能測試工具Locust使用指南(二)
- Portage使用者使用指南(轉)
- Linux中mount使用指南(轉)Linux
- MPlayer安裝和使用指南(轉)
- GnuPG-GNU的PGP使用指南(轉)
- Linux初學者Patch使用指南(轉)Linux
- SQLPlus命令使用指南(一) (轉)SQL
- MySQL DBA備份工具Xtrabackup使用指南(轉)MySql
- xinetd - Linux中的網路相關服務Linux
- Nuxt框架中內建元件詳解及使用指南(二)UX框架元件
- Linux 守護程式和超級守護程式(xinetd)Linux
- GCC 使用指南及gcc最佳編譯引數(轉)GC編譯
- Python JSON 使用指南:解析和轉換資料PythonJSON
- WindowsXP作業系統防火牆經典使用指南(轉)Windows作業系統防火牆
- SQLT 使用指南SQL
- Lombok使用指南Lombok
- Rundeck使用指南
- git使用指南Git
- gulp 使用指南
- SOAR 使用指南
- FontAwesome使用指南
- OpenSUSE 使用指南
- gulp使用指南
- JMH 使用指南
- GPG 使用指南
- nmap使用指南
- Vim使用指南
- Charles使用指南
- CppUnit使用指南
- Webpack使用指南Web