荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: tian.bbs@bbs.tju.edu.cn.no.spam ( Simple ), 信区: Linux
标  题: 中小企业服务器配置方案(全文)zz
发信站: 天大求实BBS站 (Mon Nov 17 21:20:48 2003)
转信站: SZU!news.ccie.net.cn!news.happynet.org!UTJ


 [转帖]中小企业服务器配置方案(全文)
中小企业服务器配置方案 前言

蓝森林 http://www.lslnet.com 2001年4月22日 21:35


作 者: 汤海京


( 联想电脑公司软件事业部 E-mail:thjthj@263.net )

前 言

本书的读者对象是谁

如果读者您是一名中小企业的网络管理员,将要组建或正在管理一个小型商务网的话,那么
本书对您可谓是再合适不过了,由于大多数的小型商务网都没有为计算机系统或专职技术人
员准备太多预算,所以笔者从自身实践出发,总结并写下了下面的文字,希望能大大缩短您
组网的时间和管
理的难度。

应该如何阅读本书?

如果您是一名初级网管----不要着急,请多看看本书每章前的"简介"和每章末尾的"小结",
对您迅速掌握相关理论知识很有帮助!

如果您是一名中级网管----没有关系,请对文字的东西一带而过,直接进入"配置方案",看
看每种服务器配置是怎样实现的!

如果您是一名资深网管----也有的学,请仔细阅读笔者的配置文件,看看还有什么可以搜刮
的,要是觉得写的不好,可以Mail给我:thjthj@263.net,本人不胜感激!!!

为什么是Linux不是NT?

众所周知,Linux的价格十分便宜且功能十分强大,所以她理所当然的成为大多数中小企业
组网的首选方案。Linux不但具有稳定、高效、多功能的特性,并捆绑了大量应用软件,因
此其功能也十分强大。

在我国,Linux所经历的正是几年前她在国外发展和推广的过程,相当数量的企业已经将他
们的内部网转移到了Linux平台。Linux操作系统及其应用软件大多数可以在网上免费获得,
所有的Linux发布版(如RedHat Linux,Turbo
Linux等)也都可以以很低廉的价格在市场上买到,这比我们购买一套正版Windows 2000
Server要便宜多拉,而且不必为将来升级或者丰富应用再额外支出费用了。

本书独特的写作结构

往往人们谈到服务器配置总是想到一个服务器、一个操作系统,其实笔者认为服务器与服务
是两个概念,本书讲的是服务,当然你把它装到硬件上自然也就成了服务器;比如你配了个
DNS,装到一台联想的万全服务器上,那么这台服务器也就顺理成章地成了一台DNS Server
……..

大家都知道一句话:"一切从用户的利益出发……",那么本书的结构也是从中小企业网络管
理员的角度划分:接入服务器,DNS服务器,Web服务器,邮件服务器,文件服务器。

需要感谢的人

常言道:"实践是检验真理的唯一标准!",不错,不是干了快一年的服务器配置和网络管理
,笔者也不会写下这么多东东,下面呈现给大家的文字都是我工作的总结和心血的结晶。

当然,在写作本书的过程中,我需要感谢给我实践机会的联想电脑公司软件事业部,感谢我
们的项目"满意办公企业版(WebOA)",感谢项目组同事:田日晖、曹宜、石京海、卢亮、王
柏冬、刘宁、刘新滨、乐卫明、殷红梅。

由于笔者水平有限,所以在写作过程中不免有许多问题,欢迎大家不吝赐教,多多指正,本
人十分感激!


 中小企业服务器配置方案 第一章(1)
蓝森林 http://www.lslnet.com 2001年4月22日 21:49


作 者: 汤海京


( E-mail:thjthj@263.net )

第一章 代理接入服务器

第一节 单网卡


1.1 简介

作为局域网最基本的组成部分之一,网卡一般不在众多攒机者的标准配置之内,但如果局域
网中没有网卡,就像只有显示器没有显卡一样是不行的。没有网卡是不可能构成一个局域网
络的,它作为连接网络终端的重要配件,在整个网络里发挥着巨大的作用。网卡是网络接口
卡,起着向网络
发送数据、控制数据、接受并转换数据的功能。它安装在计算机或服务器的扩展槽中,充当
计算机和网络之间的物理接口。


1.2 所需资源

1.2.1 所需包
RedHat6.2 服务器模式安装
1.2.2 所需配置文件
/etc/conf.modules 系统自带,管理员配置
/etc/sysconfig/network 系统自带,管理员配置
/etc/sysconfig/network-scripts/ifcfg-eth0系统自带,管理员配置
1.2.3 相关工具



iptraf
说明:一个监控所有接入服务设备的工具,当然包括网卡
下载网址:ftp://ftp.freesoft.cei.gov.cn/.mirr....0.2-1.i386.rpm

linuxconf
说明:系统自带

netconf
说明:系统自带

1.3 配置方案


/etc/conf.modules
说明:驱动模块配置文件
源文件:
alias parport_lowlevel parport_pc
alias eth0 ne       # Net device和 Kernel module
options ne io=0x240 irq=5 # 如果是ISA的网卡,需要设置IO和IRQ
如果不知道,可以装个98看看

/etc/sysconfig/network
说明:网络配置文件
源文件:
HOSTNAME= weboa      # 服务器的主机名
DOMAINNAME="weboa.com.cn" # 服务器的域名
GATEWAY="192.168.0.1"   # 网关设置
GATEWAY="eth0"       # 网关所用设备
NETWORKING=YES       # 是否启动网络服务
onBOOT=YES         # 网络服务配置在每次启动时生效
FORWARD_IPV4="yes"     # 服务器支持IP转发

/etc/sysconfig/network-scripts/ifcfg-eth0
说明:第一块网卡配置文件
源文件:
DEVICE="eth0"       # 网卡设备名称
BOOTPROTO="none"
IPADDR="192.168.0.1"    # IP设置
NETMASK="255.255.255.0"  # 子网掩码设置
onBOOT="yes"
IPXNETNUM_802_2=""
IPXPRIMARY_802_2="no"
IPXACTIVE_802_2="no"
IPXNETNUM_802_3=""
IPXPRIMARY_802_3="no"
IPXACTIVE_802_3="no"
IPXNETNUM_ETHERII=""
IPXPRIMARY_ETHERII="no"
IPXACTIVE_ETHERII="no"
IPXNETNUM_SNAP=""
IPXPRIMARY_SNAP="no"
IPXACTIVE_SNAP="no"


1.4 测试及管理办法

1.4.1 测试方法
1. ifconfig
观察是否有eth0设备存在,设置的IP和子网掩码对不对
2. ping IP
先ping自己,看是否有回应;然后ping同网段其他机器。

1.4.2 管理方法
1. 通过linuxconf或者netconf修改网卡设置
然后执行:/etc/rc.d/init.d/network restart
2. 直接修改配置文件
然后执行:/etc/rc.d/init.d/network restart


1.5 其他参考资料

http://www.ibiblio.org/mdw/HOWTO/Ethernet-HOWTO.html
著名网卡生产公司的网址:
深圳普瑞尔公司:http://www.tp-link.com.cn
深圳国傲通公司:http://www.topstar1.com/fuwu.htm
Accton:http://www.accton.com
3COM公司:http://www.3com.com.cn
D-Link公司:http://www.dlink.com.tw
Intel公司:http://www.intel.com.cn
Realtek公司:http://www.realtek.com
美国Novell公司:http://www.novell.com


1.6 相关安装方法

1.ISA网卡:
PNP的:
   方法一:安装时候需要指明其IO和IRQ,如果不知道的话,
   可以先安装个98,在"设备管理"里看看它的IO和IRQ。
   方法二:pnpdump和isapnp可以实现
非PNP的:
   需要先在98下刷新一下BIOS,变成PNP的,然后再安装

2.PCI网卡:
   如果是Linux支持的,安装过程中就会被自动识别,并且会提示你输入IP,如果没有
提示,那么说明你的网卡并没有被Linux识别,这样就比较麻烦了。一个简单的解决方法是
按照该网卡的兼容网卡去安装,如果还不成,就得去网上搜索搜索了。

3.D-link530 RevB1 PCI网卡的安装:
   系统支持D-link530 RevA PCI的网卡,但是后来D-link有出了个RevB1,多了WOL,所
以原来的驱动via-rhine.o就不灵了,需要我们自己做一个驱动程序,很简单的。(注意:
用黑体标志的是修改的地方)

编辑via-rhineB.c
static struct pci_id_info pci_tbl[] = {
{ "VIA VT86C100A Rhine-II", 0x1106, 0x6100, 0xffff,
PCI_USES_MEM|PCI_USES_IO|PCI_USES_MEM|PCI_USES_MASTER,12
8,via_probe1},
{ "VIA VT3043 Rhine", 0x1106, 0x3043, 0xffff,
PCI_USES_IO|PCI_USES_MEM|PCI_USES_MASTER, 128,via_probe1},
{ "VIA VT3043 Rhine RevB1", 0x1106, 0x3065, 0xffff,
PCI_USES_IO|PCI_USES_MEM|PCI_USES_MASTER, 128,via_probe1},
{0,}, /* 0 terminated list. */ };

然后修改 /usr/src/linux/drivers/net/Config.in
tristate \\'PCI NE2000 support\\' CONFIG_NE2K_PCI
tristate \\'TI ThunderLAN support\\' CONFIG_TLAN
tristate \\'VIA Rhine support\\' CONFIG_VIA_RHINE
tristate \\'VIA Rhine RevB support\\' CONFIG_VIA_RHINEB
if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then

然后修改 /usr/src/linux/drivers/net/Makefile
ifeq ($(CONFIG_VIA_RHINE),y)
  L_OBJS += via-rhine.o
  else
     ifeq ($(CONFIG_VIA_RHINE),m)
       M_OBJS += via-rhine.o
     endif
endif
ifeq ($(CONFIG_VIA_RHINEB),y)
  L_OBJS += via-rhineB.o
  else
     ifeq ($(CONFIG_VIA_RHINEB),m)
       M_OBJS += via-rhineB.o
     endif
endif

配置kernel: make menuconfig
Networking device support --> Ethernet (10 or 100Mbit)

在新出现的 Via rhine Ver B一项前按 M
退出配置
make dep
make modules
make modules_install

如果/lib/modules/2.2.14-5.0/net/via-rhineB.o存在的话,我们就有戏拉。然后在这个目
录下执行insmod via-rhineB.o,如果没有错误提示,就成功拉。


1.7 小结

网卡是组网中最基本的设备之一,所以网卡安装的成功与否直接关系着服务器配置的成败,
Linux对网卡的支持可以说还是不错的,但由于其安装需要管理员手动配置,比起Windows的
驱动程序安装要复杂得多,所以很多人认为Linux对硬件的支持很差,其实这是不正确的,
如果你掌握了方
法,安装起来还是很简单的。



 中小企业服务器配置方案 第一章(2)
蓝森林 http://www.lslnet.com 2001年4月22日 21:58


作 者: 汤海京


( E-mail:thjthj@263.net )

第一章 代理接入服务器

第二节 双网卡


2.1 简介

在使用Linux作为两个以太网之间的网关的情况下,服务器至少需要配置两块网卡。为了减
少启动时可能出现的问题,Linux内核不会自动检测多个网卡。若需要在服务器上安装多块
网卡,对于已经将网卡的驱动编译进内核中的系统,则需要在"/etc/lilo.conf"文件中指定
各个网卡的参数信
息;而对于没有将网卡的驱动编译到内核而是作为模块动态载入的系统,应该在
"conf.modules"文件中进行相应的配置。


2.2 所需资源

2.2.1 所需包


2.2.2 所需配置文件
/etc/conf.modules 系统自带,管理员配置
/etc/sysconfig/network 系统自带,管理员配置
/etc/sysconfig/network-scripts/ifcfg-eth0 系统自带,管理员配置
/etc/sysconfig/network-scripts/ifcfg-eth1 系统自带,管理员配置

2.2.3 相关工具
1.iptraf
说明:一个监控所有接入服务设备的工具,当然包括双网卡
下载网址:ftp://ftp.freesoft.cei.gov.cn/.mirr....0.2-1.i386.rpm
2.linuxconf
说明:系统自带
3.netconf
说明:系统自带


2.3 配置方案

/etc/conf.modules
说明:驱动模块配置文件
源文件:(以D-link530 RevA PCI为例子)
alias eth0 via-rhine
alias parport_lowlevel parport_pc
alias eth1 via-rhine

/etc/sysconfig/network
说明:网络配置文件
源文件:
HOSTNAME= weboa      # 服务器的主机名
DOMAINNAME="weboa.com.cn" # 服务器的域名
GATEWAY="192.168.0.1"   # 网关设置
GATEWAY="eth0"       # 网关所用设备
NETWORKING=YES       # 是否启动网络服务
onBOOT=YES         # 网络服务配置在每次启动时生效
FORWARD_IPV4="yes"     # 服务器支持IP转发

/etc/sysconfig/network-scripts/ifcfg-eth0
说明:第一块网卡配置文件
来源:系统自带,管理员配置
源文件:
DEVICE="eth0"       # 网卡设备名称
BOOTPROTO="none"
IPADDR="192.168.0.1"    # IP设置
NETMASK="255.255.255.0"  # 子网掩码设置
onBOOT="yes"
IPXNETNUM_802_2=""
IPXPRIMARY_802_2="no"
IPXACTIVE_802_2="no"
IPXNETNUM_802_3=""
IPXPRIMARY_802_3="no"
IPXACTIVE_802_3="no"
IPXNETNUM_ETHERII=""
IPXPRIMARY_ETHERII="no"
IPXACTIVE_ETHERII="no"
IPXNETNUM_SNAP=""
IPXPRIMARY_SNAP="no"
IPXACTIVE_SNAP="no"

/etc/sysconfig/network-scripts/ifcfg-eth1
说明:第二块网卡配置文件
源文件:
DEVICE="eth1"      # 网卡设备名称
IPADDR="192.168.1.1"   # IP地址
NETMASK="255.255.255.0" # 子网掩码
onBOOT="yes"
BOOTPROTO="none"
IPXNETNUM_802_2=""
IPXPRIMARY_802_2="no"
IPXACTIVE_802_2="no"
IPXNETNUM_802_3=""
IPXPRIMARY_802_3="no"
IPXACTIVE_802_3="no"
IPXNETNUM_ETHERII=""
IPXPRIMARY_ETHERII="no"
IPXACTIVE_ETHERII="no"
IPXNETNUM_SNAP=""
IPXPRIMARY_SNAP="no"
IPXACTIVE_SNAP="no"


2.4 测试及管理办法

2.4.1 测试方法
1.ifconfig
观察是否有eth0和eth1设备存在,设置的IP和子网掩码对不对
2.ping IP
先ping一下两个IP,看是否有回应;然后ping同网段其他机器。

2.4.2 管理方法
1.通过linuxconf或者netconf修改网卡设置
然后执行:/etc/rc.d/init.d/network restart
2.直接修改配置文件
然后执行:/etc/rc.d/init.d/network restart


2.5 其他参考资料

Ethernet HOWTO, by Paul Gortmaker Updated 6 July 1998
DNS HOWTO, by Nicolai Langfeldt Updated 12 November 1998
IP Masquerade mini-HOWTO, by Ambrose Au Updated 10 November 1997
IPCHAINS HOWTO, by Paul Russell Updated 27 October 1998


2.6 相关技巧

1./etc/lilo.conf也能帮助我们

若驱动已经被编译进了内核:系统启动时的PCI检测程序将会自动找到所有相关的网卡。
ISA卡一般也能够被自动检测到,但是在某些情况下,ISA卡仍然需要做下面的配置工作:

在"/etc/lilo.conf"中增加配置信息,其方法是通过LILO程序将启动参数信息传递给内核。
对于ISA卡,编辑"lilo.conf"文件,增加如下内容:

append="ether="0,0,eht1"

注意:先不要在"lilo.conf"中加入启动参数,测试一下你的ISA卡,若失败再使用启动参数


如果用传递启动参数的方法,eth0和eth1将按照启动时被发现的顺序来设置。因为我们已经
重新编译了内核,所以必须使用第二种方法(在lilo.conf中加入启动参数)在系统中安装
我们的第二块网卡。这种方法只对ISA卡有必要,PCI卡会被自动查找到,所以没有什么必要



2.7 小结

在服务器上配置双网卡现在已经成为一个基本技能了,只有掌握了它,才能成为一名合格的
网络管理员,双网卡其实是接入服务器的基础,当然也是网关配置的基础。总之,不会配置
双网卡,没法学习下面的代理服务器配置;当然,我希望大家能够通过阅读本节掌握此项基
本技能。


 中小企业服务器配置方案 第一章(3)
蓝森林 http://www.lslnet.com 2001年4月22日 22:04


作 者: 汤海京


( E-mail:thjthj@263.net )

第一章 代理接入服务器

第三节 DHCP服务器


3.1 简介

对于那些不太了解网路技术的人来说,配置TCP/IP可能是一件非常复杂的工作,对那些将
PC连接到局域网的用户来说只能将配置集中到服务器端,这样可以简化用户端的工作复杂度
。当然,这将在一定程度上,增加管理员的工作量,但是从整体考虑,这样是最优的。

本章我将向大家介绍如何配置动态IP分配以及管理,并用通俗易懂的语言解释它是如何工作
的,希望大家通过阅读本章,迅速成为一名合格的网络管理员。DHCP的全称是动态主机配置
协议(Dynamic Host Configuration Protocol),由IETF(Internet
网络工程师任务小组)设计,详尽的协议内容在RFC文档rfc2131和rfc1541里。目的就是为
了减轻TCP/IP网络的规划、管理和维护的负担,解决IP地址空间缺乏问题。运行DHCP的服务
器把TCP/IP网络设置集中起来,动态处理工作站IP地址的配置,用DHCP租约和预置的IP地址
相联系,DHCP租
约提供了自动在TCP/IP网络上安全地分配和租用IP地址的机制,实现IP地址的集中式管理,
基本上不需要网络管理人员的人为干预。而且,DHCP本身被设计成BOOTP(自举协议)的扩
展,支持需要网络配置信息的无盘工作站,对需要固定IP的系统也提供了相应支持。


3.2 所需资源

3.2.1 所需包
dhcp-2.0-5.i386.rpm

3.2.2 所需配置文件
/etc/dhcpd.conf 系统自带,管理员配置
/var/state/dhcp/dhcpd.leases 系统没有,管理员创建


3.3 配置方案

/etc/dhcpd.conf
说明:dhcp主配置文件
源文件:
subnet 192.168.0.0 netmask 255.255.255.0 { # 指定网段和子网掩码
option routers 192.168.0.1;   # 指定默认路由
option subnet-mask 255.255.255.0;  # 指定dhcp的子网掩码
option domain-name "weboa.com.cn";  # 指定域名
option domain-name-servers 192.168.0.1; # 默认DNS服务器
range dynamic-bootp 192.168.0.10 192.168.0.250; # IP分配范围
default-lease-time 1200;   #如果客户端不能请求一个指定的租用期,就使
                用该参数来定义该地址租用的时间长度
max-lease-time 87600;     #用来指定租用的最长时间,尽管租用的
                时间长度是根据客户端的请求决定的。
# we want the nameserver to appear at a fixed address
# host ns {
# next-server marvin.redhat.com;
# hardware ethernet 12:34:56:78:AB:CD;
# fixed-address 207.175.42.254;
# }
}
# 以上被注释的部分用来给客户机分配一个永久的IP,也就是可以利用它
来做网卡和IP的绑定

/var/state/dhcp/dhcpd.leases
说明:IP分配记录文件
   通过执行 touch /var/state/dhcp/dhcpd.leases生成
源文件:
   空

3.4 测试及管理办法

3.4.1 测试方法
1. 管理员修改完配置文件之后需要执行/etc/rc.d/init.d/dhcpd restart
来使更改生效。
2.在Windows 98的客户端,用户需要将TCP/IP配置成为自动搜索IP。
3.在Windows 98的客户端可以运行winipcfg来动态申请IP。
4.管理员可以通过查看/var/state/dhcp/dhcpd.leases文件来监督IP资
源的分配情况。

3.4.2 管理方法
1. 可以通过执行 tail -f /var/state/dhcp/dhcpd.leases来监视IP的分配情况。


3.5 其他参考资料

1. 在Linux几乎都采用的是Paul Vixie/ISC DHCPd,来实现DHCP服务器端功能。可以访问:
http://www.isc.org/isc


3.6 小结

通过学习本章,各位一定有一个感觉,就是DHCP的配置十分的简单。在一定程度上是这样的
,因为我向大家介绍的是一台主服务器带一个子网,这是最简单的一种网络拓扑结构,要是
更加复杂的多子网情况,那配置起来就要更加麻烦一点,这就需要为每个子网配置一个中继
代理(dhcrelay
),它的文档在Linux中都可以找到,一看就能明白了。



 中小企业服务器配置方案 第一章(4)
蓝森林 http://www.lslnet.com 2001年4月22日 22:06


作 者: 汤海京


( E-mail:thjthj@263.net )

第一章 代理接入服务器

第四节 IP伪装


4.1 简介

利用因特网的代理服务器技术可以解决目前因特网的IP地址耗尽、网络资源争用以及网络安
全等问题。代理服务器是采取一种代理的机制,即内部的客户端必须经过代理服务器才能和
外部的服务器端进行通信,而外部的任何一台主机只能访问到代理服务器。本文着重讨论利
用Linux代理服
务器解决IP地址耗尽、网络资源争用和网络安全等问题。

随着因特网技术的迅速发展,越来越多的计算机连入了因特网。目前已经联系着160多个国
家和地区,上网的计算机已超过5000万台。它促进了信息产业的发展,并将改变人们的生活
、学习和工作方式,对很多人来说,因特网已成为不可缺少的工具。而随着因特网的发展也
产生了诸如IP地
址耗尽、网络资源争用和网络安全等问题。代理服务器就是为了解决这些问题而产生的一种
有效的网络安全产品。


4.2 所需资源

4.2.1 所需包
ipchains-1.3.9-5.rpm
4.2.2 所需配置文件
/root/ipchains 自己写


4.3 配置方案

/sbin/rules
说明:
源文件:
# 以下是你需要增加的转发控制模块
/sbin/modprobe ip_masq_ftp
/sbin/modprobe ip_masq_quake
/sbin/modprobe ip_masq_irc
/sbin/modprobe ip_masq_user
/sbin/modprobe ip_masq_raudio
/sbin/ipchains -P forward DENY # 在默认状况下拒绝所有 ip 转发。
echo 1 > /proc/sys/net/ipv4/ip_forward # 打开IP转发
ipchains -I forward -s 192.168.0.0/24 -d 0/0 -j MASQ
# 将来自192.168.0.0网段的申请转发

4.4 测试及管理办法

4.4.1 测试方法
1. 找一台局域网内的客户机,把IP设置成192.168.0.0网段的,ping一下外边,看能不能出
去,就知道拉。


4.5 其他参考资料

1. 黄志伟,IP Masquerade HOWTO中文版
请访问:http://www.linux.org.tw/CLDP/gb/IP-...rade-HOWTO.html


4.6 相关技巧
1. 要是控制模块不存在,或许是不在路径下,可以执行depmod -a


4.7 小结

