ก่อนอื่นมาดูกันว่า FTP คืออะไร FTP ย่อมาจาก File Transfer Protocol ซึ่งเป็น Protocol ที่ใช้ รับ-ส่ง ไฟล์ระหว่าง server และ client ส่วน SFTP ก็เหมือนกับ FTP แต่จะเพิ่มกระบวนการ SSL/TLS เพื่อให้มีความปลอดภัยมากยิ่งขึ้น
ติดตั้ง FTP server
FTP server ที่ผมใช้คือ vsftpd วิธีการติดตั้งคือ ติดตั้งโดยใช้คําสั่ง
sudo apt-get install vsftpd
ถึงตอนนี้ยังใช้งานไม่ได้ เราจะต้องไป config ค่าต่างๆก่อน
Config vsftpd เบื้องต้น
เปิดไฟล์ config ด้วยคําสั่ง
sudo nano /etc/vsftpd.conf
ปิดการล็อกอินด้วยผู้ใช้ชื่อ anonymous ให้หาคําว่า “anonymous_enable=YES” แล้วเปลี่ยนเป็น
anonymous_enable=NO
เปิดให้ผู้ใช้ภายในแต่ละคนล็อกอินได้ ให้หาคําว่า “#local_enable=YES” แล้ว uncomment โดยเอาเครื่องหมาย # ด้านหน้าออก
local_enable=YES
เปิดให้ผู้ใช้สามารถเขียนไฟล์ได้ ให้หาคําว่า “#write_enable=YES” แล้ว uncomment โดยเอาเครื่องหมาย # ด้านหน้าออก
write_enable=YES
กําหนดให้ user สามารถมองเห็นแต่ directory home ของตังเองเท่านั้น ให้หาคําว่า “#chroot_local_user=YES” แล้ว uncomment โดยเอาเครื่องหมาย # ด้านหน้าออก
chroot_local_user=YES
ถ้าเป็น vsftpd 3.0.0 (=Ubuntu 13.10) จะต้องเพิ่มคําสั่งนี้เข้าไป
allow_writeable_chroot=YES
save file แล้วปิดไฟล์ โดยกด Ctrl+x แล้วตามด้วย y แล้ว enter เสร็จสิ้นการ config วิธีใช้งานก็เข้าใช้งานด้วย user ของ ubuntu ที่สร้างขึ้น ส่วน home directory ก็จะเป็นตาม config ของ user นั้นๆ เท่านี้ก็ได้ FTP server แล้ว แต่ถ้าต้องการความปลอดภัยมากยิ่งขึ้น ก็ต้อง Configure SSL with vsftpd เพิ่มเติมอยู่ในหัวข้อถัดไป
Configure SSL with vsftpd
ขั้นตอนการ config จะมีด้วยกันสองส่วนคือ
- Create SSL certificates and key
- Add the SSL Details to the vsftpd Configuration
SSL certificates and key
Create certificates and key ด้วยคําสั่ง
sudo openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout /etc/ssl/private/vsftpd.pem
เราจะได้ไฟล์ SSL certificates and key อยู่ที่ “/etc/ssl/private/vsftpd.pem”
Add the SSL Details to the vsftpd Configuration
เปิดไฟล์ config ของ vsftpd ด้วยคําสั่ง
sudo nano /etc/vsftpd.conf
แก้ไข หรือเพิ่มคําสั่งนี้เข้าไป(ถ้ามีอยู่แล้วก็ให้แก้ไขให้เป็นตามนี้ แต่ถ้าไม่มีให้เพิ่มเข้าไป)
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
เพิ่มคําสั่งนี้เข้าไป
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
require_ssl_reuse=NO
ssl_ciphers=HIGH
Restart FTP server ด้วยคําสั่ง
sudo service vsftpd restart
เสร็จสิ้นการ config SFTP พร้อมใช้งาน