help-header

راه‌ اندازی FTP Server روی لینوکس

یکی از محبوب‌ترین شیوه‌های راه‌اندازی FTP Server برنامه‌ی متن‌باز و رایگان ProFTPD است. در این مقاله، روش نصب ProFTPD روی ابرک‌هایی با توزیع دبیان (Debian) و اوبونتو (Ubuntu) را بررسی می‌کنیم.

نکته: به دلیل موارد امنیتی FTP حتمن آن را پس از نصب برای استفاده به شکل SFTP پیکربندی و تنظیم کنید. این نسخه، در واقع مدل امن‌تر FTP است که براساس پروتکل SSH کار می‌کند.

نصب ProFTPD روی Debian

برای راه‌اندازی این سرویس به یک ابرک با سیستم‌عامل Debian و یک user با دسترسی sudo نیاز دارید.
برای دسترسی به سرویس FTP می‌توانید از آدرس IP ابرک استفاده کنید؛ اما اگر می‌خواهید برای دسترسی از نام‌ دامنه استفاده کنید، لازم است تنظیمات مربوط به نام‌دامنه را برای ابرک انجام دهید.

برای نصب این برنامه می‌توانید از repository های رسمی apt-get استفاده کنید. برای این‌کار، ابتدا repositoryها را به‌روزرسانی کنید و سپس ProFTPD را نصب کنید:

sudo apt-get update
sudo apt-get install proftpd

حالا با استفاده از دستور زیر، درستی نصب و نسخۀ نصب‌شده را بررسی کنید:‌

proftpd -v

برای راه‌اندازی سرویس FTP ابتدا باید group و userهایی ایجاد کنید که برای مدیریت سطح دسترسی‌ها استفاده خواهند شد. با استفاده از دستور زیر می‌توانید یک گروه ایجاد کنید (به جای عبارت ftpgroup می‌توانید مقدار دل‌خواهی را که به عنوان نام گروه استفاده می‌شود، قرار دهید):

sudo addgroup ftpgroup

اکنون به کمک دستور زیر، یک user ایجاد کنید. در این دستور، به جای عبارت‌‌های ftpuser و ftpgroup به ترتیب نام کاربر و نام گروه ایجادشده را بگذارید. در حین اجرای دستور، از شما خواسته می‌شود مقدار Password و برخی اطلاعات دیگر برای کاربر ایجادشده را تنظیم کنید:

sudo adduser ftpuser -shell /bin/false -ingroup ftpgroup -home /ftpshare

برای انجام تنظیمات این سرویس، فایل تنظیمات proftpd.conf را باز کنید:

nano /etc/proftpd/proftpd.conf

اگر از IPv6 استفاده نمی‌کنید، مقدار UseIPv6 را به off تغییر دهید. مقدارهای RootLogin و RequireValidShell را هم به off تغییر دهید. متغیر DenyGroup مشخص می‌کند که کاربران چه گروه‌هایی به ftpserver دسترسی داشته باشند. مقدار این بخش را به اسم گروهی که در دستور‌های قبلی ایجاد کردید تغییر دهید.
برای اعمال این تغییرات، سرویس را دوباره راه‌اندازی کنید:

sudo service proftpd restart

حالا از طریق آدرس IP ابرک یا نام‌دامنه‌ی تنظیم‌شده روی آن، می‌توانید به سرویس ftp دسترسی داشته باشید:‌

ftp://{Server_IP or Server_hostname}

برای انجام تنظیمات TLS به certificate نیاز دارید. ابتدا با استفاده از دستور زیر openssl را نصب کنید:‌

sudo apt-get install openssl

مسیر ssl را در etc/proftpd/ ایجاد کنید:‌

sudo mkdir /etc/proftpd/ssl

با استفاده از دستور زیر، می‌توانید یک self-signed certificate ایجاد کنید:

sudo openssl req -new -x509 -keyout /etc/proftpd/ssl/proftpd.key.pem -days 365 -nodes -out /etc/proftpd/ssl/proftpd.cert.pem

تنها کاربری که می‌تواند به فایل proftpd.key دسترسی داشته‌ باشد، کاربر root است. برای محدود کردن دسترسی به این فایل، دستور زیر را اجرا کنید:

sudo chmod 600 /etc/proftpd/ssl/proftpd.*

فایل tls.conf را باز کنید و تغییرات زیر را اعمال کنید (دقت کنید که باید بعضی از بخش‌ها را از حالت comment خارج کنید):‌

sudo nano /etc/proftpd/tls.conf<

<IfModule mod_tls.c>

[::]

TLSEngine on

TLSLog /var/log/proftpd/tls.log

TLSProtocol SSLv23

TLSOptions NoCertRequest AllowClientRenegotiations

TLSRSACertificateFile /etc/proftpd/ssl/proftpd.cert.pem

TLSRSACertificateKeyFile /etc/proftpd/ssl/proftpd.key.pem

TLSVerifyClient off

TLSRequired on

RequireValidShell no

[::]

</IfModule>

سرویس را دوباره راه‌اندازی کنید:‌

sudo service proftpd restart

نصب ProFTPD روی Ubuntu

توزیع اوبونتو لینوکس یکی از معروف‌ترین و پرکاربردترین توزیع‌های لینوکس است. در این توزیع می‌توانید عملیات نصب ابزارها و نرم‌افزارها را از طریق ترمینال آن به آسانی انجام بدهید.
می‌توانید به سریع‌ترین شکل ممکن و با استفاده از دستور زیر در ترمینال ProFTPD را نصب کنید:

sudo apt-get install proftpd

ممکن است، پس از اجرای کد بالا پیامی با این محتوا که می‌توانید با root وارد شوید، دریافت کنید.
با وارد کردن password یوزر root، عملیات نصب شروع می‌شود.

نکته:
در حین عملیات نصب، پیغامی دریافت می‌کنید که دو گزینه برای اجرای VPS از طریق inetd یا standalone را نمایش می‌دهد. در این مورد باید گزینۀ standalone را انتخاب کنید.

پیکربندی ProFTP روی Ubuntu

پس از نصب این ابزار برای استفاده‌ی صحیح از آن باید آن را پیکربندی‌ کنید. تنظیم ProFTP مانند سایر ابزارهای FTP نیست و لاگین Anonymous را در ابتدای کار غیرفعال می‌کند. باید با فایل Config آن بعضی از تغییرات را اعمال کنید.

با دستور زیر فایل Config را باز کنید.

sudo nano /etc/proftpd/proftpd.conf

روی این فایل باید تغییراتی اعمال کنید. نام سرور را با نام هاست خود جایگزین کنید.

ServerName "example.com"

در قسمت بعدی باید خط کدی را که نمایان‌گر Default Root است برای کامپایل شدن تنظیم کنید یا به بیان بهتر “Uncomment” کنید. انجام این کار کاربران را محدود به home directory می‌کند.

#Use this to jail all users in their homes
DefaultRoot ~

پس از تمام‌شدن این تغییرات، می‌توانید فایل را ذخیره کنید و با اجرای دستور ری‌استارت خارج بشوید.

sudo service proftpd restart

بعد از انجام این مراحل و نصب و پیکربندی ProFTPD، می‌توانید به سرویس FTP دسترسی پیدا کنید. این کار با وارد کردن آدرس دامنه در مرورگر و استفاده از ID کاربر امکان‌پذیر است. بعد از اتصال به ابرک تنها می‌توانید به home directory کاربر دسترسی پیدا کنید.

ftp://example.com

همچنین می‌توانید از طریق ترمینال و وارد کردن دستور زیر به FTP متصل شوید.

ftp example.com

هم‌چنین، با استفاده از دستور Exit می‌توانید از شل FTP خارج شوید.