使用ipchains作为企业上网IP伪装十分实用,而且其配置十分简单, 并且功能强大,管理
起来也十分简单。当然,其在安全性上还有不足,需要改进。


 中小企业服务器配置方案 第一章(5)
蓝森林 http://www.lslnet.com 2001年4月23日 22:25


作 者: 汤海京


( E-mail:thjthj@263.net )

第一章 代理接入服务器

第五节 Squid代理服务器


5.1 简介

 作为一种免费的网络操作系统,Linux越来越受到广大网络爱好者的欢迎,目前因特网(
Internet)上运行的主机有相当一部分采用的就是linux操作系统,而且中国已经把linux操
作系统作为政府上网年的指定网络操作系统,种种迹象表明,linux操作系统正在逐渐走向
成熟。在本章我将
向大家介绍一种能在Linux系统下使用的比较优秀的代理服务器软件的配置方法。

众所周知,当今因特网发展速度极其迅猛,IP地址资源非常紧张。而如果您想访问因特网,
共享因特网的丰富资源,您的机器必须拥有一个标准的IP地址。在因特网上,IP地址是识别
您的机器的唯一标志。目前,有两种方式可以让您的机器拥有标准的IP地址:一种是局域网
通过专线接入因
特网,您的机器可以拥有静态的IP地址。所谓静态IP地址,就是对使用者来说,是固定不变
的IP地址,这个IP地址给您使用后,其他人就不能再用了。一种是通过电话线拨号或ISDN拨
号等方式接入因特网,您的机器可以在您拨号上网的在线期间从ISP的访问服务器的IP地址
池中获得一个临
时的标准IP地址,这个IP地址在您下线后就不归您使用了,而您下次拨号再上网,很可能分
配给您的机器的是另外一个临时的IP地址了。这种临时分配的IP地址,称为动态IP地址。无
论是静态地址还是动态地址,在您的机器访问因特网时,使用起来没有什么区别。

 现在因特网发展速度这么快,而IP地址资源又这么紧张,这不能不说是一个尖锐的矛盾。
虽说Ipv6正在开发中,但远水不解近渴,好多的企业、公司内部的Intranet现在就想接入因
特网这个浩瀚的资源海洋,但又苦于没有充足的IP地址资源,怎么办?还好,有代理服务这
个好东西。代理
服务是指由一台拥有标准IP地址的机器代替若干没有标准IP地址(以下称内部地址)的机器
和因特网上的其他主机打交道,提供代理服务的这台机器称为代理服务器。拥有内部地址的
机器想到因特网上查找资料时,先把这个请求发给拥有标准IP地址的代理服务器,由代理服
务器把这个请求
通过它的标准IP地址发到请求的目标地址。然后目标地址的服务器把返回的结果发回给代理
服务器,代理服务器再原封不动的把资料发给最初那台拥有内部IP地址的机器。这样就完成
了一次内部机器访问因特网的一个过程。若干拥有内部地址的机器就组成了内部网,代理服
务器的作用就是
勾通内部网和因特网,解决内部网访问因特网的问题。而且这种代理是不可逆的,因特网上
的主机不能访问任何一台拥有内部地址的机器,这样又可以保障内部资料的安全性。

能够完成这种代理功能的服务器软件有好多,我给大家推荐一种能在linux下使用的比较优
秀的代理服务器软件Squid。之所以说它比较优秀,是因为它可以在代理服务器上作一个很
大的缓存,可以把好多常去的网站内容存储到缓存中,这样,内部网的机器再访问那些网站
,就可以从缓存里
调用了。这样一方面可以加快内部网浏览因特网的速度,这就是所谓的提高客户机的访问命
中率,
另一方面,Squid不仅仅支持HTTP协议,而且还支持FTP,GOPHER,SSL和WAIS等协议考虑到简
捷实用的原则,我们本章只向大家介绍如何设置HTTP代理,而其他的代理大同小异,各位理
解了HTTP的配置也就明白应该如何配置其他的代理了。


5.2 所需资源

5.2.1 所需包
squid-2.3.STABLE1-5.rpm

5.2.2 所需配置文件
/etc/squid/squid.conf 系统自带,管理员配置

5.2.3 相关工具



5.3 配置方案

/etc/squid/squid.conf
说明:squid主配置文件
源文件:

acl deny_ip_01 dst 1.1.1.1
http_access deny deny_ip_01
# 以上两行是基于IP的访问控制
acl deny_url_01 url_regex http://www.www.www
http_access deny deny_url_01
# 以上两行是基于URL的访问控制
http_port 3128 # HTTP协议代理默认代理端口
cache_mem 32 MB #开劈一块内存区域作为缓冲
cache_dir ufs /home/squid/cache 1024 16 256
# 开劈一块硬盘空间,作为硬盘缓冲区,这块区域的分布是连
续的,逻辑关系由管理员设定
cache_access_log /var/log/squid/access.log
# 该log文件是用来描述每次客户请求HTTP内容时,高速缓
存命中或未命中的项目。同时描述提出请求的主机身份及它
们所需的内容。
cache_log /var/log/squid/cache.log
#用于描述当squid守护进程启动时,可看到有多少内存、交
换空间,高速缓存目录的位置,所接受的连接类型及接受连
接的端口。
cache_store_log /var/log/squid/store.log
#用于描述页面从高速缓存中被调入调出的情况。
pid_filename /var/run/squid.pid
#管理员可以通过查看此文件了解当前执行的squid进程。
dns_nameservers 192.168.0.1
#定义域名解析服务器的地址
acl all src 0.0.0.0/0.0.0.0
cache_mgr root@weboa.com.cn
#设置cache管理员的邮件箱地址
reference_age 3 days
#设置缓冲区的更新周期
maximum_object_size 4096 KB
#设置允许被缓存的一次性最大请求


5.4 测试及管理办法

5.4.1 测试方法
1. 在客户机下打开浏览器,设置好代理服务器,端口是3128,看看能不能上网就是拉。

5.4.2 管理方法
1.修改完配置文件需要执行/etc/rc.d/init.d/squid restart使得配置生效。


5.7 小结

看完本章之后,我想各位一定有个深切的感受,squid的配置文件十分的长,而且能干的事
情实在是太多了,但是我们作为一名合格的管理员应该从需求方案出发,以客户的需求为导
向,配置出我们自己需要的服务器,这样不但可以满足需要,还能大大减少我们的工作量,
配置squid就是一
个鲜明的例子。


 中小企业服务器配置方案 第一章(6)
蓝森林 http://www.lslnet.com 2001年4月23日 22:34


作 者: 汤海京


( E-mail:thjthj@263.net )

第一章 代理接入服务器

第六节 Modem拨号


6.1 简介

首先向大家强调一点,我们这里所谈的PPP不是要将我们的服务器配置成为提供拨入服务的
服务器,而是用户可以通过服务器拨号上网,简而言之就是,服务器可以按照客户的需求自
动拨号上网,也就是所谓的按需拨号。

为什么我们要向大家介绍这项配置呢?因为虽然现在许多企业都用DDN上网,但是Modem在很
大程度上还是有它的作用的,所以我们将向大家介绍一下如何实现PPP自动拨号上网。


6.2 所需资源

6.2.1 所需包
ppp-2.3.11-4.i386.rpm

6.2.2 所需配置文件
/etc/ppp/options
/etc/ppp/modemdial 系统没有,管理员创建
/etc/ppp/pap-secrets
/root/dial

6.2.3 相关工具
/usr/sbin/pppstats


6.3 配置方案

/etc/ppp/options
说明:PPP可选配置项
源文件:
    demand        # 启动按需拨号模式
    modem         # 使用modem控制线
    lock         # 打开设备锁
    crtscts        # 清除发送
    defaultroute     # 使用默认路由
    asyncmap 0      # 设置异步map=0
    ipcp-accept-local
    ipcp-accept-remote
    ipcp-max-configure 5
    ipcp-restart 1
    mtu 552        # 设置最大传输单位
    mru 552        # 设置最大接受单位
    name 169       # 设置用户名,与pap-secrets对应
    usepeerdns      # 自动抓取ISP的DNS

/etc/ppp/modemdial
说明:Modem拨号指令文件
源文件:
    "" ATZ        # 初始化设备
    OK ATDT169      # 拨号
    CONNECT ""      # 握手连接

/etc/ppp/pap-secrets
说明:PAP模式口令加密文件
源文件:
    169 * 169       # 用户名 * 密码

/root/dial
说明:pppd进程启动文件
源文件:
    killall -9 pppd    # 杀掉残留pppd进程
    /usr/sbin/pppd -d /dev/ttyS0 115200 connect "/usr/sbin/chat
-t 3 -V -v -f /etc/ppp/modemdial"
    # -d后跟设备名称,115200是连接速率,connect后跟拨号脚本

6.4 测试及管理办法

6.4.1 测试方法
1. 可以执行ps auxw|grep pppd,查看是否有pppd的守护进程。

6.4.2 管理方法
1. 执行 tail -f /var/log/message 可以观察拨号过程,当你看到已经从ISP分配到了IP并
成功抓取到了DNS之后,说明拨号正确。
2. 执行 pppstats可以观察Modem的工作情况。


6.5 其他参考资料

1. diald:http://home.loonie.net/~eschenk/diald.html)
2. webppphttp://www.ajusd.org/~edward/webppp/)


6.6 相关技巧
1. 如果在字符界面下无法拨号,可以考虑装个Xwindows,用用她的拨号器。


6.7 小结

其实这一切很简单,通过我上面的叙述,大家不难发现,其实所谓的按需拨号,它的实现应
该被划分成两个步骤:第一,先将服务器本身配置好,让它可以拨号上网;第二,编写自动
拨号配置文件,使Linux服务器具备自动拨号的能力。其实,从客户端自动拨号与从服务器
自动拨号的原理
是一样的,只要有向外的请求,就应该自动启动拨号进程,而从客户机来的请求,最终将通
过sendmail,squid等从服务器发送到Internet。所以我们只要配置好服务器上的自动拨号
,也就能实现客户机的自动拨号。



 中小企业服务器配置方案 第一章(7)
蓝森林 http://www.lslnet.com 2001年4月24日 22:33


作 者: 汤海京


( E-mail:thjthj@263.net )

第一章 代理接入服务器

第七节 ISDN拨号


7.1 简 介

近两年来,ISDN在我国蓬勃发展起来,各省市的电信部门相继开通ISDN业务。尤其在上海、
广州、福州、北京等地,ISDN的发展趋势更是势不可挡。就上海来说,到今年5月份,ISDN
用户已达32,000。ISDN凭借其连接速度快、传输质量高等优势正吸引着越来越多的用户。

什么是ISDN?

ISDN是综合业务数字网的简称,它由电话综合数字网(IDN)发展而来。ISDN是数字交换和
数字传输的结合,它以迅速、准确、经济、有效的方式提供目前各种通信网络中现有的业务
,而且将通信和数据处理结合起来,开创了很多前所未有的新业务。
ISDN是一个全数字的网络,也就是说,不论原始信号是话音、文字、数据还是图象只要可以
转换成数字信号,都能在ISDN网络中进行传输。在传统的电话网络中,实现了网络内部的数
字化,但在用户到电话局之间仍采用模拟传输,很容易由于沿途噪声的积累引起失真。而对
于ISDN来说,实
现了用户线的数字化,提供端到端的数字连接,传输质量大大提高。

由于ISDN实现了端到端的数字连接,它可以支持包括话音、数据、图象等各种业务。随着电
子通信在全球不断扩大,我们许多人需要和不同地区的用户交换信息。而现在人们对通信的
要求已经不仅是简单的声音交换,还需要共享各种格式的不同信息。例如,有些人需要高速
数据和文件传输
;有些人可能需要多媒体和会议电视;有些人则希望能访问中央数据库。ISDN的业务覆盖了
现有通信网的全部业务,例如传真、电话、可视图文、监视、电子邮件、可视电话、会议电
视等,可以满足不同用户的需要。
ISDN还有一个基本特性是向用户提供了标准的入网接口。用户可以随意地将不同业务类型的
终端结合起来,连接到同一接口上,并且可以随时改变终端类型。

