FTP (File Transfer Protocol) เป็นเครื่องมือมาตรฐานที่ใช้กันอย่างแพร่หลายสำหรับการถ่ายโอนไฟล์ระหว่าง server และ client ทำให้ปลอดภัยในการแลกเปลี่ยนไฟล์ต่างๆผ่านอินเตอร์เน็ต ซึ่งก่อนที่จะสามารถงานได้นั้นจะต้องสร้าง user , password ของ user และติดตั้งโปรแกรมที่ใช้ติดต่อกับ server โดยปกติแล้วมักจะใช้โปรแกรมสำเร็จรูปอาทิ เช่น Filezilla เป็นต้น ในบทความนี้เราจะอธิบายขั้นตอนในการติดตั้งและใช้งาน FTP บน server Linux CentOS 7
ขั้นตอนที่ 1 – ติดตั้ง FTP server (package vsftpd)
ทำการ SSH เข้าระบบด้วย root และเริ่มติดตั้งดังนี้
# yum install -y vsftpd
ขั้นตอนที่ 2 – สร้าง user สำหรับการเข้าใช้งาน FTP
ทำการสร้าง user ด้วยชื่อ user01 ด้วยคำสั่ง ‘useradd’
*** แนะนำให้ทำการเปลี่ยนชื่อของ user ใหม่แทน user01
# useradd user01
ขั้นตอนที่ 3 – ตั้งรหัสผ่าน (password) ให้กับ user สำหรับการเข้าใช้งาน FTP
ทำการตั้งรหัสผ่านเป็น user012345 ด้วยคำสั่ง ‘passwd’
*** แนะนำให้ทำการเปลี่ยนรหัสผ่านใหม่แทน user012345
# passwd user012345
ขั้นตอนที่ 4 – แก้ไขไฟล์ config vsftpd.conf
# vi /etc/vsftpd/vsftpd.conf
ดำเนินการแก้ไขโดยเอาเครื่องหมาย # ออกจากด้านหน้าข้อความในบรรทัดที่ 101 กับ 103 ดังนี้
#chroot_list_enables=YES เป็น chroot_list_enables=YES
#chroot_list_file=/etc/vsftpd/chroot_list เป็น chroot_list_file=/etc/vsftpd/chroot_list
เพื่อจำกัดสิทธิ์การ access ตามที่เราต้องการในที่นี้ทางเราจะกำจัดสิทธิ์การเข้าถึง directory ของ user01 ให้สามารถ access ตามที่เรากำหนดเท่านั้น
ขั้นตอนที่ 5 – สร้างชื่อไฟล์ chroot_list เพื่อกำหนดให้ user สามารถเข้าถึงได้เฉพาะ directory ของ user เองเท่านั้น
# vi /etc/vsftpd/chroot_list
ขั้นตอนที่ 6 – กำหนดสิทธิ์ในการเข้าถึง (Permission) ในไฟล์และโฟลเดอร์ เพื่อให้สามารถเข้าถึงข้อมูลที่เราต้องการได้
# chmod -R 755 /home/user01
ขั้นตอนที่ 7 – กำหนด path Directory ให้ user เข้าถึงได้แค่ข้อมูลเฉพาะที่ user เป็นเจ้าของเท่านั้น
# vi /etc/passwd
เมื่อดำเนินการเรียบร้อยให้ใช้คำสั่ง ‘wq!’ เพื่อ Save และออกจากไฟล์ จากนั้นทำการ start service vsftpd ด้วยคำสั่ง
# systemctl enable vsftpd.service # systemctl start vsftpd
ขั้นตอนที่ 8 – ทดสอบใช้งาน FTP และ config vsftpd server ด้วย โปรแกรม FileZilla
Host : ใส่หมายเลข IP server ของท่าน
Username : ชื่อผู้ใช้
Password : รหัสผ่าน
Port : 21 แต่หากไม่สามารถใช้งานได้ โดยโปรโตคอล FTP อาจถูกบล็อกโดยไฟร์วอลล์ ISP ของท่าน ให้ลองเชื่อมต่อผ่าน SFTP (เช่น ใช้หมายเลข 22 เป็นต้น)
หมายเหตุ กรณี login filezilla แล้วขึ้น error “500 OOPS: vsftpd: refusing to run with writable root inside chroot() ”
ให้เข้าไปแก้ไขไฟล์ config ใน /etc/vsftpd/vsftpd.conf เพิ่ม parameter นี้ allow_writeable_chroot=YES
# vi /etc/vsftpd/vsftpd.conf