ວິທີການຮັກສາຄວາມປອດໄພຂອງ FTP Server ໂດຍໃຊ້ SSL/TLS ສຳ ລັບການໂອນເອກະສານທີ່ປອດໄພໃນ CentOS 7


ໂດຍການອອກແບບເດີມຂອງມັນ, FTP (File Transfer Protocol) ບໍ່ປອດໄພ, ໝາຍ ຄວາມວ່າມັນຈະບໍ່ເຂົ້າລະຫັດຂໍ້ມູນທີ່ຖືກສົ່ງຕໍ່ລະຫວ່າງສອງເຄື່ອງ, ພ້ອມກັບຂໍ້ມູນປະ ຈຳ ຕົວຂອງຜູ້ໃຊ້. ນີ້ເປັນໄພຂົ່ມຂູ່ອັນໃຫຍ່ຫຼວງຕໍ່ຂໍ້ມູນເຊັ່ນດຽວກັນກັບຄວາມປອດໄພຂອງເຊີບເວີ.

ໃນບົດແນະ ນຳ ນີ້, ພວກເຮົາຈະອະທິບາຍວິທີການເປີດໃຊ້ບໍລິການເຂົ້າລະຫັດຂໍ້ມູນດ້ວຍຕົນເອງໃນ FTP server ໃນ CentOS/RHEL 7 ແລະ Fedora; ພວກເຮົາຈະຜ່ານຫລາຍຂັ້ນຕອນໃນການຮັບປະກັນການບໍລິການ VSFTPD (Very Secure FTP Daemon) ໂດຍໃຊ້ໃບຢັ້ງຢືນ SSL/TLS.