ISDN主要有两种类型:基本速率(BRI)和基群速率(PRI)。电信局向普通用户提供的均为
BRI接口,采用原有的双绞线,速率可达144Kb/s。BRIISDN可在一对双绞线上提供两个B通道
(每个64K)和一个D通道(16K),D通道用于传输信令,B通道则用于传输话音、数据等。
一路电话只占用
一个B通道,因此,在同时进行多种业务或对话。PRI接口速率为2.048Mb/s,用于需要传输大
量数据的应用,如PBX,LAN互联等。

ISDN能做些什么?

ISDN可向用户提供各种各样的业务。目前CCITT将ISDN的业务分为三类:承载业务,用户终
端业务和补充业务。

承载业务是ISDN网络提供的信息传送业务,它提供用户之间的信息传送而不改变信息的内容
。常用的承载业务有:话音业务、3.1KHz音频业务和不受限64K数字业务。打电话时一般采
用话音业务,该种承载业务向网络表明目前用户是在打电话,网络可以对其做语音压缩、回
波消除、数字话
音插空等处理。3.1KHz音频承载业务主要用于用调制解调器进行数据传输或用模拟传真机发
传真的情况,这类业务可在网络中对信号进行数模变换,但是其他形式的话音处理技术必须
禁止。若要使用ISDN拨号上网,则需要用不受限64K数字业务,此时网络对于传送的数据不
做任何处理。有
时用户若碰到申请的ISDN线路能打电话却无法拨号上网的情况,即可能是由于线路上为开放
不受限64K数据承载业务所致。

用户终端业务是指所有面向用户的应用业务,它即包含了网络的功能,又包含了终端设备的
功能。用户可以使用电话、4类传真、数据传输、会议电视等用户终端业务,但均需要终端
设备的支持。

补充业务则是ISDN网络在承载业务和用户终端业务的基础上提供的其他附加业务,目的是为
了给用户提供更方便的服务。目前上海市电信局向用户提供的补充业务有:多用户号码、子
地址、主叫号码显示、呼叫等待、呼叫保持等。其中除多用户号码由于号码资源紧张需每个
月交纳一定费用
外,其他补充业务均为免费开放,当然首先您需要到电信局去申请这些业务。这些业务确实
可给用户带来很大的方便。例如,呼叫等待业务可以使您在两个电话同时使用时,外面电话
还能打进来。呼叫保持则使您在打电话时,将现有的电话暂时挂起,去打新的电话或接听其
他电话,结束后
在将原来的电话恢复。

为什么要用ISDN?

无论是个人还是公司,ISDN都应成为您的首选。因为它有以下诸多好处:

价格便宜:

由于使用单一的网络提供不同的业务,ISDN大大提高了网络资源的利用率。用户不必要购买
不同的设备和线路接入不同的网络。就上海来说,目前电信局对用户推出ISDN优惠大套餐,
只需花490元,即可获得上海贝尔生产的智能网络终端和ISDN适配卡,家中原有的模拟电话
、传真机等都可
直接接入,通过ISDN适配卡可以128Kb/s的速率上网,所花的费用不到一块56K调制解调器的
价钱。而且每条ISDN线路的月租费为24元,与模拟电话线相同,却可当两条模拟线路使用,
何乐而不为呢?

高速数据传输:

使用ISDN,最高数据传输速率可达128Kb/s,相对于现有电话网中的数据速率提高了好几倍
。对于因特网用户来说,使用56K调制解调器时文件下载速率最快时在4KB/s左右,还需视网
络情况而定,而使用ISDN,若同时使用两个B信道,下载文件是速率最快可达12KB/s左右,
提高整整3倍!这
样,省下来的时间、电话费、上网费就相当可观了。

高的传输质量:

经常上网的用户肯定有类似经验,有时下载一个大文件花费了好几个小时,结果下载完后却
发现由于线路质量差,误码率高,下载的文件不能使用。而使用ISDN几乎不会发生这种问题
。由于ISDN采用端到端的数字连接,传输质量很高,它不会象模拟线路一样受到静电和噪音
的影响。此外,
由于ISDN中的数字设备便于故障检测,系统可靠性也得到提高。

使用灵活方便:

ISDN提供各种业务,用户只需一个入网接口,就能使用网络提供的各种业务。例如,您可以
把电话和个人电脑接入ISDN,在上网的同时可以打电话。还可接入可视电话、会议电视、
ISDN路由器等设备。由于这些设备均有相应的国际标准,可以象家用电器一样具有便携性,
可以从一个插座上
拔到另一个有插座的地方去使用。

总的来说,ISDN是一个非常成熟的技术,它必将以其优质的服务、平民化的价格将您带入一
个全新的数字时代。


7.2 内置ISDN卡

内置ISDN卡的安装比较麻烦,造成这种情况的主要原因是卡的型号比较多,而内核支持的范
围十分有限,所以,笔者向大家推荐上海贝尔出的几种,我们只需要重新编译内核,加上我
们用ISDN的型号就可以啦。

7.2.1 配置

内核配置文件
实例:
以下是我们需要的选项,由于现在市面上见到的所有中文Linux的发行版均不支持内置的
ISDN,所以,我们要想用这个好东东只能自己动手啦。
在/usr/src/linux目录下执行make menuconfig,然后在ISDN项中选择一下选项:
<*> ISDN support
[*] Support synchronous PPP
[*] Use VJ-compression with synchronous PPP
[*] Support generic MP (RFC 1717)
[*] Support audio via ISDN
<M> HiSax SiemensChipSet driver support
[*] HiSax Support for EURO/DSS1
[*] Support for german chargeinfo
[*] Disable sending complete
[*] Disable sending low layer compatibility
[*] HiSax Support for Teles 16.3 or PNP or PCMCIA
[*] HiSax Support for Winbond W6692 based cards
然后存盘退出,执行make dep,make clean,make bzImage,make modules,make
modules_install,depmod -a,make install。
此时,新的核心已经生成啦,而我们老的核心并没有被删除,只是做了一个备份,要是有什
么问题,还是可以恢复的。最后我们需要重新启动使得新内核生效。

isdn4k-utils-3.1beta7_mini-1.i386.rpm
这是一个支持内置ISDN的包,安装上之后,系统就会识别我们的内置卡了,当然,为了实现
拨号,我们还需要写一个拨号脚本以及相应的挂断脚本,它们是isdnon和isdnstop。

isdnon
实例:
#!/bin/sh
echo -n E > /dev/ttyS1
modprobe hisax type=36 protocol=2
echo 1 > /proc/sys/net/ipv4/ip_dynaddr
#Kill previous ipppd process
if [ -r /var/run/ipppd.ippp0.pid ]
  then kill -9 `cat /var/run/ipppd.ippp0.pid`
fi
if [ -r /var/run/ipppd.ippp1.pid ]
  then kill -9 `cat /var/run/ipppd.ippp1.pid`
fi
#Variables
MYIP=0.0.0.0
REMIP=0.0.0.0
MYMSN=62986638
REMMSN=169
MYUSER=169
REMNAME=169
#Init
/sbin/isdnctrl verbose 3
#/sbin/isdnlog -sS -v1 -m0x17d7 -l0x3d7 -C /dev/console -D /dev/isdnctrl
#Add and set ippp0
/sbin/isdnctrl system on
/sbin/isdnctrl addif ippp0
/sbin/isdnctrl eaz ippp0 $MYMSN
/sbin/isdnctrl addphone ippp0 out $REMMSN
/sbin/isdnctrl huptimeout ippp0 3600
/sbin/isdnctrl l2_prot ippp0 hdlc
/sbin/isdnctrl l3_prot ippp0 trans
/sbin/isdnctrl encap ippp0 syncppp
/sbin/isdnctrl dialmode ippp0 auto
#Add and set ippp1
/sbin/isdnctrl addslave ippp0 ippp1
/sbin/isdnctrl eaz ippp1 $MYMSN
/sbin/isdnctrl addphone ippp1 out $REMMSN
/sbin/isdnctrl huptimeout ippp1 3600
/sbin/isdnctrl l2_prot ippp1 hdlc
/sbin/isdnctrl l3_prot ippp1 trans
/sbin/isdnctrl encap ippp1 syncppp
/sbin/isdnctrl dialmode ippp1 auto
/sbin/ifconfig ippp0 -arp -broadcast
#Startup PPP
/sbin/ipppd user $MYUSER remotename $REMNAME \
  lock \
  noipdefault \
  +mp \
  ipcp-accept-local \
  ipcp-accept-remote \
  name $MYUSER \
  -detach \
  mru 552 \
  mtu 552 \
  lcp-restart 1 \
  defaultroute \
  /dev/ippp0 &
/sbin/ipppd user $MYUSER remotename $REMNAME \
  lock \
  noipdefault \
  +mp \
  ipcp-accept-local \
  ipcp-accept-remote \
  name $MYUSER \
  -detach \
  mru 552 \
  mtu 552 \
  lcp-restart 1 \
  defaultroute \
  /dev/ippp1 &

isdnstop
实例:
#!/bin/sh
echo -n G > /dev/ttyS1
ifconfig ippp0 down >/dev/null 2>&1
isdnctrl delif ippp0 >/dev/null 2>&1
killall -9 ipppd >/dev/null 2>&1
sleep 2
echo -n H > /dev/ttyS1
7.2.2 测试及管理办法

1.管理员通过执行/sbin/imon来监控内置ISDN的工作状况
2.管理员可以执行/usr/sbin/ipppstats来监控内置ISDN的流量


7.3 外置ISDN

7.3.1 说明

由于现在最新的内核2.4.2不支持USB接口的ISDN.所以,我们这里所说的外置ISDN指的是串口
的.

安装串口ISDN的方法有许多种,笔者从自身实践中感觉,将ISDN当成Modem一样用比较方便,这
样不需要安装其余RPM包,又不用设置DNS,所以将外置串口的ISDN当Modem用既简单,又实用.

7.3.2 配置

/etc/ppp/isdndial
说明:
源文件:
"" ATZ # 初始化设备
OK ATX0 # 自动测试连接速率
OK AT%B8 # 以115200连接
OK ATB31 # 多链路连接(双信道)
OK ATD169 # 拨号

/etc/ppp/options
说明:
源文件:(同Modem)
demand
modem
lock
crtscts
defaultroute
asyncmap 0
ipcp-accept-local
ipcp-accept-remote
ipcp-max-configure 5
ipcp-restart 1
mtu 552
mru 552
name 169
usepeerdns

/etc/ppp/pap-secrets
说明:
源文件:(同Modem)
169 * 169

/root/dial
说明:
源文件:
killall -9 pppd
/usr/sbin/pppd -d /dev/ttyS0 115200 connect "/usr/sbin/chat -t 3 -V -v -f
/etc/ppp/isdndial"

7.4 小结

ISDN在国内的应用越来越多,它比电话线拨号上网的带宽增大了许多,中小型企业通过它共
享上网非常合适。

  现在国内用在ISDN上网的设备有很多种,没有任何厂商声明支持Linux,但是Linux已经
可以支持大多数ISDN设备。

  ISDN上网与我们常用的Modem拨号上网类似。在Linux下甚至可以把ISDN卡模拟成Modem
设备,所不同的是ISDN可以使用同步PPP(synchronous PPP),而Modem拨号一般使用异步
PPP(anonymous PPP)。对于这两种拨号方式,邮局或ISP采用不同的接入设备。

  尽管ISDN可以模拟成Modem进行异步模式的拨号,但一般只是用来测试ISDN卡是否运行
