نصب و راه اندازی ftp سرور روی CentOS

وردپرس در نسخه‌های جدید خود (یا از نسخه‌های قبل‌تر) امکان بروزرسانی یا نصب افزونه‌ها و قالب‌ها رو مستقیما از بخش مدیریت فراهم کرده و شما با داشتن یک ftp میتونید براحتی با چند کلیک ساده وردپرس خودتون رو بروز کنید با افزونه‌ها جدید رو نصب کنید. فقط باید ftp داشته باشید که به دایرکتوری اصلی وردپرس اشاره بکنه. چندروز پیش وردپرسی روی سرور نصب کردم و امروز نسخه جدیدی برای پلاگین‌های اون منتشر شده بود برای همین حساب ftpای برای وردپر در سرود درست کردم و تو این مطلب قصد دارم نحوه ایجاد سرور اف‌تی‌پی روی CentOS رو توضیح بدم.

نصب VSftpd روی سرور

برای راه‌اندازی ftp نیاز داریم ابتدا باید VSftpd رو نصب بکنیم

1
yum install vsftpd

برای اطمینان یک نسخه بک‌آپ از تنظیمات vsftpd خود بردارید

1
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.back

فایل تنظیمات vsftpd رو باز کرده

1
nano /etc/vsftpd/vsftpd.conf

مطمئن بشید که متغییر‌های زیر به همین صورت تنظیم شدند.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# Disable anonymous login
anonymous_enable=NO
# Enable local users
local_enable=YES
# Give FTP users permissions to write data
write_enable=YES
# Port 20 need to be turned off. It makes VSftpd run less privileged
connect_from_port_20=NO
# Chroot everyone
chroot_local_user=YES
# Set umask to 022, to make sure that all the files (644) and folders (755) you upload, get the proper permissions
local_umask=022

ایجاد کاربر جدید

کاربر جدیدی که میخوایم ایجاد کنیم، تنها برای دسترسی از طریق ftp ساخته میشه و یه یک دایرکتوری خاص دسترسی داره، پس:

1
useradd -d '/var/www/path/to/your/dir' -s /sbin/nologin ftpuser

آپشن -d /var/www/path/to/your/dir مشخص کننده دایرکتوری هست که کاربر بهش دسترسی داره، بعنوان دایرکتوری اصلیش، آپشن -s /sbin/nologin هم مانع ورود این کاربر از طریق ssh میشه.

اگر میخواید از کاربری که قبلا ایجاد کردید استفاده کنید میتونید با دستور زیر دایرکتوری اصلی اون رو عوض کنید.

1
usermod -d '/var/www/path/to/your/dir' olduser

پسورد مناسبی برای کاربر انتخاب کنید

1
passwd ftpuser

مطمئن بشید که کاربری که ساختید به دایرکتوری مورد نطر شما اجازه دسترسی داره

1
2
chown -R ftpuser '/var/www/path/to/your/dir'
chmod 775 '/var/www/path/to/your/dir'

تنظیمات فایروال

برای اینکه پورت 21 برای ftp آزاد بشه، باید iptables رو ویرایش کنید

1
nano /etc/sysconfig/iptables

سطر زیر رو درون فایل قبل از سطر REJECT اضافه کنید.

1
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT

سرویس iptables رو ریستارت کنید

1
service iptables restart

راه‌اندازی و تست ftp

در نهایت سرویس vsftpd رو اجرا کنید

1
service vsftpd start

برای تست صحت سرور هم توی کامپیوتر خودتون دستور زیر رو اجرا کنید و نام کاربری و رمز عبوری که ساختید رو وارد کنید.

1
ftp your.ftp.server.address

References: