VSFTPD

VSFTPD

Vsftpd คือ

เป็นเซิร์ฟเวอร์ FTP ที่มีความมั่นคงและปลอดภัย ซึ่งสามารถลดความเสี่ยงที่ผู้โจมตีจะเข้าถึงเซิร์ฟเวอร์โดยผ่านทางช่องโหว่ของ FTP ได้ ตัวอย่างไซต์ FTP ต่างๆ ที่รัน VSFTP ได้แก่ Red Hat, OpenBSD, และ SuSE แม้กระทั่งสถาบัน SANS ก็แนะนำว่า VSFTP เป็นเดมอน FTP ที่ควรใช้เพราะมีความปลอดภัยสูง

คุณสมบัติของ vsftpd

VSFTP เป็นเดมอน (daemon) ของเซิร์ฟเวอร์ FTP ที่รันบนระบบปฏิบัติการ Linux/UNIX ซึ่งมีคุณสมบัติหลักอยู่ 3 อย่าง ได้แก่

  • มีความปลอดภัย

  • มีประสิทธิภาพดี

  • มีความมั่นคง

นอกจากนี้โปรแกรม VSFTP ยังมีคุณสมบัติอื่น ๆ อีก ได้แก่ เป็นระบบที่มีขนาดเล็ก มีความสามารถในการจัดการ virtual users มีทางเลือกในการทำงานเป็นแบบ stand-alone configuration และแบบผ่านทางเดมอน inetd รวมทั้งสามารถจำกัดปริมาณการรับส่งข้อมูล (bandwidth) ในการให้บริการในเซิร์ฟเวอร์ ที่ต้องการควบคุมการใช้งานได้อีกด้วย

ในแง่ของความปลอดภัยนั้น VSFTP ได้ถูกออกแบบมาเพื่อแก้ไขจุดบกพร่องที่พบในการติดตั้ง wu-ftpd, proftpd, และแม้แต่ bsd-ftpd โดยการไม่ใช้บัญชีชื่อ root ซึ่งมีความเสี่ยง และใช้คุณสมบัติด้านความปลอดภัยที่มีประสิทธิภาพอย่าง chroot นอกจากนี้ยังมีการใช้เทคนิคการพัฒนาโปรแกรมอย่างปลอดภัยเพื่อแก้ปัญหาหน่วยความจำล้น (buffer overflows) ด้วย อ่านรายละเอียดเพิ่มเติมเกี่ยวกับความปลอดภัยของ VSFTP ได้ที่เอกสารเผยแพร่ ต่อไปนี้: Overview Design Implementation Trust และนอกจากนี้ยังมีการกล่าวถึง vsftpd ในแง่ของความปลอดภัยมากมาย ดังต่อไปนี้

  • ในเดือนพฤศจิกายน พ.ศ. 2545 ไซต์ ftp.openbsd.org ได้รัน vsftpd ซึ่งเป็นการยืนยันได้ว่า vsftpd มีคุณสมบัติดีเหมาะแก่การใช้เป็นเซิร์ฟเวอร์ FTP

  • vsftpd ไม่มีจุดบกพร่องชื่อ "globbing" ซึ่งมีผลกระทบต่อเซิร์ฟเวอร์ FTP หลายแห่ง สามารถศึกษาเหตุผลของการกำจัดจุดบกพร่องนี้ได้ในเอกสาร Bugtraq posting โดยมีคำอธิบายเหตุผล และหลักการออกแบบโปรแกรมด้วย

  • vsftpd ไม่มีจุดบกพร่องชื่อ "globbling" ที่เกี่ยวข้องกับการโจมตีแบบ denial of service ด้วยเหตุผลคล้ายๆ กัน ศึกษารายละเอียดได้ที่ Bugtraq posting

  • vsftpd ได้รับการสนับสนุนในหน้า Vanderbilt University ITS ภายใต้หัวข้อ "Safe Computing" ศึกษารายละเอียดได้ที่ http://www.vanderbilt.edu/its/security/safe_tools.html

  • vsftpd ได้รับการกล่าวถึงในหัวข้อความปลอดภัยว่า มีประสิทธิภาพดีและปราศจากช่องโหว่ด้านความปลอดภัย ซึ่งตรงกันข้ามกับเซิร์ฟเวอร์ FTP อื่นๆ รวมถึง OpenBSD ด้วย ศึกษารายละเอียดได้ที่ http://www.seifried.org/security/network/20010926-ftp-protocol.html

ในแง่ของประสิทธิภาพนั้น มีการกล่าวถึงดังนี้

  • ใน usenet มีการอ้างถึง vsftpd ว่าทำงานได้เร็วเทียบเท่ากับ BSD-ftpd (ซึ่งมีประสิทธิภาพสูง ต่างกับ wu-ftpd) ศึกษาเพิ่มเติมได้ที่ http://groups.google.com/groups?hl=en&selm=Pine.BSF.4.31.0202031625080.1082-100000%40atlantis.dp.ua

  • มีการเปรียบเทียบประสิทธิภาพของ vsftpd ว่ามีความเร็วถึง 70 Mbyte/sec ซึ่งมากกว่า TUX (55 Mbyte/sec)

  • มีการกล่าวว่าเครือข่ายของ Linux ที่อยู่บน gigabit ethernet ก็ใช้ vsftpd และมีความเร็วถึง 86 Mbyte/sec ศึกษาเพิ่มเติมได้ที่ http://lists.insecure.org/linux-kernel/2001/Feb/0104.html

  • ในการใช้ vsftpd บน RedHat นั้น Alan Cox กล่าวว่า "ในที่สุดก็มี ftpd ที่เหมาะสำหรับใช้บน Linux แล้ว" ศึกษาเพิ่มเติมได้ที่ http://www.linux.org.uk/diary/

