Archive for the '玄箱' Category

15
六月
07

Sylver準備的Debian:安裝後記

avr_evtd

Sylver準備的Debian用了avr_evtd代替了原本的kuroevtd去管理玄箱的按鈕,但附設的是舊版,所以安裝Debian後最好安裝新版。

首先到官方網站下載最新版到/目錄:

# cd /
# wget http://downloads.sourceforge.net/ppc-evtd/avr_evtd_1.7.2.release.tar.gz

解壓縮後檔案會放到/usr/src目錄:

# tar zxvf avr_evtd_1.7.2.release.tar.gz

# cd /usr/src/avr_evtd

由於需要compile程式,同學要先安裝makegccg++等套件:

# aptitude install make gcc g++

安裝avr_evtd

# make install avr_evtd

修改設定:

# nano /etc/default/avr_evtd

如果需要EM Mode,把以下一行:

EMMODE=NO

改為:

EMMODE=YES

同學如果需要進入EM Mode,只需按RESET鍵20餘秒,玄箱就會自動重新啟動進入EM Mode。

另預設的設定會在每日1:15到6:20關機,如果不需要,把以下一行:

TIMER=ON

改為:

TIMER=OFF

修改完成後就重新啟動avr_evtd

# /etc/init.d/avr_evtd restart

其實新avr_evtd還有附帶效果的:從此電源燈不論玄箱是否處於關機狀態都會漸亮漸滅的… (更新:似乎只要關掉TIMER就沒有這問題效果)

XFS檔案系統

XFS是由SGI開發的檔案系統,網絡上有不少報告顯示它的效能比EXT3好,同學不妨把用作儲存檔案的分割區轉為XFS檔案系統。

注意:核心需要是Debian-sarge-2.6.18-mh4_kurobox_hg-20061010或之後的版本。

注意:分割區上的資料將被刪除。

首先安裝XFS的維護軟件:

# aptitude install xfsprogs xfsdump

然後卸載分割區,假設分割區為/dev/hda3

# umount /dev/hda3

重新格式化硬碟:

# mkfs.xfs -f /dev/hda3

重新掛載硬碟,假設要掛載到/mnt目錄:

# mount -t xfs /dev/hda3 /mnt

如果沒有問題就修改/etc/fstab

# nano /etc/fstab

找到關於/dev/hda3的一行,修改ext3xfs

/dev/hda3 /mnt xfs defaults 1 2

Technorati Tags: , , , ,

13
六月
07

MoBlock:Linux的PeerGuardian

PeerGuardian的作用是從網上下載列有anti-P2P、駭客、政府機構等IP的列表,並封鎖它們的連線。而MoBlock則是PeerGuardian的官方Linux版本。

由於MoBlock需要iptables,玄箱的Debian核心必須使用Sylver老師的新版核心。使用Genbako老師系統的同學是用不了的。

注意:以下的安裝步驟請參考新的文章

注意:以下方法只是我試出來的,並「好像」在我的玄箱成功運作而已。

首先安裝wgetunziplibnfnetlink-devlibnetfilter-queue-dev套件:

# aptitude install wget unzip libnfnetlink-dev libnetfilter-queue-dev

moblock-deb下載準備給i386機使用的套件檔案:

# wget http://moblock-deb.sourceforge.net/debian/dists/unstable/main/binary-i386/net/moblock-nfq_0.8-15_i386.deb

由於玄箱的CPU是PowerPC,同學要用–force-architecture參數安裝:

# dpkg --force-architecture -i moblock-nfq_0.8-15_i386.deb

安裝過程中,它會自動下載最新的封鎖列表,然後啟動MoBlock

Reloading moblock: moblock.
Starting moblock: moblock.

但由於CPU不同,MoBlock其實並沒有運作,所以同學要自行compile一個MoBlock。

如果同學不想compile,我也上載了我compile完那個moblock,同學可以直接下載到/usr/bin目錄,並執行:

# chmod 775 moblock

MoBlock下載source code:

# cd /usr/src
# wget http://download.berlios.de/moblock/MoBlock-0.8-i586.tar.bz2

一般習慣是把source code放到/usr/src目錄的。

之後便解開:

# tar jxvf MoBlock-0.8-i586.tar.bz2
# cd MoBlock-0.8

Compile前需先修改Makefile

nano Makefile

找到以下句:

CFLAGS=-Wall -O2 -march=i586 -mtune=i686 -fomit-frame-pointer -ffast-math \

修改成:

CFLAGS=-Wall -O2 -fomit-frame-pointer -ffast-math \

跟着compile和安裝:

# make
# make install

最後便可以重新啟動MoBlock:

/etc/init.d/moblock-nfq start

這樣玄箱每日都會自動更新封鎖列表!

