藍天浮雲

This is our world… Nothing changes. It’s here, that we are going to live on…

Archive for the ‘Ports’ Category

Apache 設定

沒有留言

Apache 的說明文件其實很完整,所有的 options 都有詳細說明。不過感覺對初學者不是很友善,國中的時候很多地方都看不懂。

有時候也要用一下搜尋才找的到需要的資料,因為東西太多了,像是模組 就有數十個。

Apache 的設定檔位於 /usr/local/etc/apache22/httpd.conf(Includes/ 和 extra 裡面也有一些設定)。

節錄一下設定檔:

# 這是 Apache 程式、設定檔的路徑,正常人不會想改他
ServerRoot "/usr/local"

# 設 Apache 要聽哪個 port(前面可加 IP),除非有用 reverse proxy 否則不需要更動
Listen 80

# 載入一堆模組,有很多可以移除,但不確定的話建議別亂改
# LoadModule foo_module modules/mod_foo.so

# Apache 要以什麼使用者和群組執行
# 要注意一下會有一個程序是以 root 執行,原因是
# port 80 需要權限才有辦法 bind,因此需要 root
User www
Group www

# 管理員信箱
# 根據 RFC 2142 應該設成 webmaster@domain.tld,www@ 為 alias
ServerAdmin webmaster@hs.ntnu.edu.tw

# 網頁的資料,我通常都設成 /home/www/hostname
DocumentRoot "/home/www/www"

# 目錄之權限,預設當然是封鎖所有目錄
<Directory />
    AllowOverride None
    Order deny,allow
    Deny from all
</Directory>

# 網頁所在的目錄之設定
<Directory "/home/www/www">
    # 允許 symlinks,預設有 Indexes 但被我拿掉了
    Options FollowSymLinks
    # 建議不要用 .htaccess 設定,效能差
    AllowOverride None
    # Allow 所有人
    Order allow,deny
    Allow from all
</Directory>

# 預設送哪些檔案,我加了 PHP
<IfModule dir_module>
    DirectoryIndex index.php index.html
</IfModule>

# 拒絕看 .htaccess 與 .htpasswd
<FilesMatch "^\.ht">
    Order allow,deny
    Deny from all
    Satisfy All
</FilesMatch>

# 紀錄檔位置,我通常會改目錄,這樣比較整齊
ErrorLog /var/log/httpd/httpd-error.log

# 紀錄之詳細程度
LogLevel warn

基本的設定檔就到這裡。接下來就是模組、額外的設定。看到 httpd.conf 最下面有很多被註解掉的設定檔。

  • extra/httpd-mpm.conf:管理 Apache 程序,除非流量很大否則預設就好
  • extra/httpd-userdir.conf:使用者網頁專用的模組
  • extra/httpd-info.conf:一些 server 的資訊
  • extra/httpd-vhosts.conf:虛擬主機,很有用,但 SSL方面有些限制
  • extra/httpd-default.conf:一些 Apache 的設定
  • extra/httpd-ssl.conf:SSL 的設定

通常我會改 httpd-info.confhttpd-default.confhttpd-vhosts.confhttpd-ssl.conf 有用到才會設。

httpd-info.conf:最好設成只有 127.0.0.1 可以看,或乾脆拿掉,有需要再啟用。另外,可以用 ExtendedStatus On

httpd-default.conf:改 ServerTokens ProdServerSignature Off

因為 httpd-vhosts.confhttpd-ssl.conf 設定比較複雜,先跳過。

一些常見的設定:

  • <Directory>:目錄
  • <FilesMatch>:檔案
  • <Location>:URL 的部分
  • AddType:Content 種類
  • Header:HTTP header
  • FileETag:ETag 的設定
  • SetOutputFilter:可以用來壓縮
  • Alias:別名
  • Redirect
  • Rewrite:有點像 mod_alias 的加強版
  • IndexOptions

一些常用的模組:

  • headers
  • cache
  • expires
  • deflate
  • alias
  • rewrite
  • ssl
  • vhost_alias

除此之外,CGI、PHP 和 content negotiation 也是一些常用的功能。

作者為dennylin93

2009/12/08 at 10:02 下午

安裝 Apache

沒有留言

網路上有很多種不同的 server,其中 Apache 是最受歡迎也是使用最久的 server 之一。現在 Netcraft 的 survey 顯示 Apache 佔了市場的 47%,接下來才是 IIS、nginx、lighttpd。

