File Transfer Protocol (FTP) เป็นโปรโตคอลที่เบาและนิยมใช้สำหรับถ่ายโอนไฟล์ผ่าน network แม้จะเป็นกลไกที่มีประสิทธิภาพสำหรับการส่งข้อมูล แต่มีข้อบกพร่องหนึ่ง: ข้อมูลถูกส่งและรับใน plain text หมายความว่าการถ่ายโอนข้อมูลไม่ได้ถูกเข้ารหัส และอาจถูก compromised
FTP servers สมัยใหม่เช่น ProFTPD อนุญาตให้รองรับ SSL/TLS ทำให้การถ่ายโอนไฟล์ระหว่างสองระบบไม่เพียงมีประสิทธิภาพ แต่ยังปลอดภัยด้วยการเพิ่มองค์ประกอบความปลอดภัย มาสำรวจวิธีติดตั้งและตั้งค่า ProFTPD พร้อม TLS บน Ubuntu 22.04
ProFTPD คืออะไร?
ProFTPD เป็น FTP Server โอเพนซอร์สและน่าเชื่อถือ ที่ให้คุณสร้าง FTP connection ระหว่าง local machine และ web server มันง่ายต่อการตั้งค่า และ compatible กับ Unix/Linux servers
ข้อกำหนดก่อนติดตั้ง ProFTPD
ก่อนเริ่มติดตั้ง ProFTPD คุณต้องปฏิบัติตามข้อกำหนดต่อไปนี้:
- Ubuntu Server 22.04
- Root privileges บน server
ถ้าระบบของคุณตรงตามข้อกำหนดเหล่านี้ คุณพร้อมติดตั้ง ProFTPD server แล้ว
ขั้นตอน 1: อัปเดตและอัปเกรด Ubuntu
เพื่อติดตั้ง ProFTPD คุณต้องอัปเดต Ubuntu ผ่าน command line ก่อน สามารถทำได้โดยรัน:
sudo apt-get update -y
คำสั่ง update เพียงอัปเดต system packages list เฉพาะ เพื่ออัปเกรดแพ็กเกจ ให้รัน:
sudo apt-get upgrade -y
เพื่อให้การเปลี่ยนแปลงจาก upgrade มีผล คุณต้อง reboot ระบบ Linux:
reboot
ขั้นตอน 2: ติดตั้ง ProFTPD Server บน Ubuntu
ตอนนี้ถึงเวลาติดตั้ง ProFTPD รันคำสั่ง:
sudo apt install proftpd -y
เมื่อติดตั้ง server แล้ว ให้ verify ว่าติดตั้งถูกต้อง วิธีหนึ่งคือเช็คเวอร์ชันของ service ที่ติดตั้ง:
sudo proftpd --version
ถ้า terminal คืนค่า version number แสดงว่าการติดตั้ง ProFTPD สำเร็จ และ server มีอยู่บนระบบแล้ว
ขั้นตอน 3: เริ่มและ Enable ProFTPD Service
ตอนนี้คุณใช้ ProFTPD ได้ แต่ก่อนต้อง start โดยรัน:
sudo systemctl start proftpd
เมื่อเสร็จ รันคำสั่งนี้เพื่อ enable:
sudo systemctl enable proftpd
เมื่อ service เริ่มแล้ว ให้เช็ค status ของ ProFTPD ว่ารันปกติ ใส่คำสั่ง:
sudo systemctl status proftpd
ProFTPD daemon active และ running อยู่ดี
การตั้งค่า ProFTPD บน Linux
คุณจะหา configuration file ของ ProFTPD ใน directory /etc/proftpd เปิดไฟล์ด้วย nano:
sudo nano /etc/proftpd/proftpd.conf
คุณจะพบ directives ต่างๆ ในไฟล์ Default Root directive บอก FTP Server ว่า serve ไฟล์จากที่ไหน
DefaultRoot /home/Linux/Docs
คุณยังสามารถจำกัด user ให้อยู่ใน directory เฉพาะด้วย DefaultRoot directive:
DefaultRoot /home/linux Tom
DefaultRoot / Emma
ด้วยการตั้งค่านี้ Tom จะ login เข้า /home/linux แต่ Emma จะเข้าถึงระบบทั้งหมดได้
คุณสามารถตั้งชื่อ server ด้วย ServerName directive:
ServerName "My ProFTPD"
สร้าง Users สำหรับ ProFTPD Server
เป็น best practice ที่จะมี users บน FTP server พร้อม restricted permissions เพื่อความปลอดภัย Users ควรเข้าถึงได้แค่ home directory ของตัวเองเพื่อจัดการไฟล์โดย download หรือ upload
สร้าง ProFTPD user ด้วยคำสั่งด้านล่าง แทน username ด้วย username จริง:
sudo useradd -m username
เพื่อตั้ง password ให้ user รัน:
sudo passwd username
การตั้งค่า SSL/TLS กับ ProFTPD
เพื่อ secure FTP connection คุณจะใช้ SSL/TLS ที่นี่คุณจะเห็นวิธีตั้งค่า ProFTPD พร้อม SSL certificate
เพื่อ generate certificate สำหรับ ProFTPD server คุณต้องมี OpenSSL บนระบบ รันคำสั่งนี้ติดตั้ง OpenSSL:
sudo apt-get install openssl -y
Generate Certificate สำหรับ ProFTPD Server
เมื่อ OpenSSL ติดตั้งสำเร็จแล้ว คุณสามารถ generate certificate สำหรับ server ได้ด้วย:
sudo openssl req -x509 -newkey rsa:1024 -keyout /etc/ssl/private/proftpd.key -out /etc/ssl/certs/proftpd.crt -nodes -days 365
คำสั่งนี้ขอให้ OpenSSL ให้ certificate และ private key สำหรับ ProFTPD server Certificate จะ valid 365 วัน
หลังรันคำสั่ง ระบบจะขอ details สำหรับ certificate ปกติคือ organization name และ address
เมื่อ details ถูกยอมรับ คุณจะได้ certificate และ key ตอนนี้เปลี่ยน permissions ของทั้งสองไฟล์เป็น read และ write only:
sudo chmod 600 /etc/ssl/private/proftpd.key
sudo chmod 600 /etc/ssl/certs/proftpd.crt
เปิด ProFTPD configuration file:
sudo nano /etc/proftpd/proftpd.conf
หาบรรทัดต่อไปนี้และ uncomment โดยลบ Pound character (#) ที่ต้นบรรทัด:
Include /etc/proftpd/tls.conf
ปิดไฟล์และ save ต่อไป เปิด TLS configuration file:
sudo nano /etc/proftpd/tls.conf
หา snippets ต่อไปนี้ในไฟล์และ uncomment:
<IfModule mod_tls.c>
TLSEngine on
TLSLog /var/log/proftpd/tls.log
TLSProtocol SSLv23
และ:
TLSRSACertificateFile /etc/ssl/certs/proftpd.crt
TLSRSACertificateKeyFile /etc/ssl/private/proftpd.key
Uncomment สองบรรทัดนี้ด้วย:
TLSOptions AllowClientRenegotiations
และ:
TLSRequired on
เมื่อ save และปิดไฟล์แล้ว restart ProFTPD service เพื่อให้การเปลี่ยนแปลงมีผล:
sudo systemctl restart proftpd
วิธียกเลิกติดตั้ง ProFTPD บน Ubuntu
เพื่อลบ ProFTPD จากระบบ คุณต้อง stop service ก่อน:
sudo systemctl stop proftpd
ตอนนี้คุณลบ ProFTPD จากเครื่องได้ด้วยคำสั่ง Linux:
sudo apt-get autoremove proftpd-dev
sudo apt-get purge proftpd-basic
คำสั่งเหล่านี้จะลบ ProFTPD ออกจากระบบอย่างสมบูรณ์
ถ่ายโอนไฟล์อย่างปลอดภัยด้วย FTP Server ที่ตั้งค่า TLS
ProFTPD ไม่เพียงให้ความปลอดภัย แต่ยังรับรองว่าการแลกเปลี่ยนข้อมูลรวดเร็วและมีประสิทธิภาพ สิ่งที่ดีที่สุดของ ProFTPD คือมันเสนอ configuration options มากมายให้ผู้ใช้
แม้ FTP จะเป็นวิธีที่น่าเชื่อถือในการถ่ายโอนไฟล์ แต่ยังมีวิธีอื่นๆ สำหรับวัตถุประสงค์เดียวกัน ตรวจสอบให้แน่ใจว่าเลือกเทคโนโลยีที่เหมาะกับระบบของคุณเพื่อทำให้สิ่งต่างๆ ง่ายขึ้น