ขั้นตอนการติดตั้ง RedHat Linux Internet Server 

Background BootDisk Start Partition RH73 RH80 RH90 Fedora Enterprise OpenNA IPCop
OpenSSH DHCP IPTables DNS Squid TransparentProxy Apache Samba Mail Service
SquidGuard Anti-Spam Anti-Virus Tripwire LogSentry HostSentry PortSentry Snort
Squirrelmail Quota Counter Wvdial DynamicDNS WebMin UserMin PHP GCC DataBase Phorum phpBB2 ADSL
CaseStudy Remote-Boot Compile-Kernel Firewall Tips Training Software END
Home Up NextStackedPage PreviousStackedPage NextPage PreviousPage FirstChildPage Blank 

เปิดอบรม Linux
รุ่นที่ 1 ระหว่างวันจันทร์ที่ 16 มีนาคม 2552 ถึงวันศุกร์ที่ 20 มีนาคม 2552
รุ่นที่ 2 ระหว่างวันจันทร์ที่ 27 เมษายน 2552 ถึงวันศุกร์ที่ 1 พฤษภาคม 2552

Click here
รุ่นที่ 2 ย้ายมาจาก รุ่นที่ 2 ระหว่างวันจันทร์ที่ 30 มีนาคม 2552 ถึงวันศุกร์ที่ 3 เมษายน 2552
 

Compile Kernel

     ตั้งแต่ 10 กย. 2546 18:40 น. ท่านเข้ามาที่หน้านี้เป็นลำดับที่  counter

การ Compile Kernel

       ในการ Compile Kernel นั้น ทำเพื่อให้เครื่องของเรามีตัว kernel ที่กระชับตรงกับ Hardware ที่ใช้ แบบของ kernel มีอยู่ด้วยกัน สองแบบคือ Modularized Kernel กับ Monolithic Kernel ข้อแตกต่างระหว่างทั้งสองตัวนี้ก็คือ

Modularized Kernel เป็นแบบซึ่งรองรับ Hardware ได้หลายๆ ชนิด ดังนั้นตัว kernel จึงมีขนาดใหญ่ เช่นที่เป็นอยู่ในปัจจุบันเมื่อเราลง Server ครั้งแรก จะมี Driver ของ Hardware หลายๆชนิดรวมอยู่ด้วย

Monolithic Kernel   เป็นแบบซึ่งจะตัด Driver ของ Hardware ที่ไม่ต้องการออกไป ทำให้มีขนาดเล็กลง การทำงานก็เร็วขึ้น

ประโยชน์ของการ Compile Kernel คือ
          - Kernel จะทำงานเร็วขึ้น เนื่องจากมี source code น้อยลงนั่นเอง
          - ใช้หน่วยความจำน้อยลง ซึ่งบางส่วนไม่ต้องไปใช้ swap เลย
          - มีความเสถียรมากขึ้น เนื่องจากไม่ต้องไป probe กับ Hardware ที่ไม่มี
          - ตัดส่วนที่ไม่จำเป็นออกไปเพื่อหลีกเลี่ยงผู้บุกรุก
          - การทำแบบ Module จะทำให้การทำงานช้ากว่า เพราะต้อง โหลดเข้าโหลดออก

ในการ Compile Kernel เราต้องแน่ใจว่ามีโปรแกรมเหล่านี้อยู่ไม๊คือ
          - iptables     เพื่อจัดการเกี่ยวกับ firewalls as well as IP masquerading
          - quota      เพื่อควบคุมเนื้อที่การใช้งานของ user
          - mkinitrd     ถ้าเราต้องทำงานเกี่ยวกับ SCSI or RAID
          - mkbootdisk เพื่อทำ boot diskette สำหรับแบบ Modularized Kernel อย่างเดียว
          - dosfstools  ใช้สำหรับ MS-DOS FAT ใช้กับแบบ Modularized Kernel อย่างเดียว

การเตรียมแผ่น boot สำรองกรณีฉุกเฉิน (เผื่อใช้ในกรณีที่เรา Compile ไม่ผ่าน จะได้ boot ด้วย Diskette)

เริ่มด้วยการดูว่า kernel ของเราเป็น version อะไร โดยใช้คำสั่ง uname -a ดังนี้

[root@one /]# uname -a
Linux one.abcdef.com 2.4.18-3 #1 Thu Apr 18 07:37:53 EDT 2002 i686 unknown

เราจะทราบว่า kernelของเราเป็น Version  2.4.18-3 นั่นเอง จากนั้นให้เราสร้างแผ่น boot ขึ้นมาโดยใช
้คำสัง mkbootdisk --device /dev/fd0H1440 2.4.18-3 ดังนี้

[root@one root]# mkbootdisk --device /dev/fd0H1440 2.4.18-3
Insert a disk in /dev/fd0H1440. Any information on the disk will be lost.
Press <Enter> to continue or ^C to abort:

เราทำเอาไว้เผื่อฉุกเฉินในกรณีที่เรา Compile Kernel ไม่ผ่าน จากนั้นเราก็จะเริ่มการ Compile ดังนี้

ให้เรา download ตัว kernel ที่ต้องการ ได้จาก http://www.kernel.org หรือเอาได้จาก ที่นี่ และแนะนำ
ว่าให้เรา download ตัวสำหรับ patch ได้จาก http://www.grsecurity.org ดูให้เป็น Version ที่ตรงกันนะครับ หรือจะเอาทั้งสองแฟ้มได้จาก ที่นี่ แฟ้มที่จะใช้ในการ compile ทั้งสองคือ  linux-2.4.22.tar.gz และ grsecurity-1.9.12-2.4.22.patch ซึ่งเราเก็บไว้ที่ /home/util

