ການຕັ້ງຄ່າ FTP Server ທີ່ປອດໄພໂດຍໃຊ້ SSL/TLS ໃນ Ubuntu


ໃນບົດແນະ ນຳ ນີ້, ພວກເຮົາຈະອະທິບາຍວິທີການຮັບປະກັນເຄື່ອງແມ່ຂ່າຍ FTP (VSFTPD ຫຍໍ້ມາຈາກ "Da Sec FTP Daemon") ໂດຍໃຊ້ SSL/TLS ໃນ Ubuntu 16.04/16.10.

ຖ້າທ່ານ ກຳ ລັງຊອກຫາທີ່ຈະຕັ້ງ server FTP ທີ່ປອດໄພ ສຳ ລັບການແຈກຢາຍທີ່ອີງໃສ່ CentOS, ທ່ານສາມາດອ່ານ - ຮັບປະກັນເຄື່ອງແມ່ຂ່າຍ FTP ໂດຍໃຊ້ SSL/TLS ໃນ CentOS

ຫຼັງຈາກປະຕິບັດຕາມຫຼາຍບາດກ້າວໃນຄູ່ມືນີ້, ພວກເຮົາຈະໄດ້ຮຽນຮູ້ພື້ນຖານຂອງການເຮັດໃຫ້ການບໍລິການເຂົ້າລະຫັດໃນ FTP server ສຳ ລັບການໂອນຂໍ້ມູນທີ່ປອດໄພແມ່ນ ສຳ ຄັນທີ່ສຸດ.

