歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Linux資訊 >> 更多Linux

xinetd使用指南(二)

  例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知識寶庫)



$  Xadmin項  這個特定服務項提供以交互方式獲得services特定服務所提供信息的方法。例7是/etc/xinetd.conf項的一個示例(端口號的選擇也是任意的),類似於services和servers服務,這項服務也沒有口令或其他保護,所以要謹慎設置服務的only_from項,以增強安全性。(linux知識寶庫)



Copyright © Linux教程網 All Rights Reserved