加载中…
个人资料
张洪洋_
张洪洋_
  • 博客等级:
  • 博客积分:0
  • 博客访问:221,798
  • 关注人气:60
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
个人经历
学校:
  • 北京航空航天大学 计算机专业

    2012年入读

公司:
  • 从事酒吧dj

    2007年10月至2012年1月

  • 哈尔滨东方斯卡拉 调音师

    2008年8月至2009年11月

  • 北京市北大青鸟职业培训

    2012年5月至今

  • COCO夜总会 公关经理

    2012年1月至2012年4月

  • 个人IT网站www.yqxit.com

    2012年10月至今

新浪微博
图片播放器
搜博主文章
访客
加载中…
评论
加载中…
留言
加载中…
博文

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。

 叶落葬红尘    技术QQ499839808

 

 

ESXi5.1物理主机root用户密码的破解方法(二)

 

一、实验环境

1.       一台ESXi5.1主机,并且是忘记密码的。

2.       ESXi5.1并没有加入到vCenter服务器中,是单独的主机资源。

   

二、实验要求

1.       可能我们遇到这样的问题,我们不能通过vCenter来破解ESXi主机的root用户密码,原因可能是种种吧。

2.       现在我们不知道ESXi5.1主机root用户密码。这时候不能像《ESXi5.1物理主机root用户密码的破解方法(一)》,那样登陆到vCenter服务器上破解,我们需要一张live CD的linux光盘来破解。

3.我这里准备的live CD光盘是ubuntu的盘。

三、实验步骤

1.       首先把忘记密码的ESXi5.1主机关机,必须关机,我们是需要挂live CD光盘,所以在关机后挂在光盘,然后用光盘启动。

2.       然后开机,选择CD ROM启动。



3.       保存并启动,然后就进入选择语言的界面。这里可以更具自己的喜欢的语言选择,一般选择中文或英文。我这里选择英文。



4.       然后回车,这里需要谨慎,不然会安装的,我们不需要安装,只需要试用ubuntu就可以了。



5.等待进入ubuntu试用系统界面。

5.       然后可以打开终端,需要给root用户设置一个密码,然后切换到root账户终端。

sudo passwd root

输入新密码:

确认新密码:

su –



6.       挂在ESXi配置文件的分区,一般是/dev/sda5 或者/dev/sda6这两个分区,这个还有看自己的是那个。

用mount /dev/sda6 /mnt挂在到/mnt目录下,然后切换到/tmp目录下,用tar zxf /mnt/state.tgz 解压到/tmp目录下,可以看到有local.tgz文件了,然后再tar zxf local.tgz解压,会出现etc/目录。

8.进入etc目录,然后用vi命令修改shadow文件,因为这个文件是保存用户密码的文件,所以我们就可以把root用户的密码清楚到。

vi shadow



清楚root":"后面到下一个":"之间的加密密码,这样root用户就没有密码了,然后保存退出。

9.删除/tmp目录下的loca.tgz文件,用tar czvf local.tgz etc/压缩并重命名为local.tgz文件。

10.在用tar czf state.tgz local.tgz命令压缩并重命名为state.tgz文件并(mv state.tgz /mnt)移动到挂在的目录下。

11.然后再切换到/mnt目录确认state.tgz文件的修改时间是不是有没有变换。能够看到时间最新的,说明修改成功。

12.破解基本完成,需要卸载分区,之后需要重启。

13.在ESXi5.1主机中不能空密码登陆,需要我们用vclent登陆到这台没有密码的ESXi主机上,然后通过vclent中的插件修改root用户密码。

14.准备登陆进来了,这时候我们是不是放轻松好多啊,接下来就简单多了,就是在本地用户和组中重新给root用户设置密码就OK了。

15.单击本机用户和组,然后再root点击右键,选择"编辑",然后再勾选上更改密码,设置新密码和确认密码,确定就可以了。

16.主机的root用户密码破解成功。希望能够帮助忘记密码的同胞们。有需要关注我的博客

 

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。

 叶落葬红尘    技术QQ499839808

 

 

ESXi5.1物理主机root用户密码的破解方法(一)

 

 

一、实验环境

1.一台ESXi5.1主机,一台vCenter服务器。

2.并且ESXi5.1主机已经加入到vCenter中,并且能够通过vCenter管理ESXi5.1主机的资源。

   

二、实验要求

1.一般我们管理ESXi主机都是通过vCenter管理的,可能时间长了,我们不记得了ESXi实体主机的root用户密码。

2.现在就是不知道ESXi5.1主机的root用户密码,通过vclent登陆到vCenter服务器上破解ESXi5.1主机的root用户密码。

   

三、实验步骤

1.ESXi4.0以上的版本,实体机的root密码,仅在VC第一次连接的时候使用过,在日后的维护中基本不怎么用ESXi单独的用户和密码,我们经常都是很小心的保存我们的密码,但随着时间的长,不知道密码保存到哪里,希望还是把密码归档,尽量的不要忘记。

2.我在这里测试演示,希望能够帮助忘记密码的朋友,但前提是我们所有的ESXi主机都必须在vCenter服务器中统一管理,这样才能破解,如果是单台,没有加入到vCenter服务器中,可以通过ESXi5.1实体机root密码恢复(2)来解决。

3.解决的办法的前提还有就是vCenter有企业版的License,不然可能没有这个功能,在生产环境中,必须有这个,不然企业也不能用,也不放心用。


这样提示就是用户密码不正确,认证失败。

4.首先用Vi登陆到vCener服务器上

5.创建这台主机的hostprofile文件。

点击"主页"——"主机配置文件"

打开界面后,然后穿件主机配置文件。

选择从现有的主机中创建配置文件。

   

然后下一步,之后选择完成。

然后等待创建完成。

然后选择刚创建的配置文件,然后在右面的"基本任务"编辑主机配置文件。

在左侧的"安全配置"——"管理员密码",然后在右侧的"管理员密码应该是什么"——"配置固定的管理员密码",然后在下面会出现输入新的密码和确认密码。最后确定就ok了。

然后等待配置完成后在做下一步的操作。

在时候,如果在生产环境中,主机中必须有虚拟机在运行,但是如果要恢复密码的时候,主机必须进入维护模式,所以首先把虚拟机关机,在生产环境中,不可能说关机就关机,所以我们必须要跟用户商量停机时间,确保数据的安全和不会影响业务的情况下关闭虚拟机,如果实在不能停机,那可以先把这太主机中的虚拟机迁移到其他的主机中运行,然后让这台ESXi主机进入维护模式。

我这是测试的,里面没有虚拟机运行,所以就直接进入维护模式。

在主机的右键选项中有进入维护模式选项。

在中间会提示好几个窗口,就是提示关闭虚拟机的问题。然后等待下面任务栏中状态为"已完成"后才可以进行下一步。

再次点击主机右键选项的"主机配置文件"——"管理配置文件"。

出现窗口后,选择刚才创建的配置文件,然后点击完成。

上面一次是选择配置文件给这个主机,然后再右键主机选项,"主机配置文件"——"应用配置文件",这是将配置文件应用到这台需要恢复密码的ESXi主机中。

然后等待"配置任务"栏中出现"管理员密码将被更改",然后点击完成。

当任务栏中"状态"为"已完成"。

6.到这里密码的破解就完成了,我们可以推出vCenter的登陆,直接可以验证登陆ESXi主机。

7.实验验证完成,后面的就是让主机推出维护模式,让主机正常提供服务。

 

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。

 叶落葬红尘    技术QQ499839808

 

 

 

RHEL6: 管理用户账户和权限LDAP服务器

 