Apache 因為使用廣泛、歷史悠久,主要的優點包含:

  • 功能完整
  • 穩定
  • 支援度高

但比起 nginx、lighttpd 這兩個後起之秀,效能沒有那麼好。

現在仍然有許多網站使用 Apache,如 Wikipedia、W3C、ISC、Google(據說是用改版的 Apache)。

Apache 除了靜態網頁之外,還可以配合 PHP 與 MySQL 做動態網頁。

灌 Apache 其實很簡單,只要下:

# cd /usr/ports/www/apache22 && make install clean

模組很多,基本上用預設就好,不過可以不選 DAVDAV_FSCERN_METAIMAGEMAP(若要用 Subversion 要留 DAVDAV_FS)。

接下來把 apache22_enable="YES" 加入 /etc/rc.conf 就可以啟動 Apache 了:# /usr/local/etc/rc.d/apache22 start

除了 script 以外,還有 apachectl 可以使用。

測試設定檔有沒有問題:
# apachectl configtest
啟動 Apache:
# apachectl start
停止 Apache:
# apachectl stop
重新啟動 Apache:
# apachectl restart
重新啟動 Apache:
# apachectl graceful

restartgraceful 的差別在於 graceful 會先等現有的連線結束後才重新啟動。通常建議用 # apachectl graceful。若 Apache 沒有啟動,restartgraceful 都會啟動 Apache。

Apache 的設定檔位於 /usr/local/etc/apache22/httpd.confIncludes/extra 裡面也有一些設定)。

詳細設定之後在打。

作者為dennylin93

2009/12/08 at 9:15 下午

一次設定完 ports

沒有留言

FreeBSD 上編 ports 的時候,常常會有 options 選單跳出來。有時候想下完指令然後給他自己跑,結果到某一步又有選單跑出來,沒辦法繼續。不久之前看到了一個解決方式:config-recursive。一次將所有的 dependencies 設完再開始安裝。

若第一次安裝就用:

# make config-recursive install clean

其實 ports 有很多關於 make 的選項,都可以在 /usr/ports/Mk/bsd.port.mk 裡找到(大約 700 行的地方)。

作者為dennylin93

2009/11/29 at 10:59 AM

學習 FreeBSD

沒有留言

因為社課的關係,所以整理了這些資料。過去幾年中一直都在接觸自由軟體,而最近一整年幾乎都環繞在 FreeBSD 周圍。因此,我整理了一些我看過且覺得不錯的文章、說明文件。

一開始學習 FreeBSD 可能會有點不習慣 console 和作業系統。原因是 Unix 的理念是「keep it simple」。作業系統只會灌必備的東西,其他的都留給使用者。最大的好處是彈性非常大、且不會浪費系統資源、穩定度與效能也超出其他作業系統很多。

第一個當然是 FreeBSD 的使用手冊。從最基本一步一步的安裝到進階的網路設定、網路服務、資訊安全、虛擬化、RAID、除錯都有完整的說明。FreeBSD Handbook 同時也是我在網路上看過最好也是最完整的說明文件。其他 open source projects 和 proprietary 方案都無法與之相比。

使用手冊我強烈較建議看英文版,雖然有中文版。

FreeBSD Handbook:英文中文

下面有一些文件、投影片連結可能有問題,這頁有最新的連結。

我個人建議的學習路線:

  1. 先看完使用手冊 1、2 章,並且將一台電腦灌好,灌一次大概不會記得,建議陸續灌個 5~10 次,我也寫了一篇灌 FreeBSD
  2. 看使用手冊第 3 章熟悉一下 FreeBSD 的環境
  3. 接下來看 For People New to Both FreeBSD and UNIX 背一背基本指令,vi 可以先不學
  4. 看一下 FreeBSD 概論 當複習
  5. 之後看使用手冊第 4 章和 FreeBSD Ports 基礎篇,學會灌軟體
  6. 可以開始學 vi 和 Vim 了
  7. 學會更新和設定一些 ports
  8. 先上一下網路概論,接下來就可以開始架設網路服務
  9. 先學會架設 FTP 伺服器(Pure-FTPd 設定比 Apache 淺顯易懂,但 FTP 協定比較複雜一點)
  10. Apache + PHP + MySQL(理論上目前只會用到 Apache,PHP、SQL 需要一段時間才能學會)

