Navigation


RSS: 訂閱阿維雜記本



Apache 整合 Acitve Directory 達成 one single signon

2008-04-30 13:03:56, 裝機紀錄, 阿維, 回 應(1), Translate

阿維的公司使用AD進行使用者驗證,因此在使用者操作的便利性考量前提下.如何讓使用者不需要重覆輸入帳號與密碼,而直接抓取使用者已經登入AD的帳號資訊,已經變成系統開發必須要考量的項目之一 (至少阿維自己是這樣認為啦 @@)

.NET整合AD的資訊已經有大大實做成功並且實際運用於目前的系統上.由於都是微軟家族的產品,因此整合上比較容易.
但是目前公司存在有Apache+PHP+MySQL on Windows的架構,因此如何讓這樣的架構也可以快速的抓取使用者AD資訊是阿維今天要介紹的項目.

[版本需求]
1. Apache 2.x 以上
2. PHP和MySQL都沒有特殊的版本要求,不過阿維還是建議安裝PHP 5.x和MySQL 4.1.x以上的版本

[安裝過程]
1. 將mod_auth_sspi.so (下載位址)放到path_to_apache/modules這個目錄下面
2. 在httpd.conf裡面加上下面兩段
  (1) LoadModule sspi_auth_module modules/mod_auth_sspi.so
  (2)在需要進行驗證的目錄設定加上下面的內容,並且將AllowOverride開啟
      AuthName "A Protected Place"
      AuthType SSPI
      SSPIDomain tpe.compalcomm.com
      SSPIAuth On
      SSPIAuthoritative On
      SSPIOfferBasic On
      require valid-user
         
    修改後應該會像這樣
    <Directory "D:/Develop/htdocs">
     Options Indexes FollowSymLinks
     AllowOverride All

     Order allow,deny
     Allow from all

     AuthName "A Protected Place"
     AuthType SSPI
     SSPIDomain tpe.compalcomm.com
     SSPIAuth On
     SSPIAuthoritative On
     SSPIOfferBasic On
     require valid-user
    </Directory>
3. 重新啟動Apache

[如何抓取使用者登入AD的帳號]
程式只有一行,真的只有一行.
$_SERVER["REMOTE_USER"] 就只需要這行就可以抓到使用者登入AD的帳號.
後面要怎麼達成one single signon,阿維相信各位程式高手都知道該怎麼做了,阿維就不獻醜了.

[如何抓取使用者在AD中的其他資訊]
阿維之前有找到一個adLDAP.php的class,只需要確定ldap_binding正常,
然後將剛剛抓到的使用者AD帳號傳進去,AD裡面所有的資訊全部都可以抓出來.
adLDAP http://adldap.sourceforge.net/

» 加入書籤  AddThis Social Bookmark Button   收藏這篇文章到HEMiDEMi   收藏這篇文章到MyShare   收藏這篇文章到Digg   收藏這篇文章到del.icio.us   收藏這篇文章到Furl   收藏這篇文章到YahooMyWeb  

» 目前回應(1)   » 發表回應   » 標籤 :              

» 引用網址

» Translate this article to English or 简体中文


阿維的黑手日誌 - 安裝ClamAV

2007-05-31 23:16:03, 裝機紀錄, 阿維, 回 應(5), Translate

阿維公司在大陸有一台主機是阿維負責管理,上面有阿維公司在大陸所有分公司每天要使用的系統.
前天有使用者反應,登入系統之後,PC上面安裝的防毒軟體會跳出警告訊息.
而這台主機上面因為阿維偷懶加上相信Linux要中毒不太容易,所以就沒有安裝防毒軟體.
不過因為使用者有提出這樣的問題,為了解決使用者心中的疑惑.
於是阿維就著手安裝防毒軟體.

以下是阿維的操作歷程
透過urpmi進行安裝
1. [root@localhost init.d]# urpmi clamav
2. [root@localhost init.d]# urpmi clamd
3. 安裝完畢之後啟動 clamav : [root@localhost init.d]# clamd start
4. 更新病毒碼 : [root@localhost init.d]# freshclam

結果顯示
ClamAV update process started at Wed May 30 20:10:51 2007
WARNING: Your ClamAV installation is OUTDATED!
居然過期了....
查了一下ClamAV官方網站,阿維透過urpmi安裝的版本是0.87,最新版是0.90.2
台灣的mirror站,版本實在是太舊了,於是阿維就透過easy urpmi去找國外的mirror站

