/*** By Steve, 2008/03/12, Label Cloud Styles ***/ /*** -----------------------------------------***/

2008年7月23日 星期三

[Note] FC8 編譯 Kernel 以便支持 L7-filter

Note:
FC8 編譯 Kernel 以便支持 L7-filter

L7-filter is a classifier for Linux's Netfilter that identifies packets based on application layer data. It can classify packets as Kazaa, HTTP, Jabber, Citrix, Bittorrent, FTP, Gnucleus, eDonkey2000, etc., regardless of port. 利用支持 L7-filter 的 Kernel,搭配經過 L7-filter Patch 並重新編譯的 iptables,就可以在 iptables 的 rule 中攔截處理如 p2p, IM 等封包。

1. 準備 Build Kernel 的環境 (參考:http://logicornot.blogspot.com/2008/03/note-fc8-kernel.html)

#確認目前已經安裝了 kernel-devel 套件...
yum install kernel-devel
#安裝 "rpmdevtools"...
yum install rpmdevtool
#在 User 的根目錄下建立 rpmbuild 目錄 Trees...(Optional, 或使用 default 目錄:/usr/src)
rpmdev-setuptree
#安裝 "yum-utils"...
yum install yum-utils
#取得目前 kernel 版本的 Source Code,取得的 rpm 會存在目前目錄下...
yumdownloader --source kernel
#安裝 kernel source rpm, 注意替換正確的版本號
rpm -ivh kernel-2.6.25.11.fc8.src.rpm
2. 取得 Application Layer Packet Classifier for Linux
官網:http://l7-filter.sourceforge.net/
下載:http://sourceforge.net/project/platformdownload.php?group_id=80085 (l7-filter kernel version, Protocol definitions)
支援 (可處理) 的 Protocols:http://l7-filter.sourceforge.net/protocols
3. 安裝 L7-filter protocol definitions 以及 kernel 及 iptables 的 patch 檔
#變更目錄到 /usr/src
cd /usr/src
#解壓縮 L7-filter protocol definitions, 注意替換正確的版本號
tar -zxvf ~/l7-protocols-2008-04-23.tar.gz
#安裝 L7-filter protocol definitions
cd l7-protocols-2008-04-23
make install
#變更目錄到 /usr/src
cd /usr/src
#解壓縮 kernel 及 iptables 的 patch, 注意替換正確的版本號
tar -zxvf ~/netfilter-layer7-v2.19.tar.gz
4. Patch and Rebuild Kernel
#變更目錄到 /usr/src
cd /usr/src
#解壓縮 kernel source 到 /usr/src (注意替換正確的版本號)
#
--- 有建立 rpmbuild 時 --- :
tar -jxvf ~/rpmbuild/SOURCES/linux-2.6.25.tar.bz2
#--- 未建立 rpmbuild 時 --- :
tar -jxvf /usr/src/redhat/SOURCES/linux-2.6.25.tar.bz2
#變更目錄到 kernel source 所在目錄
cd linux-2.6.25
#patch kernel (注意替換正確的版本號)
#--- 有建立 rpmbuild 時 --- :
bzip2 -dc ~/rpmbuild/SOURCES/patch-2.6.25.11.bz2 | patch -p1
#--- 未建立 rpmbuild 時 --- :
bzip2 -dc /usr/src/redhat/SOURCES/patch-2.6.25.11.bz2 | patch -p1
#L7-filter patch kernel (注意替換正確的版本號)
patch -p1 < /usr/src/netfilter-layer7-v2.19/kernel-2.6.25-layer7-2.19.patch #Make oldconfig (記得開啟 l7-filter 的設定)
make oldconfig
#Make menuconfig (非必要,除非要改變設定值)
make menuconfig
make
make modules_install
make install
#調整開機預設 kernel
vi /boot/grub/grub.conf
5. 取得 iptables source
官網:http://netfilter.org/
下載:http://netfilter.org/projects/iptables/downloads.html
6. Patch and Rebuild iptables
#變更目錄到 /usr/src
cd /usr/src
#解壓縮 iptables source 到 /usr/src (注意替換正確的版本號)
tar -jxvf ~/iptables-1.4.1.1.tar.bz2
#變更目錄到 iptables source 所在目錄
cd iptables-1.4.1.1
#L7-filter patch (注意替換正確的版本號)
patch -p1 < /usr/src/netfilter-layer7-v2.19/iptables-1.4.1.1-for-kernel-2.6.20forward-layer7-2.19.patch #Config and Make
chmod +x ./extensions/.layer7-test
./configure --with-ksource=/usr/src/linux-2.6.25
make
make install
cp ./iptables /sbin
cp ./ip6tables /sbin

2008年4月26日 星期六

[Note] FC8 + yum + eGroupWare 安裝筆記

Note:
FC8 + yum + eGroupWare 安裝筆記

1. 增加 yum repos 以便透過 yum 安裝最新版本的 eGroupWare。編輯:/etc/yum.repos.d/eGroupWare.repo

[eGroupWare]
name=eGroupWare (Fedora_8)
type=rpm-md
baseurl=http://download.opensuse.org/repositories/server:/eGroupWare/Fedora_8/
gpgcheck=1
gpgkey=http://download.opensuse.org/repositories/server:/eGroupWare/Fedora_8/repodata/repomd.xml.key
enabled=1
2. 設定適當的 /var/lib/egroupware/header.ini (先採用預設值)
3. 連接到 eGroupWare Web Setup 畫面
http://yourhost/egroupware/setup

2008年3月16日 星期日

[Note] FC8 中準備編譯 Kernel 的環境

確認目前已經安裝了 kernel-devel 套件...

yum install kernel-devel
安裝 "rpmdevtools"...
yum install rpmdevtool
在 User 的根目錄下建立 rpmbuild 目錄 Trees...(Optional, 或使用 default 目錄:/usr/src)
rpmdev-setuptree
安裝 "yum-utils"...
yum install yum-utils
取得目前 kernel 版本的 Source Code,取得的 rpm 會存在目前目錄下...
yumdownloader --source kernel
安裝 kernel source rpm (x.x.xx.x) = 版本號
rpm -ivh kernel-(x.x.xx.x).fc8.src.rpm
cd ~/rpmbuild/SPECS
rpmbuild -bp --target $(uname -m) kernel.spec

2008年3月12日 星期三

[Note] 利用 Linux Command Line 建立光碟映像檔 (.iso)

Note:
利用 Linux Command Line 建立光碟映像檔 (.iso)

1. 直接 Copy 光碟產生 .iso 映像檔

# umount /dev/cdrom
# dd if=/dev/cdrom of=/tmp/iso/file.iso bs=1024
2. 將指定目錄下的所有檔案生成一個 .iso 映像檔
# mkisofs -o /tmp/iso/cd.iso /tmp/files/
Reference:
[How to create Image (ISO) files from CD / DVD / HDD]
http://vivi-web.blogspot.com/2008/01/how-to-create-image-iso-files-from-cd.html
[YoLinux Tutorial: Burning a CD or DVD]
http://www.yolinux.com/TUTORIALS/LinuxTutorialCDBurn.html

2008年3月11日 星期二

[Solution] FC8 Kernel 2.6.24.3-12.fc8 下 VMware Workstation 無法正確 Compile

Problem:
FC8 Kernel 從 2.6.23.1-42.fc8 升級到 2.6.24.3-12.fc8 之後,VMware 無法正確 Compile。錯誤訊息如下:

Unknown VMware Workstation 6.0.2 build 59824 detected. Building for
Workstation 6.0.0.
Using 2.6.x kernel build system.
make: Entering directory \`/tmp/vmware-config2/vmmon-only\'
make -C /lib/modules/2.6.24-4-generic/build/include/.. SUBDIRS=$PWD
SRCROOT=\$PWD/. modules
make[1]: Entering directory \`/usr/src/linux-headers-2.6.24-4-generic\'
CC [M] /tmp/vmware-config2/vmmon-only/linux/driver.o
CC [M] /tmp/vmware-config2/vmmon-only/linux/driverLog.o
CC [M] /tmp/vmware-config2/vmmon-only/linux/hostif.o
CC [M] /tmp/vmware-config2/vmmon-only/common/comport.o
CC [M] /tmp/vmware-config2/vmmon-only/common/cpuid.o
In file included from include/asm/bitops.h:2,
from
/tmp/vmware-config2/vmmon-only/./include/vcpuset.h:74,
from
/tmp/vmware-config2/vmmon-only/./include/modulecall.h:23,
from /tmp/vmware-config2/vmmon-only/common/vmx86.h:19,
from /tmp/vmware-config2/vmmon-only/common/hostif.h:18,
from /tmp/vmware-config2/vmmon-only/common/cpuid.c:15:
include/asm/bitops_32.h:9:2: error: #error only can be
included directly
make[2]: *** [/tmp/vmware-config2/vmmon-only/common/cpuid.o] Error 1
make[1]: *** [_module_/tmp/vmware-config2/vmmon-only] Error 2
make[1]: Leaving directory \`/usr/src/linux-headers-2.6.24-4-generic\'
make: *** [vmmon.ko] Error 2
make: Leaving directory \`/tmp/vmware-config2/vmmon-only\'
Unable to build the vmmon module.

For more information on how to troubleshoot module-related problems,
please visit our Web site at
"http://www.vmware.com/download/modules/modules.html" and
"http://www.vmware.com/support/reference/linux/prebuilt_modules_linux.html".

Execution aborted.

Solution:
1. Get the vmware-any-any patch
2. After unpacking, go to the vmware-any-any-update115 directory and unpack vmmon.tar
3. Open vmmon-only/include/vcpuset.h and change the following line #include "asm/bitops.h" to #include "linux/bitops.h"
4. Open vmmon-only/include/iocontrols_compat.h and change VMMON_VERSION_V6 to 167
5. Open vmmon-only/include/iocontrols.h and change VMMON_VERSION to 167
6. Pack a new vmmon.tar and then run runme.pl

Reference:
[Running VMware Workstation on Ubuntu Hardy Herron]
http://www.nowhere.dk/archives/2008/01/17/running_vmware_workstation_on_ubuntu_hardy_herron/index.php

2007年7月25日 星期三

[Note] 利用 Yum 將 FC6 升級為 FC7

Note:
利用 Yum 將 FC6 升級為 FC7

1. download fedora-release-7-3.noarch.rpm
2. rpm -Uvh fedora-release-7-3.noarch.rpm
3. run yum -y update (remove all conflicting RPMs)
4. yum -y update, before and after reboot your system.
5. remove old packages by rpm -qa | grep [Ff][Cc]6

Reference:
【原文】http://hanix.twbbs.org/cgi-bin/han?2007-05-31