Suchart.Blog –> ITupstart.com

มิถุนายน 19, 2008

UUID on Ubuntu Linux 8.04

Filed under: Linux,Ubuntu — suchart @ 1:16 am

เดิมนั้นโน้ตบุ๊คผมมีทั้ง Windows XP และ Ubuntu  ผมใช้วิธีการ dual boot โดยใช้การติดตั้ง grub ใน boot sector ของ root partition (/dev/sda6) แล้วใช้คำสั่ง

# dd if=/dev/sda6 of=ubuntu.bin bs=512 count=1

แล้ว copy ubuntu.bin ไปใว้ใน C:\

แก้ boot.ini ประมาณนี้

[boot loader]
timeout=9
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS=”Windows XP Media Center Edition” /noexecute=optin /fastdetect
C:\ubuntu.bin=”Ubuntu Linux 8.04″

ต่อมาผมเปลี่ยน Harddisk ซึ่งเป็นแบบ SATA จาก 120 G เป็น 250 G ผมใช้วิธีการ clonning บน Windows โดยใช้ Acronis TrueImage Home สามารถโคลนนิ่งได้ไม่มีปัญหาอะไร แต่ไม่สามารถบู๊ตเข้า Ubuntu Linux ได้ เพราะ boot sector เปลี่ยนไปแล้ว

ผมเลยใช้ sysresccd ที่ได้ทำให้บู๊ตผ่าน usb-stick ไว้แล้ว boot เข้าไปใน Ubuntu Linux (สามารถใช้แผ่น Ubuntu cd ก็ได้ แต่ผมชอบ sysresccd ใน usb มันโหลดเร็วดี) แล้วติดตั้ง grub ใหม่ โดยใช้คำสั่ง

# grub-install /dev/sda6

แล้ว

# dd if=/dev/sda6 of=ubuntu.bin bs=512 count=1

แล้ว copy ubuntu.bin ไปใว้ใน C:\ ใหม่อีกครั้ง

ก็จะสามารถบู๊ตได้ตามปกติ

ใน Ubuntu ไฟล์ /etc/fstab จะใช้ UUID แทน device file ของ root partition ตัวอย่างเครื่องของผมเป็นดังนี้

# /etc/fstab: static file system information.
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    defaults        0       0

# /dev/sda6
UUID=1212e5b0-c9e5-4072-a077-01a35080419b /               ext3    relatime,errors=remount-ro 0       1
/dev/scd0       /media/cdrom0   udf,iso9660 user,noauto,exec,utf8 0       0

ข้อดีของ UUID ก็คือ มันจะคงที่ ไม่เปลี่ยนเหมือน harddisk device file เช่น harddisk ของผมเดิมเป็น /dev/sda พอถอดออกมาเสียบผ่าน usb ก็จะเป็น /dev/sdb หรืออื่นๆ ไป ดังนั้นถ้าใช้ UUID แล้ว harddisk ตัวเก่าของผมมันก็จะสามารถบู๊ต Linux (ไม่ใช่ Windows ) ผ่าน usb จากเครื่องที่สามารถบู๊ตจาก usb ได้  แหม…แหล่มเลย!

ผมเลยลองเลือกจาก bios ให้ boot จาก usb harddisk ซึ่งเป็นตัวเก่าของผม ปรากฎว่ามันยังคงไปบู๊ต Ubuntu Linux จาก harddisk ตัวใหม่ในเครื่องอยู่ ทั้งนี้ก็เพราะว่ามัน clonning มา ดังนั้น UUID มันเลยเหมือนกัน ผมเลยต้องแก้ UUID ในตัวใหม่ ใช้คำสั่ง

# uuidgen | xargs tune2fs /dev/sda6 -U

แล้วตรวจสอบค่า UUID ใหม่ ใช้คำสั่ง

# vol_id /dev/sda6
ID_FS_USAGE=filesystem
ID_FS_TYPE=ext3
ID_FS_VERSION=1.0
ID_FS_UUID=03b62130-795e-44f3-977a-28412adef5e6
ID_FS_UUID_ENC=03b62130-795e-44f3-977a-28412adef5e6
ID_FS_LABEL=
ID_FS_LABEL_ENC=
ID_FS_LABEL_SAFE=

แล้วก็ตามไป แก้ไข /etc/fstab และ /boot/grub/menu.lst เป็น UUID ใหม่ที่ได้ เป็นอันเรียบร้อย

พฤษภาคม 27, 2008

MMS streams in Firefox on Ubuntu 8.04

Filed under: Debian,Linux,Ubuntu — suchart @ 12:16 pm

