คุณสมบัติของ VSFTP <p>VSFTP เป็นเดมอน (daemon) ของเซิร์ฟเวอร์ FTP ที่รันบนระบบปฏิบัติการ Linux/UNIX ซึ่งมีคุณสมบัติหลักอยู่ 3 อย่าง ได้แก่ </p><ul>
</ul><p>นอกจากนี้โปรแกรม VSFTP ยังมีคุณสมบัติอื่นๆ อีก ได้แก่ เป็นระบบที่มีขนาดเล็ก มีความสามารถในการจัดการ virtual users มีทางเลือกในการทำงานเป็นแบบ stand-alone configuration และแบบผ่านทางเดมอน inetd รวมทั้งสามารถจำกัดปริมาณการรับส่งข้อมูล (bandwidth) ในการให้บริการในเซิร์ฟเวอร์ที่ต้องการควบคุมการใช้งานได้อีกด้วย</p><p>ในแง่ของความปลอดภัยนั้น VSFTP ได้ถูกออกแบบมาเพื่อแก้ไขจุดบกพร่องที่พบในการติดตั้ง wu-ftpd, proftpd, และแม้แต่ bsd-ftpd โดยการไม่ใช้บัญชีชื่อ root ซึ่งมีความเสี่ยง และใช้คุณสมบัติด้านความปลอดภัยที่มีประสิทธิภาพอย่าง chroot นอกจากนี้ยังมีการใช้เทคนิคการพัฒนาโปรแกรมอย่างปลอดภัยเพื่อแก้ปัญหาหน่วยความจำล้น (buffer overflows) ด้วย อ่านรายละเอียดเพิ่มเติมเกี่ยวกับความปลอดภัยของ VSFTP ได้ที่เอกสารเผยแพร่ ต่อไปนี้: Overview Design Implementation Trust และนอกจากนี้ยังมีการกล่าวถึง vsftpd ในแง่ของความปลอดภัยมากมาย ดังต่อไปนี้</p><ul>
</ul><p>ในแง่ของประสิทธิภาพนั้น มีการกล่าวถึงดังนี้</p><ul>
</ul><p>เวอร์ชันล่าสุดของ VSFTP ขณะนี้คือเวอร์ชัน 1.2.0 สำหรับตัวอย่างที่จะกล่าวถึงในบทความนี้เป็นการใช้งาน VSFTP v.1.2.0 บนเซิร์ฟเวอร์ Red Hat 9.0 เคอร์เนลเวอร์ชัน 2.4.20-9</p><hr width="100%" size="2">การติดตั้ง <ol>
# cd /tmp
# gunzip -dc vsftpd-1.2.0.tar.gz
# cd vsftpd-1.2.0
# make
หากต้องการแก้ไขการตั้งค่า สามารถแก้ไขที่ไฟล์ builddefs.h ก่อนที่จะคอมไพล์ด้วยคำสั่ง make เมื่อคอมไพล์เสร็จจะมีไฟล์ไบนารีชื่อ vsftpd ในไดเรกทอรีนี้
# /usr/sbin/useradd nobody
และกำหนด shell ในไฟล์ /etc/passwd สำหรับบัญชีชื่อ nobody ให้เป็น /sbin/nologin ด้วย เพื่อให้มีความปลอดภัยจากการล็อกอินเข้าใช้ shell ในการโจมตีระบบ ดังนี้
nobody:x:99:99:Nobody:/:/sbin/nologin
หากในเครื่องมีขื่อบัญชีนี้อยู่แล้วจะปรากฏผลดังนี้
useradd: user nobody exists
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
แต่ถ้าต้องการอนุญาตให้เฉพาะบัญชีผู้ใช้ในเครื่องสามารถ FTP ได้เท่านั้น ก็ไม่ต้องทำขั้นตอนนี้ อย่างไรก็ตามไดเรกทอรีบ้าน (home directory) ของบัญชีผู้ใช้ชื่อ anonymous จะต้องไม่มีเจ้าของเป็นบัญชีชื่อ ftp และผู้ใช้ไม่ควรมีสิทธิในการเขียนในไดเรกทอรีนี้ด้วย โดยกำหนดได้ด้วยคำสั่งต่อไปนี้
| คำสั่ง | วัตถุประสงค์ |
| # mkdir /var/ftp | เพื่อสร้างไดเรกทอรี /var/ftp |
| # /usr/sbin/useradd -d /var/ftp ftp | เพื่อสร้างบัญชีชื่อ "ftp" พร้อมด้วยไดเรกทอรีบ้าน /var/ftp โดยปกติระบบส่วนใหญ่มีบัญชีผู้ใช้นี้อยู่แล้ว |
| # chown root.root /var/ftp | เปลี่ยนเจ้าของไดเรกทอรี /var/ftp เป็นบัญชีชื่อ "root" |
| # chmod og-w /var/ftp | จำกัดสิทธิของบัญชีผู้ใช้อื่น และบัญชีที่อยู่ในกลุ่มเดียวกันไม่ให้มีสิทธิในการเขียนลงไดเรกทอรีนี้ |
# cd /tmp/vsftpd-1.2.0
# make install
# cp vsftpd.conf /etc
</ol><hr width="100%" size="2">การปรับแต่งค่าคอนฟิกูเรชัน <p>ไฟล์คอนฟิกูเรชันของ vsftpd ประกอบด้วย 3 ไฟล์ ดังนี้</p><ol>
โดยระบุอี-เมล์แอดเดรสในไฟล์นี้บรรทัดละ 1 รายการเท่านั้น ดังตัวอย่างต่อไปนี้
mozilla@
[email protected]
สำหรับการตั้งค่าคอนฟิกูเรชันของไฟล์นี้มีความสัมพันธ์กับไฟล์ /etc/vsftpd.conf โดยจะต้องนำเครื่องหมาย # ออกจากบรรทัดที่เกี่ยวข้อง ตามที่แสดงไว้ดังต่อไปนี้
...
...
# You may specify a file of disallowed anonymous e-mail addresses. Apparently
# useful for combatting certain DoS attacks.
deny_email_enable=YES
# (default follows)
banned_email_file=/etc/vsftpd.banned_emails
...
...
สำหรับการกำหนดการใช้งานลักษณะนี้ จะต้องแก้ไขไฟล์ที่เกี่ยวข้องดังนี้
- กำหนดรายชื่อที่ต้องการไว้ในไฟล์ /etc/vsftpd.chroot_list บรรทัดละ 1 รายชื่อ ดังนี้
user1
user2
- แก้ไขไฟล์ /etc/passwd โดยเพิ่ม /./ ในไดเรกทอรีบ้าน (home directory) ของบัญชีผู้ใช้ทั้ง 2 บัญชี ดังนี้
user1:x:500:500::/home/ftp-docs/./:/bin/ftponly
user2:x:501:500::/home/ftp-docs/./:/bin/ftponly
- แก้ไขไฟล์ /etc/vsftpd.conf โดยทำการนำเครื่องหมาย # ออกจากบรรทัดที่เกี่ยวข้อง ตามที่แสดงไว้ดังต่อไปนี้
...
...
# You may specify an explicit list of local users to chroot() to their home
# directory. If chroot_local_user is YES, then this list becomes a list of
# users to NOT chroot().
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd.chroot_list
...
...
โดยปกติ VSFTP จะอ่านไฟล์คอนฟิกกูเรชัน /etc/vsftpd.conf เมื่อมันเริ่มทำงานเท่านั้น ดังนั้นจึงต้องทำการรีสตาร์ท xinetd ทุกครั้งที่มีการแก้ไขไฟล์นี้เพื่อให้การเปลี่ยนแปลงดังกล่าวมีผลต่อการทำงานของ VSFTP ทันที
ไฟล์นี้มีค่าดีฟอลต์จำนวนหนึ่งที่ควรทราบ ได้แก่
- โดยดีฟอลต์ VSFTP จะรันเป็นเซิร์ฟเวอร์ anonymous FTP ดังนั้นถ้าไม่ต้องการให้ผู้ใช้จากภายนอกล็อกอินเข้ามายังไดเรกทอรี FTP ที่เป็นดีฟอลต์ (/var/ftp) โดยใช้ชื่อว่า "anonymous" และรหัสผ่านเป็นอี-เมล์แอดเดรส ก็ให้ทำการปิดฟีเจอร์นี้โดยใส่เครื่องหมาย #ไว้ที่ต้นบรรทัด "anonymous_enable" และสามารถเปิดให้ผู้ใช้ภายในสามารถล็อกอินเข้ามาได้โดยนำเครื่องหมาย # ออกจากบรรทัด "local_enable" ดังนี้
# Allow anonymous FTP? (Beware - allowed by default if you comment this out).
#anonymous_enable=YES
#
# Uncomment this to allow local users to log in.
local_enable=YES
- โดยดีฟอลต์ VSFTP จะอนุญาตให้ผู้ใช้ที่ใช้ชื่อ anonymous สามารถดาวน์โหลดได้เท่านั้น ไม่สามารถอัพโหลดไฟล์มายังเซิร์ฟเวอร์ได้
# Uncomment this to enable any form of FTP write command.
#write_enable=YES
# Uncomment this to allow the anonymous FTP user to upload files. This only
# has an effect if the above global write enable is activated. Also, you will
# obviously need to create a directory writable by the FTP user.
#anon_upload_enable=YES
#
- โดยดีฟอลต์ VSFTP ไม่อนุญาตให้ผู้ใช้ภายนอกสร้างไดเรกทอรีบนเครื่องเซิร์ฟเวอร์ FTP และมันจะเก็บบันทึกล็อกของการเข้าถึง FTP ไว้ที่ไฟล์ /var/log/vsftpd.log
# Uncomment this if you want the anonymous FTP user to be able to create
# new directories.
#anon_mkdir_write_enable=YES
#
# Activate logging of uploads/downloads.
xferlog_enable=YES
# You may override where the log file goes if you like. The default is shown
# below.
xferlog_file=/var/log/vsftpd.log
</ol><hr width="100%" size="2">ความปลอดภัยของ FTP
<ol>
ก่อนที่จะเริ่มเปิดให้บริการ FTP จะต้องทำการกำหนดสิทธิของการเชื่อมต่อเข้ามาใช้งานก่อน ซึ่งแบ่งวิธีการทำได้ดังนี้
กรณีรัน inetd
ทำการแก้ไขไฟล์ /etc/hosts.allow (TCP Wrapper) โดยเพิ่มบรรทัด "vsftpd:" และตามด้วยรายชื่อหมายเลข IP address ที่จะอนุญาตให้เข้ามาได้ ดังตัวอย่างต่อไปนี้
- เพื่ออนุญาตให้เชื่อมต่อเข้ามาจากตัวเครื่องเซิร์ฟเวอร์เอง ระบุในไฟล์ดังนี้ :
vsftpd: 127.0.0.1
- เพื่ออนุญาตให้เชื่อมต่อเข้ามาจากทุกคนในวง IP 192.168.1.0/24 ระบุในไฟล์ดังนี้ :
vsftpd: 192.168.1.
- เพื่ออนุญาตให้เชื่อมต่อเข้ามาจากเฉพาะ 2 IP address ระบุในไฟล์ดังนี้ :
vsftpd: 192.168.1.100 192.168.5.53
- เพื่ออนุญาตให้ทุกคนสามารถเชื่อมต่อเข้ามาได้ ระบุในไฟล์ดังนี้ :
vsftpd: ALL
กรณีรัน xinetd
สำหรับการรันด้วย xinetd นั้นได้รวมเอาคุณสมบัติควบคุมการเข้าถึงเครื่องให้บริการเหมือนกับ TCP Wrapper ไว้อยู่แล้ว ดังนั้น ทำได้โดยการแก้ไขไฟล์ /etc/xinetd.d/vsftpd โดยเพิ่มบรรทัด "only_from = " และตามต้วยรายชื่อหมายเลข IP address ที่จะอนุญาตให้เข้ามาได้ ดังตัวอย่างต่อไปนี้
- เพื่ออนุญาตให้เชื่อมต่อเข้ามาจากเฉพาะ 2 IP address ระบุในไฟล์ดังนี้ :
only_from = 192.168.1.100 192.168.5.53
และหากต้องการกำหนด IP address ที่ไม่อนุญาตให้เข้าถึง ก็ระบุในไฟล์ดังนี้ :
no_access = 192.168.4.22
ถ้าต้องการให้ผู้ใช้จากภายนอกสามารถเขียนข้อมูลลงบนเครื่องเซิร์ฟเวอร์ FTP ได้ ควรจะสร้างไดเรกทอรีที่อนุญาตให้เขียนได้อย่างเดียวภายใต้ไดเรกทอรี /var/ftp/pub การทำเช่นนี้จะเป็นการอนุญาตให้ผู้ใช้ทำการอัพโหลดได้แต่ไม่สามารถเข้าถึงไฟล์อื่นที่อัพโหลดโดยผู้ใช้คนอื่น ซึ่งทำได้ดังนี้
# mkdir /var/ftp/pub/upload
# chmod 733 /var/ftp/pub/upload
หมายเหตุ : ต้องทำการแก้ไขที่ไฟล์ /etc/vsftpd.conf ให้อนุญาตการเขียนไฟล์ลงบนเซิร์ฟเวอร์ด้วย ดังนี้
# Uncomment this to enable any form of FTP write command.
write_enable=YES
...
# Uncomment this to allow the anonymous FTP user to upload files. This only
# has an effect if the above global write enable is activated. Also, you will
# obviously need to create a directory writable by the FTP user.
anon_upload_enable=YES
การเปลี่ยนแปลงแบนเนอร์สำหรับเป็นข้อความต้อนรับเมื่อผู้ใช้ล็อกอินเข้ามาใช้งาน ftp นั้น สามารถแก้ไขได้ในไฟล์ /etc/vsftpd.conf เพื่อไม่ให้ผู้ไม่ประสงค์ดีรู้ว่าระบบที่ใช้เป็นประเภทใด ดังนี้
# You may fully customise the login banner string:
ftpd_banner= New Banner Here
(ในที่นี้ใช้ประโยค "Welcome to My FTP service, authorized access only" ดังปรากฎในหัวข้อ "ตัวอย่างการล็อกอินเพื่อทดสอบการ FTP")
ข้อเสียอย่างหนึ่งของ FTP คือ ไม่มีการเข้ารหัสชื่อผู้ใช้และรหัสผ่านสำหรับล็อกอิน ทำให้มีจุดอ่อนต่อการโจมตีโดยผู้อื่นที่จะสามารถดักขโมยชื่อผู้ใช้และรหัสผ่านไปได้จากการเชื่อมต่อเครือข่าย ดังนั้นขอแนะนำให้ทำการแลกเปลี่ยนไฟล์ด้วยวิธี Secure Copy (SCP) ซึ่งมีการเข้ารหัสแทนการใช้ FTP แต่ทั้งนี้ SCP ไม่สนับสนุนบริการ ftp ด้วยการใช้ชื่อ anonymous
</ol><hr width="100%" size="2"><p>วิธีเริ่มต้นการทำงานของ VSFTP</p><p>VSFTP สามารถรันได้ 2 โหมด ได้แก่</p><ol>
</ol><p>การรันผ่านเดมอน inetd หรือ xinetd สามารถควบคุมการทำงานของโปรแกรมได้ง่ายกว่า และเป็นวิธีที่ควรใช้มากกว่าแบบ stand-alone สิ่งสำคัญที่ต้องคำนึงถึงคือ ในการตั้งค่าของ VSFTP นั้น มันจะรับการเชื่อมต่อแบบ anonymous เท่านั้น (สมมติว่าได้สร้างบัญชีชื่อ “ftp” ไปก่อนหน้านี้แล้ว) ดังนั้นถ้าต้องการอนุญาตให้บัญขีผู้ใช้ในเครื่องสามารถเชื่อมต่อเข้ามาใช้งาน ftp ได้ จะต้องทำการตั้งค่า Pluggable Authentication Modules (PAM) ซึ่งจะกล่าวถึงต่อไปด้วย</p><ol>
สิ่งที่ต้องทำสำหรับการรัน VSFTP ในโหมด stand-alone ได้แก่
- เพิ่มประโยค "listen = YES"ไว้ในบรรทัดสุดท้ายของไฟล์ /etc/vsftpd.conf
- รันคำสั่ง # /usr/local/sbin/vsftpd &
เนื่องจากในที่นี้ได้ทำการทดสอบและใช้งานบนระบบ Red Hat 9 (ซึ่งใช้ xinetd) ดังนั้นจะเน้นที่การดำเนินการติดตั้งในโหมด xinetd
</ol><ul>
- เพิ่มบรรทัดต่อไปนี้ในไฟล์ /etc/inetd.d
ftp stream tcp nowait root /usr/local/sbin/vsftpd
- รีสตาร์ทเดมอน inetd ด้วยคำสั่ง
# kill -SIGHUP <pid of inetd>
- ไฟล์คอนฟิกกูเรชันสำหรับการเริ่มต้นทำงานของ VSFTP ในเครื่องที่รัน xinetd นั้น อยู่ภายใต้ไดเรกทอรี /etc/xinetd.d โดยมีชื่อว่า vsftpd หากไม่พบไฟล์ดังกล่าว ให้ทำการสำเนาจากตัวอย่างของ vsftpd ที่มากับ VSFTP distribution (/tmp/vsftpd-1.2.0/xinetd.d/vsftpd) มาไว้ในไดเรกทอรีนี้ ในไฟล์ vsftpd นี้ มีพารามิเตอร์จำนวนหนึ่งภายใต้ "service ftp" ซึ่งระบุให้ทราบวิธีการทำงานของเซิร์ฟเวอร์ VSFTP ดังต่อไปนี้
พารามิเตอร์ |
ค่าที่กำหนด |
ความหมาย |
| socket_type | stream | เป็นชนิดของ TCP socket ที่ใช้สำหรับโพรโตคอลนี้ นั่นคือ FTP เป็น TCP stream |
| wait | no | เกี่ยวกับความสามารถสำหรับ socket ที่จะรับข้อความ |
| user | root | ผู้ใช้ที่จะเป็นผู้เปิดให้บริการ ftp คือใคร (ในที่นี้คือ root) หมายเหตุ : VSFTP จะลดสิทธิลงทันทีที่เริ่มทำงาน |
| server | /usr/local/sbin/vsftpd | เป็นตำแหน่งของโปรแกรมเซิร์ฟเวอร์ที่เกี่ยวข้องกับไฟล์คอนฟิกกูเรชันนี้ ถ้ามีการตั้ง vsftpd ในไดเรกทอรีที่แตกต่างออกไปก็ต้องแก้ไขเปลี่ยนแปลงค่านี้ |
| nice | 10 | ออปชันนี้ใช้แก้ไขลำดับตารางเวลาดีฟอลต์สำหรับโพรเซส โดย 10 คือค่าดีฟอลต์ ส่วนค่าสูงสุดคือ 20 |
| disable | no | เซอร์วิสนี้ไม่ถูกปิด หรืออีกนัยหนึ่งคือ มันควรเริ่มทำงานทันที เมื่อ xinetd เริ่มต้นทำงาน |
| per_source | 5 | เป็นการระบุจำนวนของการเชื่อมต่อเข้ามาใช้งานในเวลาเดียวกันจากหมายเลข IP เดียวกัน โดยเพื่อความปลอดภัย ควรตั้งค่าไว้เป็น 5 |
| instances | 200 | กำหนดจำนวนสูงสุดของการเชื่อมต่อ FTP ไปยังเซิร์ฟเวอร์ในเวลาเดียวกัน ซึ่งมีประโยชน์ต่อการกำหนดโหลดการทำงานของเซิร์ฟเวอร์ โดยเพื่อความปลอดภัยควรตั้งค่าไว้เป็น 200 |
| no_access | No default | เป็นการระบุรายการ IP address ที่ไม่อนุญาตให้เข้าถึงเซอร์วิสนี้ เช่น 192.168.1.4 |
- เมื่อปรับแก้ไฟล์ /etc/xinetd.d/vsftpd เรียบร้อยแล้วให้ทำการรีสตาร์ท xinetd ด้วยคำสั่ง
# /etc/init.d/xinetd restart
หรือ
# service xinetd restart
</ul><blockquote>
- และเพื่อให้ xinetd เริ่มทำงานทุกครั้งที่เครื่องรีสตาร์ท ให้ใช้คำสั่งต่อไปนี้
# chkconfig --add xinetd
# chkconfig --level 345 xinetd onหมายเหตุ : ถ้าก่อนหน้านี้ตั้งเป็นโหมด stand-alone ต้องทำการลบบรรทัด "listen =YES" จากไฟล์ /etc/vsftpd.conf ออกด้วย มิฉะนั้นเซอร์วิส vsftpd จะไม่ทำงาน เมื่อ xinetd รีสตาร์ท
</blockquote><p>หลังจากเสร็จสิ้นกระบวนการแล้ว ไม่ว่าจะเป็นการรันในโหมดใดก็ตาม สามารถตรวจสอบดูให้แน่ใจว่า VSFTP เริ่มทำงานจริงได้โดยใช้คำสั่ง netstat -a และจะต้องได้ผลดังต่อไปนี้ :</p><blockquote><p># netstat -a | grep ftp
tcp 0 0 :ftp *: LISTEN</p></blockquote><p>หมายเหตุ : ในส่วนของผลลัพธ์ที่ได้อาจแสดงเป็น ftp หรือหมายเลขพอร์ต 21</p><hr width="100%" size="2">การตั้งค่า Pluggable Authentication Modules (PAM) <p>การติดตั้งเซิร์ฟเวอร์ FTP เพื่อแจกจ่ายซอฟต์แวร์ให้ผู้ใช้ใดๆ เชื่อมต่อเข้ามานั้น มีประโยชน์มาก แต่บางครั้งอาจต้องทำการควบคุมการเข้าถึงทรัพยากรบางอย่าง เช่น ต้องการให้เพียงลูกค้าเท่านั้นสามารถใช้งาน FTP ได้</p><p>ดังนั้นการทำเช่นนี้กับ VSFTP ทำได้โดยใช้ PAM ในการพิสูจน์ตัวตน ซึ่งคล้ายกับเครื่อง Red Hat ส่วนใหญ่ ซึ่งไฟล์ที่เกี่ยวข้องชื่อ pam.conf หรือไดเรกทอรีชื่อ pam.d สำหรับ VSFTP นั้นมีการตั้งค่า PAM ตัวอย่างไว้แล้ว อยู่ในไดเรกทอรีย่อยชื่อ RedHat ของโปรแกรมที่ขยายออกมาในตอนแรกก่อนการติดตั้ง (/tmp/vsftpd-1.2.0/RedHat/vsftpd.pam) ให้ทำการเปลี่ยนชื่อและทำสำเนาไปไว้ในไดเรกทอรี pam.d ซึ่งสามารถทำได้ดังนี้</p><blockquote><p>#cp vsftpd.pam /etc/pam.d/ftp</p></blockquote><p>จากนั้นทำการกำหนดเพื่ออนุญาตให้ผู้ใช้ภายในสามารถล็อกอินได้ โดยแก้ไขที่ไฟล์ /etc/vsftpd.conf และเอาเครื่องหมาย # ออกจากบรรทัด “local_enable=YES” เมื่อผู้ใช้เชื่อมต่อเข้ามาก็จะเข้าสู่ไดเรกทอรีบ้าน (home directory) ของผู้ใช้คนนั้นทันที</p><hr width="100%" size="2">ตัวอย่างการตั้งค่าในไฟล์ /etc/vsftpd.conf เพื่ออนุญาตให้ผู้ใช้สามารถเข้าถึงไดเรกทอรีที่แชร์ไว้ในลักษณะอ่านได้อย่างเดียว
<p>ในตัวอย่างนี้ ไม่อนุญาตให้ผู้ใช้ใช้ชื่อ anonymous แต่อนุญาตให้เฉพาะผู้ใช้ภายในที่ต้องการดาวน์โหลดไฟล์จากไดเรกทอรีที่แชร์ไว้เท่านั้นสามารถ ftp ได้ ขั้นตอนการทำมีดังนี้ :</p><ol>
# Allow anonymous FTP? (Beware - allowed by default if you comment this out).
#anonymous_enable=YES
# Uncomment this to allow local users to log in.
local_enable=YES
# groupadd ftp-users
# mkdir /home/ftp-docs
# chmod 750 /home/ftp-docs
# chown root:ftp-users /home/ftp-docs
# useradd -g ftp-users -d /home/ftp-docs user1
# useradd -g ftp-users -d /home/ftp-docs user2
# passwd user1
# passwd user2
เปลี่ยนสิทธิการเข้าถึงไฟล์ภายใต้ไดเรกทอรี /home/ftp-docs ให้สามารถอ่านได้อย่างเดียวโดยผู้ใช้ในกลุ่ม ftp-users
# chown root:ftp-users /home/ftp-docs/*
# chmod 740 /home/ftp-docs/*
# Uncomment this to enable any form of FTP write command.
#write_enable=YES
รีสตาร์ท vsftp เพื่อให้การแก้ไขไฟล์ /etc/vsftpd.conf มีผลต่อการทำงานทันที ดังนี้
# /etc/init.d/xinetd restart
Stopping xinetd: [ OK ]
Starting xinetd: [ OK ]
#
</ol><p>สำหรับรายละเอียดของการตั้งค่าสำหรับออปชันอื่นๆ ในไฟล์ /etc/vsftpd.conf นี้ สามารถศึกษาเพิ่มเติมได้จากไฟล์ vsftpd.conf.5 (ในที่นี้อยู่ในไดเรกทอรี /usr/share/man/man5 )</p><hr width="100%" size="2"><p>ตัวอย่างการล็อกอินเพื่อทดสอบการ FTP
</p><ol>
c:\>ftp 192.168.9.124
Connected to 192.168.9.124.
220 Welcome to My FTP service, authorized access only.
User (192.168.9.124:(none)): user1
331 Please specify the password.
Password:
230 Login successful.
ftp>
ftp> put file_4_upload
200 PORT command successful. Consider using PASV.
550 Permission denied.
ftp>
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
file_4_download
226 Directory send OK.
ftp: 10 bytes received in 0.00Seconds 10000.00Kbytes/sec.
ftp>
ftp> get file_4_download
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for file_4_download (8294 bytes).
####
226 File send OK.
ftp: 8294 bytes received in 0.01Seconds 829.40Kbytes/sec.
ftp>
C:\>ftp 192.168.9.124
Connected to 192.168.97.124.
220 Welcome to My FTP service, authorized access only.
User (192.168.9.124:(none)): anonymous
331 Please specify the password.
Password:
530 Login incorrect.
Login failed.
ftp> bye
221 Goodbye
</ol><p>อ้างอิงข้อมุลจาก thaicert</p>