แนะนำฟรีเว็บโฮสติ้ง : brinkster.com 1asphost.comfreeservers 000webhost.com byethost.com thainame.net fwhaco.cc
Back To Menu :: Explore all details
1.1 คำสั่ง ls
: ใช้แสดงรายชื่อแฟ้มทั้งหมดใน home directory
: list directory contents
ทุกท่านที่มี account ใน linux จะมี home directory ของตนเอง เพื่อใช้เก็บแฟ้มต่าง ๆ ภายใต้ระบบ linux เมื่อต้องการทราบว่ามีแฟ้มอะไร เก็บไว้บ้าง สามารถใช้คำสั่ง ls ได้ และสามารถกำหนด parameter ได้หลายตัว เช่น -al --sort เป็นต้น ถ้าต้องการทราบว่าปัจจุบันตนเองอยู่ใน Directory ใด ให้ใช้คำสั่ง pwd
1.2 คำสั่ง chmod
: ใช้เปลี่ยนสิทธิของแฟ้ม เจ้าของ(Owner), คนในกลุ่ม(Group), คนอื่น(Other) สามารถทำอะไรได้บ้าง
: change file access permissions
เมื่อใช้คำสั่ง ls ท่านจะเห็นตัวอักษร RWXRWXRWX หรือทำนองนี้หน้าชื่อแฟ้ม ซึ่งเป็นการกำหนด สิทธิของแต่ละแฟ้ม ว่า อ่านได้ เขียนได้ และประมวลผลได้ โดยแยกเป็นส่วนของ เจ้าของ กลุ่ม คนอื่น ซึ่งเป็นคำสั่งที่จำเป็นมากสำหรับ webmaster ในการดูแลระบบ และท่านที่ต้องการเขียน CGI จะต้องรู้คำสั่งนี้ เพราะ เมื่อส่งแฟ้ม CGI เข้าไปใน server และต้องการให้คนทั่วไปเข้ามาใช้บริการ โปรแกรมของตนที่เขียนขึ้นด้วย Perl จะไม่สามารถใช้ได้ ถ้าไม่กำหนดให้คนอื่น สามารถประมวลผลได้ (x) จึงจำเป็นต้องใช้คำสั่ง เช่น chmod 755 hello.pl หรือ chmod 775 fileforyou.pl หรือ chmod +x test.pl เป็นต้น
ในแต่ละกลุ่มจะมีการกำหนดสิทธิได้ 3 แบบ
ตัวอักษร R มาจาก Read หมายถึง อ่าน
ตัวอักษร W มาจาก Write หมายถึง เขียน
ตัวอักษร X มาจาก Execute หมายถึง ประมวลผล
ตัวอย่างเช่น
--- : ไม่มีสิทธิอะไรเลย (เลขที่ใช้คือ 0)
--X : ประมวลผลได้อย่างเดียว (เลขที่ใช้คือ 1)
R-- : อ่านได้อย่างเดียว (เลขที่ใช้คือ 4)
RW- : อ่าน และเขียนได้ (เลขที่ใช้คือ 6)
R-X : อ่าน และประมวลผลได้ (เลขที่ใช้คือ 5)
RWX : อ่าน เขียน และประมวลผลได้ (เลขที่ใช้คือ 7)
ความหมายของ RWXRWXRWX จะเห็นว่ามีอักษร 9 ตัว
3 ตัวแรกหมายถึง เจ้าของ
3 ตัวที่สองหมายถึง กลุ่ม
3 ตัวที่สามหมายถึง คนอื่น
ตัวอย่างเช่น
RWX------ : เจ้าของเท่านั้นที่มีสิทธิทุกอย่าง (เลขที่ใช้คือ 700)
RWXRWX--- : เจ้าของ และสมาชิกกลุ่มเดียวกันมีสิทธิทุกอย่าง (เลขที่ใช้คือ 770)
RWXR-XR-X : เจ้าของทำได้หมด ส่วนกลุ่มและคนอื่นอ่านและประมวลผลได้ (เลขที่ใช้คือ 755)
R--R--R-- : ทุกคนอ่านได้อย่างเดียว (เลขที่ใช้คือ 444)

1.3 คำสั่ง man
: เป็นคำสั่งที่สำคัญมาก เพราะจะช่วยให้อธิบายคำสั่งต่าง ๆ ให้ท่านได้
: format and display the on-line manual pages
ผมเชื่อว่าทุกคนที่ใช้ unix หรือ linux ต้องเคยใช้คำสั่งนี้มาก่อน เพราะจะเป็นคำสั่งที่ช่วยอธิบายหน้าที่ของคำสั่ง พร้อมกับแสดง parameter ที่สามารถใช้ได้ทั้งหมดของคำสั่งนั้น และยังมีตัวอย่างการใช้ และคำสั่งที่เกี่ยวข้องอีก ทำให้ประหยัดเวลาในการค้นเอกสารได้อย่างมาก บางท่านอาจศึกษา linux ด้วยการอ่านจาก man อย่างเดียวเลยก็มีนะครับ โดยไม่ต้องไปหาซื้อหนังสือที่ไหนมาอ่านก็ทำได้
1.4 คำสั่ง mkdir, rmdir, cd
: งานต่าง ๆ เกี่ยวกับ directory
: make, remove empty, change working directory
ผู้ใช้คอมพิวเตอร์ที่ใช้ dos มาก่อนต้องคุ้นเคยกับ directory แน่นอน สำหรับคำสั่งเกี่ยวกับ directory ในที่นี้มี 3 คำสั่ง
mkdir หมายถึง สร้าง directory (make directories)
rm หมายถึง ลบ directory (remove files or directories) และคำสั่งนี้ยังใช้ลบแฟ้มตามปกติได้อีกด้วย
cd หมายถึงเปลี่ยน directory (change working directory)
1.5 โปรแกรม pico
: เป็น editor ที่ใช้สำหรับแก้ไขแฟ้มแบบ text คล้าย vi แต่มีประสิทธิภาพกว่ามาก
เพียงแต่พิมพ์คำว่า pico แล้ว enter ก็ใช้งานได้เลย การจะจัดเก็บ หรืองานต่าง ๆ ที่มีบริการไว้มากมาย ท่านสามารถอ่านได้จากเมนูด้านล่าง ซึ่งเครือ่งหมาย ^ หมายถึงการกดปุ่ม Ctrl ประกอบอักษรต่าง ๆ นั่นเอง ผมคิดว่าท่านน่าจะพออ่านรู้เรื่อง หรือจะพิมพ์ว่า pico xx ก็จะเป็นการสร้างแฟ้มชื่อ xx ให้ทันที แต่หากมีแล้ว ก็จะเปิดแฟ้ม xx มาให้แก้ไขในโปรแกรม xx เมื่อท่านต้องการเลิกก็ทำได้โดยกดปุ่ม Ctrl-X เป็นอันเรียบร้อย หากท่านใดเคยใช้ vi เมื่อลองใช้โปรแกรมนี้จะติดใจอย่างแน่นอน เพราะใช้งานได้ง่ายกว่า หลายเท่านัก
หลายครั้ง ที่พิมพ์คำว่า pico แล้วไม่มีในเครื่อง ก็เพราะไม่ได้ลงโปรแกรม pine เมื่อต้องการใช้ pico ก็ต้องติดตั้งโปรแกรม pine เข้าไปในเครื่อง จากแผ่น CD ด้วยคำสั่ง rpm -i pine*
1.6 โปรแกรม emacs
: เป็น editor ที่ใช้สำหรับแก้ไขแฟ้มแบบ text คล้าย vi แต่มีประสิทธิภาพกว่ามาก
ทำงานได้คล้าย ๆ กับ pico แต่หลายคนบอกว่า ตัวนี้ทำงานได้ดีกว่า แต่ผมว่า pico ใช้งานได้ง่ายกว่ากันเยอะเลย เพราะเห็นเมนูด้านล่าง แต่ของ emacs จะใช้ ctrl-h ดูส่วนช่วยเหลือ และกด ctrl-x + ctrl-c จึงจะออกจากโปรแกรม อาจเป็นเพราะผมใช้ไม่ชำนาญมังครับ ในเมื่อผมใช้ pico เป็น editor ผมคงไม่จำเป็นต้องศึกษา emacs เพิ่มเติมแล้ว ยกเว้นว่าสักวันอาจมีเหตุจำเป็นที่ความสามารถของ pico ให้ไม่ได้ แต่ emacs ให้ได้ก็เป็นได้
1.7 โปรแกรม vi
: เป็น editor ที่ใช้สำหรับแก้ไขแฟ้มแบบ text
: a programmers text editor
Text editor ที่ใช้งานได้ยาก แต่มีใน linux ทุกรุ่น ในบางเครื่องไม่มี pico เพราะไม่ได้ติดตั้ง mail หรือ pine จึงจำเป็นต้องใช้โปรแกรม vi สำหรับแก้ไขข้อมูลในแฟ้มต่าง ๆ ของ linux เช่นการใช้คำสั่ง man ก็คือการใช้ความสามารถของ vi ในการนำข้อมูลมาแสดงผลนั่นเอง
1.8 คำสั่ง id, finger, who, w
: ทุกคำสั่งข้างต้นใช้สำหรับตรวจสอบผู้ใช้ แต่จะให้รายละเอียดต่างกันไป
: print real and effective UIDs and GIDs

1.9 คำสั่ง cat
: แสดงข้อมูลในแฟ้ม คล้ายคำสั่ง type ในระบบ DOS
: concatenate files and print on the standard output

1.10 คำสั่ง ifconfig
: แสดงข้อมูลเกี่ยวกับ Network interface และแสดง ip ต่าง ๆ ที่มีการเพิ่มเข้าไปใน server ได้
: configure a network interface

1.11 คำสั่ง netstat
: แสดงสถานะของเครือข่ายว่ามีโปรแกรมใดเปิดให้บริการ
: Print network connections, routing tables, interface statistics, masquerade connections, and multicast memberships

1.12 คำสั่ง service
: ดูสถานะของบริการต่าง ๆ ว่าถูกเปิดหรือ running อยู่หรือไม่
: Internet network services list

1.13 คำสั่ง xinetd
: ดูบริการภายใน xinetd ว่าอะไรเปิดอยู่บ้าง ทำให้เข้าไปเปิดที่ห้อง /etc/xinetd.d แล้วเลือกเปิดบริการเฉพาะที่ต้องการ เช่นแก้แฟ้ม talk เพื่อให้เปิดบริการ talk ใน server เป็นต้น แต่ใน Fedora ที่ผมติดตั้งไม่มีคำสั่งนี้ครับ

1.14 คำสั่ง whereis
: ค้นหาแฟ้มที่ต้องการว่าอยู่ที่ห้องใด แต่ค้นได้เฉพาะที่กำหนดไว้ใน PATH เท่านั้น หากต้องการค้นทั้งเครื่องต้องใช้คำสั่ง find
: locate the binary, source, and manual page files for a command

1.15 คำสั่ง cp, rm, mv
: จัดการแฟ้มเช่น คัดลอก ลบ และย้าย

1.16 คำสั่ง ping
: ตรวจสอบ ip ของเครื่องเป้าหมาย และการเชื่อมต่อ internet
: send ICMP ECHO_REQUEST to network hosts

1.17 คำสั่ง env
: แสดงค่า environment ปัจจุบัน
: run a program in a modified environment

1.18 คำสั่ง lynx
: Text browser ที่ใช้งานง่าย ใช้ดู source หรือ download ได้ (ในเครื่องผมไม่ได้ลงไว้)

1.19 คำสั่ง nslookup
: แสดงข้อมูลเกี่ยวกับ name server จาก ip หรือ domain name
: query Internet name servers interactively

1.20 คำสั่ง tail
: แสดงส่วนท้ายของแฟ้มที่มีขนาดใหญ่ ตรงข้ามกับ cat ที่ดูตั้งแต่เริ่มแฟ้ม
: output the last part of files

1.21 คำสั่ง telnet
: ใช้ติดต่อเข้า server ต่าง ๆ ตาม port ที่ต้องการ แต่ปัจจุบัน server ต่าง ๆ ปิดบริการ telnet แต่เปิด SSH แทน
: user interface to the TELNET protocol
100 : Continue
101 : Switching Protocols
200 : OK
201 : Created
202 : Accepted
203 : Non-Authoritative Information
204 : No Content
205 : Reset Content
206 : Partial Content
300 : Multiple Choices
301 : Moved Permanently
302 : Moved Temporarily
303 : See Other
304 : Not Modified
305 : Use Proxy
400 : Bad Request
401 : Unauthorized
402 : Payment Required
403 : Forbidden
404 : Not Found
405 : Method Not Allowed
406 : Not Acceptable
407 : Proxy Authentication Required
408 : Request Time-out
409 : Conflict
410 : Gone
411 : Length Required
412 : Precondition Failed
413 : Request Entity Too Large
414 : Request-URI Too Large
415 : Unsupported Media Type
500 : Internal Server Error
501 : Not Implemented
502 : Bad Gateway
503 : Service Unavailable
504 : Gateway Time-out
505 : HTTP Version not supported

2.1 คำสั่ง df
: แสดงเนื้อที่ใช้งานทั้งหมดของ Harddisk ว่าเหลือเท่าใด
: report filesystem disk space usage
ช่วยให้ผู้ดูแลระบบรู้ว่าตอนนี้เนื้อที่ใน Harddisk เหลืออยู่เท่าใด และอาจใช้ตรวจสอบได้ว่า มีใครแอบมา upload แฟ้มขนาดใหญ่ไว้หรือไม่ จะได้ตรวจสอบในรายละเอียดของแต่ละ user ต่อไป (ผมเองก็ใช้บ่อย เพราะถ้า server เล็ก ๆ จะเต็มบ่อยครับ ต้องคอย clear เสมอ)
2.2 คำสั่ง du
: แสดงเนื้อที่ใช้งาน ของแต่ละ directory โดยละเอียด
: estimate file space usage
ช่วยให้ผู้ดูแลระบบรู้ว่า directory ใด ใช้เนื้อที่ใด หรือใช้ดูรวม ๆ ว่า ผู้ใช้แต่ละคนใช้เนื้อที่เก็บข้อมูลกันเท่าใด เพราะผู้ใช้ปกติจะใช้กันไม่เยอะ แต่ถ้าตรวจสอบแล้วเยอะผิดปกติ ก็จะเข้าไปดูว่า เยอะเพราะอะไร จะได้แก้ไขได้
2.3 คำสั่ง ps
: แสดง Process หรือโปรแกรมที่ประมวลผลอยู่ในระบบขณะนั้น
: report a snapshot of the current processes.
ช่วยให้ผู้ดูแลระบบ ติดตามได้ว่ามีโปรแกรมอะไรที่ไม่ถูกต้อง run อยู่ หรือโปรแกรมอะไร ที่ผู้ศึกษาลองประมวลผลแล้วค้างอยู่ จะได้ทำการแก้ไข มิเช่นนั้นระบบก็จะทำงานค้าง เพราะโปรแกรมที่ไม่ควรอยู่ในระบบ กำลังประมวลผลโดยไม่จำเป็น โดยเฉพาะพวก bot จะทำให้ server ล่มง่ายมาก
2.4 คำสั่ง kill
: เมื่อทราบว่า process ใดที่มีปัญหา สามารถลบ process ตามเลข process ออกจากระบบได้
: terminate a process
ช่วยยกเลิก process ที่ไม่ถูกต้องออกจากระบบ ถ้าขณะนั้นผู้ใช้คนหนึ่งกำลังใช้งานอยู่ หาก process หลักของเขาถูก kill จะทำให้ผู้ใช้ท่านนั้น หลุดออกจากระบบทันที (สำหรับคำสั่งนี้จะถูกใช้โดย super user เท่านั้น ผู้ใช้ธรรมดาไม่มีสิทธิ)
2.5 คำสั่ง find
: ค้นหาแฟ้มที่ต้องการว่าอยู่ที่ใดในเครื่องเรา

2.6 คำสั่ง gzip
: ใช้สำหรับแตกแฟ้มที่ถูกบีบอัด ซึ่งมีสกุล .gz .z แต่อาจใช้ tar แทนได้สำหรับ .tar.gz

2.7 คำสั่ง tar
: ใช้สำหรับแตกแฟ้มที่ถูกบีบอัด แล้วนามสกุล tar

2.8 คำสั่ง last
: ใช้แสดงรายชื่อผู้ login เข้ามาล่าสุด

2.9 คำสั่ง grep
: ใช้สำหรับเลือกข้อมูลเฉพาะบรรทัดที่ต้องการ

2.10 คำสั่ง date
: ใช้ดูวันที่ หรือเปลี่ยนวันที่ และเวลาได้ date [OPTION] [MMDDhhmm[[CC]YY][.ss]]

2.11 คำสั่ง top
: ใช้แสดงสถานะการใช้ทรัพยากร ภายในเครื่อง

2.12 คำสั่ง ntsysv หรือ setup
: ใช้เปิด-ปิด บริการของเครื่องที่สะดวกรวดเร็ว

2.13 คำสั่ง route
: ใช้เส้นทางการเชื่อมเครือข่าย

2.14 คำสั่ง shutdown, reboot
: ใช้ปิดเครื่อง หรือ ปิดและเปิดเครื่องใหม่อย่างถูกวิธี

2.15 คำสั่ง runlevel
: คู่กับแฟ้ม /etc/inittab เพื่อบอกว่าปัจจุบันอยู่ใน level ใด
: ถ้าต้องการเปลี่ยน level ต้องใช้คำสั่ง chkconfig ให้ดูเพิ่มเติมจาก 2.18

2.16 คำสั่ง fsck
: ซ่อมแซมระบบแฟ้มใน linux