ช่วงนี้ผมลองพยายามใช้งานเดสค์ทอปบน Ubuntu Linux ลองเข้าไปดู ASTV News 1 แต่ดูไม่ได้ ก็เลยลองค้นหาวิธีจากเน็ต ลองทำตาม ก็ได้ประมาณนี้

1. apt-get update

2. apt-get install mplayer mozilla-mplayer

3. เปิด firefox พิมพ์ about:config ในแอดเดรสบาร์ คลิก I’ll be careful …

4. คลิกขวา New –> String ป้อน network.protocol-handler.app.mms แล้วคลิก OK ที่ป๊อปอัพบ็อกซ์ใส่ /usr/bin/mplayer

5. คลิกขวา New –> Boolean ป้อน network.protocol-handler.external.mms แล้วคลิก OK

6. ที่ป็อปอัพ เลือก True

.

Links

Enabling MMS streams in Firefox

กุมภาพันธ์ 2, 2008

Kernel-2.6.24 + iptables-1.4.0 + L7-filter-2.17 + ipp2p-0.8.2 on Debian 4.0

Filed under: Debian,Linux,Ubuntu — suchart @ 2:20 pm

20080202-1400

Kernel-2.6.24 + iptables-1.4.0 + L7-filter-2.17 + ipp2p-0.8.2 on Debian 4.0

คราวนี้ ผมไม่ใช้ ipp2p-0.8.1_rc1 จาก patch-o-matic แล้ว จะใช้ ipp2p-0.8.2 จาก ipp2p.org แทน บวกกับ patch ที่แอบขโมยมาจาก gentoo 🙂

1.

apt-get update
apt-get install build-essential
apt-get install kernel-package
apt-get install libncurses5-dev

2.

cd /usr/src/
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.24.tar.bz2
tar xvjf linux-2.6.24.tar.bz2
ln -s linux-2.6.24 linux

wget http://nchc.dl.sourceforge.net/sourceforge/l7-filter/netfilter-layer7-v2.17.tar.gz
wget http://jaist.dl.sourceforge.net/sourceforge/l7-filter/l7-protocols-2008-01-16.tar.gz

wget http://iptables.org/projects/iptables/files/iptables-1.4.0.tar.bz2

tar xvzf l7-protocols-2008-01-16.tar.gz
tar xvzf netfilter-layer7-v2.17.tar.gz
tar xvjf iptables-1.4.0.tar.bz2
ln -s iptables-1.4.0 iptables

3. patch linux kernel & iptables with l7-filter

cd /usr/src/linux
patch -p1 < ../netfilter-layer7-v2.17/kernel-2.6.22-2.6.24-layer7-2.17.patch
cd ../iptables
patch -p1 < ../netfilter-layer7-v2.17/iptables-1.4-for-kernel-2.6.20forward-layer7-2.17.patch
chmod +x extensions/.layer7-test

4. config and compile kernel

cd /usr/src/linux
cp /boot/config-2.6.18-5-686 ./.config
make menuconfig

เลือกไปที่

Networking –> Networking options –> Network packet filtering framework (Netfilter) –> Core netfilter configuration
เลือกเพิ่ม
<M> Netfilter connection tracking support
<M> “layer7” match support
[*] Layer 7 debugging output

ส่วนอันอื่นที่ยังไม่ได้เลือก ก็สามารถเลือกได้ ตามต้องการ สำหรับผม ในการติดตั้งครั้งนี้ จะเลือกทุกอันเลย โดยจะเลือกเป็นโมดูล [M] ไว้ก่อน
แล้ว exit ออกมา โดยกด Esc 2 ครั้งติดๆกัน แล้วไปที่ IP: Netfilter Configuration เลือกเพิ่ม

<M> IPv4 connection tracking support (required for NAT)
<M> Full NAT

อยู่ด้านล่างสุดเลย แล้ว exit ออกมา โดยกด Esc 2 ครั้ง ไปเรื่อยๆ จนกระทั่งปรากฏหน้าจอ

Do you wish to save your new kernel configuration?

ให้กด Enter เพื่อบันทึกค่าคอนฟิก

5. คอมไพล์และสร้าง kernel image ใหม่ ขั้นตอนนี้ต้องรอนานหน่อยนะครับ

make-kpkg clean
make-kpkg --initrd --append-to-version=-l7 kernel_image kernel_headers

6. หลังจากรอคอยมานาน ต่อไปก็ติดตั้ง kernel ใหม่

cd /usr/src
dpkg -i linux-image-2.6.24-l7_2.6.24-l7-10.00.Custom_i386.deb
dpkg -i linux-headers-2.6.24-l7_2.6.24-l7-10.00.Custom_i386.deb