正常,真正在上网时通常要用同步PPP拨号模式。



 中小企业服务器配置方案 第二章
蓝森林 http://www.lslnet.com 2001年4月24日 22:53


作 者: 汤海京


( E-mail:thjthj@263.net )

第二章 DNS服务器

第一节 主DNS服务器


1.1 简介

域名系统为一个分布式数据库,它使本地负责控制整个分布式数据库的部分段,每一段中的数
据通过客户,服务器模式在整个网络上均可存取,通过采用复制技术和缓存技术使得整个数据
库可靠的同时,又拥有良好的性能.

域名服务器包含数据库的部分段的信息,并可提供被称之为解析器的客户来访问.

DNS的数据库结构形成一个倒立的树状结构,根的名字用空字符串""来表示,但在文本中用
"."来书写.树的每一个节点都表示整个分布式数据库中的一个分区(域),每个域可再进一步
划分成子分区(域),每个域都有一个标签(LABEL),标明了它与父域的关系.域也有一个域名
(domain
name),给出它在整个分布式数据库中的位置.在DNS中,域名全称是一个从该域到根的标签序
列,以"."分隔这些标签.该标签最多可包含63个字符.树中每一节点的完整域名为从该节点到
根之间路径上的标签序列.

如果根域在节点的域名中出现,该名字看起来就象以点结尾(实际上是以点和空标签作结尾)
.这些以点结尾的域名被称之为绝对域名(Absoulte Domain Name).不以点结尾的域名被称之
为相对域名.

域(Domains)即为树状域名空间中的一棵子树,域的域名同该子树根节点的域名一样.也就是
说,域的名字就是该域中最高层节点的名字.举例来说,zhuhai.gd.cn域的顶端就是名为
zhuhai.gd.cn的节点.

在DNS中,每个域分别由不同的组织进行管理.每个组织都可以将它的域再分成一定数量的子
域并将这些子域委托给其他组织进行管理.域既能包括主机又能包括其他域(它的子域).域名
被用做DNS数据库中的索引.子域中任何域名被认为是域的一部分.

事实上,主机即为域,域名仅是DNS数据库中的索引,"主机"可由指向相关主机信息的域名来索
引,域包含所有其域名在该域的主机.

在域名树中,叶节点的域通常代表主机,它们的域名可指向网络地址,硬件信息和邮件路由信
息.在树内的节点,其域名既可命名一台主机,也可指向有关该域的子孙或子域的结构信息,在
域名树中的内部域名并不受唯一性限制,它们既可表示它们所对应的域,又可代表网络中某台
特定的主机.例如
,sun.com既是sun的域,又是在sun和internet间转发信件的邮件服务器的域名.


1.2 所需资源

1.2.1 所需包
RedHat6.2 服务器模式安装

1.2.2 所需配置文件
/etc/named.conf 系统自带,管理员配置
/etc/hosts 系统自带,管理员配置
/etc/resolv.conf 系统自带,管理员配置
/var/named/name2ip.conf 系统没有,管理员创建
/var/named/ip2name.conf 系统没有,管理员创建
/etc/named.boot 系统自带,不需要修改
/etc/host.conf 系统自带,不需要修改
/etc/nsswitch.conf 系统自带,不需要修改
/var/named/named.local 系统自带,不需要修改
/var/named/named.ca 系统自带,不需要修改

1.2.3 相关工具
1. nslookup
说明:检测DNS是否配置正确的工具,系统自带。


1.3 配置方案

/etc/named.conf
说明:DNS主配置文件,定义了域数据库信息的基本参数和源点,该文件可以存放在本地或
远程的服务器上。
源文件:
options {
  directory "/var/named"; #定义了named要读写文件的路径
  };
zone "." {
  type hint;  #表明在启动时被用来初始化域名服务器的文件
         是一个线索文件,每个服务器都有一个线索区。
file "named.ca";#指定所要读取的文件名
};
zone "0.0.127.in-addr.arpa" {
type master;    #表明服务器是主域名服务器
file "named.local";
};
zone "0.168.192.in-addr.arpa" { # 定义被解释网段
type master;
file "ip2name.conf";
};
zone "weboa.com.cn" in {     # 被解释的域名
type master;
file "name2ip.conf";
};

/var/named/name2ip.conf
说明:正向解析配置文件,即实现域名到IP的对应
源文件:
@ IN SOA  www.weboa.com.cn. root.www.weboa.com.cn.
#所有的区文件都以SOA开头,@指定当前的信息源,www.weboa.com.cn这个值可以将域名和
n...只有一个@符号。
(  1997022700 ; Serial  #序列号
   28800   ; Refresh  #刷新周期,以秒为单位
   14400   ; Retry   #循环周期
   3600000  ; Expire  #中止时间
   86400 )  ; Minimum  #time-to-live的时间
       IN  NS  www.weboa.com.cn.
#定义域名服务器
       IN  MX 10 mail.weboa.com.cn.
#定义邮件服务器,10表示优先级,越小越高
#实现域到IP的映射:
localhost  IN  A  127.0.0.1
www     IN  A  192.168.0.1
mail     IN  A  192.168.0.1
pop3     IN  A  192.168.0.1
smtp     IN  A  192.168.0.1
@      IN  A  192.168.0.1

/var/named/ip2name.conf
说明:DNS反向解析配置文件,即实现IP地址很域名的映射
源文件:
@ IN SOA www.weboa.com.cn. root.www.weboa.com.cn. (
   1997022700 ; Serial
   28800   ; Refresh
   14400   ; Retry
   3600000  ; Expire
   86400 )  ; Minimum
   IN  NS   www.weboa.com.cn.
   IN  MX 10 mail.weboa.com.cn.
1   IN  PTR   www.weboa.com.cn.
#其中那个1的意思是IP的最后一位,可以是0-255,它与
/etc/named.conf中另外三位IP一起组成一个IP;定义逆向关系,
即www.weboa.com.cn和192.168.0.1之间的对应。

/etc/hosts
说明:实现与网上其他主要计算机的映射,它通常是当作DNS的备
份出现的,也就是说,当DNS系统出现问题的时候才使用Hosts表。
源文件:
127.0.0.1   localhost.localdomain   localhost
192.168.0.1  www.weboa.com.cn      www
#由于每台服务器都会有几个域名与IP的对应关系是永久的, 所
以Hosts表中存放的应该是它们。

/etc/resolv.conf
说明:指定域名服务器的IP和搜索顺序。
源文件:
domain
#定义本地域名。
search weboa.com.cn
#简化用户输入的主机名,即当用户输入mail时,使得DNS可以把
它成功地解析为mail.weboa.com.cn。它与domain是互斥的,无论
谁出现都是用来定义search列表的。
nameserver 192.168.0.1
#定义域名服务器的IP,最多三个,建议一般使用两个。

1.4 测试及管理办法

1.4.1 测试方法
1. 管理员修改完DNS的配置文件,需要执行/etc/rc.d/init.d/named
restart来是更改生效。

2. nslookup:测试正向、反向的解析是否正常


1.5 小结

DNS服务是许多服务的基础,所以配置一台Linux Server应该从DNS开始,并要从一开始就对
你的服务器配置成什么样子有一个整体的把握,这样才能保证配置之间能够相互协调,避免
错误的发生。




 中小企业服务器配置方案 第三章(1)
蓝森林 http://www.lslnet.com 2001年4月24日 23:07


作 者: 汤海京


( E-mail:thjthj@263.net )

第三章 Web服务器

第一节 Apache服务器


1.1 简介

Apache是世界排名第一的Web服务器,根据著名的Web服务器调查公司Netcraft的调查,世界
上百分之五十以上的Web服务器都在使用Apache。

纵观Apache,它为我们的网络管理员提供了丰富多彩的功能,包括目录索引、目录别名、内
容协商、可配置的HTTP错误报告、CGI程序的SetUID执行、子进程资源管理、服务器端图象
映射、重写URL、URL拼写检查以及联机手册man等。也就是说,如果您在Linux
Server上成功安装配置了Apache之后,您的计算机也将随着Apache的生效而摇身一变,成为
一台名副其实的Web Server,这种变化的确是激动人心的。伴随着自由软件发展的强大动力
,我们有理由相信Apache的未来是一片光明的。
在Internet时代,外部主页的发布已经成为树立公司形象的一个重要手段,而内部主页也成
为公司管理的主要方式。但是,要想实现这些功能,首先应该把我们的Linux Server配置成
为一台强大的Web
Server。时至今日,全球应用最广泛的Web服务器软件就是Apache,本章将详细介绍如何配
置Apache服务器。希望各位同仁能够通过阅读本片文章达到理论实践双丰收的目的,在很短
的时间里迅速成为一名出色的网络管理员。


1.2 所需资源

1.2.1 所需包
RedHat6.2 服务器安装

1.2.2 所需配置文件
/etc/httpd/conf/httpd.conf 系统自带,管理员配置
/etc/httpd/conf/access.conf 系统自带,不需要修改
/etc/httpd/conf/srm.conf 系统自带,不需要修改


1.3 配置方案

/etc/httpd/conf/httpd.conf
说明:apache主配置文件
源文件:
ServerType standalone
   #定义WebServer的启动方式为standalone,以增强其对大量访问的及时响应性
ServerRoot "/etc/httpd"
   #指定包含httpd服务器文件的目录
LockFile /var/lock/httpd.lock
PidFile /var/run/httpd.pid
ScoreBoardFile /var/run/httpd.scoreboard
Timeout 300
   #响应超时量,单位为秒
KeepAlive On
   #允许用户建立永久连接
MaxKeepAliveRequests 100
KeepAliveTimeout 15
MinSpareServers 5
   #要保留的空闲服务器进程的最小值
MaxSpareServers 20
   #要保留的空闲服务器进程的最大值
StartServers 8
   #系统启动时的守护进程数
MaxClients 150
   #所能提供服务的最大客户端编号,大于它的部分被放入请求队列
MaxRequestsPerChild 100
LoadModule vhost_alias_module modules/mod_vhost_alias.so
LoadModule env_module     modules/mod_env.so
LoadModule config_log_module modules/mod_log_config.so
LoadModule agent_log_module  modules/mod_log_agent.so
LoadModule referer_log_module modules/mod_log_referer.so
LoadModule mime_module    modules/mod_mime.so
LoadModule negotiation_module modules/mod_negotiation.so
LoadModule status_module   modules/mod_status.so
LoadModule info_module    modules/mod_info.so
LoadModule includes_module  modules/mod_include.so
LoadModule autoindex_module  modules/mod_autoindex.so
LoadModule dir_module     modules/mod_dir.so
LoadModule cgi_module     modules/mod_cgi.so
LoadModule asis_module    modules/mod_asis.so
LoadModule imap_module    modules/mod_imap.so
LoadModule action_module   modules/mod_actions.so
LoadModule userdir_module   modules/mod_userdir.so
LoadModule alias_module    modules/mod_alias.so
LoadModule rewrite_module   modules/mod_rewrite.so
LoadModule access_module   modules/mod_access.so
LoadModule auth_module    modules/mod_auth.so
LoadModule anon_auth_module  modules/mod_auth_anon.so
LoadModule db_auth_module   modules/mod_auth_db.so
LoadModule digest_module   modules/mod_digest.so
LoadModule proxy_module    modules/libproxy.so
LoadModule expires_module   modules/mod_expires.so
LoadModule headers_module   modules/mod_headers.so
LoadModule usertrack_module  modules/mod_usertrack.so
LoadModule setenvif_module  modules/mod_setenvif.so
LoadModule perl_module    modules/libperl.so
LoadModule php3_module    modules/libphp3.so
ClearModuleList
AddModule mod_vhost_alias.c
AddModule mod_env.c
AddModule mod_log_config.c
AddModule mod_log_agent.c
AddModule mod_log_referer.c
AddModule mod_mime.c
AddModule mod_negotiation.c
AddModule mod_status.c
AddModule mod_info.c
AddModule mod_include.c
AddModule mod_autoindex.c
AddModule mod_dir.c
AddModule mod_cgi.c
AddModule mod_asis.c
AddModule mod_imap.c
AddModule mod_actions.c
#AddModule mod_speling.c
AddModule mod_userdir.c
AddModule mod_alias.c
AddModule mod_rewrite.c
AddModule mod_access.c
AddModule mod_auth.c
AddModule mod_auth_anon.c
AddModule mod_auth_db.c
AddModule mod_digest.c
AddModule mod_proxy.c
AddModule mod_expires.c
AddModule mod_headers.c
AddModule mod_usertrack.c
AddModule mod_so.c
AddModule mod_setenvif.c
AddModule mod_perl.c
AddModule mod_php3.c
Port 80
   #定义服务器所使用的TCP的端口号