用户和组帐号概述:(/etc/passwd、/etc/shadow、/etc/group)

Linux基于用户身份对资源访问进行控制用户帐号:

超级用户root: 即root用户,类似于Windows系统中的Administrator用户,非执行管理任务时不建议使用root用户登录系统

普通用户: 一般只在用户自己的宿主目录中有完全权限

程序用户: 用于维持系统或某个程序的正常运行,一般不允许登录到系统。例如:bin、daemon、ftp、mail等

组帐号:

基本组(私有组)

附加组(公共组)

UID和GID:

UID(User Identity,用户标识号)

GID(Group Identify,组标识号)

root用户的UID的固定值为0、root组帐号的GID号为固定值0

1~499的UID、GID默认保留给程序用户使用,普通用户/组使用的UID、GID号在500~60000之间。可以查看/etc/login.defs文件

保存用户的帐号基本信息:文件位置:/etc/passwd ,每一行对应一个用户的帐号记录

  • 字段1:用户帐号的名称
  • 字段2:用户密码字串或者密码占位符"x"
  • 字段3:用户帐号的UID号
  • 字段4:所属基本组帐号的GID号
  • 字段5:用户全名
  • 字段6:宿主目录
  • 字段7:登录Shell信息

管理本地用户:

添加用户帐号:useradd [选项]... 用户名

常用命令选项

  • -u:指定 UID 标记号
  • -d:指定宿主目录,缺省为 /home/用户名
  • -e:指定帐号失效时间
  • -g:指定用户的基本组名(或UID号)
  • -G:指定用户的附加组名(或GID号)
  • -M:不为用户建立并初始化宿主目录
  • -s:指定用户的登录Shell

最简单的用法是,不添加任何选项,只使用用户名作为useradd命令的参数,按系统默认配置建立指定的用户帐号

使用adduser命令也可以添加用户帐号,在RHEL系统中adduser命令实际上是useradd命令的符号链接

用户帐号的初始配置文件:

文件来源:新建用户帐号时,从 /etc/skel 目录中复制而来

主要的用户初始配置文件

  • ~/.bash_profile:用户每次登录时执行
  • ~/.bashrc:每次进入新的Bash环境时执行
  • ~/.bash_logout:用户每次退出登录时执行

默认情况下,用户宿主目录下的初始配置文件只对当前用户有效,而全局配置文件对所有用户有效

修改用户帐号的属性:usermod [选项]... 用户名

常用命令选项

  • -l:更改用户帐号的登录名称
  • -L:锁定用户账户
  • -U:解锁用户账户
  • -a: append模式,若不加-a则删除其他附加组,通常和-G一起使用。

    usermod -aG 组名 用户名(将用户加入指定的附加组)

  • 以下选项与useradd命令中的含义相同 -u、-d、-e、-g、-G、-s

删除用户帐号:userdel [-r] 用户名

添加 -r 选项时,表示连用户的宿主目录一并删除

管理密码:

用于保存密码字串、密码有效期等信息:文件位置:/etc/shadow

每一行对应一个用户的密码记录

  • 字段1:用户帐号的名称
  • 字段2:加密的密码字串信息
  • 字段3:上次修改密码的时间
  • 字段4:密码的最短有效天数,默认值为0
  • 字段5:密码的最长有效天数,默认值为99999
  • 字段6:提前多少天警告用户口令将过期,默认值为7
  • 字段7:在密码过期之后多少天禁用此用户
  • 字段8:帐号失效时间,默认值为空
  • 字段9:保留字段(未使用)

默认只有root用户能够读取文件中的内容,并且不允许root直接编辑该文件中的内容

上次修改密码的时间,表示从1970年01月01日(可理解为Unix系统的诞生日)算起到最近一次修改密码时间隔的天数

设置/更改用户口令:passwd [选项]... 用户名

常用命令选项

  • -d:清空用户的密码,使之无需密码即可登录
  • -l:锁定用户帐号
  • -S:查看用户帐号的状态(是否被锁定)
  • -u:解锁用户帐号

"未设置密码"的用户帐号尚未完成初始化,处于不可登录状态,这与"空密码"的情况(已经为用户设置密码,但密码字串为空)是不同的,"未设置密码"的用户将被禁止登录系统,而拥有"空密码"的用户是可以在本地终端登录的

普通用户也可以使用passwd命令,但只能更改自己的密码,密码要求有一定的复杂性(如不要直接使用英文单词,长度保持在6位以上),否则系统可能拒绝进行设置

被锁定的帐号也将无法登录系统

chage命令:修改用户密码的有效期

如:在下次登录时,chage -d 0 username将强制更新密码

chage -l username 将列出用户名的当前设置

组帐号文件 —— group、gshadow

/etc/group:保存组帐号基本信息

/etc/gshadow:保存组帐号的密码信息

group文件内的最后一个字段中列出属于该组的用户成员(一般不包括基本组对应的用户帐号),多个成员之间以逗号","分隔

添加组帐号:groupadd [-g GID] 组帐号名

添加、删除组成员:gpasswd [选项]... 组帐号名

用途:设置组帐号密码(极少用)、添加/删除组成员

常用选项:

-a:向组内添加一个用户

-d:从组内删除一个用户成员

-M:定义组成员列表,以逗号分隔

使用"-M"选项时可以为指定组帐号定义成员列表(注意:会覆盖原有组成员),需要添加多个用户到指定的组中时非常方便

删除组帐号:groupdel 组帐号名

用户和组帐号查询:

  • id命令
    • 用途:查询用户身份标识
    • 格式:id [用户名]
  • groups命令
    • 用途:查询用户所属的组
    • 格式:groups [用户名]
  • finger命令
    • 用途:查询用户帐号的详细信息
    • 格式:finger [-l] [用户名]
  • users、w 、who命令
    • 用途:查询已登录到主机的用户信息

Linux系统有关文件和目录的权限管理:基本权限与附加权限(略,请参考教材)

权限

数字表示

对文件的影响

对目录的影响

r (读取)

可读取文件中的内容

可以列出目录的内容(文件名)

w (写入)

可以更改文件的内容

可以创建或删除目录中的任一文件

x (可执行)

可以作为命令执行文件

可以访问目录的内容,即可以进入或通过目录,目录中文件内容能否访问取决于目录中文件的权限

请注意:用户通常对只读目录具有read和exec权限,因此他们可以列出目录并访问其内容。如果用户仅对某目录具有read访问权限,可以列出其中文件的名称,但是其他信息(包括权限或时间戳)都不可用,也不可访问。如果用户仅对某目录具有exec访问权限,则他们不能列出该目录中文件的名称,但是如果他们已知道对其具有读取权限的文件的名称,那么他们可以通过明确地指定文件名来访问该文件的内容。

特殊权限

数字表示

对文件的影响

对目录的影响

u+s (suid) 

以拥有文件的用户身份执行文件,而不是以运行文件的用户身份

无影响

g+s (sgid) 

以拥有文件的组身份执行文件

在目录中最新创建的文件将其组所有者设置为与目录的组所有者相匹配

o+t (sticky) 

无影响

对目录具有写入权限的用户仅可以删除其所拥有的文件,而无法删除其他用户所拥有的文件。

为什么要使用suid/guid

这里有一个很好的例子。我管理着几个大型的数据库系统,而对它们进行备份需要有系统管理权限。我写了几个脚本,并设置了它们的guid,这样我指定的一些用户只要执行这些脚本就能够完成相应的工作,而无须以数据库管理员的身份登录,以免不小心破坏了数据库服务器。通过执行这些脚本,他们可以完成数据库备份及其他管理任务,但是在这些脚本运行结束之后,他们就又回复到他们作为普通用户的权限。