ตรวจสอบไฟล์ /boot/grub/menu.lst ว่าค่า default เป็นเคอร์เนลที่ติดตั้งใหม่

shutdown -r now

8. คอมไพล์และติดตั้ง iptables

cd /usr/src/iptables
make KERNEL_DIR=/usr/src/linux
make install
mv /usr/src/l7-protocols-2008-01-16 /etc/l7-protocols

9. คอมไพล์และติดตั้ง ipp2p

cd /usr/src
wget http://ipp2p.org/downloads/ipp2p-0.8.2.tar.gz
wget http://sources.gentoo.org/viewcvs.py/*checkout*/gentoo-x86/net-firewall/ipp2p/files/ipp2p-0.8.2-kernel-2.6.22.patch
wget http://sources.gentoo.org/viewcvs.py/*checkout*/gentoo-x86/net-firewall/ipp2p/files/ipp2p-0.8.2-iptables-1.4.0.patch
tar xvzf ipp2p-0.8.2.tar.gz

cp -a ipp2p-0.8.2 ipp2p-0.8.2.orig
cd ipp2p-0.8.2
patch -p1 <../ipp2p-0.8.2-kernel-2.6.22.patch
patch -p1 <../ipp2p-0.8.2-iptables-1.4.0.patch

# ถ้าใช้ ld จะมีปัญหาในการโหลดโมดูล แก้ให้ใช้ gcc ที่บรรทัดท้ายๆของไฟล์ Makefile

vi Makefile

libipt_ipp2p.so: libipt_ipp2p.c ipt_ipp2p.h
$(CC) $(CFLAGS) $(IPTABLES_OPTION) $(IPTABLES_INCLUDE) -fPIC -c libipt_ipp2p.c
@# ld -shared -o libipt_ipp2p.so libipt_ipp2p.o
$(CC) -shared -o libipt_ipp2p.so libipt_ipp2p.o

clean:
-rm -f *.o *.so *.ko .*.cmd *.mod.c
endif

make
cp libipt_ipp2p.so /usr/local/lib/iptables/
cp ipt_ipp2p.ko /lib/modules/2.6.24-l7/kernel/net/netfilter/
depmod -a

11. Test

iptables -A FORWARD -m ipp2p --ipp2p -j DROP
iptables -A FORWARD -m layer7 --l7proto bittorrent -j DROP

mydebian:/usr/src/ipp2p-0.8.2# iptables -nvL
Chain INPUT (policy ACCEPT 1116 packets, 82622 bytes)
pkts bytes target prot opt in out source destination

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 DROP all — * * 0.0.0.0/0 0.0.0.0/0 ipp2p v0.8.2 –ipp2p
0 0 DROP all — * * 0.0.0.0/0 0.0.0.0/0 LAYER7 l7proto bittorrent

Chain OUTPUT (policy ACCEPT 664 packets, 91251 bytes)
pkts bytes target prot opt in out source destination

mydebian:/usr/src/ipp2p-0.8.2# lsmod | egrep 'ipp2p|layer7'
xt_layer7 11236 1
nf_conntrack 62720 2 nf_conntrack_ipv4,xt_layer7
ipt_ipp2p 6848 1
x_tables 14372 3 xt_layer7,ipt_ipp2p,ip_tables

มกราคม 1, 2008

screen – A screen manager that supports multiple logins on one terminal

Filed under: Debian,Linux,Ubuntu — suchart @ 11:52 am

screen ช่วยให้เราสามารถมีหน้าจอล็อกอินหลายๆ หน้าจอจากเทอร์มินัลเดียวได้ และสามารถเรียกใช้หน้าจอ screen ที่เคยเรียกใช้ค้างไว้แล้วได้ เหมาะอย่างยิ่งกับการใช้งานรีโมทผ่าน ssh or telnet

Redhat & Fedora Installation

# yum install screen

Debian & Ubuntu Installation

# apt-get install screen

การใช้งานแบบง่ายๆ

เรียกใช้โปรแกรม เพื่อสร้างหน้าจอเทอร์มินัลใหม่

# screen

Ctrl+a c สร้างหน้าจอล็อกอินใหม่ จากเทอร์มินัลเดิม

Ctrl+a n เรียกใช้หน้าจอล็อกอินถัดไปที่เคยสร้างไว้แล้ว วนไปเรื่อยๆ

Ctrl+a p  เรียกใช้หน้าจอล็อกอินก่อนหน้า

ถ้าต้องการเรียกใช้หน้าจอเทอร์มินัลของ screen ที่เคยใช้ค้างอยู่แล้ว

# screen -r

หรือ

# screen -d -r

