2012年10月20日 星期六

可憐的IT人

IT人真的都很可憐。
最近在寫一個程式,要執行php網頁程式,將檔案列印至Windows Server。
原先用的appserv可以用(要自己找php_printer.dll),但是他包的程式版本都太舊。(PHP 5.2.6)
所以只好拿掉,重新裝XAMPP來執行。結果呢...XAMPP的PHP又太新,目前網路上別人編譯好的DLL太舊不能跑。(API版本不合)(PHP 5.4.7)
image

所以我有幾個選擇:
1、裝visual studio加sdk自己編。非常花時間,所以放棄
2、裝vb6加sdk自己編。非常花時間,所以放棄
3、把apperver裡面的php拿出來給XAMPP用,php5.dll不能執行,結果失敗
4、找舊的XAMPP看看能不能用。正在試。
結論:如果以後寶弟(我兒子)跟我說他要學IT,我就打斷他的腿。這麼累、又花時間、又不值錢的工作。除非離開鬼島,不然我真的不建議走IT這一行。

2012/12/1後記:
最後採用的是XAMPP 1.6.8版,這一版可以使用php printer功能。
列印文字檔是沒有問題的,要列印PDF檔也可以,但是只能印在虛擬印表機上。
如果要印在實體印表機上,要先轉成RAW檔(檔案會變超大,而且部份印表機不支援)
所以最後還是用了GCP (Google Cloud Print)來解…

2012年10月16日 星期二

如何將HTML或PHP網頁轉為PDF檔並支援中文(UTF-8)

apt-get install wkhtmltopdf 安裝wkhtmltopdf

apt-get install xvfb 因為我們沒有安裝X11,要用xvfb模式X Window

apt-get install ttf-wqy-zenhei,如果需要輸出中文,就要安裝中文字型(UTF-8)

使用方法:
xvfb-run wkhtmltopdf urf file.php
or
xvfb-run wkhtmltopdf file file.php

舊版的wkhtmltopdf無法輸出hyperlink

0.11版的可以,但是中文會亂掉。
因此最後採用0.10的,可以解決這些問題。
另外新版的wkhtmltopdf就不需要執行xvfb-run了。
可以直接執行wkhtmltopdf了:

wkhtmltopdf url file.pdf




2012年10月14日 星期日

關於JavaScript的二三事

