منبع اصلی نوشتار زیر در این لینک قرار دارد

کابران مجازی در vsftpd

بعد از نصب سرویس 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 دست نوشته های یک تازه کار.



برچسب ها : , , , , ,

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

به اين صفحه امتياز دهيد