SCO UNIX环境下重建Oracle7数据库Windows系统

| 收藏本文 下载本文 作者:在逃帕恰

下面就是小编整理的SCO UNIX环境下重建Oracle7数据库Windows系统(共含6篇),希望大家喜欢。同时,但愿您也能像本文投稿人“在逃帕恰”一样,积极向本站投稿分享好文章。

SCO UNIX环境下重建Oracle7数据库Windows系统

篇1:SCO UNIX环境下重建Oracle7数据库Windows系统

SCO UNIX 环境下重建 Oracle 7 数据库 ORACLE7安装成功之后便建有一数据库ora7或or71,如果自己做应用 开发 ,则可能要重建数据库或建一新的数据库以满足自己的需要,而ORACLE重建数据库不但要用SQL命令createdatabase创建,还要指定大量的参数,如控制文件、日志

SCOUNIX环境下重建Oracle7数据库

ORACLE7安装成功之后便建有一数据库ora7或or71,如果自己做应用开发,则可能要重建 数据库或建一新的数据库以满足自己的需要,而ORACLE重建数据库不但要用SQL命令create database创建,还要指定大量的参数,如控制文件、日志文件、参数文件、数据库实例名, 并且要建立相关的系统段、回滚段、用户段等,及其对应的数据文件。其步骤如下:

以oracle用户登录UNIX系统

SCOSYSV!LOGINracle

备份后删除原数据库文件和控制文件

$cd ./dbs

$rm*.dbf

$rm*.ctl

$cd /*进入oracle用户目录*/

编辑文件.profile,在$ORACLE_HOME目录中(假设为/u/oracle)

$vi .profile

#插入以下各行,设置环境变量

ORACLE_HOME=/u/oracle;export ORACLE_HOME

TK2DEV=ANSI

#ORACLE_SID是库实例名,建议四个字母或数字

ORACLE_SID=olib

PATH=/usr/bin:/u/bin:/u/sbin:$ORACLE_HOME/bin

exprot TK2DEV

exprot ORACLE_SID

exprot PATH

:wq! 存盘退出

进入ORACLE_HOME/dbs目录设置参数文件

$cd ./dbs

编辑init$ORACLE_SID.ora文件

$cp init.ora initolib.ora #用原始的初始化文件设置

$cp init_0.ora initolib_0.ora #原始的初始化文件用于create database

$vi initolib_0.ora

#设置参数文件

#ifile=$ORACLE

_HOME/dbs/config

$ORACLE_SID.ora

ifile =/u/oracle/dbs/configolib.ora

