اموزش راه اندازی ftp سرور به همراه virtual user بر رویه دبیان برایه اوبونتو هم کار مب کند.
در این اموزش از vsftpd استفاده میکنیم . ftp سرور هایه دیگری هم هسمن مثل proftpd
از این ادرس لیست کامل ftp سرور ها در دست رس هستش
http://en.wikipedia.org/wiki/List_of_FTP_server_software نصب برایه نصب دستور زیر را بزنین
apt-get install vsftpd
بعد از نصب تمام تنظیمات داخل فایل /etc/vsfftpd انجام میشود .
تنظیمات کلا تمام تنظیمات vsftpd به 3 صوزت انجام میشود
1= YES | NO
2= ادرس فایل (در مواردی مثل قرار دادن فایل تنظیمات جدا برایه هر کاربر )
3= عددد (در مواردی مثل گذاشتن محدودیت سرعت )
برایه شروع این طور سناریو یی رو در نظر می گیریم : یک ftp سرور راه اندازی کنیم که به کاربر هایه local (یعنی کاربر هایه سیستم. همون کاربرهایی که تویه ادرس /etc/passwd قرار دارن ) اجازه ftp زدن بدهد و انهارو به home directory شون محدود کند و همچنین محدودیت سرعت 2 مگابایت بر ثانیه داشته باشد.
برایه شروع فایل تنظیمات (/etc/vsftp.conf) رو با یک ویرایشگر متن باز کنین . این تنظیمات رو توش اعمال کنین
به صورت پیش فرض در vsftpd به کاربرهایه anonymous اجازه ورود داده میشود. کاربر هایه anonymous کاربرهایی هستن که بدون نام کاربری و پسورد میتونن وارد ftp شوند.برایه جلوگبری از ورودشون این خط رو پیدا کنین و مقدارشو به NO تغییر دهید
anonymous_enable=NO
توضیح اپشن هایه دیگری که برایه سناریو بالا لازم داریم local_enable=YES
به کاربر هایه local (در بالا توضیح داده شد ) اجازه ورود میدهد. به صورت پیش فرض تو فاایل تنظیمات هستش فقط مربع اولشو بردارین
hroot_local_user=YES
کاربر ها رو به home دایرکتوریشون محدود میکند . به صورت پیش فرض تو فاایل تنظیمات هستش فقط مربع اولشو بردارین. اگر هم می خاهید که فقط گروه خاصی از کاربر هارو chroot کنین از اپشن زیر استفاده کنین . اول اپشنشو فعال کنین وبعد ادرس فایلی که اسامی کاربر هایی که باید chroot شوند روبهش بدید .
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
local_max_rate=2 097 152
از طریق این اپشن محدودیت سرعت اعمال میکنیم . که مقدار عدد بر اساس بایت هستش که برایه 2 مگابایت 2 097 152 می شود . به صورت پیش فرض نیستش اول فایل کانفیگ اضافش کنین .
listen=YES
نفهمیدم برایه چی هستش . به صورت پیش فرض تو فاایل تنظیمات هستش فقط مربع اولشو بردارین.
write_enable=YES
به کاربر ها اجازه نوشتن میدهد . اگر نزاریمش نمیتونن فایل اپبود کنن . به صورت پیش فرض تو فاایل تنظیمات هستش فقط مربع اولشو بردارین.
بقیه تنظیمات لازم هم به صورت پبش فرض تو خودش فعال هست.
بعد از اعمال تنظیمات بالا با دستور زیر سرویس رو رستارت کنین و بعد تست کنین .
service vsftpd restart
حالا تستش کنین :
برایه تست پیشنهاد من استفاده از fireftp یا filezilla هستش . fireftp که رویه فایر فاکس نصب میشود . و filezilla هم تو مخازن هستش که با دستور زیر نصب میشه .
apt-get install filezilla
با دستور ftp هم میشه تست کرد که دستور به شکل زیر هستش
ftp IP-ADDRES
راه اندازی https اول اپشن هایه لازم رو در فایل کانفیگ فعال کنید
ssl_enable=YES
امکان https رو فعال میکند
force_local_data_ssl=YES
تمامی کاربر هایه local رو مجبور به استفاده از https میکند.
force_local_logins_ssl=YES
تمام login هایه کاربر هایه local به صورت https انجام میشود.پسورد به صورت encrypt ردوبدل می شود.
# Permit TLS v1 protocol connections. TLS v1 connections are preferred
ssl_tlsv1=YES
# Permit SSL v2 protocol connections. TLS v1 connections are preferred
ssl_sslv2=NO
# permit SSL v3 protocol connections. TLS v1 connections are preferred
ssl_sslv3=NO
در بالا فقط tlsv1 رو اجازه دادیم . tls بسترین امنیت رو دارد
rsa_cert_file=/etc/vsftpd/vsftpd.pem
ادرس فایل key رو تعیین میکنیم . به صورت پیش فرض تو فایل کانفیگ هست .برایه ساخت فایل کی وارد /etc/vsftpd شوید و دستور زیر رو بزنین
openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout vsftpd.pem -out vsftpd.pem
تست
نکته : برایه تست از هر نرم افزاری استفاده میکنین گذینه رو رویه tsl قرار بدین .
برایه تست ار fireftp میشه استفاده کرد ولی بعضی اوقات یا همیشه درست کار نمیکنه . پیشنهاد من filezilla هستش .
برایه ترمینال هم از دستور زیر استفاده کنین
ftp-ssl 192.168.113.22
virtual user چه زمانی از vitual user استفاده میکنیم :
زمانی که تعداد کاربر ها زیاد باشن که مشکلاتی مثل جلو گیری از اتصال ssh از این کاربر ها ، یا حتی اگر هم تعدادشون کم باشه چون ردو بدل شدن پسورد با امنیت کمتری انجام میشه و ممکن پسورد ssh رو لو دهد از این امکان استفاده میکنیم . با موارد دیگر ...
کلیت کار این هستش که یک فایل ایجاد میکنیم . نام کاربری و پسورد هارو تو این ذخیره می کنیم . و یک تغییر کوچک در فایلی که مسعول اهراض هویت هستش ایجاد میکنیم .
شروع کار اول اپشن هایه مورد نیاز رو در vsftpd فعال میکنیم . از اپشن ها هرکدوم تو خود فایل کانفیگ نبود اول فایل خودتون اضافه کنین
guest_enable=YES
باعث میشه تا تمام کاربر هایه anonymous به صورت guest شناخته شوند .
guest_username=virtualftp
This setting is the real username which guest users are mapped to
virtual_use_local_privs=YES
با این اپشن میگیم که کاربر هایه مجازی از امتیازات کاربر هایه local میتونن بهره ببرن.
local_root=/var/www/ftp/$USER
ادرس فایلی که کاربرهایه وجازی رو به اون جا chroot می کنیم
نکته : $USER به معنی نام کاربری هستش . پس هر کاربر مجازی به صورت اوتومات به ادرس بالا و دایرکتوری که هم نام با نام کاربریش هست chroot میشود. این رو هم برایه اپشن بالا اضافه کنید .
user_sub_token=$USER
chroot_list_enable=YES
برایه لیست کاربر هایی که chroot باید شوند . که با اپشن زیر ادرسشو میدیم . در هر خط یک نام کاربری بنویسین.
chroot_list_file=/etc/vsftpd/chroot_list
pam_service_name=vsftpd
برایه تعیین محل فایل اهراض هویت.
local_enable=NO
جلوگیرب از ورود کاربر هایه local
anonymous_enable=YES
جلو گبری از کاربر هایه anonymous
بقیه اوشن ها به صورت پیش فرض توش هست .
حالا کاربر virtualftp رو بسازین.
useradd virtualftp
سپس نام کاربر هایی که chroot می شوند رو در ادرس زیر بزارین
etc/vsftpd/chroot_list
سپس فایل etc/vsftpd_user_conf/lili رو بسازیرن و این هارو توش بزارین با فرض این که اسم کاربر مجازیتون lili باشه
write_enable=YES
chroot_local_user=YES
local_root=/var/www/ftp/$USER
user_sub_token=$USER
سپس فایل /etc/pam.d/vsftpd رو باز کنید و هرچی توش هست رو پاک کنید و اینارو بزارین
auth required pam_pwdfile.so pwdfile /etc/vsftpd/passwd
account required pam_permit.so
حالا فایل هایه نام کاربری رو می سازیم
htpasswd -c /etc/vsftpd/passwd lili
فایل /var/www/ftp رو بسازین و داخل اون فایل هایه کاربر هارو هم بسازین
نکته : پرمیشن فایل کاربر هایه مجازی رو 661 بزارین
حالا سرویس رو رستارت کنید و تست کنید .
صفحه تمام تنظیمات
vsftpd :
http://vsftpd.beasts.org/vsftpd_conf.html منابع :
http://vsftpd.beasts.org/vsftpd_conf.htmlhttp://www.cyberciti.biz/tips/configure-vsfptd-secure-connections-via-ssl-tls.htmlhttp://www.linuxquestions.org/questions/showthread.php?p=4601583#post4601583منبع کپی برداری:
fsforums.ir