一: Linux 网络服务配置基础

要建立一个安全Linux服务器就首先要了解Linux环境下和网络服务相关的配置文件的含义及如何进行安全的配 置。在Linux系统中,TCP/IP网络是通过若干个文本文件进行配置的,也许你需要编辑这些文件来完成联网工作,但是这些配置文件大都可以通过配置命 令linuxconf(其中网络部分的配置可以通过netconf命令来实现)命令来实现。下面介绍基本的 TCP/IP网络配置文件。

    * /etc/conf.modules 文件

    该配置文件定义了各种需要在启动时加载的模块的参数信息。这里主要着重讨论关于网卡的配置。在使用Linux做网关的情况下,Linux服务器至少需要配置两块网卡。为了减少启动时可能出现的问题,Linux内核不会自动检测多个网卡。

    对于没有将网卡的驱动编译到内核而是作为模块动态载入的系统若需要安装多块网卡,应该在“conf.modules”文件中进行相应的配置。

    若设备驱动被编译为模块(内核的模块):对于PCI设备,模块将自动检测到所有已经安装到系统上的设备;对于ISA卡,则需要向模块提供IO地址,以使模块知道在何处寻找该卡,这些信息在“/etc/conf.modules”中提供。

    例如,我们有两块ISA总线的3c509卡,一个IO地址是0x300,另一个是0x320。编辑“conf.modules”文件如下:

    这是说明3c509的驱动程序应当分别以eth0eth1的名称被加载(alias eth0eth1),并且它们应该以参数io=0x3000x320被装载,来通知驱动程序到哪里去寻找网卡,其中0x是不可缺少的。

    对于PCI卡,仅仅需要alias命令来使ethN和适当的驱动模块名关联,PCI卡的IO地址将会被自动的检测到。对于PCI卡,编辑“conf.modules”文件如下:

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

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

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

    如果用传递启动参数的方法,eth0eth1将按照启动时被发现的顺序来设置。

    * /etc/HOSTNAME 文件

    该文件包含了系统的主机名称,包括完全的域名,如:deep.openarch.com

    */etc/sysconfig/network-scripts/ifcfg-ethN 文件

    RedHat中,系统网络设备的配置文件保存在“/etc/sysconfig/network-scripts”目录下,ifcfg-eth0包含第一块网卡的配置信息,ifcfg-eth1包含第二块网卡的配置信息。

    下面是“/etc/sysconfig/network-scripts/ifcfg-eth0”文件的示例:

    若希望手工修改网络地址或在新的接口上增加新的网络界面,可以通过修改对应的文件(ifcfg-ethN)或创建新的文件来实现。

DEVICE=name    

name表示物理设备的名字

IPADDR=addr    

addr表示赋给该卡的IP地址

NETMASK=mask    

mask表示网络掩码

NETWORK=addr    

addr表示网络地址

BROADCAST=addr  

addr表示广播地址

ONBOOT=yes/no  

启动时是否激活该卡

none

无须启动协议

bootp

使用bootp协议

dhcp

使用dhcp协议

USERCTL=yes/no      

是否允许非root用户控制该设备

    */etc/resolv.conf 文件

    该文件是由域名解析器(resolver,一个根据主机名解析IP地址的库)使用的配置文件,示例如下:

    表示当提供了一个不包括完全域名的主机名时,在该主机名后添加domainname.com的后缀;“nameserver”表示解析域名时使用该地址指定的主机为域名服务器。其中域名服务器是按照文件中出现的顺序来查询的。

    */etc/host.conf 文件

    该文件指定如何解析主机名。Linux通过解析器库来获得主机名对应的IP地址。下面是一个“/etc/host.conf”的示例:

    指定主机名查询顺序,这里规定先使用DNS来解析域名,然后再查询“/etc/hosts”文件(也可以相反)

    “multi on”指定是否“/etc/hosts”文件中指定的主机可以有多个地址,拥有多个IP地址的主机一般称为多穴主机。

    “nospoof on”指不允许对该服务器进行IP地址欺骗。IP欺骗是一种攻击系统安全的手段,通过把IP地址伪装成别的计算机,来取得其它计算机的信任。

    */etc/sysconfig/network 文件

    该文件用来指定服务器上的网络配置信息,下面是一个示例:

NETWORK=yes

RORWARD_IPV4=yes

HOSTNAME=deep.openarch.com

GAREWAY=0.0.0.0

GATEWAYDEV=

NETWORK=yes/no    

网络是否被配置;

FORWARD_IPV4=yes/no    

是否开启IP转发功能

HOSTNAME=hostname hostname

表示服务器的主机名

GAREWAY=gw-ip    

gw-ip表示网络网关的IP地址

GAREWAYDEV=gw-dev  

