# 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)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://server.gitbook.io/setservermsu/untitled.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
