آموزش معرفی و بررسی

نحوه تنظیم vsftpd برای راهنمای کاربر در اوبونتو 20.04

معرفی

FTP ، که مخفف عبارت File Transfer Protocol است ، یک پروتکل شبکه است که زمانی برای جابجایی فایل ها بین سرویس گیرنده و سرور به طور گسترده مورد استفاده قرار می گرفت. FTP هنوز برای پشتیبانی از برنامه های قدیمی و گردش کار با نیازهای بسیار خاص استفاده می شود. اگر انتخاب پروتکل دارید ، گزینه های مدرن را در نظر بگیرید که کارآمدتر ، ایمن تر و راحت تر برای تحویل فایل ها هستند. به عنوان مثال ، کاربران اینترنتی که مستقیماً از مرورگر وب خود با https بارگیری می کنند ، و کاربران خط فرمان که از پروتکل های امن مانند scp یا SFTP استفاده می کنند.

 

،FTP daemon،vsftpd بسیار ایمن ، یک سرور FTP برای بسیاری از سیستم های مشابه یونیکس ، از جمله لینوکس است ، و اغلب سرور پیش فرض FTP برای بسیاری از توزیع های لینوکس نیز می باشد. vsftpd برای بهینه سازی امنیت ، عملکرد و ثبات مفید است. همچنین محافظت قوی در برابر مشکلات امنیتی موجود در سایر سرورهای FTP را ارائه می دهد. vsftpd می تواند تنظیمات IPD مجازی ، پشتیبانی از رمزگذاری با ادغام SSL و موارد دیگر را مدیریت کند.

در این آموزش ، vsftpd را طوری پیکربندی می کنید که به کاربر اجازه دهد فایل ها را با استفاده از FTP با اطلاعات ورود به سیستم که توسط SSL/TLS ایمن شده اند ، در فهرست اصلی خود بارگذاری کند. شما همچنین می توانید سرور خود را با استفاده از FileZilla ، یک سرویس گیرنده FTP منبع باز ، برای آزمایش رمزگذاری TLS متصل کنید.

پیش نیازها

برای پیگیری این آموزش به موارد زیر نیاز دارید:

  • اولین چیزی که نیاز دارید یک سرور اوبونتو 20.04 ، یک کاربر غیر روت با امتیازات sudo و یک فایروال فعال است.
  • دومین چیزی که نیاز دارید FileZilla است ، یک سرویس گیرنده FTP منبع باز ، که روی دستگاه محلی شما نصب و پیکربندی شده است. این به شما امکان می دهد آزمایش کنید که آیا سرویس گیرنده می تواند از طریق TLS به سرور شما متصل شود یا خیر.

مرحله 1 – نصب vsftpd

با به روز رسانی لیست بسته های خود شروع کنید:

sudo apt update

بعد ، vsftpd daemon را نصب کنید:

sudo apt install vsftpd

پس از اتمام نصب ، فایل پیکربندی را کپی کنید تا بتوانید با پیکربندی خالی شروع کنید ، در حالی که نسخه اصلی را به عنوان پشتیبان ذخیره می کنید:

sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.orig

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

مرحله 2 – باز کردن فایروال

ابتدا وضعیت فایروال را بررسی کنید تا ببینید آیا فعال است یا خیر. اگر چنین است ، برای اطمینان از مجاز بودن ترافیک FTP ، تنظیماتی را انجام دهید تا قوانین فایروال مانع آزمایش ها نشوند.

وضعیت فایروال را بررسی کنید:

sudo ufw status

این خروجی نشان می دهد که فایروال فعال است و فقط SSH از طریق موارد زیر مجاز است:

Output
Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)

ممکن است قوانین دیگری در نظر گرفته باشید یا اصلاً قوانین فایروال وجود نداشته باشد. از آنجا که فقط ترافیک SSH مجاز است ، باید قوانین مربوط به ترافیک FTP را اضافه کنید.

با باز کردن درگاه های 20 ، 21 و 990 شروع کنید تا وقتی TLS را فعال می کنید آماده شوند:

sudo ufw allow 20,21,990/tcp

سپس ، پورتهای 40000-50000 را برای محدوده پورتهای غیرفعال که در فایل پیکربندی تنظیم می کنید ، باز کنید:

sudo ufw allow 40000:50000/tcp

وضعیت فایروال خود را بررسی کنید:

sudo ufw status

خروجی قوانین فایروال شما باید به صورت زیر ظاهر شود:

Output
Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
20,21,990/tcp              ALLOW       Anywhere
40000:50000/tcp            ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
20,21,990/tcp (v6)         ALLOW       Anywhere (v6)
40000:50000/tcp (v6)       ALLOW       Anywhere (v6)

با vsftpd نصب شده و پورت های لازم باز شده ، اکنون زمان ایجاد یک کاربر اختصاصی FTP است.

مرحله 3 – تهیه راهنمای کاربر

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

با افزودن یک کاربر آزمایشی شروع کنید:

sudo adduser sammy

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

در این مثال ، به جای حذف امتیازهای نوشتن از فهرست اصلی ، یک دایرکتوری ftp ایجاد کنید تا به عنوان chroot و یک فهرست فایلهای قابل نوشتن برای نگهداری فایلهای واقعی باشد.

ایجاد پوشه ftp:

sudo mkdir /home/sammy/ftp

مالکیت آن را تعیین کنید:

sudo chown nobody:nogroup /home/sammy/ftp

حذف مجوزهای نوشتن:

sudo chmod a-w/home/sammy/ftp

مجوزها را تأیید کنید:

sudo ls -la /home/sammy/ftp

Output
total 8
dr-xr-xr-x 2 nobody nogroup 4096 Sep 14 20:28 .
drwxr-xr-x 3 sammy sammy  4096 Sep 14 20:28 ..

بعد ، دایرکتوری بارگذاری فایل را ایجاد کنید:

sudo mkdir /home/sammy/ftp/files

سپس مالکیت را به کاربر اختصاص دهید:

sudo chown sammy:sammy /home/sammy/ftp/files

یک بررسی مجوز در فهرست ftp باید خروجی زیر را بازگرداند:

sudo ls -la /home/sammy/

Output
total 12
dr-xr-xr-x 3 nobody nogroup 4096 Sep 14 20:30 .
drwxr-xr-x 3 sammy sammy  4096 Sep 14 20:28 ..
drwxr-xr-x 2 sammy sammy  4096 Sep 14 20:30 files

در نهایت ، یک فایل test.txt اضافه کنید تا از آن برای آزمایش استفاده کنید:

echo “vsftpd test file” | sudo tee /home/sammy/ftp/files/test.txt

Output
vsftpd test file

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

مرحله 4 – پیکربندی دسترسی FTP

در این مرحله ، به یک کاربر واحد با حساب local shell اجازه می دهید تا با FTP ارتباط برقرار کند. دو تنظیم کلیدی برای این مورد از قبل در vsftpd.conf تنظیم شده است. این فایل را با استفاده از ویرایشگر متن دلخواه خود باز کنید. در اینجا ، ما از نانو استفاده می کنیم:

sudo nano /etc/vsftpd.conf

پس از باز کردن فایل ، تأیید کنید که دستورالعمل anonymous_enable روی NO و دستورالعمل local_enable روی YES تنظیم شده است:

/etc/vsftpd.conf
. . .
# Allow anonymous FTP? (Disabled by default).
anonymous_enable=NO
#
# Uncomment this to allow local users to log in.
local_enable=YES
. . .

این تنظیمات از ورود به سیستم ناشناس جلوگیری می کند و به ترتیب اجازه ورود به سیستم محلی را می دهد. به خاطر داشته باشید که فعال کردن ورود به سیستم محلی به این معنی است که از هر کاربر عادی که در فایل /etc /passwd ذکر شده است می توانید برای ورود استفاده کنید.