暫時先這樣。之後再補齊網路服務、作業系統核心、world 以及其他進階設定的部分。

另外,可以看看交大的「計算機系統管理」、「計算機網路管理」。這兩個都不錯,不過最後先熟悉 FreeBSD 再看,否則會事倍功半。

ONLamp 也可以找到一些不錯的文章。

想學 vi 和 Vim 可以看 Editing Text 以及 yzlin@VIM: Hack Your EditorMake Your VIM & Screen Environment Comfortable

雖然 vi 和 Vim 對初學者不是很友善,但學會之後就會愛不釋手。有在寫 code 或 configuration 的人一定要學一學。有裝 editors/vim-lite 的話可以用 $ vimtutor 來學習(一個很好的方式)。

我的設定檔之後再想辦法貼上來。

除此之外,一些關於 FreeBSD 的文章:

作者為dennylin93

2009/10/02 at 8:15 下午

整天盯著電腦螢幕的心得

沒有留言

暑假又過完了,明天要開學考。這次暑假學了不少(不過也很雜),只是整天盯著電腦螢幕眼睛很累。幸好現在近視已經不會加深了。

先談 FreeBSD 以外的好了。之前花了幾天看 LaTeX,因為感覺很有趣,可以印出各種數學式子。他最大的功能其實是排版,可以用來弄文章、書之類然後轉成 PDF、PS 等格式。網路上有一本叫 The Not So Short Introduction to LaTeX2e,我幾乎都是看這本學的(此書的作者同時也是 RRDtool 與 MRTG 的作者)。裡面寫的還不錯,很多重點都有涵蓋到。

在 FreeBSD 用 LaTeX 感覺比 Windows 方便多了。用 Ports 安裝不用在下載 MiKTeX 之類的軟體。至於編輯器目前是用 Texmaker。會看 LaTeX 的原因也是因為想整理出一本 FreeBSD 的文件,不過沒做到。現在大概要等學測、指考考完了。

暑假幾乎都在忙郵件伺服器和防火牆。暑假也因此買了 The Book of PostfixThe Book of PF。防火牆已經架好了,也放上主幹,只是規則沒有完全寫好。這次還是用 FreeBSD 架,雖然又 pfSense 之類的方案,但沒有用。其實比想像中簡單。系統準備好之後在 kernel 中加入 PF、ALTQ 的選項以及 device if_bridge。之後 /etc/pf.conf 寫一寫就好了。除了過濾的規則之外,最大的變化應該是將 states、src-nodes、frags、table-entries 調大。 其實到目前為止還沒看過這些超過預設值(最多有過 7000 多個 states),但還是調大一點比較安全。

放上骨幹之後就加了一些軟體可以除錯、看流量、產生圖形。最基本當然有 pfctlpflogtcpdump。額外裝了 sysutils/pftopnet-mgmt/iftopnet/nload 來作為即時觀測。圖形則是加了 net-mgmt/mrtgsysutils/pfstat。MRTG 純粹只有流量,但 pfstat 有關於 PF 的資料。至於實際紀錄總流量則是使用 net-mgmt/bandwidthd

架設郵件伺服器困難度則是防火牆的好幾倍。用 Postfix、Dovecot 設定還算淺顯易懂(幸好不用看 Sendmail 的設定檔)。最麻煩的是要建立各種防止垃圾信件的方法,光是這個就不知道花了幾天的時間。最基本的是從 SMTP 連線中強迫 client 遵守 RFC,如:必須 helo/ehlo hostname、使用 FQDN 等。接下來就檢查 SPF,因為這樣可以避免有人偽裝成 server 亂發垃圾信件(像某某 IP 假冒 Gmail)。現在我也在學校的 domain 上加了「v=spf1 ip4:140.122.126.2 ip4:140.122.126.3 ~all」。還可以用 pcre 過濾 header 和 body,不過現在規則完全是空的。

