2009年7月24日 星期五

Flash Plugin 無法正確顯示中文

首先介紹如何安裝Adobe Flash Plugins

    1. 到ADOBE下載Tarball回來
    2. 把.so解壓縮到/usr/lib/firefox/plugins,或~/.mozilla/plugins。前者Firefox專用,後者使用者所有瀏覽器共用。

好啦,真是簡單。不過一開小狐狸,怎麼有些帶有中文字的flash都變成方塊字?雖然中文真的是方塊字,但不是很多方塊堆在一起就是中文…解決辦法拜眾家高手,求得如下:

編輯/etc/fonts/conf.d/49-sansserif.conf

找到

<edit name="family" mode="append_last">
            <string>sans-serif</string>
        </edit>

替換為有中文的字型,比如說”文泉驛正黑”,這樣就ok。

2009年7月22日 星期三

Apache Module mod_dav

WebDAV,一個不常聽到的功能(因為不好管嗎?),名字是Web-based Distributed Authoring and Versioning,使用HTTP協定讓妳對Web server裡面的檔案上下其手。換句話說,Web Server上傳方式不再透過ftp,防火牆將不需要開放port 21。

分成兩方面來講,首先是FreeBSD平台的Apache( V2.2),打開httpd.conf  LoadModule 確定幾樣東西都有一起出操:

LoadModule dav_module
LoadModule dav_fs_module
LoadModule auth_digest_module

FreeBSD的dav設定檔是用Incloud的

# Distributed authoring and versioning (WebDAV)
Include etc/apache22/extra/httpd-dav.conf

打開編輯,範例如
--------------------------------------------------------

DavLockDB "/opt/usr-local/var/DavLock"

#存放Lock狀態資料庫的位置

Alias / "/opt/usr-local/www/apache22/data"

#開放的語法

<Directory "/opt/usr-local/www/apache22/data">
    Dav On

    Order Allow,Deny
    Allow from all 
#認證方式
    AuthType Digest
    AuthName www
#認證完畢 登入系統的等效帳號是www
    AuthUserFile "/usr/local/user.passwd"
    AuthDigestProvider file 
    <LimitExcept GET OPTIONS>
        require user admin
    </LimitExcept>
</Directory>

---------------------------------------------------------

接下來,產生密碼檔

htdigest -c "/usr/local/user.passwd" www admin

第二部份,就是在Client的設定。Client有很多種,WebDrive、Gnome VFS都名列其中。不過這裡很簡單,最多本系學生用的應該是DreamWeaver,只需要在SiteManager指定WebDAV方式上傳,上傳位址是剛剛設定的網頁位址,上傳帳號admin,搞定。

ok,接下來為什麼很少有人這樣搞?原因很簡單,一般防火牆是從layer 3檢查ip封包來限制存取(主要在這裡,是要防止被寫入,免得首頁被改圖),http GET POST等方法必須要拆開封包檢查,不是layer3能解決的(或者說,這需要消耗運算資源、高檔防火牆),因為HTTP服務”一定”是對全世界服務(所以,不斷線就是可以用暴力攻擊)。第二重點,在檔案系統裡面讀寫權限要設定好,不然真的很容易就統統被人看光了不打緊,還被入侵。

比較好的想法是,在另一個port(如加SSL)跑另一個有DAV功能的apache(耶?沒想到吧!),就可以在layer 3檢查連線來源來限制。

2009年7月17日 星期五

誤闖非軍事管制區

DMZ (這不是表情符號,謝謝)

在電腦網絡中, DMZ (Demilitarized Zone) 為一個放於企業私人和互聯網之間作為緩衝地帶的電腦主機或小型網路。它防止了外來入侵者直接存取放有企業內部資料的伺服器。INTERNET使用者只可以存取 DMZ 中的電腦。一般 DMZ 都會有企業網站,供外界提查詢及使用。但不包括企業內部機密資料。如不幸外來入侵者侵入 DMZ 並令網站癱瘓,重要的企業資料仍不會外泄。
一般DMZ設置時會將ip規劃與後方NAT保護的ip是不同區段(防止layer 3的滲透)。

