نحوه فعال‌سازی حالت Passive در FTP

این مقاله نحوه فعال‌سازی حالت Passive در FTP، تفاوت آن با حالت Active، نحوه پیکربندی سرورهای Pure-FTPd و ProFTPD، تنظیمات NAT، و نحوه باز کردن پورت‌های Passive در انواع فایروال‌ها مانند CSF، nftables، firewalld و iptables را توضیح می‌دهد. همچنین روش رفع مشکلات رایج و بازیابی رابط‌های FTP در cPanel ارائه شده است.

FTP PassiveMode Pure-FTPdProFTPD

~3 دقیقه مطالعه • بروزرسانی ۲۹ بهمن ۱۴۰۴

1. مقدمه


این مستند نحوه استفاده از حالت Active و Passive برای اتصال به سرور FTP را توضیح می‌دهد. حالت Passive برای سرورهایی که پشت NAT قرار دارند ضروری است و از مسدود شدن ارتباط توسط فایروال جلوگیری می‌کند.


نکته مهم: سیستم به‌صورت پیش‌فرض پورت‌های Passive بین 49152 تا 65534 را برای سرورهای Pure-FTPd و ProFTPD فعال می‌کند.


2. تفاوت حالت Active و Passive


Active Mode


در حالت Active، سرور FTP پس از دریافت درخواست، از پورتی متفاوت به سمت کلاینت اتصال برقرار می‌کند. این رفتار در شبکه‌های NAT معمولاً توسط فایروال مسدود می‌شود.


Passive Mode


در حالت Passive، کلاینت هر دو اتصال را آغاز می‌کند. به همین دلیل، فایروال و NAT مانع ارتباط نمی‌شوند.


نکته: اگر کاربران FTP در پشت NAT قرار دارند، باید حالت Passive فعال شود و پورت‌های Passive در سرور و فایروال باز شوند.


3. پیکربندی سرورهای FTP


در ادامه نحوه ویرایش تنظیمات سرورهای Pure-FTPd و ProFTPD توضیح داده شده است.


4. تنظیمات Pure-FTPd


  1. از طریق SSH با کاربر root وارد سرور شوید.
  2. فایل /var/cpanel/conf/pureftpd/local را ایجاد یا ویرایش کنید.
  3. اگر سرور پشت NAT است، مقدار زیر را وارد کنید:

ForcePassiveIP: 203.0.113.0

اگر سرور پشت NAT نیست:


ForcePassiveIP: ~

نکته: فقط یک مقدار ForcePassiveIP می‌تواند در فایل وجود داشته باشد.


تغییر بازه پورت‌های Passive


echo "PassivePortRange: 49152 65534" >> /var/cpanel/conf/pureftpd/local
/usr/local/cpanel/scripts/setupftpserver pure-ftpd --force

راه‌اندازی مجدد سرویس


/usr/local/cpanel/scripts/setupftpserver pure-ftpd --force

5. تنظیمات ProFTPD


  1. از طریق SSH با کاربر root وارد شوید.
  2. فایل /var/cpanel/conf/proftpd/local را ایجاد یا ویرایش کنید.
  3. اگر سرور پشت NAT است، مقدار زیر را وارد کنید:

MasqueradeAddress: 203.0.113.0

اگر سرور پشت NAT نیست:


MasqueradeAddress: ~

نکته: فقط یک مقدار MasqueradeAddress می‌تواند در فایل وجود داشته باشد.


تغییر بازه پورت‌های Passive


echo "PassivePorts: 49152 65534" >> /var/cpanel/conf/proftpd/local
/usr/local/cpanel/scripts/setupftpserver proftpd --force

راه‌اندازی مجدد سرویس


/usr/local/cpanel/scripts/setupftpserver proftpd --force

6. پیکربندی فایروال


ممکن است لازم باشد بازه پورت‌های Passive را در فایروال باز کنید.


CSF


فایل /etc/csf/csf.conf را باز کنید و مطمئن شوید بازه پورت‌ها در خط TCP_IN وجود دارد.


هشدار: از ۳۱ آگوست ۲۰۲۵، CSF دیگر پشتیبانی نمی‌شود.


nftables


nft add rule filter INPUT tcp dport 49152-65534 accept
nft -s list ruleset | tee /etc/sysconfig/nftables.conf

firewalld


firewall-cmd --permanent --zone=public --add-service=ftp
firewall-cmd --permanent --add-port=49152-65534/tcp
firewall-cmd --reload

iptables


yum install iptables-services
iptables -I INPUT -p tcp --dport 49152:65534 -j ACCEPT
service iptables save

7. مشکلات Passive FTP در SolusVM و Xen


در برخی سرورهای CloudLinux با SolusVM و Xen ممکن است مشکلاتی شبیه فایروال رخ دهد. برای رفع مشکل:


IPTABLES_MODULES=ipt_REJECT ipt_tos ipt_TOS ipt_LOG ip_conntrack ipt_limit ipt_multiport iptable_filter iptable_mangle ipt_TCPMSS ipt_tcpmss ipt_ttl ipt_length ipt_state iptable_nat ip_nat_ftp ipt_owner ipt_REDIRECT

service iptables restart

8. رفع مشکلات Passive Mode


اگر سرور NAT نتواند اتصال Passive برقرار کند، مقدار ForcePassiveIP را برابر ~ قرار دهید تا سیستم تغییرات خودکار را غیرفعال کند.


9. بازیابی رابط‌های FTP در cPanel


اگر سرویس FTP در حالت unmanaged باشد، رابط‌های FTP در cPanel نمایش داده نمی‌شوند. برای رفع مشکل:


mkdir -p /var/cpanel/dynamicui/
touch /var/cpanel/dynamicui/ftp

در صورت حذف شدن فایل، پس از هر آپدیت دوباره آن را ایجاد کنید.


نوشته و پژوهش شده توسط دکتر شاهین صیامی