剩下的方式都比較耗時間或系統資源。建立連線時,用 DNSBL 可以查詢該 IP 是否有不良紀錄,若有的話可以結束連線,不接收任何信件。主要的黑名單有 CBL、SpamhausSORBSSpamcopNJABL。其中 CBL 與 Spamhaus 擋掉最多,SORBS 與 Spamcop 其次而 NJABL 幾乎沒有(統計數字的時候我有調整使用順序)。其實 DNSBL 不會太耗資源、時間,因為只是用 DNS lookup。Greylisting 據說可以退掉不少 spam。用的方式是第一次收到信件會退信,標為 temporary failure。根據 RFC,temporary failure 的時候 MTA 必須再試著寄信。第二次收到信才會收下。電子郵件會被紀錄,這樣以後就不用再被退信了。當然有些可以列入 whitelist 中。整體而言第一次發 email 會被 delay 大約 5 到 20 分鐘,很少超過半小時。因為平常發 spam 他不會勤勞到寄第二次,所以可以退掉一些垃圾信件。

最後(應該說是不耗 CPU 資源中的最後一個方式),Postfix 有 address sender verification。這個功能會檢查 sender 的 email 是否可以收信,若可以的話才會把信件收下。為了省時間只有一些 domain 才會被 verify,驗證完之後也會將 email 存入資料庫,以後就不必再檢查。這也是一個有效的方式,不過通常會 delay 10 秒左右。

現在只剩下過濾信件內容了。主要用 SpamAssassin 過濾內容,然後用 ClamAV 掃毒。另一個方案是 amavisd-new,整合了 SpamAssassin 和其他軟體。

對了,我差點忘了 OpenBSD 的 spamd。這個是跟 PF 整合的軟體,可以 tarpit 和 greylist。不過既然已經有 mail/postgrey 做 greylisting,沒有必要再弄一次,目前主要用途是 tarpitting。用了 uatraps 和 nixspam 這兩個黑名單來檔 spammers。這個 IP 數量也相當驚人,目前 uatraps 有接近 700000 個 IP。若 IP 有被列入黑名單,PF 會將連線交給 spamd,一次只發送 1 byte,跟 block 掉他差不多。

Spam 到此差不多了。剩下的幾乎是 Dovecot 設定、建立 SQL 帳號之類。SQL 其實很簡單(之前以為很難)。Dovecot 改的設定比 Postfix 少很多,幾乎用預設就可以了。主要的差別應該是使用者從 SQL 讀取,PAM 可以註解掉。目前只剩 LDA、quota、sieve、trash 一些 plugin 沒弄好。

比較擔心的是現在我用的這台硬碟空間非常小,可能要移到別台上面。

The Book of Postfix 感覺還不錯,各方面講的都很詳細。特別是有幾章特別分析 Postfix 內部如何運作。我覺得這個很重要。其他像設定的部分,則是先講理論、原理,然後下一張才是實做。這與其他電腦書差異較大,但也因此而能夠徹底理解所有的設定。書裡的例子都十分完整,包括 SQL、SASL、TLS。最後還有一章特別寫用 LDAP 架設郵件伺服器。

講缺點的話當然還是有。最大的應該是我用的軟體跟他不太一樣。SASL、IMAP 我都是用 Dovecot,因為設定淺顯易懂,功能也很強大,有內建的 SASL 也十分方便。書則是用 Cyrus、Courier IMAP。另外一點是書有點舊,某些設定已改變了,不過這倒不用太擔心。只要設定前有參考 postconf 的 man page,上面都有列出舊版本與現在版本的設定。最後一個缺點是有一些錯誤(看 errata 感覺有點多)。不過整體而言,我覺得是一本非常好的電腦書,若要架設郵件伺服器可已參考看看。

The Book of PF 好像沒有那麼好,可已當做 PF FAQ 還有 man pages 的輔助,但沒有辦法取代他們。

暑假也花了不少時間在 FreeBSD Forums 上面。有很多問題幾乎都會有人回答,也有很多資料可以參考。

作者為dennylin93

2009/08/30 at 9:17 下午

基礎郵件伺服器架設

有2則留言

說實話,我覺得這篇打的非常爛,很多地方都沒寫清楚,也漏掉很多東西。我決定改天重打後再用 PDF。Formatting 有點奇怪,不是我的錯…WordPress 害的。這篇先作廢。

繼續閱讀文章 »

作者為dennylin93

2009/07/27 at 8:27 下午

編譯 OpenOffice.org

沒有留言

從灌 GNOME 以來,一直沒有用 ports 更新的就是 editors/openoffice.org-2。原因很明顯:這個 port 實在太巨大了。

