How to : ClarkConnect 4.3 + Kernel-2.6.25 + iptables-1.4.0 + L7-filter-2.21
Ton-Or — 3 February, 2009 - 03:45
พอดีเมื่อวานเพื่อนถามมาว่า มีที่นึงคุยกันเรื่องนี้ ว่าทำยากมาก แต่ก็ไม่มีใครบอกว่าทำยังไง ลองไปอ่านๆ ดูก็คงยากจริงๆ ทำกันเป็นอาทิตย์เลย จริงๆเห็นว่า มี ipp2p ด้วยแต่เมื่อมี layer 7 แล้วผมไม่เห็นความจำเป็นว่า ทำไมต้อง ipp2p อีกด้วย
เริ่มเลยแล้วกัน การทำ ClarkConnect 4.3 + Kernel-2.6.25 + iptables-1.4.0 + L7-filter-2.21
apt-get install cc-devel
cd /usr/src
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.25.tar.bz2
wget ftp://ftp.netfilter.org/pub/iptables/iptables-1.4.0.tar.bz2
wget http://jaist.dl.sourceforge.net/sourceforge/l7-filter/netfilter-layer7-v2.21.tar.gz
wget http://nchc.dl.sourceforge.net/sourceforge/l7-filter/l7-protocols-2008-12-18.tar.gz
tar xvjf iptables-1.4.0.tar.bz2tar zxvf netfilter-layer7-v2.21.tar.gztar zxvf l7-protocols-2008-12-18.tar.gz
tar xvjf linux-2.6.25.tar.bz2cd /usr/src/linux-2.6.25
patch -p1 < /usr/src/netfilter-layer7-v2.21/kernel-2.6.25-2.6.28-layer7-2.21.patch
cd /usr/src/iptables-1.4.0
patch -p1 < /usr/src/netfilter-layer7-v2.21/iptables-1.4-for-kernel-2.6.20forward-layer7-2.21.patch
chmod +x extensions/.layer7-test
cd /usr/src/linux-2.6.25
cp /boot/config-2.6.18-93.cc4 ./.config
make menuconfig
ลือกไปที่
Networking --->Networking options --->Network packet filtering framework (Netfilter) --->
Core Netfilter Configuration --->"layer7" match support (NEW)
[*]Layer 7 debugging output
เห็นอันไหนน่าสนใจก็กดๆ ตามใจชอบได้ครับ แต่ดูที่เกียวๆ กับเรื่องที่เรามีใช้อยู่ด้วยนะครับพวก 64bit อะไรไม่ต้องไปยุ่ง
กด Esc สองครั้งติดกันจนถึงหน้าที่ ให้ save config ก็ Save แล้วออกมาสั่งต่อด้านล่างเลยครับ
make all && make modules_install && make install
เขาว่าค่อนข้างนาน ส่วนเครื่องที่ผมใช้ทำนั้นมันนานมาก
nano /boot/grub/menu.lst
# grub.conf generated by anaconda## Note that you do not have to rerun grub after making changes to this file# NOTICE: You have a /boot partition. This means that# all kernel and initrd paths are relative to /boot/, eg.# root (hd0,0)# kernel /vmlinuz-version ro root=/dev/hda3# initrd /initrd-version.img#boot=/dev/hdadefault=1 <=== แก้เป็น 0 เพื่อให้ boot เป็น kernel 2.6.25 ของเรา
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Linux (2.6.25)
root (hd0,0)
kernel /vmlinuz-2.6.25 ro root=LABEL=/ video=vesafb vga=0x313
initrd /initrd-2.6.25.imgtitle Linux (2.6.18-93.cc4)
root (hd0,0)
kernel /vmlinuz-2.6.18-93.cc4 ro root=LABEL=/ video=vesafb vga=0x313
initrd /initrd-2.6.18-93.cc4.img
title Linux Safe Mode (2.6.18-93.cc4)
root (hd0,0)
kernel /vmlinuz-2.6.18-93.cc4 ro root=LABEL=/
initrd /initrd-2.6.18-93.cc4.img
สั่ง restart Server
shutdown -r now
หลัง reboot ดูด้วยว่า ระบบเลือก kernel ที่เราใส่ไปใหม่เป็นตัวหลักหรือไม่ และดูว่ามี error message ตอน boot หรือเปล่า เท่าที่ทำอยู่ไม่เจออะไรแปลก มีแค่เจอ card VGA ทำให้เลือก mode การแสดงผลที่ละเอียดขึ้นได้ เดี๋ยวจะหาวิธีแก้ต่อไป(สักวัน)
restart เสร็จแล้วทดสอบโดยสั่ง
uname -a
Linux xxxxxxxx 2.6.25 #2 SMP Mon Feb 2 18:28:20 ICT 2009 i686 athlon i386 GNU/Linux
ตัวเลขเปลี่ยนเป็น 2.6.25 ของเราแล้วเสร็จเรียบร้อย ในส่วนของ kernel
มาทำในส่วนของ iptables 1.4.0 ให้รู้จัก layer7 ต่อ
cd /usr/src/iptables-1.4.0
make KERNEL_DIR=/usr/src/linux-2.6.25
make install
cd /usr/local/sbin/
cp ip* /sbin/
Check version iptables
iptables -Viptables v1.4.0
mv /usr/src/l7-protocols-2008-12-18 /etc/l7-protocols
ทดสอบคำสั่ง ว่าใช้งาน layer7 ได้ไหม
iptables -m layer7 -help
เสร็จแล้วครับการทำ ClarkConnect 4.3 + Kernel-2.6.25 + iptables-1.4.0 + L7-filter-2.21
ข้ามๆตกๆ หล่นๆ อ่านจากต้นฉบับนะครับ วิธีทำในส่วนของ iptables อ้างอิงจากของ debian ต้องประยุกใช้กับ CC นิดนึง
สรุปหลักๆของการทำ ClarkConnect 4.3 + Kernel-2.6.25 + iptables-1.4.0 + L7-filter-2.21
1. ทำ kernel ให้รู้จัก layer7 ก่อน จริงๆ จะหาทาง patch เข้ากับ kernel เดิมของ CC 4.3 เองเลยก็น่าจะได้นะครับ ท่านใดว่างๆ ลอง
apt-get install kernel-sourcecode#2.6.18-93.cc4
apt-get install kernel-devel#2.6.18-93.cc4
เอา src เดิมมาเล่นดูครับ
2. ทำ iptables ให้รู้จัก layer7 ด้วย
แค่นี้เองครับไม่ยากเกินไปใช่ไหมครับ :D ลากันยาวๆ อีกยกครับ
อ้างอิงจาก
http://freetext.iblog.co.th/
http://itupstart.com/suchart/blog/?p=48
http://l7-filter.sourceforge.net/HOWTO
- 17132 reads