移除台灣的來源
[root@localhost init.d]# urpmi.removemedia -a
removing medium "main"
found 0 headers in cache
removing 0 obsolete headers in cache
wrote config file [/etc/urpmi/urpmi.cfg]

換上美國的mirror站
[root@localhost init.d]#  urpmi.addmedia main ftp://mirrors.usc.edu/pub/linux/distributions/mandrakelinux/devel/2006.0/i586/media/main with media_info/hdlist.cz

[root@localhost init.d]#  urpmi.addmedia contrib ftp://mirrors.usc.edu/pub/linux/distributions/mandrakelinux/devel/2006.0/i586/media/contrib with media_info/hdlist.cz

然後移除舊的Clamav
urpme clamav-db這個指令之後,會把clamd,clamav也一併移除掉

再次透過urpmi進行安裝
[root@localhost init.d]# urpmi clamav
To satisfy dependencies, the following 3 packages are going to be installed (10 MB):
clamav-0.90-0.1.20060mdk.i586
clamav-db-0.90-0.1.20060mdk.i586
libclamav1-0.90-0.1.20060mdk.i586
Is this OK? (Y/n)
還是一樣是舊版的.

看來還是下載Source Code回來自己Complie吧
阿維最後放棄使用urpmi來安裝了,於是又回到最古老的方法,下載Source Code回來安裝.
以下是操作的步驟

檢查一下自己的kernel是否符合要求
[root@localhost init.d]#  uname -r

建立群組和使用者
因為剛剛已經有使用過urpmi進行過安裝,所以現在系統裡面會有clamav群組clamav這個使用者
如果沒有的話下面是建立的方法
[root@localhost init.d]# groupadd -g 40 clamav
[root@localhost init.d]# useradd -c "CLAMAV Owner" -g clamav

開始進行Complie 
[root@localhost init.d]#  ./configure --prefix=/usr/local/clamav --libexecdir=/usr/local/sbin --disable-clamuko --with-usr=clamav --with-group=clamav ( 全部打在同一行上)
Disable Clamuko的原因
Clamuko settings
WARNING: This is experimental software. It is very likely it will hang up your system!!!
make
make install

建立相關目錄與設定權限
mkdir /usr/local/clamav/run
mkdir /usr/local/clamav/db
chown -R clamav:clamav /usr/local/clamav

修改clamd.conf 和 freshclam.conf 設定檔 : 藍色字是阿維修改過的
vi /usr/local/clamav/etc/clamd.conf
Line  8 : Example -> #Example
Line 14 : #LogFile /tmp/clamd.log -> LogFile /var/log/clamav/clamd.log
Line 30 : LogFileMaxSize 2M -> LogFileMaxSize 0
Line 65 : #DatabaseDirectory /var/lib/clamav -> DatabaseDirectory /usr/local/clamav/db
Line 72 : LocalSocket /tmp/clamd -> LocalSocket /usr/local/clamav/run/clamav.sock
Line 145 : #User clamav -> User clamav

  vi /usr/local/clamav/etc/freshclam.conf : 藍色字是阿維修改過的
Line 8 : Example -> #Example
Line 13 : #DatabaseDirectory /var/lib/clamav -> DatabaseDirectory /usr/local/clamav/db
Line 34 : #PidFile /var/run/freshclam.pid -> PidFile /usr/local/clamav/run/freshclam.pid
Line 95 : #NotifyClamd /path/to/clamd.conf -> NotifyClamd /usr/local/clamav/etc/clamd.conf

接著執行
啟動 clamav : [root@localhost init.d]# clamd start
更新病毒碼 : [root@localhost init.d]# freshclam
耶~~順利更新病毒碼囉

開始進行掃毒
[root@localhost init.d]# clamscan -l /data/virus_scan/scan_logs/scan.log -r /www ( 全部打在同一行上)
-l /data/virus_scan/scan_logs/scan.log : 阿維指定掃毒的log存放位置與檔案名稱
-r /www : 掃描的目錄
--move=/data/virus_scan/infect_files/ : 如果檔案受到感染,將檔案移動到這個目錄

寫進排程 : crontab -e
## Clamav batch
* 6,12,18,00 * * * clamav /usr/local/clamav/bin/freshclam ## 六個小時檢查一次更新
* 00 * * 6 clamav /usr/local/clamav/bin/clamscan -l /data/virus_scan/scan_logs/scan.log -r /www --move=/data/virus_scan/infect_files/ ## 每個星期六凌晨12點進行掃毒

