SugarCRM LDAP Support

讓 SugarCRM 使用LDAP連OpenLDAP

續上篇....
Go to: Admin > Password Management
1. Select "Enable LDAP Support"
2. For OpenLDAP Setup:

Server: IP Address (Example: 192.168.1.1 or ldap.test.com)
Port Number: 389
User DN: ou=People,dc=test,dc=com
User Filter: blank
Bind Attribute: dn
Login Attribute: uid
Group Membership: UNCHECK
Authentication: cn=Manager,dc=test,dc=com
Auto Create Users: CHECKED
Encryption Key: blank

以上要搭配slapd.conf 中 Access的權限設定,
如不對,是無法登入的

Auto Create Users :
是 LDAP Server 已有的帳號,
而SugarCRM本身沒有的,就會建立
一定要打勾,
要不然會出現 You must specify a valid username and password.

LDAP 沒有的帳號,而SugarCRM 已有存在的,那當然就會用CRM存在的帳號登入

參閱
http://davidatenney.wordpress.com/2010/04/13/sugar-ldap-installation/

~~

ldap user password change web

安裝self service password
http://ltb-project.org/wiki/download

config 設定參如下,
http://ltb-project.org/wiki/documentation/self-service-password/latest/config_ldap

差別在
$ldap_filter = "(&(objectClass=person)(uid={login}))";
要改成
$ldap_filter = "(&(objectClass=account)(uid={login}))";


$who_change_password = "user";
改成
$who_change_password = "manager";

$hash = "CRYPT";
hash 選符合自己openldap的

這樣就可讓使用者用Web 的方式改密碼

LDAP 的安裝參考
http://blog.jangmt.com/2012/08/centos-6-ldap-server-ldap.html

LDAP + phpldapadmin 參考
http://phorum.study-area.org/index.php?topic=67535.0

LDAP Replication 參考
http://phorum.study-area.org/index.php/topic,67566.0.html
MirrorMode 方式可行,
用Syncrepl則會一直有錯誤,沒法replication,找不出為什麼


~~

How to configure an NTP Server in Windows Server 2012

How to configure an authoritative time server in Windows Server 2012

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config]
"MaxNegPhaseCorrection"=dword:00000e10
"MaxPosPhaseCorrection"=dword:00000e10
"AnnounceFlags"=dword:00000005

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters]
"NtpServer"="tock.stdtime.gov.tw,0×1 watch.stdtime.gov.tw,0x1 time.stdtime.gov.tw,0x1"
"Type"="NTP"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient]
"SpecialPollInterval"=dword:00000384

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer]
"Enabled"=dword:00000001


Restart the time service:
net stop w32time && net start w32time
參閱

在Windows 下client 端,修改機碼,只要改一地方,
NTP Server 在 Windows 下設多筆的機碼位置
HKEYLOCALMACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters

HKEYLOCALMACHINE\SYSTEM\ControlSet001\Services\W32Time\Parameters
中的NTPServer
ip 和 ip 之間,要有空格

直接下指令,
手動指派 NTP 伺服器位址時,可以設定不止一組,
這樣也許可以增加校時的有效性,當第一台 NTP 校時伺服器掛掉時會自動切換到第二台進行校時。
w32tm /config /update /manualpeerlist:"192.168.1.1 192.168.1.2,0x1"

~~

流量不大,卻Connection time 過久,造成網頁出不來

一台Ubuntu 12.04 x64 裝 Apache,
是VM 主機,2 Core,4GB Ram,
連網頁時,會發生 Connection time 過久到 timeout,
這台是用worker module,
修正參數如下
<IfModule mpm_worker_module>
StartServers 2
ServerLimit 200
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25
MaxClients 5000
MaxRequestsPerChild 0
</IfModule>

明顯的改善到10~20ms

後記
發現Log會有 kernel: nf_conntrack: table full, dropping packet 的情形,
(因為此機器,有使用iptables,如果不用,不會有這問題)
而造成在某一時段時,會突然Connection time拉到1~4秒,連線變很慢,
解決table full 的方法很多
廠商給的建議是調整以下兩參數,
ip_conntrack_max
ip_conntrack_tcp_timeout_established
在Ubuntu 12.04 下是在
/proc/sys/net/ipv4/netfilter
ip_conntrack_max = 655350
ip_conntrack_tcp_timeout_established = 10800

可寫到 sysctl.conf
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_synack_retries = 1
net.ipv4.tcp_keepalive_time = 1200
net.ipv4.tcp_fin_timeout = 30
net.ipv4.ip_local_port_range = 1024 65000
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_max_tw_buckets = 5000
net.ipv4.netfilter.ip_conntrack_max = 655350
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 10800
記得要 sysctl -p

又或寫到 rc.local
echo 655350 > /proc/sys/net/ipv4/netfilter/ip_conntrack_max
echo 10800 > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_established

心得
機器上線前,要考量可能的連線數,
不只調整Apache,也記得要調整核心參數,
尤其是有用iptables時


參考
http://blog.yorkgu.me/2012/02/09/kernel-nf_conntrack-table-full-dropping-packet/
http://storysky.blog.51cto.com/628458/243835

後後記...
攻擊無所不在,
kern.log會出現一堆 unexpectedly shrunk window的訊息,
再安裝fail2ban,來防止此問題

我們需要增加檔案 /etc/fail2ban/filter.d/shrunk-window.conf
內容如下
[Definition]
failregex = TCP\: Peer <HOST>\:.* unexpectedly shrunk window.*repaired+
ignoreregex =
修改 /etc/fail2ban/jail.conf 加入
[shrunk-window]
enabled  = true
filter = shrunk-window
logpath = /var/log/kern.log
port = all
banaction= iptables-allports
port = anyport
maxretry = 1
可以利用 fail2ban-regex 指令檢查shrunk-window.conf內的failregex有無問題!
http://linux.die.net/man/1/fail2ban-regex
# fail2ban-regex /var/log/kern.log /etc/fail2ban/filter.d/shrunk-window.conf
如果列出了那些警告訊息,那就表示成功了!
此引用參考
http://petonline.dyndns.org/node/114

後後後記.............
在高峰時段,流量雖沒衝到100M以上,但Connection time就是會超過一秒,
因為流量小,不代表連線數少,
大約會有四五仟左右,不含time wait,syn_recv等....
因此再修正
<IfModule mpm_worker_module>
   StartServers 2
   ServerLimit 200
   MinSpareThreads 25
   MaxSpareThreads 75
   ThreadsPerChild 50
   MaxClients 10000
   MaxRequestsPerChild 0
</IfModule>
再度明顯改善.......
要時時觀察 Connection 數,來做調整....

~~


VERR_UNRESOLVED_ERROR


VirtualBox 開一台VM Linux 時發生如上圖的狀況,
很肯定硬碟還有空間,
整台也chkdsk過,不是硬碟問題,
結論是,下壓縮指令,
VBoxManage modifyvdi  XXX.vdi compact
就可正常開啟VM了

昨天是秋分,也結束一段感情....唉..






ping general failure

一台 2008 r2 去ping外網會general failure
在另一實體ip段,卻不會,很怪,
原因在於
網卡中將NLB給打勾.....
就會如此....

原本不會或許是因原架構是在Loadbalance底下的關係


~~


載著夢想的熱氣球


花蓮的熱氣球,感覺上差了台東一點,
可能是整體觀看的感覺,
不過還是希望朋友們能來花蓮捧場,
畢竟還是有點差異性

至於我什麼時候能回花蓮,
計畫永遠趕不上變化...

~~