Technorati Tags: , , , , ,

08
六月
07

玄箱:第一次啟動Debian

1 登入Debian

系統預設的使用者用稱和密碼都是tmp-kun,登入便可以用su –指令轉到擁有系統最高權力的root使用者,密碼為root

登出可用exit指令。

登入後記着用passwd來修改密碼啊!

2 更新Debian

首先修改/etc/apt/sources.list檔案為與同學相近的伺服器地址。

現在同學終於可以擺脫VI了!相較VI,我比較喜歡用Nano,用法如下:

# nano /etc/apt/sources.list

我的/etc/apt/sources.list

deb http://security.debian.org stable/updates main contrib
deb ftp://ftp.hk.debian.org/debian stable main contrib
deb-src ftp://ftp.hk.debian.org/debian stable main contrib

之後就可以更新套件列表:

# apt-get update

現在終於可以正式更新系統套件:

# apt-get upgrade

最後便將整個Debian由3.1 Sarge更新到4.0 Etch:

# apt-get dist-upgrade

注意唷!升級過程會問同學要不要更改haltreboot檔案。除非同學清楚知道正在做什麼,否則還是不要更改了。

  • 同學應該有留意到剛才的指令都是apt-get開始的,這個其實是Debian提供的套件(軟件)管理系統,可以用來輕鬆地安裝套件。想知道有什麼套件可以安裝的同學,請到Debian的網站查查。
  • 因為apt-get存在一些套件依存問題,所以官方是推薦用aptitude來取代apt-get的,但我在更新Debian的過程都出問題,所以我在這步驟都是用apt-get
  • 如果同學不明白某些指令的用途,可以先用man指令看看說明書(manual),例如:
    man aptitude

3 加入一般使用者

由於預設的tmp-kun使用者每位同學都知道,所以最好新增一個帳號,並把tmp-kun刪除。以下假設新的帳號叫abc

# adduser abc
Adding user `abc' ...
Adding new group `abc' (1000) ...
Adding new user `abc' (1000) with group `abc' ...
Creating home directory `/home/abc' ...
Copying files from `/etc/skel' ...
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for abc
Enter the new value, or press ENTER for the default
Full Name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [y/N] y

因為tmp-kun仍在登入狀態,同學暫時不可以刪除tmp-kun帳號。待下次用abc登入並轉到root後才可:

