ค้นหาเว็บไซต์

การตั้งค่าเซิร์ฟเวอร์ FTP ที่ปลอดภัยโดยใช้ SSL/TLS บน Ubuntu


ในบทช่วยสอนนี้ เราจะอธิบายวิธีการรักษาความปลอดภัยเซิร์ฟเวอร์ FTP (VSFTPD ย่อมาจาก “Very Secure FTP Daemon ”) โดยใช้ SSL /TLS ใน Ubuntu 16.04/16.10

หากคุณต้องการตั้งค่าเซิร์ฟเวอร์ FTP ที่ปลอดภัยสำหรับการแจกแจงแบบ CentOS คุณสามารถอ่านได้ – รักษาความปลอดภัยเซิร์ฟเวอร์ FTP โดยใช้ SSL/TLS บน CentOS

หลังจากทำตามขั้นตอนต่างๆ ในคู่มือนี้ เราจะได้เรียนรู้พื้นฐานของการเปิดใช้งานบริการการเข้ารหัสในเซิร์ฟเวอร์ FTP เพื่อการถ่ายโอนข้อมูลที่ปลอดภัยถือเป็นสิ่งสำคัญ

ความต้องการ

  1. คุณต้องติดตั้งและกำหนดค่าเซิร์ฟเวอร์ FTP ใน Ubuntu

ก่อนที่เราจะดำเนินการต่อไป ตรวจสอบให้แน่ใจว่าคำสั่งทั้งหมดในบทความนี้จะถูกเรียกใช้เป็นบัญชีที่มีสิทธิ์รูทหรือ sudo

ขั้นตอนที่ 1: การสร้างใบรับรอง SSL/TLS สำหรับ FTP บน Ubuntu

1. เราจะเริ่มต้นด้วยการสร้างไดเรกทอรีย่อยภายใต้: /etc/ssl/ เพื่อจัดเก็บใบรับรอง SSL/TLS และไฟล์คีย์ หากไม่เป็นเช่นนั้น ไม่มีอยู่จริง:

sudo mkdir /etc/ssl/private

2. ตอนนี้เรามาสร้างใบรับรองและคีย์ในไฟล์เดียวโดยเรียกใช้คำสั่งด้านล่าง

sudo openssl req -x509 -nodes -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem -days 365 -newkey rsa:2048

คำสั่งด้านบนจะแจ้งให้คุณตอบคำถามด้านล่าง อย่าลืมป้อนค่าที่เกี่ยวข้องกับสถานการณ์ของคุณ