阿維今天到公司之後,更新病毒碼又出現. WARNING: Your ClamAV installation is OUTDATED!
是超級無言的啦!! 所以就將舊版的ClamAV砍掉,下載最新版本0.90.3,
接著又重複了以上的步驟一次,ClamAV難道不能夠提供引擎在更新的時候也一併更新嗎?
老是要這樣砍掉,然後再重新安裝一次,是很累人的耶.

» 加入書籤  AddThis Social Bookmark Button   收藏這篇文章到HEMiDEMi   收藏這篇文章到MyShare   收藏這篇文章到Digg   收藏這篇文章到del.icio.us   收藏這篇文章到Furl   收藏這篇文章到YahooMyWeb  

» 目前回應(5)   » 發表回應   » 標籤 :  

» 引用網址

» Translate this article to English or 简体中文


使用urpmi將sendmail換成POSTFIX

2007-02-14 10:49:52, 裝機紀錄, 阿維, 回 應(0), Translate

背景
阿維原本在大陸的主機是沒有安裝sendmail的,
因為原本的功能需求並不需要,所以阿維也乾脆連PORT 25都一併關掉.
後來公司的大陸企業網站也架在這台主機上後,
負責企業網站的那組人需要寄發郵件的功能.
於是阿維就將PORT 25打開,並且讓他們使用PEAR MAIL的方式去寄信.
可是今天他們跟我反應說,功能無法正常執行.
阿維自己測試了一下,的確每次寄信的response都很久.
於是就想說乾脆重新編譯PHP,將sendmail的功能也編進去.
可是重新編譯完PHP之後,response緩慢的情形一樣沒有改善.
再和阿凱討論之後,決定使用POSTFIX取代sendmail
主機的Linux版本 : Mandriva Linux release 2006.0 (Official) for i586

設定urpmi
首先我們必須先將安裝過程中的urpmi先清除掉,這樣我們使用urpmi的時候,他才不會去找CDROM
指令 urpmi.removemedia -a

到 Easy Urpmi找出離你最近的主機做更新
Easy Urpmi
基本上只需要做main的部份.
主機的話就選離你最近的,因為列表中沒有大陸的主機,
所以阿維就選台灣,想說應該不會太慢.
選擇完之後它會顯示更新的網址.
阿維得到的結果是
指令 urpmi.addmedia main ftp://mdk.linux.org.tw/pub/mandrakelinux/official/2006.0/i586/media/main
with media_info/hdlist.cz

輸入這段結果後,系統會進行更新.
阿維昨天在更新的時候,速度還蠻快的,平均在200K~203K,只花兩分半鐘就做完更新了

安裝POSTFIX
指令 urpmi postfix
因為阿維一開始有安裝sendmail,因此在安裝postfix的時候,他會問要不要移除sendmail.
為了讓系統乾淨一點,所以當然是選擇移除sendmail.
安裝的時候會出現syslog的錯誤,
阿維在安裝完嘗試將syslog restart可是一樣會有問題.
不過在最後重起POSTFIX的時候,POSTFIX是可以正常運作的.
所以阿維就也先不去理會它了
指令 postfix restart

測試
阿維在啟動POSTFIX之後,將原本執行很慢的PEAR MAIL和使用PHP MAIL function的程式又重新跑了一次.
效能果然好很多,程式很快就有response,而且信件也都正常寄達