2.17 คำสั่ง chown, chgrp
: เปลี่ยนเจ้าของ หรือเปลี่ยนกลุ่ม
ตามหัวข้อ 1.2 เรื่องคำสั่ง chmod ทำให้ทราบว่า แฟ้มแต่ละแฟ้มมี 3 ส่วน คือเจ้าของ กลุ่ม และทั่วไป เมื่อต้องการเปลี่ยนความเป็นเจ้าของ หรือกลุ่ม ก็สามารถทำได้ ซึ่งเป็นหลักการง่าย ๆ ไม่ยุ่งยาก
2.18 คำสั่ง chkconfig
: กำหนด หรือแสดง บริการที่สั่งประมวลผลใน level ต่าง ๆ ขณะเปิดเครื่อง
คำว่า level คือระดับในการเปิดเครื่อง ดูได้จากแฟ้ม /etc/inittab โดยโปรแกรมต่าง ๆ ที่สั่งให้ประมวลผล สามารถเลือกให้ทำงานใน level ใดได้ หากสั่งให้ประมวลผลปิด level เมื่อมีการ start linux ใน level หนึ่ง โปรแกรมที่คิดว่าสั่งให้ทำงานขณะเปิดเครื่อง ก็จะไม่ทำงาน
2.19 คำสั่ง mount, umount
: สั่งเชื่อมต่ออุปกรณ์ หรือ partition เช่น Diskette หรือ Handy drive เป็นต้น
การใช้ mount เป็นสิ่งที่ผู้ดูแลระบบต้องเข้าใจหลักการให้ได้ เพราะเป็นช่องทางในการติดต่อกับอุปกรณ์ต่าง ๆ ล่าสุด ผมต่อ harddisk เข้าไปในเครื่อง server เพิ่มอีก 1 ตัว ซึ่งระบบมอง harddisk ตัวที่เพิ่มเข้าไปเป็น hdc ด้วยคำสั่ง fdisk -l เมื่อต้องการ partition ที่ 1 ของ hdc มาเป็นห้อง /x ก็เพียงแต่ใช้คำสั่งสร้างห้องคือ #mkdir /x สำหรับครั้งแรก แล้วใช้คำสั่ง #mount /dev/hdc1 /x ก็จะใช้ห้อง /x ซึ่งอยู่ใน harddisk อีกตัวหนึ่งได้ทันที
2.20 คำสั่ง mkbootdisk
: สร้างแผ่น boot disk เพื่อใช้ boot ระบบ linux ขึ้นมาภายหลัง และมีการทำงานแบบ stand alone
คำสั่งนี้ผมเคยใช้ตอนคัดลอก harddisk ที่เป็น linux 2 ตัว แต่ตัวลูกเมื่อนำไปเสียบเข้าเครื่องใหม่ พบว่า boot ด้วยตนเองไม่ได้ จึงต้องหาแผ่น boot จนเข้าไปใน harddisk ได้ จากนั้นก็สั่ง #lilo เพื่อให้การ boot ครั้งต่อไปสามารถทำงานตาม /etc/lilo.conf ได้ตามปกติ ส่วนตัวเลข 2.4.18-14 เป็นเลขรุ่นของ kernel ใน Redhat 8.0 สังเกตเลขนี้ได้ตอน boot เครื่อง
2.21 คำสั่ง traceroute
: แสดงเลข ip ของเครื่องที่ถูกเชื่อมต่อทั้งหมด ไปยังปลายทางที่ต้องการ
ตัวอย่างข้างล่างนี้แสดงให้เห็นว่า เมื่อในวิทยาลัยโยนกเปิดเว็บ www.thai.net จะต้องติดต่อผ่านเครื่องบริการ 8 ตัว ดังตัวอย่างล่างนี้ ถ้าเปิดเว็บไซต์ต่างประเทศ ก็จะมีจำนวนเครื่องในการติดต่อมากขึ้นไปด้วย เครื่องบริการในที่นี้ มักเป็นอุปกรณ์ที่เรียกว่า router และ router ทุกตัวจะมี ip และความสามารถเฉพาะตัวที่ต่างกันไป โดยหน้าที่หลักของ router ก็คือการกำหนดเส้นทางในการติดต่อนั่นเอง
2.22 คำสั่ง rpm
: ใช้ตรวจสอบ เพิ่ม หรือลบ package ของระบบ linux เกือบทั้งหมด
ในกรณีที่ท่านมีโปรแกรมตัวใหม่มา สามารถที่จะลบโปรแกรมเพิ่มโดยใช้คำสั่ง rpm ได้ หรือต้องการตรวจสอบว่า มี package บางตัว install อยู่หรือไม่ หรือจะยกเลิกโปรแกรมบางตัวออกจากระบบก็ทำได้ หรือจะแสดงรายชื่อ package ทั้งหมดในระบบก็ทำได้อีก รวมทั้งการตรวจ version ของ package แต่ละตัว
จากประสบการณ์ ไม่แน่ใจว่าเกิดจากอะไร เมื่อลง Redhat 7.2 แล้ว แต่ระบบไม่บริการ pop3 จึงได้ทำการ mount /dev/cdrom จากนั้นก็ทำการ install package pop เพิ่มเข้าไป ที่รู้เพราะลองใช้คำสั่ง telnet localhost 110 แล้ว error จึงต้องทำการเพิ่ม package pop เข้าไปใหม่ โดยใช้คำสั่ง rpm -i imap-4.7-5.i386.rpm ที่รู้เพราะได้ใช้ cd เข้าไปในห้อง /mnt/cdrom/RedHat/RPMS จึงพบแฟ้มมากมายที่สามารถ install เพิ่มได้
2.23 คำสั่ง SU
: ขอเปลี่ยนตนเองเป็น Super user หรือ root เพื่อใช้สิทธิสูงสุดในการบริหารระบบ ที่ผู้ใช้ปกติทำไม่ได้
การจะใช้ su ได้จะต้องเป็นผู้ใช้ตามปกติ เมื่อพิมพ์ su แล้วระบบจะถามรหัสผ่านของ user root หากพิมพ์รหัสผ่านถูกต้อง ท่านก็จะสามารถกระทำการใด ๆ ก็ได้ ในฐานะ root เพราะ root หรือ super user คือผู้ที่มีอำนาจสูงสุดในระบบ เช่น เพิ่มผู้ใช้ท่านใหม่ ลบผู้ใช้คนเดิม เป็นต้น (เพียงแต่พิมพ์คำว่า su ท่านก็สามารถเปลี่ยนสิทธิได้แล้ว ถ้าท่านมีรหัสผ่านของ su) เดิมผมใช้แค่คำว่า su ต่อมาคุณประเสริฐ แนะนำว่าต้องใช้ su - จึงจะสมบูรณ์ พอทดสอบก็พบว่า $PATH ที่ได้แตกต่างกันจริง
คำสั่ง sudo คือ execute a command as another user เมื่อเรียกด้วยภาษา php
shell_exec("sudo -u root -S /usr/sbin/useradd $user"); ใช้ความเป็นผู้ใช้ root เรียกใช้คำสั่ง useradd
shell_exec("echo $pass |sudo -u root -S /usr/bin/passwd $user --stdin"); ใช้กำหนดรหัสผ่าน หลังสร้างรหัสผู้ใช้แล้ว
2.24 คำสั่ง useradd
: เพิ่มผู้ใช้รายใหม่เข้าไปในระบบ

2.25 คำสั่ง userdel
: ลบผู้ใช้รายเดิม ออกจากระบบ

2.26 คำสั่ง usermod
: แก้ไขข้อมูลของผู้ใช้ได้

2.27 คำสั่ง crontab
: ตั้งเวลาสั่งงานคอมพิวเตอร์

2.28 คำสั่ง lspci
: ตรวจสอบอุปกรณ์ที่เชื่อมต่อภายในเครื่อง

2.29 คำสั่ง nmap
: ตรวจสอบเครือข่ายแบบกวาดทั้งในเครื่อง และ class C

3.1 เริ่มต้นกับ perl
: เมื่อเขียน perl สักโปรแกรมหนึ่ง แล้วใช้ ftp upload เข้าไปใน home directory ของท่าน ก็ถือว่าผ่านจุดแรกแล้ว
    วิธีการทำให้ perl ใช้งานได้
  1. Host name ที่ท่านจะใช้อ้างอิงในการ upload คือ www.isinthai.com
  2. ก่อน upload ต้องให้แน่ใจว่า โปรแกรมของท่าน มีนามสกุลเป็น .pl
  3. ก่อน upload ต้องให้แน่ใจว่ากำหนด mode การส่งแบบ ascii ไม่ใช่ bin เพราะถ้าเป็น binary จะใช้งานไม่ได้
  4. หลัง upload แล้วให้ใช้ ftp version ใหม่หน่อย ทำการ chmod เป็น 755 เช่น chmod 755 f.pl เป็นต้น
  5. ตอนเรียกใช้ให้เรียกทาง url ดังนี้ http://www.isinthai.com/uname/f.pl
  6. ถ้าเรียกใช้แบบ http://www.isinthai.com/uname/f.pl จะแสดง source code ออกมาตรง ๆ ไม่ผ่านการประมวลผล
  7. ควรทราบว่า Home directory อยู่ที่ /home/uname

3.2 Perl สำหรับสร้างแฟ้ม
: โปรแกรมเล็ก ๆที่ใช้ในการสร้างแฟ้ม ตัวอย่างนี้มี 6 ระเบียน 5 เขตข้อมูล

3.3 Perl สำหรับแสดงข้อมูลจากแฟ้ม
: โปรแกรมเล็ก ๆ ที่อ่านข้อมูลจากแฟ้มมาแสดง

3.4 Perl สำหรับเพิ่มระเบียนใหม่
: โปรแกรมเล็ก ๆ เพิ่มระเบียนใหม่อย่างง่าย ๆ ทีละระเบียน

3.5 Perl สำหรับลบระเบียน
: โปรแกรมเล็ก ๆ ที่ใช้ลบระเบียนตาม key field ที่ป้อนเข้าไป

3.6 Perl เรียกตัวเองมาแสดงผล
: โปรแกรมนี้เป็น ภาษา perl ซึ่งทดสอบให้ ประมวลผลได้ใน linux เครื่อง isinthai.com นี้
โปรแกรมนี้ชื่อ testf.pl ถูกเก็บไว้ในห้อง /home/burin/public_html และ link ไปยังห้อง /var/www/html/burin ซึ่งต้องกำหนดให้ chmod 700 เพื่อให้สั่งประมวลผล shell script ตัวนี้ได้ การเรียก Perl script ตัวนี้ ให้ทำตามข้างล่างนี้ >> http://www.isinthai.com/thaiall/testf.pl
3.7 การเปิด perl ให้เฉพาะ account
: กำหนดว่าห้องใดสามารถใช้ภาษา perl หรือ cgi ได้

4.1 PHP พิมพ์ข้อความอย่างง่าย
: แสดงการใช้ PHP พิมพ์ 1 ถึง 5 ซึ่งโครงสร้างภาษาคล้าย Perl และ C
    ข้อควรทราบ
  1. ไม่ต้อง chmod แฟ้ม php ก็ประมวลผลได้
  2. ไม่ต้องอยู่ใน cgi-bin โปรแกรม php ก็ทำงานได้

4.2 อ่านข้อมูลจาก Mysql มาแสดงผล
: การใช้ความสามารถของ Mysql ในการเลือกข้อมูลมาให้ PHP

4.3 เพิ่มระเบียนใหม่เข้า Mysql
: รับข้อมูลทีละรายการส่งเข้า Mysql

4.4 เพิ่มระเบียนใหม่เข้า Mysql หลายระเบียนผ่าน form
: รับข้อมูลได้หลายรายการพร้อม ๆ กันส่งเข้า Mysql

4.21 บริการส่ง mail ด้วย php
: เพื่อให้ web server ที่เปิดบริการ SMTP (/usr/sbin/sendmail) ถูกเรียกใช้โดย php สำหรับส่ง mail
บริการนี้เปิดให้ทดสอบว่าส่งถึงท่านไหม แต่อาจใช้ไม่ได้ทุกเครือข่าย เพราะกำหนด RELAY ให้เฉพาะบางเครือข่ายเท่านั้น แต่ถ้า copy source code ไปใช้ก็น่าจะใช้ได้เลย โดยโปรแกรมตัวอย่างได้มีการตรวจสอบอะไรนิดหน่อย ซึ่งอาจนำไปประยุกต์ใช้งานสำหรับริการต่าง ๆ ได้ง่ายขึ้น เช่น contact us หรือ e-commerce เป็นต้น โปรแกรมนี้ได้ทดสอบแล้วที่ http://www.isinthai.com/~php/mail.htm และ http://lampang.thcity.com/mail.htm
ข้อควรทราบ : โปรแกรมนี้ไม่ได้ตรวจสอบอะไรมากมาย โดยแบ่งโปรแกรมออกเป็น 2 ส่วน เพื่อให้ง่ายสำหรับผมในการอธิบาย ว่า ส่วนที่ 1 ใช้รับค่าจากผู้ใช้ ส่วนที่ 2 ใช้ส่ง e-mail โดยตรง แต่การจะส่ง mail ได้ เครื่องที่ท่านนำโปรแกรมทั้ง 2 นี้ไปวางต้องมีคุณสมบัติ 2 ประการ 1. ต้องเป็น web server ที่บริการ php 2. ต้องให้บริการ smtp โดยเปิด relay ให้กับผู้ใช้เข้ามาใช้ได้ อีก code หนึ่ง /var/www/html/isinthai/sndform.php ที่ใช้งานอยู่จริง
4.22 ดูข้อมูลในแฟ้มต่าง ๆ ด้วยโปรแกรม php
: โปรแกรมนี้ช่วยให้ดูแฟ้มต่าง ๆ ในระบบโดยไม่ต้องเข้า Linux ไม่ควรใช้ถ้าผู้ให้บริการไม่ยอมให้ใช้ ลองถามเขาก่อนใช้นะครับ

4.23 ใช้ php อ่านข้อมูลจาก /var/log/maillog
: เพื่อรายงานสถิติการใช้ e-mail ของบุคลากร
วันหนึ่งผมอ่านข้อมูลการเข้าใช้ e-mail จาก /var/www/html/mail/database/username_yn1.yonok.ac.th/inbox โดยเช็คจากเวลา update filectime() แต่พบว่าข้อมูลที่ได้คือ ไม่รวมไปถึง user ที่ใช้ outlook อ่าน e-mail ผ่าน pop3 จึงต้องไปอ่านข้อมูลการเข้าใช้ e-mail จากแฟ้ม /var/log/maillog ทำให้รายงายได้ละเอียดขึ้น สามารถดูผลของโปรแกรมนี้ที่ http://www.isinthai.com/mail/database/index.php
อันที่จริง โปรแกรมนี้จะอยู่ที่ไหนก็ได้ แต่ผมเก็บไว้ที่นี่ เพราะห้องนี้ยังไม่เก็บอะไรเกี่ยงกับ mail ที่สำคัญ แต่สิ่งที่ต้องทำคือการ chmod 644 maillog แต่เดิมคุณสมบัติของแฟ้มเป็น 600 จะใช้ php ของ apache ไปอ่านมาไม่ได้
4.81 Upload ด้วย php
: รับชื่อแฟ้มแล้วส่งเข้าไปในห้องที่ต้องการ โดยตรวจรหัสผ่านที่เก็บไว้ในห้องนั้น

4.82 เพิ่มสมาชิกใหม่ผ่าน php ใน Linux
: เพิ่มสมาชิกใหม่ด้วย shell_exec