最近因為想換成 editors/openoffice.org-3,而 mirror 上面都沒有 package,所以被迫用 ports 安裝。

事前當然有在網路上先問一下大概會多久。得到的回覆是:Core 2 Duo 的處理器花了 4 小時,而 Pentium 4 3.0 Ghz 的處理器則花了 12 個小時。我家電腦是 Pentium D 945 3.4 Ghz。雖然沒 Core 2 Duo、Core 2 Quad、Core i7 那麼威,但比 Pentium 4 好一點。

今天早上 8:37 就開始了。根據 ports 的資訊,最基本需求是 11 GB 的空間和 2 GB 的 RAM。RAM 足夠,但硬碟空間沒理他。之後,編了兩、三個小時左右,忽然發現 work/ 實在太恐怖了。再下去 /usr 的空間鐵定不足。原本可以用 symlink 來使用 /home 的空間,但編到一半了,不想從頭,唯一的辦法是開始對 /usr 做清理。首先砍掉 /usr/src/,釋出大約 500 MB。接下來殺掉 editors/openoffice.org-2。這樣空間沒多多少,只好繼續尋找。看到 /usr/ports/distfiles/ 有 2.2 GB 就趕快將他 rsync/home 底下,然後砍掉他。

接下來其實就是漫長的等待了,不過中間有發現電腦外殼超燙。幾個小時下來搞不好真的會燒壞,因為除了基本的 CPU 風扇、系統風扇,沒有其他的冷卻裝置。只好拿旁邊的電風扇吹主機…

電腦經過 9 個小時的奮戰後終於編完了。中間有拍 htoptop 的畫面。

htop

htop

top

top

結束後,看了 work/,爆增到 8.9 GB。過程中 RAM 看起來也沒有用多少,感覺 1 GB 應該綽綽有餘。我的心得:editors/openoffice.org-3 最好晚上裝,這樣早上起床一切都弄好了。

其實編譯過程中,十分耗系統資源。開 Firefox 幾乎不能動,但 Opera 卻好多了。雖然比較小,但功能齊全。話雖如此,但主要瀏覽器不太可能換成 Opera,太習慣 Firefox 了。從國小用到現在。昨天才剛將 Google Page Speed 裝好,今天 YSlow 又釋出新版本。看起來支援 Firefox 3.5,但還沒試。

上一次編巨大的 port 是 lang/gcc44。還留有 Munin 的紀錄,CPU 使用率衝最高的那段就是了。

CPU usage - by day

CPU usage - by day

作者為dennylin93

2009/07/08 at 8:20 下午

Firefox 3.5

沒有留言

Mozilla Firefox 3.5 自從 7 月 1 日更新完到現在已經用了一星期了。整體而言,介面並沒有太大的改變,但感覺好很多。

官方網站上有標示 SunSpider JavaScript Benchmark 的解果。JavaScript 明顯比 前面的版本快許多。原因是這次多了 SpiderMonkey 這個 JavaScript engine。網路上有看到一些人寫 Gmail 等網站確實有變快,不過我沒留意。

另一個新的功能是 HTML 5 的支援。多了一些像 footeraudiovideo 的標籤。HTML 5 裡 centerfont(等 font 等很久了,IE 害人不淺)也消失了。CSS 3 的支援也比較齊全了。不過 HTML 5 和 CSS 3 都還沒正式釋出。目前 CSS 支援最差的應該還是 IE(至少 IE 6 是這樣,IE 7 以後我就沒再用了)。

這次的 Extensions 幾乎都沒有問題,升級後仍然可以使用。之前從 Firefox 1 升級到 Firefox 3 和 Firefox 2 升級到 Firefox 3 的時候卻有一大堆無法使用,等了一段時間後才全部支援。目前主要是 YSlow 無法使用,已跳槽到 Google Page Speed

這次最明顯的改變應該是 PlurkFreeBSD 上變得超順。以前捲軸會一直 lag,現在不會了。

昨天用 Firefox 時,居然沒辦法用 Java。之前 Firefox 3 有裝過,但升級後消失了。最後找來找去找到 /usr/local/lib/firefox3/plugins/。把 libjavaplugin_oji.so symlink 進去就好了。

