از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
روش راه اندازی سرور FTP با VSFTPD روشن CentOS 7
سرفصلهای مطلب
FTP (پروتکل انتقال فایل) یک پروتکل استاندارد شبکه سرویس گیرنده-سرور است که به کاربران اجازه می دهد فایل ها را به و از یک شبکه راه دور منتقل کنند.
چندین سرور FTP منبع باز برای لینوکس وجود دارد. محبوب ترین و پرکاربردترین آنها هستند PureFTPd
، ProFTPD
، و vsftpd
.
در این آموزش، vsftpd (Very Secure Ftp Daemon) را بر روی CentOS 7. این یک سرور FTP پایدار، ایمن و سریع است. ما همچنین به شما نشان خواهیم داد که چگونه vsftpd را پیکربندی کنید تا کاربران را به فهرست اصلی خود محدود کنید و کل انتقال را با SSL/TLS رمزگذاری کنید.
برای انتقال امنتر و سریعتر دادهها، از SCP یا SFTP استفاده کنید.
پیش نیازها
قبل از ادامه این آموزش، مطمئن شوید که به عنوان یک کاربر با امتیازات sudo وارد سیستم شده اید.
نصب vsftpd روی CentOS 7
بسته vsftpd به صورت پیش فرض در دسترس است CentOS مخازن برای نصب آن دستور زیر را صادر کنید:
sudo yum install vsftpd
پس از نصب بسته، دیمون vsftpd را راه اندازی کنید و آن را فعال کنید تا به طور خودکار در زمان بوت شروع شود:
sudo systemctl start vsftpd
sudo systemctl enable vsftpd
میتوانید با چاپ کردن وضعیت سرویس vsftpd تأیید کنید:
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 Thu 2018-11-22 09:42:37 UTC; 6s ago
Main PID: 29612 (vsftpd)
CGroup: /system.slice/vsftpd.service
└─29612 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
پیکربندی vsftpd
پیکربندی سرویس vsftpd مستلزم ویرایش آن است /etc/vsftpd/vsftpd.conf
فایل پیکربندی. بسیاری از تنظیمات به خوبی در داخل فایل پیکربندی ثبت شده است. برای همه گزینه های موجود به vsftpd رسمی
page.
در بخشهای بعدی، به برخی از تنظیمات مهم مورد نیاز برای پیکربندی یک نصب امن 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 به هر فایلی خارج از دایرکتوری اصلی خود با حذف نظر جلوگیری کنید chroot
بخشنامه
chroot_local_user=YES
بهطور پیشفرض، وقتی chroot فعال است، اگر دایرکتوری که کاربران در آن قفل هستند قابل نوشتن باشد، vsftpd از آپلود فایلها خودداری میکند. این برای جلوگیری از آسیب پذیری امنیتی است.
هنگامی که chroot فعال است، از یکی از روشهای زیر برای اجازه آپلود استفاده کنید.
-
روش 1. – روش توصیه شده برای اجازه آپلود، فعال نگه داشتن chroot و پیکربندی دایرکتوری های FTP است. در این آموزش، یک را ایجاد خواهیم کرد
ftp
دایرکتوری در داخل خانه کاربر که به عنوان chroot و قابل نوشتن عمل می کندuploads
دایرکتوری برای آپلود فایل ها/etc/vsftpd/vsftpd.confuser_sub_token=$USER local_root=/home/$USER/ftp
-
روش 2. – گزینه دیگر این است که دستور زیر را در فایل پیکربندی vsftpd اضافه کنید. اگر باید به کاربر خود دسترسی قابل نوشتن به فهرست اصلی خود بدهید، از این گزینه استفاده کنید.
/etc/vsftpd/vsftpd.confallow_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 را برای استفاده از آن پیکربندی کنید.
می توانید از یک گواهی SSL موجود که توسط یک مرجع گواهی معتبر امضا شده است استفاده کنید یا یک گواهی خودامضا ایجاد کنید.
اگر دامنه یا زیردامنه ای دارید که به آدرس IP سرور FTP اشاره می کند، می توانید به راحتی یک گواهینامه Let’s Encrypt SSL رایگان ایجاد کنید.
در این آموزش، یک گواهی SSL با امضای خود را با استفاده از openssl
فرمان
دستور زیر یک کلید خصوصی 2048 بیتی و گواهینامه خود امضا شده با اعتبار 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 (به استثنای نظرات) باید چیزی شبیه به این باشد:
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
باز کردن فایروال
اگر از فایروال استفاده می کنید، باید به ترافیک FTP اجازه دهید.
برای باز کردن پورت 21
(پورت فرمان FTP)، پورت 20
(درگاه داده FTP) و 30000-31000
(محدوده پورت های غیرفعال)، دستورات زیر را صادر کنید:
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 بگذرید.
-
یک کاربر جدید به نام ایجاد کنید
newftpuser
:sudo adduser newftpuser
در مرحله بعد، باید رمز عبور کاربر را تنظیم کنید:
sudo passwd newftpuser
-
کاربر را به لیست کاربران مجاز FTP اضافه کنید:
echo "newftpuser" | sudo tee -a /etc/vsftpd/user_list
-
درخت دایرکتوری 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
.
غیرفعال کردن دسترسی شل
به طور پیش فرض، هنگام ایجاد یک کاربر، اگر به صراحت مشخص نشده باشد، کاربر دسترسی SSH به سرور خواهد داشت.
برای غیرفعال کردن دسترسی پوسته، یک پوسته جدید ایجاد میکنیم که به سادگی پیامی را چاپ میکند که به کاربر میگوید حسابش فقط به دسترسی 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
فایل:
echo "/bin/ftponly" | sudo tee -a /etc/shells
پوسته کاربر را به تغییر دهید /bin/ftponly
:
sudo usermod newftpuser -s /bin/ftponly
از همین دستور برای تغییر پوسته برای سایر کاربرانی که می خواهید فقط به FTP دسترسی داشته باشید استفاده کنید.
نتیجه
در این آموزش، روش نصب و پیکربندی یک سرور FTP امن و سریع بر روی خود را یاد گرفتید CentOS 7 سیستم.
اگر سوال یا بازخوردی دارید، در کامنت بگذارید.
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1402-12-27 18:30:02