有相当一些linux命令也设置了suid和guid。如果想找出这些命令,可以进入/bin或/sbin目录,执行下面的命令:

$ ls -l | grep '^...s'

上面的命令是用来查找s u i d文件的;

$ ls -l | grep '^...s..s'

上面的命令是用来查找suid和guid的。

umask缺省权限设置:

当最初登录到系统中时, umask确定了你创建文件的缺省模式。系统管理员必须要设置一个合理的umask值,以确保你创建的文件具有所希望的缺省权限,防止其他非同组用户对你的文件具有写权限。

一般来说,umask命令是在/etc/profile文件中设置的,每个用户在登录时都会引用这个文件,所以如果希望改变所有用户的umask,可以在该文件中加入相应的条目。如果希望永久性地设置自己的umask值,那么就把它放在自己$HOME目录下的profilw或.bashprofile文件中。

umask命令允许你设定文件创建时的缺省模式,对应每一类用户(文件属主、同组用户、

其他用户)存在一个相应的u m a s k值中的数字。对于文件来说,这一数字的最大值分别是6。系统不允许你在创建一个文本文件时就赋予它执行权限,必须在创建后用chmod命令增加这一权限。目录则允许设置执行权限,这样针对目录来说,umask中各个数字最大可以到7

umask+文件权限=777

该命令的一般形式为:

umask nnn

其中nnn为umask置0 0 0 - 7 7 7

例如,umask值002 所对应的文件和目录创建缺省权限分别为6 6 4和7 7 5。

LDAP(轻量级目录访问服务)管理用户

近几年,随着LDAP(Light Directory Access Protocol,轻量级目录访问协议)技术的兴起和应用领域的不断扩展,目录服务技术成为许多新型技术实现信息存储、管理和查询的首选方案,特别是在网络资源查找、用户访问控制与认证信息的查询、新型网络服务、网络安全、商务网的通用数据库服务和安全服务等方面,都需要应用目录服务技术来实现一个通用、完善、应用简单和可以扩展的系统。

随着企业自身的发展,企业网络也日益壮大,网络提供的服务也越来越多,如网络登录、电子邮件服务、FTP服务、WEB服和、代理服务和办公自动化等,但带来的问题也日益增多,其中最突出的问题是用户账号的管理。由于大部分的应用系统都来自不同的开发商,各个系统都使用自已的认证机制,需要网络管理员在每个应用系统中建立相应的账号信息,因此造成大量重复的劳动,同进也给用户们带来列穷的烦恼,他们不得不记信一大堆账号和密码。目录服务就是为了解决以上问题而产生的。目录服务是一个特殊的数据库,它为读、浏览和搜索进行了优化。目录服务目前有X.500和LDAP两个国际标准协议。

LDAP协议简介:

LDAP(轻量级目录访问协议,Lightweight Directory Access Protocol)是实现提供被称为目录服务的信息服务。目录服务是一种特殊的数据库系统,其专门针对读取,浏览和搜索操作进行了特定的优化。在网络中应用了LDAP后,用户只需要使用一个账号和密码就可以轻松访问网络中的所有服务,实现用户身份的统一认证。LDAP系统结构图见图1.

LDAP的信息是以树型结构存储的

首先要为目录树建立一个"根(ROOT)"。根是目录树的最顶层,后面建立的所有对象都是基于这个根的,所以它也称为基准DN。推荐使用公司的DNS域名的不同部分:dc=com,dc=example

公司的部门作为OU,如ou=people,ou=servers。OU是目录树的分枝节点,下面可以包含其他分枝节点或叶子节点。

用户是目录树的最底层(即叶子节点),可以根据用户所在的部门将其放在不同的OU中,使用uid或cn描述都可以。如uid=babs或cn=babs

配置OPENLDAP服务器:(服务器端配置)CentOS 6.0 32位系统

ip:172.16.24.10 掩码:255.255.255.0 主机名:host.domain10.example.com

1、安装openldapdb4migrationtools安装包

将主机名修改为host.domain10.example.com //配置文件为/etc/sysconfig/network.重起系统生效

#yum install openldap*

#yum install db4

#yum install migrationtools

# cd /var/lib/ldap/

下面的这一步非常重要 必须要第一步就执行这个 slapd 命令)

# slapd        (会生成一些库文件)

查看服务器进程:

#ps aux | grep ldap

查看端口:

[root@station3 ldap]# netstat -ntlp | grep 389

问题一:执行service slapd restart 时报错

解决方法:

chown ldap:ldap /var/lib/ldap/*

# service slapd restart
(2)  
也是一个问题

解决方法:

拷贝DB_CONFIG.example这个样例文件 DB_CONFIG

cp /usr/share/doc/openldap-servers-2.4.19/DB_CONFIG.example /var/lib/ldap/DB_CONFIG

# service slapd restart

一切都正常了,slapd服务启动正常。

2、创建LDAP服务的主配置文件/etc/openldap/slapd.conf

cp -p /etc/openldap/slapd.conf.bak /etc/openldap/slapd.conf //-p使源文件全县不变

并将slapd.d目录重命名,随便什么名字,我这里命名为slapd.d.bak

3、产生一个manager服务的管理的密码

#slappasswd –h {SSHA} –s 123456 >>/etc/openldap/slapd.conf //-s 指定密码

4 编辑文件slapd.conf

database bdb
suffix "dc=domain10,dc=example,dc=com"    #
一条记录所属区域#
rootdn "cn=Manager,dc=domain10,dc=example,dc=com"
rootpw
(改第二个rootpw 在后面加密码)此处所写的就是上一步所产生的加密密码    #定义LDAP根管理员的密码(强烈建议使用加密的密码)rootpw与加密密码之间最好用按TAB键分隔注意:改完后将之前追加的密码行删除

5 设置各项服务的开机启动

#chkconfig slapd on ldap服务(5.4ldap)现在变成了slapd

#chkconfig rsyslog on rsyslog 服务(日志) 5.4syslog

#chkconfig rpcbind on 启动rpcbind服务 5.4portmap 111端口

6、将系统账户转移到openldap(事先建好一些系统账号)编辑文件migrate_common.ph文件。注意:最好新建一个目录做为用户的宿主目录的目录,将ladp所用的用户新建时指定到新的宿主目录下。

mkdir /rhome //新建立用户的存放宿主目录的目录是为了之后autofs自动挂载准备的,否则挂载上以后本地用户将无法使用/home目录

useradd -d /rhome/lapduser1 lapduser1

useradd -d /rhome/lapduser2 lapduser2

#vi /usr/share/migrationtools/migrate_common.ph

$DEFAULT_MAIL_DOMAIN = "domain10.example.com"; 71
$DEFAULT_BASE = "dc= domain10.example,dc=com";
74

# cd /usr/share/migrationtools

#  ./migrate_passwd.pl /etc/passwd > /etc/openldap/user.ldif //准备用户文件
#  ./migrate_group.pl /etc/group > /etc/openldap/group.ldif //
准备组文件

使用vi编辑器建立example.ldif,ou_people.ldif, ou_group.ldif三个文件,

# cd /etc/openldap/

cat example.ldif

dn: dc=domain10,dc=example,dc=com (dn惟一辨别名,类似于文件系统的绝对路径
objectclass: dcObject(大写的字母O)
objectclass: organization

o: Example, Inc. (组织名)
dc: domain10

空行
dn: cn=Manager,dc=domain10,dc=example,dc=com
objectclass: organizationalRole
cn: Manager

# cat ou_people.ldif
dn:
ou=people,dc=domain10,dc=example,dc=com //cat user.ldif文件可以看到用户属于pepole这个OU
objectclass: organizationalUnit //
小写的i 大写的U
ou: people

# cat ou_group.ldif
dn: ou=group,dc=domain10,dc=example,dc=com
objectclass: organizationalUnit
ou: group

所需文件都准备好了,我们察看一下。

停止slapd服务:每次往ldap服务器转换数据时必须先停止slapd服务。

转换原有Linux 账号至OpenLDAP服务器上:

#cd /etc/openldap
# slapadd -vl example.ldif

若出错误就将/etc/openldap/slapd.d目录重命名,因为在默认情况下她会自动寻找slap.d/目录下的slapd.conf文件

added: "dc=example,dc=com" (00000001)

# slapadd -vl ou_people.ldif
added: "ou=people,dc=example,dc=com" (00000002)

# slapadd -vl ou_group.ldif
added: "ou=group,dc=example,dc=com" (00000003)

# slapadd -vl user.ldif 新建的用户,只导入单个用户

# slapadd -vl group.ldif 如果新建"组",可以修改此文件,只剩下新建的组,再导

注意:如果转换错误建议将ldap/目录下所有东西全部删除,重新转换!

启动slapd服务

service slapd start

若出错,解决方法:chown ldap:ldap /var/lib/ldap/*

然后再重新启动slapd:

#service slapd restart

为了检查服务是否正在运行并且被正确配置,可以对服务器运行一个搜索命令,使用ldapsearch,确保openldap-clients软件包安装
查询: 
ldapsearch -x -H ldap://192.168.1.209 -b  'dc=domain10,dc=example,dc=com'

# ldapsearch -x -b ' dc=domain10,dc=example,dc=com' -b设置目录起点

安全性:LDAP服务器安全通信

LDAP是以明文的格式通过网络来发送所有信息的,包括用户名和密码。这样会有严重的安全隐患。不过可以在传输层采用SSL安全套接层所提供的加密机制来解决这个问题。SSL(Secure Socket Layer)是目前应用最广泛的安全协议,由两部分组成——SSL握手协议(SSL Handshare Protocol)和SSL记录协议(SSL Record Protocol)。上层的握手协议的作用在于建立SSL连接,协商会话密钥。下层的记录协议则负责处理数据的加解密。当有客户端向LDAP服务发起连接时,双方首先要进行安全连接的初始化和协商,通常需要服务器端向客户端提供自己的证书,客户端解签名确认服务器端身份的真实性。这需要PKI公钥基础结构的支持。在我们企业的局域网中可以使用openssl软件包来创建一个根CA认证服务器,由根CA向自己颁发LDAP服务的使用证书。公钥包含在证书之中,其中包括了服务器完整域名(FQDN)名。在LDAP服务的客户端存放一张根CA的证书,并且用这一张授权证书去检测LDAP服务器证书的有效性和真实性。

 下图是SSL 身份认证及协商密钥的过程

●客户端发起请求,包含一个hello消息,并附上客户端支持的密码算法和 SSL 协议的版本消息以及用于生成密钥的随机数。
 ●
服务器收到消息后,服务器端选择加密压缩算法并生成服务器端的随机数,将该信息反馈给客户端;接着服务器端将自身的数字证书(在图 1 中使用了一个 X.509 数字证书)发送到客户端;完成上述动作后后服务器端会发送"hello done"消息给客户端。此外如果服务器需要对客户端进行身份认证,服务器端还会发送一个请求客户端证书的消息。
 ●
一旦客户端收到"hello done" , 就开始对服务器端的数字证书进行认证并检查服务器端选中的算法是可行的。如果服务器要求认证客户端身份,客户端还会发送自己的公钥证书。
 ●
如果对服务器的身份认证通过,客户端会发起密钥交换的请求。
 ●
服务器端和客户端根据先前协商的算法和交换随机数生成对称密钥进行后续的通信。

<1>根CA配置:

要确保openssl的软件包已安装,如下图所示:

(1)编辑/etc/pki/tls/openssl.cnf 文件首先备份成openssl.cnf.bak

[CA_default]

default_days = 3650 &#61664;   证书有效期为十年(第73行)最好设置时间要长一些,否则过期后所有的都要重新设置

default_bits = 1024  改为 2048 &#61664;  密钥的长度 (第106行)

basicConstraints=CA: FALSE  改为 CA:TRUE &#61664; 可以签发下级证书 (第172行)

basicConstraints = CA : FALSE 改为 CA:TRUE (第223行)

编辑后生成openssl.cnf.rootca 制作根CA的配置文件

#cp /etc/pki/tls/openssl.cnf  /etc/pki/tls/openssl.cnf.rootca

使其能够签发下级证书。

(2)进入/etc/pki/tls/misc 目录。

在该目录中有一个CA脚本文件可以用它来制作根CA。

编辑CA文件找到DAY="-days " 和CADAY="-days  " (第63行和第64行)

配置为  DAYS="—days  3650"#10years

         CADAYS="—days  3650"#10years

创建根CA机构

这里关系到两个目录,/etc/pki/tls/misc是工作目录,/etc/pki/CA是存放所有CA相关文件的目录。完成此步骤后,会在/etc/pki/CA目录下生成一系列文件,其中最重要的是
/etc/pki/CA/private/cakey.pem   CA的私钥文件
/etc/pki/CA/cacert.pem  CA的证书文件
注意:如果脚本检测到/etc/pki/CA下面有文件存在,那么script会安静的退出,不会创建任何东西。把/etc/pki/CA下的文件全部删除,script就可以正常工作了
#rm -rf /etc/pki/CA/

#cd /etc/pki/tls/misc/

如图所示:

执行脚本文件CA创建根CA机构(为根CA申请证书)

#./CA –newca

需要特别注意的是创建证书时,输入Common Name的时候如果输入FQDN,客户端就指定FQDN连,如果输入IP,客户端就指定IP连。如果指定的FQDN,就全部用FQDN,否则全部用IP地址

创建过程如下:

CA certificate filename (or enter to create)

Making CA certificate ...
Generating a 1024 bit RSA private key
..................................++++++
.....++++++
writing new private key to '../../CA/private/cakey.pem'
Enter PEM pass phrase: &#8213;&#8213;输入rootca的私钥密码
Verifying - Enter PEM pass phrase: &#8213;&#8213;确认密码
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [GB]: &#8213;&#8213;国家区域号(如US、CN等)
State or Province Name (full name) [Berkshire]: &#8213;&#8213;国家或省市名
Locality Name (eg, city) [Newbury]: &#8213;&#8213;城市名
Organization Name (eg, company) [My Company Ltd]: &#8213;&#8213;单位名
Organizational Unit Name (eg, section) []: &#8213;&#8213;部门名
Common Name (eg, your name or your server's hostname) []: &#8213;&#8213;证书的名称一般书写根CA服务器的完全合格名。本例如:host.domain10.example.com
Email Address []: &#8213;&#8213; 联系邮箱

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: &#8213;&#8213;申请书的密码,直接跳过
An optional company name []: &#8213;&#8213;代办公司的名称,直接跳过
Using configuration from /etc/pki/tls/openssl.cnf
Enter pass phrase for ../../CA/private/cakey.pem:输入私钥的安全密码
Check that the request matches the signature
Signature ok
Certificate Details:
        Serial Number:
      c4:87:8a:c3:fd:11:b2:61
        Validity
      Not Before: Jul 23 06:43:39 2010 GMT
      Not After : Jul 22 06:43:39 2013 GMT
        Subject:
      countryName         = GB
      stateOrProvinceName       = Berkshire
      organizationName    = My Company Ltd
      commonName          = svr.example.com
        X509v3 extensions:
      X509v3 Subject Key Identifier:
          4B:11:F1:EE:53:DC:74:2A:66:F4:C5:E4:5A:15:61:8B:7A:4D:1F:2D
      X509v3 Authority Key Identifier:
          keyid:4B:11:F1:EE:53:DC:74:2A:66:F4:C5:E4:5A:15:61:8B:7A:4D:1F:2D
          DirName:/C=GB/ST=Berkshire/O=My Company Ltd/CN=ldapm.dh.cn
          serial:C4:87:8A:C3:FD:11:B2:61

      X509v3 Basic Constraints:
          CA:TRUE
Certificate is to be certified until Jul 22 06:43:39 2013 GMT (1095 days)

Write out database with 1 new entries
Data Base Updated

创建成功后转入/etc/pki/CA/private/目录,有cakey.pem密钥。(权限设为400)

/etc/pki/CA/下有根CA的证书cacert.pem

#cd /etc/pki/CA

#openssl x509 –noout –text –in cacert.pem

必须要显示  X509V3 Basic Constraints:

              CA:TRUE &#61664; 表示可以签发下级证书。

<2>签发LDAP服务器证书:

LDAP服务器证书也由根CA签发,不过该证书在扩展结构上应该是一张

终端用户证书,所以必须修改/etc/pki/tls/openssl.cnf文件适应变化

服务器签发证书文件配置

[CA_default]

default_days=3650

[req]

default_bits=1024

[usr_cert]

basicConstraints=CA:FALSE

[v3_req]

basicContraints=CA:FALSE

//本例ca服务和ldap服务在同一台服务器,所以要关闭以上两下改为FALES,在生产环境下CA服务器肯定是一台独立的服务器,本例中不修改也没什么关系,不影响。

#cd  /etc/pki/tls/misc/

#./CA  -newreq (与创建根CA证书过程类似)

Generating a 1024 bit RSA private key
...............++++++
.++++++
writing new private key to 'newkey.pem'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [GB]:
State or Province Name (full name) [Berkshire]:
Locality Name (eg, city) [Newbury]:
Organization Name (eg, company) [My Company Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:&#8213;&#8213;证书的名称一般书写LDAP服务器的完全合格名如host.domain10.example.com,很重要后面会用到
Email Address []:

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Request is in newreq.pem, private key is in newkey.pem
对证书进行签证:
#./CA  -sign (对证书签证)
Using configuration from /etc/pki/tls/openssl.cnf
Enter pass phrase for ../../CA/private/cakey.pem:&#8213;&#8213;输入密码
(Rootca 的 Private key 密码)
Check that the request matches the signature
Signature ok
Certificate Details:
        Serial Number:
      c4:87:8a:c3:fd:11:b2:62
        Validity
      Not Before: Jul 23 06:52:31 2010 GMT
      Not After : Jul 23 06:52:31 2011 GMT
        Subject:
      countryName         = GB
      stateOrProvinceName       = Berkshire
      localityName        = Newbury
      organizationName    = My Company Ltd
      commonName          = svr.example.com
        X509v3 extensions:
      X509v3 Basic Constraints:
          CA:FALSE
      Netscape Comment:
          OpenSSL Generated Certificate
      X509v3 Subject Key Identifier:
          BE:21:BD:4C:39:C1:B4:26:B4:EB:ED:B6:42:36:97:1F:97:49:15:49
      X509v3 Authority Key Identifier:
          keyid:4B:11:F1:EE:53:DC:74:2A:66:F4:C5:E4:5A:15:61:8B:7A:4D:1F:2D

Certificate is to be certified until Jul 23 06:52:31 2011 GMT (365 days)
Sign the certificate? [y/n]:y


1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated
Signed certificate is in newcert.pem

这样LDAP服务器证书就制作完毕了,不过一定要确定是一张终端证书

验证LDAP服务器端证书:

#openssl x509 –noout –text –in newcert.pem 

           X509V3  Basic  Constraints:

             CA:FALSE &#61664;  表明是一张终端证书。

#cd /etc/pki/tls/misc

#openssl verify –CAfile /etc/pki/CA/cacert.pem  newcert.pem

成功会显示newcert.pem:OK &#61664; 表明新证书newcert.pem是由根证书cacert.pem授权。

运行完上面两个步骤后,会发现当前目录下创建了3个文件:
newreq.pem 
创建证书请求文件,没什么用了
newcert.pem CA
签发的证书
newkey.pem 
证书对应的私钥(权限设为400)

<3>LDAP服务器配置使用SSL

使用SSL安全通信需要重新配置服务器端slapd.conf文件添加SSL支持。同时将cacert.pem,LDAP服务器证书和密钥放入指定路径。

slapd.conf文件配置改动:

指定到以下三行去注释并添加

TLSCACertificateFile   /etc/openldap/cacerts/cacert.pem TLSCertificateFile      /etc/openldap/cacerts/newcert.pem TLSCertificatekeyFile   /etc/openldap/cacerts/newkey.pem

TLSVerifyClient      never

第一行设置了根CA证书的存放路径,第二行和第三行分别是服务器证书和私钥的存放路径。第四行表明服务器端不需要客户端提供证书这是一个单向认证。

转移文件
cd /etc/pki/tls/misc

cp new* /etc/openldap/cacerts/
cp /etc/pki/CA/cacert.pem /etc/openldap/cacerts/

属主
cd /etc/openldap/cacerts/

设置合适的权限
chmod 644 newcert.pem
chmod 400 newkey.pem


chown ldap.ldap newkey.pem (否则slapd有服务启动不了)

重启slapd服务

#server slapd restart //重起时需要输入之前给证书设置的管理密码

在/var/www/html目录中创建pub子目录,并将ca的公钥文件复制到pub子目录中

启动httpd服务

cp /etc/pki/CA/cacert.pem /var/www/html/pub/cacert.pem

注意:防火墙和selinux

1、停掉iptables服务或创建LDAP的允许规则

iptables –I INPUT –p tcp –dport 389 –s 192.168.10.0/24 –j ACCEPT

iptables –I INPUT –p tcp –dport 80 –s 192.168.10.0/24 –j ACCEPT

LDAP客户端配置支持安全通信

方法:

/etc/hosts中添加LDAP服务器的IPhost.domain10.example.com的对应记录

在配置客户端之前,你应该确保已安装directory-client的软件包(使用ldap系列命令查询时使用),其中包括软件包sssdauthconfig-gtkoddjob-mkhomedir

系统->管理->身份验证或system-config-authentication可用于修改"身份标识和身份验证"的配置。

http://host.domain10.example.com/pub/cacert.pem (host.domain10.example.com是在创建LDAP证书common name处所写的信息,cacert.pemCA的证书

以上是通过http方式下载CA证书,也可以通过ftp方式下载

客户端配置完成

测试:使用ldap服务器上的用户在客户机上登录

:若验证失败可以尝试修改下面的文件

修改/etc/sssd/sssd.conf文件,如下图:

重启service sssd restart

系统安全服务守护进程(SSSD)功能:它实现了集中身份验证/认证管理,并且支持广泛的身份验证/认证服务(包括OpenLDAP、动态目录、Kerberos以及红帽自带的目录服务器)。对于红帽管理部门而言,这将使得集中认证的过程变得更加容易。

 

能正常登录,但报一个错,说没有家目录。怎么办?对,自动挂载给他做一个家目录:

LDAP服务器端先配配置好NFS服务器,共享/home目录:

启动并设置每次开机自动启动

在客户端上配置自动挂载:

auto.master文件

auto.nfs文件:客户端创建

mkdir /etc/auto.nfs

重起autofs服务,需先停止再启动

在客户端验证ldap服务器是否生效,ldapuser1是服务期端用户,在客户端可以登录。

注:我们想要支持任意用户名登录,因此可以将第一列替换为"星号(*)",它是一个通配符,代表所有用户。然后,我们使用元字符"连号(&)"替换共享中的用户名

要注意防火墙要允许NFS的通信(请参照上节中的NFS配置)。

好了现在测试一下:没问题了。

补充:

添加LDAP数据库中的数据:

ldapadd -x -D "cn=manager,dc=example,dc=com" –W –f dd.ldif

修改LDAP数据库中的数据:

ldapmodify –x –D "cn=Manager,dc=example,dc=com" –W

删除LDAP数据库中的数据:——删除ldapuser1用户

ldapdelete -x -D 'cn=Manager,dc=example,dc=com' -w redhat "cn= ldapuser01,ou=people,dc=example,dc=com"。

如果要删除多个条目,可以将这些 DN 放置在一个文件中,一个 DN 占一行,并使用 -f filename 把 ldapdelete 指向该文件。

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。

 叶落葬红尘    技术QQ499839808

 

 

SVN服务器搭建和使用(三)

 

接下来,试试用TortoiseSVN修改文件,添加文件,删除文件,以及如何解决冲突等.

添加文件

在检出的工作副本中添加一个Readme.txt文本文件,这时候这个文本文件会显示为没有版本控制的状态,如图:

这时候,你需要告知TortoiseSVN你的操作,如图:

加入以后,你的文件会变成这个状态,如图:

这时候使用TortoiseSVN进行提交.这样别人就能看到你所做的更改了,如图.

修改文件

使用TortoiseSVN更新,修改工作副本中的Readme.txt文件,加入"hello world!",然后保存,你会发现Readme.txt文件的图标改变了,如图:

这个红色的叹号代表这个文件被修改了,这时候,提交更改,其他人即可看到你的更改.

重命名文件

使用TortoiseSVN更新,重命名工作副本中的Readme.txt文件为"Readme1.txt',然后保存,你会发现Readme.txt文件的图标改变了,如图:

更添加文件一个道理,这时候你需要告诉TortoiseSVN你的操作,如图:

加入以后,提交,这时候版本库中的Readme.txt文件将会被重命名为"Readme1.txt".

删除文件

使用TortoiseSVN更新,使用TortoiseSVN删除工作副本中的Readme.txt文件,然后提交,版本库中的相应文件即被删除掉了,如图:

强制写注释

为了以后你能更清晰的看到你所做的每一次更改的原因,你在每次提交的时候应该写上注释,而且尽量详细.如图:

但是,可能有的人因为觉得太繁琐,而不填写注释,这不利于以后的版本控制,可以将强制在提交的时候写注释,首先单击右键,选择TortoiseSVN->属性,如图:

在弹出的对话框中,点击新建->日志大小,设置提交日志的最小字符数和锁定日志的最小字符数为20,提交文本框中显示边线的字符位置设置为100,点击确定,如图:

提交,以后再次提交的时候,如果输入的注释少于20个字符,将无法提交.

冲突解决

冲突问题是最常见的问题,它是这样产生的,A用户check out了一个工作副本A,接着B用户又check out了一个工作副本B.然后A用户对副本A中的文件C做了修改(可以是内容修改,文件删除,重命名,以及位置移动),并且提交.这时候B用户也对文件C的相同部分做了修改,这时候如果B用户进行提交,会先被告知版本过时,要求更新,然后更新的时候会提示冲突了,这时候可以用冲突编辑器进行手动选择.

 

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。

 叶落葬红尘    技术QQ499839808

 

SVN服务器搭建和使用(二)

 

 

上一篇介绍了VisualSVN ServerTortoiseSVN的下载,安装,汉化.这篇介绍一下如何使用VisualSVN Server建立版本库,以及TortoiseSVN的使用.

首先打开VisualSVN Server Manager,如图:

可以在窗口的右边看到版本库的一些信息,比如状态,日志,用户认证,版本库等.要建立版本库,需要右键单击左边窗口的Repositores,如图:

在弹出的右键菜单中选择Create New Repository或者新建->Repository,进入下一步:

输入版本库名称,勾上Create default structure复选框(推荐这么做).点击OK,版本库就创建好了,版本库中会默认建立trunk,branches,tags三个文件夹,如图:

这时候我们将项目导入到版本库中,找到你的项目文件夹,在项目文件夹上点击鼠标右键,找到SVN菜单,选择导入,如图:

在弹出的对话框中填上版本库URL,这个URL可以从VisualSVN Server Manager中获取,在你的版本库上单击右键,选择Copy URL to Clipboard,这样就把版本库URL复制到你的剪贴版了.如图:

将复制的版本库URL粘贴上,URL后面加上trunk子路径.然后在导入信息里面填上导入信息"导入项目到版本库".如图:

点击确定,所选中的项目就会被导入到版本库中.如图:

项目导入到版本库以后,不能随便让谁都能够读写版本库,所以需要建立用户组和用户.

VisualSVN Server Manager窗口的左侧右键单击用户组,选择Create User或者新建->User,如图:

在弹出的对话框中填写User namePassword,然后点击OK,如图:

用相同的方式分别创建用户Develpoer1,Develpoer2,Develpoer3,Test1,Test2,Manger六个用户,分别代表3个开发人员,两个测试人员和一个项目经理,如图:

然后我们建立用户组,VisualSVN Server Manager窗口的左侧右键单击用户组,选择Create Group或者新建->Group,如图:

在弹出窗口中填写Group nameDevelopers,然后点Add按钮,在弹出的窗口中选择三个Developer,加入到这个组,然后点Ok,如图:

用相同的方式创建组Managers,Testers,如图:

接下来我们给用户组设置权限,MyRepository上单击右键,选择属性,如图:

在弹出的对话框中,选择Security选项卡,点击Add按钮,选中Developers,Managers,Testers三个组,然后添加进来,Developers,Managers权限设置为Read/Write,Tester权限设置为Read Only,如图:

到此,服务端就完成了.

接下来,我们用客户端去检出代码,在桌面空白处单击右键,选择SVN检出,在弹出的对话框中填写版本库URL(具体获取方式,上面讲上传项目到版本库的时候讲过),选择检出目录,点击确定.如图:

开始检出项目,如图:

检出完成之后,我们打开工作副本文件夹,会看到所有文件和文件夹都有一个绿色的√.如图:

至此,创建版本库和使用TortoiseSVN导入项目,检出项目已经介绍完毕.

下一篇介绍TortoiseSVN的使用,以及冲突解决办法.

 

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。

 叶落葬红尘    技术QQ499839808

 

 

SVN服务器搭建和使用(一)

 

 

Subversion是优秀的版本控制工具,其具体的的优点和详细介绍,这里就不再多说.

首先来下载和搭建SVN服务器.

现在Subversion已经迁移到apache网站上了,下载地址:

http://subversion.apache.org/packages.html

这是二进制文件包的下载地址,你可在左侧的导航栏找到源代码,文档的下载地址.

windows操作系统下面的二进制文件包一共有5,如图:

个人认为最好用VisualSVN server 服务端和 TortoiseSVN客户端搭配使用.

点开上面的VisualSVN连接,下载VisualSVN server,如图:

然后下载TortoiseSVN客户端,官网下载地址:http://tortoisesvn.net/downloads.html

注意下载跟你电脑匹配的安装包,在页面的下面你还可以找到语言包,如图:

下载完成后,应该有这些安装包,如图:

 TortoiseSVN安装包和简体中文语言包

VisualSVN server安装包

先安装VisualSVN server的安装包,双击VisualSVN server安装包,如图:

Next,进入下一步,如图:

点同意,进图下一步,如图:

选择上面一个选项,Next,进入下一步,如图:

Location是指VisualSVN Server的安装目录,Repositorys是指定你的版本库目录.Server Port指定一个端口,Use secure connection勾山表示使用安全连接,Use Subversion authentication 表示使用Subversion自己的用户认证.点击Next,进入下一步,如图:

Install,进入下一步,如图:

等待安装完成,如图:

安装完成后,启动VisualSVN Server Manager,如图:

接下来我们安装TortoiseSVN,双击安装包,进入下一步.如图:

点击Next,进入下一步,如图:

选择接受,然后点击Next,进入下一步,如图:

选择安装路径,然后点击Next,进入下一步,如图:

点击Install,开始安装,如图:

等待安装完成,安装完成后如图:

接下来我们安装简体中文语言包,这个非常简单,一路Next就行,就不截图了.语言包安装完成以后在桌面任意空白地方单击鼠标右键,会在右键菜单里找到SVN,如图:

选择设置,进入下一步,如图:

在右边的语言里面选择简体中文,然后点击应用,确定,汉化即完成,如图:

到这里,服务端和客户端都已经安装完毕,下一篇介绍用VisualSVN Server创建版本库,以及TortoiseSVN的使用.

 

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。

 叶落葬红尘    技术QQ499839808

 

 

TortoiseSVN客户端重新设置用户名和密码

 

 

在第一次使用TortoiseSVN从服务器CheckOut的时候,会要求输入用户名和密码,这时输入框下面有个选项是保存认证信息,如果选了这个选项,那么以后就不用每次都输入一遍用户名密码了。

不过,如果后来在服务器端修改了用户名密码,则再次检出时就会出错,而且这个客户端很弱智,出错之后不会自动跳出用户名密码输入框让人更新,我找了半天也没找到修改这个用户名密码的地方。

最终,找到两种解决办法:

办法一:在TortoiseSVN的设置对话框中,选择"已保存数据",在"认证数据"那一行点击"清除"按钮,清楚保存的认证数据,再检出的时候就会重新跳出用户名密码输入框。

   

如果方法一不起作用,则可以采用方法二:

Tortoise的用户名密码等认证信息都是缓存在客户端文件系统的这个目录:

C:/Documents and Settings/Administrator/Application Data/Subversion/auth

删除auth下面的所有文件夹,重新连接远程服务器进行检出,对话框就会出现!

 

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。

 叶落葬红尘    技术QQ499839808

 

 

Windows server 2003 NAT配置

 

公用地址用于Internet,在Internet中随意访问。由IANA分配。

专用IP地址是保留给组织内部私有网络使用的IP网络,可以被不同的组织重复使用,专用地址包括:10.0.0.子网掩码为255.0.0.0, 172.16.0.0子网掩码为255.240.0.0,

 

专用地址上网是用NAT转为公用地址,同样外部访问设置删除映射时间内部就是反过来。NAT工作过

程如下:

(1)NAT客户端需要与Internet通信,于是将数据包发给NAT服务器。

(2)NAT服务器将数据包中的源端口和专用IP地址转换为其自己端口号和公用IP

地址,然后将数据包发给Internet上的主机。同时将源端口和专用IP地址与其自己

的端品号和公用IP地址的映射关系记录下来,以便后续过程使用。

(3)Internet上的主机将回应发送给NAT服务器的公用IP地址。

(4)NAT服务器将所收到的数据包的目的端口号和公用IP地址根据映射关系转换为客户机的端口号和专用IP地址并转发给客户机。

 

下面来看部署:

先在服务器上配置NAT。

打开路由和远程访问。

下一步

选网络地址转换

 

选接Internet上的网卡。

"使用此公共接口连接到INTERNET":如果NAT服务器的INTERNET接入采用固定永久的连接方式,如专线或以太网连接等。则选择此项。

"创建一个新的到INTERNET的请求拨号接口":如果NAT服务器INTERNET接入采用非固定永久的连接方式,而是在需要时才连接,例如传统拨号、ISDN或ADSL连接等。则选择此项,并根据向导设置连接时所需要的接入号码、用户名和密码等相关参数。

下一步

选第一项:表明NAT服务器提供DNS服务、为NAT客户端分配默认网关和DNS服务器的IP地址均为其连接内部网的IP地址。

 

下一步

 

点击完成

下面配置NAT客户端

 

在这里可以看到NAT客户端IP和网关在同一个IP段。然后PING网上的服务器IP。可以看到通过。

 

下面配置NAT服务属性

点属性

可以配置事件日志

 

 

设置删除映射时间

 

这里设置DHCP为NAT客户端分配IP地址

 

这里是配置是否在NAT服务器上启用DNS服务为NAT客户端提供名称解析服务。

注:NAT服务器并非DNS服务器,因此其本身并不能完成名称解析,它只是接受N AT客户端发来的名称解析请求并转发给Internet上的DNS服务器,然后将DNS服务器返回的结果转发给客户端。

 

可以排除一些IP

 

下面来看配置NAT接口的属性

 

点击本地连接,这个连接是接在INTERNET上的。点属性

NAT服务器必须在INTERNET接口上启用NAT。基本防火墙只提供对公用接口的保护,不能在专用接口上启用基本的防火墙。

如果选"仅基本防火墙",则当前接口将不提供NAT,但受基本防火墙的保护。

 

点新建

这里举个例子。

可以看到除符合下面外的其它都不能通过。

如果NAT服务器拥有多个公用地址,则需要在此选项卡中添加这些地址。

点添加

点确定

点保留。可以将指定的公用地址保留给内部网的某专用地址,即建立静态的映射关系。

这样建立保留后,内部地址192.168.0.8访问外网都是通过200.200.0.24公用地址来转换,不会是其它的。如果地址为192.168.0.8是内部的一台WEB服务器。如果允许INETERNET用户访问内部WEB服务器,则要选允许将会话传入到此地址。

点确定

如果在网络中提供INTERNET用户可以访问内部服务器,如WEB服务器。但基本防火墙阻止了这些来自INTERNET的访问,则可以在此选项卡中将特定的类型的通信配置排除在外。

点添加

上面举了个例子。

可看到图。

通过此选项卡可配置当前接口是否接受并响应指定的ICMP请示,为了保护NAT服务器安全,如果不是特别需要,通常情况下应拒绝任何ICMP请示。

下面来建立个NAT使用请示拨号接口

点右键

这里是没有启用。

看图选中,确定

 

点是

下一步

这是输入ADSL

选PPP

这是是接INETERNET接口的地址。

在远端路由器上可发送纯文本密码。

这里配置静态路由

点添加

由于NAT服务器需要通过此接口访问INTERNET,因此需要添加默认路由。

下一步

这里的凭据和远端的拨入配置是一样的,实际上是认证。

完成

看到刚才配置好的请求式拨号连接。

点新增接口

确定。

可看到已添加到NAT/基本防火墙"中。

至此,基本上完成了。

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。

 叶落葬红尘    技术QQ499839808

 

 

 

windows server2003 多用户登陆问题解决办法

 

 

Windows Server远程登陆默认情况下只允许同时有两个用户登陆,超过两个用户会提示"超出最大连接数".

要解决这个问题,需要安装终端服务器.

1.安装终端服务器

   开始->管理工具->管理您的服务器,会弹出管理服务器窗口,如图:

点击添加或删除角色,在弹出的对话框中选择终端服务器,然后下一步开始安装终端服务器,安装完成后会自动重启系统.

2.设置最大连接数

 开始->运行->输入gpedit.msc,回车打开组策略编辑器,依次展开计算机配置->管理模板->windows组件->终端服务,选中终端服务,在窗口右边找到限制连接数量,如图:

右击限制连接数量->属性,弹出窗口中选择设置页->限制连接数量->已启用,TS允许的最大连接数设置一个数值(我这里设置为5,你可以设置为你想要的值),最后点击确定.如图:

3.确认终端服务

 开始->运行->输入tscc.msc,打开终端服务配置窗口,在左边选中连接,然后选中右边的RDP-Tcp,右键->属性,在弹出窗口中选择网卡页,会看到最多连接数已经变成我们第二步设置好的数量了(没有安装终端服务器前,这个值为2,且不可修改),如图:

到这一步并没有完事,这时候虽然同时登陆的连接数变成5个了,但是同时登陆的必须是不同的用户.也就是你用a

用户登陆后,其他人再用a用户登陆,这时候你就会被踢下线.可以这样解决这问题.打开上一步终端服务配置窗口,

选中服务器设置,在右边选中限制每个用户使用一个会话,双击更改成否.这样就可以多人同时使用一个用户进行

登陆了,如图:

最后说一下,安装的终端服务器需要许可证,如果许可证,120天的限制.许可证如何安装,请参考这篇文章:

http://hi.baidu.com/huyuanjuan/item/720db3c92227a30a0ad93aef

 

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

杂谈

分类: Windows网络服务

Windows系统SVN源码服务器搭建-详细教程

 

 

一、引言

      笔者曾经试图在网上搜索一篇关于SVN源代码服务器搭建方面的中文技术文章,可惜,所找到的,要么是不完整,要么就是对笔者没什么帮助的文 章,TortoiseSvn的帮助文档固然强大,但因为是英文,不是很适合来作为入门者使用;毕竟,TortoiseSvn是一个客户端,服务器端的配置 也很重要。

      一年前,笔者刚刚毕业,初入公司,在进行开发时,由于没有进行软件代码版本管理,导致的结果是

  • 软件一天一个版本
  • Bug日益增加且隐藏很深
  • 代码无法向前回溯
  • 几个月前修正过的Bug在几个月后又重新出现
  • ……

      由于最近公司决定架设SVN源代码服务器,来解决以上问题,故笔者经过一段时间的摸索和使用,便有了此文。

   

 

二、学习本文先决条件

      如果作为读者的你符合以下情况,那么本文可以对你起到一个很大的帮助作用:

  • 具备基本的软件开发知识
  • 了解Client/Server模型
  • 正在被日益更新的软件代码版本所困扰

      本文旨在指导读者如何利用现有的软件工具进行软件代码版本管理工作,如果你对软件版本控制与管理,维护与备份较为感兴趣,可以阅读此文来获取一定的知识。

   

三、安装SVN服务器端软件

      首先,你必须下载两款软件包:VisualSVN Server和TortoiseSVN,两者都是开源软件,至于在哪里下载,百度或谷歌之,尽量使用最新版就好,我使用的版本如下:

   

服务器端:VisualSVN-Server-2.5.5.msi

客户端:TortoiseSVN-1.7.5.22551-win32-svn-1.7.3.msi

   

双击以下图标,打开安装包:

   

单击"Next"

   

勾选"I accept...",然后单击"Next"

   

选择第一个"安装VisualSVN Server(可视化SVN服务器)"和"Management Console"

   

Location是你的 安装目录,C盘或D盘都可以,Repositories是你的源代码仓库,也就是你SVN帮你管理代码放置的位置,这里我选择放置在D盘根目录下,将 "Use secure connection"复选框的勾去掉,然后在Server Port中填写8080(填其他端口号也可以,但是确保该端口号未被占用),在这里不使用安全连接的原因是,它会导致通讯速度减慢(PS:当时在公司配置 时使用的secure connection,每次Checkout一次要15秒多的时间,无法忍受),然后单击"Next":

   

单击"Install"

   

等待……

   

Finish!

   

单击"Finish"后,会启动VisualSVN Server,可以看到,它的Status是:

VisualSVN Server is running

Server URL is http://motor-109133.hanslaser.com:8080/svn/

至此,服务器端软件安装完毕!

   

四、SVN服务器配置项目

右键单击"Repositories",选择"Create New Repository..."

   

在"Repository Name"下方文本框填入"TestSvn"(作为测试用),将"Create default structure(trunk,branches,tags)"选项勾选上,单击OK

   

可以看到在Repositories树下面,有一个TestSvn库,这个TestSvn库中有三个文件夹:

  • branches(分支,修改特殊功能或者新功能的分支代码,可与主干进行合并)
  • tags(标记,设定milestone版本)
  • trunk(主干,存放当前正在编辑的代码工程)

   

开始新建用户(用户组管理请各位自己研究),右键单击"Users",选择"Create User..."

   

在"Create New User"对话框中填写账号密码,如图所示:

   

可以看到Users文件夹下面有了一个用户:

   

记得将 Repositories仓库的属性修改一下,因为它默认的属性是Everyone Read/Write,意思是任何人都可以对该库中的内容进行读写,现在我们要将其修改成Everyone No Access,然后再自己添加用户,给予用户读或写的能力,右键单击"Repositories",选择"Properties":

   

选中"Everyone",然后勾选"No Access":

   

现在开始为TestSvn添加一个用户,也就是刚刚添加的账号:zhengshuo,右键单击"TestSvn",选择"Properties...":

   

单击"Add...",选择Users下的zhengshuo,单击OK

   

这样用户zhengshuo就被添加到TestSvn项目中(即目前只有zhengshuo才有对TestSvn的读写权利):

   

 

五、安装SVN客户端软件

双击如下安装包:

   

单击"Next"

   

选择"I accept...",单击"Next"

   

选择安装目录,单击"Next":

   

开始Install:

   

Wait...

   

安装完毕!

   

   

六、从SVN服务器签出工程代码

在任意一个位置建立一个文件夹TestSvn,比如说D盘,右键单击该文件夹,选择"SVN Checkout..."

   

填写好"URL of Repository",格式是http://你电脑的IP地址:8080/svn/TestSvn,端口号是之前设置好的8080,IP地址填写你当前电脑的IP地址,然后单击OK:

   

SVN会提示输入账号密码进行验证,因为zhengshuo这个账号在服务器中已经添加,所以可以用该账号进行登录:

   

验证成功后,会提示"Checkout Finished!":

   

   

七、向SVN服务器签入工程代码

第一次签出会获得当前项目TestSvn中的目录结构,即branches,tags和trunk:

   

我们的代码要放在trunk(主干)文件夹中,代码如下:

   

右键单击TestSvn文件夹,选择"SVN Commit..."

   

填写好上传理由Message,单击OK

   

提示"Commit Finished!"

   

八、后记

      本文讲述的内容虽然较为简单,但是,它却给了初学者一个最佳的切入点,让初学者能够在最短的时间内,对SVN源代码服务器的搭建和初步使用有一个通盘的了解。

      通过对SVN源码服务器的搭建,也让我明白了软件代码版本管理的重要性,正所谓君子善假于物也,我们作为一个合格的软件工程师,要善于合理利用身边一切可以利用的资源,来优化我们的工作环境,提高工作效率,为公司为自己写出Bug较少的完美软件。

 

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
  

新浪BLOG意见反馈留言板 不良信息反馈 电话:4006900000 提示音后按1键(按当地市话标准计费) 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

新浪公司 版权所有