آموزش نصب و کانفیگ VSFTPD در CentOS 8 - وان سرور آکـادمی
آموزش نصب و کانفیگ VSFTPD در CentOS 8
آموزش نصب و کانفیگ VSFTPD در CentOS 8

آموزش نصب و کانفیگ VSFTPD در CentOS 8

زمان تقریبی مطالعه: 5 دقیقه

آموزش نصب و کانفیگ VSFTPD در CentOS 8

FTP (پروتکل انتقال فایل) یک پروتکل شبکه سرور-کلاینت است که به کاربران امکان می دهد فایل ها را به یک سرور انتقال دهند. بسیاری از سرورهای منبع باز FTP برای لینوکس در دسترس هستند. محبوب ترین و رایج ترین سرورهای PureFTPd, ProFTPD, و vsftpd هستند. در این آموزش ، نصب و کانفیگ vsftpd را در CentOS 8 توضیح خواهیم داد.

این یک سرور FTP پایدار ، ایمن و سریع است. ما همچنین به شما نشان خواهیم داد چگونه vsftpd را پیکربندی کنید تا کاربران در home directory خود محدود شوند و انتقال داده را با SSL / TLS رمزگذاری کنند.

نصب vsftpd در CentOS 8

بسته vsftpd در مخازن پیش فرض CentOS موجود است. برای نصب آن ، دستور زیر را به عنوان root یا کاربر با امتیازات sudo اجرا کنید :

sudo dnf install vsftpd

پس از نصب پکیج ، vsftpd daemon را شروع کنید و آن را فعال کنید تا در زمان بوت شدن به طور خودکار شروع شود:

sudo systemctl enable vsftpd --now

وضعیت سرویس را تأیید کنید:

sudo systemctl status vsftpd

خروجی چیزی شبیه به این خواهد بود ، نشان می دهد که سرویس vsftpd فعال و در حال اجرا است:

vsftpd.service - Vsftpd ftp daemon
   Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; enabled; vendor preset: disabled)
   Active: active (running) since Mon 2020-03-30 15:16:51 EDT; 10s ago
  Process: 2880 ExecStart=/usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf (code=exited, status=0/SUCCESS)
  ...

یک راز بزرگ درمورد 90 % هاستینگ های ایرانی، اورسل کردن بیش از حد است که باعث افت کیفیت سرورها میشود.

وان سرور با ارائه دسترسی های مختلف این امکان را به شما خواهد داد که تمامی منابع سرورتان را مدیریت و بررسی کنید و همچنین با ارائه گارانتی 100% برگشت وجه ریسک خرید شما را به %0 کاهش میدهد.

برای خرید سرور مجازی با گارانتی 100% بازگشت وجه کلیک کنید.

کانفیگ vsftpd در centos 8

تنظیمات سرور vsftpd در پرونده پیکربندی /etc/vsftpd/vsftpd.conf ذخیره می شود. بسیاری از تنظیمات در پرونده به خوبی ثبت شده اند. برای مشاهده همه گزینه های موجود ، به صفحه رسمی vsftpd مراجعه کنید.

در بخش های بعدی به برخی از تنظیمات مهم مورد نیاز برای پیکربندی نصب امن vsftpd خواهیم پرداخت.

با باز کردن پرونده پیکربندی vsftpd شروع کنید:

sudo nano /etc/vsftpd/vsftpd.conf

1. دسترسی FTP

ما فقط به کاربران محلی اجازه دسترسی به سرور FTP خواهیم داد ، دستورالعمل های anonymous_enable و local_enable را پیدا کنید و مطمئن شوید که پیکربندی شما با خطوط زیر مطابقت دارد:

anonymous_enable=NO
local_enable=YES

2. فعال کردن آپلود

از تنظیمات write_enable برای تغییر در فایل سیستم ، مانند بارگذاری و حذف پرونده ها ، استفاده کنید.

write_enable=YES

3. Chroot Jail