ข้อมูลเพิ่มเติม

# screen --help

# man screen

ธันวาคม 27, 2007

Kernel 2.6.23.12 + iptables 1.4.0 (1.3.8) + L7-filter + ipp2p on Ubuntu 7.10 Server

Filed under: Debian,Linux,Ubuntu — suchart @ 7:18 pm

Update 20080105

ไม่แน่ใจว่า ถึงตอนนี้ patch-o-matic จะอัพเดต ipp2p ให้ใช้งานได้กับ iptables 1.4.0 หรือยัง แต่คุณ rokoman ได้แนะนำ patch มาให้

http://sources.gentoo.org/viewcvs.py/gentoo-x86/net-firewall/ipp2p/files/ipp2p-0.8.2-iptables-1.4.0.patch?view=markup

รู้สึกว่าจะมาจาก gentoo แต่ผมยังไม่ได้ลองนะครับ

20071228

คำเตือน Segmentation fault <== ไม่สามารถใช้ iptables 1.4.0 กับ ipp2p ได้ ถ้าต้องการใช้ ipp2p ด้วย ควรติดตั้ง iptables 1.3.8 แทน

— ขีดยาวหน่อย มันคือ ขีด 2 ขีดติดกันนะครับ wordpress มันจับมาติดกันเป็นขีดเดียวซะงั้น ถ้าขยัน เดี๋ยวผมจะกลับมาแก้ให้


Netfilter ในเคอร์เนลลีนุกซ์ จะเป็นส่วนจัดการทางด้าน packet filtering โดยมี iptables เป็น user tool ที่ใช้ในการจัดการอีกทีหนึ่ง


ปกติแล้ว
netfilter และ iptables นั้นจะทำงานในชั้นที่สูงสุดก็แค่ transport เท่านั้น แต่เนื่องจากแอพลิเคชันบางส่วน เช่น p2p นั้น จำเป็นจะต้องใช้ความสามารถในระดับชั้นที่ 7 หรือ application layer จึงจะสามารถกลั่นกรองได้


L7-filter เป็น patch ที่ช่วยใช้ netfilter และ iptables สามารถกลั่นกรองแพ็คเก็ตในระดับชั้นที่ 7 โดยทั่วๆไปได้ ในขณะที่ ipp2p จะเจาะจงเฉพาะ p2p เท่านั้น


ทั้ง
L7-filter และ ipp2p สามารถติดตั้งใช้งานได้หลายแบบ วิธีที่แสดงนี้เป็นแค่วิธีหนึ่งเท่านั้นที่ผมได้ลองติดตั้ง

1. ติดตั้งแพคเกจที่ใช้ในการคอมไพล์และสร้าง kernel image

apt-get update
apt-get install build-essential
apt-get install kernel-package
apt-get install libncurses5-dev

2.

cd /usr/src
wget http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.23.12.tar.bz2
tar xvjf linux-2.6.23.12.tar.bz2
ln -s linux-2.6.23.12 linux

wget http://jaist.dl.sourceforge.net/sourceforge/l7-filter/netfilter-layer7-v2.17.tar.gz
wget http://jaist.dl.sourceforge.net/sourceforge/l7-filter/l7-protocols-2007-11-22.tar.gz


คำเตือน Segmentation fault <== ไม่สามารถใช้ iptables 1.4.0 กับ ipp2p ได้ ถ้าต้องการใช้ ipp2p ด้วย ควรติดตั้ง iptables 1.3.8 แทน

wget http://iptables.org/projects/iptables/files/iptables-1.4.0.tar.bz2
wget ftp://ftp.netfilter.org/pub/patch-o-matic-ng/snapshot/patch-o-matic-ng-20071226.tar.bz2

tar xvzf l7-protocols-2007-11-22.tar.gz
tar xvzf netfilter-layer7-v2.17.tar.gz
tar xvjf patch-o-matic-ng-20071226.tar.bz2
tar xvzjf iptables-1.4.0.tar.bz2
ln -s iptables-1.4.0 iptables

3. patch linux kernel & iptables with l7-filter

cd /usr/src/linux
patch -p1 < ../netfilter-layer7-v2.17/kernel-2.6.22-2.6.24-layer7-2.17.patch

cd ../iptables
patch -p1 < ../netfilter-layer7-v2.17/iptables-1.4-for-kernel-2.6.20forward-layer7-2.17.patch
chmod +x extensions/.layer7-test

4. patch linux kernel & iptables with ipp2p (patch-o-matic)

cd ../patch-o-matic-ng-20071226/
./runme –download

Hey! KERNEL_DIR is not set.

Where is your kernel source directory? [/usr/src/linux] <– Enter

