بعد از نصب سرویس ftp که توضیح آن قبلا در نوشته ای به نام نصب و راه اندازی ftp server بیان شد. برخی مدیران نیاز به تعریف کابران با دسترسی های متفاوت هستند. البته این کار با تعریف کاربران به صورت لوکال در خود سیستم سرویس دهنده امکان پذیر است. شما با ایجاد یک کابر معمولی در سیستم سرویس دهند با مسیر خانه ای (home/) مشخص، یک کابر با دسترسی به سرویس ftp ایجاد کرده اید.
در سیستم عامل لینوکس شما به عنوان مدیر سیستم این امکان را دارید که کابران را به طرق مختلفی ایجاد نمایید، از جمله کابران مجازی. این نوع کابران به طور واقعی روی سیستم وجود ندارند و هیچ گونه دسترسی کاربری به سیستم ندارند که این امر یکی از پارامترهای افزایش امنیت هم می تواند باشد. اما می توان سرویس هایی را به این کاربران تخصیص داد. برای ایجاد کاربران مجازی راه های مختلفی مثل استفاده از دیتابیس، ذخیره در فایل و… وجود دارد. ما در این نوشته نوع ذخیره در فایل را مورد بررسی و توضیح قرار می دهیم.
برای این منظور نیاز به فایلی حاوی نام کاربری و کلمه عبور کاربران با قالب کاملا متنی می باشد که هر خط آن به تنهایی حاوی نام کاربری و کلمه عبور آنها می باشد و نام آن را vusers.txt می گزاریم. طبق مثال زیر:
user1 password1 user2 password2
سپس ابزار دیتابیس برکلی به نام dbx.x-util را نصب کنیم، در اینجا منظور از x، شماره نسخه این برنامه است که در مخازن می تواند متفاوت باشد. با استفاده از این برنامه فایل متنی vusers.txt کابران را به یک فایل با قالب قابل فهم برای دیتابیس تبدیل می کنیم. . اما در ابتدا لازم است تا آن برنامه نصب کنیم:
sudo apt-get update sudo apt-get install db4.8-util db4.8_local -T -t hash -f vusers.txt vsftpd-vuser.db chmode 600 vsftpd-vuser.db
اکنون یک فایل hash شده با قالب دیتابیس داریم که می توانیم این فایل را با استفاده از ماژول PAM سیستم عامل لینوکس برای سرویس ftp تعریف نمود تا کاربران آن سرویس از طریق این فایل تعیین شوند. برای این منظور آن فایل را در مسیری مشخص مثل etc/vsftpd.d/ قرار می دهیم. و در مسیر etc/pam/ یک فایل مثلا با نام vsftpd.virtula با محتوای زیر ایجاد می کنیم:
#%PAM-1.0 auth required pam_userdb.so db=/etc/vsftpd.d/vsftpd-vuser account required pam_userdb.so db=/etc/vsftpd.d/vsftpd-vuser session required pam_loginuid.so
اکنون نوبت آن رسیده است تا تنظیمات مربوط به سرویس VSFTPD انجام شود. همانطور هم که در نوشته قبلی هم بیان شد این تنظیمات در فایل پیکربندی سرویس به مسیر etc/vsftpd.conf/ قرار دارد پارامترهای زیر را تنظیم می نماییم:
# Virtual users will use the same privileges as local users. # It will grant write access to virtual users. virtual_use_local_privs=YES write_enable=YES # Set the name of the PAM service vsftpd will use pam_service_name=vsftpd.virtual # Activates virtual users and determine the local user as guest guest_enable=YES guest_user=ftp # Automatically generate a home directory for each virtual user, based on a template. For example, if the # home directory of the real user specified via guest_username is /home/virtual/$USER, and user_sub_token # is set to $USER, then when virtual user logs in, he will end up (usually chroot()'ed) in his home # directory is defined. This option also takes affect if local_root contains user_sub_token. user_sub_token=$USER # Usually this is mapped to Apache virtual hosting docroot, so that Users can upload files local_root=/home/vftp/$USER # Chroot user and lock down to their home dirs chroot_local_user=YES # Hide ids from user hide_ids=YES
بعد از اعمال تنظیمات فوق لازم است تا تنظیمات مربوط به ماژول PAM نیز اعمال شوند و سپس سرویس مجددا راه اندازی شود. لازم است تا برای کاربران مجازی در مسیری که در تنظیمات vsftpd تعیین شده، شاخه با نام کاربریشان و با مالکیت کاربر ftp به صورت زیر ایجاد شوند:
mkdir -p /home/vftp/{user1,user2} chown -R ftp:ftp /home/vftp
اکنون این نوع استفاده از برنامه vsftp را می توانید با هر برنامه کلاینت ftp و با نام کاربری، کاربران مجازی انجام دهید.
The post کابران مجازی در vsftpd appeared first on دست نوشته های یک تازه کار.