انجمنهای فارسی اوبونتو
کمک و پشتیبانی => راهنماها، نکات و ترفندها => نویسنده: alieblice در 15 فروردین 1391، 10:42 بظ
-
اموزش راه اندازی 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.html
http://www.cyberciti.biz/tips/configure-vsfptd-secure-connections-via-ssl-tls.html
http://www.linuxquestions.org/questions/showthread.php?p=4601583#post4601583
منبع کپی برداری:
fsforums.ir (http://fsforums.ir)
-
دوست عزیز اگر یه لطفی کنید و اموزشهاتون رو به ویکی هم اضافه کنید خیلی عالی میشه!
سپاس
-
با سلام
میخواستم ببینم آیا در vsftpd این امکان رو داریم که بتونیم مجوز آپلود بعضی فرمتها را به کاربران ندهیم؟
و آیا به شیوه ای میتوان آپلود و دانلود حجمی را برای هر کاربر تعریف کرد و محدود نمود؟
با تشکر
-
برایه جلو گیری از اپلود بعضی فایل ها فکر کنم این بشه .متن کاملشو نخوندم http://vsftpd.beasts.org/vsftpd_conf.html
deny_file
تو لینک بالا سیرچش کنین
قسمت دوم سوالتون 2 جور میشه دقیق نفهمیدم کدوم منظورتون هست:
اگر منظورتون خود سایز فایلی که اپلود میشه هست = برایه این مورد من تو تنظیماتش چیزی پیدا نکردم.
اگر منظورتون ایجاد محدودیت حجم برایه کل فایلایه اپلودی هست مثلا حد اکثر تا 10 گیگ فایل بتونه اپلود کنه = تا جایی که من میدونم این امکان رو خودش پیش فرض نداره ولی با ایجاد یک پارتیژن مجازی و گذاشتن quota رو اون میتونین این طور کاری رو انجام بدین . برا این کار کاربر مربوطه رو هم باید به اون درایو مجازی chrootش کنین .
http://www.linuxquestions.org/questions/linux-server-73/directory-quota-601140/
-
با qouta میشه حجم کل کاربر رو بست لاکن نمیشه گفت برای نمونه کاربر فایل بیش از 10 مگابایت بارنگذاره .
-
از همه دوستان ممنونم. این پارتیشن مجازی رو چک کنم ببینم میشه یا نه. بازم متشکرم
-
سلام
یه سوال داشتم ممنون می شم کمکم کنید.
بعد از اایجاد تغییرات در فایل vsftpd.conf تغییرات ذخیره نمیشه.
و میگه که این فایل نسخه پشتیبان ندارد. آیا مایل به ادامه ذخیره تغییرات هستید؟
بعد هم که روی کلید ذخیره کلیک می کنم هیچ اتفاقی نمی افته و ذخیره هم نمیشه.
ممنون
-
دستوری که میزنین چی هست ؟
با sudo دستور رو میزنین ؟
با دست رسی روت دستور رو بزنین .
-
+1
=D> =D> =D>
-
+1
-
پست مفیدی بود ولی من یک کار کوچولو می خواهم انجام بدم و اونم اینه که چند گیگ فایلی که دارم را از روی لوبونتو(کامپیوترم) به ویندوز(لپ تاپ) انتقال بدم و فکر می کردم که ساده ترین راه استفاده از ftp است؟میشه کمکم کنید اینکار را با دردسر کمتری انجام بدم؟روش جایگزینی هست که راحت تر و بهتر باشه(با کابل لن)؟
-
پست مفیدی بود ولی من یک کار کوچولو می خواهم انجام بدم و اونم اینه که چند گیگ فایلی که دارم را از روی لوبونتو(کامپیوترم) به ویندوز(لپ تاپ) انتقال بدم و فکر می کردم که ساده ترین راه استفاده از ftp است؟میشه کمکم کنید اینکار را با دردسر کمتری انجام بدم؟روش جایگزینی هست که راحت تر و بهتر باشه(با کابل لن)؟
HTTP بهتره. یه آپاچی نصب کن، بعد تو ویندوز دانلودش کن :).
-
پست مفیدی بود ولی من یک کار کوچولو می خواهم انجام بدم و اونم اینه که چند گیگ فایلی که دارم را از روی لوبونتو(کامپیوترم) به ویندوز(لپ تاپ) انتقال بدم و فکر می کردم که ساده ترین راه استفاده از ftp است؟میشه کمکم کنید اینکار را با دردسر کمتری انجام بدم؟روش جایگزینی هست که راحت تر و بهتر باشه(با کابل لن)؟
یک samba هم میتونی نصب کنی .
شما ftp رو سادش کن .
اول این دستور رو بزن :
sudo apt-get install vsftpd
بعد برو تو فایل کانفیگش
nano /etc/vsftpd
اینارو به شکل زیر تغییر بده :
local_enable=yes
anonymous_enable=no
write_enable=YES
یوزر و پسورد هم همونیه که باهاش وارد سیستمت میشی.
تموم شد . رو ویندوز filezilla نصب کن حالشو 8) ببر یا بی دردسر ترش رو میخای رو فایرفاکس fireftp رو نصب کن که حجمشم کمتره.
-
سلام
من با filezilla میتونم کانکت بشم اما نمیتونم چیزی آپلود کنم
Status: Connection established, waiting for welcome message...
Status: Insecure server, it does not support FTP over TLS.
Status: Server does not support non-ASCII characters.
Status: Logged in
Status: Starting upload of C:\Users\Sadegh\Desktop\Web Design\WebGo!\index.html
Command: CWD /home/admin
Response: 250 Directory successfully changed.
Command: PWD
Response: 257 "/home/admin" is the current directory
Command: TYPE A
Response: 200 Switching to ASCII mode.
Command: PASV
Response: 227 Entering Passive Mode (78,46,180,119,156,204).
Command: STOR index.html
Response: 553 Could not create file.
Error: Critical file transfer error
Status: Disconnected from server