gw-dw表示网关的设备名,如:etho

    注意:为了和老的软件相兼容,“/etc/HOSTNAME”文件应该用和HOSTNAME=hostname相同的主机名。

    */etc/hosts 文件

    当机器启动时,在可以查询DNS以前,机器需要查询一些主机名到IP地址的匹配。这些匹配信息存放在/etc/hosts文件中。在没有域名服务器情况下,系统上的所有网络程序都通过查询该文件来解析对应于某个主机名的IP地址。

    下面是一个“/etc/hosts”文件的示例:

    最左边一列是主机IP信息,中间一列是主机名。任何后面的列都是该主机的别名。一旦配置完机器的网络配置文件,应该重新启动网络以使修改生效。使用下面的命令来重新启动网络:

    * /etc/inetd.conf 文件

    众所周知,作为服务器来说,服务端口开放越多,系统安全稳定性越难以保证。所以提供特定服务的服务器应该尽可能开放提供服务必不可少的端口,而将与服务器 服务无关的服务关闭,比如:一台作为wwwftp服务器的机器,应该只开放8025端口,而将其他无关的服务如:finger auth等服务关掉,以减少系统漏洞。

    inetd,也叫作超级服务器,就是监视一些网络请求的守护进程,其根据网络请求来调用相应的服务进程来处理连接请求。inetd.conf则是inetd的配置文件。inetd.conf文件告诉inetd监听哪些网络端口,为每个端口启动哪个服务。

    在任何的网络环境中使用Linux系统,第一件要做的事就是了解一下服务器到底要提供哪些服务。不需要的那些服务应该被禁止掉,最好卸载掉,这样黑客就少了一些攻击系统的机会。

    查看“/etc/inetd.conf”文件,了解一下inetd提供哪些服务。用加上注释的方法(在一行的开头加上#号),禁止任何不需要的服务,再给inetd进程发一个SIGHUP信号。

    第一步:把文件的许可权限改成600

    第二步:确信文件的所有者是root

    第三步:编辑“inetd.conf”文件(vi /etc/inetd.conf),禁止所有不需要的服务,如:ftp telnet shell login exectalkntalk imap pop-2pop-3fingerauth,等等。

    如果你觉得某些服务有用,可以不禁止这些服务。但是,把这些服务禁止掉,系统受攻击的可能性就会小很多。改变后的“inetd.conf”文件的内容如下面所示:

    注意:改变了“inetd.conf”文件之后,别忘了给inetd进程发一个SIGHUP信号(killall –HUP inetd)。

    第四步:

    为了保证“inetd.conf”文件的安全,可以用chattr命令把它设成不可改变。把文件设成不可改变的只要用下面的命令:

    这样可以避免“inetd.conf”文件的任何改变(意外或是别的原因)。一个有“i”属性的文件是不能被改动的:不能删除或重命名,不能创建这个文件 的链接,不能往这个文件里写数据。只有系统管理员才能设置和清除这个属性。如果要改变inetd.conf文件,你必须先清除这个不允许改变的标志:

    但是对于诸如sendmailnamedwww等服务,由于它们不象fingertelnet等服务,在请求到来时由inet守护进程启动相应的进程提供服务,而是在系统启动时,作为守护进程运行的。

    而对于redhat linux,提供了一个linuxconfig命令,可以通过它在图形界面下交互式地设置是否在启动时运行相关服务。也可以通过命令来设置是否启动时启动 某个服务,如:[root@deep]# chkconfig –level 35 named off

 

二:各种服务的配置

A: DNS服务器的设置
1
编辑/etc/named.conf
// generated by named-bootconf.pl

options {
directory "/var/named";
/*
* If there is a firewall between you and nameservers you want
* to talk to, you might need to uncomment the query-source
* directive below. Previous versions of BIND always asked
* questions using port 53, but BIND 8.1 uses an unprivileged
* port by default.
*/
// query-source address * port 53;
}
;

//
// a caching only nameserver config
//
controls {
inet 127.0.0.1 allow { localhost; }
keys { rndckey; };
};
zone "." IN {
type hint;
file "named.ca";
}
;

zone "mydomain.com" IN {
type master;
file "named.mydomain.com";
allow-update { none; }
;
};

zone "1.168.192.in-addr.arpa" IN {
type master;
file "named.mydomain.com.rev";
allow-update { none; }
;
};

zone "localhost" IN {
type master;
file "localhost.zone";
allow-update { none; }
;
};

zone "0.0.127.in-addr.arpa" IN {
type master;
file "named.local";
allow-update { none; }
;
};

include "/etc/rndc.key";


2. 编辑正向解析文件/var/named/named.mydomain.com
$TTL 86400
@ IN SOA my.mydomain.com. root.my.mydomain.com. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS my.mydomain.com.
IN MX 10 my.mydomain.com.

my IN A 192.168.1.50
www IN CNAME my.mydomain.com.
ftp IN CNAME my.mydomain.com.
smtp IN CNAME my.mydomain.com.
pop3 IN CNAME my.mydomain.com.

3. 编辑反向解析文件/var/named/named.mydomain.com.rev
$TTL 86400
@ IN SOA my.mydomain.com. root.ns.mydomain.com. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS my.mydomain.com.

50 IN PTR my.mydomain.com.

4. 编辑/var/named/named.local文件
$TTL 86400
@ IN SOA my.mydomain.com. root.my.mydomain.com. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS my.mydomain.com.

1 IN PTR localhost.

5. 编辑/etc/resolv.conf
# MADE-BY-RP-PPPOE
domain mydomain.com
nameserver 192.168.1.50
search localdomain


B: web服务器的设置
只需对/etc/httpd/conf/httpd.conf进行部分修改即可
ServerTokens OS

ServerRoot "/etc/httpd" :指定守护进程httpd的运行目录

PidFile run/httpd.pid

Timeout 300 :定义客户程序和服务器连接的超时间隔

KeepAlive Off :定义是否支持一次连接,多次传输功能

MaxKeepAliveRequests 100 :一次连接可以进行的HTTP请求的最大请求次数

KeepAliveTimeout 15 :一次连接中的多次请求传输之间的时间

MaxRequestsPerChild 0 :每个子进程处理服务请求次数 0为无限次

Listen 80

User apache :指定用户和组
Group apache

ServerAdmin nangshou@mydomain.com此邮件地址受spam bots保护,需要使用 Javascript 功能来查阅。 :服务器管理员的E_MAIL地址

#ServerName 192.168.1.50:80 :服务器域名,通常没有dns才需要

UseCanonicalName Off


DocumentRoot "/var/www/html" :指定网页文件存放位置


<IfModule mod_userdir.c>

UserDir user_www :用于个人主页,一般为/home/user/网页文件目录

</IfModule>

DirectoryIndex index.html index.htm index.php :指定网站首页名

AccessFileName .htaccess


Alias /manual "/var/www/manual"

<Directory "/var/www/manual">
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
:以上是设置针对目录进行文件的访问控制
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"

<IfModule mod_cgid.c>
Scriptsock run/httpd.cgid
</IfModule>

<Directory "/var/www/cgi-bin">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>

AddDefaultCharset GB2312 :网站支持的字符编码

:以下是设置虚拟主机服务所需配置的地方
#NameVirtualHost 202.101.2.1
:基于名字的虚拟主机必须,如基于IP地址则不需要

#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for requests without a known
# server name.
#
:如果是基于IP地址的虚拟主机只需下面的设置即可
#<VirtualHost 202.101.2.1>
# ServerAdmin
webmaster@dummy-host.example此邮件地址受spam bots保护,需要使用 Javascript 功能来查阅。
# DocumentRoot /www/docs/dummy-host.example.com
# ServerName dummy-host.example.com
# ErrorLog logs/dummy-host.example.com-error_log
# CustomLog logs/dummy-host.example.com-access_log common
#</VirtualHost>
:基于名字即一个IP地址对应多个域名
基于IP地址即每一个域名均有与之对应的IP
C: DHCP
服务器的安装设置
1
在安装光盘里找到dhcp-*.rpm,
2
Rpm –ivh dhcp-*.rpm
3
Setup/system serviceudhcp设为系统自启动
4
配置/etc/dhcpd.conf文件
subnet 192.168.1.0 netmask 255.255.255.0 {
range dynamic-bootp 192.168.1.60 192.168.1.160;
注:IP地址分配范围
option routers 192.168.1.254;
注:默认网关
option subnet-mask 255.255.255.0;
注:默认子网掩码
option domain-name “mydomain.com”;
注:默认域名
option domain-name-servers 192.168.1.50,202.96.134.133;

D: 电子邮件(sendmail)服务器的设置
4.1
设置Sendmail.cf
请在Cwlocalhost之後加上你那一台机器所有可能用来当收信地址的host name 例如我有一台机器叫:ftp.mydoamin.com,而且也叫:email.mydomain.com,而我希望这一台机器这两个名字都能收信,那我要这么作:
Cwlocalhost
ftp.mydomain.com email.mydomain.com
顺便说一下,Cw之後只能写入本机器的名字,千万不能写入其他机器的名字,否则,甚麽地方都能寄,那被写的就 一定不能寄。
上面其实是简略的说法,如果你对DNS 也熟悉的话,可参考这节来作判断,判断是否须要在Cw之後写入东东。否则 请直接跳过这一小节,把本机器所用的所有名字都写上。
1.
在一台机器上,如果有多个名字(hostname),而是用CNAME 建立的,如:
$ORIGIN my.mydomain.com
ftp IN A 192.168.1.50
email IN CNAME my.mydomain.com
那麽可以不必在Cw上标明。系统会透过DNS 找到其 Canonical name
2.
如果一台机器有多个名字,可是,每个名字是用A record 建立的。如:
$ORIGIN my.mydomain.com
ftp IN A 192.168.1.50
emial IN A 192.168.1.50
这种情况【一定】要记得在Cw後写上你所要收信的名字。如果这个忘了写,会有怎样的问题呢? 忘了将会有从外面机器寄信来,没有写上的机器名将却收不到信,会提示:
"Local configuration error"

如:我的sendmail.cf中的Cw这行是如下: Cw my.mydomain.com那我将无法使用这个地址: username@my.mydomain此邮件地址受spam bots保护,需要使用 Javascript 功能来查阅。而只能用 username@ftp.mydomain此邮件地址受spam bots保护,需要使用 Javascript 功能来查阅。 否则将出现上述错误。
如果发现了错误,那再加上去也就可以了。
3.
如果一台机器有多interface ,各interface有其本身的名字,且要收信。这个情况也要在Cw之後写明所有要收信的hostname
Fw/etc/sendmail.cw
这一行表示让sendmail去哪里找sendmail.cw这个文件,这个文件很重要。
还有一行你可能也需要改一下:
R$*
     $#error  $@ 5.7.1 $:"550 Relaying denied" 改成
R$-
     $@ OK
注意:中间的分隔要用"Tab".
4.2
设置Sendmail.cw
修改sendmail.cw文件,设置这个邮件服务器用于发送邮件的主机的名字,可以用你的域名,或主机名。
# sendmail.cw - include all aliases for your machine here.
mydomain.com
mail.mydomain.com
my.mydomain.com
ok!
一个标准的sendmail.cf文件就设置完了!
4.3
设置access
打开/etc/mail/access,你会看到 (注意一些系统的access文件不再/etc/mail下,如找不到请用whereis查找或检查是否安装正常)
# Check the /usr/doc/sendmail-8.9.3/README.cf file for a description
# of the format of this file. (search for access_db in that file)
# The /usr/doc/sendmail-8.9.3/README.cf is part of the sendmail-doc
# package.
#
# by default we allow relaying from localhost...
localhost.localdomain RELAY
localhost RELAY

如果您的IP地址是192.168.1.50的话,这样请在最后一行加上 192.168.1.50 RELAY
其文件的最后三行应是:
localhost.localdomain RELAY
localhost RELAY
192.168.1.50 RELAY

加上这句话您就可以用sendmail发送接收mail了!但是如果您想让别人也可以使用sendmail的话,他的IP202.168.25.22,这样就在在最后一行加入 202.168.25.22 RELAY
其文件的最后四行应是:
localhost.localdomain RELAY
localhost RELAY
192.168.1.50 RELAY
202.168.25.22 RELAY

我想,您现在一定有个疑问是,如果我想设置50个人用sendmail是不是需要加50IP啊!?嘿嘿,不用啦,是这样,sendmail考虑到多用户的时候,它准许你添入整个C类地址。其格式如下:
localhost.localdomain RELAY
localhost RELAY
192.168.1 RELAY

这样,您就是把192.168.1这整个C都加入的sendmail中,这个C类地址的用户,如果在你的系统里有账号的话,就可以使用sendmail收发信件了!然后运行:# makemap hash access.db < access
4.4
设置pop3
如果您需要pop3来接收信件,您需要打开pop3端口,
vi /etc/inetd.conf
查找到
# pop-3 stream tcp nowait root /usr/sbin/tcpd ipop3d
#号删掉。vi/etc/services 查找#pop-3 110/tcp # POP version 3#号删掉。这样,在restart inetd后,pop3 110端口就可以接信了!如果还是不行,请检查是否安装pop3端口!
4
5 sendmail的别名和forward
(1)
关于直接用IP地址发信
mail
user@[192.168.IP.Address]
只要用[]IP地址括起来就行了

(2) 关于alias
sendmail
/etc下有两个文件 aliasesaliases.db, 后者是前者用newaliases 生成的别名数据库. 你可以手工编辑/etc/aliases, 然后运行newaliases更新数据 (其实newaliases是个到sendmail symlink)
eg: nangshou :
user@mydomain.com此邮件地址受spam bots保护,需要使用 Javascript 功能来查阅。
alias-name: real-user-account
则以后mail nangshou就可以将信寄到user@mydomain.com此邮件地址受spam bots保护,需要使用 Javascript 功能来查阅。处 而别人寄给alias-name@your.domain此邮件地址受spam bots保护,需要使用 Javascript 功能来查阅。的信就会转给真正的用户real-user-account

(3) 关于forward
在你的$HOME目录下面编辑一个.forward文件, 里面写上你要forward的目的e-mail 地址或本机的用户名, 就可以自动将信 forward到相应地址
eg: .forward:
user@mydomain.com此邮件地址受spam bots保护,需要使用 Javascript 功能来查阅。
other-user-account
则给此人的e-mailforwardmydoaminother-user-account

(4) 关于vacation
找一个vacation(RedHatcontrib中有vacationrpm), 装上后就一个 /usr/bin/vacation程序和一个man. 先运行vacation, 它会让你编辑$HOME/.vacation.msg文件, 就是要发回给对方 告诉他你现在不看信的东西啦. 然后编辑$HOME/.forward文件, 写这样一句 username, "|/usr/bin/vacation username", username 要换回你自己的了 然后运行vacation -I$HOME/.vacation.db就好了。

(5) 关于sendmail的一些文件
/var/log/maillog sendmail
log, 分析错误有用
/var/spool/mail/$USER
进来的信, 每个用户一个文件
/var/spool/mqueue mail queue,
可以用mailq看队列中待发的信
(mailq
也是 sendmailsymlink)
dfxxxxxx
这是信的内容
qfxxxxxx
这是信的subject和别的信息 (反正每信一个号了, 配对的)
/etc/sendmail.cf sendmail
的配置文件, 改动它可要小心
/etc/sendmail.cw
假如你的机器有好多alias的话就把名字写在
这个文件中, 这样写哪个都能收到信
4
6 限制邮件的大小
vi /etc/sendmail.cf:
Mlocal, P=/bin/mail, F=lsDFMrmn, S=10, R=20/40,
Maxsize=1000000,
A=mail -d $u
Mprog, P=/usr/local/sendmail/smrsh, F=lsDFMeu, S=10, R=20/40, D=$z:/,
Maxsize=1000000,
其中maxsize=1000000即为限制数

E: MySQL服务器的设置

 MySQL是一个多用户、多线程SQL数据库服 务器。可以用于各种流行操作系统平台的关系数据库,它具有客户机/服务器体系结构的分布式数据库管理系统。MySQL完全适用于网络,用其建造的数据库可 以在网上的任意地方访问。MySQL可以使用SQL语言。SQL(结构化查询语言)是世界上最流行的和标准化的数据库语言。MySQL是以一个客户机/ 务器结构的实现,它由一个服务器守护程序mysqld和很多不同的客户程序和库组成。SQL是一种标准化的语言,它使得存储、更新信息更容易。MySQL 主要目标是快速、健壮和易用。

. MySQL的安装

  所需资源:

  在XteamLinux 4.0中,系统已经默认安装了MySQL,版本号是:3.23.36

升级方法:

  第一步:rpm -Uvh MySQL包。
  第二步:执行mysql,启动MySQL monitor就可以使用mysql数据库了。

. MySQL的使用

  注意:使用查询语句时,需要在查询语句的结尾处键入一个分号()并按Enter键。

  启动MySQL守护进程(XteamLinux 4.0默认情况下是未开启的)
    /etc/rc.d/init.d/mysql start 
  关闭MySQL守护进程
    /etc/rc.d/init.d/mysql stop 
  检查MySQL服务器运行情况

  1、检查MySQL的属性

  /usr/bin/mysqladmin variables 

  2、检查MySQL的版本信息/usr/bin/mysqladmin version 

  3、检查MySQL运行状态/usr/bin/mysqladmin status

  4、检查MySQL服务器此时正运行的线程信息
  /usr/bin/mysqladmin processlist

  5、检查MySQL的状态
  mysqladmin ping

  6、刷新所有的表并重写日志文件
  Flush all tables and close and open logfiles
  mysqladmin refresh

连接和断开服务器

  1、连接服务器

  mysql -h host -u user -p
   #如果此服务运行在与MySQL相同的机器上,这个选项一般可以省略。
  #要求输入口令

  2、断开服务器

  quit
  #进入MySQL之后可以敲help来获取帮助信息
   #还可以键入[Ctrl+D]来退出。

 

 

 

FFTP服务器配置

 

 Linux下的FTP软件有很多,常用的有wu- ftptftpporftpdVsftp等。其中proftpd是一个配置方法与Apache相类似的FTP服务器,有两种运行方式,独立服务器与超级服务器的子服务器。无论从安全性和稳定性,还是可配置性来说都是非常好的选择。

 

    安装proftpd

 

安装命令如下:

 

# wget ftp://ftp.proftpd.org/distrib/source/proftpd-1.2.9.tar.bz2

# bunzip2 proftpd-1.2.9.tar.bz2

# tar xvf proftpd-1.2.9.tar

# cd proftpd-1.2.9.tar.bz2

# ./configure --prefix=/usr/local/proftpd

# make

# make install

 

 

 

    设定proftpd

 

    1.几个文件的功能及路径

 

/usr/local/proftpd/sbin/proftpd 执行程序。

 

/usr/local/proftpd/etc/proftpd.conf 设置文件。

 

/usr/local/proftpd/var/proftpd.pid proftpd 作为一个服务的ID号。

 

    2.设定proftpd.conf文件,启动服务。在默认的/usr/local/proftpd/etc/proftpd.conf/文件中有一行文字 ServerType standalone”,指定/usr/local/proftpd/sbin/proftpd以一个服务的方式来工作,可以将 /usr/local/proftpd/sbin/proftpd放到/etc/rc.d/rc.local文件中,以便开机时启动。

 

    3.proftpd.conf的一个简单设定及说明(proftpd文件解压后,/doc目录内有proftpd.conf的说明)如下:

 

ServerName ProFTPD Default Installation #服务器的名称

ServerType standalone #服务器的服务方法(系统服务/inetd连接)

DefaultServer on 默认服务

Port 21 服务器使用的port号码

User nobody

Group ftp proftpd在做为服务时的用户名和组名

DefaultRoot ~ 根目录设定,可以用/home也可用~,

可以使用户不能向上到根目录下

<Directory /*> 目录的权力

AllowOverwrite on

</Directory>

<Anonymous ftp> 其本anonymous用户定义

User ftp

Group ftp

UserAlias anonymous ftp

MaxClients 10

DisplayLogin welcome.msg

DisplayFirstChdir .message

RequireValidShell no 注意最好加上这一行

<Limit WRITE> 设定为只读

DenyAll

</Limit>

</Anonymous>

 

                      CISCO

 

 

三: CISCO交换机配置命令


1.
在基于IOS的交换机上设置主机名/系统名
switch(config)# hostname hostname 
在基于CLI的交换机上设置主机名/系统名
switch(enable) set system name name-string 
2.
在基于IOS的交换机上设置登录口令
switch(config)# enable password level 1 password 
在基于CLI的交换机上设置登录口令
switch(enable) set password 
switch(enable) set enalbepass 

3.
在基于IOS的交换机上设置远程访问
switch(config)# interface vlan 1 
switch(config-if)# ip address ip-address netmask 
switch(config-if)# ip default-gateway ip-address 
在基于CLI的交换机上设置远程访问
switch(enable) set interface sc0 ip-address netmask broadcast-address 
switch(enable) set interface sc0 vlan 
switch(enable) set ip route default gateway 

4.
在基于IOS的交换机上启用和浏览CDP信息
switch(config-if)# cdp enable 
switch(config-if)# no cdp enable 
为了查看Cisco邻接设备的CDP通告信息
switch# show cdp interface [type modle/port] 
switch# show cdp neighbors [type module/port] [detail] 
在基于CLI的交换机上启用和浏览CDP信息
switch(enable) set cdp {enable|disable} module/port 
为了查看Cisco邻接设备的CDP通告信息
switch(enable) show cdp neighbors[module/port] [vlan|duplex|capabilities|detail] 

5.
基于IOS的交换机的端口描述
switch(config-if)# description description-string 
基于CLI的交换机的端口描述
switch(enable)set port name module/number description-string 

6.
在基于IOS的交换机上设置端口速度
switch(config-if)# speed{10|100|auto} 
在基于CLI的交换机上设置端口速度
switch(enable) set port speed moudle/number {10|100|auto} 
switch(enable) set port speed moudle/number {4|16|auto} 

7.
在基于IOS的交换机上设置以太网的链路模式
switch(config-if)# duplex {auto|full|half} 
在基于CLI的交换机上设置以太网的链路模式
switch(enable) set port duplex module/number {full|half} 

8.
在基于IOS的交换机上配置静态VLAN: 
switch# vlan database 
switch(vlan)# vlan vlan-num name vla 

switch(vlan)# exit 
switch# configure teriminal 
switch(config)# interface interface module/number 
switch(config-if)# switchport mode access 
switch(config-if)# switchport access vlan vlan-num 
switch(config-if)# end 
在基于CLI的交换机上配置静态VLAN: 
switch(enable) set vlan vlan-num [name name] 
switch(enable) set vlan vlan-num mod-num/port-list 

9. 
在基于IOS的交换机上配置VLAN中继线
switch(config)# interface interface mod/port 
switch(config-if)# switchport mode trunk 
switch(config-if)# switchport trunk encapsulation {isl|dotlq} 
switch(config-if)# switchport trunk allowed vlan remove vlan-list 
switch(config-if)# switchport trunk allowed vlan add vlan-list 
在基于CLI的交换机上配置VLAN中继线
switch(enable) set trunk module/port [on|off|desirable|auto|nonegotiate] 
Vlan-range [isl|dotlq|dotl0|lane|negotiate] 

10.
在基于IOS的交换机上配置VTP管理域
switch# vlan database 
switch(vlan)# vtp domain domain-name 
在基于CLI的交换机上配置VTP管理域
switch(enable) set vtp [domain domain-name] 


11.
在基于IOS的交换机上配置VTP 模式
switch# vlan database 
switch(vlan)# vtp domain domain-name 
switch(vlan)# vtp {sever|cilent|transparent} 
switch(vlan)# vtp password password 
在基于CLI的交换机上配置VTP 模式
switch(enable) set vtp [domain domain-name] [mode{ sever|cilent|transparent }][password password] 
12. 
在基于IOS的交换机上配置VTP版本
switch# vlan database 
switch(vlan)# vtp v2-mode 
在基于CLI的交换机上配置VTP版本
switch(enable) set vtp v2 enable 

13. 
在基于IOS的交换机上启动VTP剪裁
switch# vlan database 
switch(vlan)# vtp pruning 
在基于CL I 的交换机上启动VTP剪裁
switch(enable) set vtp pruning enable 

14.
在基于IOS的交换机上配置以太信道
switch(config-if)# port group group-number [distribution {source|destination}
在基于CLI的交换机上配置以太信道
switch(enable) set port channel moudle/port-range mode{on|off|desirable|auto} 

15.
在基于IOS的交换机上调整根路径成本
switch(config-if)# spanning-tree [vlan vlan-list] cost cost 
在基于CLI的交换机上调整根路径成本

switch(enable) set spantree portcost moudle/port cost 
switch(enable) set spantree portvlancost moudle/port [cost cost][vlan-list] 

16.
在基于IOS的交换机上调整端口ID: 
switch(config-if)# spanning-tree[vlan vlan-list]port-priority port-priority 
在基于CLI的交换机上调整端口ID: 
switch(enable) set spantree portpri {mldule/port}priority 
switch(enable) set spantree portvlanpri {module/port}priority [vlans] 

17. 
在基于IOS的交换机上修改STP时钟
switch(config)# spanning-tree [vlan vlan-list] hello-time seconds 
switch(config)# spanning-tree [vlan vlan-list] forward-time seconds 
` switch(config)# spanning-tree [vlan vlan-list] max-age seconds 
在基于CLI的交换机上修改STP时钟
switch(enable) set spantree hello interval[vlan] 
switch(enable) set spantree fwddelay delay [vlan] 
switch(enable) set spantree maxage agingtiame[vlan] 

18. 
在基于IOS的交换机端口上启用或禁用Port Fast 特征
switch(config-if)#spanning-tree portfast 
在基于CLI的交换机端口上启用或禁用Port Fast 特征
switch(enable) set spantree portfast {module/port}{enable|disable} 

19. 
在基于IOS的交换机端口上启用或禁用UplinkFast 特征
switch(config)# spanning-tree uplinkfast [max-update-rate pkts-per-second] 
在基于CLI的交换机端口上启用或禁用UplinkFast 特征
switch(enable) set spantree uplinkfast {enable|disable}[rate update-rate] [all-protocols off|on] 

20. 
为了将交换机配置成一个集群的命令交换机,首先要给管理接口分配一个IP地址,然后使用下列命令: switch(config)# cluster enable cluster-name 

21. 
为了从一条中继链路上删除VLAN,可使用下列命令
switch(enable) clear trunk module/port vlan-range 

22. 
show vtp domain 显示管理域的VTP参数

23. 
show vtp statistics显示管理域的VTP参数

24. 
Catalyst交换机上定义TrBRF的命令如下
switch(enable) set vlan vlan-name [name name] type trbrf bridge bridge-num[stp {ieee|ibm}

25. 
Catalyst交换机上定义TrCRF的命令如下
switch (enable) set vlan vlan-num [name name] type trcrf 
{ring hex-ring-num|decring decimal-ring-num} parent vlan-num 

26. 
在创建好TrBRF VLAN之后,就可以给它分配交换机端口.对于以太网交换,可以采用如下命令给VLAN分配端口
switch(enable) set vlan vlan-num mod-num/port-num 

27. 
命令show spantree显示一个交换机端口的STP状态

28. 
配置一个ELANLESBUS,可以使用下列命令
ATM (config)# interface atm number.subint multioint 
ATM(config-subif)# lane serber-bus ethernet elan-name 

29. 
配置LECS: 
ATM(config)# lane database database-name 
ATM(lane-config-databade)# name elan1-name server-atm-address les1-nsap-address 
ATM(lane-config-databade)# name elan2-name server-atm-address les2-nsap-address 
ATM(lane-config-databade)# name … 

30. 
创建完数据库后,必须在主接口上启动LECS.命令如下
ATM(config)# interface atm number 
ATM(config-if)# lane config database database-name 
ATM(config-if)# lane config auto-config-atm-address 
31. 
将每个LEC配置到一个不同的ATM子接口上.命令如下
ATM(config)# interface atm number.subint multipoint 
ATM(config)# lane client ethernet vlan-num elan-num 

32. 
show lane server 显示LES的状态

33. 
show lane bus显示bus的状态

34. 
show lane database显示LECS数据库可内容

35. 
show lane client显示LEC的状态

36. 
show module显示已安装的模块列表

37. 
用物理接口建立与VLAN的连接
router# configure terminal 
router(config)# interface media module/port 
router(config-if)# description description-string 
router(config-if)# ip address ip-addr subnet-mask 
router(config-if)# no shutdown 

38. 
用中继链路来建立与VLAN的连接
router(config)# interface module/port.subinterface 
router(config-ig)# encapsulation[isl|dotlq] vlan-number 
router(config-if)# ip address ip-address subnet-mask 

39. 
LANE 来建立与VLAN的连接
router(config)# interface atm module/port 
router(config-if)# no ip address 
router(config-if)# atm pvc 1 0 5 qsaal 
router(config-if)# atm pvc 2 0 16 ilni 
router(config-if)# interface atm module/port.subinterface multipoint 
router(config-if)# ip address ip-address subnet-mask 
router(config-if)# lane client ethernet elan-num 
router(config-if)# interface atm module/port.subinterface multipoint 
router(config-if)# ip address ip-address subnet-name 
router(config-if)# lane client ethernet elan-name 
router(config-if)# … 

40. 
为了在路由处理器上进行动态路由配置,可以用下列IOS命令来进行
router(config)# ip routing 
router(config)# router ip-routing-protocol 
router(config-router)# network ip-network-number 
router(config-router)# network ip-network-number 

41. 
配置默认路由
switch(enable) set ip route default gateway 

42. 
为一个路由处理器分配VLANID,可在接口模式下使用下列命令
router(config)# interface interface number 
router(config-if)# mls rp vlan-id vlan-id-num 

43. 
在路由处理器启用MLSP: 
router(config)# mls rp ip 

44. 
为了把一个外置的路由处理器接口和交换机安置在同一个VTP域中
router(config)# interface interface number 
router(config-if)# mls rp vtp-domain domain-name 

45. 
查看指定的VTP域的信息
router# show mls rp vtp-domain vtp domain name 

46. 
要确定RSM或路由器上的管理接口,可以在接口模式下输入下列命令
router(config-if)#mls rp management-interface 


47. 
要检验MLS-RP的配置情况: 
router# show mls rp 
48. 
检验特定接口上的MLS配置: 
router# show mls rp interface interface number 

49. 
为了在MLS-SE上设置流掩码而又不想在任一个路由处理器接口上设置访问列表: 
set mls flow [destination|destination-source|full] 

50. 
为使MLS和输入访问列表可以兼容,可以在全局模式下使用下列命令: 
router(config)# mls rp ip input-acl 

51. 
当某个交换机的第3层交换失效时,可在交换机的特权模式下输入下列命令: 
switch(enable) set mls enable 

52. 
若想改变老化时间的值,可在特权模式下输入以下命令: 
switch(enable) set mls agingtime agingtime 

53. 
设置快速老化: 
switch(enable) set mls agingtime fast fastagingtime pkt_threshold 

54. 
确定那些MLS-RPMLS-SE参与了MLS,可先显示交换机引用列表中的内容再确定: 
switch(enable) show mls include 

55. 
显示MLS高速缓存记录: 
switch(enable) show mls entry 

56. 
用命令show in arp显示ARP高速缓存区的内容。 

57. 
要把路由器配置为HSRP备份组的成员,可以在接口配置模式下使用下面的命令: 
router(config-if)# standby group-number ip ip-address 

58. 
为了使一个路由器重新恢复转发路由器的角色,在接口配置模式下: 
router(config-if)# standy group-number preempt 

59. 
访问时间和保持时间参数是可配置的: 
router(config-if)# standy group-number timers hellotime holdtime 

60. 
配置HSRP跟踪: 
router(config-if)# standy group-number track type-number interface-priority 

61. 
要显示HSRP路由器的状态: 
router# show standby type-number group brief 

62. 
用命令show ip igmp确定当选的查询器。 

63. 
启动IP组播路由选择: 
router(config)# ip muticast-routing 

64. 
启动接口上的PIM 
dalllasr1>(config-if)# ip pim {dense-mode|sparse-mode|sparse-dense-mode} 

65. 
启动稀疏-稠密模式下的PIM 
router# ip multicast-routing 
router# interface type number 
router# ip pim sparse-dense-mode 

66. 
核实PIM的配置: 
dallasr1># show ip pim interface[type number] [count] 

67. 
显示PIM邻居: 
dallasr1># show ip neighbor type number 

68. 
为了配置RP的地址,命令如下: 
dallasr1># ip pim rp-address ip-address [group-access-list-number][override] 

69. 
选择一个默认的RP 
dallasr1># ip pim rp-address 
通告RP和它所服务的组范围: 
dallasr1># ip pim send-rp-announce type number scope ttl group-list access-list-number 
为管理范围组通告RP的地址: 
dallasr1># ip pim send-rp-announce ethernet0 scope 16 group-list1 
dallasr1># access-list 1 permit 266.0.0.0 0.255.255.255 
设定一个RP映像代理: 
dallasr1># ip pim send-rp-discovery scope ttl 
核实组到RP的映像: 
dallasr1># show ip pim rp mapping 
dallasr1># show ip pim rp [group-name|group-address] [mapping] 

70. 
在路由器接口上用命令ip multicast ttl-threshold ttl-value设定TTL阀值: 
dallasr1>(config-if)# ip multicast ttl-threshold ttl-value 

71. 
show ip pim neighbor显示PIM邻居表。 

72. 
显示组播通信路由表中的各条记录: 
dallasr1>show ip mroute [group-name|group-address][scoure][summary][count][active kbps] 

73. 
要记录一个路由器接受和发送的全部IP组播包: 
dallasr1> #debug ip mpacket [detail] [access-list][group] 

74. 
要在CISCO路由器上配置CGMP 
dallasr1>(config-if)# ip cgmp 

75.
配置一个组播路由器,使之加入某一个特定的组播组: 
dallasr1>(config-if)# ip igmp join-group group-address 

76. 
关闭 CGMP 
dallasr1>(config-if)# no ip cgmp 

77. 
启动交换机上的CGMP 
dallasr1>(enable) set cgmp enable 

78. 
核实Catalyst交换机上CGMP的配置情况: 
catalystla1>(enable) show config 
set prompt catalystla1> 
set interface sc0 192.168.1.1 255.255.255.0 
set cgmp enable 

79. CGMP
离开的设置: 
Dallas_SW(enable) set cgmp leave 

80. 
Cisco设备上修改控制端口密码: 
R1(config)# line console 0 
R1(config-line)# login 
R1(config-line)# password Lisbon 
R1(config)# enable password Lilbao 
R1(config)# login local 
R1(config)# username student password cisco 

81. 
Cisco设备上设置控制台及vty端口的会话超时: 
R1(config)# line console 0 
R1(config-line)# exec-timeout 5 10 
R1(config)# line vty 0 4 
R1(config-line)# exec-timeout 5 2 

82. 
Cisco设备上设定特权级: 
R1(config)# privilege configure level 3 username 
R1(config)# privilege configure level 3 copy run start 
R1(config)# privilege configure level 3 ping 
R1(config)# privilege configure level 3 show run 
R1(config)# enable secret level 3 cisco 

83. 
使用命令privilege 可定义在该特权级下使用的命令: 
router(config)# privilege mode level level command 

84. 
设定用户特权级: 
router(config)# enable secret level 3 dallas 
router(config)# enable secret san-fran 
router(config)# username student password cisco 

85. 
标志设置与显示: 
R1(config)# banner motd ‘unauthorized access will be prosecuted!’ 

86. 
设置vty访问: 
R1(config)# access-list 1 permit 192.168.2.5 
R1(config)# line vty 0 4 
R1(config)# access-class 1 in 

87. 
配置HTTP访问: 
Router3(config)# access-list 1 permit 192.168.10.7 
Router3(config)# ip http sever 
Router3(config)# ip http access-class 1 
Router3(config)# ip http authentication local 
Router3(config)# username student password cisco 

88. 
要启用HTTP访问,请键入以下命令: 
switch(config)# ip http sever 

89. 
在基于set命令的交换机上用setCL1启动和核实端口安全: 
switch(enable) set port security mod_num/port_num…enable mac address 
switch(enable) show port mod_num/port_num 
在基于CiscoIOS命令的交换机上启动和核实端口安全: 
switch(config-if)# port secure [mac-mac-count maximum-MAC-count] 
switch# show mac-address-table security [type module/port] 

90. 
用命令access-list在标准通信量过滤表中创建一条记录: 
Router(config)# access-list access-list-number {permit|deny} source-address [source-address] 

91. 
用命令access-list在扩展通信量过滤表中创建一条记录: 
Router(config)# access-list access-list-number {permit|deny{protocol|protocol-keyword}}{source source-wildcard|any}{destination destination-wildcard|any}[protocol-specific options][log] 

92. 
对于带内路由更新,配置路由更新的最基本的命令格式是: 
R1(config-router)#distribute-list access-list-number|name in [type number] 

93. 
对于带外路由更新,配置路由更新的最基本的命令格式是: 
R1(config-router)#distribute-list access-list-number|name out [interface-name] routing-process| autonomous-system-number 

94. set snmp
命令选项: 
set snmp community {read-only|ready-write|read-write-all}[community_string] 

95. set snmp trap 
命令格式如下: 
set snmp trap {enable|disable} 
[all|moudle|classis|bridge|repeater| auth|vtp|ippermit|vmps|config|entity|stpx] 
set snmp trap rvcr_addr rcvr_community 

96. 
启用SNMP chassis 陷阱
Console>(enable) set snmp trap enable chassis 

97. 
启用所有SNMP chassis 陷阱
Console>(enable) set snmp trap enable

 

 

 

四:CISCO路由器基本命令配置

1.1 CISCO IOS操作环境。

有三种:

ROM monitor > Failure of password recovery

BootROM router(boot) > Flash image upgrade

Cisco IOS router > Normal operation

 

1.2 Command Modes命令模式。

User EXEC Router> 普通级别

Privileged EXEC Router# 系统管理级别(超级用户)

Configuration mode Router(config)# 修改配置

 

 

二、 配置前的准备工作

 

2.1 用终端或仿真终端接入CONSOLE

 

终端或仿真终端配置信息如下:

 

9600 baud 8 data bits no parity 2 stop bits (9600,8/N/2

 

2.2 TELNET命令在网上进行设置。

 

系统管理员可在网上用telnet address命令进行远程配置。

 

三、 配置IP地址

 

3.1 config命令行方式进行设置

 

3.1.1 首先启动ROUTER 进入router > 模式。

 

键入Enable 进入router # 模式

 

然后键入config 进入router(config)# 模式

 

3.1.2 选择要配置的路由器端口

 

Router(config) # interface端口号

 

进入端口设置状态 Router(config-if)

 

此时用命令IP address <IP地址> <掩码>

 

设定路由器端口IP地址

 

 

四、 配置ip路由协议 (RIP ,OSPF ,BGP ,STATICS)

 

 

在图中有路由器AB,广域网通过router A s0/0/0router Bs2/0/0相连,IP如下:

 

router A:

 

E1:202.101.1.1/24

 

S0/0/0:202.101.3.1/30

 

router B:

 

E1:202.101.2.1/24

 

S2/0/0:202.101.3.2/30

 

当我们设置路由器协议时,可根据方案的规定设置一种或多种协议。以下动态协议都是按最简单设置,复杂的配置可参考具体手册。

 

4.1静态路由

 

IP route 目的网络地址 子网掩码 端口号

 

router A上配router B的路由:

 

IP route 202.101.2.0 255.255.255.0 202.101.3.2

 

router A上配router B的路由:

 

IP route 202.101.1.0 255.255.255.0 202.101.3.1

 

4.2 RIP2设置

 

router A进行如下设置:

 

router rip ;enable rip

 

version 2 ;选择版本2

 

network 202.101.1.0 ;相关子网地址

 

network 202.101.3.0

 

router B进行如下设置:

 

router rip ;enable rip

 

version 2 ;选择版本2

 

network 202.101.2.0 ;相关子网地址

 

network 202.101.3.0

 

 

 

4.3 OSPF设置

 

router A:

 

router ospf 200 enable ospf 进程号为200

 

network 202.101.1.0 0.0.0.255 area 0 相关子网地址及区域号

 

network 202.101.3.0 0.0.0.3 area 0

 

router B:

 

router ospf 200 enable ospf 进程号为200

 

network 202.101.2.0 0.0.0.255 area 0 相关子网地址及区域号

 

network 202.101.3.0 0.0.0.3 area 0

 

 

 

4.4 BGP设置

 

router A:

 

router bgp 100 ;enable bgp 设置自治域号

 

network 202.101.3.0 mask 255.255.255.252 ;相关子网地址及子网掩码

 

network 202.101.1.0 mask 255.255.255.0 ; 这些地址由bgp发到邻居路由器

 

neighbor 202.101.3.2 remote-as 200 ;设置远程相连自治域边界路由器端口

 

router B:

 

router bgp 100 ;enable bgp 设置自治域号

 

network 202.101.2.0 mask 255.255.255.252 ;相关子网地址及子网掩码

 

network 202.101.1.0 mask 255.255.255.0 ; 这些地址由bgp发到邻居路由器

 

neighbor 202.101.3.1 remote-as 200 ;设置远程相连自治域边界路由器端口

 

 

 

五、 radius认证的设置

 

 

5.1 radius的简述

 

RADIUS的全称为(Remote Access Dail-In User Service),它是对远程拨号用户访问进行认证的一种协议。主要进行Authentication Authorization Accounting (AAA) 三方面的工作。

 

5.2 radius的配置

 

具体配置如下:

 

aaa new-mode ;enable radius

 

radius-server host <address> ;指明radius server在网上的地址

 

radius-server key <string> ;建立一个网上传输密

   

    作者: AMTO_XY  2005-6-10 19:46   回复此发言 

   

2

       CISCO路由器基本命令配置

   

 

aaa authentication login default radius local ;进行login认证,若radius server未找到从本地数据库内查找

 

aaa authentication ppp default radius local

 

aaa authorization network radius local ;授权检测

 

aaa accounting network start-stop radius ;计帐检测

 

 

六、 路由器软件升级方法

 

6.1 改变操作环境

 

global config mode设置: config -reg 0x2101

 

reload 进入Boot Rom 模式:router(boot)>

 

6.2 运行tftp server

 

在网上运行tftp server,使升级文件可以传输。

 

6.3 级版本

 

命令如下:

 

copy tftp flash ;tftp server上的文件传入路由器的flash memoy

 

copy flash tftp ; flash中的文件备份到tftp server

 

 

七、 路由器配置的其它事项

 

7.1拨号用户的配置。

 

cisco 2509/2511的异步串行通讯口在配置modem时,modem需设置成自动应答方式。具体方法如下:

 

用超级终端进入modem AT 命令方式,键入ats0=1 设置自动应答方式,然后键入at&w 将设置写入寄存器。

 

7.2 RIP & BGP的设置

 

当一个运行RIP路由协议的子网,做为一个自治域,用BGP协议接入另一自治域时。此子网内所有路由器需添加参数: ip classless 。同时在与边界路由器直接相连的路由器上需添加一个缺省网关。

 

7.3 v.35电缆直连的设置

 

在相关的端口上设置时钟速率:clock rate < speed> .

 

7.4 loopback端口的设置

 

loopback端口是一个虚拟端口,端口状态始终处于UP。通过它可以使由BGP相连的AS之间始终保持连系,不会由于边界路由器端口状态的改变而发生变化。其具体配置如下:

 

interface loopback <number>

 

ip address IP地址 子网掩码

 

八、常见问题

 

8.1如何检测网络是否通畅?

 

在网络主机上采用命令ping <ip地址> 来逐端检测网端。

 

8.2如何查看路由器配置信息?

 

EXEC模式下用show config命令。

 

8.3如何查看路由器路由信息?

 

EXEC模式下用show ip route 命令。

 

8.4如何查看路由器端口信息?

 

EXEX模式下用show int <端口号> 命令。

 

8.5为什么端口协议已经配置,状态仍然是down?

 

CONFIG模式下,选择该端口,执行no shutdwon命令。

 

8.6 config模式有几种状态,对应那些操作?

 

config模式有以下几种状态:

 

· globle config 全局配置操作 exec模式键入config t

 

· interface config 端口配置操作 config模式键入int <端口号>

 

· line config 线路配置操作 config模式键入line <线路号>

 

· router config 路由配置操作 config模式键入router<路由协议>

 

五:   WIN2003上的IIS配置

配置 Windows Server 2003 -- IIS 6  
Microsoft Knowledge Base Article - 324742  
这篇文章中的信息适用于:  
Microsoft Windows Server 2003, Datacenter Edition  
Microsoft Windows Server 2003, Enterprise Edition  
Microsoft Windows Server 2003, Standard Edition  
Microsoft Windows Server 2003, Web Edition  
Microsoft Windows Server 2003, 64-Bit Datacenter Edition  
Microsoft Windows Server 2003, 64-Bit Enterprise Edition  
Microsoft Internet Information Services version 6.0  
本分步指南介绍了如何在 Windows Server 2003 环境中设置一个用于匿名访问的 WWW 服务器。  
安装 Internet 信息服务  
Microsoft Internet
信息服务 (IIS) 是与 Windows Server 2003 集成的 Web 服务。  
要安装 IIS、添加可选组件或删除可选组件,请按以下步骤操作:  
1.
单击开始,指向控制面板,然后单击添加或删除程序  
添加或删除程序工具就会启动。  
2.
单击添加/删除 Windows 组件。  
显示“Windows 组件向导  
3.
Windows 组件 列表中,单击Web 应用程序服务器。  
4.
单击详细信息,然后单击Internet 信息服务 (IIS)  
5.
单击详细信息 ,以查看 IIS 可选组件列表。  
6.
选择您要安装的可选组件。默认情况下,下列组件是选中的:  
---
公用文件  
--- FrontPage 2002 Server Extentions  
--- Internet
信息服务管理单元  
--- Internet
信息服务管理器  
--- NNTP
服务  
--- SMTP
服务  
--- World Wide Web
服务  
7.
单击“World Wide Web 服务,然后单击详细信息 ,以查看 IIS 可选子组件(如 Active Server Pages 组件和远程管理 (HTML) 工具)的列表。选择您要安装的可选子组件。默认情况下,下列组件是选中的:  
--- World Wide Web
服务  
8.
单击确定 ,直到返回“Windows 组件向导  
9.
单击下一步,然后完成“Windows 组件向导  
配置匿名身份验证  
要配置匿名身份验证,请按以下步骤操作:  
1.
单击开始,指向管理工具,然后单击Internet 信息服务 (IIS)  
2.
展开“* 服务器名称(其中服务器名称 为该服务器的名称),右键单击Web 站点,然后单击属性。  
3.
Web 站点属性 对话框中,单击目录安全性 选项卡。  
4.
身份验证和访问控制下,单击编辑。  
5.
单击启用匿名访问复选框,将其选中。  
备注:用户名框中的用户帐户只用于通过 Windows guest 帐户进行匿名访问。  
默认情况下,服务器会创建并使用帐户 IUSR_computername。匿名用户帐户密码仅在 Windows 中使用;匿名用户不使用用户名和密码登录。  
6.
已验证身份的访问下,单击集成的 Windows 身份验证复选框,将其选中。  
7.
单击确定 两次。  
基本 Web 站点配置  
1.
单击开始,指向管理工具,然后单击Internet 信息服务 (IIS)  
2.
展开“* 服务器名称(其中服务器名称 为该服务器的名称),然后展开Web 站点。  
3.
右键单击默认 Web 站点,然后单击属性。  
4.
单击Web 站点 选项卡。如果您已为计算机分配了多个 IP 地址,则请在IP 地址 框中单击您要指定给此 Web 站点的 IP 地址。  
5.
单击性能 选项卡。使用Web 站点属性 - 性能 对话框可设置影响内存、带宽使用和 Web 连接数量的属性。  
通过配置某个特定站点上的网络带宽,您可以更好地控制该站点的通信量。例如,通过在低优先级的 Web 站点上限制带宽,您可以放宽对他站点的访问量的限制。同样,当您指定到某个 Web 站点的连接数量时,您就可以为其他站点释放资源。设置是站点专用的,应根据网络通信量和使用变化情况进行调整。  
---
单击限制可用于此 Web 站点的带宽复选框,将其选中,可配置 IIS 将网络带宽调节到选定的最大带宽量,以千字节每秒 (KB/S) 为单位。  
---
单击Web 服务连接 复选框,将其选中,可选择特定数目或者不限定数目的 Web 服务连接。限制连接可使计算机资源能够用于其他进程。  
备注:每个浏览 Web 站点的客户机通常都使用大约三个连接。  
6.
单击主目录 选项卡。  
---
如果您想使用存储在本地计算机上的 Web 内容,则单击此计算机上的目录然后在本地路径 框中键入您想要的路径。例如,默认路径为 C:\\Inetpub\\wwwroot  
备注:为了增加安全性,请不要在根目录下创建 Web 内容文件夹。  
---
如果要使用存储在另一台计算机上的 Web 内容,则单击另一计算机上的共享位置,然后在显示的网络目录 框中键入所需位置。  
---
如果您要使用存储在另一个 Web 地址的 Web 内容,则单击重定向到 URL”,然后在重定向到框中键入所需位置。在客户会送到下,单击相应的复选框,将其选中。  
7.
单击文档 选项卡。请注意可由 IIS 用作默认启动文档的文档列表。如果您要使用 Index.html 作为启动文档,就必须添加它。添加方法是:  
a.
单击添加。  
b.
在添加默认文档 对话框中,键入 Index.html,然后单击确定。  
c.
单击向上箭头 按钮,直到 Index.html 显示在列表的顶部。  
8.
单击确定 ,关闭默认 Web 站点属性 对话框。  
9.
右键单击默认 Web 站点,然后单击权限。  
10.
请注意在此 Web 站点上具有操作权限的用户帐户。单击添加 添加其他可操作此 Web 站点的用户帐户。  
11.
单击确定 ,返回到“Internet 信息服务窗口。  
12.
右键单击默认 Web 站点,然后单击停止。  
13.
右键单击默认 Web 站点,然后单击开始。  
WINDOWS2003
上安装OA系统要注意:  
如何启用 ASP 支持:  
Windows Server 2003
默认安装,是不安装 IIS 6 的,需要另外安装。安装完 IIS 6,还需要单独开启对于 ASP 的支持。方法是:  
控制面板 -> 管理工具 -> Web服务扩展 -> Active Server Pages -> 允许。  
Q
ASP文件包含文件的时候提示Active Server Pages 错误 \'ASP 0131\'不允许的父路径,如何解决?  
A
:在站点属性中选择主目录-配置-应用程序选项,将启用父目录选上。  

Q
:登陆OA系统提示未发现OA所必需文件,如何解决?  
A
:在OASERVER的文件夹上选择属性-安全-选择USER组,将所有权限打开,点击高级,把重置所有对象权限并允许传播可继承权限勾上,点击确定两次,稍后登陆即可

 

                 六:      windows  server   域控制器安装

一、域控制器的概念:
   
简单说说,多数情况下,公司小型的局域网,不会使用来管理。安装Windows的时候,我们常看到workgroup,安装时的配置选项:不属于,就是指这种方式。
  
局域网工作于域模式,有几个很明显的特征:
  1
、你必须有一个域控制器,这通常是一台单独的服务器。需要添加Dns服务器和活动目录两个服务器角色。
  2
、其他的机器必须加入域,这样,该机器在登录的时候,将可选择是登录到本机还是登录到域。
  3
、域用户,是由域控制器统一管理的,域外的其他用户将比较难以如以前一般肆无忌惮的访问公司局域网的公开资源。
  4
、登录到域,同一个域用户可在不同的客户机登录到域,登陆过程中,客户机需要通过域控制器的认证。

二、准备工作:
1
、工具的准备:
     
需要准备好Win2003 sp1Ghost 8.2版。最好准备两个小工具:矮人纯Dos环境、Daemon3.47版,前者可以为Win2003提供Dos启动使用Ghost的方式(含ghost 8.2),后者是虚拟光驱工具,刻盘是件麻烦的事情。
我们将从全新安装win2003开始配置域控制器,对于数据库服务器,当然也以此为前提。在这个过程中,使用Ghost保留一些镜像是必要的,举例来说,当你在数据库服务器上安装好Sql2005之后,建议就做一个镜像,否则若后续的安装过程失败,从头再来的话,仅安装sql2005估计就需要1个小时。
   
尤其对于测试版的大型软件安装,ghost可以为我们节省太多时间。
   
另外的工具是事件查看器,在安装过程中,多注意一下其中的应用程序、系统、DNS服务器的日志信息,对我们解决问题的能力有较大的帮助。Sql2005Profiler,监视数据库动作,也在不同程度上能增加对安装程序行为的理解,从而能找出一些麻烦解决的头绪。
   
此外,碰到意外情况的时候,多注意异常报告的内容,大多数异常是通过追踪其日志找到出错原因的。我们不必完全确定原因,联想这种思维模式常能够节省很多光阴。
   
最不能忘记的,当然是TFS的安装指南,这个最新的版本在http://www.microsoft.com/downloads/details.aspx?FamilyId=E54BF6FF-026B-43A4-ADE4-A690388F310E&displaylang=en处下载。光盘中的是较老的版本。

2
、安装计划:即所谓的路线图,我们将做如下的步骤:
  
卸载IIS
   
禁用外网网卡
   
配置域控制器
   
卸载Dhcp 
   
安装IIS
  
修改密码策略
  
创建三个账户  
  
将数据库服务器和客户机加入到域
 

三、配置您的服务器向导:
   
我们以Windows2003安装已经就绪为基础,开始将Tfs配置为域控制器。请注意我们使用administrator登录。
1
、删除IIS
   
有个金科玉律:活动目录安装之前不要安装任何软件,包括IIS。我理解成仅包括IIS,因为整个安装过程中,我只碰到IIS出现麻烦。
   
如果你不卸载IIS就配置DC,之后的安装肯定会出现问题。当然,你也可以在配置好DC后,卸载IIS在重新安装。
   
这个步骤,在控制面板|添加删除程序|添加删除Windows组件解决,我们可在列表中清除应用服务器选项即可简单的完成。

2
、禁用外网网卡
   
服务器上有两块网卡,一块接外网,一块接公司内部网。为省事起见,安装过程中我们禁用外网网卡。

3
、配置您的服务器
   
使用控制面板|管理工具|配置您的服务器向导,首先会做一分钟左右的检测,之后出现提示窗体。我们选择第一台服务器的典型配置这种模式安装。简单省事。之后,域名窗体,我们将域名设为soft.localnetbios名称,我们不做改变。
    
此后安装程序将工作约5-10分钟,并自动重新启动机器。我们使用administrator重新登陆,这时实际上已经是登录到域了。
   
由于我们并不使用dhcp,因此可以卸载该组件。

4
、重新安装IIS
   
同样使用控制面板|添加删除程序|添加删除Windows组件,勾上应用程序服务器,点击详细信息,注意勾上“Asp.net”
  
这里需要仔细核查的,是不要安装“frontPage 2002扩展,否则后续步骤中安装wss会出现问题。

5
、修改密码策略
   
这世界,当然懒惰的人居多,我们不愿意记忆太复杂的密码,所以:
  
控制面板|管理工具|域安全策略,找到账户|密码安全策略,禁用密码复杂性,将密码最小长度设为6

7
、增加三个域账户:
   TfsSetup
:用于安装Tfs的账户,简言之,我们再安装过程中都要使用这个账户登录。该帐户必须设为域管理组成员和数据库服务器本地管理员组的成员。
   Tfs
Tfs的运行账户,该帐户必须设为域管理组成员和数据库服务器本地管理员组的成员。
   report
ReportService的运行账户。
  
如何设为域管理员组成员?在DC上,控制面板|管理工具|Active directory用户和计算机,找到该用户,在快捷菜单中选择添加到组...”,后面的一般只要达到傻瓜级别的智商,总知道怎么做。
  
如何设为数据库服务器本机管理员组的成员?使用本地管理员登录到本机,在控制面板|管理工具|计算机管理|本地用户与组中,找到adminisrators组,在快捷菜单中选择添加成员,然后...

8
、将数据库服务器加入到域:
 
当然,前提是数据库服务器操作系统已经装好。同时,尤其要注意,本地连接的Tcp/ip属性中,需要将Dns地址设为域控制器的IP,我们这里定为192.168.0.1
  
我的电脑|属性|计算机名称,选中,输入域的名称“soft.local”。回弹出一个窗体,要求输入有权利将机器加入到域的域账户名称和密码。我们输入域用户soft\administrator和密码,等待一会儿会出现欢迎加入到
soft.local
的提示。
  
之后会要求重启,先别忙,将TfsSetup,TfsReport添加到本地管理员组之后,再重新启动。

 

Tomcat 配置技巧精华详解分析

现在开发Java Web应用,建立和部署Web内容是一件很简单的工作。使用Jakarta Tomcat作为ServletJSP容器的人已经遍及全世界。Tomcat具有免费、跨平台等诸多特性,并且更新得很快,现在非常的流行。

你所需要做的就是:按照你的需求配置Tomcat,只要你正确配置,Tomcat一般都能适合你的要求。下面是一系列关于Tomcat的配置技巧,这些技巧源自于Tomcat权威指南》,希望对你有所帮助。—— Jason Brittain

1
配置系统管理(Admin Web Application
大多数商业化的J2EE服务器都提供一个功能强大的管理界面,且大都采用易于理解的Web应用界面。Tomcat按照自己的方式,同样提供一个成熟的管理工具,并且丝毫不逊于那些商业化的竞争对手。TomcatAdmin Web Application最初在4.1版本时出现,当时的功能包括管理contextdata sourceusergroup等。当然也可以管理像初始化参数,usergrouprole的多种数据库管理等。在后续的版本中,这些功能将得到很大的扩展,但现有的功能已经非常实用了。

Admin Web Application
被定义在自动部署文件:CATALINA_BASE/webapps/admin.xml
(译者注:CATALINA_BASEtomcat安装目录下的server目录)

你必须编辑这个文件,以确定Context中的docBase参数是绝对路径。也就是说,CATALINA_BASE/webapps/admin.xml 的路径是绝对路径。作为另外一种选择,你也可以删除这个自动部署文件,而在server.xml文件中建立一个Admin Web Applicationcontext,效果是一样的。你不能管理Admin Web Application这个应用,换而言之,除了删除CATALINA_BASE/webapps/admin.xml ,你可能什么都做不了。

如果你使用UserDatabaseRealm(默认),你将需要添加一个user以及一个roleCATALINA_BASE/conf/tomcat-users.xml 文件中。你编辑这个文件,添加一个名叫“admin”role 到该文件中,如下:

<role name="admin"/>

你同样需要有一个用户,并且这个用户的角色是“admin”。象存在的用户那样,添加一个用户(改变密码使其更加安全):

<user name="admin" password="deep_dark_secret" roles="admin"/>

当你完成这些步骤后,请重新启动Tomcat,访问http://localhost:8080/admin,你将看到一个登录界面。Admin Web Application采用基于容器管理的安全机制,并采用了Jakarta Struts框架。一旦你作为“admin”角色的用户登录管理界面,你将能够使用这个管理界面配置Tomcat

2
.配置应用管理(Manager Web Application
Manager Web Application
让你通过一个比Admin Web Application更为简单的用户界面,执行一些简单的Web应用任务。

Manager Web Application
被被定义在一个自动部署文件中:

CATALINA_BASE/webapps/manager.xml


你必须编辑这个文件,以确保contextdocBase参数是绝对路径,也就是说CATALINA_HOME/server/webapps/manager的绝对路径。
(译者注:CATALINA_HOMEtomcat安装目录)

如果你使用的是UserDatabaseRealm,那么你需要添加一个角色和一个用户到CATALINA_BASE/conf/tomcat-users.xml文件中。接下来,编辑这个文件,添加一个名为“manager”的角色到该文件中:

<role name=”manager”>

你同样需要有一个角色为“manager”的用户。像已经存在的用户那样,添加一个新用户(改变密码使其更加安全):

<user name="manager" password="deep_dark_secret" roles="manager"/>

然后重新启动Tomcat,访问http://localhost/manager/list,将看到一个很朴素的文本型管理界面,或者访问http://localhost/manager/html/list,将看到一个HMTL的管理界面。不管是哪种方式都说明你的Manager Web Application现在已经启动了。

Manager application
让你可以在没有系统管理特权的基础上,安装新的Web应用,以用于测试。如果我们有一个新的web应用位于/home/user/hello下在,并且想把它安装到 /hello下,为了测试这个应用,我们可以这么做,在第一个文件框中输入“/hello”(作为访问时的path),在第二个文本框中输入“file:/home/user/hello”(作为Config URL)。

Manager application
还允许你停止、重新启动、移除以及重新部署一个web应用。停止一个应用使其无法被访问,当有用户尝试访问这个被停止的应用时,将看到一个503的错误——“503 - This application is not currently available”

移除一个web应用,只是指从Tomcat的运行拷贝中删除了该应用,如果你重新启动Tomcat,被删除的应用将再次出现(也就是说,移除并不是指从硬盘上删除)。

3
.部署一个web应用
有两个办法可以在系统中部署web服务。
1>
拷贝你的WAR文件或者你的web应用文件夹(包括该web的所有内容)到$CATALINA_BASE/webapps目录下。
2>
为你的web服务建立一个只包括context内容的XML片断文件,并把该文件放到$CATALINA_BASE/webapps目录下。这个web应用本身可以存储在硬盘上的任何地方。

如果你有一个WAR文件,你若想部署它,则只需要把该文件简单的拷贝到CATALINA_BASE/webapps目录下即可,文件必须以“.war”作为扩展名。一旦Tomcat监听到这个文件,它将(缺省的)解开该文件包作为一个子目录,并以WAR文件的文件名作为子目录的名字。接下来,Tomcat将在内存中建立一个context,就好象你在server.xml文件里建立一样。当然,其他必需的内容,将从server.xml中的DefaultContext获得。

部署web应用的另一种方式是写一个Context XML片断文件,然后把该文件拷贝到CATALINA_BASE/webapps目录下。一个Context片断并非一个完整的XML文件,而只是一个context元素,以及对该应用的相应描述。这种片断文件就像是从server.xml中切取出来的context元素一样,所以这种片断被命名为“context片断

举个例子,如果我们想部署一个名叫MyWebApp.war的应用,该应用使用realm作为访问控制方式,我们可以使用下面这个片断:

<!--  
 Context fragment for deploying MyWebApp.war  
-->
<Context path="/demo" docBase="webapps/MyWebApp.war"
        debug="0" privileged="true">
 <Realm className="org.apache.catalina.realm.UserDatabaseRealm"                
        resourceName="UserDatabase"/>
</Context>

把该片断命名为“MyWebApp.xml”,然后拷贝到CATALINA_BASE/webapps目录下。

这种context片断提供了一种便利的方法来部署web应用,你不需要编辑server.xml,除非你想改变缺省的部署特性,安装一个新的web应用时不需要重启动Tomcat


4
.配置虚拟主机(Virtual Hosts
关于server.xml“Host”这个元素,只有在你设置虚拟主机的才需要修改。虚拟主机是一种在一个web服务器上服务多个域名的机制,对每个域名而言,都好象独享了整个主机。实际上,大多数的小型商务网站都是采用虚拟主机实现的,这主要是因为虚拟主机能直接连接到Internet并提供相应的带宽,以保障合理的访问响应速度,另外虚拟主机还能提供一个稳定的固定IP

基于名字的虚拟主机可以被建立在任何web服务器上,建立的方法就是通过在域名服务器(DNS)上建立IP地址的别名,并且告诉web服务器把去往不同域名的请求分发到相应的网页目录。因为这篇文章主要是讲Tomcat,我们不准备介绍在各种操作系统上设置DNS的方法,如果你在这方面需要帮助,请参考《DNS and Bind》一书,作者是Paul Albitz and Cricket Liu (O'Reilly)。为了示范方便,我将使用一个静态的主机文件,因为这是测试别名最简单的方法。
Tomcat中使用虚拟主机,你需要设置DNS或主机数据。为了测试,为本地IP设置一个IP别名就足够了,接下来,你需要在server.xml中添加几行内容,如下:

<Server port="8005" shutdown="SHUTDOWN" debug="0">
 <Service name="Tomcat-Standalone">
   <Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
port="8080" minProcessors="5" maxProcessors="75"
enableLookups="true" redirectPort="8443"/>
   <Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
port="8443" minProcessors="5" maxProcessors="75"
acceptCount="10" debug="0" scheme="https" secure="true"/>
     <Factory className="org.apache.coyote.tomcat4.CoyoteServerSocketFactory"
clientAuth="false" protocol="TLS" />
   </Connector>
   <Engine name="Standalone" defaultHost="localhost" debug="0">
     <!-- This Host is the default Host -->
     <Host name="localhost" debug="0" appBase="webapps"
     unpackWARs="true" autoDeploy="true">
       <Context path="" docBase="ROOT" debug="0"/>
       <Context path="/orders" docBase="/home/ian/orders" debug="0"
                      reloadable="true" crossContext="true">
       </Context>
     </Host>

     <!-- This Host is the first "Virtual Host": www.example.com -->
     <Host name="www.example.com" appBase="/home/example/webapp">
       <Context path="" docBase="."/>
     </Host>

   </Engine>
 </Service>
</Server>

Tomcat
server.xml文件,在初始状态下,只包括一个虚拟主机,但是它容易被扩充到支持多个虚拟主机。在前面的例子中展示的是一个简单的server.xml版本,其中粗体部分就是用于添加一个虚拟主机。每一个Host元素必须包括一个或多个context元素,所包含的context元素中必须有一个是默认的context,这个默认的context的显示路径应该为空(例如,path=””)。

5
.配置基础验证(Basic Authentication
容器管理验证方法控制着当用户访问受保护的web应用资源时,如何进行用户的身份鉴别。当一个web应用使用了Basic AuthenticationBASIC参数在web.xml文件中auto-method元素中设置),而有用户访问受保护的web应用时,Tomcat将通过HTTP Basic Authentication方式,弹出一个对话框,要求用户输入用户名和密码。在这种验证方法中,所有密码将被以64位的编码方式在网络上传输。

注意:使用Basic Authentication通过被认为是不安全的,因为它没有强健的加密方法,除非在客户端和服务器端都使用HTTPS或者其他密码加密码方式(比如,在一个虚拟私人网络中)。若没有额外的加密方法,网络管理员将能够截获(或滥用)用户的密码。但是,如果你是刚开始使用Tomcat,或者你想在你的web应用中测试一下基于容器的安全管理,Basic Authentication还是非常易于设置和使用的。只需要添加<security-constraint><login-config>两个元素到你的web应用的web.xml文件中,并且在CATALINA_BASE/conf/tomcat-users.xml 文件中添加适当的<role><user>即可,然后重新启动Tomcat

下面例子中的web.xml摘自一个俱乐部会员网站系统,该系统中只有member目录被保护起来,并使用Basic Authentication进行身份验证。请注意,这种方式将有效的代替Apache web服务器中的.htaccess文件。

<!--
 Define the Members-only area, by defining
 a "Security Constraint" on this Application, and
 mapping it to the subdirectory (URL) that we want
 to restrict.
-->
<security-constraint>
 <web-resource-collection>
   <web-resource-name>
     Entire Application
   </web-resource-name>
   <url-pattern>/members/*</url-pattern>
 </web-resource-collection>
 <auth-constraint>
     <role-name>member</role-name>
 </auth-constraint>
</security-constraint>
<!-- Define the Login Configuration for this Application -->
<login-config>
 <auth-method>BASIC</auth-method>
 <realm-name>My Club Members-only Area</realm-name>
</login-config>

6
.配置单点登录(Single Sign-On
一旦你设置了realm和验证的方法,你就需要进行实际的用户登录处理。一般说来,对用户而言登录系统是一件很麻烦的事情,你必须尽量减少用户登录验证的次数。作为缺省的情况,当用户第一次请求受保护的资源时,每一个web应用都会要求用户登录。如果你运行了多个web应用,并且每个应用都需要进行单独的用户验证,那这看起来就有点像你在与你的用户搏斗。用户们不知道怎样才能把多个分离的应用整合成一个单独的系统,所有他们也就不知道他们需要访问多少个不同的应用,只是很迷惑,为什么总要不停的登录。

Tomcat 4
“single sign-on”特性允许用户在访问同一虚拟主机下所有web应用时,只需登录一次。为了使用这个功能,你只需要在Host上添加一个SingleSignOn Valve元素即可,如下所示:

<Valve className="org.apache.catalina.authenticator.SingleSignOn"
      debug="0"/>

Tomcat初始安装后,server.xml的注释里面包括SingleSignOn Valve配置的例子,你只需要去掉注释,即可使用。那么,任何用户只要登录过一个应用,则对于同一虚拟主机下的所有应用同样有效。

使用single sign-on valve有一些重要的限制:
1> value
必须被配置和嵌套在相同的Host元素里,并且所有需要进行单点验证的web应用(必须通过context元素定义)都位于该Host下。
2>
包括共享用户信息的realm必须被设置在同一级Host中或者嵌套之外。
3>
不能被context中的realm覆盖。
4>
使用单点登录的web应用最好使用一个Tomcat的内置的验证方式(被定义在web.xml中的<auth-method>中),这比自定义的验证方式强,Tomcat内置的的验证方式包括basicdigestformclient-cert
5>
如果你使用单点登录,还希望集成一个第三方的web应用到你的网站中来,并且这个新的web应用使用它自己的验证方式,而不使用容器管理安全,那你基本上就没招了。你的用户每次登录原来所有应用时需要登录一次,并且在请求新的第三方应用时还得再登录一次。当然,如果你拥有这个第三方web应用的源码,而你又是一个程序员,你可以修改它,但那恐怕也不容易做。
6>
单点登录需要使用cookies

7
.配置用户定制目录(Customized User Directores
一些站点允许个别用户在服务器上发布网页。例如,一所大学的学院可能想给每一位学生一个公共区域,或者是一个ISP希望给一些web空间给他的客户,但这又不是虚拟主机。在这种情况下,一个典型的方法就是在用户名前面加一个特殊字符(~),作为每位用户的网站,比如:

http://www.cs.myuniversity.edu/~username
http://members.mybigisp.com/~username

Tomcat
提供两种方法在主机上映射这些个人网站,主要使用一对特殊的Listener元素。ListenerclassName属性应该是org.apache.catalina.startup.UserConfiguserClass属性应该是几个映射类之一。如果你的系统是Unix,它将有一个标准的/etc/passwd文件,该文件中的帐号能够被运行中的Tomcat很容易的读取,该文件指定了用户的主目录,使用PasswdUserDatabase 映射类。

<Listener className="org.apache.catalina.startup.UserConfig"
directoryName="public_html"
userClass="org.apache.catalina.startup.PasswdUserDatabase"/>

web
文件需要放置在像/home/users/ian/public_html 或者 /users/jbrittain/public_html一样的目录下面。当然你也可以改变public_html 到其他任何子目录下。

实际上,这个用户目录根本不一定需要位于用户主目录下里面。如果你没有一个密码文件,但你又想把一个用户名映射到公共的像/home一样目录的子目录里面,则可以使用HomesUserDatabase类。

<Listener className="org.apache.catalina.startup.UserConfig"
directoryName="public_html" homeBase="/home"
userClass="org.apache.catalina.startup.HomesUserDatabase"/>

这样一来,web文件就可以位于像/home/ian/public_html 或者 /home/jasonb/public_html一样的目录下。这种形式对Windows而言更加有利,你可以使用一个像c:\home这样的目录。

这些Listener元素,如果出现,则必须在Host元素里面,而不能在context元素里面,因为它们都用应用于Host本身。


8
.在Tomcat中使用CGI脚本
Tomcat
主要是作为Servlet/JSP容器,但它也有许多传统web服务器的性能。支持通用网关接口(Common Gateway Interface,即CGI)就是其中之一,CGI提供一组方法在响应浏览器请求时运行一些扩展程序。CGI之所以被称为通用,是因为它能在大多数程序或脚本中被调用,包括:PerlPythonawkUnix shell scripting等,甚至包括Java。当然,你大概不会把一个Java应用程序当作CGI来运行,毕竟这样太过原始。一般而言,开发Servlet总要比CGI具有更好的效率,因为当用户点击一个链接或一个按钮时,你不需要从操作系统层开始进行处理。

Tomcat
包括一个可选的CGI Servlet,允许你运行遗留下来的CGI脚本。

为了使Tomcat能够运行CGI,你必须做如下几件事:
1.
servlets-cgi.renametojar (在CATALINA_HOME/server/lib/目录下)改名为servlets-cgi.jar。处理CGIservlet应该位于TomcatCLASSPATH下。
2.
TomcatCATALINA_BASE/conf/web.xml 文件中,把关于<servlet-name> CGI的那段的注释去掉(默认情况下,该段位于第241行)。
3.
同样,在TomcatCATALINA_BASE/conf/web.xml文件中,把关于对CGI进行映射的那段的注释去掉(默认情况下,该段位于第299行)。注意,这段内容指定了HTML链接到CGI脚本的访问方式。
4.
你可以把CGI脚本放置在WEB-INF/cgi 目录下(注意,WEB-INF是一个安全的地方,你可以把一些不想被用户看见或基于安全考虑不想暴露的文件放在此处),或者你也可以把CGI脚本放置在context下的其他目录下,并为CGI Servlet调整cgiPathPrefix初始化参数。这就指定的CGI Servlet的实际位置,且不能与上一步指定的URL重名。
5.
重新启动Tomcat,你的CGI就可以运行了。

Tomcat中,CGI程序缺省放置在WEB-INF/cgi目录下,正如前面所提示的那样,WEB-INF目录受保护的,通过客户端的浏览器无法窥探到其中内容,所以对于放置含有密码或其他敏感信息的CGI脚本而言,这是一个非常好的地方。为了兼容其他服务器,尽管你也可以把CGI脚本保存在传统的/cgi-bin目录,但要知道,在这些目录中的文件有可能被网上好奇的冲浪者看到。另外,在Unix中,请确定运行Tomcat的用户有执行CGI脚本的权限。

9
.改变Tomcat中的JSP编译器(JSP Compiler
Tomcat 4.1(或更高版本,大概),JSP的编译由包含在Tomcat里面的Ant程序控制器直接执行。这听起来有一点点奇怪,但这正是Ant有意为之的一部分,有一个API文档指导开发者在没有启动一个新的JVM的情况下,使用Ant。这是使用Ant进行Java开发的一大优势。另外,这也意味着你现在能够在Ant中使用任何javac支持的编译方式,这里有一个关于Apache Ant使用手册的javac page列表。使用起来是容易的,因为你只需要在<init-param> 元素中定义一个名字叫“compiler”,并且在value中有一个支持编译的编译器名字,示例如下:

<servlet>
   <servlet-name>jsp</servlet-name>
   <servlet-class>
     org.apache.jasper.servlet.JspServlet
   </servlet-class>
   <init-param>
     <param-name>logVerbosityLevel</param-name>
     <param-value>WARNING</param-value>
   </init-param>
   <init-param>
     <param-name>compiler</param-name>
     <param-value>jikes</param-value>
   </init-param>
   <load-on-startup>3</load-on-startup>
</servlet>

当然,给出的编译器必须已经安装在你的系统中,并且CLASSPATH可能需要设置,那处决于你选择的是何种编译器。

10
.限制特定主机访问(Restricting Access to Specific Hosts
有时,你可能想限制对Tomcat web应用的访问,比如,你希望只有你指定的主机或IP地址可以访问你的应用。这样一来,就只有那些指定的的客户端可以访问服务的内容了。为了实现这种效果,Tomcat提供了两个参数供你配置:RemoteHostValve RemoteAddrValve

通过配置这两个参数,可以让你过滤来自请求的主机或IP地址,并允许或拒绝哪些主机/IP。与之类似的,在Apachehttpd文件里有对每个目录的允许/拒绝指定。
例如你可以把Admin Web application设置成只允许本地访问,设置如下:

<Context path="/path/to/secret_files" ...>
 <Valve className="org.apache.catalina.valves.RemoteAddrValve"
        allow="127.0.0.1" deny=""/>
</Context>

如果没有给出允许主机的指定,那么与拒绝主机匹配的主机就会被拒绝,除此之外的都是允许的。与之类似,如果没有给出拒绝主机的指定,那么与允许主机匹配的主机就会被允许,除此之外的都是拒绝的。

  

          tomcat配置web在线后台管理

默认的时候,当我们安装完tomcat后,输入网址:http://localhost:8080/admin/会提示“TOMCAT web Server Administrator"下面是要输入用户和密码,因为默认的时候是没有管理用户的权限的用户,所以我们要创建一个:在你的tomcat/conf/下有个tomcat-users.xml打开: <?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
  <role rolename="tomcat"/>
  <role rolename="role1"/>
  <role rolename="standard"/>
  <role rolename="manager"/>
  <role rolename="admin"/>
    <user username="tomcat" password="tomcat" roles="tomcat"/>
    <user username="role1" password="tomcat" roles="role1"/>
  <user username="both" password="tomcat" roles="tomcat,role1"/>
</tomcat-users>
 
我们看到在tomcat用户配置文件里,有tomcat,manager,admin等几个角色,下面我们增加一个用户,并为他赋予全部权限: <user username="123" password="123" roles="admin,manager,tomcat"/>保存文件,重新启动tomcat,打开http://localhost:8080/admin/,输入用户名和密码: OK!期待中的tomcat web管理后台出现了,可以用它配置数据源,连接池等,相应的配置,tomcat会自动修改server.xml文件。