Hey! IPTABLES_DIR is not set.

Where is your iptables source code directory? [/usr/src/iptables] <– Enter

./runme ipp2p

Hey! KERNEL_DIR is not set.

Where is your kernel source directory? [/usr/src/linux] <– Enter

Hey! IPTABLES_DIR is not set.

Where is your iptables source code directory? [/usr/src/iptables] <– Enter

Do you want to apply this patch [N/y/t/f/a/r/b/w/q/?] y

5. config and compile kernel

cd /usr/src/linux
cp /boot/config-2.6.22-14-server ./.config

####### make oldconfig

make menuconfig

เลือกไปที่

Networking –> Networking options –> Network packet filtering framework (Netfilter)

–> Core netfilter configuration

เลือก <M> “layer7” match support

[*] Layer 7 debugging output

ส่วนอันอื่นที่ยังไม่ได้เลือก ก็สามารถเลือกได้ ตามต้องการ

<M> UDP-Lite protocol connection tracking support (EXPERIMENTAL)

<M> SANE protocol support (EXPERIMENTAL)

<M> “TRACE” target support (NEW)

<M> “connlimit” match support (NEW)

<M> “u32” match support

แล้ว exit ออกมา โดยกด Esc 2 ครั้งติดๆกัน แล้วไปที่ IP: Netfilter Configuration เลือก

<M> IPP2P match support

อยู่ด้านล่างสุดเลย แล้ว exit ออกมา โดยกด Esc 2 ครั้ง ไปเรื่อยๆ จนกระทั่งปรากฏหน้าจอ

Do you wish to save your new kernel configuration?

ให้กด Enter เพื่อบันทึกค่าคอนฟิก

6. คอมไพล์และสร้าง kernel image ใหม่ ขั้นตอนนี้ต้องรอนานหน่อยนะครับ

make-kpkg clean
make-kpkg –initrd –append-to-version=-l7-p2p kernel_image kernel_headers

7. หลังจากรอคอยมานาน ต่อไปก็ติดตั้ง kernel ใหม่

cd /usr/src

dpkg -i linux-image-2.6.23.12-l7-p2p_2.6.23.12-l7-p2p-10.00.Custom_i386.deb

dpkg -i linux-headers-2.6.23.12-l7-p2p_2.6.23.12-l7-p2p-10.00.Custom_i386.deb

reboot

shutdown -r now 

8. คอมไพล์และติดตั้ง iptables

cd /usr/src/iptables
make KERNEL_DIR=/usr/src/linux
make install
mv /usr/src/l7-protocols-2007-11-22 /etc/l7-protocols

10. ทดสอบ

iptables -A FORWARD -m layer7 —l7proto bittorrent -j DROP

iptables -A FORWARD -m ipp2p –ipp2p -j DROP