User nobody
Group nobody
   #以上两行是分配给httpd的新用户的文件权限,出于安全的考虑把
   它们的权限设置成为最低。
ServerAdmin root@weboa.com.cn
   #设置Web管理员的邮件地址
ServerName WebOA
   #定义客户端从服务器读取数据时返回给客户端的主机名,其缺省值
   是localhost,第一次安装Linux的时候经常这里出错。
DocumentRoot "/home/weboa/jakarta-tomcat/webapps/weboa"
   #设置所有Apache文档的根目录,比如说,用户对
   http://www.weboa.com.cn/index.html?..肭螅珹pache对它
   的响应是/home/weboa/jakarta-tomcat/webapps/weboa/index.html
<Directory />
   Options FollowSymLinks
   AllowOverride None
</Directory>
<Directory "/home/httpd/html">
   Options Indexes Includes FollowSymLinks
   AllowOverride None
   Order allow,deny
   Allow from all      # 允许所有人访问
</Directory>
UserDir public_html
DirectoryIndex index.html index.htm index.shtml index.cgi
   #设置多种成功访问主页的方式,为的是提高系统的容错性
AccessFileName .htaccess
<Files ~ "^\.ht">
   Order allow,deny
   Deny from all
</Files>
UseCanonicalName On
TypesConfig /etc/mime.types
DefaultType text/plain
<IfModule mod_mime_magic.c>
   MIMEMagicFile share/magic
</IfModule>
HostnameLookups Off
ErrorLog /usr/httpd/log/error_log
LogLevel warn
   #定义那些错误类型被记录到错误日志中
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\""
combined
   #所有的LogFormat都用来定义日志中的条目
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
CustomLog /usr/httpd/log/access_log common
ServerSignature On
Alias /icons/ "/home/httpd/icons/"
#定义虚拟主机目录与系统目录的对应关系
<Directory "/home/httpd/icons">
   Options Indexes MultiViews
   AllowOverride None
   Order allow,deny
   Allow from all
</Directory>
ScriptAlias /cgi-bin/ "/home/httpd/cgi-bin/"
#定义CGI目录
<Directory "/home/httpd/cgi-bin">
   AllowOverride None
   Options ExecCGI
   Order allow,deny
   Allow from all