การติดตั้ง vsftpd บน linux

1.ทำการเปิด Terminal ขึ้นมา

2. ให้ทำการ Update และ Upgrade Server ให้มีความเป็นปัจจุบันก่อน

การ Update จะใช้คำสั่ง $ sudo apt-get update จากนั้นใส่รหัสผ่านลงไป

การ Upgrade จะใช้คำสั่ง $ sudo apt-get upgrade จากนั้นใส่รหัสผ่านลงไป

3.ทำการติดตั้ง FTP Server ด้วยแพ็คเกต vsftpd โดยการพิมพ์คำสั่งนี้ลงไป$ sudo apt-get install vsftpd

การติดตั้งเสร็จสมบูรณ์

4.ตรวจสอบการทำงานของ Service ftp(พอร์ต 21) โดยการพิมพ์คำสั่ง $ netstat-tan

Service FTP ทำงานที่พอร์ต 21

5.เข้าไปแก้ไขไฟล์คอนฟิก vsftpd.conf ซึ่งเก็บไว้ที่ /etc/vsftpd.conf สามารถกำหนดบริการของ FTP ได้ 2แบบ คือ แบบระบุตัวตนผู้ใช้บริการ กับ แบบไม่ระบุตัวตนผู้ใช้บริการ เลือกตั้งค่าเป็นแบบใดแบบหนึ่ง เท่านั้น โดยการพิมพ์คำสั่ง $ sudo gedit /etc/vsftpd.conf

6.ทดสอบการติดตั้ง FTP แบบระบุตัวตนผู้ใช้บริการ คือจะต้องมีบัญชีผู้ใช้งานอยู่ในระบบ

ในไฟล์ /etc/vsftpd.conf ให้เอา comment ( # ) หน้าบรรทัดที่มีข้อความต่อไปนี้ ออกไป จากนั้นให้ Save ไว้เหมือนเดิม

anonymous_enable=no //จะทำให้ Anonymous User ไม่สามารถเข้าใช้งาน FTP ได้

local_enable=YES //จะทำให้ User ที่อยู่ใน Network วงเดียวกันกับ Server) สามารถใช้งาน FTP ได้

write_enable=YES //จะทำให้ User สามารถ Upload File ไปที่ Server ได้

chroot_local_user=YES //จะเป็นการบังคับไม่ให้ User ออกนอก Home Directory ของตนเองไปยัง Directory ที่มีลำดับชั้นที่สูงกว่า

7.รีสตาร์ท เซอร์วิส(Restart Service) vsftpd โดยการพิมพ์คำสั่ง $ sudo service vsftpd restart

8.ตรวจสอบ IP ของ FTP Server ก่อน โดยการพิมพ์คำสั่งดังต่อไปนี้ลงไป $ sudo ifconfig

9.ที่คอมพิวเตอร์อีกเครื่อง(Windows 7) ให้ทำการเปิด cmd ขึ้นมา ด้วยการไปที่ Start Menu แล้วพิมพ์หา cmd

10.ตรวจสอบ IP เครื่อง โดยการพิมพ์คำสั่งดังต่อไปนี้ > ipconfig

11.การเข้าใช้บริการ FTP จะทดสอบโดยการเข้าใช้ผ่านโปรแกรม FileZilla FTP Client ซึ่งจะต้องทำการติดตั้งโปรแกรมไว้นี้ในเครื่องเสียก่อน เปิดโปรแกรม FileZilla FTP Client ขึ้นมา

*สามารถ Download ได้ที่ https://filezilla-project.org/download.php *

ผลลัพธ์จากการ Connect

12.ทดสอบการ Upload File ด้วยการเลือกไฟล์(File)จากทางฝั่ง Client ที่ต้องการ จากนั้นลองคลิ๊กเมาส์ที่ไฟล์นั้นค้างไว้ แล้วลากจากฝั่ง Client ไปวางทางฝั่ง Server ในกรณีที่ไม่สามารถทำการลากวางได้ ให้ทำการคลิ๊กขวาที่ไฟล์ที่ต้องการ Upload จากนั้นเลือกเมนู Upload เพื่อทำหน้าที่แทนการลากวาง

ผลการ Upload จะมีไฟล์ขึ้นมาบน Desktop

13.การ Download file ให้เลือกไฟล์ที่ต้องการจะ Download จากนั้นทำการคลิ๊กที่ไฟล์นั้นค้างไว้ แล้วลากจากทางฝั่ง Server ไปยังฝั่งClient ในกรณีที่ไม่สามารถทำการลากวางได้ ให้ทำการคลิ๊กขวาที่ไฟล์ที่ต้องการ Download จากนั้นเลือกเมนูDownload เพื่อทำการ Download แทนการลากวาง

14.ทดสอบการเข้าใช้งาน FTP Server ผ่าน Web Browser โดยการพิมพ์ URLftp://FTP Server IP เช่น ftp://192.168.107.144

กรอก Username กับ Password ลงไป แล้วกดปุ่ม ตกลง จะเข้าสู่การใช้บริการของ FTP

เข้าสู่หน้าบริการของ FTP server

15.ทดสอบการเข้าใช้งาน Directory ที่มีลำดับชั้นสูงกว่า Home Directory ของ User

ผลลัพธ์คือ ไม่สามารถเข้าใช้งานได้ เนื่องจากได้ตั้งค่าคอนฟิก chroot_local_user=YES //จะเป็นการบังคับไม่ให้ User ออกนอก Home Directory ของตนเองไปยัง Directory ที่มีลำดับชั้นที่สูงกว่า ไว้ในไฟล์ /etc/vsftpd.conf

Last updated