Country Name (2 letter code) [XX]:IN
State or Province Name (full name) []:Lower Parel
Locality Name (eg, city) [Default City]:Mumbai
Organization Name (eg, company) [Default Company Ltd]:TecMint.com
Organizational Unit Name (eg, section) []:Linux and Open Source
Common Name (eg, your name or your server's hostname) []:tecmint
Email Address []:[email 

ขั้นตอนที่ 2: การกำหนดค่า VSFTPD เพื่อใช้ SSL/TLS บน Ubuntu

3. ก่อนที่เราจะดำเนินการกำหนดค่า VSFTPD สำหรับผู้ที่เปิดใช้งานไฟร์วอลล์ UFW คุณต้องเปิดพอร์ต 990 และ 40000 -50000 เพื่ออนุญาตให้ตั้งค่าการเชื่อมต่อ TLS และช่วงพอร์ตของพอร์ตพาสซีฟในไฟล์การกำหนดค่า VSFTPD ตามลำดับ:

sudo ufw allow 990/tcp
sudo ufw allow 40000:50000/tcp
sudo ufw status

4. ตอนนี้ ให้เปิดไฟล์กำหนดค่า VSFTPD และกำหนดรายละเอียด SSL ในนั้น:

sudo vi /etc/vsftpd/vsftpd.conf
OR
sudo nano /etc/vsftpd/vsftpd.conf

จากนั้น เพิ่มหรือค้นหาตัวเลือก ssl_enable และตั้งค่าเป็น YES เพื่อเปิดใช้งานการใช้ SSL อีกครั้ง เนื่องจาก TLS มีความปลอดภัยมากกว่า SSL เราจะจำกัด VSFTPD ให้ ใช้ TLS แทนโดยเปิดใช้งานตัวเลือก ssl_tlsv1:

ssl_enable=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO

5. ต่อไป แสดงความคิดเห็นในบรรทัดด้านล่างโดยใช้อักขระ # ดังต่อไปนี้:

#rsa_cert_file=/etc/ssl/private/ssl-cert-snakeoil.pem
#rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key

หลังจากนั้น ให้เพิ่มบรรทัดด้านล่างเพื่อกำหนดตำแหน่งของใบรับรอง SSL และไฟล์คีย์:

rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem

6. ตอนนี้ เรายังต้องป้องกันไม่ให้ผู้ใช้ที่ไม่ระบุชื่อใช้ SSL จากนั้นบังคับให้การเข้าสู่ระบบที่ไม่ระบุชื่อทั้งหมดใช้การเชื่อมต่อ SSL ที่ปลอดภัยสำหรับการถ่ายโอนข้อมูล และส่งรหัสผ่านระหว่างการเข้าสู่ระบบ:

allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES

7. นอกจากนี้ เราสามารถใช้ตัวเลือกด้านล่างเพื่อเพิ่มคุณสมบัติความปลอดภัยเพิ่มเติมในเซิร์ฟเวอร์ FTP ด้วยตัวเลือก require_ssl_reuse=YES การเชื่อมต่อข้อมูล SSL ทั้งหมดจะต้องแสดงการใช้เซสชัน SSL ซ้ำ พิสูจน์ว่าพวกเขารู้ความลับหลักเดียวกันกับช่องควบคุม ดังนั้นเราควรปิดการใช้งานมัน

require_ssl_reuse=NO

นอกจากนี้ เราสามารถกำหนดได้ว่า VSFTPD การเข้ารหัส SSL ใดที่จะอนุญาตให้มีการเชื่อมต่อ SSL ที่เข้ารหัสด้วยตัวเลือก ssl_ciphers สิ่งนี้จะช่วยขัดขวางความพยายามของผู้โจมตีที่พยายามบังคับการเข้ารหัสเฉพาะที่อาจค้นพบช่องโหว่ใน:

ssl_ciphers=HIGH

8. จากนั้น เรามากำหนดช่วงพอร์ต (พอร์ตต่ำสุดและสูงสุด) ของพอร์ตแบบพาสซีฟ

pasv_min_port=40000
pasv_max_port=50000

9. หากต้องการเปิดใช้งานการแก้ไขข้อบกพร่อง SSL ซึ่งหมายความว่าการวินิจฉัยการเชื่อมต่อ openSSL จะถูกบันทึกลงในไฟล์บันทึก VSFTPD เราสามารถใช้ตัวเลือก debug_ssl:

debug_ssl=YES

ในที่สุดก็บันทึกไฟล์และปิด จากนั้นรีสตาร์ทบริการ VSFTPD:

systemctl restart vsftpd

ขั้นตอนที่ 3: ตรวจสอบ FTP ด้วยการเชื่อมต่อ SSL/TLS บน Ubuntu

10. หลังจากดำเนินการกำหนดค่าข้างต้นทั้งหมดแล้ว ให้ทดสอบว่าขณะนี้ VSFTPD ใช้การเชื่อมต่อ SSL/TLS หรือไม่ โดยลองใช้ FTP จากบรรทัดคำสั่งด้านล่าง

จากผลลัพธ์ด้านล่าง มีข้อความแสดงข้อผิดพลาดแจ้งเราว่า VSFTPD สามารถอนุญาตให้ผู้ใช้ (ไม่ระบุชื่อ) เข้าสู่ระบบจากไคลเอนต์ที่ปลอดภัยซึ่งรองรับบริการการเข้ารหัสเท่านั้น

ftp 192.168.56.10
Connected to 192.168.56.10  (192.168.56.10).
220 Welcome to TecMint.com FTP service.
Name (192.168.56.10:root) : ravi
530 Non-anonymous sessions must use encryption.
Login failed.
421 Service not available, remote server has closed connection
ftp>

บรรทัดคำสั่งไม่รองรับบริการเข้ารหัสซึ่งส่งผลให้เกิดข้อผิดพลาดด้านบน ดังนั้น เพื่อเชื่อมต่อกับเซิร์ฟเวอร์ FTP อย่างปลอดภัยโดยเปิดใช้งานบริการการเข้ารหัส เราจำเป็นต้องมีไคลเอนต์ FTP ที่รองรับการเชื่อมต่อ SSL/TLS ตามค่าเริ่มต้น เช่น FileZilla

ขั้นตอนที่ 4: ติดตั้ง FileZilla บนไคลเอนต์เพื่อเชื่อมต่อ FTP อย่างปลอดภัย

FileZilla เป็นไคลเอ็นต์ FTP ข้ามแพลตฟอร์มที่มีประสิทธิภาพและใช้กันอย่างแพร่หลาย ซึ่งสนับสนุน FTP ผ่าน SSL/TLS และอื่นๆ หากต้องการติดตั้ง FileZilla บนเครื่องไคลเอนต์ Linux ให้ใช้คำสั่งต่อไปนี้

--------- On Debian/Ubuntu ---------
sudo apt-get install filezilla   

--------- On CentOS/RHEL/Fedora --------- 
yum install epel-release filezilla

--------- On Fedora 22+ --------- 
sudo dnf install filezilla

12. เมื่อการติดตั้งเสร็จสิ้น ให้เปิดและไปที่ File=>Sites Manager หรือ (กด Ctrl+S) เพื่อรับ อินเทอร์เฟซผู้จัดการไซต์ด้านล่าง

13. ตอนนี้ กำหนดชื่อโฮสต์/ไซต์ เพิ่มที่อยู่ IP กำหนดโปรโตคอลที่จะใช้ การเข้ารหัสและประเภทการเข้าสู่ระบบตามภาพหน้าจอด้านล่าง (ใช้ค่าที่นำไปใช้กับสถานการณ์ของคุณ):

คลิกที่ปุ่ม ไซต์ใหม่ เพื่อกำหนดค่าการเชื่อมต่อไซต์/โฮสต์ใหม่

Host:  192.168.56.10
Protocol:  FTP – File Transfer Protocol
Encryption:  Require explicit FTP over   #recommended 
Logon Type: Ask for password	        #recommended 
User: username

14. จากนั้นคลิกที่ เชื่อมต่อ จากอินเทอร์เฟซด้านบนเพื่อป้อนรหัสผ่าน จากนั้นตรวจสอบใบรับรองที่ใช้สำหรับการเชื่อมต่อ SSL/TLS และคลิก ตกลง อีกครั้งเพื่อเชื่อมต่อกับเซิร์ฟเวอร์ FTP:

15. ตอนนี้ คุณควรเข้าสู่ระบบเซิร์ฟเวอร์ FTP ผ่านการเชื่อมต่อ TLS ได้สำเร็จ โปรดตรวจสอบส่วนสถานะการเชื่อมต่อเพื่อดูข้อมูลเพิ่มเติมจากอินเทอร์เฟซด้านล่าง

16. สุดท้ายนี้ มาถ่ายโอนไฟล์จากเครื่องท้องถิ่นไปยังเซิร์ฟเวอร์ FTP ในโฟลเดอร์ไฟล์ ดูที่ด้านล่างสุดของอินเทอร์เฟซ FileZilla เพื่อดูรายงานเกี่ยวกับการถ่ายโอนไฟล์

นั่นคือทั้งหมด! โปรดจำไว้เสมอว่าการติดตั้งเซิร์ฟเวอร์ FTP โดยไม่เปิดใช้งานบริการการเข้ารหัสมีผลกระทบด้านความปลอดภัยบางประการ ตามที่เราอธิบายไว้ในบทช่วยสอนนี้ คุณสามารถกำหนดค่าเซิร์ฟเวอร์ FTP เพื่อใช้การเชื่อมต่อ SSL/TLS เพื่อปรับใช้การรักษาความปลอดภัยใน Ubuntu 16.04/16.10

หากคุณประสบปัญหาใดๆ ในการตั้งค่า SSL/TLS บนเซิร์ฟเวอร์ FTP โปรดใช้แบบฟอร์มความคิดเห็นด้านล่างเพื่อแบ่งปันปัญหาหรือความคิดของคุณเกี่ยวกับบทช่วยสอน/หัวข้อนี้