پروتکل FTP عادی به صورت ناامن طراحی شده است و تمام داده ها و پسوردها به صورت متنی ساده انتقال پیدا می کنند، بنابراین برای ایجاد امنیت بیشتر می بایست یک راه ساده ای برای رهگیری تراکنش های بین کلاینت وسرور، و نام های کاربری و پسوردهای استفاده شده در پروسه ی احراز هویت وجود داشته باشد.
پیش نیاز ها
این راهنما در مورد نحوه ی امنیت ارتباطات FTP بروی سرور ProFTPD در RHEL/Centos، با استفاده از TLS(Transport Layer Security) با گسترش FTPS بحث می کند.
همچنین توصیه میشود مطالعه کنید :
نصب سرور ProFTPD برروی RHEL/CentOS 7
گام اول : ایجاد ماژول TLS در فایل پیکر بندی ProFTPD
1. همانطور که در راهنمای Proftpd مربوط به اکانت ناشناس بحث شد، این راهنما نیز همان روش را در فایل پیکربندی proftpd برای ماژول ها در نظر می گیرد.
با کمک دایرکتوری enabled_mod و disabled_mod که قابلیت های توسعه یافته ی سرور را فراهم می کند.
بنابراین یک فایل با ادیتور مورد علاقه تون به نام tls.conf در مسیر disabled_mod ایجاد کنید و دستورات زیر را در آن اضافه کنید.
در فایل پیکربندی tls دستورات زیر را وارد کنید.
2. اگرشما از مرورگر یا ftp کلاینتی که برقراری ارتباط TSL را ساپورت نکند استفاده می کنید، توضیحی در مورد TSLRequired on را به منظور عدم پشتیبانی TSL در پیغام خطایی همچون تصویر زیر برای شما ظاهر خواهد شد.
گام دوم : ایجاد فایل های SSL Certificate برای TLS
3. پس از اینکه شما فایل پیکربندی ماژول TLS را ایجاد کردید، که FTP روی TLS در Proftpd را فعال خواهد کرد، شما نیاز دارید SSL Certificate و Key را به منظور برقراری امنیت با استفاده از پکیج Openssl ایجاد کنید.
.
شما می توانید از یک خط طولانی دستور برای ایحاد SSL Certificate و Key استفاده کنید اما برای درک بهتر می توانید از اسکریپت bash برای که SSL Certificate و Key را ایجاد خواهد کرد، استفاده کنید.
یک فایل بش به نام proftpd_gen_ssl در مسیر /usr/local/bin/ ایجاد کنید، و آنرا اجرایی کنید.
دستورات زیر را درآن اضافه کنید.
4. پس از اینکه شما فایل بالا را ایجادکردید، پرمیشن های اجرایی را به آن اضافه کنید، اطمینان حاصل کنید که دایرکتوری /etc/ssl/private وجود دارد، و اسکریپت را برای ایجاد ssl certificate و key اجرا کنید.
گام سوم : فعال کردن TLS برروی سرور ProFTPD
5. به عنوان فایل پیکربندی TLS که قبلا برای تولید ssl certificate و key ایجاد کردید، تنها چیزی که باقیمانده است فعال کردن ماژول TLS توسط ایجاد لینک سیمبولیک برای فایل tls.conf به دایرکتوری enabled_mod است و سپس سرویس ProFTPd را ریستارت کنید.
6.برای غیرفعال کردن ماژول TLS تنها کافی است لینک tls.conf را از دایرکتوری enabled_mod و سرور proftpd را برای اعمال تغییرات ریستارت کنید.
گام چهارم : فایروال را برای اجازه دادن FTP به ارتباطات TLS باز کنید.
7. برای دسترسی کلاینت ها به proftpd و امنیت انتقال فایل ها در مد پسیو، شما باید رنج پورت های بین 1024 تا 65534 را برروی فایروال RHEL/Centos با استفاده از دستور زیر باز کنید.
اکنون سیستم شما آمادگی دریافت ارتباطات FTP برروی TLS به صورت امن را دارد.
گام 5 : دسترسی به ProFTPD تحت TLS از کلاینت ها
8. مرورگرهای وب معمولا هیچ پشتیبانی برای TLS بای FTP ندارند، بنابراین تمامی تراکنش ها به صورت رمگذاری نشده ارسال خواهد شد، یکی از بهترین کلاینت های FTP ،FileZilla می باشد که متن باز بوده و می تواند در اغلب سیستم عامل ها اجرا شود.
برای دسترسی FTPتحت TLS از Filezilla،Site Manager را باز کنید، در قسمت Protocol ،FTP را و در قسمت encryption گزینه ی Require explicit FTP over TLS را انخاب کنید، Logon Type رابه صورت Normal انتخاب کرده و اکانت تان را وارد کرده و Connect را برای برقراری ارتباط با سرور بزنید.
9. اگر اولین باری است که شما به سرور کانکت می شوید، یک پیام همچون تصویر زیر برای شما ظاهر خواهد شد، گزینه ی Always trust certificate for future sessions را تیک بزنید و برروی OK برای پذیرفتن certificate کلیک کنید.
پیش نیاز ها
- نصب سرور ProFTPD برروی RHEL/Centos 7
- فعال کردن اکانت ناشناس برروی ProFTPD در RHEL/Centos 7
این راهنما در مورد نحوه ی امنیت ارتباطات FTP بروی سرور ProFTPD در RHEL/Centos، با استفاده از TLS(Transport Layer Security) با گسترش FTPS بحث می کند.
همچنین توصیه میشود مطالعه کنید :
نصب سرور ProFTPD برروی RHEL/CentOS 7
گام اول : ایجاد ماژول TLS در فایل پیکر بندی ProFTPD
1. همانطور که در راهنمای Proftpd مربوط به اکانت ناشناس بحث شد، این راهنما نیز همان روش را در فایل پیکربندی proftpd برای ماژول ها در نظر می گیرد.
با کمک دایرکتوری enabled_mod و disabled_mod که قابلیت های توسعه یافته ی سرور را فراهم می کند.
بنابراین یک فایل با ادیتور مورد علاقه تون به نام tls.conf در مسیر disabled_mod ایجاد کنید و دستورات زیر را در آن اضافه کنید.
کد:
# nano /etc/proftpd/disabled_mod/tls.conf
در فایل پیکربندی tls دستورات زیر را وارد کنید.
کد:
<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 #TLSCACertificateFile /etc/ssl/certs/CA.pem TLSOptions NoCertRequest EnableDiags NoSessionReuseRequired TLSVerifyClient off TLSRequired on TLSRenegotiate required on </IfModule>
2. اگرشما از مرورگر یا ftp کلاینتی که برقراری ارتباط TSL را ساپورت نکند استفاده می کنید، توضیحی در مورد TSLRequired on را به منظور عدم پشتیبانی TSL در پیغام خطایی همچون تصویر زیر برای شما ظاهر خواهد شد.
گام دوم : ایجاد فایل های SSL Certificate برای TLS
3. پس از اینکه شما فایل پیکربندی ماژول TLS را ایجاد کردید، که FTP روی TLS در Proftpd را فعال خواهد کرد، شما نیاز دارید SSL Certificate و Key را به منظور برقراری امنیت با استفاده از پکیج Openssl ایجاد کنید.
کد:
# yum install openssl
شما می توانید از یک خط طولانی دستور برای ایحاد SSL Certificate و Key استفاده کنید اما برای درک بهتر می توانید از اسکریپت bash برای که SSL Certificate و Key را ایجاد خواهد کرد، استفاده کنید.
یک فایل بش به نام proftpd_gen_ssl در مسیر /usr/local/bin/ ایجاد کنید، و آنرا اجرایی کنید.
کد:
# nano /usr/local/bin/proftpd_gen_ssl
دستورات زیر را درآن اضافه کنید.
کد:
#!/bin/bash echo -e "\nPlease enter a name for your SSL Certificate and Key pairs:" read name openssl req -x509 -newkey rsa:1024 \ -keyout /etc/ssl/private/$name.key -out /etc/ssl/certs/$name.crt \ -nodes -days 365\ chmod 0600 /etc/ssl/private/$name.key
4. پس از اینکه شما فایل بالا را ایجادکردید، پرمیشن های اجرایی را به آن اضافه کنید، اطمینان حاصل کنید که دایرکتوری /etc/ssl/private وجود دارد، و اسکریپت را برای ایجاد ssl certificate و key اجرا کنید.
کد:
# chmod +x /usr/local/bin/proftpd_gen_ssl # mkdir -p /etc/ssl/private # proftpd_gen_ssl
گام سوم : فعال کردن TLS برروی سرور ProFTPD
5. به عنوان فایل پیکربندی TLS که قبلا برای تولید ssl certificate و key ایجاد کردید، تنها چیزی که باقیمانده است فعال کردن ماژول TLS توسط ایجاد لینک سیمبولیک برای فایل tls.conf به دایرکتوری enabled_mod است و سپس سرویس ProFTPd را ریستارت کنید.
کد:
# ln -s /etc/proftpd/disabled_mod/tls.conf /etc/proftpd/enabled_mod/ # systemctl restart proftpd
6.برای غیرفعال کردن ماژول TLS تنها کافی است لینک tls.conf را از دایرکتوری enabled_mod و سرور proftpd را برای اعمال تغییرات ریستارت کنید.
کد:
# rm /etc/proftpd/enabled_mod/tls.conf # systemctl restart proftpd
گام چهارم : فایروال را برای اجازه دادن FTP به ارتباطات TLS باز کنید.
7. برای دسترسی کلاینت ها به proftpd و امنیت انتقال فایل ها در مد پسیو، شما باید رنج پورت های بین 1024 تا 65534 را برروی فایروال RHEL/Centos با استفاده از دستور زیر باز کنید.
کد:
# firewall-cmd --add-port=1024-65534/tcp # firewall-cmd --add-port=1024-65534/tcp --permanent # firewall-cmd --list-ports # firewall-cmd --list-services # firewall-cmd --reload
اکنون سیستم شما آمادگی دریافت ارتباطات FTP برروی TLS به صورت امن را دارد.
گام 5 : دسترسی به ProFTPD تحت TLS از کلاینت ها
8. مرورگرهای وب معمولا هیچ پشتیبانی برای TLS بای FTP ندارند، بنابراین تمامی تراکنش ها به صورت رمگذاری نشده ارسال خواهد شد، یکی از بهترین کلاینت های FTP ،FileZilla می باشد که متن باز بوده و می تواند در اغلب سیستم عامل ها اجرا شود.
برای دسترسی FTPتحت TLS از Filezilla،Site Manager را باز کنید، در قسمت Protocol ،FTP را و در قسمت encryption گزینه ی Require explicit FTP over TLS را انخاب کنید، Logon Type رابه صورت Normal انتخاب کرده و اکانت تان را وارد کرده و Connect را برای برقراری ارتباط با سرور بزنید.
9. اگر اولین باری است که شما به سرور کانکت می شوید، یک پیام همچون تصویر زیر برای شما ظاهر خواهد شد، گزینه ی Always trust certificate for future sessions را تیک بزنید و برروی OK برای پذیرفتن certificate کلیک کنید.