برخی از دستورات FTP به کاربران امکان می دهد فایلها و فهرستهای موجود در سیستم فایل را اضافه ، تغییر یا حذف کنند. این دستورات را با اظهارنظر درباره تنظیمات write_enable فعال کنید. شما می توانید این کار را با حذف علامت پوند (#) قبل از این دستورالعمل انجام دهید:

/etc/vsftpd.conf
. . .
write_enable=YES
. . .

در مرحله بعد ، یک دستور user_sub_token اضافه کنید که مقدار آن متغیر محیطی USER $ است. سپس یک دستورالعمل local_root اضافه کنید و آن را در مسیری که نشان داده شده است ، اضافه کنید ، که شامل متغیر محیط USER $ نیز می شود. این تنظیم تضمین می کند که پیکربندی به این کاربر و کاربران آینده اجازه می دهد تا هنگام ورود به فهرست اصلی کاربر مناسب هدایت شوند. این تنظیمات را در هر نقطه از فایل اضافه کنید:

/etc/vsftpd.conf
. . .
user_sub_token=$USER
local_root=/home/$USER/ftp

محدوده پورت هایی را که می توانند برای FTP منفعل استفاده شوند محدود کنید تا مطمئن شوید اتصالات کافی در دسترس هستند:

/etc/vsftpd.conf
. . .
pasv_min_port=40000
pasv_max_port=50000

برای اجازه دسترسی FTP به صورت موردی ، پیکربندی را طوری تنظیم کنید که کاربران فقط زمانی که به صراحت به لیست اضافه می شوند ، دسترسی داشته باشند نه به طور پیش فرض:

/etc/vsftpd.conf
. . .
userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO

userlist_deny منطق را تغییر می دهد: وقتی روی YES تنظیم شود ، دسترسی کاربران FTP به FTP ممنوع است. وقتی روی NO تنظیم شود ، فقط به کاربران موجود در لیست اجازه دسترسی داده می شود.

پس از اتمام اعمال تغییرات ، فایل را ذخیره کرده و از ویرایشگر خارج شوید. اگر از nano برای ویرایش فایل استفاده کرده اید ، می توانید این کار را با فشار دادن CTRL + X ، Y و سپس ENTER انجام دهید.

در نهایت ، کاربر خود را به /etc/vsftpd.userlist اضافه کنید. برای ضمیمه کردن فایل از پرچم -a استفاده کنید:

echo “sammy” | sudo tee -a /etc/vsftpd.userlist

بررسی کنید که طبق انتظار شما اضافه شده است:

cat /etc/vsftpd.userlistcat /etc/vsftpd.userlist

Output
sammy

برای بارگیری تغییرات پیکربندی ، daemon را مجدداً راه اندازی کنید:

sudo systemctl restart vsftpd

با پیکربندی موجود ، اکنون می توانید دسترسی FTP را آزمایش کنید.

مرحله 5 – آزمایش دسترسی FTP

ما سرور را طوری پیکربندی کرده ایم که فقط کاربر sammy بتواند از طریق FTP متصل شود. اکنون ما مطمئن می شویم که این کار مطابق انتظار انجام می شود.

از آنجا که دسترسی ناشناس را غیرفعال کرده اید ، می توانید با تلاش برای اتصال ناشناس آن را آزمایش کنید. اگر پیکربندی به درستی تنظیم شده باشد ، از کاربران ناشناس باید اجازه گرفته نشود. پنجره ترمینال دیگری را باز کرده و دستور زیر را اجرا کنید. حتماً آدرس IP عمومی سرور خود را 203.0.113.0 جایگزین کنید:

ftp -p 203.0.113.0

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

Output
Connected to 203.0.113.0.
220 (vsFTPd 3.0.3)
Name (203.0.113.0:default): anonymous
530 Permission denied.
ftp: Login failed.
ft

بستن اتصال:

bye

کاربران غیر از sammy نیز نباید در اتصال متصل شوند. سعی کنید به عنوان کاربر sudo خود متصل شوید. همچنین باید دسترسی آنها به آنها ممنوع شود و این امر باید قبل از اجازه ورود رمز عبور آنها رخ دهد:

ftp -p 203.0.113.0

Output
Connected to 203.0.113.0.
220 (vsFTPd 3.0.3)
Name (203.0.113.0:default): sudo_user
530 Permission denied.
ftp: Login failed.
ftp>

بستن ارتباط:

bye

از طرف دیگر ، کاربر sammy باید بتواند فایلها را متصل کرده ، بخواند و بنویسد. اطمینان حاصل کنید که کاربر FTP تعیین شده شما می تواند متصل شود:

ftp -p 203.0.113.0

Output
Connected to 203.0.113.0.
220 (vsFTPd 3.0.3)
Name (203.0.113.0:default): sammy
331 Please specify the password.
Password: your_user's_password
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>

اکنون به فهرست پرونده ها تغییر دهید:

cd files

Output
250 Directory successfully changed.

بعد ، get را برای انتقال فایل آزمایشی که قبلاً ایجاد کرده اید به دستگاه محلی خود اجرا کنید:

get test.txt

Output
227 Entering Passive Mode (203,0,113,0,169,12).
150 Opening BINARY mode data connection for test.txt (17 bytes).
226 Transfer complete.
17 bytes received in 0.00 secs (4.5496 kB/s)
ftp>

بعد ، فایل را با نام جدید بارگذاری کنید تا مجوزهای نوشتن را آزمایش کنید:

put test.txt upload.txt

Output
227 Entering Passive Mode (203,0,113,0,164,71).
150 Ok to send data.
226 Transfer complete.
17 bytes sent in 0.00 secs (5.3227 kB/s)

بستن اتصال:

bye

اکنون که پیکربندی خود را آزمایش کرده اید ، در مرحله بعد برای ایمن سازی بیشتر سرور خود اقداماتی را انجام دهید.

مرحله 6 – ایمن سازی معاملات

از آنجا که FTP هیچ داده ای در حال انتقال ، از جمله اطلاعات کاربری را رمزگذاری نمی کند ، می توانید TLS/SSL را برای ارائه این رمزگذاری فعال کنید. اولین قدم ایجاد گواهینامه های SSL برای استفاده با vsftpd است.

برای ایجاد گواهینامه جدید از openssl استفاده کنید و از پرچم -days برای اعتبار یکساله استفاده کنید. در همان فرمان ، یک کلید RSA خصوصی 2048 بیتی اضافه کنید. با تنظیم هر دو پرچم -keyout و -out بر روی یک مقدار ، کلید خصوصی و گواهی در یک فایل قرار می گیرند:

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

از شما خواسته می شود که اطلاعات آدرس گواهی خود را ارائه دهید. اطلاعات شخصی خود را با مقادیر برجسته شده جایگزین کنید:

Output
Generating a 2048 bit RSA private key
............................................................................+++
...........+++
writing new private key to '/etc/ssl/private/vsftpd.pem'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:US
State or Province Name (full name) [Some-State]:NY
Locality Name (eg, city) []:New York City
Organization Name (eg, company) [Internet Widgits Pty Ltd]:vpsgol Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []: your_server_ip
Email Address []:

برای کسب اطلاعات بیشتر در مورد پرچم های گواهینامه ، OpenSSL Essentials: کار با گواهینامه های SSL ، کلیدهای خصوصی و CSR ها را مطالعه کنید.

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

sudo nano /etc/vsftpd.conf

در انتهای فایل ، دو خط وجود دارد که با rsa_ شروع می شوند. آنها را با هر خط قبلی با علامت پوند (#) کامنت کنید:

/etc/vsftpd.conf
. . .
# rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
# rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
. . .

پس از آن خطوط ، خطوط زیر را که به گواهی و کلید خصوصی ایجاد شده اشاره می کنند ، اضافه کنید:

/etc/vsftpd.conf
. . .
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem

 

اکنون شما مجبور به استفاده از SSL خواهید شد ، که از اتصال مشتریانی که نمی توانند TLS را اداره کنند جلوگیری می کند. این امر برای اطمینان از رمزگذاری کل ترافیک ضروری است ، اما ممکن است کاربر FTP شما را مجبور به تغییر سرویس گیرنده کند. تغییر ssl_enable به YES:

/etc/vsftpd.conf
. . .
ssl_enable=YES
. . .

در مرحله بعد ، خطوط زیر را برای رد صریح اتصالات ناشناس از طریق SSL اضافه کنید و برای انتقال داده ها و ورودها به SSL نیاز دارید:

/etc/vsftpd.conf
. . .
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
. . .

سپس سرور را برای استفاده از TLS ، جانشین ترجیحی SSL ، با افزودن خطوط زیر پیکربندی کنید:

/etc/vsftpd.conf
. . .
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
. . .

در نهایت ، دو گزینه نهایی را اضافه کنید. مورد اول نیازی به استفاده مجدد از SSL ندارد زیرا می تواند بسیاری از سرویس گیرندگان FTP را خراب کند. مورد دوم به مجموعه های رمزگذاری “بالا” نیاز دارد ، که در حال حاضر به معنی طول کلیدها برابر یا بیشتر از 128 بیت است:

/etc/vsftpd.conf
. . .
require_ssl_reuse=NO
ssl_ciphers=HIGH
. . .

در اینجا نحوه نمایش این بخش از پرونده پس از انجام همه این تغییرات آمده است:

/etc/vsftpd.conf
# This option specifies the location of the RSA certificate to use for SSL
# encrypted connections.
#rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
#rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
require_ssl_reuse=NO
ssl_ciphers=HIGH

 

پس از اتمام کار ، فایل را ذخیره و ببندید. اگر از نانو استفاده می کنید ، می توانید با فشار دادن CTRL + X ، Y و سپس ENTER خارج شوید.

سرور را راه اندازی مجدد کنید تا تغییرات اعمال شوند:

sudo systemctl restart vsftpd

پس از اتمام کار ، فایل را ذخیره و ببندید. اگر از نانو استفاده می کنید ، می توانید با فشار دادن CTRL + X ، Y و سپس ENTER خارج شوید.

سرور را راه اندازی مجدد کنید تا تغییرات اعمال شوند:

sudo systemctl restart vsftpd

در این مرحله ، دیگر نمی توانید با یک سرویس گیرنده خط فرمان ناامن ارتباط برقرار کنید. اگر تلاش کرده اید ، پیام زیر را دریافت خواهید کرد:

Output
ftp -p 203.0.113.0
Connected to 203.0.113.0.
220 (vsFTPd 3.0.3)
Name (203.0.113.0:default): sammy
530 Non-anonymous sessions must use encryption.
ftp: Login failed.
421 Service not available, remote server has closed connection
ftp>

 

بعد ، تأیید کنید که می توانید با استفاده از یک سرویس گیرنده که از TLS پشتیبانی می کند ، مانند FileZilla ، متصل شوید.

مرحله 7 – آزمایش TLS با FileZilla

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

وقتی FileZilla را برای اولین بار باز می کنید ، نماد مدیر سایت را که در بالای کلمه Host قرار دارد ، سمت چپ ترین نماد در ردیف بالا ، پیدا کنید.

یک پنجره جدید باز خواهد شد. روی دکمه سایت جدید در گوشه سمت چپ پایین کلیک کنید:

در بخش My Sites نماد جدیدی با کلمات New Site ظاهر می شود. اکنون می توانید نام آن را بگذارید یا بعداً برگردید و از دکمه تغییر نام استفاده کنید.

قسمت Host را با نام یا آدرس IP پر کنید. در منوی کشویی Encryption ، Require expplicite FTP over TLS را انتخاب کنید.

برای Logon Type ، Ask for password را انتخاب کنید. کاربر FTP خود را در قسمت User وارد کنید:

روی دکمه Connect در پایین رابط کلیک کنید. از شما رمز عبور کاربر خواسته می شود:

برای اتصال OK را انتخاب کنید. اکنون باید با رمزگذاری TLS/SSL به سرور خود متصل شوید.

در مرحله بعد ، یک گواهی سرور به شما ارائه می شود

وقتی گواهی نامه را پذیرفتید ، روی پوشه فایلها دوبار کلیک کرده و upload.txt را به سمت چپ بکشید تا تأیید کنید که می توانید فایلها را بارگیری کنید:

پس از انجام این کار ، روی نسخه محلی راست کلیک کنید ، نام آن را به upload-tls.txt تغییر دهید و آن را به سرور بکشید تا تأیید شود که می توانید فایل ها را بارگذاری کنید:

اکنون تأیید کرده اید که می توانید فایل های SSL/TLS را به صورت ایمن و موفقیت آمیز منتقل کنید.

مرحله 8 – غیرفعال کردن دسترسی به پوسته (اختیاری)
اگر به دلیل نیازهای مشتری قادر به استفاده از TLS نیستید ، می توانید با غیرفعال کردن توانایی کاربر FTP برای ورود به هر روش دیگر ، امنیت بیشتری کسب کنید. یکی از راه های جلوگیری از آن ایجاد پوسته سفارشی است. اگرچه این هیچ گونه رمزگذاری را ارائه نمی دهد ، اما ممکن است ارزش این کار را داشته باشد تا دسترسی یک حساب آسیب دیده را به فایل هایی که توسط FTP قابل دسترسی هستند محدود کنید.

ابتدا فایلی به نام ftponly را در فهرست bin باز کنید:

sudo nano /bin/ftponly

پیامی را اضافه کنید که به کاربر توضیح می دهد چرا نمی تواند وارد سیستم شود:

/bin/ftponly
#!/bin/sh
echo "This account is limited to FTP access only."

فایل را ذخیره کرده و از ویرایشگر خارج شوید. اگر از نانو استفاده می کنید ، می توانید با فشار دادن CTRL + X ، Y و سپس ENTER خارج شوید.

سپس ، مجوزها را تغییر دهید تا فایل اجرایی شود:

sudo chmod a+x /bin/ftponly

لیست پوسته های معتبر را باز کنید:

sudo nano /etc/shells

در پایین اضافه کنید:

/etc/shells
. . .
/bin/ftponly

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

sudo usermod sammy -s /bin/ftponly

اکنون ، سعی کنید به عنوان sammy وارد سرور خود شوید:

ssh sammy@your_server_ip

پیام زیر را دریافت خواهید کرد:

Output
This account is limited to FTP access only.
Connection to 203.0.113.0 closed.

این تأیید می کند که کاربر دیگر نمی تواند به سرور ssh کند و فقط به دسترسی FTP محدود می شود. لطفاً توجه داشته باشید ، اگر هنگام ورود به سرور خود پیام خطایی دریافت کرده اید ، این می تواند به این معنی باشد که سرور شما احراز هویت رمز عبور را قبول نمی کند. استفاده از احراز هویت مبتنی بر رمز عبور می تواند سرور شما را در برابر حملات آسیب پذیر کند و به همین دلیل است که ممکن است بخواهید احراز هویت رمز عبور را غیرفعال کنید. اگر قبلاً احراز هویت مبتنی بر کلید SSH را پیکربندی کرده اید ، می توانید در مرحله 4 این آموزش درباره نحوه غیرفعال کردن احراز هویت رمز عبور در سرور خود اطلاعات بیشتری کسب کنید.

نتیجه

در این آموزش ، نحوه تنظیم FTP را برای کاربران با حساب محلی توضیح دادیم. اگر نیاز به استفاده از منبع احراز هویت خارجی دارید ، ممکن است بخواهید پشتیبانی vsftpd از کاربران مجازی را بررسی کنید. این مجموعه مجموعه ای غنی از گزینه ها را با استفاده از PAM ، ماژول های احراز هویت Pluggable ارائه می دهد و اگر شما کاربران را در سیستم دیگری مانند LDAP یا Kerberos مدیریت کنید ، انتخاب خوبی است.

 


https://vpsgol.net/product/vps-germany/

https://vpsgol.net/product/vps-usa/

https://vpsgol.net/product/vps-france/

https://vpsgol.net/product/vps-canada/

https://vpsgol.net/product/vps-poland/

https://vpsgol.net/product/vps-netherlands/

https://vpsgol.net/product/vps-england/