linux training in Thailand
| Home | Articles | Download | Free Linux Tips | Resources | Training | Web Link | Linux Training English|
| Courses | Schedule | Price & Promotion | Map | Customer Ref. | Instructors | Certification | FAQ | Registration Form |
สถาบันฯ ขอแจ้งปิดทำการระหว่างวันที่ 27 -31 กรกฏาคม 2558 และเปิดทำการปกติวันที่ 3 สิงหาคม 2558
We are on vacations 5 days in July 27-31, 2015 Please contract Line ID : nok_fly or e-mail : info@itdestination.com
ITDestination จะปิดปรับปรุงเว็บไซต์ ตั้งแต่วันที่ 7 - 9 มิถุนายน 2556
อาจจะทำให้ใช้งานไม่ได้ในบริการ Webboard Freetips และ E-Learning จึงขออภัยในความไม่สะดวกมา ณ ที่นี้
สถาบันฯ ขอแจ้งปิดทำการวันที่ 22-28 กุมภาพันธ์ 2560 และจะเปิดทำการปกติในวันที่ 1 มีนาคม 2560
กรณีติดต่อส่งข้อความมาที่ Facebook: LinuxITDestination หรือ e-mail: info@itdestination.com ซึ่งจะติดต่อกลับประมาณ 17.00 น.
ผู้ลงทะเบียนอบรมสามารถทำข้อสอบ online ในช่วงที่มาอบรมเพื่อทบทวนความรู้ ทำได้ไม่จำกัดจำนวนครั้ง มีข้อเฉลยที่ถูกต้องแนะนำ
สอบถามรายละเอียดโทร 089 890-5494 >>> อ่านรายละเอียด... คลิ๊ก

ความสำเร็จในการนำลีนุกซ์มาใช้ในองค์กร

สร้างระบบรวบรวมข้อมูลด้วย Linux Anonymous FTP

โดย ธีรภัทร มนตรีศาสตร์,RHCE