話說在公司用Outlook Express收信,自從某事件發生後,常常連不到郵件伺服器。直到方才靈光一閃,決定正式查一下。nslookup指出郵件伺服器ip是192.168.0.1。公司給電腦的ip是172.16.xx的Class B位址。為了讓更多設備一起上線(這ip寶貴的原因是,很多對外重要伺服器連線都是ACL鎖住這ip)所以我用一台Dlink 704UP做NAT。巧的是,Dlink 704UP的NAT一定是192.168.0/24的區段,所以再沒有通道或其他奇技淫巧之前,保證一輩子都收不到信。

Network File System Server

NFS在網路夠快(LAN)的時候,可以解決很多空間與同步的問題。不過也有一個問題,當其中一個出問題的,所有的nfs都會很有義氣的一起倒地不起,所以要當NFS,就要夠穩。

基礎概念就是三隻程式互相幫助,rpcbind在櫃台帶路、nfsd負責提供茶點餐、mountd送餐。(等等~這比喻遣詞用字怪怪的,誰做菜啊)。

FreeBSD做NFS很簡單,步驟不多,只要你沒有手殘在編kernel時拿掉NFS選項。

打開/etc/rc.conf加入

rpcbind_enable="YES"
nfs_server_enable="YES"
mountd_flags="-r"



然後編輯/etc/exports說明本機開放分享的目錄為何。格式有三欄,與linux的格式略有不同(!!)。第一欄是目錄,同一個檔案系統只能寫一行。所以比如說/usr是一單獨分割的檔案系統,那麼/usr/src /usr/local就要寫在同一行。第二欄是參數,第三欄是分享對象。不同於linux可以寫在一起成為 對象(參數)。



然後把這三位喚醒,就有nfs服務了




# rpcbind
# nfsd -u -t -n 4
# mountd -r



如果有編輯/etc/exports設定,就叫mountd重新讀取




/etc/rc.d/mountd onereload



如果有要lock服務免得多人同時存取造成錯亂,就在/etc/rc.conf加入




rpc_lockd_enable="YES"
rpc_statd_enable="YES"



接下來用showmount –e $host來檢查,是不是真的成功了。



ubuntu裝法也不難,就加兩個套件




apt-get install nfs-common nfs-kernel-server




然後編輯/etc/exports



一樣借用啟動程序




/etc/init.d/nfs-kernel-server start




ok,這樣就搞定了。

2009年7月14日 星期二

Ubuntu Linux Box – Serial Console

Origin : http://www.debuntu.org/how-to-set-up-a-serial-console-on-debian
首先確認你自己的系統上面有沒有ttyS0

$ dmesg | grep tty
[    4.702353] serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
[    4.702511] serial8250: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
[    4.703397] 00:0e: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
[    4.703687] 00:12: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A

這表示你的Serial Port可以衝到最高16500Bps的速率。當然,這前提是,你的box有顯示卡,或者,你可能已經正在用Serial Console,如果你只是先在別的環境下安裝系統,這指令可能沒啥幫助。

第一步驟,叫getty開始去監聽ttyS0,ubuntu新版作法是編輯/etc/event.d/ttyS0

# ttyS0 - getty
#
# This service maintains a getty on ttyS0 from the point the system is
# started until it is shut down again.

start on runlevel 2
start on runlevel 3
start on runlevel 4
start on runlevel 5

stop on runlevel 0
stop on runlevel 1
stop on runlevel 6

respawn
exec /sbin/getty -L 115200 ttyS0 vt102



或者,你也可以偷抄襲tty0。



較舊的Debian要修改inittab




T0:23:respawn:/sbin/getty -L ttyS0 115200 vt100



然後重起init



 



第二步驟,修改Grub啟動參數



首先讓grub認識ttyS0,加入下面介紹



# Enable console output via the serial port. unit 0 is /dev/ttyS0, unit 1 is /dev/ttyS1...
serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1
terminal --timeout=7 serial console


然後再核心啟動參數後面加上




console=ttyS0,115200n8 console=tty0



好啦,這樣就完成了。如果你發現你的老電腦居然沒有115200Bps HiSpeed,那,參數自己往下降到57600、38400試試看,重點是,Null Modem兩端協定要一樣,不然,亂碼看不懂。

Todo list 0714