[root@one util]# cd /usr/src
[root@one src]# ls
redhat
[root@one src]# cp /home/util/linux-2.4.22.tar.gz .
[root@one src]# cp /home/util/grsecurity-1.9.12-2.4.22.patch .
[root@one src]# ls
grsecurity-1.9.12-2.4.22.patch linux-2.4.22.tar.gz redhat
[root@one src]# tar zxpf linux-2.4.22.tar.gz
[root@one src]# ln -s /usr/src/linux-2.4.22 /usr/src/linux
[root@one src]# ls
grsecurity-1.9.12-2.4.22.patch linux-2.4.22     redhat
linux              linux-2.4.22.tar.gz
[root@one src]#
 

เราเริ่มด้วยการ ไปที่ /usr/src จะเห็นว่า มี directory อยู่อันเดียวคือ redhat ให้เรา copy แฟ้มทั้งสองมาไว้ที่นี่ จากนั้นแตกแฟ้ม linux-2.4.22.tar.gz จะได้ directory ชื่อ linux-2.4.22 ขึ้นมาให้เราทำ symbolic link นี้เป็นชื่อว่า linux


ลำดับต่อไป เราจะลบ kernel ปัจจุบันออกไป โดยขอดูก่อนว่ามีติดตั้งอยู่

[root@one src]# rpm -qa | grep kernel
kernel-2.4.18-3
[root@one src]# rpm -q glibc-kernheaders
glibc-kernheaders-2.4-7.14
[root@one src]# rpm -e --nodeps kernel glibc-kernheaders

หมายถึงเราจะเอา โปรแกรม kernel และ kernheaders ออกจากระบบ จากนั้นเราจะจัดการ patch ให้กับ kernel ดังนี้

[root@one /]# cd /usr/src/linux/
[root@one linux]# patch -p1 < ../grsecurity-1.9.4-2.4.18.patch
[root@one linux]# cd ../
[root@one src]# rm -f grsecurity-1.9.4-2.4.18.patch

จากนั้นเราเริ่มการ Compile โดย

[root@one include]# cd /usr/src/linux/
[root@one linux]# make mrproper

ตามด้วย

[root@one /]# cd /usr/src/linux/
[root@one linux]# make config
rm -f include/asm
( cd include ; ln -sf asm-i386 asm)
/bin/sh scripts/Configure arch/i386/config.in
#
# Using defaults found in arch/i386/defconfig
*
* Code maturity level options
* Prompt for development and/or incomplete code/drivers (CONFIG_EXPERIMENTAL)
[N/y/?] Press Enter
* * Loadable module support
* Enable loadable module support (CONFIG_MODULES) [Y/n/?] n

เราจะตอบ N เมื่อมีคำถาม CONFIG_MODULES เพราะว่าเราจะ compile แบบ Monolithic จากนั้น
จะมีคำถามมากมายในที่นี้ผู้เขียนขอข้ามไป เมื่อตอบ Y หรือ N เรียบร้อยแล้ว ก็ใช้คำสั่งดังนี้

[root@one linux]# make dep; make clean; make bzImage

จากนั้นเราจะติดตั้ง kernel ใหม่โดย

[root@one /]# cd /usr/src/linux/
[root@one linux]# cp arch/i386/boot/bzImage /boot/vmlinuz-2.4.22
[root@one linux]# cp System.map /boot/System.map-2.4.22
[root@one linux]# cd /boot/
[root@one /boot]# ln -fs vmlinuz-2.4.22 vmlinuz
[root@one /boot]# ln -fs System.map-2.4.22 System.map
[root@one /boot]# rm -f module-info
[root@one /boot]# rm -f initrd-2.4.22.img
[root@one /boot]# mkdir -p /usr/src/linux-2.4.22/include
[root@one /boot]# cd /usr/src/linux/
[root@one linux]# cp -r include/asm-i386 ../linux-2.4.22/include/
[root@one linux]# cp -r include/linux ../linux-2.4.22/include/
[root@one linux]# cd ../
[root@one src]# rm -rf /usr/src/linux
[root@one src]# ln -s /usr/src/linux-2.4.22 linux

แค่นี้ก่อนนะครับ
 

Home Up NextStackedPage PreviousStackedPage NextPage PreviousPage FirstChildPage Blank 
Background BootDisk Start Partition RH73 RH80 RH90 Fedora Enterprise OpenNA IPCop
OpenSSH DHCP IPTables DNS Squid TransparentProxy Apache Samba Mail Service
SquidGuard Anti-Spam Anti-Virus Tripwire LogSentry HostSentry PortSentry Snort
Squirrelmail Quota Counter Wvdial DynamicDNS WebMin UserMin PHP GCC DataBase Phorum phpBB2 ADSL
CaseStudy Remote-Boot Compile-Kernel Firewall Tips Training Software END

 

Google
Search WWW Search phst.ph.mahidol.ac.th Search www.rtrc.in.th

โดย gook55
แนะนำบทความได้ที่


sermpan55@hotmail.com
ICQ: 51822478
Since: Aug 18,2002
Last Updated: May 01,2007

กระดานข่าว phorum

สถิติการเข้าดูเวบawstats
Since: Dec 24,2003
MRTG Since:Aug 12,2004
 

WebBoard dServer

 

poweredby02

 

 

 


สำหรับท่านที่สนใจในการติดตั้ง
Linux Internet Server
จะจัดเปิดอบรมให้ที่
คณะสาธารณสุขศาสตร์ ม.มหิดล กรุงเทพมหานครฯ
ใช้เวลารวม 5 วัน
ในรูปแบบอบรมเชิงปฏิบัติการ ในการทำ Internet Server


กำหนดการอบรมระหว่าง
เดือนมีนาคม-พฤษภาคม 2552


รายละเอียดการอบรมและประมวลภาพการอบรมรุ่นต่างๆ