5.1 การติดตั้ง Mysql
: Mysql คือส่งบริการฐานข้อมูล เพื่อให้ใช้ภาษาต่าง ๆ เข้ามาดึงข้อมูลไปได้เช่น PHP, VB เป็นต้น
โปรแกรมจาก www.mysql.com mysql-3.22.32.tar.gz ขนาด 4,295,387
เว็บที่เกี่ยวข้อง www.apache.org, www.php3.net, www.mysql.com
ตรวจสอบ process mysql run อยู่หรือไม่ด้วยคำสั่ง ps aux|grep mysql
วิธี set password ของ root /usr/local/bin/mysqladmin -u root password helloisinthai คำว่า helloisinthai เป็นคำที่ท่านเปลี่ยนได้ ครั้งต่อไปที่จะเข้า mysql ในฐานะ root ก็จะต้องกรอก password
5.2 วิธีใช้งาน Mysql เบื้องต้น
: เพื่อให้เห็นการทำงานอย่างง่าย ๆ ของ Mysql ก่อนนำไปใช้ในภาษาอื่น
ตัวอย่างข้างล่างนี้จะแสดงการสร้างตาราง แสดงข้อมูล เพิ่ม ลบ และแก้ไข
5.90 การเพิ่มผู้ใช้ใน Mysql
: การเพิ่มผู้ใช้ จะทำให้ Databases ที่สร้างขึ้นมีความเป็นส่วนตัว
ในอันที่จริง ถ้าท่านเป็นเจ้าของระบบ และมี user เดียว หรือกำหนดสิทธิให้ทุกคนสามารถเข้าใช้ mysql ได้หมด ก็ไม่จำเป็นต้อง สร้าง user ใน mysql เพราะท่านสามารถสร้าง table ใน test database และใช้งานได้เลย แต่ถ้าสร้าง user ขึ้นมา ทุกคนที่จะใช้ database จะต้องมี user และ password ที่ถูกต้อง แต่ถ้าสร้างใน test ใคร ๆ ที่เข้าระบบได้ก็จะเข้าส่วนของ mysql ได้ .. ก็พิจารณาตามกรณีไป สำหรับใน server นี้จะให้ทุกคนเข้าใช้ mysql ได้เต็มที่ .. และขอให้เป็นไปตามความเหมาะสม
หากไม่กำหนด user ก็สามารถใช้งานได้บางประการ แต่อาจไม่ทั้งหมด เมื่อกำหนด user ได้แล้ว ก็สามารถใช้งานตามขอบเขตของ database ที่กำหนดได้ แต่เรื่องที่สำคัญอีกประการหนึ่งก็คือ การกำหนดรหัสผ่านให้กับ root มิเช่นนั้น อาจมีคนเข้าไปกำหนด ซึ่งไม่เป็นการดีแน่ ซึ่งคำสั่งสำหรับกำหนดรหัสผ่านของ root ของ mysql คือ /usr/bin/mysqladmin -u root password helloisinthai ควรทำเมื่อติดตั้ง Mysql เสร็จสิ้นตามขั้นตอน 5.1
These GRANT statements set up three new users:
monty
A full superuser who can connect to the server from anywhere, but who must use a password 'some_pass' to do so. Note that we must issue GRANT statements for both monty@localhost and monty@"%". If we don't add the entry with localhost, the anonymous user entry for localhost that is created by mysql_install_db will take precedence when we connect from the local host, because it has a more specific Host field value and thus comes earlier in the user table sort order.
admin
A user who can connect from localhost without a password and who is granted the reload and process administrative privileges. This allows the user to execute the mysqladmin reload, mysqladmin refresh, and mysqladmin flush-* commands, as well as mysqladmin processlist . No database-related privileges are granted. (They can be granted later by issuing additional GRANT statements.)
dummy
A user who can connect without a password, but only from the local host. The global privileges are all set to 'N' -- the USAGE privilege type allows you to create a user with no privileges. It is assumed that you will grant database-specific privileges later.
6.1 slowaris.labs.pulltheplug.com
: Server ที่แข็ง และมี user:guest password:guest ให้เข้าไปลอง telnet ได้
ระบบนี้เป็น Solaris 5.8 ของ Sun ลองเข้าไปแล้วใช้อะไรได้หลายอย่าง ผมว่า ว่าง ๆ hacker ลองเข้าไปดูก็ได้นะครับ เป็น server ที่แนะนำโดย Mr.RobiUz Miora (robiuz@yahoo.com)
จดหมายด้านล่างนี้เขาแนะนำผมหลายอย่างเช่น ให้ใช้ OpenBSD ดีกว่า .. อ่านแล้วก็ได้ข้อคิดหลายอย่าง
6.2 academic.cmri.ac.th
: Server ที่แข็งมากอีกตัว เป็นของคนไทย ได้รับการแนะนำจาก apples@chek.com
ที่นี่เขียนบทความการลง Server ไว้น่าอ่าน และละเอียดดีครับ และคุณ apples@chek.com ยังให้คำแนะนำผมมากมาย เช่นเรื่องของ restricted shell ที่หาอ่านที่ไหนก็ไม่รู้เรื่อง มาได้ code และวิธีของท่านนี่หละครับ จึงสำเร็จเรื่อง restrict ได้ด้วยดี
ผมรู้จักคุณ apples@chek.com เพราะเขาเป็นผู้คอยให้คำแนะนำ และช่วยเหลือ ผู้คนใน wwwboard ของหลายที่ เช่น linux.thai.net เป็นต้น
http://academic.cmri.ac.th/downloads.php/howto/
http://academic.cmri.ac.th/downloads.php/howto/Apache%20Module.txt
ภาพนี้จากจอที่ telnet login ของ academic.cmri.ac.th (ผมเองก็ไม่มี account)

       Welcome to Academic Services Machine
                     ,
                  ,  ;:._.-`''.
                ;.;'.;`      _ `.
                 ',;`       ( \ ,`-.
              `:.`,         (_/ ;\  `-.
               ';:              / `.   `-._
             `;.;'              `-,/ .     `-.
             ';;'              _    `^`       `.
            ';;            ,'-' `--._          ;
   ':      `;;        ,;     `.    ':`,,.__,,_ /
    `;`:;`;:`       ,;  '.    ;,      ';';':';;`
                 .,; '    '-._ `':.;
               .:; `          '._ `';;,
             ;:` `    :'`'       ',__.)
           `;:;:.,...;'`'
         ';. '`'::'`''  .'`'
       ,'   `';;:,..::;`'`'
   , .;`      `'::''`
   ,`;`.


academic login:

6.71 จดหมายแจ้งปรับปรุงระบบ ของ se-ed.net
: มีรายละเอียดหลายอย่างเขียนได้ดีมาก น่าอ่านเป็นกรณีศึกษา

6.72 thcity.com (เปลี่ยน Linux เป็น Windows)
: Free hosting ที่ถือได้ว่าเร็วที่สุดแห่งหนึ่งของเมืองไทย ผมเองก็ใช้บริการ เพราะประทับใจในความเร็ว และ datatransfer ปีละ 900 บาท

7.1 วิธีใช้โปรแกรม FTP ส่งแฟ้มเข้าเครื่อง isinthai.com
: file transfer protocal สำหรับนำแฟ้มใน Pc ส่งเข้าเครื่อง server isinthai.com ซึ่ง server ตั้งอยู่ที่วิทยาลัยโยนก เมื่อส่งเข้าแล้ว จะทำให้คนทั่วโลกสามารถเปิดข้อมูลที่ท่านส่งเข้ามาได้ แต่ถ้าไม่ส่ง ท่านจะเป็นผู้เดียวที่เห็นข้อมูลของท่าน และวิธีที่ผมใช้เป็นวิธีพื้นฐานที่ windows ทุกเครื่องทำได้ แต่ถ้าเป็นมืออาชีพ เขาจะไปใช้ ws_ftp หรือ cute_ftp เพราะทำงานแบบ graphic ซึ่งผมไม่แนะนำสำหรับมือสมัครเล่น เพราะจะต้องไป download โปรแกรมมายุ่งยาก วิธีที่ผมจะเสนอ ปกติใช้ได้กับทุกเครื่อง ท่านสามารถพิมพ์ตามนี้ได้เลย
การใช้คำสั่ง ftp -i www.hypermart.net จะทำให้ใช้ mput หรือ mget โดยไม่ขึ้น prompt ถามแต่ละแฟ้ม ทำให้ upload หรือ download รวดเดียวได้แฟ้มทั้งหมด
7.2 การติดตั้งโปรแกรม .rpm ใน Redhat เพิ่มเติม
: เมื่อมีโปรแกรมใหม่ ๆ ที่ต้องการติดตั้งเพิ่ม และเป็นโปรแกรมสกุล rpm

8.1 การกำหนดค่าในแฟ้มต่าง ๆ
: เนื่องจาก linux ทำงานแบบ text mode ถึงจะมี graphic ช่วย แต่พื้นฐานก็ยังเป็น text mode
ท่านสามารถใช้โปรแกรม vi หรือ pico ในการแก้ไขตามที่ต้องการได้ ซึ่งในแต่ละแฟ้มจะมีการกำหนดไม่เหมือนกัน และรูปแบบแต่ละแฟ้มก็ต่างกันด้วย สำหรับทีมงานของเราไม่ใช้ผู้ชำนาญ ในหัวข้อนี้จึงนำข้อมูลที่ทดสอบ แล้วใช้งานได้ แต่อาจผิดในทาง Theory ซึ่งอาจก่อผลที่ผิดพลาดในอีกมุมมองหนึ่ง ที่ใด ทราบว่าเรากำหนดอะไรผิดไป ขอได้ชี้แนะด้วย
8.2 แฟ้มต่าง ๆ ที่ควรรู้จัก
: แฟ้มต่าง ๆ ในระบบมีมากมาย ขอนำมา list ให้เฉพาะที่ทีมงานรู้จัก ท่านสามารถเรียนรู้ได้มากกว่านี้อีกมาก .. ขอเอาใจช่วยครับ

8.98 การติดตั้ง Linux Redhat
: การติดตั้ง Linux Redhat 2 วิธี คือติดตั้งทั้ง Windows และ Linux หรือติดตั้ง Linux อย่างเดียว เป็นกรณีศึกษาจาก Redhat Linux 7.1
เรียบเรียงโดย :: สุวิทย์ สมสุภาพรุ่งยศ(suwit@yonok.ac.th) ประเสริฐ ประสารยา(prasert@cat.net.th) พงศ์สนิท เดชะบุญ(namagnitman@hotmail.com) สุพจน์ ทูลมาก(supot.toon@chaiyo.com)
การติดตั้ง Redhat Linux สามารถติดตั้งได้ 2 กรณี
8.99 การติดตั้ง Linux Redhat เมื่อแผ่น 2 ใช้ไม่ได้
: นี่คือวิธีหนีปัญหา เพราะจะแก้ปัญหาก็คือหาแผ่น CD ที่ใช้ได้มาให้ได้

9.1 กำหนด IP address และ host name
: เพื่อกำหนด ip ให้กับ eth0 (Ethernet card เบอร์แรกคือเบอร์ 0)

9.5 โปรแกรมเพิ่มผู้ใช้ /usr/bin/_crt
: โปรแกรมนี้เป็น shell script สำหรับเพิ่มผู้ใช้อย่างง่าย สร้างด้วย pico และกำหนดให้ประมวลผลด้วย chmod
โปรแกรมนี้ชื่อ _crt ถูกเก็บไว้ในห้อง /usr/bin โดยกำหนดให้ chmod 700 เพื่อให้สั่งประมวลผล shell script ตัวนี้ได้ และการจะใช้โปรแกรมนี้ได้จะต้องกำหนด PATH ไว้ที่ห้อง /usr/bin และ /usr/sbin จึงต้องกำหนด PATH เพิ่มเติม
จากเดิม PATH=$PATH:$HOME/bin (ถ้า admin ไม่แก้ไขให้ก่อนนะครับ)
เป็นใหม่ PATH=$PATH:$HOME/bin:/sbin:/usr/bin:/usr/sbin
ตรวจสอบตัวแปร PATH ด้วยคำสั่ง echo $PATH
ปัญหานี้จะไม่เกิดขึ้น ถ้ากำหนดไว้ในแฟ้ม .bash_profile ในห้อง /etc/skel เพราะเป็นห้องที่เก็บค่าเริ่มต้น
9.6 โปรแกรมลบผู้ใช้ /usr/bin/_del
: โปรแกรมนี้เป็น shell script สำหรับลบผู้ใช้อย่างง่าย สร้างด้วย pico และกำหนดให้ประมวลผลด้วย chmod
รายละเอียดอ้างอิงจากการเพิ่มผู้ใช้ได้เลย
โปรแกรมนี้ชื่อ _del ถูกเก็บไว้ในห้อง /usr/bin โดยกำหนดให้ chmod 700 เพื่อให้สั่งประมวลผล shell script ตัวนี้ได้
9.9 แก้ไข aliases ของ user account
: ช่วยกระจาย e-mail ของผู้ใช้ 1 คนไปหลายคน เช่น มีคนส่ง mail ถึง webmaster จะกระจายไปให้สมาชิกได้หลาย ๆ คน
สร้าง account ชื่อ webmaster แล้วแก้ไข /etc/aliases ด้วย pico สำหรับส่ง mail forward ไปยังบุคคลที่เป็น webmaster@isinthai.com หลังแก้ไขแล้วให้ใช้คำสั่ง newaliases เพื่อให้ผลการ update มีผล
หลังใช้ newaliases เมื่อมีคนส่ง mail ถึง webmaster@isinthai.com จะ forward mail ไปให้บุคคล 3 คน พร้อม ๆ กัน ถ้าหากเพิ่มก็เข้าไปแก้ไขแฟ้ม /etc/aliases ใหม่ ก็สามารถกระทำได้
9.10 เพิ่ม IP ใน server ตัวเดียวด้วย IFCONFIG
: เพื่อให้ server 1 ตัวมี ip ได้หลาย ๆ ตัว
เดิมที ไม่ทราบความสามารถนี้ และไม่เคยคิดจะใช้ แต่เมื่อวันที่ 11 เมษายน 2544 เครื่อง Web server และ Radius server เครื่องเดียวกัน เกิดหยุดทำงานในระดับ Media error แถมเป็นเครื่อง sun ที่ผมไม่มี software สำหรับลงใหม่ จึงต้องใช้เครื่อง Redhat 7.2 อีกเครื่องหนึ่งมากู้สถานการณ์ โดยสมมติว่าเครื่องที่ล่มไป มี ip เป็น 202.29.78.2 ผมเพียงกำหนด ip ในเครื่อง Redhat ให้เพิ่ม ip สำหรับเครื่องขึ้นอีก 1 หมายเลข คำสั่งข้างล่างนี้จะทำให้มีผลทันที แต่เมื่อเปิดเครื่องใหม่จะไม่คงอยู่ จึงต้องแก้แฟ้ม /etc/rc.d/rc.local หรือ /etc/rc.d/rc.localโดยเพิ่มบรรทัดข้างล่างนี้เข้าไป ก็เป็นอันเรียบร้อย
สำหรับ Web server ผมต้อง copy ข้อมูลทั้งหมดมาใส่ในเครื่องใหม่จึงจะใช้งานได้ ส่ง radius server ก็ต้อง copy config มาทับ ซึ่งมี 2 แฟ้มคือ users และ clients เพียงเท่านี้ ตัว Modem ก็สามารถติดต่อกับ Radius server ตัวใหม่ได้อย่างไม่มีปัญหา
9.11 เพิ่ม Virtual hosts
: เพื่อให้ server 1 ตัว มีหลายเว็บไซต์
    การทำ Virtual hosts มี 2 วิธี
  1. Name-based virtual hosts (ผมเลือกใช้ตัวนี้ เพราะในเครือข่ายมีจำนวน ip จำกัด)
  2. IP-based virtual hosts (แบบนี้ในสำนักงานแห่งหนึ่งใช้ เพราะมี ip ใช้ไม่จำกัด)

1. Name-based virtual hosts 2. IP-based virtual hosts
9.12 ตัวอย่าง router configuration และการ block port
: config ของ router ทำโดยผู้ดูแลเท่านั้น และมักทำไม่บ่อย บางคน config ครั้งเดียวจบครับ

9.50 ความผิดพลาด
: ถ้าไม่ทำอะไร ก็คงไม่ผิดพลาด ผมทำอะไรหลายอย่างจนพบว่า ความผิดพลาดนั้นเป็นเรื่องปกติ ซึ่งสามารถนำมาเล่าสู่กันฟังได้ดังนี้
  1. linux vga=791 เป็นวิธีเข้า linux แบบ graphic mode เพราะเครื่องผมเป็น notebook ECS 29,900 บาท เมื่อ Boot ด้วย CD ของ Redhat9.0 หน้าจอจะเป็นสีฟ้า ไม่ว่าจะเข้าแบบใด และการเข้าไม่ว่าแบบใด เมื่อเติม vga=791 ก็จะทำให้เข้าสู่ Redhat ได้ไม่มีปัญหาด้านการแสดงผล
  2. imap-2000 เป็นโปรแกรมสำหรับ upgrade imap ตัวเดิม ผมไม่สามารถให้บริการ imap ผ่าน pop จึงต้องใช้ตัวเก่า แต่ก็ไม่รู้วิธีลบออก ผมหาวิธีลบตั้งนาน แต่พอใช้ rpm -e imap โดยไม่ต้องตามด้วย version ก็ลบได้ แล้วลงตัวเก่า ปรากฏว่าให้บริการ ได้ตามปกติ แต่ต้องไม่ปิด hosts.deny นะครับ ผมพยายามเลือกเปิดแล้วไม่สำเร็จ จึงต้องเปิดหมด .. ปัญหาที่ค้างอยู่คือต้องเปิดหมด ไม่รู้จะเลือกเปิดตัวไหน จึงจะให้บริการ pop3 ได้
  3. การคัดลอก passwd, shadow, group จากเครื่องหนึ่งมาใส่อีกเครื่องหนึ่ง พร้อม copy mail และ folder ทั้งหมดมา ปัญหาที่ผมมองข้ามไปคือ account บาง account ในเครื่องเดิมมี uid แบบหนึ่ง หากนำ passwd มาทับ หากไม่ mathch กันกับ user เดิมจะเกิดปัญหา ต้องดูว่ามี account เดิมอะไรที่เคย install โปรแกรม เข้าไป ก็ต้องแก้ไขให้ตรงกันก่อน ในเครื่องเก่า แล้วค่อยย้ายมา
  4. การ upgrade apache ไม่แน่ใจว่าทำไม โปรแกรมจึงไปเรียก /usr/sbin/httpd(เก่า) แทน /home/httpd/bin/httpd(ใหม่) ซึ่งตอนลงครั้งแรกไม่มีปัญหา แต่พอนำโปรแกรม upgrade apache หลังจากลง version ของ apache ใหม่ ก็เกิดปัญหา ผมแก้ไขด้วยการ copy โปรแกรมใหม่ มาทับโปรแกรมเดิม ก็แก้ปัญหาที่ปลายเหตุ ได้ผล
  5. จุดบกพร่องของระบบคือ software มีรอยรั่ว ต้อง upgrade software โปรแกรมมากมายที่ นำมา upgrade อาจใช้ไม่ได้ เพราะมีเงื่อนไข ในการ upgrade โปรแกรมแต่ละตัว โปรแกรมหนึ่งที่ทำให้ผมเสียเวลาไป 2 วันคือ kernel ซึ่งเป็นโปรแกรมสำคัญ มี 2 (i386 และ i686) ตัวที่ผมได้ทดสอบ upgrade แต่ทั้ง 2 ตัวทำให้เครื่องไม่รู้จัก eth0 ผมอาจแก้ปัญหาไม่ตรงจุดก็ได้ ใช้ route หรือ reboot ก็แล้ว ไม่ work สรุปว่า upgrade kernel ด้วยโปรแกรมจากเว็บของ redhat ไม่ได้ครับ แต่โปรแกรมผมอื่น ก็พยายาม upgrade เข้าไป .. น่าจะป้องกันปัญหา hacker ได้ระดับหนึ่ง
  6. Named อยู่ ๆ ก็หยุดทำงานไปเฉย ๆ ผมต้อง stop และ start ใหม่ ตอนนี้ไปได้ bind มา upgrade ไม่แน่ใจว่าสำเร็จหรือไม่ ก็ต้องรอดูกันต่อไป
  7. เคยสั่ง 700 /tmp ซึ่งไม่เกิดปัญหา แต่มาพบว่า การใช้ห้ามใช้ห้อง /tmp จะทำให้ pop ใช้งานไม่ได้ และใช้ pine เปิด mail box ก็จะฟ้องว่าเป็น read only ผมจึงไม่สามารถปิด
  8. ลง apache ใหม่ ใช้เวลาตั้งนานหาวิธีแก้ไข สุดท้ายก็ไม่ได้ เพราะจำไม่ได้ว่าแก้ไขอะไร /etc/httpd/conf/httpd.conf ก็ไม่ได้ backup ไว้แต่แรก สุดท้ายต้อง upgrade ใหม่ด้วยคำสั่ง rpm -U --fource apache-1.3.14..... แต่ก็ไม่ได้ต้องเข้าไปลบแฟ้ม httpd.conf ออกก่อน จึงจะทำการสร้างใหม่ได้
  9. เปิดเว็บโดยใช้ default index.html แล้วมีปัญหา ปัญหานี้แก้ได้ แต่ไม่แน่ใจว่าแก้ถูกวิธีหรือไม่ เพราะเดิม ไม่ว่าส่ง หรือรับ จาก telnet ต้องอ้างถึง host name แต่ผมพอแก้แฟ้ม hosts และ sendmail.cf เพื่อทำให้เป็น default แบบไม่มี host name กลับไปมีผลต่อระบบ web ที่เป็น httpd ถ้าไม่แก้ host จะเข้าเว็บเช่น http://www.yonok.ac.th/mba ได้ พอแก้ hosts โดยนำชื่อออกเช่น 202.29.78.12 yonok.ac.th star จากเดิม 202.29.78.12 star.yonok.ac.th star เป็นต้น ดังนั้นเพื่อให้ได้ทั้งระบบตัด host name และ default ของทุก directory เป็น index.html จึงต้องแยก web server กับ mail server ออกจากกัน พบว่าปัญหามาจากการตัด host เวลาเข้าเว็บจะเหลือเพียง http://yonok.ac.th/mba ทั้งที่พิมพ์ว่า http://www.yonok.ac.th/mba ซึ่ง error message บอกว่า page not found

9.51 ประสบการณ์การถูกโจมตี (Hacked Recording)
: ผลของการถูก hack มีลักษณะตามอาการที่ hacker ต้องการ ไม่ซ้ำแบบกัน

9.52 ปรับระบบให้แข็งแรง
: ได้รับคำแนะนำดี ๆ จากผู้รู้ จึงนำมาเขียนไว้ที่นี่
apples@chek.com ซึ่งดูแลระบบของ http://academic.cmri.ac.th แนะนำมาหลายเรื่อง เช่นน่าจะใช้ slackware หรือ Mandrake เพราะระบบแข็งมาก สำหรับการป้องกันในเบื้องต้นมีดังนี้ water_overflow@hackermail.com ซึ่ง hack ระบบของเรา และแนะนำทีมงานมาดังนี้ webmaster@isinthai.com ส่วนนี้ผมไปอ่านมาจาก thailinux.com
9.53 การทำ restricted shell
: การจำกัดผู้ใช้ให้ใช้งานในเมนูที่เตรียมไว้
apples@chek.com ซึ่งดูแลระบบของ http://academic.cmri.ac.th แนะนำเรื่องนี้จนผมทำได้ โดยเฉาะ code ของ menu copy มาทั้งแท่งเลยครับ เมื่อนำมาให้บริการพร้อมกับ ssh (Secure Shell) จะเป็นการให้บริการที่สมบูรณ์ และปลอดภัยมาก (ในปัจจุบัน)
    วิธีการทำ restricted shell
  1. สร้างห้อง /rbin (ผมสร้างเพื่อแยกออกมาจากระบบเดิม .. อาจไม่จำเป็น)
  2. ln -s /usr/bin/bash /rbin/rbash (คำสั่งนี้ผมยังไม่เห็นประโยชน์แต่ก็ทำไว้ก่อน)
  3. สร้างแฟ้ม menu ด้วย pico ตาม code ด้านล่างนี้เป็น shell script ธรรมดา
  4. chmod 755 menu เพื่อให้ shell script ประมวลผลได้
  5. แก้แฟ้ม /etc/shells ด้วย pico โดยเพิ่ม /rbin/menu เข้าไปต่อบรรทัดสุดท้าย
  6. แก้ shell ทุกคนในแฟ้ม /etc/passwd เป็น /rbin/menu หรือให้ usermod -s /rbin/menu [username]
  7. เพียงเท่านี้ user ที่เปิดเข้ามาจะต้องเข้ามาที่เมนู /rbin/menu ใช้บริการที่เตรียมไว้
  8. ถ้าไม่ใช้ script สร้าง user จะต้องแก้แฟ้ม /etc/default/useradd ให้เป็น shell /rbin/menu
  9. ถ้าใช้ script _crt จะต้องแก้บรรทัด useradd โดยเพิ่ม -s /rbin/menu หรือจะเพิ่มคำสั่ง usermod ไปอีกบรรทัดก็ได้

9.54 ติดตั้ง TCPWrapper เพื่อตรวจสอบ IP เครื่องต้นทาง
: โปรแกรมเล็ก ๆ ที่ใช้ปฏิเสธ IP จากบริการของ xinetd
เรื่องนี้อ่านมาจาก
- http://www.thailinux.com/1999/07/11/topic2.html
- http://www.redhat.com/docs/manuals/linux/RHL-8.0-Manual/ref-guide/s1-tcpwrappers-accesscontrol.html
หมายเหตุ :
บริการนี้มีปัญหานิดหน่อย เพราะใน RH7.2 สามารถให้บริการได้ตามปกติตามด้านล่าง แต่ใน RH8.0 ไม่สามารถปิดบริการหลายอย่างได้ อาจเป็นเพราะมีโปรแกรม xinetd เปิดบริการเหล่านี้อยู่ ผู้ดูแลอาจดูได้ว่ามีบริการอะไรเปิดอยู่บ้างด้วยคำสั่ง #xinetd -d
โปรแกรม tcpwrapper จะมีมากับเครื่องอยู่แล้ว เพียงแต่กำหนด config ในการป้องกัน ระบบป้องกันก็จะทำงานทันที หากต้องการทราบว่าจะปิดบริการอะไรได้บ้าง สามารถเข้าไปดูที่ห้อง /etc/xinetd.d/ ส่วนเลข port ที่เปิดบริการดูได้จาก /etc/services โดยทดสอบว่า #telnet localhost 80 แต่ถ้า port นั้นปิดอยู่ก็จะไม่สามารถติดต่อได้
หากสงสัยว่า tcpwrapper ทำงานหรือไม่ ให้กำหนดใน /etc/hosts.deny แล้วพิมพ์คำว่า all:all เพื่อปิดทั้งหมด แล้วทดสอบติดต่อเข้าไป เมื่อ save แฟ้ม hosts.deny ระบบของ tcpwrapper ก็จะทำงานทันที .. เคยทดสอบกับ ssh ที่เดิมติดต่อได้ เมื่อสั่ง all:all จะใช้บริการ ssh ไม่ได้ หรือตรวจสอบ log ได้ที่ /var/log/secure
เพื่อไม่ให้ใคร telnet
9.55 Network Security
: http://www.redhat.com/support/manuals/RHL-7.1-Manual/ref-guide/s1-security-network.html

9.56 Procmail เพื่อกรอง spam mail และ junk mail
: ใช้ keyword หยุด e-mail โดยตรวจสอบจาก from และ subject

9.58 โปรแกรมภาษา c เพื่อสร้าง crypt ให้ shadow
: เนื่องจากผมต้องการสร้าง user แบบ online จึงหาวิธีสร้าง useradd ผ่านเว็บ
วันที่ 8 มิถุนายน 2544 ได้คุยกับอ.dav จนท่านช่วยผมเขียนโปรแกรมภาษา c ตัวหนึ่ง ซึ่งใช้เข้ารหัส ผลการเข้ารหัส สามารถนำไปใช้ในคำสั่ง useradd เช่น useradd -p xdfiWsoOsdg0M tom จะทำให้สร้าง user ใหม่ชื่อ tom ได้โดยรหัสจะต้องได้มาจากโปรแกรมที่อ.dav เขียนไว้ด้านล่างนี้

9.59 ลีนุกซ์บนวินโดวส์ ด้วย CYGWIN (Unix Simulator)
cygwin.com : ชุดโปรแกรมสร้างสภาพแวดล้อมลินุกซ์บนวินโดวส์ ประกอบด้วย cygwin1.dll เพื่อจำลองสภาพแวดล้อมให้เหมือนลีนุกซ์ และรวมเรื่องมือที่จำเป็นให้เหมือนบนลีนุกซ์ โปรแกรมนี้จำเป็นต่อการ compile โปรแกรมมากมาย ที่ถูกพัฒนาให้ compile บน linux ทำให้นักพัฒนาสร้างโปรแกรมที่ถูกแปลบน linux แต่นำมาแปลบน windows ได้ในภายหลัง เครื่องมือที่มีมาให้ เช่น ash coreutils cvs diffutils findutils gawk grep libiconv make patchutils perl sed unzip zip
หลังประมวลผล setup.exe ผมเลือก download จนสำเร็จ แต่ที่สำคัญต้องเลือกลง gcc, nasm, binutils, libtool, zip, unzip, make, flex, bison, cvs, cmake, autoconf, automake, ed เพิ่ม มิเช่นนั้นไม่มานะครับ หลัง download จะสร้างห้อง c:\cygwin อัตโนมัติ แล้วประมวลผล setup.exe อีกรอบเพื่อติดตั้งจาก Local Directory หลังติดตั้งสำเร็จจะเข้า Linux โดยจำลองห้อง c:\cygwin เป็น root directory สำหรับคำสั่งที่ใช้งานได้อยู่ในห้อง bin
- Download : setup.exe (cygwin.com 297 KB)
- Download : setup.exe (mirror.in.th)
- Download : setup.exe (kmitl.ac.th)
- Download : setup.exe (opensce.org)
- Download : .iso (uwinnipeg.ca 702MB)
- Download : .iso (berkeley.edu 1355MB)
- Download : .iso (linuxcenter.ru 3000MB)
9.61 ลืมรหัสผ่านของ root
: วิธีนี้ใช้ได้ใน Redhat version 6.2 แน่นอน แต่รุ่นอื่นก็มีวิธีต่างกันไปบ้างเล็กน้อย
ผมทราบวิธีนี้เพราะเข้าไปดูที่ redhat.com ในส่วนของ FAQ และที่ต้องเข้าไปดูก็เพราะมี hacker จาก 193.231.178.98 เข้ามาด้วย operator account แล้วเปลี่ยนรหัสผ่านของ root ไป ทำให้ผมไม่สามารถเข้าไปสร้างผู้ใช้ใหม่ได้ ถามหลาย ๆ ท่านก็บอกให้ใช้แผ่นบูต แบบ linux rescue ผมก็เข้าไป จะ mount จะอะไรก็ไม่ได้ อาจเป็นเพราะยังไม่ชำนาญ แต่วิธีการเรียกรหัสผ่านของ root คืนในแบบที่ผมได้มานี้ ง่ายกว่าวิธีใด ๆ แน่นอน แต่ต้องทำที่ Console
    ขั้นตอนสำหรับ LILO
  1. เมื่อ Restart เครื่อง ก่อนเข้าระบบ ให้กด Alt-X ขณะที่อยู่ที่ LILO prompt แล้วพิมพ์ว่า linux single
  2. เมื่อเข้าไปจะได้สถานะเป็น root ทันที ก็เพียงแต่ใช้คำสั่ง passwd root แล้ว reboot ก็เรียบร้อยแล้ว
    ขั้นตอนสำหรับ GRUB
  1. เมื่อ Restart เครื่อง ก่อนเข้าระบบขณะที่อยู่ที่ GRUB prompt ให้กด e
  2. พบ Fedora กด e แล้วพบ Kernel กด e แล้วพิมพ์ single ต่อท้ายคำสั่งที่ใช้ boot ระบบ
  3. ออกมาแล้วกด b เพื่อ boot ตามคำสั่งที่แก้ไขนั้น ก็จะเข้า #
  4. เมื่อเข้าไปจะได้สถานะเป็น root ทันที ก็เพียงแต่ใช้คำสั่ง passwd root เพื่อเปลี่ยนรหัสผ่าน แล้ว reboot ก็เรียบร้อยแล้ว
    สำหรับเครื่อง Sun
  1. ซึ่งเป็น Unix server ที่ดี จะใช้การ Reboot และกดปุ่ม stop a แล้วใช้คำสั่ง boot -s

9.62 แก้ไข httpd.conf เพื่อแก้ปัญหาของ Web Server
: แฟ้มนี้คุมบริการต่าง ๆ ซึ่งสำคัญต่อต้องการ web server ในองค์กร
    แก้ไขแฟ้ม /etc/httpd/conf/httpd.conf :
  1. ปัญหาภาษาไทย ใน RH8.0 เมื่อติดตั้งบริการเว็บเสร็จแล้ว ปัญหาคือ ผู้เปิดเว็บใดก็ตามในระบบ ทุกครั้งจะต้องไปแก้ไข encoding แล้วเลือก Thai(Windows) เพื่อแสดงภาษาไทย จึงต้องแก้ไขให้กำหนด default ที่ถูกต้อง ตามที่กำหนดในเว็บเพจ (แก้ในเว็บเพจเป็น meta 874 ก็ไม่ได้)
      เดิม :: AddDefaultCharset ISO-8859-1
      ใหม่ :: AddDefaultCharset WINDOWS-874
      เพิ่ม :: AddCharset WINDOWS-874 .cp-874 .win-874
  2. ทำให้ผู้มี linux account สามารถมีเว็บของตนเอง (อ่านรายละเอียดเพิ่มเติมในหัวข้อ 9.62)
      เดิม :: UserDir Disable
      ใหม่ :: UserDir public_html
      - แต่ละ user ต้อง chmod 711 ให้กับ home directory ของตนเอง
      - แล้ว chmod 755 ให้กับ public_html ของตนเองหลัง
      - เปิดเว็บ http://www.isinthai.com/~username


    สำหรับ Fedora Core 4
    อ่านเพิ่มจาก http://feeds.feedburner.com/LinuxStuffIMightForget
    #cd /home/burin
    #chcon -R -t httpd_user_content_t public_html
  3. ทำให้ใช้ .cgi และ .pl ได้
      เดิม :: #AddHandler cgi-script .cgi
      ใหม่ :: AddHandler cgi-script .cgi .pl
      เดิม
      <Directory "/var/www/cgi-bin">
      AllowOverride None
      Options None
      ใหม่ :: Options ExecCGI
      เดิม
      <Directory "/var/www/html">
      Options Indexes FollowSymLinks
      ใหม่ :: Options All
  4. ทำให้ใช้ <? แทนการใช้เฉพาะ <?php ในการเขียนโปรแกรมด้วยภาษา php โดยแก้แฟ้ม /etc/php.ini
      เดิม :: short_open_tag = Off
      ใหม่ :: short_open_tag = On

9.63 เปิดบริการ FTP server ด้วย vsftpd
: บริการ ftp server เพื่อให้สมาชิกส่งแฟ้มผ่าน ftp เข้ามาใน server ได้สะดวกกว่าการใช้ file manager
http://www.linuxquestions.org/questions/history/344083 (Problem on FC4 and selinux)
#getsebool -a
#setsebool ftpd_disable_trans=1 (เปลี่ยนเป็น active แบบ ชั่วคราว)
เพิ่มใน /etc/selinux/targeted/booleans.local เพื่อให้ถาวร
#setsebool -P ftpd_disable_trans=1 (เปลี่ยนแบบถาวร เพื่อให้ put หรือ upload ได้)
เปิดบริการ ftp ด้วยคำสั่ง setup, system services แล้วเลือกเปิด vsftpd แล้วเข้าไปในห้อง /etc/xinetd.d
แล้วใช้ pico vsftpd แล้วเปลี่ยนจาก disable=yes เป็น disable=no แล้วสั่ง /etc/rc.d/inetd/xinetd restart
เพิ่มใน /etc/vsftpd/vsftpd.conf
จาก http://www.aconus.com/~oyaji/suse/vsftpd_ssl_suse.htm
จาก http://www.brennan.id.au/14-FTP_Server.html
จาก http://fedorasrv.com/vsftpd.shtml
anonymous_enable=NO
ssl_enable=YES
ssl_tlsv1=YES
# allow_anon_ssl=NO
force_local_logins_ssl=YES
force_local_data_ssl=NO
rsa_cert_file=/etc/httpd/conf/vsftpd.pem
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
#cd /etc/httpd/conf
#make vsftpd.pem
#openssl req -x509 -nodes -days 730 -newkey rsa:1024 -keyout vsftpd.pem -out vsftpd.pem
#chmod 600 vsftpd.pem
เพิ่ม user fedora ใน ftpusers และ user_list
#/etc/init.d/vsftpd restart
9.64 วิธีเปิดบริการ homepage ให้ ~username ใน linux
: เปิดบริการ homepage โดยใช้ account ของระบบ linux
อ่านรายละเอียดเพิ่มเติมได้จาก http://httpd.apache.org/docs/misc/FAQ.html
การเปิดบริการ free homepage ของ Web server อีกแบบหนึ่ง ในการเปิดบริการแบบใหม่จะใช้โปรแกรม เช่น http://www.cyberscript.net/products/easyhost_free/ ที่ไม่ต้องสร้าง linux account แต่อย่างใด และมีความปลอดภัยในการบำรุงรักษาสูง
การเปิดบริการ free homepage แบบใช้ linux account เช่น http://www.isinthai.com/~username สามารถเปิดบริการได้ด้วยการแก้ไขแฟ้ม /etc/httpd/conf/httpd.conf แก้บรรทัดที่เขียนว่า UserDir Disable เป็น UserDir public_html แล้วต้อง chmod 711 ให้กับ home directory ของตนเอง แล้ว chmod 755 ให้กับ public_html ของตนเองหลังจากใช้คำสั่ง mkdir public_html ไว้ใน home directory แล้ว
9.65 วิธีเปิดบริการ samba
: เปิดบริการให้ระบบ windows มองเห็นระบบแฟ้มใน linux
ทดสอบ samba ของ RH8.0 แก้ไขดังข้างล่างแล้วไม่พบปัญหาใดเลย .. ง่ายมากครับ
เปิดบริการ samba ด้วยคำสั่ง setup, system services แล้วเลือกเปิด smb แล้วเข้าไปในห้อง /etc/samba แล้วใช้ pico smb.conf จากนั้น restart ด้วย /etc/rc.d/init.d/smb restart และให้พิมพ์ chkconfig smb on จะทำให้ samba start ทุกครั้งที่เปิดเครื่อง
คำสั่งที่ใช้สร้าง user คือ smbpasswd -a [username] [userpassword]
::::::: เดิม :::::::

; hosts allow = 192.168.1. 192.168.2. 127.
security = user
[homes]
   comment = Home Directories
   browseable = no
   writable = yes
   valid users = %S
   create mode = 0664
   directory mode = 0775
;[tmp]
;   comment = Temporary file space
;   path = /tmp
;   read only = no
;   public = yes
;[public]
;   comment = Public Stuff
;   path = /home/samba
;   public = yes
;   writable = yes
;   printable = no
;   write list = @staff
::::::: ใหม่ :::::::

hosts allow = 192.168.1. 192.168.2. 127. 202.29.78 
security = share
[homes]
   comment = Home Directories
   browseable = yes
   writable = yes   
   create mode = 0664
   directory mode = 0775

[tmp]
   comment = Temporary file space
   path = /tmp
   read only = no
   public = yes
[public]
   comment = Public Stuff
   path = /home/samba
   public = yes
   writable = yes
   printable = no
   write list = @staff

9.66 เปิดบริการ DNS server
: บริการ Domain Name service เพื่อให้ทุกเครื่องสามารถเรียกเว็บ หรือบริการด้วยชื่อได้
เปิดบริการ DNS server เพื่อทำให้ระบบเครือข่ายเรียกชื่อเว็บ เป็นตัวอักษรได้ และเป็นชุดที่ใช้กำหนดชื่อเครื่องในระบบทั้งหมด ถ้าในระบบเครือข่ายของท่าน มีเครื่องที่ต้องการตั้งชื่อหลายเครื่อง แต่ถ้าท่านเป็นเครื่องใช้พิมพ์งานธรรมดาก็ไม่จำเป็นต้องมีชื่อให้ใครเรียกเข้ามา ปกติเครื่องที่จะมีชื่อมักเป็น web server หรือ ftp server
การเปิดบริการนี้ต้องเปิดด้วยการสั่ง #setup แล้วเข้าไปในส่วน system services แล้วเลือก named เมื่อจะสั่งให้ named ทำงานต้องสั่ง #/etc/init.d/named restart ตรวจสอบได้ว่า named ทำงานหรือไม่โดยพิมพ์ #ps aux|grep named
ทดสอบเปิดบริการ named แบบ foreground ด้วย #named -g -p 53 ถ้าเลิกก็กด CTRL-C
พบ error เรื่อง permission ของห้อง /var/run/named เดิมเป็น 755 ไม่สามารถ start named ผมต้องเปลี่ยนเป็น 777 จึง ok
ใช้คำสั่ง #nmap localhost ดูได้ว่า port 53 ถูกเปิดหรือไม่ ถ้าไม่เปิด ก็แสดงว่าเครื่องยังไม่เป็น DNS หรือ Domain server (หัวข้อ 2.29)
    9.66.1 :: /etc/named.conf
      # ใน DNS server (star.yonok.ac.th) # เพิ่มเพียง 4 บรรทัดนี้เข้าไป # ใน unix พบแฟ้มนี้ใน /export/local/etc zone "yonok.ac.th" in { type master; file "db.yonok.ac.th"; allow-query {any;}; allow-transfer {202.28.18.65;}; }; zone "isinthai.com" in { type master; file "db.isinthai.com"; }; zone "78.29.202.in-addr.arpa" in { type master; file "db.202.29.78"; };
    9.66.2 :: /var/named/db.isinthai.com
      # ใน DNS server (star.yonok.ac.th) # ถ้าเครื่องไม่เป็น ns ก็ไม่จำเป็นต้องมี ; isinthai.com @ IN SOA www.isinthai.com. postmaster.www.isinthai.com. ( 2001022605 43200 7200 1209600 172800 ) IN NS star.yonok.ac.th. ; ตรงกับ checkdomain.com IN MX 5 www.isinthai.com. www IN A 202.29.78.1 mail IN CNAME www.isinthai.com. wichep IN CNAME yn2.yonok.ac.th.
    9.66.3 :: /var/named/db.yonok.ac.th
      ; yonok.ac.th @ IN SOA star.yonok.ac.th. postmaster.star.yonok.ac.th. ( 2003011001 43200 7200 1209600 172800 ) IN NS star.yonok.ac.th. IN NS mars.uni.net.th. IN MX 5 star.yonok.ac.th. star IN A 202.29.78.12 door IN A 202.29.78.254 email IN A 216.200.145.34 IN MX 6 sitemail.everyone.net. mail IN CNAME star.yonok.ac.th. ;email IN CNAME siteurl.everyone.net.
    9.66.4 :: /var/named/db.202.29.78
      - ใน DNS server (star.yonok.ac.th) - ถ้าเครื่องไม่เป็น ns ก็ไม่จำเป็นต้องมี ; Yonok.ac.th $ORIGIN 78.29.202.IN-ADDR.ARPA. @ IN SOA star.yonok.ac.th. postmaster.star.yonok.ac.th. ( 2001022601 ;serial 43200 ;Refresh 12 hours 7200 ;Retry 2 hours 1209600 ;Expire 2 weeks 172800) ;TTL IN NS star.yonok.ac.th. 1 IN PTR www.isinthai.com. 2 IN PTR isinthai.yonok.ac.th. 12 IN PTR star.yonok.ac.th.

9.67 ติดตั้ง Free hosting ด้วย easyhost_free.zip
: ช่วยให้ server สามารถบริการ free hosting ได้โดยง่ายผ่าน file manager
- Download CGI script นี้จาก http://cyberscript.net/products/easyhost_free/download.html
- รายละเอียดการติดตั้งอ่านได้จาก http://cyberscript.net/support/docs/
- copy แฟ้มทั้งหมดในห้อง cgi-bin ไป /var/www/cgi-bin ด้วยคำสั่ง #mv * /var/www/cgi-bin
- copy ห้อง data และ images ไป /var/www/html ด้วยคำสั่ง #mv images /var/www/html
- ใช้คำสั่ง #chmod 755 /var/www/cgi-bin/*.*
- ใช้คำสั่ง #chmod 777 /var/www/cgi-bin/config.ini
- ใช้คำสั่ง #chmod 777 /var/www/html/data
- ใช้คำสั่ง #chmod 777 /var/www/html
- เปิดเว็บ http://www.isinthai.com/cgi-bin/admin.cgi
- ถ้าเปิด admin.cgi แล้ว error โดยหาสาเหตุไม่ได้แสดงว่าไม่ได้ upload แบบ ascii ให้ใช้ pico เพิ่มบรรทัดว่างล่างสุดแล้ว save ทับ
- ถ้า CGI ยังไม่ทำงาน ให้ไปแก้แฟ้ม /etc/httpd/conf/httpd.conf เพื่อเปิดบริการต่าง ๆ ของ apache web server
- สมาชิกใหม่จะมีห้อง images และแฟ้ม index.html ที่คัดลอกมาจากห้อง /var/www/html/data/default เข้าไปแก้ไขห้องนี้ได้
    ข้อมูลในแฟ้ม /var/www/cgi-bin/config.ini
      space_limit=55000 reserved_names=cgi-bin,data,images,mail title_min=3 root_url=http://www.isinthai.com password_max=20 site_password=asaRYYyl3HBzW description_required=on title_max=50 name_min=3 banned_extensions=.cgi,.pl,.php,.php3,.exe,.mp3,.dat,.mpg,.mpv,.zip,.rar,.ace,.class distinct_email=1 use_validation=off site_email=webmaster@yonok.ac.th description_max=150 root_dir=/var/www/html data_dir=/var/www/html/data password_min=2 site_title=isinthai.com :: Case study of free hosting with 55 Mb name_max=20 script_url=http://www.isinthai.com/cgi-bin

9.68 ติดตั้ง Web-based mail ด้วย uebimiau-2.7.2-any.zip
: ช่วยให้ server สามารถอ่าน mail จาก POP3 และส่งด้วย SMTP ผ่านระบบ Web-based mail
- Download จาก http://uebimiau.sourceforge.net (PHP script)
- เคยแนะนำการเปิดบริการ pop3 ใน win2003 กับโรงเรียนเขลางค์
      อ่านจาก http://www.windowsnetworking.com/articles_tutorials/Windows_POP3_Service.html
- copy ห้องทั้งหมดภายใต้ห้อง uebimiau-2.7.2 หลังคลาย zip ไปไว้ใต้ห้อง /var/www/html/mail
- แก้แฟ้ม /var/www/html/mail/inc/config.php กำหนด pop และ smtp ให้เป็นตามต้องการ
- ใช้คำสั่ง #chmod 777 /var/www/html/mail/database
- แก้แฟ้ม /var/www/html/mail/langs/th.txt เพื่อให้มีภาษาไทยตามที่เราต้องการ
- แก้แฟ้ม /var/www/html/mail/themes/default/login.htm เพื่อปรับหน้าจอของหน้าแรก
9.69 ติดตั้ง DHCP server แจก Dynamic IP
: เพื่อให้เครื่อง Server มีบริการแจก IP ปลอมให้กับเครื่องในองค์กร เพราะปกติองค์กรจะได้ IP มา 1 Class C มี 256 หมายเลข แต่ถ้าในองค์กรมีเครื่องจำนวนมากกว่านั้น ก็จำเป็นต้องสร้าง DHCP server เพื่อแจก IP ปลอม และยังมีประโยชน์ในเรื่องของความปลอดภัย เพราะเครื่องที่ได้ IP ปลอม ย่อมต้องมีการทำงานขึ้นกับเครื่อง server จะแอบออกไปน้องเครือข่ายได้ยาก
    ขั้นตอนการทำให้ Linux server บริการ DHCP (Dynamic Host Configuration Protocol)
  1. ถ้าใช้คำสั่ง setup เพื่อเปิดบริการ DHCP แล้วไม่พบบริการ ต้องติดตั้ง DHCP จากแผ่น CD ด้วยการใช้คำสั่งด้านล่าง ในห้องที่เก็บแฟ้มนี้ ก็ใช้ setup เข้าไปเปิดบริการนี้ใหม่
    rpm -i dhcp*
  2. ต้องใช้โปรแกรม ipchains ท่านควรตรวจหาในเครื่องว่ามีหรือไม่ด้วยการการใข้ rpm -q ipchain ถ้าไม่มีก็ต้องติดตั้งเพิ่มจากแผ่น CD ด้วยคำสั่ง rpm -i ipchain* แล้ว ต้องใช้คำสั่ง setup เพื่อเข้าไปเปิดบริการ ipchains อีกครั้ง
  3. ทำให้เครื่องมี IP ปลอมเกิดขึ้นด้วย โดยพิมพ์สั่งใส่ใน /etc/rc.d/rc.local เพื่อกำหนด IP ปลอมแก่เครื่อง server นี้ ทุกครั้งที่เปิดเครื่อง
    /sbin/ifconfig eth0:1 192.168.3.1
  4. สร้างแฟ้ม /etc/dhcpd.conf ด้วย pico หรือ vi
      default-lease-time 21600;
      max-lease-time 43200;
      ddns-update-style ad-hoc;
      option subnet-mask 255.255.255.255;
      option broadcast-address 192.168.3.255;
      option routers 192.168.3.1;
      option domain-name-servers 192.168.3.1;
      option domain-name "yn2.yonok.ac.th";
      subnet 192.168.3.0 netmask 255.255.255.0
      {
         range 192.168.3.10 192.168.3.250;
      }
      
  5. การทำให้ใช้ IP forwarding ต้องแก้แฟ้ม /etc/sysctl.conf จาก 0 เป็น 1 โดยแก้เป็นบรรทัดด้านล่าง
    net.ipv4.ip_forward = 1
    เมื่อแก้ไขเสร็จแล้วให้พิมพ์คำสั่งใน command line ดังนี้
    echo "1" >/proc/sys/net/ipv4/ip_forward
  6. ต้องสั่ง IP forwarding เพราะเครื่องลูกไปไหนไม่ได้ แต่เครื่อง server มี IP จริง และ IP ปลอม จึงต้องสั่งให้ IP ปลอมมาเข้ากับ IP จริง ด้วยการใช้ ipchains กำหนดการ forward
    /sbin/ipchains -A forward -i eth0 -s 192.168.3.1/24 -j MASQ
  7. หลังผมเปิดบริการ เครื่องลูกก็ใช้งานได้แล้ว แต่ไม่อยากใช้งาน จึงปิดบริการด้วยการสั่ง setup แล้วเลือก * หน้า dhcp ออก

9.71 ติดตั้ง Web Mail ของ Adjeweb หรือ Squirrelmail
: โปรแกรมให้บริการที่ผมทดสอบให้บริการ มี 2 โปรแกรม ตอนหลังมาผมใช้แต่ squirrelmail เพราะนิยมใช้กันมาก
    ขั้นตอนการติดตั้ง squirrelmail.org
  1. download โปรแกรมนี้จาก http://squirrelmail.org/download.php เพราะเชื่อว่าของใหม่ย่อมดีกว่าที่ติดมากับ RH9.0
  2. ใช้ rpm -i squirrelmail-1.4.5-1.noarch.rpm โปรแกรมก็จะเข้าไปใน /usr/share/squirrelmail
  3. ใน httpd.conf เพิ่ม Alias /webmail/ "/usr/share/squirrelmail/" เพื่อเรียกเว็บ http://... /webmail
  4. เปิดแฟ้ม /usr/share/squirrelmail/config/config.php แล้วแก้ไข option ต่าง ๆ ได้
    จาก $default_charset = 'iso-8859-1'; เป็น $default_charset = 'windows-874';
    จาก $squirrelmail_default_language = 'en_US'; เป็น 'th_TH';
  5. แค่นี้ก็ ok เพราะเครื่องเดียวกันเป็น web, mail และ smtp ในตัวเองครับ
  6. ยกเลิก comment คลุมภาษาไทย ใน /usr/share/squirrelmail/functions/i18n.php
    $languages['en_US']['NAME'] = 'English';
    $languages['en_US']['CHARSET'] = 'tis-620';
    $languages['en_US']['LOCALE'] = 'en_US.ISO8859-1';
    $languages['en']['ALIAS'] = 'en_US';
  7. Download plugins select_language จาก http://www.squirrelmail.org/plugin_download.php?id=253&rev=1228
  8. แฟ้มที่เก็บ Top menu ด้านขวา คือ /usr/share/squirrelmail/functions/page_header.php
+ พบคำว่า You must be logged in to access this page. ตรวจแล้วเกิดจาก server เต็ม จึง login ผ่าน webmail ไม่ได้
+ แก้ไขโดยเข้าห้อง /var/mail แล้วใช้คำสั่ง ls -alS
    ขั้นตอนการติดตั้ง adjeweb.com
    ข้อ 1 และ 2 จะทำเมื่อใช้คำสั่ง rpm -qa|grep imap แล้วไม่พบว่ามีอยู่แล้ว จึงต้องติดตั้งเพิ่ม
  1. หากยังไม่ได้ mount cd ต้องทำก่อนโดยใช้คำสั่ง mount /dev/cdrom ก็จะทำให้มีห้อง /mnt/cdrom ขึ้นมา ใช้คำสั่ง cd เข้าไปดูได้
  2. ติดตั้ง imap ซึ่งก็คือ pop3 นั่นเองจาก CD ที่ใช้ลง linux ด้วยคำสั่ง rpm -i imap-4.7-5.i386.rpm และ rpm -i imap-devel-4.7-5.i386.rpm
  3. ถ้าต้องการให้เครื่องนี้บริการ pop3 เอง สามารถเปิดบริการ โดยแก้แฟ้ม /etc/inetd.conf นำ # ออกหน้าคำว่า pop3 pop2 imap มิเช่นนั้นจะไม่สามารถบริการ pop ได้ แต่สามารถรับส่ง mail ด้วย telnet หรือจะใช้ adje ไปขอบริการจาก pop server ตัวอื่นก็ได้ คำสั่งที่ใช้ re-read inetd.conf คือ killall -HUB inetd และคำสั่งที่น่ารู้คือ ntsysv เพื่อใช้เปิด หรือปิดบริการใน /etc/services
  4. อาจตรวจสอบว่าเปิดบริการหรือไม่ด้วยคำสั่ง setup, system services ดูในส่วนบริการ ipop2 และ ipop3 จะต้องมีเครื่องหมาย x เพื่อแสดงว่าบริการนี้เปิดแล้ว
  5. สร้าง user ชื่อ webmail แล้วใช้ user นี้ทำงาน หรือใช้ su - webmail เพื่อเปลี่ยนตนเองอย่างง่าย ๆ ก็ได้
  6. copy โปรแกรมสำหรับ install จาก adjeweb.com หรือ install.pl # (ตัวนี้ต้อง rename ก่อน เพราะผม save เปลี่ยนชื่อไว้)
  7. หมายความว่าเมื่อ copy adjewebmailinstall.pl.txt มาได้แล้วให้ใช้ mv adjewebmailinstall.pl.txt install.pl เพราะถ้าผมเก็นในสกุล .pl ท่านจะ copy มาไม่ได้
  8. ก่อนลงโปรแกรมให้ chmod ห้อง /home/httpd/cgi-bin เป็น 777 ก่อนแล้วค่อยเปลี่ยนคืนเป็น 755 ด้วยคำสั่ง chmod 777 /home/httpd/cgi-bin
  9. เมื่อได้โปรแกรมมา ให้ chmod 755 install.pl
  10. Install ด้วยการพิมพ์ว่า ./install.pl ซึ่งแฟ้มนี้ควรอยู่ใน home directory ของท่าน
  11. เมื่อถามว่า cgi อยู่ห้องใดก็มักจะเป็น /home/httpd/cgi-bin
  12. เมื่อถามว่า pop server คืออะไร ก็ตอบว่า www.isinthai.com หรือ กดปุ่ม Enter หรือ จะใส่ ip ของเครื่องก็ OK เป็นต้น
  13. เมื่อถามว่า pop server คืออะไร ก็ตอบว่า mail.loxinfo.co.th เป็นต้น
  14. reboot สักหน่อย แล้วเปิดเว็บเรียก http://www.isinthai.com/cgi-bin/WebMail/inbox.cgi ก็เรียบร้อย
  15. จะให้ดีเป็น su แล้วให้ ln -s /home/httpd/cgi-bin/WebMail /home/httpd/html/webmail จะทำให้เปิดเว็บด้วย http://www.isinthai.com/webmail ซึ่งสั้นกว่ากันเยอะ

9.72 ติดตั้ง squid เป็น Proxy server ที่ 3128
: โปรแกรมนี่จะทำให้ความเร็วในการให้บริการ internet โดยรวมขององค์กรดีขึ้น ถ้าปฏิบัติตามระเบียบในการใช้ proxy
    ระเบียบการใช้ proxy
  1. เมื่อติดตั้ง squid ลงไปใน linux server ขององค์กรแล้ว ท่านก็จะได้เครื่อง proxy server ขึ้นมา 1 ตัว
  2. ไปกำหนดในเครื่องทุกเครื่องให้มองมาที่ proxy server ตัวนี้ เช่น www.isinthai.com บน port 3128 อย่ากำหนดมาที่นี่นะครับ เพราะจะทำให้เครื่องท่าน เปิดเว็บช้าโดยใช่เหตุ แต่ถ้าเครื่องของท่านตั้งอยู่ในเครือข่ายของโยนก นั่นจะเป็นอะไรที่ถูกต้อง
  3. หลังจากกำหนด proxy ให้ชี้ไปที่ www.isinthai.com อย่างถูกต้องแล้ว ทุกครั้งที่เปิดเว็บด้วย browser จะวิ่งไปที่เครื่องนั้นก่อน เพื่อตรวจว่า เว็บที่ขอเปิดเคยเปิดหรือไม่ ถ้าเคยเมื่อไม่นานนี้ ก็จะไม่ออกไปนอกเครือข่าย แต่จะเอาข้อมูลจาก proxy มาให้ท่าน ทำให้ไม่ต้องออกไปนอกเครือข่าย โดยไม่จำเป็น
ขั้นตอนข้างล่างนี้ อาจไม่จำเป็น ต้องทำทุกขั้นตอน ถ้าตอน install linux ได้เลือก squid หรือ everything ก็ไม่จำเป็นต้อง ลงโปรแกรมอีกรอบ เพียงแต่เข้าไป set up แฟ้ม squid.conf ใน /home/squid/etc/squid.conf หรือ /etc/squid/squid.conf แต่ถ้าเปลี่ยนใจต้องการ ลง squid ใหม่ แทนที่จะใช้ตัวที่ติดตั้งมาก็ลบตัวเดิมออกด้วยคำสั่ง rpm -e squid-2.3.STABLE1-5 เพราะผมใช้คำสั่ง rpm -qa|grep squid แล้วพบว่า install มาตอนติดตั้ง linux ครับ (squid-2.3-200103110000-src.tar.gz ขนาด 971,877 byte)
ติดตั้ง squid เพื่อทำให้ server เป็น proxy สำหรับองค์กร ที่ต้องการลดปัญหาคอขวด มีบทความแนะนำที่ http://www.thailinux.com/1999/04/18/topic1.html คุณ new way เขียนได้ละเอียดดีมาก ต้องยกนิ้วให้ครับ ซึ่งแนะนำให้ Download squid ของ http://squid.nlanr.net/Squid/ เมื่อลง squid ตามขั้นตอนแล้ว มี จุดที่ต้องแก้ไขในแฟ้ม ~/etc/squid.conf คือ cache_effective_user squid และ cache_effective_group squid และ cache_peer www.isinthai.com parent 3128 3130 และ http_access allow all
ดู log file ของ squid ที่ห้อง ~/logs ในแฟ้ม cache.log (ต้องใช้ user squid ในการ set squid ตลอดนะครับ) โดยใช้คำสั่ง tail -f access.log และสามารถอ่านรายละเอียด การกำหนดเพิ่มเติม ได้ที่ http://www.squid-cache.org/Doc/Hierarchy-Tutorial/
9.73 เพิ่ม incoming ในบริการ ftp
: บริการ ftp ทำให้ท่านสามารถเข้ามา คัดลอกแฟ้ม หรือส่งแฟ้มไว้ได้ เช่น ftp://www.isinthai.com ftp://ftp.isinthai.com
พบว่าการปิด gcc นั้นสามารถป้องกัน hacker ในระดับ telnet ได้ระดับหนึ่ง แต่ถ้ามีการเปิด ftpd ด้วย ถึงไม่ telnet เข้ามา hacker ก็สามารถเจาะเข้ามาในระบบได้ .. เขาทำได้
9.74 User authentication ด้วย .htpasswd + .htaccess
: การปิดห้อง แต่ยอมให้เข้าด้วย username และ password ที่กำหนด
อ่านเพิ่มเติมได้จาก http://www.apacheweek.com/features/userauth หรือ http://www.thaiall.com/cgi/htpasswd.pl
    ขั้นตอนการ lock ห้องของตนเอง ในฐานะผู้ใช้ทั่วไป
  1. ท่านต้องส่งแฟ้ม 2 แฟ้มคือ .htpasswd และ .htaccess ไปไว้ในห้องที่ต้องการ lock โดยทำการถาม User และ password ก่อนเข้า
  2. .htaccess นั้นสามารถคัดลอกด้านล่างไปได้เลย โดยแก้ไขอะไรเล็กน้อยตามต้องการ เช่นเปลี่ยนคำว่า lock ที่บรรทัดแรก เป็น username ของท่าน
  3. .htpasswd แต่ละบรรทัดคือ 1 user สำหรับแฟ้มนี้ ถ้าผู้ดูแลไม่คิดบริการ ท่านก็ใช้บริการไม่ได้ สำหรับ server ที่ผมดูแล ได้ทำ โปรแกรมเข้ารหัส สร้างรหัสให้
    ถ้าเป็นผู้ดูแล(Super user) สามารถใช้
    คำสั่ง #htpasswd -nb yourname yourpassword แสดงรหัสผ่าน ที่ shell prompt
    คำสั่ง #htpasswd -c .htpasswd yourname สร้างแฟ้ม .htpasswd พร้อม รอรับรหัสผ่าน จากแป้นพิมพ์
    ดูเพิ่มเติมจาก #man htpasswd ที่ shell prompt
  4. เปิดเว็บ http://www.isinthai.com/lock/index.php เพื่อป้อนรหัสผู้ใช้ และรหัสผ่าน จะได้รหัสที่สร้างขึ้น เพื่อนำไปเพิ่มในแฟ้ม .htpasswd

9.75 เปิดบริการ SSI (Server Side Include)
: บริการนี้ทำให้การเขียน CGI มีสีสรรขึ้นอีกมาก และเพิ่มลูกเล่นให้กับเว็บได้อีกเพียบ
SSI คือการทำให้สามารถเรียก CGI เช่น perl เข้าไปประมวลผลในเว็บ htm โดยทำการประมวลผล แล้วส่งค่าเข้าคืนให้กับผู้เรียกเว็บ การทำงานลักษณะนี้ จะเป็นการ run program ที่ server แล้วส่งผลให้กับผู้ร้องขอเช่นตัวอย่างข้างล่างนี้
ผลของการเปิดเว็บ test.htm จะแสดงตัวอักษร x บนจอภาพ ซึ่งเกิดจากบริการ ssi นั่นเอง แต่ถ้า server ไม่บริการ ssi บรรทัดคำสั่งก็จะแสดงผลอย่างนั้น แต่จะไม่เห็นผลอะไรบนจอภาพเลย เนื่องจากคำสั่งดังกล่างไม่ได้ถูกประมวลผล ตามหน้าที่ของ ssi
ถ้า SSI work นะครับ เวลาเปิด test.htm จะเห็น x ตัวเดียว เรียกว่า ssi สมบูรณ์ หรือเปิดเว็บ pro.pl แล้วต้องเห็น x ตัวเดียวเช่นกัน แต่ถ้าเปิดแล้วเห็น source code แสดงว่าไม่มีการประมวลผล .pl นั้น
การทำให้ Linux (RH 8.0)ให้บริการ SSI
บริการนี้มีอยู่แล้วไม่ต้องลงโปรแกรมเพิ่ม เพียงแต่แก้ไขข้อกำหนดในแฟ้ม /etc/httpd/conf/httpd.conf เท่านั้น โดยผมได้ดูตัวอย่างพร้อมคำอธิบายจาก http://www.c2.net/support/sh3/admin_guide/chapter7.fm.html ซึ่ง Search เจอจาก redhat.com
จากการ set up ครั้งนี้ทำให้การประมวลผล Perl ที่ต้อง Run จากห้อง cgi-bin เช่น http://www.isinthai.com/cgi-bin/thaiall/test.pl มาเป็น http://www.isinthai.com/thaiall/test.pl ทำให้สะดวกขึ้นมาก และที่ผมพบวิธีการ setup SSI ในครั้งนี้ต้องยกความดีความชอบให้ Redhat.com เพราะเขาเขียนอธิบายไว้พอเข้าใจ รู้สึกว่าเข้าที่นี่แล้วหาอะไร ก็เจอไปหมดครับ
9.76 การติดตั้ง Radius
: เพื่อทำเครื่อง Radius server รับบริการ Connect Internet ทางโทรศัพท์ผ่าน External modem
    โปรแกรมที่ใช้ install คือ radius-1.16.tar.GZ 27804 Byte ขั้นตอนการลงโปรแกรม su tar xvfz radius-1.16.tar.GZ cd radius-1.16 cd src make จะเกิด error ว่า radiusd.o: In function `unix_pass': radiusd.o(.text+0x1c77): undefined reference to `crypt' collect2: ld returned 1 exit status make: *** [radiusd] Error 1 จะพบว่า make ไม่ผ่านให้ ให้แก้แฟ้ม Makefile ด้วยคำสั่ง pico Makefile แล้วแก้บรรทัดหนึ่งใน Makefile จาก LIBS= เป็น LIBS= -lcrypt make cd ../raddb pico /etc/services radius 1645/udp radiusd radacct 1646/udp #radius 1812/tcp # Radius #radius 1812/udp # Radius #radacct 1813/tcp # Radius Accounting #radacct 1813/udp # Radius Accounting umask 22 mkdir /usr/adm mkdir /etc/raddb /usr/adm/radacct chmod 700 /etc/raddb /usr/adm/radacct cp * /etc/raddb cp ../src/radiusd /etc cd /etc/raddb cp clients.example clients cp users.example users เพิ่มคำว่า /etc/radiusd ในแฟ้ม /etc/rc.d/rc.local เพื่อให้ทุกครั้งที่เปิดเครื่องจะสั่ง run radiusd ขึ้นมา ให้แก้แฟ้ม users โดยลบ user อื่นออกให้หมด เพื่อต่อไปจะถาม user จาก /etc/passwd ให้แฟ้ม /etc/raddb/users เหลือเฉพาะส่วนข้างล่างนี้ ให้แก้แฟ้ม /etc/raddb/users ให้เป็นไปดังข้างล่างนี้จะรับระบบโทรศัพท์ได้ DEFAULT Password = "UNIX" User-Service-Type = Login-User, Framed-Protocol = PPP, Framed-Netmask = 255.255.255.0, Framed-Routing = Broadcast-Listen, Framed-Compression = Van-Jacobsen-TCP-IP, Framed-MTU = 1500 แฟ้ม /etc/raddb/users สามารถเขียนได้อีกรูปแบบเพื่อบริการ Modem ที่เข้ามาสอบถาม user แต่ตัว modem ไม่ได้ติดอยู่กับตัวเครื่อง yonokadmin Password = "123" User-Service-Type = Shell-User, Login-Service = Telnet, yonok Password = "456" User-Service-Type = Shell-User, Login-Service = Telnet, student1 Password = "789" User-Service-Type = Login-User, Framed-Protocol = PPP, Framed-Address = 255.255.255.254, Framed-Netmask = 255.255.255.255, Framed-Routing = None, Framed-Filter-Id = "std.ppp.in", Framed-MTU = 1500, student2 Password = "17890" User-Service-Type = Login-User, Framed-Protocol = PPP, Framed-Address = 255.255.255.254, Framed-Netmask = 255.255.255.255, Framed-Routing = None, Framed-Filter-Id = "std.ppp.in", Framed-MTU = 1500
    เมื่อต้องการเก็บข้อมูลการ login เข้ามาใช้บริการ ต้องสร้าง user ใหม่ด้วย useradd radius จะสร้างห้อง /home/radius ขึ้นมาให้ ดังข้างล่างนี้ก่อน su useradd radius cd /home/radius mkdir backup สร้าง runacct เก็บในห้อง /home/radius เขียน shell script สำหรับเก็บผลการ login ผ่านเข้ามาในระบบ เมื่อเขียนเสร็จแล้วให้ใช้คำสั่ง chmod 700 เพื่อให้เป็นโปรแกรมประมวลผล (ตอนแรกผมก็ไม่รู้ว่า detail นั้นอยู่ที่ไหน เจอเพราะใช้ find / -name detail ครับ) #!/bin/sh cp /usr/adm/radacct/door.yonok.ac.th/detail /home/radius /bin/date +%d > /tmp/date /bin/date +%m > /tmp/month /bin/date +%y > /tmp/year DATE=`cat /tmp/date` MONTH=`cat /tmp/month` YEAR=`cat /tmp/year` TODAY="$DATE$MONTH$YEAR" cd /home/radius cp detail backup mv detail $TODAY cd /tmp rm date month year rm /usr/adm/radacct/door.yonok.ac.th/detail ห้อง /etc/cron.daily ให้เพิ่มแฟ้มอีก 1 แฟ้มในห้อง /etc/cron.daily โดยมีขั้นตอนดังนี้ su pico radiusprocess พิมพ์คำนี้ลงไป /home/radius/runacct แล้ว ctrl-x ออกมาเลย chmod 755 radiusprocess สรุปในเรื่องของ Radius ดังนี้
    1. แฟ้ม /etc/rc.d/rc.loal อาจต้องเพิ่มไป 2 บรรทัด เพราะแฟ้มนี้ทำหน้าที่เสมือน autoexec.bat ของ dos และคำสั่ง 2 บรรทัดนี้อาจไม่จำเป็นก็ได้ แล้วแต่กรณี /etc/radiusd /sbin/ifconfig eth0:1 202.29.78.15
    2. ห้อง /home/radius มีแฟ้มชื่อ runacct ซึ่งเป็น script สำหรับเก็บข้อมูลการ login ไว้ทำสถิติ
    3. ห้อง /etc/raddb มีแฟ้มชื่อ users ซึ่งเก็บ account สำหรับ connect เข้ามาทั้งหมด
    4. ห้อง /etc/cron.daily มีแฟ้มชื่อ radiusprocess เพื่อสั่งให้ประมวลผลแฟ้ม /home/radius/runacct ทุกวัน
    5. แก้แฟ้ม /etc/raddb/clients ให้มีคำว่า 202.29.78.254 YournameRadiuS แทนคำว่า postmaster1 testing123 จึงจะรับ connection จากชุด Router Modem แต่ถ้าเป็นการ Connect Modem ผ่าน Com port แฟ้มนี้ไม่แก้อะไรก็ใช้ได้
    6. สำหรับ crond ต้องเปิดด้วย ใช้ ntsysv ดูว่า crond ถูกปิดหรือไม่ ถ้าไม่เปิดก็เก็บประวัติการเข้าใช้ไม่ได้

9.77 ติดตั้ง Modem สำหรับให้บริการเรียกเข้ามา
: Radius server คือการทำให้เครื่องให้บริการในการสอบถาม user แต่การติดตั้ง Modem เข้าไปก็เป็นอีกเรื่องหนึ่ง
วิธีการติดตั้ง Modem แบบ x window http://www.thailinux.com/1999/03/14/topic1.html
สำหรับเรื่อง Modem ตอนนี้ผมยังไม่ได้ทำ เพราะหาเครื่องทดลองยังไม่ได้ แต่มอบหมายให้สุวิทย์ไปดูอยู่ครับ
การติดตั้ง Modem ที่ง่ายที่สุดคือใช้ Modem tool โดยการ startx แต่ถ้าจะทำแบบ text mode ต้องอ่านที่ http://www.thailinux.com/1999/03/21/topic1.html โดยติดตั้งที่ COM1 ทำ symbolic link ใน directory /dev จาก ttyS0 เป็น modem หรือถ้าติดตั้งบน COM2 ก็ ttyS1 แล้วก็ไล่เลขไปเรื่อย ๆ ถ้าคุณมี serial port มากกว่า 2 (ขอย้ำ วิธีที่ง่ายที่สุดคือ startx แล้วเรียก modemtool)
    การต่อ modem โทรเข้า isp แบบ text mode #ls -l /dev/modem ตรวจสอบการเชื่อมต่อ modem ถ้าไม่ได้ต่อ แต่เอาโมเด็มเสียบเข้าเครื่องที่หลัง ให้สร้างการเชื่อมต่อใหม่ #ln -sf /dev/cua0 /dev/modem สำหรับต่อ modem จาก com1 #ln -sf /dev/cua1 /dev/modem สำหรับต่อ modem จาก com2
    สร้าง Script testmodem เชื่อมต่อ 13 บรรทัดข้างล่างนี้
      #!/bin/bash TELEPHONE=188,125 # The telephone number for the connection ACCOUNT=george # The account name for logon (as in 'George Burns') PASSWORD=gracie # The password for this account (and 'Gracie Allen') LOCAL_IP=0.0.0.0 # Local IP address if known. Dynamic = 0.0.0.0 REMOTE_IP=0.0.0.0 # Remote IP address if desired. Normally 0.0.0.0 NETMASK=255.255.255.0 # The proper netmask if needed export TELEPHONE ACCOUNT PASSWORD DIALER_SCRIPT=/etc/ppp/ppp-on-dialer exec /usr/sbin/pppd debug lock modem crtscts /dev/ttyS1 115200 \ asyncmap 20A0000 escape FF kdebug 0 $LOCAL_IP:$REMOTE_IP \ noipdefault netmask $NETMASK defaultroute connect $DIALER_SCRIPT # /usr/sbin/pppd debug lock /dev/modem 115200 defaultroute
    จากนั้นก็ chmod 700 testmodem เพื่อให้โปรแกรมนี้ run ได้ คำสั่งที่สำหรับ disconnect cp /usr/doc/ppp-2.3.11/scripts/ppp-off /root/ppp-off chmod 700 /root/ppp-off
    เพิ่มบรรทัดข้างล่างนี้เข้าไปในแฟ้ม /etc/mgetty+sendfax/login.conf * - @ /usr/sbin/pppd auth -chap +pap login modem crtscts lock

9.78 SMTP สำหรับ outgoing ของ Outlook ..
: Sendmail Transfer protocol ทำให้ส่ง e-mail ผ่าน outlook หรือโปรแกรมอื่น ๆ ในลักษณะเดียวกันได้
บริการนี้ทำให้ส่ง e-mail ผ่านโปรแกรม outlook ได้ การเปิดบริการ smtp มีขั้นตอนหลายอย่าง ตั้งแต่การเปิด port และเปิด relay ให้กับเครื่องในเครือข่าย ถ้าไม่เปิด relay ให้ก็หมดสิทธิใช้ เพราะ relay จะ denied การให้บริการ SMTP เพราะ SMTP เหมาะกับการเปิดบริการให้กับสมาชิกเท่านั้น
อธิบายการใช้ cyrus เป็น imap http://rd.cc.psu.ac.th/content/view/23/46/
ใน FC4 ใช้ dovecot แทน imap ดูจาก http://www.itwizard.info/webboard/view.php?No=545
#getsebool -a
#setsebool -P httpd_can_network_connect=1 (เปลี่ยนเป็น active แบบถาวร)
อ่านเพิ่มเติมได้ที่
- http://thaicert.nectec.or.th/paper/unix_linux/sendmail.php
- http://www.redhat.com/support/resources/faqs/RH-sendmail-FAQ/book1.html
  1. เข้า setup เลือก system services แล้วเลือกเปิด sendmail
    ผลการเปิด sendmail จะทำให้ port 25 ถูกเปิด
    ลองใช้คำสั่ง netstat -a จะแสดงรายชื่อ port ที่เปิดให้บริการ
    ถ้าไม่มีตัวเลือก sendmail ก็ต้องหาแผ่น CD มาติดตั้งเพิ่มด้วยการใช้คำสั่ง rpm -i sendmail
  2. แก้แฟ้ม /etc/mail/sendmail.mc (เพิ่มบริการตรวจสอบ Blacklist)
    เดิม DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')
    ใหม่
    dnl DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')
    dnl changed FEATURE(dnsbl, `rbl.maps.vix.com', `Open spam relay - see http://maps.vix.com/')dnl
    dnl changed FEATURE(dnsbl, `blackholes.mail-abuse.org', `Rejected - see http://www.mail-abuse.or$
    dnl changed FEATURE(dnsbl, `dialups.mail-abuse.org', `Dialup - see http://www.mail-abuse.org/dul$
    dnl changed FEATURE(dnsbl, `relays.mail-abuse.org', `Open spam relay - see http://work-rss.mail-$
    dnl changed FEATURE(dnsbl, `inputs.orbz.org', `Open spam relay - see http://orbz.org/')dnl
    dnl changed FEATURE(dnsbl, `outputs.orbz.org', `Open spam relay - see http://orbz.org/')dnl
    FEATURE(dnsbl, `orbs.dorkslayers.com', `Open spam relay - see http://dorkslayers.com/')dnl
    FEATURE(dnsbl, `dev.null.dk', `Open spam relay - see http://null.dk/')dnl
    FEATURE(dnsbl, `bl.spamcop.net', `Open spam relay - see http://spamcop.net/')dnl
    FEATURE(dnsbl, `relays.osirusoft.com', `Open spam relay - see http://osirusoft.com/')dnl
    FEATURE(dnsbl, `relays.visi.com', `Open spam relay - see http://visi.com/')dnl
    FEATURE(dnsbl, `list.dsbl.org', `Open spam relay - see http://dsbl.org/')dnl
    FEATURE(dnsbl, `relays.ordb.org', `Open spam relay - see http://ordb.org/')dnl
    FEATURE(dnsbl, `proxies.relays.monkeys.com', `Open spam relay')dnl
    FEATURE(dnsbl, `dnsbl.sorbs.net', `Open spam relay')dnl
    FEATURE(dnsbl, `dynablock.easynet.nl', `Open spam relay')dnl
    FEATURE(delay_checks)dnl
    FEATURE(relay_based_on_MX)dnl
    MAILER(smtp)dnl
    MAILER(procmail)dnl
    Cwlocalhost.localdomain
    Cwmail.yonok.ac.th
    Cw202.29.78.1

    + การเพิ่มบรรทัดข้างบนนี้ท่านต้องแน่ใจว่า server ของท่านไม่อยู่ใน black list มิเช่นนั้นจะไม่ได้รับ e-mail เข้ามาเลย
    + ถ้าเครือข่ายต่างประเทศล่ม แล้วท่านยังใช้บริการ black list ท่านจะไม่สามารถรับจดหมายใหม่ จากเครื่อข่ายในไทย เพราะระบบกรอง mail ล้มเหลว
  3. พบว่า config ใน sendmail.mc ผิด เรื่อง local_procmail ต้องแก้ให้ถูก ถ้าไม่ถูก .procmailrc ใน home ก็ไม่ทำงาน .. เท่านั้นเอง
    หลักการนี้ยังมีปัญหา อย่างพึ่งทำอะไรนะครับ ผมต้องค้นข้อมูลอีกที เพราะใช้แล้วระบบส่ง mail ไม่ออก
    เดิม FEATURE(local_procmail,`',`procmail -t -Y -a $h -d $u')dnl
    ใหม่ FEATURE(`local_procmail',`procmail -t -Y -a $h -d $u')dnl
  4. แก้แฟ้ม /etc/mail/access เพื่อเปิด relay
    localhost.localdomain RELAY
    localhost RELAY
    202.29.78 RELAY
    127.0.0.1 RELAY
    10 550 No service
  5. เคยใช้บรรทัดนี้ แต่ใน RH9.0 ไม่ได้ลง SQL จึงใช้คำสั่งนี้ไม่ได้ # update /etc/mail/*.db
  6. # cd /etc/mail
  7. # make
  8. # m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
  9. # /etc/init.d/sendmail restart
  10. # /sbin/chkconfig --level 3 sendmail on
    วิธีหยุด spam หรือ junk แบบ procmail ที่ http://www.redhat.com
  11. เปิดแฟ้ม /etc/postfix/main.cf ควบคุมการส่งอีเมลขยะออกจากเครื่อง ผ่าน relayhost
    #relayhost = [an.ip.add.ress]
    relayhost = smtp.yonok.ac.th
    แล้ว Restart Sendmail อีกครั้ง ตรวจด้วย ps -aux | grep sendmail

9.79 ติดตั้ง SSL (Secure Sockets Layer)
: ปกป้องรหัสของผู้ใช้เมื่อเชื่อมต่อกับเครื่องบริการ
SSL (Secure Sockets Layer) เป็นระบบรักษาความปลอดภัยในเว็บไซต์รูปแบบหนึ่งที่เป็นที่นิยมกัน ซึ่ง SSL จะใช้เพื่อเข้ารหัส (encrypt) ข้อมูลตัวมันเอง ใช้เพียงแต่การตรวจสอบหรือยืนยันได้เฉพาะฝั่งผู้ขายเท่านั้นว่ามีตัวตนจริง ไม่สามารถยืนยันตัวผู้ซื้อได้ ซึ่ง SSL จะมีความเร็วในการทำงานมากกว่า PKI ประมาณ 10 - 100 เท่า และยังสามารถใช้งานกับบราวเซอร์ต่าง ๆ ได้ การทำงานจะเริ่มจาก ผู้ใช้งานเริ่มกระบวนการติดต่อไปยังเว็บเซิร์ฟเวอร์ที่มีระบบ SSL หลังจากนั้นเซิร์ฟเวอร์จะส่งใบรับรอง (Server Certificate) กลับมาพร้อมกับการเข้ารหัสด้วยกุญแจสาธารณะ (Public Key) ของเซิร์ฟเวอร์ จากนั้นคอมพิวเตอร์ของฝั่งผู้รับจะทำการตรวจสอบใบรับรองอีกที เพื่อตรวจสอบตัวตนของฝั่งผู้ค้า หลังจากนั้นจะทำการสร้างกุญแจสมมาตร (Symmetric Key) โดยการสุ่มและทำการเข้ารหัสกูญแจสมมาตรด้วยกุญแจสาธารณะของเซิร์ฟเวอร์ที่ได้รับมาเพื่อส่งกลับไปยังเซิร์ฟเวอร์ เมื่อได้รับแล้วก็จะทำการถอดรหัสด้วยกุญแจส่วนตัว (Private Key) ก็จะได้กุญแจสมมาตรของลูกค้ามาใช้ในการติดต่อสื่อสาร เพื่อให้การติดต่อสื่อสารถึงกันได้อย่างปลอดภัย
อ.อิทธิพล เพื่อนของผมทดสอบใช้โปรแกรม sniffer ในเครือข่ายของเรา ทำให้ผมต้องศึกษา SSL อย่างจริงจัง แต่เครื่องเมล์ของผมใช้ Fedora ซึ่งมีเอกสารเกี่ยวกับรุ่นนี้ไม่มากนัก จึงใช้เวลา Config อยู่นานกว่าจะลงตัว Port ของ SSL คือ 443
    ตัวอย่างคำสั่ง #rpm -q httpd #rpm -ql openssl #rpm -q mod_ssl #rpm -qa |grep ssl #yum -y install httpd #yum -y install mod_ssl #find / -name openssl.cnf #openssl version -a #openssl help #openssl speed #ln -s /etc/pki/tls/certs/Makefile /etc/httpd/conf/ #cd /etc/httpd/conf #make server.key #/usr/bin/openssl rsa -in server.key -out server.key #make server.csr #/usr/bin/openssl x509 -in server.csr -out server.crt -req -signkey server.key -days 365 #chmod 400 server.* #vi /etc/httpd/conf.d/ssl.conf
    old #DocumentRoot "/var/www/html"
    new DocumentRoot "/var/www/html"
    old #ServerName www.example.com:443
    new ServerName yn1.yonok.ac.th:443
    old SSLCertificateFile /etc/pki/tls/certs/localhost.crt
    new SSLCertificateFile /etc/httpd/conf/server.crt
    old SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
    new SSLCertificateKeyFile /etc/httpd/conf/server.key #vi /etc/sysconfig/selinux
    old SELINUX=enforcing
    new SELINUX=disabled #vi /etc/httpd/conf/httpd.conf
    <VirtualHost 202.29.78.1:443>
    DocumentRoot /var/www/html/ssl
    ServerName www.isinthia.com:443
    SSLEngine on
    SSLCertificateFile /etc/httpd/conf/server.crt
    SSLCertificateKeyFile /etc/httpd/conf/server.key
    </VirtualHost> #/etc/init.d/httpd restart เว็บเพจที่พบข้อมูลเกี่ยวกับ SSL *** http://www.linux-sxs.org/internet_serving/apache2.html ละเอียดชัดเจน *** http://forum.modoeye.com/module30-32.html (สุดยอดจริง ๆ ) *** http://www.madboa.com/geek/openssl/ *** http://fedoracore4.com/SSLv-domain.php *** http://www.macmil.co.jp/macmil/linux017.htm (core 3 และ core 4) http://www.zend.com/tips/tips.php?id=152&single=1 http://www.linuxhelp.net/guides/apachessl/ http://www.moph.go.th/helpdesk/squid/linux-01.php http://nuke.thaihealth.net/article86.html http://bloggang.com/mainblog.php?id=naigod&month=07-12-2005&group=4&blog=1 http://itweb.lib.ru.ac.th/webboard/00193.html http://www.witty.net/books/apache.html http://www.ca.tot.co.th/knowledge_ssl.html (ความหมายไม่ยาว) http://thaicert.nectec.or.th/paper/unix_linux/apache_chklist.php (เป็นเพียง check list) http://www.acisonline.net/article_prinya_eweek_151147.htm (ช่องโหว่ของ SSL) http://www.phpconcept.com/index.php?option=content&task=view&id=12&Itemid=28 (ติดตั้งหลายอย่าง) http://www.tldp.org/HOWTO/SSL-Certificates-HOWTO/x246.html http://www.tldp.org/HOWTO/SSL-Certificates-HOWTO/x195.html http://www.stanton.dtcc.edu/stanton/cs/admin/notes/ssl/ http://bruno.vernay.free.fr/wp/index.php?tag=fedora http://www.joreybump.com/code/howto/smtpauth.html (SSL for SMTP) http://silas.psfc.mit.edu/tp41FC4.html (Thinkpad และ Fedora Core 4) http://fedorasrv.com/postfix-tls.shtml http://www.esensualstudios.com/linux.php http://www.shitomi.jp/server/apache.html http://www.trdlo.cz/webserver.php http://www.scalix.com/community/viewtopic.php?t=1634 http://httpd.apache.org/docs/2.0/ssl/ssl_howto.html http://www.tc.umn.edu/~brams006/selfsign.html http://www.apache-ssl.org/httpd.conf.example http://www.a-yu.com/net/apache07.html http://www.aconus.com/~oyaji/www/apache_linux_ssl.htm http://www.mail-archive.com/modssl-users@modssl.org/msg17111.html

9.95 การย้ายระบบ user จากเครื่องหนึ่งไปอีกเครื่องหนึ่ง
: วิธี copy passwd, shadow, group และแฟ้มอื่น ๆ อีกมากมาย
    ขั้นตอนการ copy passwd,shadow,group
    ขั้นตอนที่ 1 : เตรียมพร้อม และทำความเข้าใจ
  1. ใจเย็น ๆ ดูว่านอกจาก 3 แฟ้มดังกล่าวแล้ว ท่านจะคัดลอกแฟ้มอื่นอีก หรือไม่ เช่น mail ใน inbox ซึ่งอยู่ในห้อง /var/spool/mail หรือ ข้อมูลใน home directory ของทุกคน ถ้าทำก็จะยุ่งหละครับ ถ้าไม่อยากยุ่งยากใช้ ghost copy harddisk ตามหัวข้อ 9.96 ดีกว่าครับ 20 นาทีก็เสร็จ และขั้นตอนก็ไม่มีอะไรมาก แค่ถอดเครื่อง เสียบ harddisk ให้ถูก port แล้วก็ใช้โปรแกรม ghost ก็จะได้ harddisk 2 ตัวที่เหมือนกัน
  2. เหตุที่ต้อง copy /etc/passwd, /etc/shadow, /etc/group ใน case ของผม คือ server ตัวเก่ามีปัญหาสารพัด ลง server ตัวใหม่สมบูรณ์ดีแล้ว และที่หนักก็คือระบบเดิมเป็น scsi ใน sun ระบบใหม่เป็น linux เสียดาย account ถ้าสร้าง user ใหม่ทีละคน ก็ต้องใช้เวลา จึงต้อง copy account ทั้งหมดมา
    ขั้นตอนที่ 2 : เริ่ม copy และ backup
  3. ให้ใช้โปรแกรม ftp ดี ๆ จะได้สะดวกเช่น ws_ftp หรือ cute_ftp ย้ายข้อมูล หรือใช้ ftp จากเครื่องใหม่ติดต่อเข้าเครื่องเก่าก็ได้ สะดวกดี แต่ต้อง backup ของเดิมในเครื่องใหม่ด้วย
  4. เข้าไป copy ข้อมูลด้วย root ไปเก็บใน home ของ user demo และเปลี่ยน permission จะได้ copy ออกมาได้ เหตุที่ต้องใช้ demo เพราะแฟ้มที่กำลังจะ copy ส่วนใหญ่เป็นความลับ คนที่เข้าได้คือ root เท่านั้น แต่จะใช้ user root เปิด ftp ก็ไม่ได้ จึงต้องคัดลอกไปไว้ใน home ของ demo แล้วเปลี่ยน permission จะได้ คัดลอกออกมาได้
  5. ส่งข้อมูลทั้งหมดเข้าไปใน server ตัวใหม่ โดย get แบบ binary (ย้ำว่าแบบ ascii ไม่ work)
  6. ให้ copy passwd,shadow,group เก็บไว้อีกที่หนึ่ง เพราะถ้าส่งเข้าไปทับแล้วไม่ work จะมีปัญหาซะเปล่า เมื่อ copy เข้าไปแล้วก็อย่างพึ่ง reboot ให้ลองใช้ user ที่ copy มา connect เข้าไปเป็น root ถ้าใช้ได้ก็ถือว่า copy สำเร็จ
  7. copy แฟ้มทั้งหมดในห้อง /var/spool/mail ซึ่งเป็นห้องเก็บ inbox ของทุกคน
  8. copy แฟ้มทั้งหมดในห้อง /var/www/html ซึ่งเป็นห้องเก็บ web space ของทุกคน
  9. copy แฟ้มทั้งหมดในห้อง /home ซึ่งเป็นห้องเก็บข้อมูลต่าง ๆ ของทุกคน (อาจสร้างให้ใหม่ได้)
    ขั้นตอนที่ 4 : แก้ permission และสร้าง home
  10. สร้างรายชื่อสมาชิกทุกคนให้ใช้คำสั่ง cut /etc/passwd --fields=1 --delimiter=: >listall จะได้แฟ้มชื่อ listall ซึ่งมี username ของทุกคน
  11. ใช้ pico listall เข้าไปลบรายชื่อที่ไม่คิดจะสร้าง home เช่นรายชื่อของผู้ใช้ที่ระบบสร้างให้ ให้ท่านลบทิ้งซะ
  12. เนื่องจาก mail ใน /var/spool/mail ที่คัดลอกมามี owner และ permission ไม่ถูกต้อง และ home แต่ละคนก็ยังไม่มี จึงใช้ shell script ด้านล่าง
    อย่าลืมเอา # ออกตามสมควร
      #!/bin/sh
      # exit 0
      # chmod 700 crthome
      # shell>crthome <listall
      read getu
      while [ $getu. != '.' ]
      do
        echo $getu
        ## change mail owner
        chown $getu:mail /var/spool/mail/$getu
        chmod 660 /var/spool/mail/$getu
      
        ## create home
        # mkdir /home/$getu
        # chown $getu:users /home/$getu
        # mkdir /home/$getu/public_html
        # chown $getu:users /home/$getu/public_html
        # chmod 711 /home/$getu
        # chmod 755 /home/$getu/public_html  
        read getu
      done
      

    ขั้นตอนที่ 5 : แฟ้มอื่น ๆ ที่ต้องพิจารณาที่จะคัดลอก
    db.yonok.ac.th
    db.isinthai.com
    db.lampang.net
    db.202.29.78
    resolv.conf
    named.conf
    httpd.conf
    grub.conf
    lilo.conf
    sendmail.mc
    procmailrc
    localhost.zone
    rc.local

9.96 วิธี copy server หรือ host(Backup)
: เนื่องจากผมเป็นมือใหม่อยู่มาก จึงลอง backup ระบบไว้หลายวิธี ทั้งวิธี copy ใน harddisk ตัวเดียว หรือต่าง harddisk

9.97 Server ตัวนี้ให้บริการอะไรได้บ้าง
: บริการต่าง ๆ ที่ Redhat 7.2 มีให้ และที่ลงโปรแกรมเพิ่ม
    บริการ เพื่อกรณีศึกษา โดยมือสมัครเล่น
  1. Linux server : telnet
  2. Web server : http, perl v.3, php3, java applet
  3. Mail server : pine, pop3, imap, webbased
  4. Proxy server : squid
    หัวข้อนี้ยังไม่เรียบร้อย

9.98 ขั้นตอนการทำ server ตัวนี้
: เพื่อให้ท่านหรือทีมงาน สามารถ setup server แบบนี้ได้ง่ายขึ้น จึงเขียนขึ้นตอนไว้ดังนี้
บริการ เพื่อกรณีศึกษา โดยมือสมัครเล่น
ขอแนะนำว่าถ้ายังไม่รู้อะไรเลย ให้ไปหาหนังสือสำหรับลง Linux มากอดให้อุ่นใจสักเล่มหนึ่ง เพราะเชื่อแน่ว่า ถ้าอ่านวิธีการติดตั้งที่ผมเขียน โดยไม่มีประสบการณ์ linux มาก่อน .. จะต้องบ่นว่าผมเขียนไม่รู้เรื่อง เนื่องจากเรื่องเหล่านี้เป็นเรื่องที่เฉพาะ น้อยคนจริง ๆ ที่จะชำนาญ ผมเองก็พยายามศึกษาอยู่ ก็ได้แค่พอเป็นเท่านั้น (แต่นี่ผมก็พยายามเขียนให้ผมเข้าใจง่ายที่สุดแล้วนะครับ)
    ขั้นตอนการติดตั้ง เมื่อ RedHat 9.0 (ปรับปรุงล่าสุด :: 13 กุมภาพันธ์ 2547)
  1. ติดตั้ง linux พร้อม Config ให้ใช้งานเครือข่ายได้
    รับผิดชอบโดย คุณสุวิทย์ คุณประเสริฐ เพราะชำนาญการ install Redhat
    บ่อยครั้งที่ต้องติดตั้งโปรแกรมเพิ่ม จึงต้องหามาจาก CD และใช้คำสั่ง rpm -i
    ชื่อแฟ้มใน CD ทั้ง 3 แผ่นมีดังนี้ แผนที่ 1, แผนที่ 2, แผนที่ 3
  2. #/usr/bin/setup
    1. แล้วกำหนด IP ด้วยนตัวเลือก network
    2. แล้วเปิดบริการด้วยตัวเลือก system services : httpd,imap,imaps,ipop2,ipop3,kudzu,named,network,pop3s,sendmail,sshd,syslog,vsftpd,xinetd,servers,services
  3. หัวข้อ 9.95 :: copy passwd, shadow, group จาก server ตัวหลัก มาแทนที่ในเครื่องที่ติดตั้งใหม่
  4. หัวข้อ 9.10 :: เพิ่ม IP ใน Server ตัวเดียวด้วย IFCONFIG
  5. หัวข้อ 9.65 :: เปิดบริการ SAMBA server
  6. หัวข้อ 9.66 :: เปิดบริการ DNS server ให้คอมพิวเตอร์ทั้งหมดในเครือข่าย สามารถใช้ชื่อเว็บไซต์ได้ถูกต้อง มิเช่นนั้นต้องใช้ตัวเลข
  7. หัวข้อ 9.78 :: เปิดบริการ sendmail หรือ smtp ให้ผู้ใช้สามารถส่ง e-mail ด้วย outlook ผ่าน server ของเรา
  8. หัวข้อ 9.62 :: แก้ไขแฟ้ม /etc/httpd/conf/httpd.conf เพื่อเปิดบริการต่าง ๆ ของ apache webserver
  9. หัวข้อ 9.63 :: เปิดบริการ FTP server
  10. หัวข้อ 9.68 :: เปิดบริการ Web-based mail ด้วย uebimiau-2.7.2-any.zip
  11. หัวข้อ 9.67 :: เปิดบริการ Web hosting file manager ด้วย easyhost_free.zip
  12. หัวข้อ 9.11 :: เปิดบริการ Virtual hosts
  13. หัวข้อ 9.76 :: เปิดบริการ RADIUS server
  14. หัวข้อ 5.1 :: เปิดบริการ MYSQL server
  15. หัวข้อ 9.69 :: เปิดบริการ DHCP server แจก Dynamic IP

9.99 การบำรุงรักษา และตรวจสอบ
: บริการให้ดีต้องหมั่นบำรุงรักษา ไม่งั้นอาจอยู่ได้ไม่นานเท่าที่ควร
    9.99.1 สรุปปัญหา วิธีตรวจสอบ และการแก้ไขเบื้องต้น (เมื่อมีปัญหาเกิดขึ้น)
  1. เมื่อเครื่องของผู้ใช้ต่อ internet ไม่ได้ (ตรวจสอบโดยผู้ใช้)
    + ตรวจสอบว่าอะไรใช้ไม่ได้ เช่น http, workgroup, ping หรือ smtp เป็นต้น แล้วหาสาเหตุ
      - http : ถ้าเปิดเว็บใดไม่ได้ ลองเปิดหลาย ๆ เว็บ เพราะบางเว็บอาจ down ชั่วคราว
      - workgroup : Folder sharing ภายในสถาบัน ประกอบด้วยหลายวง หลายระบบปฏิบัติการ บางเครื่องอาจถูกยกเลิกการ share
      - ping : ตรวจด้วยการพิมพ์ ping 202.29.78.254 หรือ 202.29.78.11 เพื่อดูว่าเครื่องท่านเห็นไม่หากไปจากระบบ
      - smtp : ถ้าใช้ smtp.yonok.ac.th ไม่ได้เพราะ server ล่มให้แจ้ง 125 เพราะระบบอาจ hang หรือ over limited
      - winipcfg : คำสั่งนี้ใช้ดูว่า ip ของท่านเบอร์อะไร บางครั้ง ip หาย ท่านสามารถกำหนดได้ด้วยตัวเอง จากเบอร์ที่ติดไว้กับเครื่อง
    + ก่อนแจ้งเจ้าหน้าที่ 125 ท่านควรปฏิบัติดังนี้
      - ให้ reboot เครื่องใหม่ ก่อน reboot ให้ตรวจสอบสายต่าง ๆ ว่าอยู่ในที่ควร หรือไม่ แล้วทดสอบอีกครั้ง
      - ตรวจสอบ HUB และระบบเชื่อมต่อ สำหรับปัญหาที่อาจเกิดจาก hardware ผู้ใช้บางท่านอาจถอดสายไฟของ hub ออก หรือสะดุดจนหลุด
  2. เว็บ หรือ e-mail ของโยนก ใช้การไม่ได้ (ตรวจสอบโดยเจ้าหน้าที่ 125)
      # ping 202.29.78.12 (ตรวจว่าเครื่อง server เปิดบริการในเครือข่าย หรือไม่ โดยทดสอบจากเครื่องลูก)
      # df (ตรวจว่า harddisk เต็มหรือไม่ ถ้าเต็มต้องไปลบ e-mail ของบางท่าน)
      # เปิดเว็บ http://www.yonok.ac.th (ตรวจว่า named และ httpd ทำงานปกติหรือไม่ ถ้าไม่ได้ ให้สั่ง reboot)
    24/11/2004
  3. ติดต่อ Internet นอกโยนกไม่ได้ (ตรวจสอบโดยเจ้าหน้าที่ 125)
      - ping 202.29.78.254 หรือ ping 202.28.202.74 (ถ้าติดต่อไม่ได้ให้ reboot ถ้ายังไม่ได้ต้องใช้สาย console เข้าไป config ใหม่)
      - ตรวจสอบไฟสัญญาณของ Fiber modem หรือ Converter ด้วยการมอง ถ้ามีไฟแดงที่ modem ให้แจ้งคุณภากร (0-5421-7200, 0-9759-0946)
      - ตรวจสอบ Router ฝั่งเชียงใหม่ โดย ping 202.28.29.41 ถ้าติดต่อไม่ได้ให้แจ้ง คุณประเสริฐ (0-2248-7749)
  4. กรณีเครื่องในห้อง lab1, lab2 หรือ lab3 ใช้ internet ไม่ได้ (ตรวจสอบโดยเจ้าหน้าที่ 125)
      - ตรวจสอบเครื่อง DHCP ว่าเปิดบริการ หรือไม่ ด้วยการ ping 192.168.0.1 หรือ ping 202.29.78.11
      - ตรวจสอบ hub ที่เชื่อมโยงตามจุดต่าง ๆ ปัญหาอาจเกิดจาก hub มีอาการ hang ชั่วคราว
  5. กรณี router ของโยนกเสีย (ตรวจสอบโดยเจ้าหน้าที่ 125)
    router ที่ใช้อยู่คือ CISCO router 2511 เป็นรุ่นเก่าใช้มาตั้งแต่ปี 1996 ปัจจุบันเสียเป็นบางจังหวะมาแล้ว ประมาณ 4 ครั้ง ครั้งล่าสุดส่งซ่อมที่ร้าน smart service ซึ่งเป็นตัวแทน CISCO ในจังหวัดลำปาง แต่มิได้ซ่อมอย่างแท้จริง เพียงแต่นำไปปัดฝุ่นภายใน พร้อมตรวจสอบปัญหาในเบื้องต้น มีค่าใช้จ่าย 450 บาท แล้วนำกลับมาใช้ใหม่
    ปัญหาของ router คือ หยุดทำงานกระทันหัน ping เข้าไปไม่ได้ ใช้สาย console ติดต่อเข้าไปไม่ได้ ทางร้านวิเคราะห์ว่า อุปกรณ์สำคัญไม่มีปัญหา แต่มีบางชิ้นที่ไม่ทำงานในขณะเย็น ต้องอุ่มเครื่องให้ร้อน router จึงจะทำงานได้ปกติ เมื่อมีปัญหาให้ปิด และเปิดทิ้งไว้ประมาณครึ่งชั่วโมง หากไฟที่ปุ่ม ok สว่างมาก ก็แสดงว่า router ทำงานได้ปกติ แต่ขณะมีปัญหาไฟนี้จะไม่สว่างมาก แสดงว่าไฟฟ้าเข้าไม่เต็มที่
    ช่างแจ้งว่าปัญหานี้ซ่อมได้ แต่ต้องนำแต่ละชิ้นมาตรวจสอบ หากพบชิ้นที่มีปัญหา ก็จะสั่งซื้อจากคลองถมที่กรุงเทพฯ หากพบก็จะนำชิ้นส่วนนั้นมาติดตั้งแทน แต่อาจหาได้ไม่ง่าย เพราะเป็นอุปกรณ์ที่มิได้ใช้กันทั่วไป และส่วนใหญ่ make in U.S.A. หลังจากส่งให้ร้าน 3 วัน จึงรอต่อไปไม่ได้ เพราะร้านก็ไม่แน่ใจว่า ถ้าถอดและซ่อมจริง จะหาอุปกรณ์ที่มีปัญหานั้นพบในเวลากี่วัน
      ทางเลือกสำหรับปัญหา router เสีย (CISCO คืออุปกรณ์ที่นิยม และน่าเชื่อถือ ที่สุดในโลก)
    1. ไม่ซ่อม แต่แก้ปัญหาด้วยการปิด และเปิดใหม่ บางครั้งใช้เวลา 1 ชั่วโมงกว่าจะเครื่องร้อน (ปัจจุบันเลือกทางนี้)
    2. ซื้อ smart net ซึ่งเป็นประกัน หากต่อไปเสีย แล้วส่งเข้าบริษัท CISCO ทางบริษัทจะส่งตัวอื่นให้ใช้แทน ค่าใช้จ่าย 17800 บาทต่อปี
    3. ซื้อตัวใหม่ยี่ห้อเดิม ที่มีศักยภาพเทียบเท่า หรือสูงกว่าตัวเดิม มีค่าใช้จ่ายประมาณ 150,000 บาท
    4. ซื้อตัวใหม่ยี่ห้อใหม่ ที่มีศักยภาพ และความคงทน ต่ำกว่ายี่ห้อเดิม มีค่าใช้จ่ายประมาณ 50,000 บาท
    9.99.2 สิ่งที่ควรกระทำ และเข้าใจ
  1. ps aux ตรวจสอบว่ามี process แปลก run อยู่บ้างไหม
  2. top เพื่อดู process ที่กำลังทำงานในปัจจุบัน
  3. เข้าห้อง /var/log ซึ่งมี log file ขนาดใหญ่ ๆ ทั้งนั้น Clear บ้าง หรือจะเข้าไปดูร่องรอยของผู้ใช้ก็ได้
  4. เข้าห้อง /tmp ว่ามีแฟ้มอะไรแปลกปลอมเข้ามา ให้ clear ได้
  5. ใช้ last | more เพื่อดูรายชื่อผู้ใช้ล่าสุด ถ้าอยู่ๆ last เหลือนิดเดียว .. แสดงว่า hacker เข้ามาลบร่องรอย
  6. find / -cmin -600 | more แสดงชื่อแฟ้มที่มีการเปลี่ยนแปลงใน 10 ชั่วโมงที่ผ่านมา ในทุก Directory แต่จะออกมามากไปหน่อย ต้องค่อย ๆ ดู หรือตัด / แล้วทำเฉพาะในห้องที่สงสัยก็ได้
  7. cat /var/log/messages |grep login|more ดูว่ามีคนแปลกหน้า Login หรือพยายามเข้ามาหรือไม่ แต่อาจไม่ได้ผล ถ้า hacker มืออาชีพเขาจะลบแฟ้มนี้ทิ้ง ก่อนออกไป
  8. backup harddisk ด้วย #dd if=/dev/hda1 of=dev/hdc1 เป็นต้น แต่ต้องใช้ fdisk -l ตรวจสอบให้ดีก่อน
    9.99.3 อบรมบุคลากร
    คำสั่งเบื้องต้น 1 (ดูแฟ้ม ดูห้อง ดูผู้ใช้)
  1. ls -al (list directory contents)
  2. man ls ( -t คือ อะไร)
  3. ls -alt | more
  4. chmod 755 x.htm -Rf
  5. chown root:mail noriko -Rf
  6. find / -name hello.pl
  7. ls > x.htm
  8. cat x.htm (concatenate files and print on the standard output)
  9. cat /etc/passwd |grep home
  10. rm x
  11. mkdir img
  12. cd ..
  13. rmdir img
  14. pwd (print name of current/working directory)
  15. echo $PATH
  16. PATH=$PATH:/sbin:/usr/sbin
  17. whereis man ( locate the binary, source, and manual page files for a command)
  18. w (Show who is logged on and what they are doing)
  19. who (show who is logged on)
  20. id (print real and effective UIDs and GIDs)
  21. finger atichart (user information lookup program)
  22. last (show listing of last logged in users)
  23. exit
  24. tail --lines=5 /var/log/messages
  25. lynx http://www.yonok.ac.th/main/intro4.htm
    คำสั่งเบื้องต้น 2 (ดูระบบ)
  26. du (ดูขนาด estimate file space usage)
  27. df (ดูระบบแฟ้ม report filesystem disk space usage)
  28. /sbin/service --status-all
  29. /sbin/ifconfig (configure a network interface (LAN Card))
  30. netstat -a (Print network connections, routing tables, interface statistics, ..)
  31. top (display Linux tasks)
  32. env (run a program in a modified environment)
  33. nslookup 202.28.18.65 ( query Internet name servers interactively)
  34. ps -aux (report a snapshot of the current processes)
  35. kill -9 12345 ( terminate a process)
  36. traceroute www.thaiall.com (print the route packets take to network host)
  37. vi (a programmers text editor)
    ทบทวน เบื้องต้น
  38. mkdir public_html
  39. chmod 775 public_html
  40. vi index.html
  41. cat index.html |grep @
  42. pico x.htm
    คำสั่งระดับกลาง
  43. fsck /
  44. shutdown -h now
  45. reboot
  46. runlevel
  47. cat /etc/inittab
  48. chkconfig --list
  49. mount /dev/cdrom
  50. mkbootdisk --device /dev/fd0 2.4.18-14
  51. su bcom302
  52. crontab -l
  53. date 04271340
  54. hwclock --systohc
  55. cp /hd/home/* /home -fr
  56. nmap -sT www.yonok.ac.th (Network exploration tool and security scanner)
  57. rpm -i imap-4.7-5.i386.rpm
ตารางเปรียบเทียบแอพพลิเคชันชนิดเดียวกัน ระหว่าง Linux และ Windows server
Software typeLinuxWindows server
ฐานข้อมูลMySQL, Postgres, Informix SE, OracleMS SQL server, Oracle, MS Access
พร็อกซีเซิร์ฟเวอร์SquidMS Proxy server
ไฟล์เซิร็ฟเวอร์Samba, NFSMS Network
เว็บเซิร์ฟเวอร์ApacheIIS, Tomcat, Omni
ออฟฟิศStarOffice, Office TLEMS Office
กราฟิกGimpAdobe Photoshop
ส่วนที่ 5 : คำสั่ง (Command)
ระบบปฏิบัติการลีนุกซ์ (Linux Operating System) คือ ระบบปฏิบัติการ (Operating System) ที่พัฒนาต่อยอดมาจากระบบยูนิกส์ (UNIX) ซึ่งยูนิส์ใช้งานบนเครื่องมินิคอมพิวเตอร์ หรือเครื่องเมนเฟรม ดังนั้นลินุกซ์จึงถูกปรับปรุงให้ใช้งานบนเครื่องคอมพิวเตอร์ส่วนบุคคล เช่นเดียวกับระบบปฏิบัติการดอส (DOS) หรือระบบปฏิบัติการวินโดว์ (Windows Operating System) ซึ่งลีนุกซ์เป็นซอฟต์แวร์ภายใต้ลิขสิทธิ์จีพีแอล (GPL = GNU Public License) ถูกพัฒนาโดยนักศึกษาชื่อ Linus B. Torvalds จาก University of Helsinki ประเทศ Finland ประกอบการเรียนในวิชาระบบปฏิบัติการ โดยต่อยอดมาจากระบบปฏิบัติการมินิกส์ (Minix Operating System)
ทีมงานอีสอินไทย (isinthai Team) ได้ศึกษา เรียบเรียง และจดบันทึก เพื่อบอกเล่าเรื่องราวเกี่ยวกับการติดตั้ง ทดสอบ และใช้งานเครื่องบริการด้วยระบบปฏิบัติการลีนุกซ์ โดยหวังว่า นักศึกษา หรือผู้สนใจ จะได้ข้อมูล หรือร่วมแลกเปลี่ยนประสบการณ์ จนมีความรู้ไปถ่ายทอด ต่อยอด เพื่อพัฒนาสังคมของเรา และหวังว่าข้อมูลเหล่านี้จะทำให้ผู้ดูแลระบบ สามารถจัดตั้ง และใช้งานเครื่องบริการในองค์กรของตนได้อย่างมีประสิทธิภาพ
ประเทศจีนพัฒนาระบบปฏิบัติการขึ้นมาเอง ประกาศใช้ Red Flag Linux และ Kingsoft WPS Office เป็นซอฟท์แวร์ของจีนไปแล้ว ? หมายความว่า ลีนุกซ์ คือ ระบบปฏิบัติการ คู่แข่งของ Microsoft Windows ที่ทั้งโลกกำลังจับตามอง และเป็นกำลังใจให้ทั้งคู่
หากมีข้อผิดพลาด ข้อเสนอแนะ หรือความคิดเป็นใด โปรดแจ้งทีมงาน
webmaster@yonok.ac.th
    ส่วนที่ 6 : เกี่ยวกับ Fedora ที่นำมาใช้แทน Redhat
  1. http://squirrelmail.org/download.php
    ใช้ #rpm -i squirrelmail-1.4.4-1.noarch.rpm
  2. imap ไม่พบใน core4 พบแต่ใน core1 สำหรับ core4 ใช้ dvecot-0.99.14 แทน และ setup เข้าไปเปิดบริการได้
  3. getsebool -a ใช้ดู SELinux Boolean ทั้งหมด
  4. ถ้าต้องการใช้บางโปรแกรม แต่ไม่พบใน setup ก็ต้องใช้ lynx download โปรแกรม
    #lynx ftp://ftp.nectec.or.th/pub/.3/Fedora/core/4/i386/os/Fedora/RPMS/vsftpd-2.0.3-1.i386.rpm
    #rpm -i vsftpd-2.0.3-1.i386.rpm
    #service vsftpd start
  5. พบปัญหาการเปิด ftp ใน xinetd และ vsftpd ชนกัน
    ต้องเข้าไปลบแฟ้ม vsftpd ใน /etc/xinetd.d
    เพื่อให้เหลือเฉพาะ vsftpd ใน /etc/init.d
    ถ้าชนกันจะพบคำว่า 500 OOPS: could not bind listening IPv4 socket จาก ftp ของ client
    ? มีเพื่อนชาวไทยโทรมาถาม แล้วผมก็ตอบอย่างที่เขียนไว้ด้านบนนี้
  6. แก้แฟ้ม /etc/vsftpd/vsftpd.conf
    write_enable=YES
    anon_upload_enable=YES
    anon_mkdir_write_enable=YES
  7. คำสั่งตรวจสอบ server
    #rpm -qa|grep ftp
    #chkconfig --list
    #nmap -sT localhost
    #netstat -a|grep ftp
    #xinetd -d
  8. อ่านจาก http://www.itwizard.info/webboard/view.php?No=545
    ssl_disable = yes
    getsebool httpd_can_network_connect
    setsebool httpd_can_network_connect=1 (แต่ถ้า reboot ก็จะหาย)
    หรือ setsebool -P httpd_can_network_connect=1
    ถ้า set ค้าง ต้องเปิดแฟ้ม /etc/selinux/targeted/booleans.local มาแก้ไข
    ถ้า disable SELINUX จะพบปัญหาหลายอย่างน้อยลง เช่นปัญหาการเปิดบริการ DHCP ก็จะหาย
    โดยเปิดแฟ้ม /etc/selinux/config แล้วกำหนด SELINUX=disabled
  9. สำหรับ user ที่ต้องการใช้ ~user ให้กำหนด #chcon -R -t httpd_user_content_t public_html
  10. FC4 ใช้ dovecot แทน imap รายละเอียดใน 9.78
    ส่วนที่ 7 : ทดสอบ LinuxSIS 5.0 (FC4)
  1. User: root Password: 123456
  2. ping www.thaiall.com
  3. ifconfig
  4. putty 192.168.1.3 Port 22 of SSH User:s01 Password:s01
  5. http://192.168.1.3 User: root Password: 123456
    + เว็บเมล, จัดการโฮมเพจ (Drupal), คลังรูปภาพ (Gallery2), บทเรียนออนไลน์ (Moodle), เปลี่ยนรหัสผ่าน
  6. pwd
  7. service --status-all
  8. top
  9. rpm -qa
  10. vi /etc/hosts เพิ่มคำว่า burin
  11. /etc/init.d/named restart
  12. ping burin
  13. cd /var/www/html/
  14. vi x.htm (for only root)
  15. http://192.168.1.3/x.htm
  16. cd /home/s01/public_html
  17. vi x.htm (for only root)
  18. cd /etc/httpd/conf and vi httpd.conf and Unmark #UserDir public_html
  19. /etc/init.d/httpd restart
  20. http://192.168.1.3/~s01/x.htm
  21. ftp 192.168.1.3 User:s01 Password:s01
  22. /etc/init.d/mysqld start (error)
  23. http://192.168.1.3/drupal/ (User: root Password: 123456 error)
  24. reboot
    ส่วนที่ 8 : แนะนำเว็บไซต์เกี่ยวกับ linux หรือที่มีเอกสารดี ๆ
  1. http://linux.about.com/library/cmd/blcmdl_1a.htm รวมคำอธิบายคำสั่ง Linux Command
  2. http://www.tldp.org/LDP/intro-linux/html/ Introduction to linux
  3. http://www.itwizard.info (เผยแพร่เรื่อง Linux ยอกมาก ๆ)
  4. http://linux.thai.net (Thai Linux Working Group หรือ LTN) มีเรื่องน่าอ่านเยอะ
  5. http://thaicert.nectec.or.th/paper/paper.php มีหัวข้อมากมายให้อ่าน
  6. http://www.thaiall.com/webserver การติดตั้ง webserver ด้วยหลาย ๆ โปรแกรม และหลายบริการ
  7. http://www.ppk.ac.th/web01/linux/ (บทความเกี่ยวกับ Linux เพียบ)
  8. http://www.sut.ac.th/ccs/news/tip_tech/tip002.asp (บทความยอดเยี่ยมเกี่ยวกับ Proxy)
  9. http://www.windowsnetworking.com/articles_tutorials/Windows_POP3_Service.html (ติดตั้ง pop3 ใน win2003)
  10. http://stanton-finley.net/fedora_core_4_installation_notes.html (การติดตั้ง FC4)
  11. ฐาปกรวัจน์ นิ่มนวล tapakornwat@yahoo.com ให้ CD Fedora.com มา 4 แผ่น ผมจึงได้ทดสอบ
  12. http://www.thaifuture.50megs.com/Li_SUcomm.html (นำไปเผยแพร่ต่อ)
    บริการที่น่าสนใจ
  13. http://www.apnic.net/apnic-bin/whois.pl?searchtext=202.29.78.12 (ตัวอย่างบริการของ apnic whois)
  14. http://www.maxmind.com/app/lookup (ดูชื่อประเทศ จากหมายเลข IP)
  15. http://netmon.tsu.ac.th/proxystat/ (ตัวอย่าง Proxy Statistic ของ Webalizer Version 2.01)
ส่วนที่ 9 : วัตถุประสงค์ของเว็บไซต์
1. เพื่อรวบรวมประสบการณ์ของผู้เกี่ยวข้องกับการใช้งานระบบปฏิบัติการลีนุกซ์เผยแพร่สู่สาธารณะ
2. เพื่อเป็นแหล่งอ้างอิงสำหรับนักศึกษา บุคลากร และผู้สนใจ
3. เพื่อรับข้อซักถาม ข้อเสนอแนะ และข้อคิดเห็นมาปรับปรุงระบบให้สมบูรณ์ยิ่งขึ้น
จัดทำโดย มหาวิทยาลัยโยนก จังหวัดลำปาง Tel.(66)54-265170 Fax.(66)54-265184
ศูนย์กลางความรู้ และภูมิปัญญาแผ่นดิน
เริ่มบริการข้อมูล 4 ตุลาคม 2543 (มาตรฐาน xhtml และ css)