ทำไมทำแล้ว firewall กับ frox ใช้งานไม่ได้ ครับ
Error ตามนี้ครับ
[root@firewall src]# patch -p1 < /usr/src/netfilter-layer7-v2.21/kernel-2.6.25-2.6.28-layer7-2.21.patch
can't find file to patch at input line 3
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|--- linux-2.6.28-stock/net/netfilter/Kconfig 2009-01-07 16:05:35.000000000 -0600
|+++ linux-2.6.28/net/netfilter/Kconfig 2009-01-07 16:07:31.000000000 -0600
--------------------------
File to patch:
ไม่เข้าใจครับ
ต้องสั่ง patch ใน floder ที่ kernel source อยู่ครับไม่ใช่สั่ง ใน /usr/src ต้องเข้าไปที่ floder kernel อยู่ด้วยลองอ่านทุกๆ บรรทัดนะครับ
ผมติดตรงนี้อ่ะครับ
[root@gateway ~]# cd /usr/src/iptables-1.4.0
[root@gateway iptables-1.4.0]# patch -p1 < /usr/src/netfilter-layer7-v2.21/iptables-1.4-for-kernel-2.6.20forward-layer7-2.21.patch
-bash: patch: command not found
ทำไม่ผ่านอ่ะ ติดตรง cd /usr/srclinux-2.6.25 มันบอกไม่เจอ folder srclinux-2.6.25
[root@gateway src]# cd /usr/srclinux-2.6.25
-bash: cd: /usr/srclinux-2.6.25: No such file or directory
post แก้ไขให้แล้วนะครับ
ขอบคุณครับ ติดตรง
ไม่มี เมนู
layer7" match support
ให้เลือกครับ
Networking –> Networking options –> Network packet filtering framework (Netfilter)
–> Core netfilter configuration
เลือกเจ้าตัวนี้ก่อนแล้วจะเห็น layer7 ---> <M> Netfilter connection tracking support
<M> “layer7″ match support
ดูจาก Web ที่อ้างอิงมาครับเขาจะบอกละเอียดกว่า เดี๋ยวจะ ทำให้ละเอียดอีกทีครับ กำลัง ทำ imq เ้พิ่มอยู่ เดี๋ยวแก้ทีเดียว ครับ
ปล. ถ้าทำตามใหม่ตั้งแต่ต้น ตอน make menuconfig มันจะมีสีแดงๆ ให้น่ะครับ ในส่วนที่เพิ่มขึ้นมา หลังสั่ง patch แล้ว
กำลังอยู่หน้านี้พอดีแก้เพิ่มให้แล้วนะครับ
จริงๆในส่วน Core Netfilter Configuration ---> ผมเลือกไปหมดเลยหล่ะ เผื่อไว้ทำอะไรเล่น
มีวิธีไหนที่ไม่ต้อง apt-get update , apt-get install cc-devel หรือเปล่าครับ
ไม่ทราบว่าต้องลง Packet .rpm ตัวไหนบ้างครับ
list ผมเก็บไว้ไหนหาไม่เจอแล้วน่ะสิครับ - -'
เอาหาง่ายๆ ก็สั่ง apt-get install cc-devel มันจะขึ้นมาให้น่ะครับว่าต้องลงอะไรบ้าง ราวๆ 50 ตัวกว่าๆ ถ้าจำไม่ผิด
อ่า ไปเจอใน board clark
Now for the show stopper in the past... ran apt-get install cc-devel:
The following NEW packages will be installed:
ElectricFence atk autoconf automake automake14 automake15 automake16
automake17 binutils bison byacc bzip2-devel cc-devel cdecl cpp cproto ctags
curl-devel cvs cyrus-sasl-devel dialog e2fsprogs-devel expat-devel flex gcc
gcc-c++ gcc-g77 gcc-java gcc-objc gdb gdbm-devel gettext glibc-devel
glibc-headers glibc-kernheaders gmp-devel gpm gpm-devel gtk2 guile hesiod
hesiod-devel krb5-devel krbafs krbafs-devel kudzu-devel libart_lgpl
libcap-devel libf2c libgcj libgcj-devel libidn-devel libobjc libstdc++-devel
libtermcap-devel libtiff libtool libtool-libs libusb libusb-devel
libuser-devel libxml2 libxml2-devel lockdev lockdev-devel m4 nasm
ncurses-devel newt-devel openssl-devel pam-devel pango patch patchutils
pciutils-devel pkgconfig pmake readline-devel rpm-build rpm-devel slang-devel
strace swig tcsh umb-scheme zlib-devel
0 upgraded, 86 newly installed, 0 removed and 7 not upgraded.
Need to get 67.0MB of archives.
After unpacking 205MB of additional disk space will be used.
Do you want to continue? [Y/n] y
86 ตัวครับ
http://www.clarkconnect.com/forums/showflat.php?Cat=0&Board=developer&Number=76059&page=8&fpart=3
ตอนนี้ compile ผ่านแล้วครับแต่อยากทำเป็น rpm บ้างนี่ขั้นตอนการทำยังไงเหรอครับ
cd เข้า kernel source เช่น
cd /usr/src/linux-2.6.25
make rpm เหมือนคอมอีกรอบ เพราะมันจะ make clean ก่อน
rpm ที่ได้ จะมี 2 file จะแสดงเกือบๆ บรรทัดสุดท้าย ว่าอยู่ไหนพอดีผมไม่ได้เก็บ log ไว้
สิ่งที่ได้คือ rpm ธรรมดา และ กับ source rpm ตัวที่ใช้งานจะเป็น rpm ธรรมดา ครับ
พอติดตั้ง kernel.rpm แล้วไม่มีตัว Boot ติดมาด้วยอ่ะครับ
ไม่ทราบว่าตอนผม make rpm ทำผิดขึ้นตอนหรือเปล่าครับ
cd /usr/src/linux
make rpm
ผมทำแค่นี้เองครับไม่ทราบว่าครบหรือเปล่า
ไม่ผิดครับ
ปกติ การติดตั้ง kernel แบบ rpm ต้องสร้าง .img ตอน boot และ grub menu เองอยู่แล้วครับ โดยใช้คำสั่ง mkinitrd แล้ว ไป edit grub menu
ลองหาดูก่อนไหมครับ เดี๋ยว post บอก พร้อม kernel ตัวใหม่ทีเดียวครับ กำลัง upload อยู่