萬盛學電腦網

 萬盛學電腦網 >> Linux教程 >> Linux簡明系統維護手冊(二)

Linux簡明系統維護手冊(二)

class="22680">

四、主要的軟件安裝

  前面說過,我的習慣是,裝系統的時候就安裝一個內核和編譯系統,得到了一個干淨的系統後,再安裝其他的軟件就比較清晰。另一點,除非搞不到源代碼版本,一般情況下我都會下載官方版本的源代碼文件,來重新編譯之。同樣的,選擇軟件版本要根據該軟件的Release Note來決定,並非越新越好。這就是為什麼很多軟件都是幾個版本齊頭並進的發展之原因。這些軟件不同版本之間的安裝方法會有少許不同,安裝前一定要仔細閱讀目錄中的README文件和INSTALL文件,否則這些少許不同會造成不少得麻煩。下面描述的安裝過程都核版本號緊密相關。另外,所有的軟件都把程序文件的包拷貝到/usr/local/src目錄中再解壓縮,這是習慣。因為在Linux中習慣於把後來的軟件裝在/usr/local中。

  (1)安裝DNS服務器

  1、從www.isc.org下載bind 域名服務器軟件。我們這裡用的是bind8.3.0,bind8分支和bind9分支是並行發展的。根據自己的實際情況選擇合適的bind版本。

  2、mkdir /usr/src/bind83

  3、下載的文件叫bind-src.tar.gz,復制到/usr/local/src/bind83目錄下。

  4、cd /usr/local/src/bind83

  5、tar zxvf bind-src.tar.gz

  6、cd src

  7、make stdlinks

  8、make clean

  9、make depend

  10、make all

  11、make install

  12、編輯配置文件:/etc/named.conf內容如下,需要更改的部分用黑體標出:

  /*
   * This is a worthless, nonrunnable example of a named.conf file that has
   * every conceivable syntax element in use.  We use it to test the parser.
   * It could also be used as a conceptual template for users of new features.
   */

  /*
   * C-style comments are OK
   */

  // So are C++-style comments

  # So are shell-style comments

  // watch out for ";" -- it's important!

  options {
       directory "/var/named";                 
      // use current directory
       named-xfer "/usr/libexec/named-xfer";   
      // _PATH_XFER
       dump-file "named_dump.db";             
      // _PATH_DUMPFILE
      pid-file "/var/run/named.pid";          
       // _PATH_PIDFILE
      statistics-file "named.stats";          
      // _PATH_STATS
      memstatistics-file "named.memstats";     
      // _PATH_MEMSTATS
      check-names master fail;
      check-names slave warn;
      check-names response ignore;
      host-statistics no;
      deallocate-on-exit no;                  
      // Painstakingly deallocate all
      // objects when exiting instead of
      // letting the OS clean up for us.
      // Useful a memory leak is suspected.
            // Final statistics are written to the
            // memstatistics-file.
      datasize default;
      stacksize default;
      coresize default;
      files unlimited;
      recursion yes;
      fetch-glue yes;
      fake-iquery no;
      notify yes;    
     // send NOTIFY messages.  You can set
         // notify on a zone-by-zone
         // basis in the "zone" statement
         // see (below)
      serial-queries 4;               
     // number of parallel SOA queries
         // we can have outstanding for master
         // zone change testing purposes
      auth-nxdomain yes;             
         // always set AA on NXDOMAIN.
         // don't set this to 'no' unless
         // you know what you're doing -- older
         // servers won't like it.
      multiple-cnames no;             
       // if yes, then a name my have more
        // than one CNAME RR.  This use
        // is non-standard and is not
        // recommended, but it is available
        // because previous releases supported
        // it and it was used by large sites
        // for load balancing.
     allow-query { any; };
     allow-transfer { any; };
      transfers-in 10;               
     // DEFAULT_XFERS_RUNNING, cannot be
       // set > than MAX_XFERS_RUNNING (20)
      transfers-per-ns 2;             
         // DEFAULT_XFERS_PER_NS
      transfers-out 0;                
        // not implemented
      max-transfer-time-in 120;     
        // MAX_XFER_TIME; the default number
        // of minutes an inbound zone transfer
        // may run.  May be set on a per-zone
        // basis.
     transfer-format one-answer;
     query-source address * port *;
  /*
     * The "forward" option is only meaningful if you've defined
     * forwarders.  "first" gives the normal BIND
     * forwarding behavior, i.e. ask the forwarders first, and if that
     * doesn't work then do the full lookup.  You can also say
     * "forward only;" which is what used to be specified with
     * "slave" or "options forward-only".  "only" will never attempt
   * a full lookup; only the forwarders will be used.
   */
    forward first;
    forwarders { };                
    // default is no forwarders
      topology { localhost; localnets; };     
    // prefer local nameservers
      listen-on port 53 { any; };     
    // listen for queries on port 53 on
      // any interface on the system
      // (i.e. all interfaces).  The
      // "port 53" is optional; if you
      // don't specify a port, port 53
      // is assumed.
    /*
     * Interval Timers
     */
    cleaning-interval 60;          
     // clean the cache of expired RRs
      // every 'cleaning-interval' minutes
    interface-interval 60;          
    // scan for new or deleted interfaces
      // every 'interface-interval' minutes
    statistics-interval 60;         
    // log statistics every 
      // 'statistics-interval' minutes
    maintain-ixfr-base no;   
    // If yes, keep transaction log file for IXFR
    max-ixfr-log-size 20;        
    // Not implemented, maximum size the 
      // IXFR transaction log file to grow
  };

  /*
   * Control listeners, for "ndc".  Every nameserver needs at least one.
   */
  controls {
        inet * port 52 allow { any; };
             // a bad idea
        unix "/var/run/ndc" perm 0600 owner 0 group 0; 
       // the default
  };

  zone "rd.xxx.com" in {
        type master;                    
      // what used to be called "primary" 
        file "rd.xxx.com.db";
        check-names fail;
        allow-update { none; };
        allow-transfer { any; };
        allow-query { any; };
        // notify yes;                  
      // send NOTIFY messages for this
            // zone?  The global option is used
            // if "notify" is not specified
            // here.
        also-notify { };                
      // don't notify any nameservers other
            // than those on the NS list for this
            // zone
  };

  zone "223.99.211.in-addr.arpa" in {
        type master;         
           // what used to be called "secondary" 
        file "21.9.22.db";
        };

  zone "0.0.127.in-addr.arpa" in {
        type master;
        file "127.0.0.db";
  };

  zone "." in {
        type hint;                     
       // used to be specified w/ "cache"
        file "named.root";
  };

  logging {
        /*
         * All log output goes to one or more "channels"; you can make as
         * many of them as you want.
         */

     channel syslog_errors {         
      // this channel will send errors or
        syslog user;            
      // or worse to syslog (user facility)
        severity error;
     };

    category parser {
       syslog_errors;
          // you can log to as many channels
       default_syslog;     
      // as you want
    };

    category lame-servers { null; };       
     // don't log these at all

    channel moderate_debug {
       severity debug 3;              
     // level 3 debugging to file
       file "foo";                     
     // foo
       print-time yes;                 
    // timestamp log entries
       print-category yes;            
     // print category nam
						
copyright © 萬盛學電腦網 all rights reserved