系統操作歷程
[root@localhost etc]# urpmi.removemedia -a <br>removing medium "Installation Free CD1 (cdrom1)" <br>removing medium "Installation Free CD2 (cdrom2)" <br>removing medium "updates" <br>removing medium "main" <br>removing medium "contrib" <br>found 0 headers in cache <br>removing 0 obsolete headers in cache <br>wrote config file [/etc/urpmi/urpmi.cfg] <br>[root@localhost etc]# urpmi.addmedia main ftp://mdk.linux.org.tw/pub/mandrakelinux/official/2006.0/i586/media/main with media_info/hdlist.cz <br>added medium main <br>wrote config file [/etc/urpmi/urpmi.cfg] <br>computing md5sum of existing source hdlist (or synthesis) <br>retrieving source hdlist (or synthesisof "main"... <br>    ftp://mdk.linux.org.tw/pub/mandrakelinux/official/2006.0/i586/media/main/media_info/hdlist.cz <br>found probed hdlist (or synthesis) as media_info/hdlist.cz <br>...retrieving done <br>examining hdlist file [/var/cache/urpmi/partial/hdlist.main.cz] <br>examining pubkey file of "main"... <br>performing second pass to compute dependencies <br> <br>examining hdlist file [/var/lib/urpmi/hdlist.main.cz] <br>built hdlist synthesis file for medium "main" <br>found 0 headers in cache <br>removing 0 obsolete headers in cache <br>wrote config file [/etc/urpmi/urpmi.cfg] <br>[root@localhost etc]# urpmi postfix <br>The following packages have to be removed for others to be upgraded: <br>sendmail-8.13.4-6mdk.i586 (due to conflicts with postfix) (y/Ny <br> <br>    ftp://mdk.linux.org.tw/pub/mandrakelinux/official/2006.0/i586/media/main/postfix-2.2.5-7mdk.i586.rpm <br>installing postfix-2.2.5-7mdk.i586.rpm from /var/cache/urpmi/rpms <br>removing sendmail-8.13.4-6mdk.i586 <br>Preparing...                     ############################################# <br>      1/1postfix               ############################################# <br>Shutting down kernel logger: [  OK  ] <br>Shutting down system logger: [  OK  ] <br>Starting system logger: /etc/init.d/syslogline 4125192 Terminated              $* <br>[FAILED] <br>Starting kernel logger: [  OK  ] <br> <br>[root@localhost etc]# /etc/rc.d/init.d/syslog restart <br>Shutting down kernel logger:                                    [  OK  ] <br>Shutting down system logger:                                    [  OK  ] <br>Starting system logger: /etc/rc.d/init.d/syslogline 4125568 Terminated              $* <br>                                                                [FAILED] <br>Starting kernel logger:                                         [  OK  ] <br> <br>[root@localhost etc]# rc.d/init.d/postfix restart <br>Shutting down postfix:                                          [  OK  ] <br>Starting postfix:                                               [  OK  ] <br>[root@localhost etc]

» 加入書籤  AddThis Social Bookmark Button   收藏這篇文章到HEMiDEMi   收藏這篇文章到MyShare   收藏這篇文章到Digg   收藏這篇文章到del.icio.us   收藏這篇文章到Furl   收藏這篇文章到YahooMyWeb  

» 目前回應(0)   » 發表回應   » 標籤 :  

» 引用網址

» Translate this article to English or 简体中文


PHP 升級到5.2.1完成

2007-02-13 18:44:55, 裝機紀錄, 阿維, 回 應(0), Translate

因為今天有同事需要PHP有sendmail的功能,
加上PHP剛好釋出了5.2.1的版本.
因此阿維今天下班的時候就順便增加sendmail功能和升級PHP.
以往的phpinfo都會帶出 ./configure .... 這後面一長串的資訊.
安裝PHP 5.2.1之後變成只會顯示Apache和MySQL的編譯資訊.

或許是阿維已經太習慣手動編譯這些東西了,
原本想説可能要花兩三個小時才能完成,
沒想到29分鐘就完成了PHP和eAccelerator的編譯以及設定.
終於不用很晚才能下班回家了.

» 加入書籤  AddThis Social Bookmark Button   收藏這篇文章到HEMiDEMi   收藏這篇文章到MyShare   收藏這篇文章到Digg   收藏這篇文章到del.icio.us   收藏這篇文章到Furl   收藏這篇文章到YahooMyWeb  

» 目前回應(0)   » 發表回應   » 標籤 :  

» 引用網址

» Translate this article to English or 简体中文


第一頁  上一頁  下一頁 >>  最後一頁 >>>  

搜 尋 文 章


歷 史 上 的 今 天

文 章 分 類  (共 1213 篇)


今 日 新 增 文 章



最 近 10 篇 回 覆


訂 閱 文 章


網 路 資 訊

好 站 連 結


部 落 格 聯 播


最 近 來 訪 的 朋 友


功 能 選 單

    帳號 :

    密碼 :

      


Google PageRank Checker    Blogarama - The Blog Directory         

counter    BlogLook Score and Rank       Personal Blogs -  Blog Catalog Blog Directory    Personal Blogs - Blog Top Sites

Blog Directory       Blog Directory & Search engine