最近試著用PHP結合JavaScript,遇到一些問題,記一下筆記:
1、JavaScript的變數名稱不能用 英文+數字的組合
2、JavaScript每一行最後都要加分號(;) => 廢話,不過我偶爾會忘了。另外,變數記得要加var (這個我也有出過包...)
3、JavaScript在使用PHP的echo輸出時,每一行要加上 \n
4、JavaScript的陣列裡不能有雙引號("),我遇到的主因是資料庫裡的原始資料本來就有雙引號,記得PHP讀出時記得要利用:addslashes,這個函數在取出後加上\號,這樣JavaScript在使用時就不會有問題。

2012年9月24日 星期一

方便但緩慢的:Security Onion

在安裝Squert的過程中,由於Squert一直不能透過git下載。

輾轉找了不少資料,最後找到Security Onion這一套很方便的工具。

簡單的來說,他整合了:Snorby/Squert/Sguil

這三者都是IDS工具的GUI,其中Snorby 不好裝,Squert連下載很難下載。

因此有人願意整合在一起,省去了一堆工,真是件好事。另外,網頁上也有很簡易就能更新的方法,真的省去很多麻煩。

不過我在安裝及測試的過程中,有遇到幾個問題:

1、非常佔資源 ,網頁介紹是建議使用1G的RAM,但我裝在Intel Core 2 Duo 2.53Ghz的CPU,並且有1G RAM的機器上,還是感覺它跑的很踹

2、無法直接套用Snort的rule檔,這邊我沒有花太多精神去try,但是直接去改他的conf檔,讓他去吃snort的rule檔是不能執行的.....

3、Snort的部份由於rule檔有被改過。因此和我平常架設的snort能抓到的sig差很多(數量比較少,有很多也看不到)。由於前述2的關係。我也沒有辦法自行修改,因此最後還是放棄這個軟體了。



不過這真的是一個很方便的工作,因此作一下記錄,說不定哪天會用到。

專案所在的網頁:

http://code.google.com/p/security-onion/
http://securityonion.blogspot.tw/

Snorby安裝時的注意事項

最近因工作上的關係,又把Snorby拿出來裝了一遍。發現有很多細節容易被疏露掉。
因此作一個小整理:
1、在安裝完Snorby之後,記得要建立資料庫:
 bundle exec rake snorby:setup
資料庫的帳號密碼是存在config裡面的database.yml,奇怪的是新版的Snorby,竟然沒有這個檔案,要自己生出來。( 2.5.1 )
檔案長得像這樣:
snorby: &snorby
  adapter: mysql
  username: root
  password: mypassword
  host: localhost
development:
  database: snorby
  <<: p="p" snorby="snorby">test:
  database: snorby
  <<: p="p" snorby="snorby">production:
  database: snorby
  <<: br="br" snorby="snorby">


2、建立好資料庫之後,正常來說應該是這樣啟動Snorby的:
bundle exec rails server -e production
不過我之前去用apache透過passenger來呼叫Snorby,運作上也正常就是了。
補一下apahce相關的設定:
root@ubuntu:/# cat /etc/apache2/mods-available/passenger.conf
PassengerRoot /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.17
PassengerRuby /usr/local/bin/ruby
root@ubuntu:/# cat /etc/apache2/mods-available/passenger.load
LoadModule passenger_module /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.17/ext/apache2/mod_passenger.so

3、安裝完Snorby之後會發現資料一直進不來,這是因為新版(?)需要透過barnyard2將snort的log讀進Snorby資料庫的關係。
snort.conf記得要改一個地方(預設值沒有寫....),不然你試到死都不會有資料進snorby的event這個table (在barnyard2執行時會一直是0 record..)

output unified2: filename snort.log, limit 128

就是這個:unified2。

再來,barnyard2.conf要注意的地方如下:

input unified2 (這個好像預設就有)
output database: log, mysql, user=root password=mypassword dbname=snorby host=localhost

4、snorby的database裡sensor的table也是從這裡寫進去的。不過即使格式錯誤,sensor也能寫入就是了。
(這邊的格式錯誤是指,你忘了改snort.conf裡面的unified2)

5、最後是wkhtmltopdf的問題了,wkhtmltopdf是用來讓Snorby輸出pdf檔的。
不過通常我不能直接執行,原因是我沒裝X11
一般是這樣解:(我上次好像是這樣解的)
xvfb-run -a -s "-screen 0 640x480x16" wkhtmltopdf --dpi 200 --page-size A4
去動snorby_config.yml裡面的wkhtmltopdf的路徑的手腳。

不過這一次我想換其它解法,所以我找了其它解法:
wkhtmltopdf without X11:
http://aaronvb.com/articles/26-pdfkit-and-wkhtmltopdf-without-x-server--using-qt

sudo apt-get build-dep libqt4-gui libqt4-network libqt4-webkit
sudo apt-get install openssl build-essential xorg git-core git-doc libssl-dev
mkdir ~/sources
cd ~/sources
git clone git://gitorious.org/+wkhtml2pdf/qt/wkhtmltopdf-qt.git wkhtmltopdf-qt
cd wkhtmltopdf-qt
./configure -nomake tools,examples,demos,docs,translations -opensource -prefix ../wkqt
make -j3
make install
cd ..

Next install wkhtmltopdf:
git clone git://github.com/antialize/wkhtmltopdf.git wkhtmltopdf
cd wkhtmltopdf
../wkqt/bin/qmake
make -j3
make install
這個方法是有用的,記得看一下env,看PATH這個環境變數是哪個目錄優先,再把剛生出來的wkhtmltopdf這個檔案丟過去那個目錄就好了。

然後 snorby_config.yml這個檔案記得要改一下:
   wkhtmltopdf: '/usr/local/sbin/wkhtmltopdf'
單引號好像可加可不加,我懶得試了。


6、目前除了
Snort Alert [1:100000160:0]
這個log不曉得是格式有誤(但其它格式又能正確判斷),還是Snort還不認識這個sid的關係(但Snort卻又知道它是attempted-dos)和export to pdf的問題之外,其它大致都解決了。

 7、主要參考以下兩個網頁:

https://github.com/Snorby/snorby/wiki/Ubuntu-11.10-by-Andrea-Modesto-Rossi

http://caleudum.com/snorby-installation-on-ubuntu-11-04/



8、報表有日報表、週報表、月報表之類的。*(真怪,之前亂裝什麼都是一次ok,這一次認真要裝,就遇到一堆問題 XD)

報表可以用mail寄。
測試的方法是:
/var/www/snorby/script# rails runner "Event.run_daily_report"

目前有下列的錯誤訊息:
/var/www/snorby/vendor/cache/ruby/1.9.1/gems/railties-3.1.0/lib/rails/commands/runner.rb:49:in `eval': undefined method `run_daily_report' for Event:Class (NoMethodError)
找不到解決的方法 (其實我對這一塊很不熟,因此只能自己google資料慢慢找)
《這個方法是沒有用的,留著是提醒自己不要再用這個方法測試》

所以我們再換一個方法:(我改成透過sendmail寄信,讓它重讀參數,我之前是用重開機的,似乎沒有效)
sudo pkill -f delayed_job
bundle exec rake snorby:update RAILS_ENV=production
結果竟然成功了!

於是我再改成透過gmail寄信。當然是ok。
這邊要註記一下,
用來登入的e-mail 就是收件者的mail。
如果你設定的寄件者名稱無法用來寄信,snorby就會帶mail_config.rb裡面的設定檔的名稱來寄。













2012年5月17日 星期四

熟悉的電玩音樂(待續)

這一頁用來記錄我曾經著迷過的電玩音樂。之後會陸續的擴充(吧)

在我漫長的遊戲歲月中。不可否認的,KOEI的電玩音樂真的是一絕,尤其是三國志的部份。

下面是三國志1代(fc)的配樂,我幼時最常用的是劉備。劉備的屬地在幷州(代州)。因此搭配的是北國淒清的音樂。我現在都還很想把這一段拿來當手機鈴聲。不過老婆可能會覺得太悲,因此一直沒有著手進行。





接著是三國志2(fc)。記得在台灣是用超級三國志的名義出卡的。我還記得我第一次玩的時侯選的是208年的劉備(沒錯,又是劉備)。開局不久曹操就殺下來了。我城裡只有關羽、關平和誰我忘了。沒有想到我只是放放火就把曹操燒死了。對於當時的我可是著實嚇了一驚。
以下是它的配樂。




接著是我最熟悉的三國志3(SFC)。這一代是我破關最多次的一代。
它的音樂不太好找。我個人比較喜歡領地擴展到一定程度時,一片歡欣鼓舞的氣氛的配樂



講到音樂。Enix當然也是一絕,身為國民RPG的勇者鬥惡龍的配樂更不在話下。
在這邊介紹的是我最愛的電玩:DQ5 (勇者鬥惡龍5代)的配樂。選的是在洞窟探險時的配樂。這個配樂給人一種神秘中有著危險的味道,危險但又讓人充滿期待的感覺。
我還記得那個時候我國三吧,總是在半夜偷偷把電視抱到我哥的房間(我哥念高中住校),然後悄悄的過關的感覺。(那個時候知道要好好念書的話,看來是可以考上建中才對的 XD)




接著是常見的戰鬥音樂。這個音樂總讓我覺得很熱血,應該要馬上拿劍去砍怪才對!

2012年5月12日 星期六

D-Link DSL-6641K硬撥設定(新增軟硬撥並存教學)

先說明一下何謂硬撥、何謂軟撥。

硬撥:硬撥代表由VTUR幫後端設備進行PPPoE連線的動作,比較常見的運用是用在後端的裝置無法自行撥號(例如智慧型手機),或者舊有的IP分享器撥號無法到達線路的理想速率(例如50M的線路,但用舊有的分享器撥號只能達到20M的速率)。

軟撥:由電腦進行PPPoE的撥號動作。

2012年3月9日 星期五

VTUR Zyxel P-874 軟撥及硬撥同時支援的設定方法


在某些特殊需求下,我們可能會需要部份的電腦可以PPPOE連線 (例如想要取得固定IP),其餘的電腦不需要使用PPPOE連線就能直接上網。本文的目的在示範怎麼進行相關的設定。

假設我們拿到的是一台乾淨的VTUR。首先我們登入VTUR,點選Advance Setup,並點選WAN,此時可以看到已有一個br_0_0_1_2的Server。這個就是預設的bridge模式,用來讓接在VTUR後面的電腦可以自行透過PPPOE連線上網。