Ubuntu – ติดตั้ง vsftpd เพื่อใช้เป็น FTP server

การติดตั้ง vsftpd เพื่อจะใช้เป็น FTP server ในการรับ/ส่งไฟล์ของเราไปเก็บไว้บน server ในเครือข่ายของเรา จะทำให้ง่ายขึ้นในกรณีที่เราต้องการแชร์ไฟล์ไปใช้งานระหว่างกันคอมพิวเตอร์หลายๆ เครื่องในเนตเวิร์คของเรา

โดยส่วนตัวออมคิดว่า การแชร์ไฟล์ระหว่างกันผ่านโปรโตคอล FTP นั้น โดยตัวโปรโตคอลเองไม่ค่อยเหมาะสำหรับการใช้งานแบบที่ต้องแก้ไขไฟล์งานบน server จะเหมาะสมมากกว่า สำหรับการดาวน์โหลดไฟล์ดังกล่าวลงมาไว้ในเครื่องคอมพิวเตอร์ที่เราทำงาน แล้วแก้ไขไฟล์งานนั้นในคอมพิวเตอร์ของเรา แล้วก็อัพโหลดไฟล์ดังกล่าวกลับขึ้นไปบนเซิร์ฟเวอร์มากกว่า แม้ว่าโปรแกรมบางตัวที่เป็น FTP client เช่น Filezilla อาจจะทำการแก้ไขไฟล์บน server ได้แต่งานจริงๆ ในหลังบ้านของโปรแกรมก็ทำการดาวน์โหลดไฟล์ลงมาที่เครื่องของเรา แก้ไขไฟล์ แล้วก็อัพโหลดไฟล์ขึ้นไปให้บน server โดยอัตโนมัติอีกที

คำสั่งติดตั้ง vsftpd
# ติดตั้งแพคเกจ vsftpd
sudo apt install vsftpd

แก้ไขไฟล์ config สำหรับ vsftpd
# ใช้โปรแกรม nano เปิดไฟล์ config ของ vsftpd
sudo nano /etc/vsftpd.conf
ตั้งค่า config สำหรับ vsftpd หากบรรทัดนั้นมีการ comment ไว้ ให้เปิด comment นั้นออก เพื่อจะทำการตั้งค่าในบรรทัดต่อไปนี้ (เมื่อทำการแก้ไขไฟล์ config เสร็จให้บันทึกไฟล์ config นี้ให้เรียบร้อย)

local_enable = YES

write_enable = YES

# อนุญาติให้ login user เข้าถึง directory ของตัวเองได้
allow_writeable_chroot = YES
chroot_local_user = YES
หากต้องการกำหนดให้มีผู้ใช้งานหลายคน สามารถเข้าถึงโฟลเดอร์ของตัวเองได้ ใน FTP server สามารถเลือกกำหนดรายชื่อผู้ใช้งานในไฟล์แยกได้ โดยในไฟล์ config ข้างต้นให้เพิ่มบรรทัดเหล่านี้

# อนุญาติให้ผู้ใช้งานที่อยู่ในลิสต์ซึ่งระบุในไฟล์สามารถเข้าถึงโฟลเดอร์ของตัวเองได้
chroot_list_enable = YES

# ระบุชื่อไฟล์ที่เก็บชื่อผู้ใช้งานที่อนุญาติให้เข้าถึง FTP server โดยจะสามารถเข้าถึงโฟลเดอร์ของตัวเองได้(ถ้าไฟล์นี้ไม่มีอยู่ก่อนแล้ว ให้สร้างไฟล์ใหม่ได้เลย)
chroot_list_file = /etc/vsftpd.chroot_list
แก้ไขไฟล์ /etc/vsftpd.chroot_list เพื่อระบุชื่อผู้ใช้งานให้เข้าถึงโฟลเดอร์ใน FTP server ได้ โดยระบุบรรทัดละ 1 รายชื่อ (เมื่อแก้ไขไฟล์เสร็จแล้วให้บันทึกไฟล์ดังกล่าวให้เรียบร้อย)
# ระบุชื่อผู้ใช้งานบรรทัดละ 1 ชื่อ 
ftp
myuser
client_user

ทำการ restart vsftpd เพื่อให้มีการอัพเดทหลังจากได้ทำการแก้ไขไฟล์ config ข้างต้นไปแล้ว
# ทำการ restart vsftpd
sudo systemctl restart vsftpd.service

ใช้โปรแกรม FTP client เช่น Filezilla ให้การทดสอบการเข้าถึง FTP server ที่เราได้ทำการติดตั้งไว้แล้ว
# ใช้โปรแกรม Filezilla เข้าถึง FTP server
# โดยทำการระบุข้อมูลในการเชื่อมต่อดังนี้
Host: IP Server เช่น 192.168.1.xxx
Port: 21
User: ชื่อ user ที่เราอนุญาติให้เข้าถึง FTP server ที่เราตั้งค่าไว้ข้างต้น เช่น myuser

หลังจากนั้นเราก็สามารถเข้าถึงข้อมูลจาก FTP server ที่เราติดตั้งเอาไว้ จากคอมพิวเตอร์หลายๆ เครื่องในเนตเวิร์คของเราได้แล้ว