> For the complete documentation index, see [llms.txt](https://server.gitbook.io/setservermsu/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://server.gitbook.io/setservermsu/untitled.md).

# VSFTPD

&#x20;                                                                                      **VSFTPD**

**Vsftpd** **คือ**

&#x20;         เป็นเซิร์ฟเวอร์ FTP ที่มีความมั่นคงและปลอดภัย ซึ่งสามารถลดความเสี่ยงที่ผู้โจมตีจะเข้าถึงเซิร์ฟเวอร์โดยผ่านทางช่องโหว่ของ FTP ได้ ตัวอย่างไซต์ FTP ต่างๆ ที่รัน VSFTP ได้แก่ Red Hat, OpenBSD, และ SuSE แม้กระทั่งสถาบัน [SANS](http://www.sans.org/) ก็แนะนำว่า VSFTP เป็นเดมอน FTP ที่ควรใช้เพราะมีความปลอดภัยสูง

&#x20;         **คุณสมบัติของ** **vsftpd**

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

* มีความปลอดภัย
* มีประสิทธิภาพดี
* มีความมั่นคง

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

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

* ในเดือนพฤศจิกายน พ.ศ. 2545 ไซต์ ftp.openbsd.org ได้รัน vsftpd ซึ่งเป็นการยืนยันได้ว่า vsftpd มีคุณสมบัติดีเหมาะแก่การใช้เป็นเซิร์ฟเวอร์ FTP
* vsftpd ไม่มีจุดบกพร่องชื่อ "globbing" ซึ่งมีผลกระทบต่อเซิร์ฟเวอร์ FTP หลายแห่ง สามารถศึกษาเหตุผลของการกำจัดจุดบกพร่องนี้ได้ในเอกสาร [Bugtraq posting](http://www.securityfocus.com/archive/1/176116) โดยมีคำอธิบายเหตุผล และหลักการออกแบบโปรแกรมด้วย
* vsftpd ไม่มีจุดบกพร่องชื่อ "globbling" ที่เกี่ยวข้องกับการโจมตีแบบ denial of service ด้วยเหตุผลคล้ายๆ กัน ศึกษารายละเอียดได้ที่ [Bugtraq posting](http://www.securityfocus.com/archive/1/169366)
* vsftpd ได้รับการสนับสนุนในหน้า Vanderbilt University ITS ภายใต้หัวข้อ "Safe Computing" ศึกษารายละเอียดได้ที่[ http://www.vanderbilt.edu/its/security/safe\_tools.html](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](http://groups.google.com/groups?hl=en\&selm=Pine.BSF.4.31.0202031625080.1082-100000@atlantis.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](http://lists.insecure.org/linux-kernel/2001/Feb/0104.html)
* ในการใช้ vsftpd บน RedHat นั้น Alan Cox กล่าวว่า "ในที่สุดก็มี ftpd ที่เหมาะสำหรับใช้บน Linux แล้ว" ศึกษาเพิ่มเติมได้ที่[ http://www.linux.org.uk/diary/](http://www.linux.org.uk/diary/)

&#x20;                                                              **การติดตั้ง** **vsftpd บน linux**

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

![](/files/-LBCLxoz1SZ3quexdaRw)

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

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

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

![](/files/-LBCM3fm_XjMMc0_vGSs)

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

![](/files/-LBCMCH3RJnFxpb2XFUU)

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

![](/files/-LBCMM1pKSUHZ84eKpXc)

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

![](/files/-LBCMgMgYwckM6UQDhFe)

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

![](/files/-LBCMl3Pq7TecUFq1Rq8)

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

![](/files/-LBCN-vJ4OKyBQHx_4cJ)

![](/files/-LBCN24JUCH7ioXQ_uV6)

<br>

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 ได้

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

![](/files/-LBCNDPlOaogZ2ug9Swk)

![](/files/-LBCNEdEJ9CNXqB5X3ZY)

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

![](/files/-LBCNNhyxtwlZXs7kFTT)

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

![](/files/-LBCNSdMP3xXUNY0oVl_)

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

![](/files/-LBCNfHas6Dxjcr8bf8z)

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

![](/files/-LBCNmn644kiBobiSkdZ)

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

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

![](/files/-LBCNsB4fVu8UynS1NPb)

<br>

&#x20;ผลลัพธ์จากการ Connect

![](/files/-LBCO2IPovqbIIjK-4PR)

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

![](/files/-LBCO72MhP5kefA5Q-7O)

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

![](/files/-LBCOApY-87TXPmrXvLh)

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

![](/files/-LBCOLD9si9oPsEcbS1G)

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

![](/files/-LBCOR3emxCwyiPIEnMf)

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

![](/files/-LBCOax6BwcT3pGvGm73)

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

![](/files/-LBCOgP_XJzI3kDMIljR)

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

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

![](/files/-LBCOq_ZNMqJOMeRQBkb)
