با سلام این اولین مقاله ای است که درباره ی موضوع مورد علاقه ی خودم یعنی linux می نویسم.امیدوارم مورد استفاده ی دوستان واقع شود.
در هنگام نصب لینوکس و در زمان انتخاب پکیج ها از شما برای نصب Ftp سرور سوال می شود.لینوکس CentOs به صورت خودکار سرویس VSFTPD را برای شما راه اندازی می کند.اما این سیستم دارای معایب و همچنین مزایایی است که برای سرویس دهی بهتر می توان از Pure-ftp استفاده کرد که کارایی بیشتری دارد و سرعت آن بالاتر است.
برای نصب Pure-ftpd بهتر است هر گونه نرم افزار دیگر اف تی پی را پاک کنید.برای این کار از دستور RPM استفاده می کنیم.
root@localhost /]# rpm -qv vsftpd
package vsftpd is not installed
اگر با پیغام این پکیج وجود دارد رو به رو شده اید از این دستور برای پاک کردن VSFTPD استفاده کنید.
root@localhost /]# rpm -ev vsftpd
حالا شروع به کار کرده ومراحل نصب این برنامه را به ترتیب دنبال می کنیم.
ابتدا باید فایل نصب کننده یا سرس کد pure-ftp را از سایت آن بر روی سرور خود بیاورید:
root@localhost /]# wget ftp://ftp.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.21.tar.gz
بعد از آن این فایل را در /usr/local/src قرار دهید:
root@localhost /]# mv pure-ftpd-1.0.21.tar.gz /usr/local/src
بعد این فایل را باز کنید با استفاده از تار:
root@localhost /]# tar -xvf pure-ftpd-1.0.21.tar.gz
داخل دایرکتوری ایجاد شده بعد از باز شدن شوید:
root@localhost /]# cd pure-ftpd-1.0.21
فایل configure را به شکل زیر اجرا کنید برای آپشن های بیشتر از help– کمک بگیرید.
root@localhost /]# ./configure
root@localhost /]# ./configure –help
تعدادی فایل در این مرحله چک می شود که این مدتی ممکن اسن طول بکشد ولی مراحل در برابر شما آشکار است.در مرحله بعد دستور make را باید انجام دهید تا فایل ها را کامپایل کند.
root@localhost /]# make
بعد از آن نیز آخرین مرحله ی نصب می آید که make install است.
root@localhost /]# make install
در حال حاضر سرویس Pure-ftp نصب شده است برای باز کردن فایل طرز استفاده می توانید از man استفاده کنید.
root@localhost /]# man pure-ftpd
حالا نیاز است که فایل مورد نظر اجرا شود تا این سروس شروع به کار کند.به صورت پیش فرض این سرویس در usr/local/sbin/pure-ftpd نصب شده است برای شروع به کار از دستور زیر استفاده کنید:
root@localhost /]# /usr/local/sbin/pure-ftp &
بعد از آن یک پی آی دی ایجاد می کند برای چک کردن این که سرویس به درستی کار می کند یا نه می توانید از Nmap استفاده کنید.
root@localhost /]# nmap localhost
Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2009-02-21 14:31 IRST
Interesting ports on localhost (127.0.0.1):
Not shown: 1673 closed ports
PORT STATE SERVICE
21/tcp open ftp
بعد از اینکه مطئن شده اید که Pure-FTPd به درستی نصب شده است و کار می کند.باید کاری کنیم که این سرویس بعد از هر ری استارت شدن سرور شروع به کار کند.برای این کار می توان از دو روش استفاده کرد که ما در اینجا به روش آسان تر اشاره می کنیم.در مقاله ای دیگر که روش اسکریپت نویسی برای init.d را آموزش دادیم روش سخت تر را نیز که کارایای بیشتری برای کنترل این سرویس دارد را مطرح می کنیم.
و اما روش:
در اینجا ما از xinetd برای راه اندازی سرویس Pure-ftpd استفاده می کنیم و از آن به عنوان والد این سرویس بهره می بریم.
ابتدا باید از وجود xinetd بر روی سرور مطمئن شویم:
[root@localhost /]# rpm -qv xinetd
xinetd-2.3.14-10.el5
در صورتی که نصب نشده بود با این دستور نصب کنیم.
root@localhost /]# yum install xinetd
برای اینکه ببینیند xinetd به صورت پیش فرض در سرور هنگام بالا آمدن اجرا می شود،از دستور زیر استفاده کنید.
root@localhost xinetd.d]# chkconfig –list | grep xinetd
xinetd ۰:off ۱:off ۲:off ۳:on 4:on ۵:on ۶:off
چون ما در سرور در Run Level 3 کار می کنیم در نتیجه xinetd باید در این Run level روشن باشد.اگر نبود از این دستور استفاده کنید.
root@localhost xinetd.d]# chkconfig -level 3 xinetd on -v
بعد از این مراحل باید فایل تنظیمات Pure-ftp را در دایرکتوری تنظیمات xinetd ایجاد کنیم.
root@localhost /]# cd /etc/xinetd.d/
root@localhost xinetd.d]# vi pure-ftp
بعد از آن لازم است که از در این فایل اسکریپت مورد نظر خود را بنویسیم.این اسکریپت در واقع بعد از اجرا شدن xinetd در سرور اجرا می شود و سرویس اف تی پی را راه اندازی می کند.
#default=on
#This is Script File For Pure-ftp Running under Pure-ftp
service ftp
{
socket_type = stream
protocol = tcp
wait = no
user = root
server = /usr/local/sbin/pure-ftpd
log_type = FILE /var/log/ftpdlog
disable = no
}
گزینه هایی که بلد شده اند باید حتما در اسکریپت باشند.
در این اسکریپت جای برای لاگ فایل ها در نظر گرفته شده است.
برای این کار باید فایل لاگ را در /var/log ایجاد کنید به هر اسمی که می خواهید.
root@localhost xinetd.d]# touch /var/log/ftpdlog
root@localhost xinetd.d]# chmod 755 /var/log/ftpdlog
برای این که در هر بوت شدن سیستم این سرویس اجرا شود باید در اسکریپت #default=on وجود داشته باشد.البته شما می توانید گزینه های دیگری را نیز به این اسکریپت اضافه کنید که این گزینه ها در man inetd.conf به صورت کامل آورده شده است.همچنین برای خاموش کردن این سرویس از این گزینه disable=yes استفاده کنید و دستور زیر را اجرا کنید:
root@localhost xinetd.d]# service xinetd restart
Stopping xinetd: [ OK ]
Starting xinetd: [ OK ]
بعد از آن اگر از nmap استفاده کنید دیگر سرویسی به نام Ftp وجود ندارد:
root@localhost xinetd.d]# nmap localhost
Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2009-02-21 14:55 IRST
Interesting ports on localhost (127.0.0.1):
Not shown: 1674 closed ports
PORT STATE SERVICE
22/tcp open ssh
25/tcp open smtp
80/tcp open http
111/tcp open rpcbind
781/tcp open hp-collector
3306/tcp open mysql
Nmap finished: 1 IP address (1 host up) scanned in 0.228 seconds
برای باز گرداندن به سیستم قبلی disbale=no کنید.
هم اکنون کار ما تمام شده است و سرویس به طور کامل راه اندازی شده است.
فقط باید یک بار ربوت کنید تا نتیجه را تست کنید.
این هم برای تست روی localhost
[root@localhost xinetd.d]# ftp localhost
Connected to localhost.
220———- Welcome to Pure-FTPd ———-
220-You are user number 1 of 50 allowed.
220-Local time is now 15:06. Server port: 21.
220-IPv6 connections are also welcome on this server.
220 You will be disconnected after 15 minutes of inactivity.
500 This security scheme is not implemented
500 This security scheme is not implemented
KERBEROS_V4 rejected as an authentication type
Name (localhost:root): root
331 User root OK. Password required
Password:
230-User root has group access to: wheel disk adm sys daemon
230- bin root
230 OK. Current directory is /root
پایان