"การนำ FTP Server มาช่วยหาทางออกแนวทางที่ที่ให้มีการนำเอาระบบปฏิบัติการเล็กๆ
อย่างลีนุกซ์มาช่วยแก้ไขปัญหาใหญ่ๆ "
จุดมุ่งหมายที่เราต้องการใช้ประโยชน์จากระบบคอมพิวเตอร์และเครือข่ายในหน่วยงานองค์กรต่างๆ นั้นมีความหลากหลาย แตกต่างกันไปตามลักษณะของงาน และปัญหาของแต่ละแห่งที่เกิดขึ้น หลายครั้งที่ผู้เขียนมีโอกาสได้รับฟังปัญหาจากผู้ที่เข้ามารับการอบรมและได้ช่วยเหลือในการเสาะหาวิธีการแก้ไขปัญหาที่เหมาะสมให้จนประสบความสำเร็จ และนำมาใช้งานกันอยู่จนถึงทุกวันนี้ ลักษณะปัญหาของงานอย่างหนึ่งที่มักจะพบอยู่เสมอ ไม่ว่าจะเป็นหน่วยงานภาคธุรกิจหรือภาครัฐ ก็คือ การรวบรวมข้อมูลจากหน่วยงานย่อย ๆ ที่แยกกันออกไปปฏิบัติงานของตนเอง กระจัดกระจายอยู่ในสถานีงานที่ห่างไกลกันออกไปมากบ้างน้อยบ้างก็แล้วแต่ลักษณะงาน ข้อมูลที่กล่าวถึงนี้บางหน่วยงานก็เป็นเพียงแฟ้มข้อมูลรายงานข้อมูลรายวัน บ้างก็เป็นข้อมูลที่คัดออกมาจากฐานข้อมูล หรือไม่ก็เป็นข้อมูลจากการประมวลผลมาแล้วแต่จะต้องส่งเข้ามาประมวลผลรวมที่ศูนย์กลางอีกครั้ง ซึ่งเดิมทีหน่วยงานเหล่านั้นก็มีวิธีการปฏิบัติของตนเองที่แตกต่างกันไปสุดแล้วแต่จะค้นหาทางออกกัน งานก็สามารถดำเนินไปได้ดีพอสมควร แต่เมื่อเวลาผ่านไป มีการขยายงานมากขึ้น ปริมาณข้อมูลที่เพิ่มขึ้น ทำให้ในที่สุดก็ยังคงมีปัญหาให้ปรับปรุงแก้ไขกันอยู่ดี กรณีปัญหาหนึ่ง โรงงานอุตสาหกรรมแห่งหนึ่งมีเครื่องคอมพิวเตอร์ลูกข่ายเกือบสี่ร้อยเครื่อง แต่ละจุดต้องรันโปรแกรมเฉพาะเพื่องานผลิต ด้วยความที่ซอฟต์แวร์แต่ละส่วนงานมักจะมีที่มาจากระบบที่แตกต่างกันจึงไม่สามารถทำงานเป็นระบบเดียวกันได้โดยตรง ( ปัญหานี้เป็นเรื่องปรกติที่น่าเบื่อที่สุดของบรรดาผู้ดูแลระบบ ) ดังนั้นจึงต้องมีการโอนถ่ายข้อมูลจากแต่ละจุดไปยังศูนย์กลางเพื่อนำข้อมูลไปรวบรวมและประมวลผลในระบบฐานข้อมูลเป็นขั้นตอนถัดไป เดิมทีจะใช้โปรแกรมที่พัฒนาขึ้นเองโดยเฉพาะในการโอนแฟ้มข้อมูลผ่านเว็บเพจซึ่งใช้งานได้ง่าย และทำงานได้น่าพอใจ แต่ระยะหลังเมื่อมีจำนวนจุดทำงานมากขึ้นทำให้เริ่มเกิดปัญหาส่งงานไม่ได้บ่อยมากขึ้น ทางฝ่ายไอทีจึงต้องเร่งแก้ไขปัญหาดังกล่าวนี้ โดยมีแนวคิดที่จะเพิ่มประสิทธิภาพให้แก่เว็บเซิร์ฟเวอร์ให้รองรับงานในเวลาเดียวกันได้มากยิ่งขึ้น แต่ผู้เขียนแนะนำให้เปลี่ยนไปใช้ FTP Server น่าจะเหมาะสมกว่า


รูปที่ 1 ลักษณะงานของกรณีปัญหาที่หนึ่ง

กรณีปัญหาที่สอง ศูนย์ไอทีแห่งหนึ่งเป็นหนึ่งในเครือบริษัทที่มีบริษัทในเครืออีกหลายบริษัท มีความจำเป็นต้องรับส่งเอกสารผ่านระบบเครือข่ายเกือบตลอดทั้งวันเพื่อการประสานงานรับเหมางานติดตั้งเครือข่ายสื่อสารทั่วประเทศ หัวหน้าศูนย์แห่งนี้เลือกใช้การรับส่งแฟ้มข้อมูลผ่านทางอีเมล์ในระยะแรก ปรากฏว่ามีปัญหาเกิดขึ้นมากมาย ได้แก่ จำนวนของผู้รับมีเพิ่มขึ้นหรือลดลงไม่แน่นอนทำให้การส่งเอกสารไม่ทั่วถึง ยุ่งยากในเรื่องการจัดการ Mailing List ขนาดของ Attachment ก็มีขนาดใหญ่มาก มีผลกระทบต่อระบบอีเมล์โดยรวมอีกด้วย ในระยะต่อมาจึงมีการเปลี่ยนมาใช้ระบบการรับส่งแฟ้มข้อมูลกันด้วยการ FTP ( File Transfer Protocol ) โดยทางศูนย์ไอทีทำการจัดตั้ง FTP Server ขึ้นด้วยระบบปฏิบัติการวินโดวส์ที่มีอยู่เดิม กับโปรแกรม FTP Server ที่หาได้ทั่วไป ซึ่งช่วยลดปัญหาต่าง ๆ ไปได้มาก แต่ก็ยังนำมาซึ่งปัญหาใหม่ คือ ไม่มีรายงานผลการรับส่งแฟ้มข้อมูลแจ้งให้ทราบเป็นหลักฐาน ทำให้เกิดปัญหาในด้านการประสานงาน เช่น ผู้ส่งงานอ้างว่าส่งงานเข้ามาแล้วทั้ง ๆ ที่ยังไม่ได้ส่ง หรือกลับกันคือ ฝ่ายผู้รับอ้างว่ายังไม่เห็นไฟล์ที่ส่งเข้ามา เป็นต้น เป็นภาระให้เจ้าหน้าที่ฝ่ายไอทีต้องคอยตรวจสอบให้ ที่สำคัญก็คือ ระบบที่ใช้งานอยู่นี้ไม่ยืดหยุ่นพอที่จะสร้างรายงานออกมาให้ผู้ใช้งานสามารถตรวจสอบได้ด้วยตัวเอง


