关闭exchange服务 的ldap 服务,怎么关闭

HAproxy + Keepalive实现LDAP代理服务_服务器应用_Linux公社-Linux系统门户网站
你好,游客
HAproxy + Keepalive实现LDAP代理服务
来源:Linux社区&
作者:mingwang
HAproxy + Keepalive实现LDAP代理服务
因为公司的各种高自研发的系统非常多,这些系统又全部是在使用LDAP做认证,目前我们有几台DC控制器来分担这些ldap请求,用户通过访问这个域名来连接ldap服务器,我们通过DNS轮询的方式指向不同的DC服务器。
这样出现一个问题就是:当某一台DC挂掉的时候,会导致部分用户或者系统的认证失败,为了达到高可用性,我们更改了环境拓扑,用四台linux服务器充当代理服务器,代理所有ldap请求。
结构如下图:
简单解释一下,4台代理服务器两两一组,都是一台主机,一台热备,分配两个VIP,用户通过DNS查询ldap这个a记录会被轮询到这两个虚IP的代理服务器上,代理服务器后端通过HAproxy检测DC主机端口状态,平均分配用户请求到这些主机上,如果用DC主机故障,就不分配请求。两台一组的代理服务器通过keepalived检测健康状态,如果一台故障,自动将vip飘到备份主机上。
我不得不说,因为我在接到这个任务之前,完全是个linux小白,我连linux怎么做系统都不会。。所以如果我的这篇文章有写的不对的地方,请多多指出。
好吧,虽然我不会装linux系统,但是公司技术部的大大和安全组的大大们研发了一套linux的pxe自助系统,我只需要PXE启动后,选择我要装linux RHEL 6.3版本即可,所以我这里没法介绍怎么做系统。
同样,IP和主机名的修改我也不讲了,这个还是挺容易查到的。
现在开始进行系统的配置:
安装keepalived和HAProxy需要的组件
好吧,我可以用yum命令。。又省事了yum install gcc kernel-headers kernel-devel yum install keepalived
2 配置keepalived:Keepalived配置文件的默认位置为:vi /etc/keepalived/keepalived.conf
建议复制一份原始的做备份修改配置文件为:
vrrp_scriptchk_http_port { script"/etc/keepalived/check_haproxy.sh"& #检测haproxy健康状态的脚本 interval 2 weight 2 } vrrp_instanceVI_1 { interface eth0 state MASTER #备机配置为BACKUP priority 101 #备机配置为100 virtual_router_id 51 #keepalived组表示,同一组中的主机该值要一样 smtp_alert virtual_ipaddress { x.x.x.2& & & &
#虚拟IP } track_script { chk_http_port } }
创建上面用到的脚本文件,意思是当检测到haproxy服务没有启动时启动它,如果启动失败则停掉本机的keepalived服务,这样VIP会切换到备机上:
#vi /etc/keepalived/check_haproxy.sh #!/bin/bash A=`ps -C haproxy --no-header |wc -l` if [ $A -eq 0 ];then/root/haproxy-1.4.23/haproxy -f /root/haproxy-1.4.23/haproxy.cfg sleep 3 if [ `ps -C haproxy --no-header |wc -l` -eq 0 ];then/etc/init.d/keepalived stop fifi#chmod 755 /etc/keepalived/check_haproxy.sh
3 安装HAProxywget http://haproxy.1wt.eu/download/1.4/src/haproxy-1.4.23.tar.gz tar&zvxf haproxy-1.4.23.tar.gz cd haproxy-1.4.23 make TARGET=linux26
4 配置HAProxy
创建配置文件:vi /root/haproxy-1.4.23/haproxy.cfg
配置文件如下global & & & & log /dev/log local0 info& #日志 & & & & log /dev/log local0 notice #日志 & & & & maxconn 4096& & & & user root & & & & group root & & & & daemon defaults & & & & log global & & & & contimeout 5000& & & & clitimeout 50000& & & & srvtimeout 50000& & & & option forwardfor & & & & option redispatch & & & & stats refresh 30& & & & retries 3frontend ldap_tcp & & & &
bind *:389& & & &
default_backend pool_ldap & & & &
log global & & & &
option forwardfor backend& pool_ldap & & & &
balance roundrobin & & & &
mode tcp & & & &
server DC03 10.1.1.3:389 check inter 5000& & & & & & &
#监听的LDAP服务器 & & & &
server DC04 10.1.1.4:389 check inter 5000& & & &
server DC05 10.1.1.5:389 check inter 5000& & & &
server DC06 10.1.1.6:389 check inter 5000frontend vs_stats :8081& & &
#监控页面端口 & & & & mode http & & & & default_backend stats_backend backend stats_backend & & & & mode http & & & & stats enable & & & & stats uri /stats& & & & #监控页面URL & & & & stats auth admin:admin& & &
#监控页面管理员账号和密码
主机和备机配置一样。
配置HAProxy日志:vi /etc/syslog.conf
修改syslog内容,添加一行:local0.* /var/log/haproxy.log
重启rsyslog服务service rsyslog restart
可以在/var/log下看到haproxy.log了
5 启用服务全部配置完毕后,使用下面命令启动服务:service keepalived start
keepalived会自动把haproxy启动chkconfig keepalived on
让keepalived开机自启动。
6 启用LDAPS代理如果同时还要添加636的SSL ldap认证,还需要为DC安装证书因为我们有多个DC服务器,所以需呀一张类似Exchange的SAN证书,即多域名证书。可以通过Exchange服务器上的证书申请功能申请,也可以直接像CA申请,这里讲解直接像CA申请,因为比较复杂:
登录CA服务器,打开PowerShell,输入:certutil-setreg policy\EditFlags +EDITF_ATTRIBUTESUBJECTALTNAME2net stop certsvcnet start certsvc该命令允许CA接受SAN证书的申请。
在申请证书网站的界面的Attribute属性中,输入:san:dns=&dns=.com&dns=&dns=&dns=提交证书申请后,就会得到一张多域名证书。将其安装在各DC上。
在HAProxy脚本加入下面内容:frontendldap_ssl bind *:636 default_backend pool_ssl backendpool_ssl balance roundrobin mode tcp server DC03 10.1.1.3:636 check inter 5000#LDAP服务器 server DC04 10.1.1.4:636 check inter 5000 server DC05 10.1.1.5:636 check inter 5000 server DC06 10.1.1.6:636 check inter 5000
重启服务后,整个代理环境就算配置完成了。
HAproxy 的详细介绍:HAproxy 的下载地址:
推荐阅读:
Haproxy+Keepalived搭建Weblogic高可用负载均衡集群
Keepalived+HAProxy配置高可用负载均衡
6.3下Haproxy+Keepalived+Apache配置笔记
Haproxy + KeepAlived 实现WEB群集 on CentOS 6
Haproxy+Keepalived构建高可用负载均衡
相关资讯 & & &
& (04月14日)
& (05月15日)
& (03月09日)
   同意评论声明
   发表
尊重网上道德,遵守中华人民共和国的各项有关法律法规
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
本站管理人员有权保留或删除其管辖留言中的任意内容
本站有权在网站内转载或引用您的评论
参与本评论即表明您已经阅读并接受上述条款Exchange Management 服务已停止
不是 IT 专业人员?
Exchange Management 服务已停止
Exchange Management 服务已停止
[本主题旨在解决由 Exchange Server 分析工具发现的特定问题。应只将此主题应用到已对其运行 Exchange Server 分析工具并且正面临该特定问题的系统中。通过可以免费下载的 Exchange Server 分析工具,远程收集拓扑中每台服务器的配置数据并自动分析数据。结果报告详述了重要的配置问题、潜在问题以及一些非默认产品设置。通过遵守这些建议,可以获得更佳的性能、可伸缩性、可靠性及正常运行时间。有关此工具或下载最新版本的详细信息,请参阅 (英文网页)上的“Microsoft Exchange 分析工具”。]
上一次修改主题:
Microsoft(R) Exchange Server 分析工具查询 Win32_Process Microsoft Windows(R) Management Instrumentation (WMI) 类,以确定 MSExchangeMGMT 实例(代表 Microsoft Exchange Management 服务)的 Started 关键字的值。如果 Exchange Server 分析工具发现 MSExchangeMGMT 实例的 Started 关键字的值不等于 True,则会显示警告。 Exchange Management 服务是在 Exchange 2000 Server Service Pack 2 中引入的。Exchange Server 邮件跟踪中心功能以及 Exchange 系统管理器的某些功能依赖于此服务才能工作。 Exchange Management 服务使您可以通过用户界面来指定 Exchange Server 2003 或 Exchange 2000 Server 使用哪个域控制器或全局编录服务器访问 Active Directory(R) 目录服务。此服务对于邮件跟踪功能也是必需的。可以禁用此服务,而不会影响到 Exchange 的核心功能。但是,当审核 Exchange Server 功能时,可能需要路由邮件的所有 Exchange Server 计算机上的邮件跟踪功能。 注意:
由于前端服务器的最常见用途是访问邮件而不是路由邮件,因此您可能发现不需要在前端服务器上运行 Exchange Management 服务。
打开“服务”Microsoft 管理控制台 (MMC) 管理单元。
双击“Microsoft Exchange Management”服务。
在“Microsoft Exchange Management 的属性”页的“常规”选项卡上,从“启动类型”对话框中选择“自动”,再单击“应用”。
在“服务状态”下,单击“启动”,再单击“确定”。
有关 Exchange Management 服务的详细信息,请参阅 Microsoft 知识库文章 307413“XGEN: General Information on Exchange Management Service”(英文)()。 有关管理 Exchange 的详细常规信息,请参阅“Exchange Server 2003 管理指南”()。
此页面有帮助吗?
更多反馈?
1500 个剩余字符
我们非常感谢您的反馈。
页面加载速度够快吗?
您喜欢网页的设计吗?
请告诉我们更多意见用户名:嘉为
文章数:11
访问量:1752
注册日期:
阅读量:1297
阅读量:3317
阅读量:581857
阅读量:466432
51CTO推荐博文
【摘要】在 Microsoft Exchange Server 2003 及早期版本中,LDAP 筛选语法用于创建自定义地址列表、全局地址列表 (GAL)、电子邮件地址策略和通讯组。在 Exchange Server 2010 和 ExchangeServer 2007 中,OPATH 筛选语法替代了 LDAP 筛选语法。当我们把Exchange&2003升级到了2010之后,需要把地址列表进行升级,否则在2010中无法打开。一地址列表升级说明 Exchange 2010 支持 LDAP 语法筛选器,并且该筛选器仅存在于已从 Exchange 2003 或更早版本迁移的对象。仅当您要从 Exchange 2010 服务器编辑筛选器时,才必须将这些 LDAP 筛选器升级到 OPATH 语法。例如,如果在您的组织中有 Exchange 2003 服务器,则可以从 Exchange 2003 服务器管理 LDAP 语法筛选器。不能在 Exchange 2010 中管理或创建 LDAP 语法筛选器。二默认地址列表升级 对于默认的地址列表,如“所有用户”、“所有组”、“默认全局地址列表”等,微软直接提供了升级命令,如下:将升级所有用户的默认地址列表:Set-AddressList "AllUsers" -IncludedRecipients MailboxUsers升级所有组的默认地址列表:Set-AddressList "AllGroups" -IncludedRecipients MailGroups升级所有联系人的默认地址列表:Set-AddressList "AllContacts" -IncludedRecipients MailContacts升级公用文件夹的默认地址列表:Set-AddressList "PublicFolders" -RecipientFilter { RecipientType -eq 'PublicFolder' }升级默认全局地址列表:Set-GlobalAddressList "DefaultGlobal Address List" -RecipientFilter {(Alias -ne $null -and (ObjectClass-eq 'user' -or ObjectClass -eq 'contact' -or ObjectClass -eq'msExchSystemMailbox' -or ObjectClass -eq 'msExchDynamicDistributionList' -orObjectClass -eq 'group' -or ObjectClass -eq 'publicFolder'))}三自定义地址列表升级在企业环境中,除了默认的地址列表以外,往往还会有很多自定义的地址列表。对于这部分自定义的地址列表,我们往往通过重建的方法进行升级,耗时较多,容易出错。以下将介绍通过使用LDAP to OPATH filter 转换脚本进行自定义地址列表升级的过程。u前提条件下载LDAP&to&OPATH&filter&转换脚本 fd3.1将LDAP to OPATH filter 转换脚本移动到Exchane安装目录下“scripts”目录下;3.2通过Get-AddressList&'xxxx'&|&fl&name,*filter,exchangeversion查询确认地址列表版本;( 其中xxxx为地址列表名称)&& &&&& 查询结果说明:&&&&&&&& Recipientfilter&表示2010的查询条件,LdaprecipientFilter表示&2003的查询条件ExchangeVersion所表示的 “00”表示为 Exchange 2003版本。3.3打开Exchange管理控制台,CD D:\Exch2010\Scrips定位到LDAP&to&OPATH&filter&转换脚本所在Scrips目录;& 3.4执行”Set-addresslist "xxxx" -recipientfilter(.\convertfrom-ldapfilter (get-addresslist "xxxx ").ldaprecipientfilter) ”进行地址列表升级;&& 确认修改,输入”Y”,并回车3.5执行命令Update-AddressList "xxxx "更新地址列表。3.6接下来,在地址列表中编辑相应的地址列表,已经可以正常进行编辑了。本文出自 “” 博客,请务必保留此出处
了这篇文章
类别:┆阅读(0)┆评论(0)I have the following:
class LDAPConnection {
private $ldapServers = array(
"ldap://serv1", "ldap://serv2"
private $ldapUsername = "DOMAIN\\%s";
function login($username, $password)
$user = sprintf($this-&ldapUsername, $username);
// Make sure password is not empty (/a/731)
if(!empty($password))
foreach($this-&ldapServers as $server)
$ldap = \ldap_connect($server);
\ldap_set_option($ldap, LDAP_OPT_PROTOCOL_VERSION, 3);
if($bind = \ldap_bind($ldap, $user, $password))
// log them in
catch(\ErrorException $e)
// do nothing
As you can see I first make sure that the $password is not empty then I attempt the ldap connection, because if I do not do that, then ldap assumes that I want to do an anonymous connection and returns true.
How do I prevent that? Is my only option like I did above and I have to check to make sure that the password isn't empty? Or is there a better way?
解决方案 Disabling anonymous login shouldn't be done at your application layer.
It should be done at the actual LDAP server itself.
Prohibiting anonymous login at your application layer to me seems like a band-aid because anyone can always use any LDAP client to log into your LDAP server if anonymous login is enabled on the server itself.
本文地址: &
我有以下内容: 类LDAPConnection {
私人$ ldapServers =阵列(
“LDAP:// SERV1”,“LDAP:// serv2上”
私人$ ldapUsername =“DOMAIN \\\\%的”;
功能登录($用户名,密码$){
$ USER =的sprintf($这个 - > ldapUsername,$用户名);
//确保密码不为空(/a/731)
如果(!空($密码)){
的foreach($这个 - > ldapServers为$服务器){
$ LDAP = \\ ldap_connect($服务器);
\\ ldap_set_option($ LDAP,LDAP_OPT_PROTOCOL_VERSION,3);
如果($绑定= \\的ldap_bind(LDAP $,$用户,$密码)){
//记录他们在
赶上(\\ $ ErrorException E){
// 没做什么
}} 正如你可以看到我首先要确保的 $密码不是空的话,我尝试LDAP连接,因为如果我不这样做,那么LDAP假设我想做一个匿名连接并返回真正。我如何prevent是什么?是我唯一的选择像我上面那样,我必须检查确保,密码是不是空的?还是有更好的办法?解决方案 禁用匿名登录不应该在你的应用层来完成。它应该在实际的LDAP服务器本身来完成。在你的应用程序层禁止匿名登录我看起来像一个创可贴,因为任何人都可以随时使用任何LDAP客户端,如果匿名登录的服务器本身上启用登录到您的LDAP服务器。
本文地址: &
扫一扫关注官方微信

我要回帖

更多关于 关闭ldap 的文章

 

随机推荐