این راهنما به شما کمک می‌کند تا یک سرور FTP روی یک سیستم عامل (معمولاً لینوکس یا ویندوز) داخل یک ماشین مجازی در VMware ایجاد کنید.

مرحله ۱: ایجاد یک ماشین مجازی در VMware

  1. نرم‌افزار VMware را باز کنید.
  2. ایجاد ماشین مجازی جدید را انتخاب کنید.
  3. نوع سیستم عاملی که می‌خواهید روی آن FTP سرور راه‌اندازی کنید (مثلاً لینوکس یا ویندوز) را انتخاب کنید.
  4. نصب سیستم عامل را روی ماشین مجازی انجام دهید. (اگر از لینوکس استفاده می‌کنید، توصیه می‌شود از توزیع‌هایی مانند Ubuntu یا CentOS استفاده کنید).

مرحله ۲: پیکربندی شبکه ماشین مجازی

برای اینکه ماشین مجازی شما به اینترنت و شبکه داخلی دسترسی داشته باشد:

  1. ماشین مجازی خود را در حالت Bridge یا NAT تنظیم کنید تا ارتباط با شبکه خارجی فراهم شود.
  2. مطمئن شوید که IP ماشین مجازی قابل دسترسی است. اگر در حالت Bridge هستید، ماشین مجازی باید IP مستقلی از شبکه محلی شما بگیرد.

مرحله ۳: نصب FTP سرور (برای سیستم‌عامل‌های مختلف)

در لینوکس (Ubuntu/Debian)

  1. ماشین مجازی خود را بوت کنید و وارد سیستم شوید.

  2. ترمینال را باز کرده و دستورات زیر را برای نصب FTP سرور وارد کنید:

sudo apt update sudo apt install vsftpd
  1. پس از نصب، فایل پیکربندی را باز کنید:
sudo nano /etc/vsftpd.conf
  1. برخی از تنظیمات اولیه را انجام دهید:

    • گزینه anonymous_enable=NO را برای غیرفعال کردن دسترسی ناشناس تنظیم کنید.
    • گزینه local_enable=YES و write_enable=YES را برای اجازه دسترسی به کاربران محلی فعال کنید.
  2. سرویس FTP را مجدداً راه‌اندازی کنید:

sudo systemctl restart vsftpd
  1. پورت‌های لازم (مانند پورت 21) را در فایروال باز کنید:
sudo ufw allow 20/tcp sudo ufw allow 21/tcp

در ویندوز

  1. به ماشین مجازی خود وارد شوید و به Control Panel بروید.
  2. روی Programs and Features کلیک کرده و سپس Turn Windows features on or off را انتخاب کنید.
  3. گزینه FTP Server را زیر Internet Information Services پیدا کرده و فعال کنید.
  4. پس از نصب، به IIS Manager بروید و یک سایت FTP جدید بسازید:
    • سپس Add FTP Site را انتخاب کنید.
    • پوشه‌ای که برای فایل‌های FTP اختصاص داده‌اید را انتخاب کنید.
    • پورت 21 را به عنوان پورت پیش‌فرض تنظیم کنید.
    • تنظیمات Authentication را بر اساس نیاز خود (مانند Basic Authentication) انجام دهید.
  5. سرویس را شروع کنید و اطمینان حاصل کنید که پورت 21 در فایروال باز است.

مرحله ۴: تست اتصال FTP

  1. یک نرم‌افزار FTP Client مانند FileZilla را روی سیستم اصلی خود نصب کنید.
  2. با استفاده از IP ماشین مجازی و اطلاعات کاربری که ایجاد کرده‌اید، به سرور FTP متصل شوید.
  3. بررسی کنید که آیا می‌توانید فایل‌ها را آپلود و دانلود کنید.

مرحله ۵: امنیت و بهبود تنظیمات

  • تنظیمات امنیتی مانند استفاده از FTP Secure (FTPS) یا SFTP (در صورتی که از SSH استفاده می‌کنید) را فعال کنید.
  • تنظیمات فایروال و پورت‌ها را به دقت بررسی کنید تا فقط ترافیک مجاز وارد شود.

در صورتی که قصد اضافه کردن تنظیمات implicit encryption به FTP را دارید تا تبدیل به FTPS شود مراحل زیر را طی کنید:

برای تنظیم Implicit Encryption روی سرور FTP در Ubuntu (با استفاده از vsftpd)، مراحل زیر را انجام دهید:

مرحله ۱: نصب OpenSSL (در صورت عدم نصب)

اول، مطمئن شوید که OpenSSL برای تولید گواهینامه‌های SSL نصب شده است.

sudo apt update sudo apt install openssl

مرحله ۲: ایجاد گواهینامه SSL

اگر گواهینامه معتبر SSL ندارید، می‌توانید یک گواهینامه SSL خود-امضاء ایجاد کنید:

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

در اینجا، به سؤالات مربوط به اطلاعات گواهینامه پاسخ دهید (مانند کشور، استان، نام سازمان و غیره).

مرحله ۳: پیکربندی vsftpd برای FTPS Implicit

فایل پیکربندی vsftpd را باز کنید:

sudo nano /etc/vsftpd.conf

سپس تنظیمات زیر را به فایل اضافه کنید (یا آنها را ویرایش کنید):

rsa_cert_file=/etc/ssl/private/vsftpd.pem 
rsa_private_key_file=/etc/ssl/private/vsftpd.pem 
ssl_enable=YES allow_anon_ssl=NO 
force_local_data_ssl=YES 
force_local_logins_ssl=YES 
ssl_tlsv1=YES ssl_sslv2=NO 
ssl_sslv3=NO require_ssl_reuse=NO 
ssl_ciphers=HIGH  
 
# Config For Implicit FTPS: 
implicit_ssl=YES 
listen_port=990
  • گزینه implicit_ssl=YES: فعال کردن حالت Implicit SSL.
  • گزینه listen_port=990: پورت پیش‌فرض برای FTPS Implicit (990) تنظیم می‌شود.

مرحله ۴: راه‌اندازی مجدد سرویس vsftpd

پس از انجام تغییرات، سرویس vsftpd را مجدداً راه‌اندازی کنید:

sudo systemctl restart vsftpd

مرحله ۵: باز کردن پورت‌های لازم در فایروال

برای اینکه کلاینت‌ها بتوانند به سرور FTPS شما متصل شوند، باید پورت‌های لازم را در فایروال باز کنید:

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

این دستور پورت 990 (برای FTPS Implicit) و رنج پورت‌های 40000-50000 برای passive mode FTP را باز می‌کند.

مرحله ۶: تست اتصال

اکنون می‌توانید با استفاده از یک کلاینت FTP مانند FileZilla به سرور متصل شوید:

  1. در FileZilla، یک ارتباط جدید ایجاد کنید.
  2. پروتکل را FTPS - FTP over SSL/TLS (Implicit) انتخاب کنید.
  3. آدرس IP سرور و پورت 990 را وارد کنید.
  4. اطلاعات کاربری FTP خود را وارد کنید و اتصال را تست کنید.

نکات امنیتی:

  • در تولید گواهینامه، بهتر است از یک گواهینامه معتبر (نه خود-امضاء) از یک CA استفاده کنید.
  • می‌توانید از ابزارهای امنیتی مانند fail2ban برای جلوگیری از تلاش‌های مکرر ناموفق لاگین استفاده کنید.