開單啦

  • Install and config the follow server With UBUNTU:

apache
samba
nfs
vsftpd

    • Create croned Rsync between amule Incoming and samba

2009年7月10日 星期五

作業環境虛擬化

話說,現在很流行把伺服器虛擬化,然後集中管理。突然想想,我何不把自己辦公的環境也虛擬化(耶?),What a good idea~

這樣下次開機,借用的人就愣住了(x~這啥作業系統?不會用啊?!~~)啊哈~

2009年7月9日 星期四

被dd-wrt擺道

話說昨晚嘗試把dd-wrt上SSH換port,讓port22空出來給後面主機直接使用。NAT也都設定好了,奇怪,怎麼連都還是只有進dd-wrt?是我錯了嗎?是我錯了嗎?是…我錯了

在最後Administration一頁裡面,SSH Remote Port還開在22(啊~有雷!!)等一覺睡醒,神清氣爽,回頭詳細檢查一遍,嗯,dd-wrt你好樣的…昨晚都是玩假的就對了

嗯,為什麼要把ssh 穿透給後面主機去做呢?因為理由很簡單啊,後面主機的ssh功能強、花樣多,又可以搭專員ssh-agent,又可以派警衛ssh-guard,幹麼要把router放在第一線給人破啊?

2009年7月8日 星期三

不怎麼先進的Jail換血

#!/bin/sh

Technorati 的標籤:

export mroot2=/home/mroot2 # the New mroot
export mroot=/home/mroot # the Origin mroot
export opt=opt # The MountPoint to sew skel with mroot


if [ ! -d  $mroot2 ]; then mkdir $mroot2 ; fi
cd /usr/src
make installworld DESTDIR=$mroot2


cd $mroot2
chflags 0 /home/mroot2/var
rm -rfv etc home root tmp var usr/local usr/X11R6 usr/ports


if [ ! -d $opt ]; then  mkdir $mroot2/$opt ;fi


for dirs in etc home root tmp var
do
echo " ln -s /opt/$dirs $dirs"
ln -s $opt/$dirs $dirs
done


ln -s ../$opt/usr-local usr/local
ln -s ../$opt/usr-X11R6 usr/X11R6
ln -s ../$opt/usr-ports usr/ports


cd /
ls /var/run | grep jail | sed -e 's/jail_//g' -e 's/\.id//g' |xargs > /tmp/jlist$$
/etc/rc.d/jail stop `cat /tmp/jlist$$`


for mounted in `cat /etc/fstab | grep nullfs | grep -v ^# | awk '{print $2 }'  | sort -r `
do
echo umount $mounted
umount $mounted
done


echo "    You should make sure the FileSystem Umount properly."
cat /etc/fstab
echo "    Now a Subshell for you th Umount Filesystem manually."
echo "    If this fails too, you might take a reboot, "
echo "     and Move mroot2 to mroot by hand."


/bin/sh
df
echo "    You should have made sure the FileSystem Umounted properly."
echo "     Or press [Ctrl C] to stop in 7 seconds"


sleep 8


mv $mroot $mroot.bak
mv $mroot2 $mroot


mount -a
/etc/rc.d/jail start `cat /tmp/jlist$$`


rm /tmp/jlist.$$


echo “ Take a check. “

2009年7月1日 星期三

ASUS WL-520GU 刷DD-WRT

終於狠下心,敗了台Wl-520GU,單純就是為了刷機(ㄜ...雖然說紐頓只賣1150,不過純粹了刷機實驗,就敗機器,也算是一絕),比起當年敗Apple Airport Extreme的哲學已經好很多了。(阿就是:就算她又貴功能又不多,至少到最後我知道她是美麗的。)

刷機是簡單的,不要害怕,跟著做就對了。首先拔掉插頭,然後按著Reset按鈕,插上插頭,直到電源LED指示為一閃一閃,這就是救援模式,然後就可以用公用程式裡面的Firmware Restoration刷進新的韌體。

520GU具有4MB的Flash,所以很多版本可以選擇,不過比起Mega就是斷手斷腳。有openvpn就沒有jffs,都有就拿掉snmp,最後我刷上NAS+FTP版,因為用ipkg安裝usb module一直失敗,很挫折啊~