rollback_segments =( #先设回滚段为空,在initolib.ora中为#(r01,r02,r03,r04

:qw!存盘退出

编辑config$ORACLE_SID.ora文件

$vi configolib.ora

# 设置控制文件

control_files=(/u/oracle/dbs/ctr1olib.ctl #三个控制文件最好

/u/oracle/dbs/ctr2olib.ctl,#放在不同目录或

/u/oracle/dbs/ctr3olib.ctl)#磁盘上

db_block_size=2048 #可自行确定

db_name=olib #设置数据库名

:wq! 存盘退出

编辑建库SQL命令文件

$cd ./dbs

$cp crora7.sql crolib.sql #用原始的SQL文件编辑

$cp cr2ora7.sql cr2olib.sql #用原始的SQL文件编辑

$vi crolib.sql

set termout on

set echo on

spool/u/oracle/dbs/crolib.lst /*输出到文件crilib.lst*/

connect internal /*dba连接到internal*/

/*用参数文件initolib_0.ora启动数据库实例,但不安装实例*/

startup nomount pfile=/u/oracle/dbs/initolib_0.ora

create database“olib” /*数据库名*/

maxinstances 1 /*可同时打开数据库实例的最大值*/

maxlogfiles 16 /*可建的日志文件组的最大值*/

datafile /*指定用于SYSTEM表空间的数据文件*/

`/u/oracle/dbs/systolib.dbf' size 25M

logfile /*指定日志文件,最好放在不同磁盘上*/

`/u/oracle/dbs/log1olib.dbf' size 500k,

`/u/oralce/dbs/log2olib.dbf' size 500k,

`/u/oracle/dbs/log3olib.dbf' size 500k;

disconnect

spool off

<EOF:>

编辑建数据字典与表空间SQL命令文件

$vi cr2olib.sql

…/*由于文件较大,未录,

需要者请与作者联系*/

开始建库

重新以ORACLE用户登录,让.profile文件起作用.

$cd ./dbs /*进入/dbs目录*/

$sqldba mode=line /*以行命令方式启动DBA工具*/

SQLDBA>@CROLIB.SQL /*执行建库SQL命令文件/

SQLDBA>@CR2OLIB.SQL /*执行建数据字典SQL命令文件*/

SQLDBA>EXIT

$

此时已建立数据库olib,并建用户sys/change_on_install和sys-tem/manager

如需创建其他用户可以用system用户进入SQLDBA后

SQLDBA>CREATE USER MYUSER IDENTIFIED BY MYPAS-WORD

DEFAULT TABLESPACE USERS

TEMPORARY TABLESPACE TEMP

QUOTA UNLIMITED ON USERS

QUOTA 5M ON SYSTEM

QUOTA 5M ON TEMP

;

再授予用户特权

SQLDBA>GRANTDBA TO MYUSER;

这样重建数据库的过程就全部完成,之后就可以建立表空间和自己设计的表进行开发或 应用了。

如想用原命令$dbstart启动新的数据库只要修改文件oratab即可。

$vi /etc/oratab

olib :/u/oracle:Y /*第一个参数为数据库名,

第二个参数为$ORACLE_HOME路径,

第三个参数为自定义$ORACLE_SID库名,即第

一个参数的存在情况是Yes.

*/

:wq! /*存盘退出*/

这样就可用$dbstart启动了。

yanguo66 回复于:-09-24 08:04:07hbczjzc,谢谢你,好多内容都不用在到网上费力去搜了!

meteor06 回复于:2003-09-24 08:08:36好文章

原文转自:www.ltesting.net

篇2:Windows环境下如何卸载DB2数据库

DB2 UDB版本8使用“Windows Installer”技术安装,因此跟先前版本的安装和卸载有了很大的改变,

尽管在Windows操作系统上有四种方式可以卸载DB2 UDB版本8软件,它们并不完全一样。在卸载时应该首先考虑首选卸载方法。 剩下的方法必须在首选卸载方法失败,并且跟DB2 UDB服务人员联系后再尝试使用。

首选卸载方法

控制面板-添加/删除程序

通过Windows控制面板中的添加/删除程序来卸载DB2 UDB 版本8是最好的方式,

根据不同的Windows操作系统,DB2产品在 添加/删除 程序窗口中可能有“删除” 和/或 “改变”按钮。 您可以使用任何一个按钮来卸载DB2。

在DB2卸载的第一个窗口中,“下一步”按钮可能是灰的。这是因为Windows会在后台执行一些程序确保DB2可以被卸载。一旦Windows Installer可以继续处理,“下一步”按钮会变为可用状态,您可以点击“下一步”继续后面的操作。

如果DB2卸载失败,您可以联系DB2服务人员,以便获取得到卸载日志和跟踪文件的方法,以便进一步确定问题的原因。

下面的卸载方法只应该在首选卸载方法失败的情况下使用。

篇3:windows环境下如何恢复系统备份

Ghost的功能非常强大,但由于它的备份和恢复操作都是在Dos下完成的,英文界面和较多的选项让很多用户望而生畏,尤其是恢复硬盘分区时,一旦选错了“恢复到”的分区,就会造成灾难性后果:该分区上的所有数据都会被“覆盖”,无法再找回!

不过,现在我可以高兴地告诉大家:在我们熟悉的Windows下,也能轻松完成Ghost的功能——克隆硬盘分区乃至整个硬盘!相信您掌握它后会发现,原来从菜鸟到高手其实只需要几个软件而已……

用Drive Image 备份硬盘

Drive Image 2002是一款与Norton Ghost齐名的硬盘克隆工具,其独特的SmartSector磁盘镜像文件创建功能,可以让用户快速创建整个硬盘或者是硬盘分区的镜像文件。它支持FAT、FAT32、NTFS和HPFS文件系统,支持通过网络为其他计算机的硬盘制作镜像文件,或是通过网络将镜像文件恢复到本地硬盘中。

1. 功能简介

我们可以在大型软件下载网站找到Drive Image 2002的试用版。下载、安装并运行Drive Image 2002后,它首先会弹出一个对话框,选中“Dont show this again”选项前的复选框,再单击“OK”按钮,即可进入Drive Image 2002的主界面,如图1所示。

从Drive Image 2002主界面中我们可以看到,Drive Image 2002实际上是一款综合的硬盘工具,有兴趣的朋友可以试用一下它的磁盘维护、制作引导盘等功能,在本文中我们一起来学习它最核心的功能——制作硬盘分区镜像文件和恢复硬盘分区的操作,

2. 制作硬盘分区镜像文件

步骤1 在如图1所示的界面中单击“Create Image”(创建镜像文件)按钮后,程序会弹出如图2所示的界面。

步骤2 在该界面中单击左侧窗口中的“Select Drives”按钮,即可在右侧的窗口中通过单击硬盘分区前的复选框来确定要制作镜像文件的分区。如果用户有多块硬盘,硬盘选择窗口就会列出多块硬盘,选择某一块硬盘后,下方窗口会显示该硬盘上所有的分区及使用状况。

步骤3 单击左侧窗口中的“Select Destination”按钮,可打开如图3所示的界面,我们可以在右侧的窗口上方选择保存镜像文件的硬盘分区(如果该分区的空闲容量小于即将创建的镜像文件,那么该分区将不可选),然后在“Image”下面的输入框中设置镜像文件的保存文件夹和文件名,在“Image files”下面的输入框中可输入对镜像文件的描述。

步骤4 接下来单击左侧窗口下方的“Options”按钮,然后在打开的如图4所示的界面中进行设置:在“Compression Level”窗口下设置对制作的镜像文件的压缩级别;在“Sectuity”下的窗口中先选中“PassWord-protect image”前的复选框,然后在下面的两个输入框中键入相同的密码后,就可以为自己制作的镜像文件加上密码,以后只有提供了正确的密码才能用该镜像文件还原分区。如果你欲将制作的镜像文件刻录到光盘等介质上,那么可以选中“Split image Multiple”前的复选框,然后在“Size of each”的下拉列表中选择一个合适的容量,让Drive Image 2002将镜像文件自动划分成你指定的大小。

篇4:如何在windows系统下安装MySQL数据库

可以运行在本地windows版本的MySQL数据库程序自从3.21版以后已经可以从MySQL AB公司获得,而且 MYSQL每日的下载百分比非常大.这部分描述在windows上安装MySQL的过程. 安装程序是针对windows版本的MySQL 5.0,结合了图形安装向导,自动的安装MySQL,创建 一个配置

可以运行在本地windows版本的MySQL数据库程序自从3.21版以后已经可以从MySQL AB公司获得,而且 MYSQL每日的下载百分比非常大.这部分描述在windows上安装MySQL的过程. 安装程序是针对windows版本的MySQL 5.0,结合了图形安装向导,自动的安装MySQL,创建 一个配置文件,启动服务器,和保护默认的用户帐户. 如果你是升级安装现有的MySQL 4.1.5版本.你必须完成下列步骤:

1. 获得和安装 2. 如果有必要安装配置文件 3. 选择一个想要使用的服务器. 4. 启动服务器 5. 为MYSQL帐户设置密码. 这个过程在没有安装配置的myslq安装程序里完成.
MySQL 5.0 for Windows 可用的种格式:
・ 包含二进制的安装程序可以安装所有你需要的依次你可以立即启动服务器. ・ 原始类包括所有代码和支持文件建造执行使用Visual Studio 编译系统.

一般来讲,你应该使用二进制形式.较其他比较简单,和你不需要额外的工具让mysql使用 和运行. 本文主要描述怎样在windows上安装使用二进制格式的MYSQL.

一、要在WINDOWS上运行MYSQL,你要具备下列条件:

・ 一个32位WINDOWS操作系统,9x,ME,NT,,XP,或者 windows server2003.基于 WINDOWS NT操作系统(NT,2000,XP,2003)允许你运行MYSQL 服务器为一个服务.使用基于 WINDOWS NT操作系统是我们强烈推荐的.

・ TCP/IP协议支持. ・ 二进制版本的MYSQL for windows,可以从 dev.mysql.com/downloads/下 载,注意: 如果你通过FTP下载.我们推荐使用适当的FTP软件很重要.避免在现在过程中文件 损坏..

・ 一个可以打开.zip 文件的工具,用来打开安装文件

・ 硬盘的空间推荐最小200M. 如果准备通过ODBC连接MYSQL,你也需要ODBC连接驱动

・ 你过你需要的表大于4GB,安装MYSQL在NTFS或者新的文件系统上.当你创建表的时不 要忘记使用 MAX-ROWS和AVG_ROW_LENGTH.

二、选择一个安装组件

对于MYSQL 5.0,有三个组件用来选择安装MYSQL在WINDOWS上.下列是组件:

・ 基本组件:这个组件有一个类似于mysql-essential-5.0.13-rc-win32.msi和包含最 小需求文件组件不包含可选组件与内含的服务器和基准组件

・ 全部组件:这个组件有一个文件名类似 mysql-5.0.13-rc-win32.zip和包含所有可需 文件来完成WINDOWS安装.包括配置向导.这个组件包括可选组件与内含的服务器和基准 组件

・ 无安装存档:. 这个组件有一个类似于mysql-noinstall-5.0.13-rc-win32.zip的文 件名和包含建立完成安装组件的文件.配置向导除外.这个组件不包含自动安装,必须手 动安装和配置.大多数拥护推荐使用基本组件.

三、使用配置向导

MySQL配置向导可以帮助您实现WINDOWS系统下的服务器自动配置。MySQL配置向导首先会根据一一系列的问题创 建一个定制好的my.ini文件,然后根据填写内容并将其应用到模板中从而产生一个跟安装相适应的my.ini文件 。配置向导包含在MySQL 5.0服务器中,现在只适合WINDOWS用户。配置向导很大程度上来源于用户近几年在My SQL AB上的反馈信息。如果你觉得向导内容缺少你所需要的重要内 容,或者,你发现有错误,请通过MySQL 错误报告系统要求添加新特性或报告错误信息。

安装完毕后可以直接进入配置向导或通过点击WINDOWS开始程序中的MySQL服务器实例向导进入MySQL配置向导。 另外,也可以找到MySQL安装目录下的bin目录下的MySQLInstanceConfig.exe文件并直接运行它。

如果你的MySQL配置向导发现了一个已经存在的my.ini文件,你可以重新配置已经存在的服务器,或者通过删除 my.ini文件、停止并移除MySQL服务的方法移除服务器实例。重新配置已经存在的服务器,选择“重新配置实例”选项并且选择“下一步”按钮。已经存在的my.ini文件被 重新命名为mytimestamp.ini.bak,时间戳是已经存在的my.ini创建时的日期和时间。移除已经存在的数据库实 例,选择“移除实例”选项并选择“下一步”按钮。如果选择了“移除实例”选项,进入到确认界面。单击“运行”按钮:MySQL配置向导停止并开始移除MySQL服 务,并删除my.ini文件。但服务器安装目录并没有移除。如果选择了“重新配置实例”选项,进入到“配置类型”界面,可以选择安装想要配置的安装类型。

选择了MySQL配置向导的 “安装MySQL”,或“重新配置实例”,都将进入到“配置类型”界面有两个配置类型可供选择:详细配置和标准配置。标准配置选项是为那些不需要考虑复杂服务器配置的新手而 设计的。详细配置选项是给那些能更高好的操作服务器的高级用户使用的。如果您刚开始使用MySQL,并且把它做为一个单一用户的开发机器使用的话,标准配置能满足您的需求。选择标 准配置后,除了服务选项和安全选项外配置向导对其他部分都做了自动配置。如果你的机器中有已经安装了MySQL,标准配置可能不太适合你的系统。如果愿意进一步配置的话,“详细配置 ”选项是推荐的。

然后进入服务器类型页面,有三种不同的服务器类型可供选择,选择服务器类型后配置向导将会根据选择的不同确定内存、磁盘、处理器 的使用。

• 开发版:这个选项是典型的桌面工作站,是MySQL为个人使用而设计的。有很多其他的桌面应用程序也 可以在此上运行。MySQL服务器使用了最小的系统资源。

• 服务器版:选择此选项MySQL可以和其他一些服务器应用程序如FTP,email,Web服务同时运行。MySQL 服务器配置使用了中等程度的系统资源。

• MySQL服务器专业版:这个选项是只能运行MySQL服务器,其他应用程序不可以运行。MySQL服务器配置 将使用所有可用资源。

“数据库使用”界面允许在创建MySQL表时可以指示想使用的表操作。选择项将决定InnoDB存储引擎是否可用, InnoDB所能使用系统资源的百分比。多功能的数据库:此选项InnoDB 和 MyISAM存储引擎可用,并且在两者之间平均分配资源。推荐在通常情况下 会使用这两个存储引擎的的用户使用。事务型数据库:此选项InnoDB 和 MyISAM存储引擎均可用,但更倾向于系统大部门资源为InnoDB存储引擎所使 用。推荐经常使用InnoDB而很少使用MyISAM的用户使用。

• 非事务型数据库:此选项完全禁止InnoDB存储引擎,完全专注于MyISAM存储引擎。推荐不使用InnoDB 的用户使用。

InnoDB表空间界面

有些用户更愿意将InnoDB表空间文件放在不同的位置而不是MySQL服务器数据目录。如果系统有更高的存储能力 或更高性能的存储设备可用,比如RAID存储系统,可以把表空间文件放置在不同的位置。可以修改InnoDB表空间文件的默认位置,从下拉列表框的盘符列表中选择一个并选择一个新的路径。创建定制 的路径,单击“...”。 如果修改已经存在的服务器配置,在修改路径之前必须单击“修改”按钮。在启动服务器之前必须先手工把已 经存在的表空间文件移到新的位置。

并发连接界面

控制连接到MySQL服务器的并发连接数目能有效的防止耗进系统资源。并发连接界面允许选择服务器按所需选择 服务器的使用情况, 并同时设置并发连接限制。也可以手工设定并发连接数。

• 决策支持(DSS)/联机分析处理(OLAP):服务器不要求大数目的并发连接时选择此项。最大连接数 目的连接可达100,但平均会有20个并发连接。

• 在线事务处理(OLTP):服务器要求大数量的并发连接时选择此项。最大连接数可达500。

• 手工设置:选择此项可以手工设置并发访问服务器的最大树木。从下拉列表框中选择最大可连接数, 如果下拉列表框中列出的数目没有可选择的。可手工输入最大连接数目。

网络配置选项对话框

可以使用网络配置对话框来激活或者禁止TCP/IP网络服务同时配置和MySQL服务器连接的端口号。TCP/IP网络服 务是默认激活的。Windows可以通过不选择TCP/IP网络选项的选项框禁止TCP/IP网络服务。通常默认使用的端口 是3306。如果需要改变访问MySQL的端口,可以从下拉选项框中选取新的端口号或者在选项框中直接输入新的端 口号。如果你选定的端口号已经被使用,系统将会提示你去确认对端口号的选择。

字体设置对话框

MySQL服务器支持多字体设置,同时可以为服务器设置默认服务字体,该字体可以应用于所有的数据表、列和未 被超级控制的数据库。可以使用字体设置对话框来改变MySQL服务器的默认字体设置。

1 标准的字体设置:该选项用于将Latin1作为默认的服务字体. Latin1可以用于英文和众多西文字体。

2 对于多语言字体的最佳支持:该选项用于UTF8作为默认的服务字体。在单一的字体设置中,UTF8可以存储来自 很多不同语言的字体。

3 手动选择默认字符设置/排序:该选项用于手动设置默认字体。你可以从下拉选择框所提供的字体中选择所需 要的字符。

服务选择对话框

在基于Windows NT的平台上,MySQL服务器可以被作为Windows的一项服务被安装,

当作为一项服务安装时, MySQL服务器可以随着系统的启动而自启动,并且在服务失败时,MySQL服务器可以自动重起。在MySQL的默认配置中,将MySQL服务器作为服务安装,同时该服务的名称为MySQL。如果你不希望安装该项服务 ,不选择作为Windows服务的选择框即可。你可以从所提供的下拉选择框中选取一个新的服务名称或者直接在下 拉选择框中输入新的服务名称。如果需要将MySQL服务器作为一项服务来安装,同时使MySQL不随着系统启动而自启动,则不选择自启动Mysql服 务选择框。

安全选择对话框

强烈推荐你为你的MySQL服务器设置一个相应的根用户密码,同时MySQL配置向导需要你设置一个默认的根用户 密码。如果你不希望设置根用户密码,则不要选择修改安全设置选项。为了设置根用户密码,需要将设定的根 用户密码同时输入新根密码和确认选择框里。如果你需要重新配置一个已存在的服务器,你需要将其的根用户 密码输入到当前的根密码选择框里。为了防止通过网络的根用户登录,可以在Root的选择框中设置为只允许从本地连接。这将增强你的根用户的安 全性。为了生成一个匿名用户帐户,选择生成匿名帐户的选择框。生成一个匿名用户帐号可能会降低服务器的安全性 ,同时造成登陆和认证的困难。出于这种原因,该选项一般不被推荐。

确认对话框

MySQL配置向导中的最后的对话框是确认对话框。可以点击“执行”按钮来启动配置操作。为了返回到前一个对 话框,可以点击“返回”按钮。可以点击“取消”按钮退出MySQL配置向导而无需配置服务器。当你点击“执行”按钮后而无需配置服务器,MySQL配置向导执行一系列任务,该任务在被执行时,执行进度将 会被显示在屏幕上。 MySQL配置向导首先使用由MySQL AB开发者和工程师所准备的模版配置文件来决定基于你的选择的配置文件选项 。该模版被命名为my-template.ini,同时位于你的服务期安装目录下。MySQL配置向导将这些选择项写入至 my.ini文件中。my.ini文件的最终位置将会被显示在写配置文件任务中。如果你选择为MySQL服务器生成一项服务,MySQL配置向导将会生成并启动该服务。如果你正在重新配置一个已 存在的服务,MySQL服务向导将会重起服务以重新应用改变的配置。如果你选择设置一个根密码,MySQL配置向导将会和服务器连接,设置你的新的根用户密码同时应用你已经选择 的其他安全设置。在MySQL配置向导完成其的任务后,一个摘要将会被显示出来。点击“结束”按钮退出MySQL配置向导。

配置文件my.ini的位置

MySQL配置向导将my.ini文件放置在MySQL服务器的安装目录中。这将有助于将配置文件和具体的服务器实例相 关联。为了保证MySQL服务器知道到哪里查找my.ini文件,和下面内容类似的参数将会被作为服务安装的一部分 传递给MySQL服务器:--defaults-file=“C:Program FilesMySQLMySQL Server5.0my.ini C:Program FilesMySQLMySQL Server 5.0可以被指向MySQL服务器的安装路径所代替。

编辑my.ini文件

可以使用文本编辑器打开该文件同时做出必要的编辑和修改。你也可以以MySQL Administrator的应用程序来修 改服务器配置。 MySQL客户端和应用程序,例如mysql命令行客户端和mysqldump并不能确定位于服务器安装目录中的my.ini文件 的位置。为了配置客户端和应用程序,根据你的Windows版本的不同,在C:Windows下或者在C:WINNT目录下生 成新的文件my.ini 文件

四、从Noinstall Zip Archive中安装MySQL

正在从Noinstall软件包安装MySQL的用户可以使用这个说明来手动安装MySQL。从Zip archive 中安装MySQL的 步骤如下:

1 在指定的安装目录下解压软件包。  2 制造选择文件。  3 选择MySQL服务类型。  4 开始MySQL服务。  5 保护默认账户。
解压安装软件包

为了手工安装MySQL,需要按以下步骤进行:

1 如果你需要对以前的版本更新,请参考在更新步骤刚开始时的文章 “Upgrading MySQL on Windows”。

2 如果你正在使用基于Windows NT的操作系统例如Windows NT, Windows 2000, Windows XP或者Windows Server 2003,必须保证你作为拥有管理员特权的用户登录该系统。

3 选择一个安装位置。传统的MySQL服务器安装在 C:mysql,而MySQL安装向导将 MySQL 安装到 C:Program FilesMySQL。如果不将 MySQL 安装到 C:mysql下,你必须在启动或者在选择文件中具体指出安装路径。

4 选用压缩工具将安装压缩软件解压缩至选择安装的位置上。有些压缩工具有可能将其解压到你的被选择的安 装位置的子目录中。如果是这种情况,你可以将该子目录的内容从子目录移至安装路径下。

生成选择文件

如果你需要在运行服务器时,具体化启动选项,你可以在命令行标志出他们或者在一个选择文件中设置他们。 对于每次服务器启动时所使用的服务,你将会发现使用选择文件来具体化你的MySQL配置是非常便利的。尤其是 在以下情况中:当MySQL服务在Windows上启动时,其在两个文件中寻找选项:在Windows目录下的 my.ini 文件以及C:my.cnf 文件。Windows目录典型的命名如下:C:WINDOWS or C:WINNT。你可以通过下面的命令来决定WINDIR环境变量 的值: C:> echo %WINDIR% MySQL首先在my.ini 文件中寻找选项,然后是在my.cnf 文件中。然而,为了避免混淆,最好是只用一个文件。 如果你的PC使用加载的启动装备同时C:不是启动区,那你只能通过my.ini文件来进配置。不管你使用哪种选择 文件,该文件必须是文本格式。你同时也可以充分利用包含在你的MySQL发布版的样本文件。在你的安装目录下 寻找诸如 my-small.cnf, my-medium.cnf, my-large.cnf和my-huge.cnf的文件,这些文件可以被重新命名同时 拷贝到合适的位置作为一个基本的配置文件来使用。一个选择文件可以被任何文本编辑器生成和修改,诸如 Notepad等。例如,如果MySQL被安装在E:mysql 目录下,而数据目录是在E:mydatadata下,你可以生成一个 包含 [mysqld] 部分的选择文件来具体化基本目录和数据目录的参数值:

[mysqld]# set basedir to your installation pathbasedir=E:/mysql# set datadir to the location of your data directorydatadir=E:/mydata/data
在这里需要注意Windows路径名在事先使用的斜线而不是反斜线选择文件中被具体化。因此当你使用反斜线时, 你必须使用双斜线。
[mysqld]# set basedir to your installation pathbasedir=E:\mysql# set datadir to the location of your data directorydatadir=E:\mydata\data
在Windows中,MySQL安装程序直接将数据目录安装在你安装MySQL的目录下。如果你需要在另外不同的位置使用 数据目录,你需要将整个数据目录的内容拷贝至新的位置。例如,如果MySQL安装在C:Program FilesMySQLMySQL Server 5.0 目录下,则数据目录的位置默认是在 C:Program FilesMySQLMySQL Server 5.0data下。如果你需要将E:mydata 作为你的数据目录,你需要做以下两件事情:

1 将整个数据目录和它的所有内容从C:Program FilesMySQLMySQL Server 5.0data 移至E:mydata.。

2 每次启动服务时,使用a--datadir选项来确认新的数据目录位置。

选择MySQL服务类型

以下显示了MySQL5.0Windows版本提供的服务类型:

mysqld-debug带有完全调试和自动内存分配检查的编译,该编译对象也包括 InnoDB和BDB数据表。mysqld  优化InnoDB支持的二进制数据。mysqld-nt优化命名管道支持的二进制数据。mysqld-max优化InnoDB 和 BDB数据表所支持的二进制数据mysqld-max-nt同mysqld-max功能一样,但是编译时支持命名管道
上述优化选项都是针对Intel 处理器的,但是应该可以工作在任何Intel i386-class 或者更高的处理器。在MySQL 5.0中,所有的Windows版本服务器都提供了对数据库目录的符号链接。 MySQL提供了对Windows平台上的TCP/IP 的支持。mysqld-nt和 mysql-max-nt 服务器则提供了对Windows NT,2000,XP和2003下的命名管道的支持。然而,不管在何种平台下,默认使用的都是TCP/IP。(在很多Windows 配置下,命名管道要比TCP/IP服务要慢)

命名管道的使用受以下条件的制约:

 命名管道只有当你启动服务时选择 --enable-named-pipe才会被激活。非常有必要的显式使用该选项 ,因为有些用户在命名管道正在使用时关掉MySQL服务器遇到过故障问题。  命名管道只有在mysqld-nt 或mysqld-max-nt 服务器下并且仅当该服务器运行在支持命名管道的 Windows版本的平台下才能使用。 在Windows 98 or Me系统下,只有当其安装了TCP/IP后,这些服务才能够运行。命名管道的连接不能 使用。 上述服务在Windows 95下不能够运行。注意:在参考手册中的大部分例子都使用mysqld作为服务名。如果你使用另外一个服务器,例如mysqld-nt,则 需对上述例子作合理的替代。

共2页: 1 [2] 下一页

原文转自:www.ltesting.net

篇5:Windows环境下木马程序如何隐藏系统中

以前,我曾认为只要不随便运行网友发来的文件就不会中病毒或木马,但后来出现了利用漏洞传播的冲击波、震荡波;以前,我曾认为不上小网站就不会中网页木马,但后来包括国内某知名游戏网站在内的多个大网站均在其首页被 挂上了木马,从此,我知道:安全,从来没有绝对的。

虽然没有绝对的安全,但如果能知已知彼,了解木马的隐藏手段,对于木马即使不能百战百胜,也能做到及时发现,使损失最小化。那么,木马究竟是如何躲在我们的系统中的呢?

最基本的隐藏:不可见窗体+隐藏文件

木马程序无论如何神秘,但归根究底,仍是Win32平台下的一种程序。Windows下常见的程序有两种:

1.Win32应用程序(Win32 Application),比如QQ、Office等都属于此行列。

2.Win32控制台程序(Win32 Console),比如硬盘引导修复程序FixMBR。

其中,Win32应用程序通常会有应用程序界面,比如系统中自带的“计算器”就有提供各种数字按钮的应用程序界面。木马虽然属于Win32应用程序,但其一般不包含窗体或隐藏了窗体(但也有某些特殊情况,如木马使用者与被害者聊天的窗口),并且将木马文件属性设置为“隐藏”,这就是最基本的隐藏手段,稍有经验的用户只需打开“任务管理器”,并且将“文件夹选项”中的“显示所有文件”勾选即可轻松找出木马(见图1),于是便出现了下面要介绍的“进程隐藏”技术。

第一代进程隐藏技术:Windows 98的后门

在Windows 98中,微软提供了一种能将进程注册为服务进程的方法。尽管微软没有公开提供这种方法的技术实现细节(因为Windows的后续版本中没有提供这个机制),但仍有高手发现了这个秘密,这种技术称为RegisterServiceProcess。只要利用此方法,任何程序的进程都能将自己注册为服务进程,而服务进程在Windows 98中的任务管理器中恰巧又是不显示的,所以便被木马程序钻了空子。

要对付这种隐藏的木马还算简单,只需使用其他第三方进程管理工具即可找到其所在,并且采用此技术进行隐藏的木马在Windows 2000/XP(因为不支持这种隐藏方法)中就得现形!中止该进程后将木马文件删除即可,

可是接下来的第二代进程隐藏技术,就没有这么简单对付了。

第二代进程隐藏技术:进程插入

在Windows中,每个进程都有自己的私有内存地址空间,当使用指针(一种访问内存的机制)访问内存时,一个进程无法访问另一个进程的内存地址空间,就好比在未经邻居同意的情况下,你无法进入邻居家吃饭一样。比如QQ在内存中存放了一张图片的数据,而MSN则无法通过直接读取内存的方式来获得该图片的数据。这样做同时也保证了程序的稳定性,如果你的进程存在一个错误,改写了一个随机地址上的内存,这个错误不会影响另一个进程使用的内存。

你知道吗――进程(Process)是什么

对应用程序来说,进程就像一个大容器。在应用程序被运行后,就相当于将应用程序装进容器里了,你可以往容器里加其他东西(如:应用程序在运行时所需的变量数据、需要引用的DLL文件等),当应用程序被运行两次时,容器里的东西并不会被倒掉,系统会找一个新的进程容器来容纳它。

一个进程可以包含若干线程(Thread),线程可以帮助应用程序同时做几件事(比如一个线程向磁盘写入文件,另一个则接收用户的按键*作并及时做出反应,互相不干扰),在程序被运行后中,系统首先要做的就是为该程序进程建立一个默认线程,然后程序可以根据需要自行添加或删除相关的线程

1.进程插入是什么

独立的地址空间对于编程人员和用户来说都是非常有利的。对于编程人员来说,系统更容易捕获随意的内存读取和写入*作。对于用户来说,*作系统将变得更加健壮,因为一个应用程序无法破坏另一个进程或*作系统的运行。当然,*作系统的这个健壮特性是要付出代价的,因为要编写能够与其他进程进行通信,或者能够对其他进程进行*作的应用程序将要困难得多。但仍有很多种方法可以打破进程的界限,访问另一个进程的地址空间,那就是“进程插入”(Process Injection)。一旦木马的DLL插入了另一个进程的地址空间后,就可以对另一个进程为所欲为,比如下文要介绍的盗QQ密码。

2.木马是如何盗走QQ密码的

普通情况下,一个应用程序所接收的键盘、鼠标*作,别的应用程序是无权“过问”的。可 木马是怎么偷偷记录下我的密码的呢?木马首先将1个DLL文件插入到QQ的进程中并成为QQ进程中的一个线程,这样该木马DLL就赫然成为了QQ的一部分!然后在用户输入密码时,因为此时木马DLL已经进入QQ进程内部,所以也就能够接收到用户传递给QQ的密码键入了,真是“家贼难防”啊!

篇6:Linux环境下基于策略的路由Windows系统

原文作者:MatthewG.Marsh 原文出处:www.sysadminmag.com/linux/articles/v09/i01/a3.htm 编译:ideal 目前在计算机 网络 中使用的传统路由算法都是根据IP包目的地址进行路由选择.然而在现实应用中经常有这样的 需求 :进行路由选择时不仅仅根据数据

原文作者:Matthew G. Marsh

原文出处:www.sysadminmag.com/linux/articles/v09/i01/a3.htm

编    译:ideal

目前在计算机网络中使用的传统路由算法都是根据IP包目的地址进行路由选择.然而在现实应用中经常有这样的需求:进行路由选择时不仅仅根据数据报的目的地址,而且根据数据报的其他一些特性如:源地址、IP协议、传输层端口,甚至是数据包的负载部分内容,这种类型的路由选择被称作基于策略的路由,

在Linux中,从2.1版本的内核开始就实现了对基于策略的路由的支持,它是通过使用路由策略数据库(RPDB,routing policy database)替代传统的、基于目的地址的路由表来实现的。RPDB通过包含的一些规则来选定合适的IP路由。这些规则可能会包含很多各种不同类型的健值(key),因此这些规则没有默认的特定次序,规则查找次序或规则优先级都是由网络或系统管理员设定的。

Linux的RPDB是一个由数字优先级值进行排序的线性规则列表。RPDB能匹配数据报源地址、目的地址、TOS、进入接和fwmark值等。每个路由策略规则由一个选择器和一个动作指示组成。RPDB按照优先级递增的顺序被扫描,RPDB包含的每条规则的选择器被应用于数据报的源地址、目的地址、进入接口、TOS和fwmark值。若数据报匹配该规则对应于该规则的动作被执行。若动作成功返回,则规则输出将是一个有效的路由或是路由查找失败指示;否则查找RPDB的下一条规则。

当选择器和一个数据报匹配成功,会执行哪些动作呢?路由软件的标准动作一般是选择下一跳地址和输出接口,可以称这种动作为“匹配&设置”类型动作。然而Linux采取了更加灵活的方法,在Linux中有多种动作可供选择。默认的动作是查询特定的基于目的地址的路由表。因此“匹配&设置”动作就成为Linux路由选择的最简单情况。Linux支持多个路由表,每个路由表都包含多条路由信息。也就是Linux的每个路由表都相当于其他操作系统的系统路由表。Linux支持多达255个路由表。(Linux 2.2.12 支持255个路由表,255个汇聚域和232个策略规则优先级 (4294967296 decimal) 。

对于Linux2.1/2.2,启动时内核将包含一个由三条策略规则组成的默认的RPDB,察看这些默认规则的一个方法是使用命令来列出系统的所有规则:

root.netmonster ip rule list

0:from all lookup local

32766: from all lookup main

32767: from all lookup default

下面的默认规则在对于理解启动复杂路由系统是非常重要的。

首先是最高级别的优先级规则,规则策略0:

规则0: 优先级 0     选择器 = 匹配任何数据报

动作=察看本地路由表(routing table local),ID为255。

local表是保留路由表,包含了到本地和广播地址的路由。规则0是特殊的规则,不可被删除或修改。

规则 32766: 优先级 32766     选择器 = 匹配所有数据报

动作 = 察看主路由表(routing table main), ID为254。

main路由表是默认的标准路由表,其包含所有非策略路由,main表是存放旧的路由命令(route命令)创建的路由。而且任何由ip route命令创建的没有明确指定路由表的路由都被加入到该路由表中。该规则不能被删除和被其他规则覆盖。

规则 32767: 优先级 32767 选择器 = 匹配所有数据报

动作 = 察看默认路由表(routing table default),ID为253。

default路由表是空的,为最后处理(post-processing)所预留,若前面的默认规则没有选择该数据报时保留用作最后的处理。该规则可以被删除。

不要将路由表和规则混淆,规则是指向路由表的。也许会出现多个规则指向同一个路由表,而有些路由表可能并不被任何规则指向。如果删除了指向某个路由表的所有规则,则该表将不发生作用,但是表将仍然存在。一个路由表只有在其中包含的所有路由信息被删除才会消失。

前面提到,Linux策略规对应的动作除了指向一个路由表以外还能是若干种不同的动作。当创建一个策略规则,有如下类型的动作可以选择:

unicast -- 在该规则指向的路由表中进行标准的路由查找。当一个路由表被指定,这是默认的动作。

blackhole -- 规则动作将仅仅直接丢弃该数据报。

unreachable -- 规则动作产生一条网络不可达错误信息,一个类型为3,代码为0的ICMP消息被返回给发送者。

prohibit -- 规则动作产生一个通信被禁止的错误消息,一个类型为3,代码为13的ICMP消息被返回给发送者。

其他类型的动作也可以被使用,但是都和策略路由没有关系。它们被用来在内核中实现其他高级流控制和数据报操作。因为只有一个工具命令:ip,所有的这些类型都是可运用于该命令,但我们仅仅使用和上面有关的部分,可以是返回一条路由或其他若干个动作。

在解释示例以前,首先看看ip工具命令的语法。ip命令可以用在很多地方,这里仅仅讨论和策略路由相关的部分。都是由root在命令行直接运行的。

首先,看ip addr命令语法:

root@netmonster# ip addr help

Usage: ip addr {add|del} IFADDR dev STRING

ip addr {show|flush} [ dev STRING ] [ scope SCOPE-ID ]

[ to PREFIX ] [ FLAG-LIST ] [ label PATTERN ]

IFADDR := PREFIX | ADDR peer PREFIX

[ broadcast ADDR ] [ anycast ADDR ]

[ label STRING ] [ scope SCOPE-ID ]

SCOPE-ID := [ host | link | global | NUMBER ]

FLAG-LIST := [ FLAG-LIST ] FLAG

FLAG  := [ permanent | dynamic | secondary | primary |

tentative | deprecated ]

Example - ip addr add 192.168.1.1/24 dev eth0

该命令将添加IP地址192.168.2.2/24到eth0网卡上.

下面看看ip route命令:

root@netmonster# ip route help

Usage: ip route { list | flush } SELECTOR

ip route get ADDRESS [ from ADDRESS iif STRING ]

[ oif STRING ] [ tos TOS ]

ip route { add | del | replace | change | append | replace |

monitor} ROUTE

SELECTOR := [ root PREFIX ] [ match PREFIX ] [ exact PREFIX ]

[ table TABLE_ID ] [ proto RTPROTO ]

[ type TYPE ] [ scope SCOPE ]

ROUTE := NODE_SPEC [ INFO_SPEC ]

NODE_SPEC := [ TYPE ] PREFIX [ tos TOS ]

[ table TABLE_ID ] [ proto RTPROTO ]

[ scope SCOPE ] [ metric METRIC ]

INFO_SPEC := NH OPTIONS FLAGS [ nexthop NH ]...

NH := [ via ADDRESS ] [ dev STRING ] [ weight NUMBER ] NHFLAGS

OPTIONS := FLAGS [ mtu NUMBER ] [ advmss NUMBER ]

[ rtt NUMBER ] [ rttvar NUMBER ]

[ window NUMBER] [ cwnd NUMBER ] [ ssthresh REALM]

[ realms REALM ]

TYPE := [ unicast | local | broadcast | multicast | throw |

unreachable | prohibit | blackhole | nat ]

TABLE_ID := [ local | main | default | all | NUMBER ]

SCOPE := [ host | link | global | NUMBER ]

FLAGS := [ equalize ]

NHFLAGS := [ onlink | pervasive ]

RTPROTO := [ kernel | boot | static | NUMBER ]

Example - ip route add 192.168.2.0/24 via 192.168.1.254

该示例将添加一条通过192.168.1.254到网络192.168.2.0/24的路由。

最后,看看ip rule命令:

root@netmonster# ip rule help

Usage: ip rule [ list | add | del ] SELECTOR ACTION

SELECTOR := [ from PREFIX ] [ to PREFIX ] [ tos TOS ] [ fwmark FWMARK ]

[ dev STRING ] [ pref NUMBER ]

ACTION := [ table TABLE_ID ] [ nat ADDRESS ]

[ prohibit | reject | unreachable ]

[ realms [SRCREALM/]DSTREALM ]

TABLE_ID := [ local | main | default | NUMBER ]

Example - ip rule add from 192.168.2.0/24 prio 32777 reject

该命令将丢弃源地址属于192.168.2.0/24网络的所有数据报。

在讨论了命令语法以后,下面是一些上面命令的示例。

例 1:拒绝访问Internet

假设有一个防火墙连接本地局域网和Internet,你希望禁止局域网的一个子网访问Internet。当然这可以通过Linux数据报过滤防火墙来实现。但是下面我们将介绍另外一种实现方法。首先我们来假设有如下的网络配置:

内部网络地址           192.168.0.0/16

被拒绝访问的子网        192.168.2.0/24

当前主路由表(Routing Table Main,表254):

root@netmonster# ip route list table 254

default via 192.168.254.254 dev eth0 proto static

下面将针对该子网创建一条策略路由规则:

ip rule add from 192.168.2.0/24 priority 5000 prohibit

现在任何从192.168.2.0/24子网发送来的数据报将得到一个类型为3,代码为13的ICMP消息,同时该数据报将被丢弃。

应该注意的是,在运行任何这些命令都需要发送“ip route flush cache”命令来刷新路由缓冲,否则命令在一段时间以后才会生效,这段时间的长短依赖于路由表结构的大小和负载。

将上面的例子需要的命令放在一起就如下所示:

ip rule del priority 5000

ip rule add from 192.168.2.0/24 priority 5000 prohibit

ip route flush cache

这个命令流通过首先删除5000号规则来确保当前系统没有该规则然后再添加新的5000号规则。如果系统本来不存在5000号的规则则会返回一个错误信息。然后添加5000号规则并通过清空运行时的路由缓存来重置RPDB,则新规则将马上产生作用。

多路由表和IP地址

为了完全理解基于策略路由的使用,就需要学会使用Linux多路由表和IP地址,这包括多个方面的知识,下面通过示例来加以说明。

当获得ip工具,你可能会注意到在发布中有一个名为etc的子目录,其中有一个名为iproute2的子目录。应该拷贝该子目录到/etc目录下或在/etc目录下创建iproute2子目录。该目录包含用来命名路由表及策略路由结构的其他方面的文件。在该目录中创建rt_tables文件,其中示例文件一般已经包含了某些内容,并为路由表1提供了示例名。

下面首先编辑该文件来创建若干在下面的示例中使用的表:

# reserved values

#

255     local

254     main

253     default

0       unspec

#

# local

#

1       goodnet1

2       goodnet2

3       badnet1

4       badnet2

5       internet

可以看到通过为路由表命名,就可以使用表数字ID或表名来引用路由表。例如下面两个命令将对同一个路由表进行操作:

ip route list table 1

ip route list table goodnet1

通过表名可以更好的理解在对哪个路由表进行操作。

例 2:创建多个路由表

如果已经创建了如上所示的rt_table信息,可以通过下面的命令来察看各个路由表的内容:

ip route list table 

当然即使没有定义rt_table文件同样可以使用数字来引用所有的0-255个路由表,因为它们都是存在的,只是其中大部分没有路由信息数据罢了。在上面的例子中通过rt_table文件来将表1定义为goodnet1。

下面的例子是向定义的每个路由表都添加一条路由:

ip route add 10.10.10.0/24 via 192.168.1.2 table goodnet1

ip route add 10.10.11.0/24 via 192.168.1.2 table goodnet2

ip route add 10.10.12.0/24 via 192.168.1.2 table badnet1

ip route add 10.10.13.0/24 via 192.168.1.2 table badnet1

ip route add default via 192.168.1.254 table internet

然后再通过ip rouite list talbe 命令就可以察看路由表中的各个路由。

例3:建立多个IP地址

这里的多个IP地址并不同于IP别名,在Linux2.1及更高版本中已经反对使用“:#”的IP别名方式。而应该用新的方式来使用多IP地址。

假设eth0输出接口应该具有三个不同的IP地址,其中的两个应该属于同一个子网,但是应该被独立地设置,示例同样说明了在Linux2.2及以上版本的关闭自动路由添加的方法。在Linux2.2及以上版本内核的系统中,当为一个接口赋予一个IP地址时,内核将自动为该IP地址属于的网络在路由表中添加一条对应的路由。而由于这里将为同一个接口赋予属于同一个子网的两个不同的IP,所以在添加IP地址时不希望添加路由,否则会造成路由冲突,因此就需要添加该地址为一个主机地址。只需要设置该地址时指定完全主机地址掩码,然后手工添加必要的路由。

为接口设置如下地址:

192.168.1.1

192.168.1.128

192.168.3.1

在添加192.168.1.0/24的两个地址时需要关闭自动路由添加,而允许对192.168.3.0/24时允许自动路由添加功能,

ip addr add 192.168.1.1/32 dev eth0

ip addr add 192.168.1.128/32 dev eth0

ip addr add 192.168.3.1/24 dev eth0

这时候如果察看主路由表则会发现内核只为网络192.168.3.0/24添加了路由表,而没有为网络192.168.1.0/24添加路由。

通过ip addr命令可以察看系统的所有IP地址信息:

root@netmonster# ip addr

1: lo:  mtu 3924 qdisc noqueue

link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

inet 127.0.0.1/8 brd 127.255.255.255 scope host lo

2: eth0:

mtu 1500 qdisc pfifo_fast qlen 100

link/ether 00:00:49:61:32:bc brd ff:ff:ff:ff:ff:ff

inet 192.168.1.1/32 scope global eth0

inet 192.168.1.128/32 scope global eth0

inet 192.168.3.1/24 scope global eth0

下面我们将讨论几个更加复杂的例子。

例 4:多路由表和IP地址

Linux内核路由代码最强大的特色就是基于策略的路由和使用多地址、多路由表的结合使用。下面的示例讨论的是一个充当路由器的连接三个不同的网络的系统。

参考文章开头的图片,可以看到核心系统的外部接口连接了三个外部网络。每个网络都有自己的路由器和自己的IP地址空间。但是其中的两个地址空间是重叠的,因此增加了情况的复杂性。这里我们设置如下规则的路由表来实现互联:

从任何内部网络到Inetent的数据流都是允许的。

从内部网B到网络A的数据流是允许的。

从内部网A到网络C的数据流是允许的。

内部网A的地址为33-62的主机允许访问网络A。

内部网B的地址为65-78的主机允许访问网络C。

首先,配置两个外部IP地址-在DMZ以太网接口eth0的两个地址:

ip addr add 10.254.254.2/30 dev eth0

ip addr add 172.17.1.128/24 dev eth0

下一步将讨论创建哪些路由表,解决这个问题的最好办法是想到基于策略的路由能实现根据源地址来决定使用哪个路由表。策略规则具有划分内部网络的能力,因此首先可以在路由表中添加基于目的的路由,在示例中我们将使用前面创建的新的路由表。

当在路由表中添加路由时下面的方法有助于澄清应该采取的步骤。假设你配置的是只有两个接口的路由器,外接口直接连接Interet出口路由器,而内接口直接连接内部网络。配置这样的路由器是非常简单的,为了说明我们这里在表1-goodnet1这个路由表进行操作:

ip route add 10.10.0.0/16 via 10.254.254.2 table goodnet1 proto static

ip route add default via 172.17.1.254 table goodnet1 proto static

对于goodnet2进行配置则是:

ip route add 172.18.0.0/16 via 172.17.1.1 table goodnet2 proto static

ip route add default via 172.17.1.254 table goodnet2 proto static

可以看到对三个目标网络只需要两个路由表,这里对于连接Internet的默认路由在两个表中都进行了设置。为什么不将默认路由存放在第三个路由表中呢?首先应该考虑到规则和路由表之间的交互,而且规则是实现对基于策略路由的定义。多条规则可以指向同一个路由表。然而,一旦进入某个路由表以后,则只能是匹配一条路由或返回一条路由链。如果匹配到一条规则则就认为你已经拥有一条正确的策略匹配,则该规则指向的路由表包含了该数据报所有的路由可能。

如果有三个路由表,则需要添加一条规则来察看数据报目的。而检查数据报目的地址是标准路由的功能。为什么要对每种源、目的的组合都需要一个规则呢?通过使用路由表,可以实现定义尽量少的规则来达到目的。当然 系统的灵活性允许通过多条方法来实现这样的路由。可以根据在自己的喜好来决定那种方案最适合:

ip rule add from 192.168.1.32/27 to 172.18.0.0/16 pref 15000 table goodnet1

ip rule add from 192.168.2.64/28 to 10.10.0.0/16 pref 15001 table goodnet2

ip rule add from 192.168.1.0/24 pref 15002 table goodnet1

ip rule add from 192.168.2.0/24 pref 15003 table goodnet2

上面的例子中使用了优先级参数设定来定义数据报匹配规则的顺序。现在来看看当一个数据报从内部网络经过路由系统时会发生什么情况。首先,它会通过优先级为0的规则检查;随后会遇到优先级为15000的规则,若匹配则会被goodnet1这个路由表进行操作,否则将会分别经过15001、15002、15003的规则。它肯定会被15000-15003几个规则中的一个所匹配。

下面为了说明定义路由结构的灵活性,我们将从另外一个角度来解决这个问题。Linux路由器的详细情况如下:

eth0 - DMZ ethernet - addresses: 10.254.254.2/30, 172.17.1.128/24

eth1 - Internal A - addresses: 192.168.1.254/24

eth2 - Internal B - addresses: 192.168.2.254/24

首先假设重新开始,将重新定义路由和规则,首先编辑/etc/iproute2/rt_tables:

# reserved values

#

255     local

254     main

253     default

0       unspec

#

# Local Tables

#

1       int1

2       int2

创建路由和规则:

ip route add 10.10.0.0/16 via 10.254.254.1 table int1 proto static

ip route add throw 0/0 table int1 proto static

ip route add 172.18.0.0/16 via 172.17.1.1 table int2 proto static

ip route add throw 0/0 table int2 proto static

ip route add 0/0 via 172.17.1.254 table main proto static

ip rule add pref 15000 table int1 iif eth1

ip rule add pref 15001 table int2 iif eth2

ip rule add pref 15002 to 10.10.0.0/16 table int1

ip rule add pref 15003 to 172.18.0.0/16 table int2

这些路由和规实施和前面示例一样的操作(仔细研究这些规则和路由并理解它们)

使用ipchains实现高级策略路由

在指定策略规则时可以使用的一个选项就是允许通过fwmark值来匹配某个规则。fwmark是一个数字标签,数据报过滤工具ipchains能将fwmark值附加给某个数据报。如果你对ipchains并不是很熟悉,你需要首先阅读ipchains-howto.

例 5:简单基于fwmard的策略路由

首先从一个简单的例子开始-利用上面示例中的多路由表,希望实现来自内部网B的、目的端口为80的数据发送到Internet,但是来自内部网A的、目的端口为80的数据则被禁止。首先清空这些路由表:

ip route flush table goodnet1

ip route flush table goodnet2

ip route flush table badnet1

ip route flush table badnet2

ip route flush table internet

ip route flush cache

而目前删除策略规则的方法就是将其一一列出来然后将其手工删除,也就是首先通过ip rule list命令将策略规则列出来然后使用ip rule del priority <#>将其删除。但这里假设当前没有任何规则并且路由表也是空的。

为了使用fwmark标记,首先应该指定希望使用ipchains标记的数据报,然后使用标记值来指定一条策略规则来处理该数据报。应该设定ipchians自动将十进制的标记转化为十六进制。ip rule希望输入为一个十六值。

首先配置ipchains规则使用合适的值标记输入数据报。假设当前没有其他防火墙规则:

ipchains -I input -p tcp -s 192.168.2.0/24 -d 0/0 80 -m 2

ipchains -I input -p tcp -s 192.168.1.0/24 -d 0/0 80 -m 16

现在设立策略规则,在上面为内部网A的标记值为十机制的16,下面定义相关的策略(应该注意到策略定义中使用的是十六进制,因此为10):

ip rule add fwmark 2  table goodnet1

ip rule add fwmark 10 prohibit

最后为路由表goodnet1定义如下的路由:

ip route add default via 172.17.1.254 table goodnet1

关于策略路由的一个常见问题是策略路由和IP伪装之间如何交互,这里我们不对该问题进行深入研究但是通过一个快速的示例来加以说明。需要注意的是在转发链之前对路由表进行查询。这意味着如果使用IP伪装,则路由选择器返回的任何源地址都将被作为进行IP伪装的地址。

例6:朵IP地址的IP伪装

使用上面的网络配置,我这里将对到三个网络的连接进行伪装处理,希望从系统中得到如下的输出:

从内部网A到网络C的数据报被伪装为10.254.254.2

从内部网络B到网络A的数据报被伪装为172.17.1.2

内部网到互联网的数据报都被伪装为172.17.1.128

eth0配置有如下地址:

10.254.254.2/30

172.17.1.128/24

因此为了满足条件2,给eth0添加地址:

ip addr add 172.17.1.2/32 dev eth0

假设系统被设置为对所有的输出数据报都进行IP伪装。首先清空旧的策略规则,然后创建新的规则如下:

ip route add 10.10.0.0/16 via 10.254.254.2 src 10.254.254.2

table goodnet1 proto static

ip route add default via 172.17.1.254 src 172.17.1.128

table goodnet1 proto static

ip route add 172.18.0.0/16 via 172.17.1.1 src 172.17.1.2

table goodnet2 proto static

ip route add default via 172.17.1.254 src 172.17.1.128

table goodnet2 proto static

ip rule add from 192.168.1.0/24 pref 15000 table goodnet2

ip rule add from 192.168.2.0/24 pref 15001 table goodnet1

例7:综合实例

假设例6中的路由、规则和地址仍然在起作用,我希望实现下面的需求:

Internal A Hosts 33-62 to Network A Masq as 172.17.1.3

Internal A Hosts 65-78 to tcp port 80 on Network A Masq as 172.17.1.4

Internal B Hosts 33-62 to tcp port 80 on Network A Deny Aclearcase/“ target=”_blank" >ccess

Internal B Hosts 65-78 to tcp port 80 on Network C Masq as 10.254.254.2

应该记得我们仍然允许例6中的连接性,下面就是解决方案:

ip addr add 172.17.1.3/32 dev eth0

ip addr add 172.17.1.4/32 dev eth0

ip route del default table goodnet1

ip route del default table goodnet2

ip route add throw 0/0 table goodnet1 proto static

ip route add throw 0/0 table goodnet2 proto static

ip route add default via 172.17.1.254 src 172.17.1.128

table internet proto static

ip route add 172.18.0.0/16 via 172.17.1.1 src 172.17.1.3

table badnet1 proto static

ip route add 172.18.0.0/16 via 172.17.1.1 src 172.17.1.4

table badnet2 proto static

ip rule add from 192.168.1.32/27 to 172.18.0.0/16 pref 14999 table badnet1

ip rule add fwmark 1 pref 14998 table badnet2

ip rule add fwmark 2 pref 14997 table goodnet1

ip rule add fwmark 3 pref 14996 blackhole

ip rule add pref 15003 table internet

ipchains -I input -p tcp -s 192.168.1.64/28 -d 172.18.0.0/16 80 -m 1

ipchains -I input -p tcp -s 192.168.2.64/28 -d 10.10.0.0/16 80 -m 2

ipchains -I input -p tcp -s 192.168.2.32/27 -d 172.18.0.0/16 80 -m 3

其实有很多的有效方法,但是虽然这里使用名为badnet1和badnet2的表,但是名字是没有实际意义的,只是用来引用表3和表4的符号。

总结

希望你通过该文章能享受Linux2.2的强大路由功能,它提供的路由功能是很多路由器产品都是难以匹敌的, 如果考虑到它的免费性,它的性能价格比更是没有任何产品可以相比。例如例7中的例子可以很好的运行在只有16M内存的486/33的机器上。

原文转自:www.ltesting.net

请教!Windows系统

UnixWAre and Open unix8下如何配置SAMBA。Windows系统

强行卸载文件系统Windows系统

系统的安全检查Windows系统

系统管理员的日常工作Windows系统

北风那个吹。。。。。。Windows系统

拆解Windows Vista系统文件夹

Windows NT/操作系统认证方法数据库教程

电子商务环境下智能仓储系统的应用论文

Windows优化系列之系统加速

SCO UNIX环境下重建Oracle7数据库Windows系统(精选6篇)

欢迎下载DOC格式的SCO UNIX环境下重建Oracle7数据库Windows系统,但愿能给您带来参考作用!
推荐度: 推荐 推荐 推荐 推荐 推荐
点击下载文档 文档为doc格式
点击下载本文文档