Segmentation fault <== ไม่สามารถใช้ iptables 1.4.0 กับ ipp2p ได้ ซะงั้น (:

11. patch, compile and install iptables 1.3.8 แทน iptables 1.4.0 ที่มีปัญหากับ ipp2p (ไม่ต้อง patch และ compile kernel ใหม่)

cd /usr/src
wget http://iptables.org/projects/iptables/files/iptables-1.3.8.tar.bz2
tar xvjf iptables-1.3.8.tar.bz2
rm iptables
ln -s iptables-1.3.8 iptables
cd iptables
patch -p1 < ../
netfilter-layer7-v2.17/iptables-1.3-for-kernel-2.6.20forward-layer7-2.17.patch
chmod +x extensions/.layer7-test
cd ../patch-o-matic-ng-20071226
./runme –download
./runme ipp2p
cd ../iptables
make KERNEL_DIR=/usr/src/linux
make install

12. Test

iptables -A FORWARD -m layer7 —l7proto bittorrent -j DROP

iptables -A FORWARD -m ipp2p –ipp2p -j DROP

(: ขอพักก่อนนะครับ !

 

ธันวาคม 10, 2007

netstat-nat – A tool that display NAT connections

Filed under: Debian,Linux,Ubuntu — suchart @ 7:07 am

apt-get install netstat-nat

root@myubuntu:~# netstat-nat
Proto NATed Address                  Destination Address            State
tcp   192.168.100.11:1048            mail3.rootly.com:www           TIME_WAIT
tcp   192.168.100.11:1043            ded135-fbsd-174-35.netsoni:www ESTABLISHED
tcp   192.168.100.11:1046            hk-in-f164.google.com:www      ESTABLISHED
tcp   192.168.100.11:1042            ded135-fbsd-174-35.netsoni:www ESTABLISHED
tcp   192.168.100.11:1044            ded135-fbsd-174-35.netsoni:www ESTABLISHED
tcp   192.168.100.11:1047            64.233.189.99:www              ESTABLISHED
tcp   192.168.100.11:1049            mail3.rootly.com:www           TIME_WAIT
udp   192.168.100.11:1035            dns2.asianet.co.th:domain      ASSURED
udp   192.168.100.11:1045            dns2.asianet.co.th:domain      UNREPLIED
root@myubuntu:~# netstat-nat -n
Proto NATed Address                  Destination Address            State
tcp   192.168.100.11:1048            38.98.18.85:80                 TIME_WAIT
tcp   192.168.100.11:1043            66.180.174.35:80               ESTABLISHED
tcp   192.168.100.11:1046            64.233.189.164:80              TIME_WAIT
tcp   192.168.100.11:1042            66.180.174.35:80               TIME_WAIT
tcp   192.168.100.11:1044            66.180.174.35:80               ESTABLISHED
tcp   192.168.100.11:1047            64.233.189.99:80               TIME_WAIT
tcp   192.168.100.11:1049            38.98.18.85:80                 TIME_WAIT
udp   192.168.100.11:1035            203.144.207.49:53              ASSURED
udp   192.168.100.11:1045            203.144.207.49:53              UNREPLIED
root@myubuntu:~#

Kernel 2.6.23.9 + iptables 1.3.8 + L7-filter + ipp2p on Ubuntu 7.10 Server

Filed under: Linux,Ubuntu — suchart @ 12:53 am

โน้ตคำสั่งต่างๆ ที่ใช้ไว้ก่อนกันลืม

===============================================================

Update 20071223

พอดีว่า iptables 1.4.0 ออกมาแล้ว ผมได้ลองติดตั้งโดยวิธีนี้ สามารถติดตั้งได้โดยใช้

kernel 2.6.23.12

iptables 1.4.0 + netfilter-layer7-v2.17

patch-o-matic-ng-20071222 + IPP2P v0.8.1_rc1

Update 20071228

iptables 1.4.0 จะมีปัญหา ไม่สามารถใช้งานได้กับ ipp2p 

==============================================================

ในที่นี้ผมลองใช้ทั้ง L7-filter และ ipp2p ใครจะใช้อย่างใดอย่างหนึ่งก็ได้นะครับ

apt-get update
apt-get install build-essential
apt-get install kernel-package

ถ้าต้องการใช้คำสั่ง make menuconfig ติดตั้งตามคสั่งบรรทัดด้านล่าง

####################### apt-get install libncurses5-dev
ใช้คำสั่งบรรทัดด้านล่าง ถ้าต้อง kernel source ของ ubuntu (linux-source-2.6.22.tar.bz2)

###################### apt-get install kernel-source

cd /usr/src
wget http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.23.9.tar.bz2
tar xvjf linux-2.6.23.9.tar.bz2
ln -s linux-2.6.23.9 linux

wget http://jaist.dl.sourceforge.net/sourceforge/l7-filter/netfilter-layer7-v2.16.1.tar.gz
wget http://jaist.dl.sourceforge.net/sourceforge/l7-filter/l7-protocols-2007-11-22.tar.gz

wget http://iptables.org/projects/iptables/files/iptables-1.3.8.tar.bz2
wget ftp://ftp.netfilter.org/pub/patch-o-matic-ng/snapshot/patch-o-matic-ng-20071208.tar.bz2

tar xvzf l7-protocols-2007-11-22.tar.gz
tar xvzf netfilter-layer7-v2.16.1.tar.gz
tar xvjf patch-o-matic-ng-20071208.tar.bz2
tar xvzjf iptables-1.3.8.tar.bz2
ln -s iptables-1.3.8 iptables

cd /usr/src/linux
patch -p1 < ../netfilter-layer7-v2.16.1/kernel-2.6.22-2.6.23-layer7-2.16.1.patch

cd ../iptables
patch -p1 < ../netfilter-layer7-v2.16.1/iptables-1.3-for-kernel-2.6.20forward-layer7-2.16.1.patch
chmod +x extensions/.layer7-test

cd ../patch-o-matic-ng-20071208/
./runme –download
./runme ipp2p

cd /usr/src/linux
cp /boot/config-2.6.22-14-server ./.config
make oldconfig

เลือก m หรือ y ในหัวข้อที่เกี่ยวกับ layer 7 และ ipp2p ส่วนอันอื่นก็สามารถจะ enter ผ่านไปได้

คอมไพล์และสร้าง kernel image รอนานหน่อยนะครับ

make-kpkg clean
make-kpkg –initrd –append-to-version=-p2p kernel_image kernel_headers

cd /usr/src/iptables
make KERNEL_DIR=/usr/src/linux
make install

ต่อไปก็ติดตั้ง kernel ใหม่

cd ..
dpkg -i linux-image-2.6.23.9-p2p_2.6.23.9-p2p-10.00.Custom_i386.deb
dpkg -i linux-headers-2.6.23.9-p2p_2.6.23.9-p2p-10.00.Custom_i386.deb

cd /usr/src
tar xvzf l7-protocols-2007-11-22.tar.gz
mv /usr/src/l7-protocols-2007-11-22 /etc/l7-protocols

reboot

ลองทดสอบดู

iptables -m ipp2p –help
iptables -m layer7 –help

iptables -A FORWARD -m layer7 –l7proto bittorrent -j DROP
iptables -A FORWARD -m ipp2p –ipp2p -j DROP

root@myubuntu:/usr/src# iptables -L -n -v
Chain INPUT (policy ACCEPT 2385 packets, 153K bytes)
pkts bytes target prot opt in out source destination

Chain FORWARD (policy ACCEPT 17040 packets, 4942K bytes)
pkts bytes target prot opt in out source destination
484 36972 DROP all — * * 0.0.0.0/0 0.0.0.0/0 LAYER7 l7proto bittorrent
6 2106 DROP all — * * 0.0.0.0/0 0.0.0.0/0 ipp2p v0.8.1_rc1 –ipp2p

Chain OUTPUT (policy ACCEPT 2527 packets, 308K bytes)
pkts bytes target prot opt in out source destination

root@myubuntu:/usr/src# lsmod
Module Size Used by
ipt_MASQUERADE 4864 1
iptable_nat 8708 1
nf_nat 21036 2 ipt_MASQUERADE,iptable_nat
nf_conntrack_ipv4 19848 3 iptable_nat
xt_layer7 13700 1
nf_conntrack 67144 5 ipt_MASQUERADE,iptable_nat,nf_nat,nf_conntrack_ipv4,xt_layer7
nfnetlink 7192 3 nf_nat,nf_conntrack_ipv4,nf_conntrack
ipt_ipp2p 9600 1
iptable_filter 4224 1
ip_tables 15204 2 iptable_nat,iptable_filter
x_tables 16516 5 ipt_MASQUERADE,iptable_nat,xt_layer7,ipt_ipp2p,ip_tables

Update

ถ้า patch connlimit ด้วยจะคอมไพล์ kernel ไม่ผ่าน ใน kernel 2.6.23.9 ได้รวมไว้ใน kernel แล้ว สามารถเลือกเป็น module (m) ได้เลย แต่ว่าเท่าที่ผมได้ลอง iptables 1.3.8 จะยังไม่ support connlimit แต่ใน 1.4.0 rc1 จะสามารถใช้งานได้ แต่ไม่แน่ใจว่ามันจะมี bug ยังไงบ้างหรือเปล่า เพราะมันยังไม่ stable

root@myubuntu:/usr/src/iptables-1.3.8-ipp2p-L7# iptables -V
iptables v1.3.8
root@myubuntu:/usr/src/iptables-1.3.8-ipp2p-L7# iptables -m connlimit -h
iptables v1.3.8: Couldn’t load match `connlimit’:/usr/local/lib/iptables/libipt_connlimit.so: cannot open shared object file: No such file or directory

Try `iptables -h’ or ‘iptables –help’ for more information.
root@myubuntu:/usr/src/iptables-1.3.8-ipp2p-L7#

root@myubuntu:/usr/src/iptables# iptables -V
iptables v1.4.0rc1

root@myubuntu:/usr/src/iptables# iptables -m connlimit -h

……………………….

connlimit v1.4.0rc1 options:
[!] –connlimit-above n match if the number of existing connections is (not) above n
–connlimit-mask n group hosts using mask

Links

http://www.ipp2p.org/

http://l7-filter.sourceforge.net/

http://ubuntuforums.org/showthread.php?t=56835

http://www.kernel.org/

http://www.netfilter.org/

ธันวาคม 8, 2007

apt-get ผ่าน proxy

Filed under: Debian,Linux,Ubuntu — suchart @ 4:26 pm

export http_proxy=http://myusername:mypassword@myproxy:myproxy_port

sudo apt-get update

sudo apt-get install xxx

ธันวาคม 7, 2007

HP Pavilion dv2109tx + Ubuntu 7.10

Filed under: Linux,Ubuntu — suchart @ 3:06 pm

ได้ฤกษ์ยำ Notebook HP Pavilion dv2109tx เจ้าปัญหาของผมซักที ก่อนอื่นก็ใช้ Partition magic ย่อ Windows XP partition แล้ว ลง CentOS 5.1 ตามด้วย Ubuntu 7.10 ไว้ตัวละ partition ลงได้ไม่มีปัญหาอะไร นี่กะว่าถ้า FreeBSD 7 ออกเมื่อไร จะลงมันด้วยนะนี่

Ubuntu จะสร้างเมนูของ grub มีเมนูบูตทั้งของ XP และ CentOS ให้เรียบร้อยเลย

ลองเล่น Ubuntu ยังไม่ค่อยได้ทำอะไรมากนัก แค่ลองเล่นเน็ต ดูหนัง ฟังเพลง ได้ แต่กว่าจะทำให้เสียงออกลำโพงของ Notebook ได้ก็เล่นเอาเหนื่อยเลย โดยจากการลองผิดลองผิด อยู่นาน ก็พบว่า มันอยู่ที่ตัว PCM-2 โดยไปที่เมนู system -> preferences -> sound ต้องเลือก PCM และ PCM-2 ด้วย แล้วคลิกขวาที่รูปลำโพงที่มุมขวาแล้วเลือก open volume control แล้วไที่เมนู edit -> preferences แล้วเลือกทั้ง PCM และ PCM-2 ด้วย

Ubuntu 7.10 Firefox Flash Plugin

Filed under: Linux,Ubuntu — suchart @ 1:45 pm

ผมติดตั้ง flash plugin จาก firefox มีปัญหา มันติดตั้งได้ แต่ไม่ทำงาน เลยต้องหาวิธีติดตั้งแบบ manual

1. ไปที่ http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash

2. download .tar.gz

3. tar xvzf install_flash_player_9_linux.tar.gz

4. cd install_flash_player_9_linux

5. ./flashplayer-installer

6. ตัวติดตั้งจะบอกให้เราปิดเบราเซอร์

7. กำหนดไดเรกตอรีของ firefox เป็น /usr/lib/firfox

ตุลาคม 27, 2007

Ubuntu ไม่มีไฟล์ inittab !

Filed under: Linux,Ubuntu — suchart @ 1:53 pm

ใครที่เคยใช้ Redhat หรือ Debian พอมาใช้ Ubuntu จะหาไฟล์ /etc/inittab ไม่เจอแล้ว เนื่องจาก Ubuntu เปลี่ยนมาใช้ upstart รายละเอียดดูได้จาก http://upstart.ubuntu.com/

สำหรับการจัดการเซอร์วิสต่างๆ ของ Ubuntu ตอนสตาร์ทก็ยังสามารถใช้ sysv-rc-conf เช่นเดียวกับ Debian ผมเคยเขียนไปแล้วครับ ที่

โปรแกรม init, Runlevel และ Services

dos2unix บน Ubuntu มันอยู่ไหนหว่า?

Filed under: Linux,Ubuntu — suchart @ 1:36 pm

ช่วงหลังผมชักจะติดใจ Ubuntu ซะแล้ว มีบางครั้งที่ต้อง copy ไฟล์คอนฟิกที่แก้ไขบน Windows ไปใช้บน Ubuntu แต่หาคำสั่ง dos2unix เพื่อแปลงไฟล์ไม่เจอ จากการค้นหาโดยใช้ google ก็พบว่ามันอยู่ในแพคเกจ tofrodos สามารถติดตั้งโดยใช้คำสั่ง

sudo apt-get install tofrodos

ถ้าสงสัยว่ามันคืออะไร ดูรายละเอียดโดยใช้คำสั่ง ด้านล่าง

root@myubuntu:~# aptitude show tofrodos
Package: tofrodos
State: installed
Automatically installed: yes
Version: 1.7.6-2
Priority: optional
Section: utils
Maintainer: Florian Ernst <florian@debian.org>
Uncompressed Size: 69.6k
Depends: libc6 (>= 2.4-1)
Conflicts: sysutils (<= 2.0.0-1)
Description: Converts DOS <-> Unix text files, alias tofromdos
DOS text files traditionally have CR/LF (carriage return/line feed) pairs as their new line delimiters while Unix text files traditionally have LFs (linefeeds) to terminate each line.

Tofrodos comprises one program, “fromdos” alias “todos”, which converts text files to and from these formats. Use “fromdos” to convert DOS text files to the
Unix format, and “todos” to convert Unix text files to the DOS format.

This functionality is also available via the dos2unix/unix2dos symlinks.

Homepage: http://www.thefreecountry.com/tofrodos/index.shtml

หน้าต่อไป

สร้างเว็บไซต์หรือบล็อกฟรีที่ WordPress.com.