شاید در مواردی روی یک سرور اختصاصی یا سرور مجازی نیاز داشته باشید که سرویس دهنده ftp را روی آن نصب کنید بدون اینکه از کنترل پنل های خاصی استفاده کنید، برای این کار ما نرم افزار vsftpd را پیشنهاد میکنیم.
نرم افزار vsftpd سمت سرور نصب شده و کاربر می تواند با نام کاربری و رمزی که برای آن ایجاد میکند به سرور متصل شده و ارسال و دریافت فایل را انجام بدهد.
بد نیست بدانید کلمه vs در اول نرم افزار vsftpd مخفف very secure یا بسیار امن بوده و این نرم افزار آسیب پذیری بسیار کمتری نسبت به Ftp معمولی دارد.
نصب این نرم افزار بسیار ساده می باشد. که برای نصب و تنظیم آن بر روی سیستم عامل centos به صورت زیر عمل کنید:
1. برای نصب دستور زیر را در ssh بزنید.
yum install vsftpd
2. همچنین در صورتی که نیاز به ftp کلاینت دارد که به این سرویس متصل شوید دستور زیر را برای نصب ftp بزنید
yum install ftp
تا اینجا نصب تمام است و چند تا تنظیم کوچک است که باید انجام بشود
با ویرایش گرهای متنی در ssh مسیر زیر را باز کنید بنده از nano استفاده میکنم
nano /etc/vsftpd/vsftpd.conf
نکته: توجه داشته باشید اگر کد بالا اجرا نشد احتمالا nano در سیستم عامل شما نصب نیست که با دستور زیر می توانید آن را نیز نصب کنید
yum install nano
بعد از باز شدن این فایل گزینه Anonymous_enable را روی NO قرار میدهیم
anonymous_enable=NO
گزینه local_enable را روی YES قرار میدهیم
local_enable=YES
کزینه chroot_local_user را هم روی YES قرار میدهیم که هر کاربر نتواند دسترسی به نقاط دیگری از سرور را داشته باشد
chroot_local_user=YES
بعد از انجام این موارد با زدن دستور زیر در کیبورد فایل را ذخیره و از آن خارج می شویم
CTRL+X
یک بار نرم افزار vsftpd را ریست میکنیم
service vsftpd restart
و همچنین با دستور زیر تنظیم میکنیم که هر بار سرور ریست شد نرم افزار خودکار اجرا شود
chkconfig vsftpd on
تا این مرحله کار ما با نصب و تنظیم این نرم افزار تمام شده است فقط مواردی که مانده این است که یک کاربر باید تعریف شود که توسط نام کاربری و رمز آن وارد اکانت ftp بشویم
برای اینکار با دستور زیر یک اکانت ایجاد میکنیم و برای آن رمز عبور نیز ست میکنیم.
adduser userftp
passwd userftp
توجه داشته باشید مسیر فولدر کاربری که ایجاد کردید در /home/userftp خواهد بود
توجه داشته باشید اگر می خواهید این کاربر دسترسی به ssh نداشته باشد دستور زیر را وارد کنید
usermod -s /sbin/nologin userftp
نکته: اگر با انجام موارد بالا موفق به اتصال نشدید با دستور زیر فایروال سیستم عامل سرور را خاموش کرده و مجدد تست کنید
service iptables stop
نکته مهم: معمولا به صورت عادی امکان اتصال به سرور وجود نخواهد داشت و با خطای زیر مواجه خواهید شد
500 OOPS: cannot change directory:
اگر خطای فوق را مشاهده کردید به صورت زیر عمل کنید
اول دستور زیر را وارد کنید
getenforce
بعد دستور زیر را وارد کنید و جزئیات را مشاهده کنید
getsebool -a | grep ftp
مقدار ftp_home_dir باید روی ON ست شده باشد اگر نبود با دستور زیر این کار را انجام میدهیم
setsebool -P ftp_home_dir on
با انجام این کار دیگر نباید مشکلی در ارتباط با سرویس دهنده ftp داشته باشید.
امیدوارم مفید واقع شده باشد