HAproxy + Keepalive实现LDAP代理服务
HAproxy + Keepalive實現LDAP代理服務
因為公司的各種高自研發的系統非常多,這些系統又全部是在使用LDAP做認證,目前我們有幾臺DC控制器來分擔這些ldap請求,用戶通過訪問ldap.xxxx.com這個域名來連接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和主機名的修改我也不講了,這個還是挺容易查到的。
現在開始進行系統的配置:
1 安裝keepalived和HAProxy需要的組件
好吧,我可以用yum命令。。又省事了
yum install gcc kernel-headers kernel-devel yum install keepalived2 配置keepalived:
Keepalived配置文件的默認位置為:
vi /etc/keepalived/keepalived.conf建議復制一份原始的做備份
修改配置文件為:
創建上面用到的腳本文件,意思是當檢測到haproxy服務沒有啟動時啟動它,如果啟動失敗則停掉本機的keepalived服務,這樣VIP會切換到備機上:
3 安裝HAProxy
wget 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=linux264 配置HAProxy
創建配置文件:
vi /root/haproxy-1.4.23/haproxy.cfg配置文件如下
globallog /dev/log local0 info #日志log /dev/log local0 notice #日志maxconn 4096user rootgroup rootdaemon defaultslog globalcontimeout 5000clitimeout 50000srvtimeout 50000option forwardforoption redispatchstats refresh 30retries 3 frontend ldap_tcpbind *:389default_backend pool_ldaplog globaloption forwardfor backend pool_ldapbalance roundrobinmode tcpserver DC03 10.1.1.3:389 check inter 5000 #監聽的LDAP服務器server DC04 10.1.1.4:389 check inter 5000server DC05 10.1.1.5:389 check inter 5000server DC06 10.1.1.6:389 check inter 5000 frontend vs_stats :8081 #監控頁面端口mode httpdefault_backend stats_backend backend stats_backendmode httpstats enablestats uri /stats #監控頁面URLstats auth admin:admin #監控頁面管理員賬號和密碼主機和備機配置一樣。
配置HAProxy日志:
vi /etc/rsyslog.conf修改syslog內容,添加一行:
重啟rsyslog服務
service rsyslog restart可以在/var/log下看到haproxy.log了
5 啟用服務
全部配置完畢后,使用下面命令啟動服務:
service keepalived startkeepalived會自動把haproxy啟動
chkconfig keepalived on讓keepalived開機自啟動。
6 啟用LDAPS代理
如果同時還要添加636的SSL ldap認證,還需要為DC安裝證書
因為我們有多個DC服務器,所以需呀一張類似Exchange的SAN證書,即多域名證書。可以通過Exchange服務器上的證書申請功能申請,也可以直接像CA申請,這里講解直接像CA申請,因為比較復雜:
登錄CA服務器,打開PowerShell,輸入:
certutil-setreg policy\EditFlags +EDITF_ATTRIBUTESUBJECTALTNAME2
net stop certsvc
net start certsvc
該命令允許CA接受SAN證書的申請。
在申請證書網站的界面的Attribute屬性中,輸入:
san:dns=dc03.xxx.com&dns=ldap.xxx.com.com&dns=dc04.xxx.com&dns=dc05.xxx.com&dns=dc06.xxx.com
提交證書申請后,就會得到一張多域名證書。將其安裝在各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重啟服務后,整個代理環境就算配置完成了。
轉載于:https://blog.51cto.com/mingwang/1353615
總結
以上是生活随笔為你收集整理的HAproxy + Keepalive实现LDAP代理服务的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: URL 学习总结
- 下一篇: bzoj 1084 DP