</Directory>
IndexOptions FancyIndexing
AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip
AddIconByType (TXT,/icons/text.gif) text/*
AddIconByType (IMG,/icons/image2.gif) image/*
AddIconByType (SND,/icons/sound2.gif) audio/*
AddIconByType (VID,/icons/movie.gif) video/*
AddIcon /icons/binary.gif .bin .exe
AddIcon /icons/binhex.gif .hqx
AddIcon /icons/tar.gif .tar
AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip
AddIcon /icons/a.gif .ps .ai .eps
AddIcon /icons/layout.gif .html .shtml .htm .pdf
AddIcon /icons/text.gif .txt
AddIcon /icons/c.gif .c
AddIcon /icons/p.gif .pl .py
AddIcon /icons/f.gif .for
AddIcon /icons/dvi.gif .dvi
AddIcon /icons/uuencoded.gif .uu
AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl
AddIcon /icons/tex.gif .tex
AddIcon /icons/bomb.gif core
AddIcon /icons/back.gif ..
AddIcon /icons/hand.right.gif README
AddIcon /icons/folder.gif ^^DIRECTORY^^
AddIcon /icons/blank.gif ^^BLANKICON^^
DefaultIcon /icons/unknown.gif
ReadmeName README
HeaderName HEADER
AddEncoding x-compress Z
AddEncoding x-gzip gz tgz
AddLanguage en .en
AddLanguage fr .fr
AddLanguage de .de
AddLanguage da .da
AddLanguage el .el
AddLanguage it .it
LanguagePriority en fr de
<IfModule mod_php3.c>
   AddType application/x-httpd-php3 .php3
   AddType application/x-httpd-php3-source .phps
</IfModule>
<IfModule mod_php.c>
   AddType application/x-httpd-php .phtml
</IfModule>
AddType application/x-tar .tgz
AddType text/html .shtml
AddHandler server-parsed .shtml
AddHandler imap-file map
BrowserMatch "RealPlayer 4\.0" force-response-1.0
BrowserMatch "Java/1\.0" force-response-1.0
BrowserMatch "JDK/1\.0" force-response-1.0
<IfModule mod_perl.c>
   Alias /perl/ /home/httpd/perl/
<Location /perl>
   SetHandler perl-script
   PerlHandler Apache::Registry
   Options +ExecCGI
</Location>
</IfModule>
Alias /doc/ /usr/doc/
<Location /doc>
   order deny,allow
   deny from all
   allow from localhost
   Options Indexes FollowSymLinks
</Location>
include /etc/httpd/conf/tomcat-apache.conf
Alias /netcard "/home/weboa/jakarta-tomcat/webapps/weboa/net_card"
<Directory "/home/weboa/jakarta-tomcat/webapps/weboa/net_card">
   Options Indexes FollowSymLinks
   allow from all
</Directory>
CacheSize 5
#定义缓存区大小,以KB为单位。可以根据需要和硬盘空间大小进行设置
CacheGcInterval 4
#每隔4小时检查缓存区,如果已经超过CacheSize就删除文件
CacheMaxExpire 24
#HTTP文件最多被保持24小时
CacheLastModifiedFactor 0.1
#定义HTTP文件失效期,缺省是0.1 ,意思是说失效期=离最近一次修改的时间X<factor>,
比如离最近一次修改的时间是5小时,那么失效期就是5X0.1=0.5小时
CacheDefaultExpire 1
#这一指令提供一个缺省的时间(小时)来销毁缓存的文件,这些文件的最后更改时间不详
。CacheMaxExpire 命令不覆盖这一设置


## 以下是如何对一个目录进行登陆控制的方法 ##

在/etc/httpd/conf/httpd.conf中添加以下内容:
Alias /weboa/ "/home/weboa/"
<Directory "/home/weboa">
   Options Indexes MultiViews
   AllowOverride authconfig
   Order allow,deny
   Allow from all
</Directory>

在/home/weboa目录下建立.htaccess文件
   authname "shared files"
   authtype basic
   authuserfile /etc/httpd/conf/passwd
require valid-user

在/etc/httpd/conf目录下执行命令生成认证文件
htpasswd -c thj thj #创建认证文件和第一个名和密码
htpasswd weboa weboa #添加其他用户名和密码



### 以下是做虚拟主机的实现方法 ###

需要在/etc/httpd/conf/httpd.conf中添加下列内容:
Alias /webadmin/ "/home/weboa/webadmin/html/"
<Directory "/home/weboa/webadmin/html">
   Options Indexes MultiViews
   AllowOverride None
   Order allow,deny
   Allow from all
</Directory>
NameVirtualHost 192.168.0.1 #虚拟域名的DNS服务器
ServerAdmin root@weboa.com.cn #网管邮件地址
DocumentRoot /home/weboa/webadmin/html/ #服务器页面目录
ServerName webadmin.weboa.com.cn #服务器名称
需要在/var/named/name2ip.conf中添加的内容:
webadmin   IN   A   192.168.0.1

1.4 测试及管理办法

1.4.1 测试方法
1.每当管理员更改了Apache的设置之后,都应执行 /etc/rc.d/init.d/httpd restart使得
更改生效。

1.4.2 管理方法
1. Apache提供大量的日志文件,当Apache出错的时候,管理员可以根据htppd.conf中的
ErrorLog定义的路径来诊断。具体方法是:
tail -f /var/log/httpd/apache/error_log


1.5 小 结

Web服务是Internet服务器最基本的服务,Linux发行版中包含的Apache软件是性能优良的
Web服务器,也是Internet上最流行的Web服务器,由于它时刻都经历着无数使用者的测试,
所以现行的Apache的默认选项已经是十分适合我们大家的了,你只需要更改其中几个与当前
应用环境紧密相关
的选项就可以达到你的目的了。

 中小企业服务器配置方案 第三章(2)
蓝森林 http://www.lslnet.com 2001年4月24日 23:13


作 者: 汤海京


( E-mail:thjthj@263.net )

第三章 Web服务器

第二节 Tomcat服务器


2.1 简介

Jsp是sun在servlet基础上发展而来的一种新的web开发工具,在国外Ejb+jsp/servlet+应用
服务器+数 据库已经已经成为电子商务站点的流行架构。tomcat3.1实现了最新的
servlet2.2和jsp1.1标准,sun也 是推荐使用tomcat,本文介绍tomcat3.1在RedHat下的安装



2.2 所需资源

2.2.1 所需包
1. jdk1_2_2-linux-i386.tar.gz
http://java.sun.com
2. jakarta-tomcat.tar.gz,
http://jakarta.apache.org/builds/to...lease/v3.1/bin/
3. mod_jserv.so
http://jakarta.apache.org/builds/to...bin/linux/i386/

2.2.2 所需配置文件
/etc/profile
/usr/local/jakarta-tomcat/conf/server.xml
/usr/local/jakarta-tomcat/conf/tomcat.properties


2.3 安装步骤

安装JDK
cd /usr/local
tar zxvf /root/jdk1_2_2-linux-i386.tar.gz
mv jdk1.2.2 jdk

修改/etc/profile环境文件
添加以下内容:
JAVA_HOME=/usr/local/jdk
CLASSPATH=/usr/local/jdk/lib:/usr/local/jre/lib
PATH=$PAHT:/usr/local/jdk/bin:/usr/local/jre/bin
  export JAVA_HOME
  export CLASSPATH

安装Tomcat
cd /usr/local
tar zxvf /root/jakarta-tomcat.tar.gz

整合Apache和Tomcat
cd /home/httpd
mkdir libexec
cp /root/mod_jserv.so /home/httpd/libexec
cp /usr/local/jakarta-tomcat/conf/tomcat.conf /etc/httpd/conf
vi /etc/httpd/conf/httpd.conf
在文件末尾添加以下内容:
Include /etc/httpd/conf/tomcat-apache.conf

2.3 配置和管理TOMCAT

1. /usr/local/jakarta-tomcat/conf/server.xml


2.4 测试及管理办法

2.4.1 测试方法

1.在服务器上任意目录下键入java,看看有没有执行

2.浏览http://192.168.0.1:8080看看有没有那...男∶ň统衫。?/a>

3.浏览http://192.168.0.1/examples/jsp/ind...t是否成功整和。


2.5 其他参考资料

1. 关于tomcat的信息请到http://jakarta.apache.org

2. 其他jsp方面的信息可以到http://java.sun.com/jsp


2.6 小 结

Tomcat和Jserv之间的区别是什么? Tomcat==Jserv,不是吗?

这是一种普通的误解。Jserv是被建立为与阿帕奇一起使用的Servlet API 2.0兼容的容器。
 Tomcat是完全重写并且兼容Servlet API 2.2和JSP 1.1的一种容器。

Tomcat使用了一些Jserv的代码,尤其是Jserv的阿帕奇服务器适配器(adapter), 但是相似
的地方仅此而已。



 中小企业服务器配置方案 第三章(3)
蓝森林 http://www.lslnet.com 2001年4月24日 23:19


作 者: 汤海京


( E-mail:thjthj@263.net )

第三章 Web服务器

第三节 Apache+Jserv整和


一、需要的源码包:

jdk-1_2_2_006-linux-i386.tar.gz
jsdk20-solaris2-sparc[1].tar.Z
ApacheJServ-1.1.2.tar.gz


二、安装过程


安装jdk1.2.2
解开压缩包
tar xvzf jdk1_2_2_006-linux-i386.tar.gz

目录的处理
ln -s jdk1.2.2 jdk
ln -s jdk/jre jre

(3) 设置$JAVA_HOME,$CLASSPATH
vi /root/.bash_profile
加入:
JAVA_HOME=/usr/local/jdk
export JAVA_HOME
CLASSPATH=/usr/local/jdk/lib:/usr/local/jre/lib
export CLASSPATH
PATH=$PATH:/usr/local/jdk/bin:/usr/local/jre/bin
注:JDK的安装到此结束。



安装JSDK
tar zxvf jsdk20-solaris2-sparc[1].tar.Z

将产生的JSDK2.0目录移到 /usr/local/JSDK2.0
mv JSDK2.0 /usr/local/JSDK2.0
注:JSDK的安装到此结束。



Apache和Jserv的静态混合编译
所谓的静态编译是指将Jserv编译进apache里
tar xvzf apache_1.3.12.tar.gz
tar xvzf ApacheJServ-1.1.2.tar.gz

cd apache_1.3.12
./configure --prefix=/usr/local/apache

配置apache jserv编译参数
cd ../ApacheJServ-1.1.2
./configure \
--prefix=/usr/local/jserv \
--with-apache-src=../apache_1.3.12 \
--with-jdk-home=/usr/local/ jdk1.2.2 \
--with-java-platform=2 \
--with-JSDK=/usr/local/JSDK2.0/lib/jsdk.jar
make
make install

编译apache和apache jserv
cd ../apache_1.3.12
./configure \
      --prefix=/usr/local/apache \
      --activate-module=src/modules/jserv/libjserv.a
make
make install

执行/usr/local/apache/bin/httpd -l检查一下mod_jserv是否编译进apache了

更改配置文件 /usr/local/apache/conf/httpd.conf
添加 Include /usr/local/jserv/etc/jserv.conf

更改配置文件 /usr/local/jserv/etc/jserv.conf
SetHandler jserv-status
order deny,allow
deny from all
加入你的信任主机allow from xxxx
这样在信任主机上通过http://yourserver/jserv/(注意后面这个"/"不能少)可以看到你的
apache jserv的配置信息。
接着在/usr/local/jserv/servlets下放入你自己的servlet class实验一下效果吧,测试结
果表明在redhat6.2下没有中文显示问题,一切ok!
其他关于servlet zone的设置、load balance等等请参考apache jserv文档和
java.apache.org网站

注:Apache和Jserv混合编译到此结束

三、最后的测试:

1. 启动apache:/usr/local/apache/bin/apachectl start

2. 用浏览器测试http://yourserver/servlets/IsItWorking
看见了Yes,It's working!了吗?你成功了!!

 中小企业服务器配置方案 第三章(4)
蓝森林 http://www.lslnet.com 2001年5月8日 00:19


作 者: 汤海京



( E-mail:thjthj@263.net )

第三章 Web服务器

第四节 Linux下Apache、php3、MySQL的整合


一、所需的安装包

  apache_1.3.19.tar.gz
  php-4.0.4.tar.gz
  mysql-3.23.32.tar.gz
  注意:以上均为源代码而非RPM包


二、软件安装


安装MySQL
解开压缩包
cd /usr/local
  tar -zvxf mysql-3.23.32.tar.gz

将产生mysql-3.23.32目录移到/usr/local/mysql
mv mysql-3.23.32 /usr/local/mysql

编译MySQL
cd /usr/local/mysql
./configure --prefix=/usr/local/mysql
make
make install

安装数据库文件
/usr/local/mysql/scripts/mysql_install_db
/usr/local/mysql/bin/safe_mysqld &

MySQL授权操作
MySQL的存取控制技术功能强大,比Postgres更加具有灵活性。MySQL采用的用户名和密码的
加密算法与Unix系统不尽相同,其用户名可以长达16个字符。
先以root登陆MySQl,然后在MySQL的提示符下键入grant all privileges on *.* to
thj@localhost identified by 'thj' with grant option; 这样,无论用户thj从什么地方
登陆到这台服务器都可以使用MySQL。

MySQL数据库简单操作语句
创建数据库
   命令:create database 数据库名;
删除数据库
   命令:drop database 数据库名;
查询MySQL中都有什么数据库
   命令:show databases;
更改当前使用的数据库
   命令:use tbl_name
创建数据表
   命令:create table tbl_name ( column_specs );
   说明:tbl_name 数据表名 column_specs 表中列的说明
查询指定的数据表的结构
   命令:describe tbl_name;
查询数据库中都有什么数据表
   命令:show tables;
增加新记录
   命令:insert into tbl_name (col_name1,col_name2,…) values(values1,
values2,….)
   说明:insert语句简单易用,但是它也有一个缺陷,就是每次只能插入一条记录。
批量装载数据
   命令:load data local infile "filename.txt" into table tbl_name;
   说明:MySQl的版本不得低于3.22.15,否则load data local不起作用。该语句实际
上是调用了/usr/bin/mysqlimport。
检索信息
   命令:select 要选择的东西 from 一个或多个表 where 数据必须满足的条件
注:在MySQL中,每键入一条命令之后,在命令行的结尾都要敲入";",标志是一条命令,
或者敲回车之后再敲go,提示系统执行上边的命令;另外,在多数关于MySQL的参考书中,
命令都为大写,实际上小写也可以;还有,use语句可以不加";",这是所有MySQL语言中唯
一一个不需要加"
;"就可以执行的语句。
注:MySQL的安装到此结束



Apache、PHP3的混合编译
解开压缩包
   cd /usr/local
tar xvzf apache_1.3.19.tar.gz
tar xvzf php-4.0.4.tar.gz
mv apache_1.3.19.tar.gz apache
mv php-4.0.4.tar.gz php

把Apache的安装目录定为/usr/local/apache
cd apache
./configure --prefix=/usr/local/apache --with-port=8000

配置支持MySQL、作为Apache功能模块、跟踪变量有效
cd ../php
./configure --with-mysql=/usr/local/mysql --with- apache=../apache
--enable-track-vars -with-pgsql=/usr/lib/pgsql --prefix=/usr/local/apache/php
-with-config-file-path=/usr/local/apache/php
   make
make install
注:PHP的安装到此结束

配置Apache,加入PHP4的模块
cd ../apache
cp /usr/local/php/libs/libphp4.a \
/usr/local/apache/src/modules/php4
./configure --prefix=/usr/local/apache --activate-
module=src/modules/php4/libphp4.a --with-port=8000
make
make install
注:APACHE安装完毕



更改配置
把php.ini文件拷到/usr/local/apache/php目录下.
cd ../php
cp php.ini-dist /usr/local/apache/php/php4.ini

更改Apache的配置文件
cd /usr/local/apache/conf
vi httpd.conf
找到 AddType application/x-httpd-php .php4 把它前头的#号给删了当然也可加一行
AddType application/x-httpd-php3.asp 这样用FrontPage编辑会方便一点。
最后运行/usr/local/apache/bin/apachectl start启动apache进程


 中小企业服务器配置方案 第四章(1)
蓝森林 http://www.lslnet.com 2001年5月8日 00:22


作 者: 汤海京



( E-mail:thjthj@263.net )

第四章 邮件服务器

第一节 Sendmail服务器


1.1 简介

邮件服务是用户所需要的最重要的网络服务。Web的通信量很大,但邮件主要用于个人之间
的通信,而人-人的通信是商务的基础。没有邮件服务的网络是不完整的网络。换句话说,
如果不能给用户提供完整的TCP/IP下的邮件支持,这样的网络操作系统也不值得信赖。

配置sendmail是一件大而复杂的工作,但也不完全都是这样,与其他一些网络服务器系统只
安装SMTP服务器软件的情况相比,Linux已经配置好了多数的设置。在多数系统下,缺省配
置都能良好的运行。我将在本章中给出一些配置的建议,主要的一些配置参数建议大家不要
随意更改。


1.2 所需资源

1.2.1 所需包
RedHat6.2 服务器安装

1.2.2 所需配置文件
/etc/sendmail.cf 系统自带,管理员配置
/etc/sendmail.cw 系统自带,管理员配置


1.3 配置方案


/etc/sendmail.cf
说明:sendmail主配置文件
控制sendmail运行时的配置。完整的sendmail配置应该包括7部分:
Local Info(本地信息):这部分定义了本地主机的信息
Options(选项):用来设置定义sendmail环境的选项。
Message Precedence(消息的优先级):sendmail消息优先级
Trusted Users(信任用户):定义发送邮件时允许改变发送地址的用户
Format of Headers(头格式):定义在sendmail中插入的邮件头信息
Rewriting Rules(改写规则):这部分保存着改写邮件地址命令使用该命令可以将邮件地
址从用户邮件程序的地址形式改写为邮件发送程序所需要的地址形式。
Mailer Definition(邮寄者说明):定义发送邮件的程序,改写规则是邮件者使用的规则
,在本部分定义。
源文件:
V8/Berkeley
Cwlocalhost
Fw /etc/sendmail.cw
CP.
DYuunet.uu.net
CPUUCP
DS mail.weboa.com.cn
CO @ % !
C..
C[[
Kmailertable hash -o /etc/mail/mailertable
#制作db库
Kdomaintable hash -o /etc/mail/domaintable
Kgenerics hash -o /etc/mail/genericstable
Kvirtuser hash -o /etc/mail/virtusertable
Kaccess hash -o /etc/mail/access
Kmxserved bestmx -z: -T
Kresolve host -a -T
FR-o /etc/mail/relay-domains
DR
DH
Kdequote dequote
CM root
DM mail.weboa.com.cn
#设置邮件服务器名称
DnMAILER-DAEMON
CPREDIRECT
DZ8.9.3
O SevenBitInput=False
O EightBitMode=pass8
O AliasWait=10
O AliasFile=/etc/mail/aliases,/etc/mail/majordomo
O MinFreeBlocks=100
#规定最小空闲块
O MaxMessageSize=1000000
#指定用户一次最大发送的邮件大小
O BlankSub=.
O HoldExpensive=False
O DeliveryMode=background
O AutoRebuildAliases=true
O TempFileMode=0600
O HelpFile=/etc/mail/sendmail.hf
O SendMimeErrors=True
O ForwardPath=$z/.forward.$w:$z/.forward
O ConnectionCacheSize=2
O ConnectionCacheTimeout=5m
O UseErrorsTo=False
O LogLevel=9
#记录到日志文件的事件等级
O CheckAliases=False
O OldStyleHeaders=True
O PrivacyOptions=authwarnings,noexpn,novrfy
O QueueDirectory=/var/spool/mqueue
O Timeout.queuereturn=4d
O Timeout.queuewarn=4h
O SuperSafe=True
O StatusFile=/var/log/sendmail.st
O DefaultUser=8:12
O SmtpGreetingMessage=$j Sendmail $v/$Z; $b
O UnixFromLine=From $g $d
O OperatorChars=.@!^/[]+
Pfirst-class=0
Pspecial-delivery=100
Plist=-30
Pbulk=-60
Pjunk=-100
Ft -o /etc/mail/sendmail.ct
Troot
Tdaemon
Tuucp
R$* $#error $@ 5.7.1 $: "550 Relaying denied"
#以上是Linux默认的选项,不允许客户机使用mail服务器收发邮件,如果允许客户机收发
的话应将上边一句话改成
R$- $@ok
#注意:中间是两个tab键
#一下是邮件头信息
H?P?Return-Path: <$g>
HReceived: $?sfrom $s $.$?_($?s$|from $.$_)
H?D?Resent-Date: $a
H?D?Date: $a
H?F?Resent-From: $?x$x <$g>$|$g$.
H?F?From: $?x$x <$g>$|$g$.
H?x?Full-Name: $x
H?M?Resent-Message-Id: <$t.$i@$j>
H?M?Message-Id: $t.$i@$j
#以上是邮件头信息

管理员需要执行touch /etc/mail/aliases 和 touch /etc/mail/majordomo来创建两个文件
,然后重新启动sendmail,利用sendmail.cf里生成db库的配置来生成两个库文件:
aliases.db和majordomo.db;当然,管理员也可以通过执行makemap hash mailertable <
mailertable来生成新的db,这样可以不重新启动。


1.4 测试及管理办法

1.4.1 测试方法


管理员可以通过执行/etc/rc.d/init.d/sendmail restart来使更改的配置生效。

管理员通过执行 fetchmail -u yourname yourserver 来为没有邮件用户制定他们的口令,
用户需要在客户端作相应的设置。

管理员应该打开pop3服务,即更改配置文件

管理员在服务器上可以通过执行 echo test | /usr/sbin/sendmail \ - v
thj@weboa.com.cn来测试建立好的邮件用户是否能够正常工作。

1.5 小结

其实我们只要设置其中的几个地方就可以实现mail服务器的功能,这是因为sendmail有很强
的适用性,并且它是在不断更新的。所以现在提供给我们的sendmail的配置方案已经经过实
践检验,不需要管理员做太大改动,就可以实现强大的sendmail功能。


 中小企业服务器配置方案 第四章(2)
蓝森林 http://www.lslnet.com 2001年5月8日 00:23


作 者: 汤海京



( E-mail:thjthj@263.net )

第四章 邮件服务器

第二节 Qmail服务器


2.1 简介

Qmail是一种可以完全替代Sendmail-binmail体系的新一代Unix邮件系统.Qmail与Sendmail
比起来有很多特性,包括:

安全
----Qmail将Mail处理过程分为多个过程,尽力避免用root用户运行.同时Qmail禁止对特权用
户(root,deamon等)直接发
信.
可靠
----Qmail的直接投递保证Email在投递过程中不会丢失. Qmail同时支持新的更可靠的信箱
格式Maildir,保证系统在突然崩溃情况下不至破坏整个信箱.
高效
----在运行于奔腾的BSD/OS上,Qmail每天可以轻松的投递200000封信件.
简单
----Qmail要比其他的Internet Mail系统小得多.Qmail通过统一的向前机制完成
forwarding,alias和maillist等功能,Qmail使用简单高效队列来处理投递.Qmail-smtpd可以
由inetd启动,节省了一定资源.

Qmail支持:

host and user masquerading
full host hiding
virtual domains
null clients
list-owner rewriting
relay control
double-bounce recording
arbitrary RFC 822 address lists
cross-host mailing list loop detection

2.2 所需资源

2.2.1 所需包
qmail-1.03.tar.gz       Qmail基本系统包
ucspi-tcp-0.88.tar.gz     tcpserver等服务程序
daemontools-0.70.tar.gz    监视工具
checkpassword-0.90.tar.gz   pop3验证用户程序
vpopmail-4.9.8.tar.gz     虚拟域用户pop3支持
vqsignup-0.4          web方式用户注册
sqwebmail-1.2.4.tar.gz     webmail
qmailadmin-0.42.tar.gz     虚拟域web方式管理
ezmlm-0.53.tar.gz       邮件列表管理
autorespond-1.0.0.tar.gz    自动回复程序

2.2.2 下载网址
http://www.qmail.org
http://www.inter7.com/qmail


2.3 安装过程


安装Qmail基本包
添加Qmail所必须的用户和组
mkdir /var/qmail
groupadd nofiles
useradd -g nofiles -d /var/qmail/alias alias
useradd -g nofiles -d /var/qmail qmaild
useradd -g nofiles -d /var/qmail qmaill
useradd -g nofiles -d /var/qmail qmailp
groupadd qmail
useradd -g nofiles -d /var/qmail qmailq
useradd -g nofiles -d /var/qmail qmailr
useradd -g nofiles -d /var/qmail qmails

安装Qmail包
cd /usr/local/src
tar xvzf qmail-1.03.tar.gz
cd qmail-1.03
make setup check
./config-fast $HOSTNAME
# 设定Qmail服务器主机名
cd ~alias;touch .qmail-postmaster .qmail-mailer-\
daemon .qmail-root
sed 's/Mailbox/Maildir\//' /var/qmail/boot/home >\
/var/qmail/rc
chmod 755 /var/qmail/rc



安装tcpserver等服务程序
cd /usr/local/src
tar xvzf ucspi-tcp-0.88.tar.gz
cd ucspi-tcp-0.88
make
make setup check

安装pop3验证用户程序
cd /usr/local/src
tar xvzf checkpasswd-0.90.tar.gz
cd checkpasswd-0.90
make
make setup check
chmod og-rx /bin/checkpassword


安装虚拟域用户pop3支持
groupadd vchkpw
useradd -g vchkpw vpopmail
mkdir ~vpopmail/etc
echo "127.0.0.:allow,RELAYCLIENT=\"\"" > ~vpopmail/etc/tcp.smtp
echo "192.168.0.:allow,RELAYCLIENT=\"\"" >> ~vpopmail/etc/tcp.smtp
echo ":allow" > /etc/tcp.smtp
/usr/local/bin/tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp
cd /usr/local/src
tar xvzf vpopmail-4.9.8.tar.gz
cd vpopmail-4.9.8
make clean
./configure --enable-hardquota=10485760 --enable-deliver-filter=y
make
make install-strip
cd /home/vpopmail/bin
./vadddomain weboa.com.cn weboa
./vadduser thj@weboa.com.cn thj


更改Sendmail为Qmail
killall -TERM sendmail
mv /usr/lib/sendmail /usr/lib/sendmail.org
mv /usr/sbin/sendmail /usr/sbin/sendmail.org
mv /etc/rc.d/init.d/sendmail /etc/rc.d/init.d/sendmail.org
ln -s /var/qmail/bin/sendmail /usr/lib/sendmail
ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail
cp /root/qmail/qmail-start /etc/rc.d/init.d/ -f
cp /root/qmail/databytes /var/qmail/control/ -f
ln -s /etc/rc.d/init.d/qmail /etc/rc.d/rc3.d/S98qmail


制作Qmail控制脚本
#!/bin/sh
case "$1" in
start)
echo "start qmail:"
/var/qmail/rc &
echo "start smtp service:"
  /usr/local/bin/tcpserver -v -x /etc/tcp.smtp.cdb 0 smtp \
/var/qmail/bin/qmail-smtpd 2>&1 | /var/qmail/bin/splogger \
smtpd 3 &
echo "start pop3 service:"
  /usr/local/bin/tcpserver -H -R 0 pop3 /var/qmail/bin/ \
qmail-popup $HOSTNAME /home/vpopmail/bin/vchkpw \
/var/qmail/bin/qmail-pop3d Maildir & \
;;
stop)
  echo "stop qmail:"
killall -9 tcpserver
killall -9 qmail-lspawn
;;
*)
exit 1
;;
esac
exit 0


安装监视工具
cd /usr/local/src
tar zxvf daemontools-0.70.tar.gz
cd daemontools-0.70
   make
   make setup check
#执行文件将安装于/usr/local/bin中。
#安装本工具后可以用 # mkdir /var/run/qmail
          # supervise /var/run/qmail /var/qmail/rc
来启动qmail,还可以用svc来关闭或重启qmail,用svstat监视qmail运行情况


Qmail之Web解决方案
安装邮件列表管理
cd /usr/local/src
tar zxvf ezmlm-0.53.tar.gz
make
make man
make setup

安装自动回复程序
cd /usr/local/src
tar zxvf daemontools-0.70.tar.gz
gcc -Wall -o autorespond autorespond.c
cp autorespond /usr/local/bin/autorespond

安装虚拟域web方式管理
cd /usr/local/src
tar zxvf qmailadmin-0.42.tar.gz
cd qmailadmin-0.42.tar.gz
  在安装前首先要考虑满足以下几项要求:
  a.是否拥有一个vpopmail用户vchkpw
  b.cgi-bin目录的所在位置
  c.ezmlm目录的所在位置
  d.autorespond目录的所在位置
  如果能够达到以上要求,可以继续安装
  ./configure
  make
  make install-strip
  检测安装是否正确:浏览器中打开路径
  http://mail.weboa.com.cn/cgi-bin/qmailadmin,
  看根据前面设置的用户和密码是否能够成功登录进去。

安装WebMail包
cd /usr/local/src
tar zxvf sqwebmail-1.2.4.tar.gz
cd sqwebmail-1.2.4.tar.gz
./configure --without-authpam --without-authuserdb \
enable-webpass=no --without-authpwd \
--without-authshadow
   make configure-check
   make
   #当make时报错找不到db.h
   可以 cp /usr/include/db1/db.h /usr/include/db.h
   make check
   make install-strip
   make install-configure
   检测安装是否正确:浏览器中打开路径
   http://mail.weboa.com.cn/cgi-bin/sqwebmail

安装vqsignup
tar xvfz vqsignup-0.4.tar.gz
cd vqsignup-4.0
修改Makefile文件:
FLAGS=-I/home/vpopmail/include
修改-I/home/vpopmail/include指到真实的vpopmail/include目录
修改下面的这行
$(CC) $(FLAGS) -o $(BIN) $(OBJS) -L/home/vpopmail/lib -lvpopmail -lcrypt
修改 -L/home/vpopmail/lib 为真的vpopmail lib的目录

编译
make

安装
拷贝signup.cgi和signup.conf文件到cgi-bin目录下
切换目录到cgi-bin目录下
chown vpopmail signup.cgi
chgrp vchkpw signup.cgi
chmod ug+s signup.cgi
chmod ugo+r signup.conf
拷贝vqsignup_html目录到cgi-bin目录下,确信对所有用户可读
拷贝vqsignup.html文件到DocumentRoot目录下,确信能够被访问。编辑cgi-bin目录下的
vqsignup.conf文件
修改"add_domain"的所有行,加上你的真实的域,把其他的行删除掉.更改
vqsignup_text/*.html文件,使包含"result_*"的行的路径指到正确的全路经。
修改vqsignup_text目录下所有的文件,使它们只包含你想支持的域,你也可以定制这些页
面,使它们更加好看些。
修改DocumentRoot目录下vqsignup.html文件,使它只包含你想支持的域,你也可以定制这
个页面,使它更加好看些。

测试
用你的浏览器访问http://your web server/your sub dir/vqsignup.htm, 试着注册新用户
,如果成功的话,那么就恭喜你了。如果有错误,请返回安装步骤仔细查看文件的权限和
vqsignup.html里的值是否正确。

2.4 其他参考资料

Adam McKenna所编写qmail-HOWTO
http://www.flounder.net/qmail/qmail-howto.html

qmail FQA (內含于qmail 1.03 Source Code)
  http://www.qmail.org/
http://www.linuxaid.com.cn/
http://www.linuxforum.net

--
※ 来源:.天大求实 BBS bbs.tju.edu.cn.[FROM: bbs.tju.edu.cn]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店