Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2474052
  • 博文数量: 867
  • 博客积分: 10010
  • 博客等级: 上将
  • 技术积分: 9800
  • 用 户 组: 普通用户
  • 注册时间: 2006-07-27 14:44
文章分类

全部博文(867)

文章存档

2007年(6)

2006年(861)

我的朋友

分类: LINUX

2006-08-20 21:53:17


   
      (很多的兄弟们需要一些关于服务器配置的资料,我在这里整理转载一些自己积累 的文章共享,在这里感谢原文的作者。)
      用实验快速学习Samba
      前言:在windows和linux的混合网络中,samba还是有很大用处的,本文用实验的方法快
      速学习Samba。
      [实验项目]
      ①在linux上建立Samba服务器,用类似FTP的客户端smbclient访问。
      ②在linux上建立security=user的Samba服务器,用win2000的客户端访问。
      ③在linux上建立security=share的samba服务器,用win2000的客户端访问。
      ④在linux上挂载samba共享。
      实验一:在linux上建立Samba服务器,用类似FTP的客户端smbclient访问。
      [实验要求]
      1.两台RH8.0的机器可以互相ping通。
      2.机器1的IP:192.168.0.1
      3.机器2的IP:192.168.0.2
      [实验步骤]
      1.关掉两台机的防火墙。
      #service iptables stop
      #chkconfig iptables off
      2.在两台机上安装软件包。
      检查samba,samba-common,samba-client包是否已安装。
      # rpm -q samba
      # rpm -q samba-common
      # rpm -q samba-client
      根据结果,在安装光盘里找到没有安装的软件包,开始安装。
      # rpm -ivh samba*.rpm
      3.在机器1开启smb服务,并查看共享了什么内容。
      # service smb start
      # smbclient -L 192.168.0.1 -N
      4.在机器1添加新用户。
      # useradd user1
      # passwd user1
      密码:user1
      # touch /home/user1/iAmUser1
      5.在机器1创建smb帐户文件文件:/etc/samba/smbpasswd
      # touch /etc/samba/smbpasswd
      # smbpasswd -a user1
      密码:user1
      6.在机器1备份原配置文件:/etc/samba/smb.conf
      # service smb restart
      10.在机器2上看机器1的samba共享了什么?
      # smbclient -L 192.168.0.1 -N
      11.在机器2访问机器1的samba服务。
      # smbclient //192.68.0.1/homes -U user1%user1
      12.在机器2上成功访问后,用help查看命令。
      smb: \>help
      注意:1) 用ls 看到文件iAmUser1吗?
      2) 比较和FTP的命令有何不同。
      实验二:在linux上建立security=user的Samba服务器,用win2000的客户端访问。
      [实验要求]
      1.一台RH8.0机,一台Win2k机,互相能ping通。
      2.RH8.0机,IP:192.168.0.1
      3.Win2k机,IP:192.168.0.2
      [实验步骤]
      1.在实验一的基础上,修改/etc/samba/smb.conf
      修改[global]段中:
      workgroup = WORKGROUP1
      ----------------------------------------------------------------------
      如果你对上述修改熟悉,跳过这段。
      workgroup = WORKGROUP1为使linux和windows机在同一个工作组。
      ----------------------------------------------------------------------
      注意:修改了smb.conf,必须运行:service smb restart
      2.修改Win2k的工作组,为WORKGROUP1,若为域控制器,必须降为普通工作组,用
      Administrator重启登录。
      修改方法:“我的电脑”|“属性”|“网络标识”|“属性”
      3.在win2k机上,“网络邻居”|“整个网络”|“全部内容”|“microsoft windows 网络”
      | “Workgroup1”,看到RH系统的机器了吗?
      4.输入用户名user1,密码user1进入,可以新建,删除文件吗?
      实验三:在linux上建立security=share的samba服务器,用win2000的客户端访问。
      [实验要求]
      1.一台RH8.0机,一台Win2k机,互相能ping通。
      2.RH8.0机,IP:192.168.0.1
      3.Win2k机,IP:192.168.0.2
      [实验步骤]
      1.在实验二的基础上,修改/etc/samba/smb.conf
      追加下面内容:
      [public]
      comment = public
      path = /mnt
      browsable = yes
      public =yes
      修改[global]段中:
      security = share
      ----------------------------------------------------------------------
      如果你对上述修改熟悉,跳过这段。
      [public]定义了另一段,也可以为其他名称。
      path指出共享的目录。
      security采用share。
      ----------------------------------------------------------------------
      注意:修改了smb.conf,必须运行:service smb restart
      2.在win2k机上,用Administrator登录,“网络邻居”|“整个网络”|“全部内容”|
      “microsoft windows 网络”| “Workgroup1”,看到RH系统的机器了吗?
      3.不用密码就可以进入了,是吗?你看到几个共享目录?可以写入吗?
      4.在win2k机上新建一个帐户:user1,密码:user1。
      5.在win2k机上注销,切换用户user1。
      6.在win2k机上,“网络邻居”|“整个网络”|“全部内容”|“microsoft windows 网络”
      | “Workgroup1”,看到RH系统的机器了吗?
      7.不用密码就可以进入了,是吗?你看到几个共享目录?可以写入吗?
      注意:1) 当你模仿[homes]段修改了[public]段的writable,create mode ,directory mode
      后,可以写入吗?
      2) 你修改了RH8.0机的/mnt/读写权限为drwxrwxrwx时,情况怎么样呢?
      实验四:在linux上挂载samba共享。
      [实验要求]
      1.一台RH8.0机,一台Win2k机,互相能ping通。
      2.RH8.0机,IP:192.168.0.1
      3.Win2k机,IP:192.168.0.2
      [实验步骤]
      1.在win2k机上,共享C:2.在RH8.0机上运行:
      # smbclient //192.168.0.2/C -U win2k的当前登陆用户名%密码
      注意:能登陆吗?
      3.挂载共享盘:
      # mount -t smbfs -o username=win2k的当前登陆名%密码
      //192.168.0.2/C /mnt/cdrom
      注意:1)“username=win2k的当前登陆名%密码” 之间不要有空格。
      2) 也可用:# smbmount //192.168.0.2/C /mnt/cdrom -o username=
      username=win2k的当前登陆名%密码
      3) 也可用:# smbmount //192.168.0.2/C /mnt/cdrom -U
      win2k的当前登陆用户名
      接着输入密码便可。
      4) 实际,两台都是Linux系统,一台作samba服务器,另一台作客户机。如
      实验一的情况下,在机器2上:
      # mount -t smbfs -o username=user1%user1
      //192.168.0.1/homes /mnt/cdrom
      也可实现共享,不过没有必要,linux之间,可以用nfs实现共享,而且速度比
      Samba快。
      [实验小结]
      本文只是简单快速的学习Sabma,如果想深入了解,需要结合manpage与原
      /etc/samba/smb.conf(已备份为smb.conf.BAK)仔细研究,另外,/usr/share/doc/samba
      提供了专业文档可以学习。不过,通过本文的学习,已基本满足普通的工作需要。至于
      security为domain和server形式,我也没有研究,所以,没有涉及。
      前言:Apache是大多数linux版本的标准web 服务器,掌握他的意义就非常大。
      本囊允笛榈姆绞剑?枚琳呖焖僬莆誂pache的基本配置。
      [实验目的]
      1.Apache的基本安装和配置。
      2.Apache中应用CGI。
      3.基本代理配置。
      [实验要求]
      1.两台互通的RH8.0机。
      2.这两台机已配置过DNS。
      [实验步骤]
      1.准备工作。
      由于web 服务器与DNS关系非常紧密。作好这步准备工作,请参考本人的另一篇文章
      “用实验快速掌握DNS配置”。这篇文章发表在linuxsir的网络版块。
      DNS 能够实现的主要功能就是能能解析:station1.exmaple1.com,
      server1.example1.com 两个域名的IP,如果你想在/etc/hosts中实现,我想也不是不可
      以。这里不提倡这么做。
      本文中作法比较教条,这里指明机器1为:server1.example1.com,机器2为:
      station1.example1.com .读者也可以自己变通。
      2.在机器1上安装和配置简单的Apache。
      1) 检查下列包是否安装,
      httpd
      httpd-manual
      缺什么,装什么。
      2) 开启httpd服务
      # service httpd start
      如果开启失败,查看/var/log/httpd/下的相关日志,切记要在/etc/hosts中添加类似
      192.168.0.254 example1.com server1 的一行。
      3) 检查/etc/httpd/conf/httpd.conf中,有下列一行活动
      DocumentRoot /var/www/html
      4) 用一个浏览器打开:
      如果是正常情况,你会看到Apache的介绍页面。
      5) 创建新的目录和html文件。
      # mkdir -p /var/www/virtual/server1.example1.com/html
      # vi /var/www/virtual/server1.example1.com/html/index.html
      Server1.example1.com
      6) 编辑/etc/httpd/conf/httpd.conf,末尾追加下列文本。
      NameVirtualHost 192.168.0.254
      ServerName server1.example1.com
      ServerAdmin root@server1.example1.comDocumentRoot
      /var/www/virtual/server1.example1.com/html
      ErrorLog logs/server1.example1.com-error_log
      CustomLog logs/server1.example1.com-access_log combined
      Options Indexes Includes
      7) 确保DNS能够解析你的VirtualHost
      # host server1.example1.com
       重新启动httpd
      # service httpd restart
      如果启动失败,看/var/log/httpd/下的相应日志,会告诉你具体哪里错误。
      9) 在浏览器里能够看到你自己写的网页了吗?
      )
      在机器2上能看到吗?3.机器1,在Apache中应用CGI
      1) 编辑/etc/httpd/conf/httpd.conf,在块中添加下列一行:
      ScriptAlias /cgi-bin/ /var/www/virtual/server1.example1.com/cgi-bin/
      2) 创建目录,创建文件。
      # mkdir /var/www/virtual/server1.example1.com/cgi-bin
      #vi /var/www/virtual/server1.example1.com/cgi-bin/test.sh
      #!/bin/bash
      echo Content-Type: text/html
      echo
      echo “
      ”echo My username is :whoamiechoecho My id is :idechoecho Here is
      /etc/passwd :cat /etc/passwdecho “
      ”
      3) 改变test.sh的执行权限:
      # chmod 555 test.sh
      4) 重启httpd服务:
      # service httpd restart
      若有错,看日志。
      5) 浏览:)
      机器2能浏览吗?4.基本代理配置:
      1) 机器1,检查squid 包装了没有,没有的话,则进行安装。
      2) 机器1,启动squid 服务。
      # service squid start
      有问题? 看/var/log/messages.
      3) 机器1,浏览器中设置代理端口为3128,举例:在mozilla: Edit | Preferences...|
      Advanced | proxies 中,设定手动,端口为:3128,其他不动。
      机器2,浏览器中类似设置为:手动,http代理:192.168.0.254 端口:3128。
      4) 此时,机器1,能浏览server1.exmaple1.com.,若平时能上internet,此时也正常上
      internet。
      5) 机器2,不能浏览server1.example1.com 或internet。
      查看/var/log/httpd/*的日志文件,原因是什么?
      6) 编辑/etc/squid/squid.conf,在acl CONNECT method CONNECT行下,添加下列一行:
      acl examample1 src 192.168.0.0/24
      找到INSERT YOUR OWN RULE(S) HERE 增加下列一行:
      http_access allow example1
      7) 重启squid
      # service squid restart
      有错?看日志。
       此时,机器2能够浏览server1.example1.com 或 internet网页.
      9) 编辑/etc/squid/squid.conf ,在acl examample1 src 192.168.0.0/24行下添加
      acl otherdeny dstdomain .sina.com.cn
      在http_access allow example1下添加:
      http_access deny otherdeny
      10) 重启squid.
      # service squid restart
      有错? 看日志。
      11) 机器2,仍能浏览 ,为什么12) 编辑/etc/squid/squid.conf
      ,把http_access deny otherdeny放到
      http_access allow example1前面,重启squid,机器2还能看到
      吗[实验总结]
      Apache配置是否成功,与DNS有很大关系,所以,要求读者先花时间作好DNS工作。本文以最通俗的方式,教你简单的配置Apache,如果想深入掌握它,还得研究Apache2.0的文档。
      前言:nfs是linux,unix系统之间高速共享的一种方式,本文用实验的方式快速配置nfs。
      [实验目的]
      实现nfs共享。
      [实验要求]
      1.两台RH9.0的机器。
      2.机器1,IP:192.168.0.1
      3.机器2, IP:192.168.0.2
      [实验步骤]
      1.关掉两台机的iptables
      # service iptables stop
      # chkconfig iptables off
      2.机器1上,安装下列包
      nfs-utils
      portmap
      缺什么,装什么。
      3.两台机上,创建一个用户共享他的home目录。
      # useradd -u 1500 nfsuser
      # passwd nfsuser
      设密码:nfsuser
      注意:nfsuser的UID相同,当然不一定用1500
      4.机器1,编辑/etc/exports
      /home/nfsuser 192.168.0.2(rw)
      注意:IP和()选项之间,不可以有空格。
      5.机器1,启动服务.
      # service portmap restart
      # service nfs restart
      # service nfslock restart
      # rpcinfo -p
      程序 版本 协议 端口
      100000 2 tcp 111 portmapper
      100000 2 udp 111 portmapper
      100024 1 udp 32768 status
      100024 1 tcp 32768 status
      391002 2 tcp 32769 sgi_fam
      100011 1 udp 668 rquotad
      100011 2 udp 668 rquotad
      100011 1 tcp 671 rquotad
      100011 2 tcp 671 rquotad
      100003 2 udp 2049 nfs
      100003 3 udp 2049 nfs
      100021 1 udp 32793 nlockmgr
      100021 3 udp 32793 nlockmgr
      100021 4 udp 32793 nlockmgr
      100005 1 udp 32794 mountd
      100005 1 tcp 32979 mountd
      100005 2 udp 32794 mountd
      100005 2 tcp 32979 mountd
      100005 3 udp 32794 mountd
      100005 3 tcp 32979 mountd
      6.机器1,初试化共享目录
      # exportfs -v
      # exportfs -r
      # showmount -e 192.168.0.1
      7.如果显示出正确的共享列表的话,在机器2上挂载机器1的/home/nfsuser。
      # mount -t nfs -o rw 192.168.0.1:/home/nfsuser /mnt/cdrom
      8.在机器2上,分别用root,nfsuser帐户对/mnt/cdrom进行读写操作。出现什么情况?
      你有什么结论?
      [实验总结]
      本文对于exportfs 中的选项只用了rw,比较简单。其他选项,可以参考man exports.它
      还会提供更多的例子,及其分析。如果想深入了解,必须对它进行研究。
      前言:mail配置比较复杂,本文用实验的方法尽量以最通俗的方式,让读者学习sendmail
      配置。
      [实验目的]
      1.安装sendmail。
      2.在sendmail中使用假名。
      3.用m4改变中转行为。
      4.安装和配置POP服务器和客户端。
      [实验要求]
      1.两台RH8.0机器互连。
      2.机器1已配置好DNS,具体要求:机器1的IP:192.168.0.254,host:server1.example.com
      机器2的IP:192.168.0.2,host:station2.example.com
      [实验步骤]
      1.安装sendmail。
      1) 在机器1和机器2上检查下列包是否安装
      sendmail
      sendmail-cf
      sendmail-doc
      m4
      procmail
      缺什么,装什么。
      2) 编辑机器1和机器2的/etc/mail/sendmail.mc
      去掉下列行的dnl
      dnl DAEMON_OPTIONS(Port=smtp,Addr=127.0.0.1,Name=MTA)
      作用是:使得可以接受其他域的mail。
      3) 机器1和机器2上,产生新的配置文件,最好先备份/etc/mail/sendmail.cf
      cp /etc/mial/sendmail.cf /etc/mail/sendmail.cf.BAK
      m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
      4) 机器1和机器2上,重新启动sendmail.
      # service sendmail restart
      # chkconfig sendmail on
      2.检测sendmail是否正常,及模拟sendmail操作。
      1) 检测sendmail是否可识别你的域名。
      # sendmial -d0 < /dev/null
      Version 8.12.5
      Compiled with: DNSMAP HESIOD HES_GETMAILHOST LDAPMAP LOG MAP_REGEX
      MATCHGECOS MILTER MIME7TO8 MIME8TO7 NAMED_BIND NETINET NETINET6
      NETUNIX NEWDB NIS PIPELINING SASL SCANF STARTTLS TCPWRAPPERS
      USERDB USE_LDAP_INIT
      ============ SYSTEM IDENTITY (after readcf) ============
      (short domain name) $w = station2
      (canonical domain name) $j = station2.example.com
      (subdomain name) $m = example.com
      (node name) $k = station2
      ========================================================
      Recipient names must be specified
      如果显示localhost的话,检查/etc/hosts 去掉除127.0.0.1以外的行。如果还有问题,
      查看是否在/etc/sysconfig/network中设置了HOSTNAME
      2) 模拟sendmail的操作。
      # echo “hello server1” | mail -v -s hello
      ... Connecting to localhost.localdomain. via relay...
      220 station2.example.com ESMTP Sendmail 8.12.5/8.12.5; Thu, 17 Jul 2003
      05:18:42 +0800
      >>> EHLO station2.example.com
      250-station2.example.com Hello localhost.localdomain [127.0.0.1], pleased
      to meet you
      250-ENHANCEDSTATUSCODES
      250-PIPELINING
      250-8BITMIME
      250-SIZE
      250-DSN
      250-ETRN
      250-DELIVERBY
      250 HELP
      >>> MAIL From: SIZE=47
      250 2.1.0 ... Sender ok
      >>> RCPT T
      >>> DATA
      250 2.1.5 ... Recipient ok
      354 Enter mail, end with "." on a line by itself
      >>> .
      250 2.0.0 h6GLIgpx001304 Message accepted for delivery
      ... Sent (h6GLIgpx001304 Message accepted for delivery)
      Closing connection to localhost.localdomain.
      >>> QUIT
      221 2.0.0 station2.example.com closing connection
      sendmail的工作过程就如上所示。
      你可以看日志,检查mail的工作过程,更有意义的观察方法:
      在超级用户,另一终端:
      # tail -f /var/log/maillog
      会动态显示。
      3.sendmail中使用假名:
      1) 增加新用户。
      # useradd student2
      # passwd student2
      2) 编辑/etc/aliases,增加下列三行。
      me: student2
      wizards:root,me
      methere:
      3) 更新假名数据库。
      # newaliases
      4) 测试:
      # echo “hello there” | mail -s “hello” me
      # echo “hello there” | mail -s “hello” wizards
      # echo “hello there” | mail -s “hello” methere
      5) student用户收到几封邮件?root受到几封邮件?
      4.控制中转行为。
      1) 在机器2上编辑/etc/mail/sendmail.mc 文件,增加下列一行:
      FEATURE(promiscuous_relay)dnl
      注意:如果你这台机连到internet上的话,不推荐你这么作,因为,internet上的用
      户会用你的这台机作为跳板,伪装发邮件,使得邮件接收者无迹可寻。
      2) 在机器2上用m4产生新的配置文件,这里最好再备份原/etc/mail/sendmail.cf
      # cp /etc/mail/sendmail.cf /etc/mail/sendmail.cf.BAK2
      # m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
      3) 现在你在机器1上模拟,一个用心不良的用户,用你的机器2作为跳板,发送邮件。
      这里假设你有一个邮件叫 ,具体可以变更。
      # telnet station2.example.com 25
      Trying 192.168.0.2...
      Connected to station2.example.com.
      Escape character is ^].
      220 station2.example.com ESMTP Sendmail 8.12.5/8.12.5; Thu, 17 Jul 2003
      05:45:05 +0800
      helo mail.cracker.org
      250 station2.example.com Hello IDENT:root@station2.example.com.
      [192.168.0.2], pleased to meet you
      mail from:
      250 2.1.0 ... Sender ok
      rcpt t
      250 2.1.5 ... Recipient ok
      data
      354 Enter mail, end with "." on a line by itself
      Subject: Relayed
      This is faked and relayed!
      ok?
      .
      250 2.0.0 h6GLj5MV001565 Message accepted for delivery
      quit
      221 2.0.0 station2.example.com closing connection
      Connection closed by foreign host.
      4) 观察机器2的/var/log/maillog
      5) 收你的的邮件,看看里面的格式。
      6) 机器2,关掉中转。
      # cp /etc/mail/sendmail.cf /etc/mail/sendmail.cf.BAK2
      # cp /etc/mail/sendmail.cf.BAK1 /etc/mail/sendmail.cf
      # service sendmail restart
      重作上面3)步,结果会怎么样呢?
      7) 机器2 有选择的中转:
      编辑/etc/mail/access,增加
      example.com RELAY
      重作上面3) 步,结果如何?
      5.安装和配置POP服务器和客户端。
      1) 机器2上,检查下列包是否装过
      xinted
      krb5-libs*
      imap
      缺什么,装什么
      2) 机器2上,启动服务:
      service xinetd start
      chkconfig ipop3 on
      3) 机器2上,确认服务。
      # echo "mail to be popped" | mail -s "hello student2" student2
      Trying 127.0.0.1...
      Connected to localhost.
      Escape character is ^].
      +OK POP3 localhost.localdomain v2001.78rh server ready
      user student2
      +OK User name accepted, password please
      pass student2
      +OK Mailbox open, 1 messages
      stat
      +OK 1 641
      TOP 1 700
      +OK Top of message follows
      Return-Path:
      Received: from station2.example.com (localhost.localdomain [127.0.0.1])
      by station2.example.com (8.12.5/8.12.5) with ESMTP id h6GMB9MV001575
      for ; Thu, 17 Jul 2003 06:11:09 +0800
      Received: (from )
      by station2.example.com (8.12.5/8.12.5/Submit) id h6GMB9T0001573
      for student2; Thu, 17 Jul 2003 06:11:09 +0800
      Date: Thu, 17 Jul 2003 06:11:09 +0800
      From: root
      Message-Id: <>
      T
      Subject: hello student2
      Status:
      mail to be popped
      .
      dele 1
      +OK Message deleted
      quit
      +OK Sayonara
      Connection closed by foreign host.
      以上就是pop3的对话过程。如果一切正常的话,你的pop3服务器已经建立。
      4) 机器1上安装fetchmail 包。
      5) 机器1上,root创建下列文件:
      vi /root/.fetchmailrc
      poll station2.example.com with protocol pop3:
      user student2
      password "student2"
      6) 机器2上,运行:
      # echo "mail to be popped" | mail -s "hello student2" student2
      7) 机器1上作为POP3客户端,root收邮件:
      # fetchmail -v
      能收到邮件吗?
       你有油箱吗?仿照上面5) 的格式,写一个pop3客户收邮件的fetchmailrc,试试能
      收邮件吗?假设你有个邮箱:,密码:linuxsir
      提示:poll mail.sina.com.cn with protocol pop3:
      user linuxsir
      password "linuxsir"
      [实验总结]
      配置sendmail非常复杂,如果你在都完本文后,仍觉的一头雾水的话,建议参考一些mail工作原理的资料。另外,/usr/share/doc/sendmail/也有不少资料可供参考。
      用实验快速掌握DNS配置
      由于配置DNS很重要,本文主要以做实验来快速掌握DNS配置.
      [实验目的]
      1.配置一个只可转发请求的DNS.
      2.配置一个masterDNS.
      3.配置一个slaveDNS.
      [实验环境]
      1.两台互连的计算机.
      2.系统Redhat 8.0.
      [实验步骤]
      一.实验准备.
      1.两台机关掉iptables
      # service iptables stop
      # chkconfig iptables off
      2.两台机检查安装必要软件
      # rpm -q bind
      # rpm -q bind-utils
      # rpm -q caching-nameserver
      根据结果,安装没安装的软件,从安装盘里找出没安装的包,有选择的执行下列步骤:
      # rpm -Uvh bind-9*
      # rpm -Uvh bind-utils*
      # rpm -Uvh caching-nameserver*
      3.互连两台机.
      ①编辑两台机的相应文件.(编辑最好用vi,以下也是)
      机器1:
      /etc/sysconfig/network-scripts/ifcfg-eth0
      DEVICE=eth0
      BOOTPROTO=none
      ONBOOT=yes
      IPADDR=192.168.0.254
      NETMASK=255.255.255.0
      /etc/hosts
      127.0.0.1 localhost localhost.localdomain
      /etc/resolv.conf
      nameserver 192.168.0.254
      /etc/sysconfig/network
      NETWORKING=yes
      HOSTNAME=server1
      机器2:
      /etc/sysconfig/network-scripts/ifcfg-eth0
      DEVICE=eth0
      BOOTPROTO=none
      ONBOOT=yes
      IPADDR=192.168.0.1
      NETMASK=255.255.255.0
      /etc/hosts
      127.0.0.1 localhost localhost.localdomain
      /etc/resolv.conf
      nameserver 192.168.0.1
      /etc/sysconfig/network
      NETWORKING=yes
      HOSTNAME=station1
      ②分别在两台机上运行:
      机器1:
      # ifdown eth0
      # ifup eth0
      # ping 192.168.0.1
      机器2:
      # ifdown eth0
      # ifup eth0
      # ping 192.168.0.254
      主意:两台机能互相ping通,继续下列实验,不通,再找找原因.
      二.机器1上配置一个masterDNS.
      机器1上:
      1.编辑/etc/named.conf文件:
      /etc/named.conf
      options {
      directory “/var/named/”;
      };
      zone “.” IN {
      type hint;
      file “named.ca”;
      };
      zone “localhost” IN {
      type master;
      file “localhost.zone”;
      };
      zone “0.0.127.in-addr.arpa” IN {
      type master;
      file “named.local”;
      };
      zone “example1.com” IN {
      type master;
      file “db.example1”;
      };
      zone “0.168.192.in-addr.arpa” IN {
      type master;
      file “db.192.168.0”;
      };
      ----------------------------------------------------------------------
      解释上述文件,如果你对上述文件比较熟悉,可以跳过此段.
      上述文件有六部分ption ,5个zone.
      其中option,”.”,”localhost”,”0.0.127.in-addr.arpa”原来就有.
      “example1.com”,“0.168.192.in-addr.arpa”为现在子网的正向和反向搜索区的
      定义,“db.example1”,”db.192.168.0”的名字是随便取的,它们必需在/var/named/下
      存在.
      主义{}前后及中间的空格,及分号.
      -----------------------------------------------------------------------
      2.用vi创建两个文件,/var/named/db.example1,/var/named/db.192.168.0
      /var/named/db.example1
      $TTL 86400
      @ IN SOA server1.example1.com. Root.server1.example1.com. (
      2003070401 1H 1M 1W 1D )
      IN NS server1.example1.com.
      IN A 192.168.0.254
      server1 IN A 192.168.0.254
      station1 IN A 192.168.0.1
      www IN A 192.168.0.254
      ftp IN A 192.168.0.254
      pop IN A 192.168.0.254
      www1 IN CNAME server1.example1.com.
      ftp1 IN CNAME server1.example1.com.
      @ IN MX 10 server1.example1.com.
      server1.example1.com IN MX 10 server1.example1.com.
      ----------------------------------------------------------------------
      解释上述文件,如果你对上述文件比较熟悉,可以跳过此段.
      上述文件是一个正向搜索的数据库:
      $TTL 86400 是文件开头,数字表示默认存活期,用秒计算的,做什么不用不要管它,
      记着添上就行.
      接着的格式就是:[domain] [class]
      [domain]如: server1.example1.com ,www.
      Www是简写,实际会默认添上定义这个文件的那个 zone “example1.com”里的
      example1.com,即ww=这个段可以升略不写,默认跟前一行的
      [domain]相同.@表示”example1.com”.
      [class]一般为internet类,即:IN ,可以省去不写.
      分别有SOA,NS,A,MX,CNAME,及反向数据库里的PTR.
      SOA=start of authority 必要的
      NS=nameserver 必要的
      A=域名和ip地址的映射. 必要的
      MX=mail exchange. 可选的
      CNAME=域名的一个假名 可选的
      PTR=用在反向:ip地址和域名的影射. 必要的
      假名不可以放在NS MX 的字段.
      SOA 括弧中的5个数字:
      对应为( serial refresh retry expire Minimum )
      serial 可以是任何数字,一般:年月日修改数.
      refresh 是SOA信息的刷新时间.
      Retry是与授权服务器联系的频率.
      Expire slave服务器保存有关的区域信息,不更新它的时间间隔.
      Minimum 区域中记录的存活时间.
      H=hour D=day M=minute W=week
      SOA 后的server1.example1.com.表示这个区域授权给哪台机.
      root.server1.example1.com.表示管理人.用.代替@
      完整域名后一定要加.号,否则会自动为你加”example1.com”.
      以上如果你不懂,不用急,以后慢慢想清楚.
      -----------------------------------------------------------------------
      /var/named/db.192.168.0
      $TTL 86400
      @ IN SOA server1.example1.com. root.server1.example1.com. (
      2003070401 1H 1M 1W 1D )
      IN NS server1.example1.com.
      254.0.168.192.in-addr.arpa IN PTR server1.example1.com.
      1.0.168.192.in-addr.arpa IN PTR station1.example1.com.
      ----------------------------------------------------------------------
      解释上述文件,如果你对上述文件比较熟悉,可以跳过此段.
      此文件是反向搜索的数据库.
      主意IP反着写.
      其它的不用解释.
      -----------------------------------------------------------------------
      3.检验:
      # cat >> /var/log/messages
      ******
      ******
      [ctrl]+d
      # service named restart
      # host server1.example1.com
      # host station1.example1.com
      # host
      # host www1.example1.com
      # host 192.168.0.254
      看看是否可以解析,如:server1.example1.com 对应的IP为192.168.0.254,
      192.168.0.254对应域名为server1.example1.com.如果不能解析,说明,配置有问题,
      可以到日志/var/log/messages里查看.具体位置在文件末尾的两行*******后,和调试
      程序一样,甚至他会告诉你哪个文件,哪行错了.修改后,重新执行:
      # cat >> /var/log/messages
      ******
      ******
      [ctrl]+d
      # service named restart
      # host server1.example1.com
      # host station1.example1.com
      # host
      # host www1.example1.com
      # host 192.168.0.254
      直到无错,且能够正确解析.
      三.机器2上配置一个只负责转发请求域名解析的DNS
      机器2上:
      1.编辑/etc/named.conf
      /etc/named.conf
      options {
      directory “/var/named/”;
      forwarders { 192.168.0.254; };
      };
      ........
      ------------------------------------------------------------
      解释上述文件,如果你对上述文件比较熟悉,可以跳过此段.
      forwarders { 192.168.0.254; }表示,如果此DNS不能解析出IP,则交给
      192.168.0.254这个DNS,其实在配置masterDNS时,也可以在option里加一个forwarders
      具体IP就是你平时上网用的DNS.如果有两个或多个也可以这样写:
      { 210.35.92.77.45; 210.35.77.46; } 或者 { 210.35.92/24; 192.168.0.254 ;}
      .....表示其它的东西,不要动.
      ---------------------------------------------------------------------
      2.检验:
      # cat >> /var/log/messages
      ******
      ******
      [ctrl]+d
      # service named restart
      # host server1.example1.com
      # host station1.example1.com
      # host
      # host www1.example1.com
      # host 192.168.0.254
      看看是否可以解析,如:server1.example1.com 对应的IP为192.168.0.254,
      192.168.0.254对应域名为server1.example1.com.
      这个配置比较简单,一般不会有笔误,如果错误,排除bug的方法同检查masterDNS
      一样,看日志.
      三.机器2上配置一个slaveDNS
      机器2上:
      1.编辑/etc/named.conf
      /etc/named.conf
      options {
      directory “/var/named/”;
      };
      zone “.” IN {
      type hint;
      file “named.ca”;
      };
      zone “localhost” IN {
      type master;
      file “localhost.zone”;
      };
      zone “0.0.127.in-addr.arpa” IN {
      type master;
      file “named.local”;
      };
      zone “example1.com” IN {
      type slave;
      masters { 192.168.0.254; };
      file “db.example1-slave”;
      };
      zone “0.168.192.in-addr.arpa” IN {
      type slave;
      masters { 192.168.0.254; };
      file “db.192.168.0-slave”;
      };
      ------------------------------------------------------------
      解释上述文件,如果你对上述文件比较熟悉,可以跳过此段.
      与masterDNS,不同的是:type slave; masters { 192.168.0.254; };
      slaveDNS的效果就是定期的向masterDNS复制一份数据库.
      一个网络一般只能有一个masterDNS,多个slaveDNS,slaveDNS用来使DNS的
      访问负载均衡.减轻masterDNS的负担.
      此时,删掉上面配置forward 的那句:forwarders { 192.168.0.254; };
      加着也没错,只不过,容易判断是否是slaveDNS在起作用。
      ------------------------------------------------------------
      2.检验:
      # cat >> /var/log/messages
      ******
      ******
      [ctrl]+d
      # service named restart
      # host server1.example1.com
      # host station1.example1.com
      # host
      # host www1.example1.com
      # host 192.168.0.254
      看看是否可以解析,如:# host server1.example1.com 显示:
      has address 192.168.0.254
      # host 192.168.0.254 显示:
      254.0.168.192.in-addr.arpa domain name pointer server1.example1.com.
      0.168.192.in-addr.arpa.
      且查看在/var/named/下是否生成: db.example1-slave , db.192.168.0-slave
      两个文件.
      如果,没有生成这两个文件,说明配置有文体。具体检查日志/var/log/messages排除错误。直到无错,且自动生成两个文件,且能正确解析。另外,一定注意,机器1和机器2的iptables保持关掉。
      [实验总结]
      本文只是为了让你快速入门,且告诉你一个简单的手动配置一个DNS的方法,具体的原理讲的很少,如果想了解更多,请参考其他专业的文档。如果你即使在不熟的情况下,做完此实验,且做的时候多想过一些问题,绝对有助于看其他文档。
      [题外话]
      至于让机器2作为一般的客户端,采用机器1的DNS,需要修改/etc/resolv.conf文件,不属于DNS配置的范围。至于如何让机器1连到Internet,更不是本文所讨论的范围。
            前言: DHCP,Dynamic Host Configuration
            Protocal,它方便了计算机网络管理。本文用实验的方式快速学会配置DHCP
            [实验目的]
            1.配置一个DHCP服务器。
            2.用客户端检验DHCP服务器。
            [实验要求]
            1.两台RH9.0的机器。
            2.机器1,IP:192.168.0.1
            3.机器1是1个DNS服务器,网络名:example.com,192.168.0.1的host叫server1,
            192.168.0.2的host叫station2.
            [实验步骤]
            1.机器1上,检查并安装dhcp包。
            2.机器1上,到dhcpd的文档复制一分配置例子。
            cp /usr/share/doc/dhcp-3.0pl1/dhcpd.conf.sample /etc/dhcpd.conf
            3.机器1上,编辑/etc/dhcpd.conf内容如下:
            ddns-update-style interim;
            ignore client-updates;
            subnet 192.168.0.0 netmask 255.255.255.0 {
            # --- default gateway
            option routers 192.168.0.1;
            option subnet-mask 255.255.255.0;
            # option nis-domain "domain.org";
            option domain-name "example.com";
            option domain-name-servers 192.168.0.1;
            option time-offset -18000; # Eastern Standard Time
            # option ntp-servers 192.168.1.1;
            # option netbios-name-servers 192.168.1.1;
            # --- Selects point-to-point node (default is hybrid). Dont change
            this unless
            # -- you understand Netbios very well
            # option netbios-node-type 2;
            range 192.168.0.1 192.168.0.2;
            default-lease-time 21600;
            max-lease-time 43200;
            # we want the nameserver to appear at a fixed address
            host station2 {
            hardware ethernet 00:E0:4E:E8:9B:BC;
            fixed-address 192.168.0.2;
            }
            }
            注意:这里假设机器2的网卡Mac地址为: 00:E0:4E:E8:9B:BC,你可以用ifconfig查看机
            器2的Mac地址,作相应修改。
            4.机器1上,用ifconfig观察结果,是否子网卡的广播地址设置正确:如:192.168.0.255。
            若不正确,请修改网络配置。
            5.机器1上,启动dhcpd服务。
            # service dhcpd restart
            注意:若不能启动,观察/var/log/message.
            6.机器2上,修改/etc/sysconfig/network-scripts/ifcfg-eth0
            DEVICE=eth0
            BOOTPROTO=dhcp
            ONBOOT=yes
            7.机器2上,删除/etc/resolv.conf的所有内容。
            8.机器2上,初试化网卡。
            # ifdown eth0
            # ifup eth1
            9.机器2上,用ifconfig观察结果,机器2的ip地址为192.168.0.2吗?
            10.DNS能够解析吗?
            # host server1.example.com
            # host station2.example.com
            [实验结论]
            本文只是简单快速的实现了DHCP设置,如果想了解更多内容,请参考DHCP的文档/usr/share/doc/dhcp-*目录。本文的IP地址是根据Mac地址定制的。
            用实验快速认识NIS
            前言:NIS是我们比较不常用的东西,但是在某些集中管理方面,有一定用途。本文以实验快速认识NIS。
            [实验目的]
            1.配置NIS服务端。
            2.配置NIS客户端。
            [实验要求]
            1.两台互通的RH8.0机。
            2.机器1的IP:192.168.0.1
            3.机器2的IP:192.168.0.2
            [实验步骤]
            一.配置NIS服务端。
            1.机器1将作为服务端,检查机器1是否装有下列软件?
            ypserv
            ypbind
            yp-tools
            make
            缺什么包,安装什么包。
            2.机器1编辑/etc/sysconfig/network,追加下列一行:
            NISDOMAIN=REDHAT
            3.机器1为立刻使上述设置生效,运行:
            # domainname REDHAT
            4.机器1编辑/var/yp/Makefile,找到all: passwd group ......这一行,修改如下:
            all: passwd group
            5.机器1起动portmap,ypserv服务:
            # service portmap start
            # service ypserv start
            6.机器1初始化NIS数据库,运行:
            # /usr/lib/yp/ypinit -m
            注意:1) 若以上配置有问题,会显示出错。
            2) 提示增加hosts,按[CTRL-D]
            7.机器1若上部没有错误,重新起动ypserv
            # service ypserv restart
            8.机器1启动密码进程:
            # service yppasswdd start
            9.机器1检查进程是否真的运行,运行:
            # ps auxf | grep yp
            10.机器1检查日志,确定NIS服务是否真的正常,运行:
            # tail /var/log/messages
            二.配置NIS客户端。
            1.机器2作为NIS客户端,检查机器2是否安装了下列包:
            portmap
            ypbine
            yp-tools
            authconfig
            缺什么包,安装什么包。
            2.机器2确认服务端打开portmap服务:
            # rpcinfo -p 192.168.0.1
            3.机器2用authconfig工具,配置客户端访问服务器。
            Use NIS 前选中,Domain: REDHAT ,Server: 192.168.0.1
            4.机器2authconfig结束时,ypbind会自动启动。观察 /var/log/messages 末尾有无报错。
            5.机器2运行# ypcat passwd 看服务器提供了哪些用户。
            6.机器1上新增账户:nisuser
            # useradd -u 1200 nisuser
            # passwd nisuser
            7.机器2上新增账户: localuser
            # useradd -u 1300 localuser
            # passwd localuser
            8.在NIS服务器用nisuser登录,在NIS客户端用localuser登录,会成功。
            试着在客户端用nisuser登录,会成功吗?
            9.在机器1,/var/yp/目录下运行:make,然后再在NIS客户端用nisuser登录,成功吗?
            在$的提示符前有nisuser的目录提示吗?
            10.当NIS服务器端,NIS客户端有一个相同的账户usernis,且NIS服务端/var/yp/下,make
            过。在NIS客户端用usernis登录,这个账户是服务端还是客户端提供的?
            [实验恢复]
            1.NIS客户端的authconfig 里,关掉NIS。
            2.在NIS服务器端,NIS客户端关掉相应打开的服务。
            [实验总结]
            NIS的集中式管理,不止passwd,group,在编辑/etc/yp/Makefile时,all:的后面有很多。至于怎么用,在实践中,还需自己摸索。我们在这里,明白NIS是怎么回事就可以了。毕竟,用它的机会不多。
     
阅读(1226) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~