از دسترسی کاربران FTP به فایل های خارج از home directories با chroot جلوگیری کنید.

chroot_local_user=YES

به طور پیش فرض ، هنگامی که chroot فعال است ، vsftpd در صورت قابل نوشتن بودن در فهرستی که کاربران در آن قفل شده اند ، از آپلود پرونده خودداری می کنند. این امر برای جلوگیری از آسیب پذیری امنیتی است.

از یکی از روشهای زیر استفاده کنید تا هنگام فعال کردن chroot اجازه آپلود دهد.

  • روش 1. – روش پیشنهادی برای اجازه آپلود، فعال کردن chroot و پیکربندی دایرکتوری های FTP است. در این آموزش یک دایرکتوری ftp در داخل Home کاربر ایجاد خواهیم کرد که به عنوان chroot و یک فهرست بارگذاری نوشتاری برای بارگذاری فایل ها استفاده می شود.
user_sub_token=$USER
local_root=/home/$USER/ftp
  • روش 2. – گزینه دیگر اضافه کردن دستورالعمل زیر در پرونده پیکربندی vsftpd است. اگر می خواهید به کاربر دسترسی تغییرات در home directory دهید ، از این گزینه استفاده کنید.

allow_writeable_chroot=YES

4. اتصالات FTP منفعل

vsftpd می تواند از هر پورت برای اتصالات FTP منفعل استفاده کند. ما حداقل و حداکثر رنج پورت ها را مشخص می کنیم و بعداً دامنه را در فایروال خود باز خواهیم کرد

خطوط زیر را به پرونده پیکربندی اضافه کنید:

pasv_min_port=30000
pasv_max_port=31000

5. محدود کردن ورود کاربر

برای ورود فقط برخی از کاربران به سرور FTP ، خطوط زیر را بعد از خط userlist_enable=YES اضافه کنید:

userlist_file=/etc/vsftpd/user_list
userlist_deny=NO

هنگامی که این گزینه فعال شد ، باید صریحاً مشخص کنید که کاربران با اضافه کردن نامهای کاربر به پرونده /etc/vsftpd/user_list (یک کاربر در هر خط) می توانند وارد سیستم شوند.

6. تضمین انتقال با SSL / TLS

برای رمزگذاری انتقال FTP با SSL / TLS ، برای استفاده از آن باید یک گواهی SSL داشته باشید و سرور FTP را پیکربندی کنید.

اگر دامنه یا ساب دامنه ای دارید که به آدرس IP سرور FTP اشاره می کند ، می توانید به راحتی یک مجوز رایگان Let’s Encrypt SSL تولید کنید.

در این آموزش ، ما با استفاده از ابزار openssl یک self-signed SSL certificate تولید می کنیم.

دستور زیر یک کلید خصوصی 2048 بیتی و گواهی self-signed برای 10 سال ایجاد می کند. کلید خصوصی و گواهینامه در یک پرونده ذخیره می شوند:

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

پس از ایجاد گواهینامه SSL پرونده پیکربندی vsftpd را باز کنید:

sudo nano /etc/vsftpd/vsftpd.conf

دستورالعمل های rsa_cert_file و rsa_private_key_file را پیدا کنید، مقادیر آنها را در مسیر فایل pam تغییر دهید و دستورالعمل ssl_enable را YES قرار دهید:

rsa_cert_file=/etc/vsftpd/vsftpd.pem
rsa_private_key_file=/etc/vsftpd/vsftpd.pem
ssl_enable=YES

اگر در غیر این صورت مشخص نشده باشد ، سرور FTP برای برقراری اتصالات ایمن فقط از TLS استفاده می کند.

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

پس از انجام ویرایش ، فایل پیکربندی vsftpd (به استثنای comments ) باید چیزی شبیه به این باشد:

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
chroot_local_user=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
userlist_file=/etc/vsftpd/user_list
userlist_deny=NO
tcp_wrappers=YES
user_sub_token=$USER
local_root=/home/$USER/ftp
pasv_min_port=30000
pasv_max_port=31000
rsa_cert_file=/etc/vsftpd/vsftpd.pem
rsa_private_key_file=/etc/vsftpd/vsftpd.pem
ssl_enable=YES