Flash 也莫名其妙的變順,之前在 YouTube 上看影片,只要碰到時間軸就當了。我是有將 /etc/make.conf 裡的 OVERRIDE_LINUX_BASE_PORT=f10 註解掉,換回預設的 emulators/linux_base-fc4。應該是這個原因。

說道瀏覽器,Opera 也是個不錯的選擇。功能完整,且很小。適合重編 kernel 和 world 的時候使用。每次更新電腦會當半天。印象中 xbddc 學長是用 Opera。

最近家裡和學校電腦 FreeBSD 上也大動干戈,從 ports-mgmt/portupgrade 換成 ports-mgmt/portmaster。主要原因是聽說 portmaster 比較快,還有不必安裝 Ruby。但事實上 portupgrade 也有一些優點,因為會使用快取,某些時候比較快,而 portmaster 則不需要任何額外的 ports,安裝快許多。

QEMUVirtualBox 都裝了。VirtualBox 已經灌了 FreeBSD(用來試 ZFS)和 Untangle,QEMU 則還沒動過。改天來試一下 Windows。

昨天和 Alex 談起電腦時,發覺變化速度真十分快速。現在不斷的推陳出新,且間隔不斷縮小。不久前 PHP 5.3.0 也剛出來

上午去天瓏書局看書,下午有去了一次。暑假來好好研究一下資訊這一科。

作者為dennylin93

2009/07/07 at 10:49 下午

為高一生涯劃下句點

沒有留言

原本升了高中以後就有心理準備會很忙,但實在沒想到時間會過得這麼快。一年的時光又過去了,學期也近尾聲了。

最近實很忙(現在好像不管什麼時候都很忙),要準備期末考、社團交接。這次我比較擔心的科目是國文、數學、物理、化學。今天考完了(雖然明天還剩體育),國文學期總成績應該及格了。數學分數倒讓我滿驚訝,比預期的還高。至於物理﹍希望不會被當。

現在電腦有點當(正在編譯 MySQL)。剛剛好了,等一下換更新 Java。

這學年其實還滿充實的,學了不少事。不過物理這種上法讓我有點擔心,因為我比較適合按部就班。寒假的時後數學、資訊並沒看很多,畢竟時間有點短。這次暑假可以好好利用了。

我覺得很幸運,學校沒有安排暑假輔導(據說南一中要上半個暑假)。難得有這麼長的時間可以運用,大概是高中畢業前最後一次有這樣的機會了(同時也是第一次)。Java 更新完了。

這一年來社團也學到不少,特別是作業系統、網路這方面。以前國小、國中 Windows 用得很熟,現在發現 UnixFreeBSDLinux 都有各自的特色,可以說是別有天地。對於一個 Windows 的使用者而言,大概永遠無法瞭解作業系統整個運作方式。原因是 FreeBSD 可以重編 kernel 和 world,系統設定檔讓你隨便改。

說優點當然有,但缺點也是有的。現在用 FreeBSD 最麻煩的地方也是最大的優勢就是用原始碼編譯。雖然這樣有很大的彈性,但相對的,很耗時間(特別是像 lang/gcc44editors/openoffice.org-3 這種巨大的 port)。重灌也很累,所以暑假打算將 Subversion repository 建好,以後就自動化了。

升上高二,三班又要重編了。現在大概已經知道會編到哪班了。暑假雖然有兩個月,但應該轉眼間就過完了。時間有限,得好好利用。

說道這個,國中同學會還沒問要不要辦。改天有空再寄信問問看。

昨天學校網路掛了一整天,害我都連不上。從 Munin 可以明顯看出有個地方跌到谷底:

Apache accesses - by week

Apache accesses - by week

現在出了一堆新的東西,可以試 emulators/virtualboxemulators/qemu。今天放學忘了去借 Windows XP 的光碟來試。暑假順便試 KDE,看是 KDE 或 GNOME 比較和我胃口。

現在來更新 Firefox,並且看完 Building a Safer Web

作者為dennylin93

2009/06/29 at 9:12 下午

磁碟使用率破百

沒有留言

之前在用 Munin 監控伺服器的時候,常看到 Filesystem usage 破百,一直很納悶為何會如此。直到不久之前才看到 FreeBSD 會預留 8% 的空間給作業系統與 root 使用 才知道原因。

Filesystem usage (in %) - by week

Filesystem usage (in %) - by week

作者為dennylin93

2009/06/18 at 11:58 AM