รูปที่ 2 ลักษณะงานของกรณีปัญหาที่สอง

กรณีปัญหาที่สาม หน่วยงานเจ้าของกรณีปัญหาที่สามนี้เป็นบริษัทซอฟต์แวร์เฮ้าส์ซึ่งให้คำปรึกษาและพัฒนาซอฟต์แวร์ระบบงานให้แก่บริษัทอุตสาหกรรมการเกษตรแห่งหนึ่ง มีระบบฐานข้อมูลกระจายอยู่ในโรงงานและสำนักงานหลายจังหวัดด้วยกัน ลักษณะของงานคล้ายกันกับกรณีปัญหาที่ผ่านมาคือต้องการอัพเดตฐานข้อมูลกลางทุกวันโดยรวบรวมข้อมูลจากดาต้าเบสเซิร์ฟเวอร์ทุกแห่งเข้าด้วยกัน แตกต่างกันเพียงระยะทางที่ไกลกว่า ต้องการ Secure Connection และจะต้องจัดส่งข้อมูลเข้าสู่ศูนย์กลางโดยอัตโนมัติ


รูปที่ 3 ลักษณะงานของกรณีปัญหาที่สาม

ปัญหาของ FTP Server จากกรณีปัญหาที่ผ่านมาจะเห็นว่าการนำ FTP Serve มาช่วยงานน่าจะเป็นทางออกที่ใช้ได้ดี แต่ก็ยังมีสิ่งที่จะต้องพิจารณาเพิ่มเติมคือ โดยปรกติแล้วหากเราต้องการส่งแฟ้มข้อมูลเข้าสู่ FTP Server หรือที่เรียกกันว่าการอัพโหลด ( Upload ) จะต้องกำหนดให้ผู้ใช้งานล๊อกอินด้วยชื่อและรหัสผ่านที่กำหนดไว้ในระบบเสียก่อนจึงจะทำการอัพโหลดแฟ้มข้อมูลได้ รวมไปถึงสามารถกระทำการอื่น ๆ นอกเหนือจากการอัพโหลดได้ด้วย เช่น การดาวน์โหลด หรือลบแฟ้มข้อมูล ซึ่งจะก่อให้เกิดปัญหาตามมาอีกคือ
  • ผู้ใช้งานจะต้องจดจำชื่อ และรหัสผ่านในการอัพโหลด ถ้ามีใครลืมรหัสก็จะเป็นภาระเจ้าหน้าที่ผ่ายไอทีอีก ยิ่งมีจำนวนผู้ใช้มากขึ้นภาระก็เพิ่มมากขึ้นเป็นเงาตามตัว
  • ตำแหน่งที่จัดเก็บแฟ้มข้อมูลทั้งหมดควรรวมอยู่ในพื้นที่เดียวกันเป็นศูนย์กลาง หากกำหนดให้ใช้ชื่อผู้ใช้และรหัสเพียงชุดเดียว ย่อมเสี่ยงต่อความปลอดภัยของข้อมูลและตัวระบบเอง
  • ผู้ใช้งานมีสิทธิที่จะลบแฟ้มข้อมูลได้
  • กำหนดความต้องการ เพื่อความง่ายต่อการจัดตั้งคอนฟิกของเซิร์ฟเวอร์ เราควรกำหนดความต้องการให้ชัดเจนเสียก่อน เริ่มที่เรื่องของรหัสผ่าน ถ้าไม่ต้องกำหนดรหัสผ่านได้จะง่ายต่อการใช้งานและดูแลระบบเป็นอย่างมาก FTP Server ที่อนุญาติให้ผู้งานเข้าสู่เซิร์ฟเวอร์ได้โดยไม่ต้องมีชื่อและรหัสผ่านในระบบก็คือ Anonymous FTP Server นั่นเอง ซึ่งลีนุกซ์ Red Hat มีความพร้อมอยู่แล้ว อนุญาติให้อัพโหลดได้ คุณสมบัติข้อนี้จะต้องมีการเตรียมการเล็กน้อย เรียกว่า Anonymous Upload ส่วนเรื่องของการดาวน์โหลดจะไม่อนุญาติเฉพาะในกรณีปัญหาที่หนึ่งและสาม(ผู้ดูแลระบบจะเป็นผู้รวบรวมแฟ้มข้อมูลทั้งหมดและ นำไปประมวลผลต่อเอง ) แต่ในกรณีปัญหาที่สองจะยินยอมให้ผู้ใช้งานทั่วไปเข้ามาดาวน์โหลดได้ สำหรับการลบไฟล์นั้น Anonymous FTP จะไม่อนุญาติให้คอนฟิกในลักษณะ writable anonymous root ดังนั้นจึงมีการป้องกันในตัวเองไว้เรียบร้อยแล้ว คอนฟิก Red Hat Linux 9.0 เป็น Anonymous FTP Server ขั้นตอนการคอนฟิกควรติดตั้ง Red Hat Linux 9.0 โดยให้มีพาร์ทิชั่นหนึ่งแยกออกมาเป็น /guest ( ตั้งชื่ออื่น ๆ ได้ตามใจชอบ ) โดยกำหนดขนาดให้เพียงพอต่อการใช้งาน และเลือกติดตั้งเฉพาะแพคเกจที่จำเป็นต้องใช้จริง ๆ เท่านั้น สำหรับ FTP Server ของ Red Hat 9.0 คือแพคเกจ vsftpd ในกรณีปัญหาที่สองต้องการให้มีการรายงานสถิติการรับส่งไฟล์ผ่านเว็บเพจจะต้องมี Web Server ด้วย และสำหรับกรณีปัญหาที่สามมีการเชื่อมต่อเข้าสู่อินเตอร์เน็ตโดยตรงจึงควรเพิ่มแพคเกจที่เกี่ยวกับการรักษาความปลอดภัยขึ้นอีก ได้แก่ ipchains หรือ iptables และ tripwire หลังจากคอนฟิกเกี่ยวกับระบบเครือข่าย และความปลอดภัยต่าง ๆ เรียบร้อยแล้วก็เริ่มคอนฟิกเซิร์ฟเวอร์ในฐานะ root ได้ มีขั้นตอนดังนี้ กำหนดพื้นที่ให้บริการของ Anonymous FTP โดยใช้คำสั่ง useradd -d /guest ftp จากนั้นให้สร้างไดเร็คทอรี่ย่อยเพื่อใช้รับแฟ้มข้อมูลที่จะอัพโหลดด้วยคำสั่ง mkdir /guest/upload แล้วปรับ permission mode ด้วยคำสั่ง chmod 753 /guest/upload แก้ไขคอนฟิกหลักของ FTP Server โดยเปิดไฟล์ /etc/vsftpd/vsftpd.conf ด้วยโปรแกรม Text Editor เช่น vi ( หรือ pico ) แทรกเครื่องหมาย # หน้าบรรทัดข้อความ local_enable=YES เพื่อระงับการบริการแก่ผู้ใช้ธรรมดาทั่วไป แล้วลบเครื่องหมาย # หน้าบรรทัดข้อความ anon_upload_enable=YES และให้แน่ใจว่ามีบรรทัดข้อความ anonymous_enable=YES อยู่ บันทึกไฟล์คอนฟิกนี้ไว้ สตราร์ตบริการของ FTP Server โดยพิมพ์คำสั่ง service vsftpd restart และ chkconfig vsftpd on ตามลำดับ จะสังเกตเห็นโปรเซสของ vsftpd ทำงานด้วยคำสั่ง ps -A การทดสอบ ปรับแต่ง และใช้งาน ในการทดสอบให้ใช้โปรแกรม FTP Client เช่น CuteFTP ( บนวินโดวส์ ) NcFTP ( บนลีนุกซ์ ) คอนเน็คเข้าสู่ FTP Server ของเราในแบบ Anonymous แล้วลองอัพโหลดแฟ้มข้อมูลเข้าสู่พื้นที่ /upload ถ้าสามารถส่งแฟ้มข้อมูลได้ จะสังเกตเห็นปรากฏอยู่ที่ /guest/upload เช่นกัน ขณะนี้ถ้าอัพโหลดแฟ้มข้อมูลแล้วแต่มองไม่เห็นแฟ้มข้อมูลก็ถือว่าเป็นปรกติ เนื่องจากเราได้กำหนด Permission mode เป็น 753 ที่ไดเร็คทอรี่ /guest/upload นั่นเอง จึงไม่สามารถ List ดูรายชื่อไฟล์ได้ ถึงจุดนี้จะได้โซลูชั่นสำหรับกรณีปัญหาที่หนึ่งแล้ว เหลือเพียงแค่ฝึกอบรมให้ยูสเซอร์เปลี่ยนมาใช้วิธีการ FTP แฟ้มข้อมูลงานของเครื่องตนเองเข้าสู่ FTP Server เท่านั้น ซึ่งในทางปฏิบัติสามารถใช้การ Drag & Drop ในโปรแกรม Internet Explorer ก็ได้ซึ่งสะดวกกว่าการใช้โปรแกรมเว็บเบสที่ใช้อยู่ก่อนหน้านี้ และยังมีเสถียรภาพของการทำงานดีกว่าอีกด้วย สำหรับกรณีปัญหาที่สองจะต้องการใช้งานทั้งการรับและส่งแฟ้มข้อมูล ดังนั้นจึงต้องอนุญาติให้สามารถ List รายชื่อแฟ้มข้อมูล และสามารถดาวน์โหลดได้ ดังนั้นจึงจำเป็นต้องแก้ไขคอนฟิกอีกเล็กน้อย โดย
    1. แก้ไขไฟล์คอนฟิกของ vsftpd คือ /etc/vsftpd/vsftpd.conf แล้วเพิ่มข้อความ anon_umask=022 บันทึกไฟล์ แล้วสั่ง รีสตาร์ตบริการอีกครั้ง
    2. แก้ไข permission mode ใหม่ ด้วยคำสั่ง chmod 777 /guest/upload เพื่ออนุญาติให้อ่านเขียนข้อมูลได้
    อย่างไรก็ตาม กรณีนี้จะมีความเสี่ยงเกิดขึ้น เนื่องจากทุกคนที่เข้ามา FTP จะสามารถดาวน์โหลดแฟ้มข้อมูลไปได้ จึงต้องเตรียม กรณีปัญหาที่สองยังไม่จบเพียงเท่านี้ เนื่องจากยังไม่มีระบบรายงานสถิติการรับส่งไฟล์ให้ผู้ใช้งานได้ทราบ ซึ่งสามารถสร้างโปรแกรมรายงานนี้ได้ด้วยโปรแกรมเชลล์สคริปต์ หรือภาษาสคริปต์อื่น ๆ ก็ได้ โดยนำข้อมูลจากล๊อกไฟล์ของ FTP Server ( ใน Red Hat 9.0 คือไฟล์ /var/log/vsftpd.log ) มาวิเคราะห์แล้วรายงานผ่านทางเว็บเซิร์ฟเวอร์ เป็นอันเสร็จสิ้นกรณีปัญหาที่สอง


    รูปที่ 4 แสดงหลักการทำงานของระบบรายงานสถิติ

    กรณีปัญหาที่สาม มีความคล้ายกับกรณีปัญหาที่หนึ่ง คือ รองรับการอัพโหลดแฟ้มข้อมูลเข้ามาทิศทางเดียวเช่นเดียวกับกรณีปัญหาที่หนึ่ง แต่จำเป็นต้องมีการทำงานแบบอัตโนมัติเพิ่มขึ้น โดยสร้างโปรแกรมสคริปต์เล็ก ๆ ไว้ที่เซิร์ฟเวอร์แต่ละตัว กำหนดเวลาทำงานให้คัดแยกข้อมูลจากระบบฐานข้อมูลแล้วทยอยจัดส่งเข้ามายัง FTP Server ของเราเท่านั้น ซึ่งกรณีปัญหาที่สามนี้ปัจจุบันไม่เป็นปัญหาอีกต่อไปแล้ว และยังคงทำงานได้ปรกติดีซะด้วย


    รูปที่ 5 แสดงหลักการทำงานของกรณีปัญหาที่สาม

    อุปสรรคปัญหาที่เกิดขึ้น
    1. เนื่องด้วย Kernel ของ Red Hat Linux 9.0 ตัวที่มาพร้อมกับชุดติดตั้ง ( 2.4.20-8 ) มีปัญหาเกี่ยวกับ Input/Output จึงทำให้เซิร์ฟเวอร์เกิดอาการแครชเมื่อมีการอ่านเขียน ( ดาวน์โหลด/อัพโหลด ) หนาแน่นมากๆ ควรอัพเดตเคอร์เนลล่าสุดก่อนใช้งาน
    2. ระบบนี้จะยอมรับการอัพโหลดไฟล์เข้าสู่เซิร์ฟเวอร์เสมอ ดังนั้นจึงควรจำกัดการใช้เนื้อที่ดิสก์ด้วยระบบ Disk Quota ดังนั้นจึงควรจัดเตรียมพื้นที่เก็บข้อมูลให้แยกพาร์ทิชั่นและ mount point ออกไปตั้งแต่เริ่มเซ็ตอัพจะดีที่สุด
    3. ควรจำกัดโฮสต์ที่ติดต่อกับ FTP Server นี้ด้วย Firewall และ TCP Wrappers โดยเฉพาะในกรณีปัญหาที่สาม
    4. ถ้าการคอนเน็คเข้าสู่ FTP Server มีอาการตอบสนองช้าผิดปรกติ อาจเกิดจากระบบ Name Resolution ให้ตรวจสอบในส่วนของ DNS Services อีกครั้ง
    5. ระบบรักษาความปลอดภัยเป็นสิ่งที่ไม่อาจมองข้ามไปได้ ถึงแม้การใช้ Anonymous FTP จะลดจำนวน User Account ลงไปได้แล้วก็ตาม
    ขยับขยายได้อีก ในมุมมองของบรรดาผู้ใช้งานลีนุกซ์ในงานเซิร์ฟเวอร์แล้ว เสน่ห์ที่น่าหลงไหลของระบบปฏิบัติการตัวนี้ก็คือ ความสามารถที่สามารถต่อเติม ( Adaptive ) ได้อย่างอิสระ ไร้ข้อจำกัดนั่นเอง ทั้งในแง่การใช้งานซอฟต์แวร์ที่มีอยู่แล้ว หรือการสร้างโปรแกรมขึ้นเพื่อสนับสนุนงานของเราเองโดยเฉพาะก็ตาม หากพิจารณาดูกรณีปัญหาที่ผู้เขียนหยิบยกมาในครั้งนี้ให้ดี จะเห็นว่ายังมีช่องทางที่จะขยับขยายต่อยอดคุณสมบัติต่าง ๆ เข้าไปได้อีกมากมาย ทั้งนี้ขึ้นอยู่กับแนวความคิดของเราที่จะดัดแปลงประยุกต์สิ่งที่มีอยู่นำมาใช้ประโยชน์ ผู้เขียนขอแสดงความยินดีกับทุก ๆ องค์กรที่ประสบความสำเร็จในการใช้งานลีนุกซ์และโอเพ่นซอร์ส และหวังว่าบทความนี้คงจะเป็นแนวทางทำให้มีการนำเอาระบบปฏิบัติการเล็ก ๆ อย่างลีนุกซ์ไปใช้ช่วยแก้ไขปัญหาใหญ่ ๆ ได้บ้างนะครับ