<

  • ທ່ານຕ້ອງຕິດຕັ້ງແລະ ກຳ ຫນົດຄ່າ FTP Server ໃນ Ubuntu
  • ກ່ອນທີ່ພວກເຮົາຈະກ້າວຕໍ່ໄປ, ໃຫ້ແນ່ໃຈວ່າທຸກ ຄຳ ສັ່ງໃນບົດຄວາມນີ້ຈະຖືກ ດຳ ເນີນເປັນຮາກຫລືບັນຊີທີ່ມີສິດພິເສດ.

    ຂັ້ນຕອນທີ 1: ການອອກໃບຢັ້ງຢືນ SSL/TLS ສຳ ລັບ FTP ໃນ Ubuntu

    1. ພວກເຮົາຈະເລີ່ມຕົ້ນໂດຍການສ້າງ subdirectory ພາຍໃຕ້:/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 firewall ເປີດໃຊ້ງານ, ທ່ານຕ້ອງເປີດພອດ 990 ແລະ 40000-50000 ເພື່ອອະນຸຍາດໃຫ້ເຊື່ອມຕໍ່ TLS ແລະລະດັບພອດ ports ທີ່ຕັ້ງຕົວຕັ້ງຄ່າໃນແຟ້ມການຕັ້ງຄ່າ 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 server. ດ້ວຍຕົວເລືອກ require_ssl_reuse = YES , ການເຊື່ອມຕໍ່ຂໍ້ມູນ SSL ທັງ ໝົດ ແມ່ນ ຈຳ ເປັນເພື່ອສະແດງການ ນຳ ໃຊ້ SSL session; ພິສູດໃຫ້ພວກເຂົາຮູ້ຈັກຄວາມລັບຂອງແມ່ບົດດຽວກັນກັບຊ່ອງທາງຄວບຄຸມ. ດັ່ງນັ້ນ, ພວກເຮົາຄວນປິດການໃຊ້ງານມັນ.

    require_ssl_reuse=NO
    

    ນອກຈາກນັ້ນ, ພວກເຮົາສາມາດ ກຳ ນົດວ່າ SSL ciphers VSFTPD ຈະອະນຸຍາດໃຫ້ເຊື່ອມຕໍ່ SSL ທີ່ເຂົ້າລະຫັດໄດ້ແນວໃດກັບຕົວເລືອກ ssl_ciphers . ສິ່ງນີ້ຈະຊ່ວຍເຮັດໃຫ້ທຸກຄວາມພະຍາຍາມຂັດຂວາງໂດຍຜູ້ໂຈມຕີທີ່ພະຍາຍາມບັງຄັບໃຊ້ cipher ສະເພາະເຊິ່ງພວກເຂົາສາມາດຄົ້ນພົບຊ່ອງໂຫວ່ຕ່າງໆໃນ:

    ssl_ciphers=HIGH
    

    8. ຈາກນັ້ນ, ໃຫ້ ກຳ ນົດຂອບເຂດຂອງ port (min ແລະ max port) ຂອງທ່າເຮືອ passive.

    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 server ຢ່າງປອດໄພດ້ວຍການບໍລິການເຂົ້າລະຫັດທີ່ຖືກເປີດໃຊ້, ພວກເຮົາຕ້ອງການລູກຄ້າ FTP ທີ່ຮອງຮັບການເຊື່ອມຕໍ່ SSL/TLS ໂດຍຄ່າເລີ່ມຕົ້ນ, ເຊັ່ນ FileZilla.

    ຂັ້ນຕອນທີ 4: ຕິດຕັ້ງ FileZilla On ລູກຄ້າເພື່ອເຊື່ອມຕໍ່ 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 => Site Manager ຫຼື (ກົດປຸ່ມ Ctrl + S) ເພື່ອໃຫ້ໄດ້ຮັບອິນເຕີເຟດ Site Manager ດ້ານລຸ່ມ.

    13. ຕອນນີ້ ກຳ ນົດຊື່ເຈົ້າພາບ/ເວບໄຊທ໌, ເພີ່ມທີ່ຢູ່ IP, ກຳ ນົດໂປໂຕຄອນເພື່ອ ນຳ ໃຊ້, ການເຂົ້າລະຫັດແລະປະເພດ logon ຄືກັບ ໜ້າ ຈໍຂ້າງລຸ່ມນີ້ (ໃຊ້ຄ່າທີ່ໃຊ້ກັບສະຖານະການຂອງທ່ານ):

    ກົດທີ່ປຸ່ມ New Site ເພື່ອ ກຳ ນົດການເຊື່ອມຕໍ່ເວັບໄຊທ໌/ໂຮດ ໃໝ່.

    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. ຫຼັງຈາກນັ້ນກົດທີ່ Connect ຈາກອິນເຕີເຟດຂ້າງເທິງເພື່ອໃສ່ລະຫັດຜ່ານ, ແລະຫຼັງຈາກນັ້ນກວດສອບໃບຢັ້ງຢືນທີ່ຖືກໃຊ້ ສຳ ລັບການເຊື່ອມຕໍ່ SSL/TLS, ແລະກົດ OK ອີກຄັ້ງເພື່ອເຊື່ອມຕໍ່ກັບ FTP server:

    15. ດຽວນີ້, ທ່ານຄວນເຂົ້າສູ່ລະບົບ FTP server ຢ່າງ ສຳ ເລັດຜົນຜ່ານການເຊື່ອມຕໍ່ TLS, ກວດເບິ່ງສ່ວນສະຖານະການເຊື່ອມຕໍ່ ສຳ ລັບຂໍ້ມູນເພີ່ມເຕີມຈາກອິນເຕີເຟດຂ້າງລຸ່ມ.

    16. ສຸດທ້າຍ, ໃຫ້ໂອນໄຟລ໌ຈາກເຄື່ອງທ້ອງຖິ່ນໄປທີ່ FTP sever ໃນແຟ້ມເອກະສານ, ເບິ່ງທີ່ເບື້ອງລຸ່ມຂອງອິນເຕີເຟດ FileZilla ເພື່ອເບິ່ງລາຍງານກ່ຽວກັບການໂອນໄຟລ໌.

    ຫມົດເທົ່ານີ້! ຈື່ໄວ້ສະ ເໝີ ວ່າການຕິດຕັ້ງ FTP server ໂດຍບໍ່ຕ້ອງໃຊ້ການບໍລິການເຂົ້າລະຫັດຈະມີຜົນຕໍ່ຄວາມປອດໄພແນ່ນອນ. ດັ່ງທີ່ພວກເຮົາໄດ້ອະທິບາຍໄວ້ໃນບົດແນະ ນຳ ນີ້, ທ່ານສາມາດ ກຳ ຫນົດຄ່າ server FTP ເພື່ອໃຊ້ການເຊື່ອມຕໍ່ SSL/TLS ເພື່ອປະຕິບັດຄວາມປອດໄພໃນ Ubuntu 16.04/16.10.

    ຖ້າທ່ານປະສົບບັນຫາໃດໆໃນການຕັ້ງ SSL/TLS ໃນ FTP server, ກະລຸນາໃຊ້ແບບຟອມ ຄຳ ເຫັນຂ້າງລຸ່ມນີ້ເພື່ອແບ່ງປັນບັນຫາຫລືຄວາມຄິດຂອງທ່ານທີ່ກ່ຽວຂ້ອງກັບບົດແນະ ນຳ/ຫົວຂໍ້ນີ້.