فایل را ذخیره کرده و سرویس vsftpd را برای اعمال تغییرات ری استارت کنید:

sudo systemctl restart vsftpd

باز کردن فایروال

برای باز کردن پورت 21 (پورت فرمان FTP) ، پورت 20 (پورت داده FTP) و 30000-31000 (محدوده پورت های Passive) ، در فایروال خود دستورات زیر را وارد کنید:

sudo firewall-cmd --permanent --add-port=20-21/tcp
sudo firewall-cmd --permanent --add-port=30000-31000/tcp

قوانین فایروال را ریلود کنید:

firewall-cmd --reload

ایجاد کاربر FTP

برای تست سرور FTP ، کاربر جدیدی را ایجاد خواهیم کرد.

  • اگر از قبل کاربرانی دارید که می خواهید به FTP دسترسی داشته باشد ، مرحله اول را رد کنید.
  • اگر اجازه allow_writeable_chroot=YES در پرونده پیکربندی خود تنظیم کرده اید، مرحله 3 را پشت سر بگذارید.

1. کاربر جدیدی بنام newftpuser میسازیم:

sudo adduser newftpuser

در مرحله بعد باید رمزعبور کاربر را تنظیم کنید :

sudo passwd newftpuser

2. کاربر را به لیست کاربران مجاز FTP اضافه کنید:

echo "newftpuser" | sudo tee -a /etc/vsftpd/user_list

3. درخت پوشه FTP را ایجاد کنید و مجوزهای صحیح را تنظیم کنید:

sudo mkdir -p /home/newftpuser/ftp/upload
sudo chmod 550 /home/newftpuser/ftp
sudo chmod 750 /home/newftpuser/ftp/upload
sudo chown -R newftpuser: /home/newftpuser/ftp

همانطور که در بخش قبلی مورد بحث قرار گرفت ، کاربر قادر خواهد بود پرونده های خود را در فهرست ftp/upload آپلود کند.

در این مرحله ، سرور FTP شما کاملاً کاربردی است و شما باید بتوانید با استفاده از هر سرویس دهنده FTP که برای استفاده از رمزگذاری TLS مانند FileZilla پیکربندی شده است ، به سرور خود متصل شوید.

غیرفعال کردن دسترسی Shell

به طور پیش فرض ، در هنگام ایجاد کاربر ، اگر صریحا مشخص نشده باشد ، کاربر به SSH سرور دسترسی خواهد داشت.

برای غیرفعال کردن دسترسی به Shell، ما یک پوسته جدید ایجاد خواهیم کرد که به سادگی پیامی را چاپ خواهد کرد که به کاربر می گوید حساب آنها فقط به دسترسی FTP محدود است.

برای ایجاد شل /bin/ftponly و اجرای آن ، دستورات زیر را اجرا کنید:

echo -e '#!/bin/sh\necho "This account is limited to FTP access only."' | sudo tee -a  /bin/ftponly
sudo chmod a+x /bin/ftponly

پوسته جدید را به لیست پوسته های معتبر در پرونده /etc/shells shell ها اضافه کنید:

echo "/bin/ftponly" | sudo tee -a /etc/shells

پوسته کاربر را به /bin/ftponly تغییر دهید:

sudo usermod newftpuser -s /bin/ftponly

برای تغییر پوسته برای سایر کاربرانی که می خواهید فقط به FTP دسترسی داشته باشید ، از همان دستور استفاده کنید.

نتیجه گیری

ما به شما نشان داده ایم كه چگونه سرور FTP ایمن و سریع را در CentOS 8 نصب و پیكربندی كنید.

برای انتقال ایمن تر و سریع تر داده ها ، باید از SCP یا SFTP استفاده کنید.

5/5 - (2731 امتیاز)