<

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

    ຂັ້ນຕອນທີ 1. ການອອກໃບຢັ້ງຢືນ SSL/TLS ແລະຄີສ່ວນຕົວ

    1. ພວກເຮົາ ຈຳ ເປັນຕ້ອງເລີ່ມຕົ້ນໂດຍການສ້າງ subdirectory ພາຍໃຕ້: /etc/ssl/ ທີ່ພວກເຮົາຈະເກັບໃບຢັ້ງຢືນ SSL/TLS ແລະເອກະສານ ສຳ ຄັນ:

    # mkdir /etc/ssl/private
    

    2. ຫຼັງຈາກນັ້ນ ດຳ ເນີນ ຄຳ ສັ່ງດ້ານລຸ່ມເພື່ອສ້າງໃບຢັ້ງຢືນແລະກຸນແຈ ສຳ ລັບ vsftpd ໃນເອກະສານດຽວ, ນີ້ແມ່ນ ຄຳ ອະທິບາຍຂອງແຕ່ລະທຸງທີ່ໃຊ້.

    <

  • req - ແມ່ນ ຄຳ ສັ່ງ ສຳ ລັບການຄຸ້ມຄອງການຂໍເຊັນໃບຢັ້ງຢືນ X.509 (CSR).
  • x509 - ໝາຍ ເຖິງການຈັດການຂໍ້ມູນໃບຢັ້ງຢືນ X.509.
  • ມື້ - ກຳ ນົດ ຈຳ ນວນໃບຢັ້ງຢືນມື້ແມ່ນຖືກຕ້ອງ ສຳ ລັບ.
  • newkey - ລະບຸໂປເຊດເຊີໃບຢັ້ງຢືນ.
  • rsa: 2048 - ໂປເຊດເຊີ RSA, ຈະສ້າງຄີສ່ວນຕົວ 2048 ນ້ອຍ.
  • keyout - ຕັ້ງແຟ້ມເກັບຮັກສາທີ່ ສຳ ຄັນ.
  • ອອກ - ກຳ ນົດເອກະສານເກັບຮັກສາໃບຢັ້ງຢືນ, ໃຫ້ສັງເກດວ່າທັງໃບຢັ້ງຢືນແລະຄີແມ່ນເກັບໄວ້ໃນເອກະສານດຽວກັນ: /etc/ssl/private/vsftpd.pem.
  • # 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

    3. ກ່ອນທີ່ພວກເຮົາຈະປະຕິບັດການຕັ້ງຄ່າ VSFTPD, ໃຫ້ເປີດທີ່ Port 990 ແລະ 40000-50000 ເພື່ອອະນຸຍາດໃຫ້ມີການເຊື່ອມຕໍ່ TLS ແລະຊ່ວງພອດຂອງພອດຕົວຕັ້ງຕົວຕີເພື່ອ ກຳ ນົດໃນເອກະສານການຕັ້ງຄ່າ VSFTPD ຕາມ ລຳ ດັບ:

    # firewall-cmd --zone=public --permanent --add-port=990/tcp
    # firewall-cmd --zone=public --permanent --add-port=40000-50000/tcp
    # firewall-cmd --reload
    

    4. ຕອນນີ້, ເປີດເອກະສານຕັ້ງຄ່າ VSFTPD ແລະລະບຸລາຍລະອຽດຂອງ SSL ໃນນັ້ນ:

    # vi /etc/vsftpd/vsftpd.conf
    

    ຊອກຫາຕົວເລືອກ ssl_enable ແລະ ກຳ ນົດຄ່າຂອງມັນໃຫ້ YES ເພື່ອກະຕຸ້ນການໃຊ້ SSL, ນອກຈາກນັ້ນ, ເນື່ອງຈາກ TSL ມີຄວາມປອດໄພກວ່າ SSL, ພວກເຮົາຈະ ຈຳ ກັດ VSFTPD ໃຫ້ຈ້າງ TLS ແທນ, ໂດຍໃຊ້ຕົວເລືອກ ssl_tlsv1_2:

    ssl_enable=YES
    ssl_tlsv1_2=YES
    ssl_sslv2=NO
    ssl_sslv3=NO
    

    5. ຫຼັງຈາກນັ້ນ, ເພີ່ມສາຍຢູ່ດ້ານລຸ່ມເພື່ອ ກຳ ນົດ ຕຳ ແໜ່ງ ຂອງໃບຢັ້ງຢືນ 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. ນອກຈາກນັ້ນ, ພວກເຮົາສາມາດເພີ່ມຕົວເລືອກຕ່າງໆດ້ານລຸ່ມເພື່ອເພີ່ມຄວາມປອດໄພຂອງ server server. ເມື່ອຕົວເລືອກ demand_ssl_reuse ຖືກ ກຳ ນົດໃຫ້ ແມ່ນແລ້ວ , ຫຼັງຈາກນັ້ນ, ການເຊື່ອມຕໍ່ຂໍ້ມູນ SSL ທັງ ໝົດ ແມ່ນ ຈຳ ເປັນເພື່ອສະແດງການ ນຳ ໃຊ້ SSL session; ພິສູດໃຫ້ພວກເຂົາຮູ້ຈັກຄວາມລັບຂອງແມ່ບົດດຽວກັນກັບຊ່ອງທາງຄວບຄຸມ.

    ເພາະສະນັ້ນ, ພວກເຮົາຕ້ອງປິດມັນ.

    require_ssl_reuse=NO
    

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

    ssl_ciphers=HIGH
    

    8. ບັດນີ້, ຕັ້ງຄ່າທ່າເຮືອ (min ແລະ max port) ຂອງພອດຕົວຕັ້ງຕົວຕີ.

    pasv_min_port=40000
    pasv_max_port=50000
    

    9. ທາງເລືອກອື່ນ, ອະນຸຍາດໃຫ້ debugging SSL, ໝາຍ ຄວາມວ່າການວິນິດໄສການເຊື່ອມຕໍ່ openSSL ຖືກບັນທຶກເຂົ້າໃນເອກະສານບັນທຶກ VSFTPD ກັບຕົວເລືອກ debug_ssl:

    debug_ssl=YES
    

    ບັນທຶກການປ່ຽນແປງທັງ ໝົດ ແລະປິດແຟ້ມ. ຫຼັງຈາກນັ້ນໃຫ້ບໍລິການ VSFTPD ເລີ່ມ ໃໝ່:

    # systemctl restart vsftpd
    

    ຂັ້ນຕອນທີ 3: ທົດສອບ server server ດ້ວຍການເຊື່ອມຕໍ່ SSL/TLS

    10. ຫຼັງຈາກເຮັດການຕັ້ງຄ່າທັງ ໝົດ ຂ້າງເທິງ, ທົດສອບວ່າ VSFTPD ກຳ ລັງໃຊ້ການເຊື່ອມຕໍ່ SSL/TLS ໂດຍການພະຍາຍາມໃຊ້ FTP ຈາກເສັ້ນ ຄຳ ສັ່ງດັ່ງຕໍ່ໄປນີ້:

    # 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>
    

    ຈາກການສະແດງ ໜ້າ ຈໍຂ້າງເທິງ, ພວກເຮົາສາມາດເຫັນໄດ້ວ່າມີຂໍ້ຜິດພາດທີ່ແຈ້ງໃຫ້ພວກເຮົາຮູ້ວ່າ VSFTPD ສາມາດອະນຸຍາດໃຫ້ຜູ້ໃຊ້ເຂົ້າສູ່ລະບົບຈາກລູກຄ້າເທົ່ານັ້ນທີ່ສະ ໜັບ ສະ ໜູນ ການບໍລິການເຂົ້າລະຫັດ.

    ເສັ້ນຄໍາສັ່ງບໍ່ໃຫ້ບໍລິການເຂົ້າລະຫັດດັ່ງນັ້ນຈຶ່ງຜະລິດຂໍ້ຜິດພາດ. ດັ່ງນັ້ນ, ເພື່ອເຊື່ອມຕໍ່ກັບເຊີບເວີຢ່າງປອດໄພ, ພວກເຮົາຕ້ອງການລູກຄ້າ FTP ທີ່ຮອງຮັບການເຊື່ອມຕໍ່ SSL/TLS ເຊັ່ນ FileZilla.

    ຂັ້ນຕອນທີ 4: ຕິດຕັ້ງ FileZilla ເພື່ອເຊື່ອມຕໍ່ກັບ FTP Server ຢ່າງປອດໄພ

    11. FileZilla ແມ່ນລູກຄ້າ FTP ທີ່ທັນສະ ໄໝ, ນິຍົມແລະ ສຳ ຄັນທີ່ຮອງຮັບການເຊື່ອມຕໍ່ SSL/TLS ໂດຍຄ່າເລີ່ມຕົ້ນ.

    ການຕິດຕັ້ງ FileZilla ໃນ Linux, ດຳ ເນີນການ ຄຳ ສັ່ງດັ່ງລຸ່ມນີ້:

    --------- On CentOS/RHEL/Fedora --------- 
    # yum install epel-release filezilla
    
    --------- On Debian/Ubuntu ---------
    $ sudo apt-get install  filezilla   
    

    12. ເມື່ອການຕິດຕັ້ງ ສຳ ເລັດ (ຫຼືສິ່ງອື່ນໆຖ້າທ່ານໄດ້ຕິດຕັ້ງແລ້ວ), ໃຫ້ເປີດມັນແລະເຂົ້າໄປທີ່ File => Sites Manager ຫຼື (ກົດປຸ່ມ Ctrl + S ) ເພື່ອໃຫ້ໄດ້ຮັບອິນເຕີເຟດ Site Manager ດ້ານລຸ່ມ.

    ກົດເຂົ້າປຸ່ມ New Site ເພື່ອເພີ່ມລາຍລະອຽດການເຊື່ອມຕໍ່ຂອງເວັບໄຊທ໌/ໂຮດ ໃໝ່.

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

    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 ອີກຄັ້ງ ໜຶ່ງ ເພື່ອເຊື່ອມຕໍ່ກັບ server FTP:

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

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

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