نحوه نصب و پیکربندی ProFTPD در سرور CentOS
در این مطلبن میخواهیم به بررسی نحوه نصب و پیکربندی ProFTPD در سرور CentOS را به صورت گام به گام و تصویری برای شما کاربران عزیز بپردازیم. در ابتدا توضیح بسیار مختصری درمورد ProFTPD ارائه خواهیم داد و سپس به توضیح نحوه نصب و پیکربندی ProFTPD در سرور CentOS می پردازیم . با ما همراه باشید.
ProFTPD
ProFTPD (Pro FTP daemon) یک نرم افزار آزاد و متن باز و سازگار با سیستم عامل های یونیکس و شبه یونیکس است که تحت جواز GNU یا GNU Public License (GPL)،گسترش ، متشر و توزیع شده می باشد.
قبل از آغاز این آموزش شما می بایست یک سرور لینوکس مبتنی بر CentOS 7.0 نصب و راه اندازی نمایید . سیستم می بایست یک آدرس آی پی استاتیک داشته باشد. در این آموزش از ۱۹۲٫۱۶۸٫۰٫۱۰۰ به عنوان آدرس IP و از server1.example.com به عنوان نام هاست بهره گیری شده می باشد.
نصب و راه اندازی ProFTPD
برای این کار EPEL را با انجام دستور پایین فعال نمایید :
rpm -ivh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-2.noarch.rpm
1 | rpm -ivh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-2.noarch.rpm |
سپس ProFTPD و OpenSSL را به شرح پایین نصب و اجرا نمایید :
yum install -y proftpd openssl proftpd-utils
1 | yum install -y proftpd openssl proftpd-utils |
systemctl start proftpd.service systemctl enable proftpd.service
1 2 | systemctl start proftpd.service systemctl enable proftpd.service |
جدای از این در CentOS 7.0 به پیکربندی Firewall-cmd نیاز دارید :
firewall-cmd –add-service=ftp –permanent firewall-cmd –reload
1 2 | firewall-cmd –add-service=ftp –permanent firewall-cmd –reload |
ورژن ProFTPD را با انجام دستور پایین چک نمایید :
proftpd –v
1 | proftpd –v |
[root@server1 ~]# proftpd -v ProFTPD Version 1.3.5 [root@server1 ~]#
1 2 3 | [root@server1 ~]# proftpd -v ProFTPD Version 1.3.5 [root@server1 ~]# |
ایجاد کاربر در ProFTPD
ابتدا یک تیـم به نام ftpgroup و یک کاربر به نام srijan برای ProFTPD تهیه نمایید . سپس کاربر تهیه شده را به دایرکتوری home یعنی /ftpshare محدود نمایید .
groupadd ftpgroup
1 | groupadd ftpgroup |
useradd -G ftpgroup srijan -s /sbin/nologin -d /ftpshare passwd srijan
1 2 | useradd -G ftpgroup srijan -s /sbin/nologin -d /ftpshare passwd srijan |
[root@server1 ~]# passwd srijan Changing password for user srijan. New password: <–ftppassword Retype new password: <–ftppassword passwd: all authentication tokens بروزرسانی d successfully. [root@server1 ~]#
1 2 3 4 5 6 | [root@server1 ~]# passwd srijan Changing password for user srijan. New password: <–ftppassword Retype new password: <–ftppassword passwd: all authentication tokens بروزرسانی d successfully. [root@server1 ~]# |
در وهله پـس باید یک دایرکتوری حفاظت شده تهیه نمایید که هیچ کاربری نتواند محتوای آن را از میـان ببرد و یا تغییر نام دهد، بـعد جواز های دایرکتوری را به شرح پایین تغییر دهید:
chmod -R 1777 /ftpshare/
1 | chmod -R 1777 /ftpshare/ |
اکنون خواهید توانست آدرس ftp://192.168.0.100 را در مرورگر تایپ نمایید و با نام کاربری srijan و پسورد مشـخص شده وارد شوید :
فعال کردن TLS در ProFTPD
به منظور فعال کردن TLS در ProFTPD، فایل /etc/proftpd/proftpd.confرا باز نمایید ، مناسـب تر می باشد قبل از ویرایش فایل، از فایل مهـم یک ورژن پشتیبان ساخته نمایید :
cp /etc/proftpd.conf /etc/proftpd.conf.bak nano /etc/proftpd.conf
1 2 | cp /etc/proftpd.conf /etc/proftpd.conf.bak nano /etc/proftpd.conf |
مسائـل پایین را اضافه نمایید :
[…] DefaultRoot ~ !adm PassivePorts 6000 6100 […] #<IfDefine TLS> TLSEngine on TLSRequired on TLSRSACertificateFile /etc/pki/tls/certs/proftpd.pem TLSRSACertificateKeyFile /etc/pki/tls/certs/proftpd.pem TLSCipherSuite ALL:!ADH:!DES TLSOptions NoCertRequest TLSVerifyClient off TLSRenegotiate ctrl 3600 data 512000 required off timeout 300 TLSLog /var/log/proftpd/tls.log # <IfModule mod_tls_shmcache.c> # TLSSessionCache shm:/file=/var/run/proftpd/sesscache # </IfModule> #</IfDefine> […]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | […] DefaultRoot ~ !adm PassivePorts 6000 6100 […]
#<IfDefine TLS> TLSEngine on TLSRequired on TLSRSACertificateFile /etc/pki/tls/certs/proftpd.pem TLSRSACertificateKeyFile /etc/pki/tls/certs/proftpd.pem TLSCipherSuite ALL:!ADH:!DES TLSOptions NoCertRequest TLSVerifyClient off TLSRenegotiate ctrl 3600 data 512000 required off timeout 300 TLSLog /var/log/proftpd/tls.log # <IfModule mod_tls_shmcache.c> # TLSSessionCache shm:/file=/var/run/proftpd/sesscache # </IfModule> #</IfDefine> […] |
firewall-cmd –add-port=6000-6100/tcp –permanent firewall-cmd –reload
1 2 | firewall-cmd –add-port=6000-6100/tcp –permanent firewall-cmd –reload |
میتوایند وضعیت پورت ها را به شرح پایین چک نمایید :
firewall-cmd –list-ports
1 | firewall-cmd –list-ports |
[root@server1 ~]# firewall-cmd –list-ports 6000-6100/tcp [root@server1 ~]#
1 2 3 | [root@server1 ~]# firewall-cmd –list-ports 6000-6100/tcp [root@server1 ~]# |
جدای از این برای دادن جواز مطالعه و نوشتن فایل ها به SELinux نیاز دارید .
setsebool -P allow_ftpd_full_access=1
1 | setsebool -P allow_ftpd_full_access=1 |
به منظور بهره گیری از TLC ، می بایست یک SSL certificate بسازید، در این آموزش با انجام دستور پایین در /etc/pki/tls/certsیک SSL certificate تهیه میکنیم :
openssl req -x509 -nodes -newkey rsa:1024 -keyout /etc/pki/tls/certs/proftpd.pem -out /etc/pki/tls/certs/proftpd.pem
1 | openssl req -x509 -nodes -newkey rsa:1024 -keyout /etc/pki/tls/certs/proftpd.pem -out /etc/pki/tls/certs/proftpd.pem |
[root@server1 certs]# openssl req -x509 -nodes -newkey rsa:1024 -keyout /etc/pki/tls/certs/proftpd.pem -out /etc/pki/tls/certs/proftpd.pem Generating a 1024 bit RSA private key ……………………………..++++++ ………++++++ writing new private key to ‘/etc/pki/tls/certs/proftpd.pem’ —– You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter ‘.’, the field will be left blank. —– Country Name (2 letter code) [XX]:<–DE State or Province Name (full name) []:<–Hamburg Locality Name (eg, city) [Default City]:<–Luneberg Organization Name (eg, company) [Default Company Ltd]:<–ISPConfig Organizational Unit Name (eg, section) []:<–Development Common Name (eg, your name or your server’s hostname) []:<–server1.example.com Email Address []:<–info@example.com [root@server1 certs]#
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | [root@server1 certs]# openssl req -x509 -nodes -newkey rsa:1024 -keyout /etc/pki/tls/certs/proftpd.pem -out /etc/pki/tls/certs/proftpd.pem Generating a 1024 bit RSA private key ……………………………..++++++ ………++++++ writing new private key to ‘/etc/pki/tls/certs/proftpd.pem’ —– You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter ‘.’, the field will be left blank. —– Country Name (2 letter code) [XX]:<–DE State or Province Name (full name) []:<–Hamburg Locality Name (eg, city) [Default City]:<–Luneberg Organization Name (eg, company) [Default Company Ltd]:<–ISPConfig Organizational Unit Name (eg, section) []:<–Development Common Name (eg, your name or your server’s hostname) []:<–server1.example.com Email Address []:<–info@example.com [root@server1 certs]# |
نکات ی که با رنگ قرمز معیـن شده را با مقادیر دلخواه خود پر نمایید .
به عـلت ها امنیتی این certificate تنها می بایست جواز مطالعه داشته باشد، دستور پایین را اجرا نمایید :
chmod 0440 /etc/pki/tls/certs/proftpd.pem
1 | chmod 0440 /etc/pki/tls/certs/proftpd.pem |
در نهایت سرویس ProFTPD را ری استارت نمایید :
systemctl restart proftpd.service
1 | systemctl restart proftpd.service |
با نرم افزار Filezilla نصب شده در کلاینت خواهید توانست به سرور ProFTPD متصل شوید. Filezilla را باز کرده و اطلاعات پایین را وارد نمایید :
Host = 192.168.0.100
Protocol = FTP
User = srijan
Port = can be blank if you have not customized it another port than 21
Password = ftppassword (just created above)
از آنجایی که در وهله پیش این اتصال رمزگذاری شده می باشد ، در بخـش Encryption مورد ی Require explicit FTP over TLS را گزینش نمایید .
بر روی ok کلیک نمایید
دسترسی Anonymous به ftp
شما خواهید توانست یک حساب Anonymous در ProFTPD تهیه نمایید ، تنها می بایست این مسائـل را به پـایان فایل پیکربندی ProFTPD اضافه نمایید :
nano /etc/proftpd.conf
1 | nano /etc/proftpd.conf |
[…] ###Anonymous share##### User ftp Group ftp UserAlias anonymous ftp DirFakeUser on ftp DirFakeGroup on ftp MaxClients 10 DenyAll
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | […] ###Anonymous share##### User ftp Group ftp UserAlias anonymous ftp DirFakeUser on ftp DirFakeGroup on ftp MaxClients 10
DenyAll
|
اکنون می بایست سرویس را ری استارت نمایید :
systemctl restart proftpd.service
1 | systemctl restart proftpd.service |
و بعد از طریق filezilla کانکت شوید:
بر روی Connectکلیک نمایید :
بر روی ok کلیک نمایید :
خب دوستان به انتهای مقاله آموزشی نحوه نصب و پیکربندی ProFTPD در سرور CentOS رسیدیم. از توجه شما سپاسگزاریم. با آموزش های دیگر در زمینه سرور مجازی و هاستیگ در این سایت ما را دنبال نمایید.