# deluser tmp-kun
Removing user `tmp-kun' ...
Done.

4 安裝常用套件

4.1 設定時區及時間

首先用tzconfig設定時區,然後安裝ntpdate套件跟時間伺服器同步:

# tzconfig

# aptitude install ntpdate

# ntpdate stdtime.gov.hk

最後便可把系統時間寫入玄箱的硬體時鐘:

# hwclock -w

同學如果想每日都校對時間,可以把以上指令加到crontab

# crontab -e

加入這行:

0 1 * * * ntpdate stdtime.gov.hk;hwclock -w

這樣每日零晨一時,玄箱都會自動校對時間啦!

4.2 安裝語言支援

使用以下指令安裝locales套件:

# aptitude install locales

安裝過程中會問同學需要什麼語言支援,同學只要用上下鍵和空白鍵選擇便可。

最後便在/etc/profile加上支援:

export LANG=zh_HK.UTF-8
export LC_ALL=en_US.UTF-8

4.3 安裝SSH伺服器

之前也提過Telnet是不安全的。因為透過它傳送的資料都沒有加密,駭客很容易便可偷看同學傳送的指令和密碼,所以這做就了SSH的出現。而SSH所傳送的所有資料都會經過加密,確保沒有人能夠偷看。

# aptitude install ssh

安裝完成後便可更改SSH的設定:

# nano /etc/ssh/sshd_config

找到以下一行,請把SSH使用的Port設定到1024以上,這樣一來駭客要首先猜中同學的Port才可以白撞。

Port 22

之後也不要允許root由SSH登入,找到以下一行後把yes改為no

PermitRootLogin yes

最後就重新啟動SSH

/etc/init.d/ssh restart

現在就要關上「萬惡的」Telnet,首先打開/etc/inetd.conf並找到以下一行後,在第一個字前加上#號。

telnet stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.telnetd

並重新啟動inetd

# /etc/init.d/openbsd-inetd restart

跟着看看玄箱關閉了Telnet沒有?

這時就要先安裝 Nmap,一個強大的網絡檢查工具

# aptitude install nmap
# nmap localhost

看不見telnet就成功了!

5 完成 !

現在玄箱的Debian安裝基本上是完成了,同學們可以發揮自己的創意為自己的玄箱加入不同的功能唷!

Technorati Tags: , ,

05
六月
07

玄箱:安裝Debian

1 選擇準備好的Debian

玄箱用的Debian系統主要由Genbako老師發佈的,而Sylver老師則建基於Genbako老師發佈一個較多功能的系統。雖然Sylver老師發佈的系統有較多的功能,但他使用較新的程式處理玄箱的按鈕就令我的RESET按鈕失靈…當然,最大原因是我不懂得怎樣設定。

在寫這篇文章的時候以下是兩位老師最新的System Image和Kernel Update

Genbako老師:

debian-sarge-2.6.17.3-kuroHG-20060702.tgzkernelimage-2.6.20-kuroHG.tgzmodules-2.6.20-kuroHG.tgz

Sylver老師:Debian-sarge-2.6.17.1-mh1_kuro-box-20060623.tgz和Debian-sarge-2.6.20.2_kurobox_universal-20070313_testing.tar

2 安裝Debian

首先用FTP的二進位模式上載系統檔案到玄箱。

  1. 在命令提示字元轉到儲存系統檔案的目錄。
  2. 輸入ftp 192.168.1.100
  3. 登入系統。
  4. 轉到/mnt目錄。
    cd /mnt
  5. 轉到二進位模式。
    bin
  6. 上載檔案。
    put debian-sarge-2.6.17.3-kuroHG-20060702.tgz
  7. 登出系統
    bye

Connected to 192.168.1.100.
220 KURO-BOX-EM FTP server (Version 6.4/OpenBSD/Linux-ftpd-0.17) ready.
User (192.168.1.100:(none)): root
331 Password required for root.
Password:
230- Linux 2.4.17 ppc unknown
230 User root logged in.
ftp> cd /mnt
250 CWD command successful.
ftp> bin
200 Type set to I.
ftp> put debian-sarge-2.6.17.3-kuroHG-20060702.tgz
200 PORT command successful.
150 Opening BINARY mode data connection for 'debian-sarge-2.6.17.3-kuroHG-200607 02.tgz'.
226 Transfer complete. ftp: 57366150 bytes sent in 36.42Seconds 1575.04Kbytes/sec.
ftp> bye
221 Goodbye.

跟着回到telnet視窗,轉到/mnt目錄並解開系統壓縮檔。

cd /mnt
tar zxvf debian-sarge-2.6.17.3-kuroHG-200607 02.tgz

3 設定系統

3.1 編輯/etc/hosts.allow檔

首先輸入以下命令:

vi /mnt/etc/hosts.allow

第一次使用VI的同學通常都完全揮不動VI的。如果要用VI編輯文件,就要進入不同的模式或使用不同的指令:

  • a修改模式
  • Esc用作離開不同的模式
  • x刪除字元
  • :wq儲存並離開的指令
  • :q!為僅離開並不儲存的指令

同學攪不懂VI也不用擔心,正式進到Debian系統後便可以用其他較易用的編輯器

如果你的IP地址是192.168.1.101便要加入或修改為

ALL : 192.168.0.0/255.255.0.0
ALL : 127.0.0.1
ALL : 192.168.1.101

3.2 設定網路卡

首先輸入以下命令:

vi /mnt/etc/network/interfaces

如果同學的網絡使用DHCP伺服器便要修改iface eth0 inet staticiface eth0 inet dhcp並刪除address 192.168.0.100network 192.168.0.0netmask 255.255.255.0
broadcast 192.168.0.255gateway 192.168.0.1,即

iface eth0 inet dhcp
iface lo inet loopback
auto eth0 lo

若同學使用固定IP地址,就要修改/mnt/etc/resolv.conf裏的DNS伺服器資料

3.3 更改Hostname

修改/etc/hostname

vi /mnt/etc/hostname

修改/etc/hosts

vi /mnt/etc/hosts

3.4 設定啟動時掛載的分割區〈僅用於分割方案b)的同學〉

修改/etc/fstab

vi /mnt/etc/fstab

假如按照之前的分割規劃,/etc/fstab便要修改為:

# /etc/fstab: static file system information.
#
# <file system> <mount point> <type> <options> <dump> <pass>
/dev/hda1 / ext3 defaults,noatime,errors=remount-ro
proc /proc proc defaults 0 0
none /dev/pts devpts gid=5,mode=20 0 0
/dev/hda2 swap swap defaults 0 0
/dev/hda4 /media ext3 defaults 1 2
/dev/hda5 /usr ext3 defaults 1 2
/dev/hda6 /var ext3 defaults 1 2
/dev/hda7 /home ext3 defaults 1 2
/dev/hda8 /tmp ext3 defaults,noatime 0 2

4 更新系統核心

4.1 Genbako老師的系統

  1. 用FTP的二進位模式上載kernelimage-2.6.20-kuroHG.tgz到玄箱的/mnt/boot目錄。
  2. 用FTP的二進位模式上載modules-2.6.20-kuroHG.tgz到玄箱的/mnt/lib/modules目錄。
  3. 使用tar zxvf命令解壓縮兩個檔案。

4.2 Sylver老師的系統

  1. 用FTP的二進位模式上載Debian-sarge-2.6.20.2_kurobox_universal-20070313_testing.tar到玄箱的/mnt目錄。
  2. 使用tar zxvf命令解壓縮檔案。

5 第一次啟動Debian

首先輸入write_ok指令離開EM Mode,然後使用reboot指令重新啟動。

# write_ok
argv: write_ok
# reboot

Technorati Tags: , ,

05
六月
07

玄箱:準備安裝Debian

1 玄箱的IP

當玄箱裝上硬碟並接上網路後會自動連上DHCP伺服器取得自己的IP。如果沒有DHCP伺服器,玄箱會自動設置為192.168.11.150

文件中的玄箱IP將假定為192.168.1.100

2 進入EM Mode

首先使用Telnet連上玄箱(即192.168.1.100)

建議使用PuTTY / PieTTY等連接軟件,因為之後將使用安全的SSH連線,而非不安全的Telnet連線。若找不到以上的軟件,可在命令提示字元鍵入以下命令連接:telnet 192.168.1.100

如果畫面顯示如下

Kuroutoshikou KURO-BOX/HG (IESHIGE)
Linux/ppc 2.4.17_mvl21

KURO-BOX-EM login:

並且主機名稱為:KURO-BOX-EM玄箱已經進入EM Mode(EMergency Mode)。若果未能進入EM Mode,可長按玄箱後的紅色重設按鈕直至關機,重新啟動後即進入EM Mode。

3 登入系統

登入帳號為root密碼為kuroadmin

登入後的畫面:

BusyBox v0.60.5 (2003.07.30-12:03+0000) Built-in shell (ash)
Enter 'help' for a list of built-in commands.

#

4 分割硬碟

一般供玄箱使用的Debian系統都假定使用者將硬碟劃為三個分割區,第一個分割區儲存Debian系統檔案,第二個分劃區為Linux系統的交換檔分割區(Swap),第三個分割區為最大的一般檔案儲存區。當然,大家也可以把硬碟割成更多分區,所以以下文件將分為將硬碟割成a)三個分區及b)多個分區兩個部分。

首先鍵入

mfdisk -c /dev/hda

進入硬碟分割程式

如果硬碟上是有資料的,可以先鍵入「p」列出硬碟上原有的分割區

List of Partition

然後再用「d」指令刪除原有的分割區。

Command (m for help): d
Partition number (1-8): 1

刪除了原有的分割區後,就可以用「n」指令建立新的分割區

Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-30401, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-30401, default 30401): +400M
首先鍵入「p」,再選擇編號。跟着選擇cylinder,只要拍Enter就可以了。最後輸入大小,用「+多少MB」的格式。

注意唷!

a)的同學:分割區的1、2、3號必須依次為Debian系統檔案,交換檔分割區(Swap),一般檔案儲存區。

b)的同學:如果需要多於4個分割區,分割的時候要分為3個primary和1個extended,然後在extended裏再分。另基於玄箱的設計,「/」和「/boot」目錄必須要在分割區1號。

分割完成後輸入「t」指令將其中一個分割區設定為Swap分割區。(Hex Code: 82)

Command (m for help): t
Partition number (1-8): 2
Hex code (type L to list codes): 82

最後輸入「w」指令便可將設定寫入硬碟並離開分割程式。

5 格式化硬碟

首先用以下的指令將分割區格式化為交換檔分割區(Swap),以下假設分割區為/dev/hda2。

mkswap /dev/hda2

然後用以下指令將其他分割區格式化,以下假設分割區為/dev/hda1。

mke2fs -j /dev/hda1

6 掛載硬碟

鍵入以下指令掛載/dev/hda1分割區。

mount -t ext3 /dev/hda1 /mnt

a)的同學,恭喜你。你已經準備好安裝Debian了!

b)的同學,繼續奮鬥吧!

首先假設分割區的配置為:「/dev/hda5」是「/usr」目錄;「/dev/hda6」是「/var」目錄;「/dev/hda7」是「/home」目錄;「/dev/hda8」是「/tmp」目錄。

那在掛載前我們首先要建立那些目錄。

# mkdir /mnt/usr
# mkdir /mnt/var
# mkdir /mnt/home
# mkdir /mnt/tmp

然後才逐個掛載。

# mount -t ext3 /dev/hda5 /mnt/usr
# mount -t ext3 /dev/hda6 /mnt/var
# mount -t ext3 /dev/hda7 /mnt/home
# mount -t ext3 /dev/hda8 /mnt/tmp

Technorati Tags: , ,