نحوه نصب و پیکربندی ProFTPD در سرور CentOS

در این مطلبن میخواهیم به بررسی نحوه نصب و پیکربندی ProFTPD در سرور CentOS  را به صورت گام به گام و تصویری برای شما کاربران عزیز بپردازیم. در ابتدا توضیح بسیار مختصری درمورد ProFTPD ارائه خواهیم داد و سپس به توضیح نحوه نصب و پیکربندی ProFTPD در سرور CentOS می پردازیم . با ما همراه باشید.

نصب و پیکربندی ProFTPD در سرور CentOS

نصب و پیکربندی 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

1rpm -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

1yum 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

1proftpd –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

1groupadd 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/

1chmod -R 1777 /ftpshare/

اکنون خواهید توانست آدرس ftp://192.168.0.100 را در مرورگر تایپ نمایید و با نام کاربری srijan و پسورد مشـخص شده وارد شوید :

نصب و پیکربندی ProFTPD در سرور CentOS

نصب و پیکربندی ProFTPD در سرور CentOS

 

نصب و پیکربندی ProFTPD در سرور CentOS

نصب و پیکربندی ProFTPD در سرور CentOS

 

فعال کردن 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

1firewall-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

1setsebool -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

1openssl 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

1chmod  0440 /etc/pki/tls/certs/proftpd.pem

در نهایت سرویس ProFTPD را ری استارت نمایید :

systemctl restart proftpd.service

1systemctl restart proftpd.service

با نرم افزار Filezilla نصب شده در کلاینت خواهید توانست به سرور ProFTPD متصل شوید.  Filezilla  را باز کرده و اطلاعات پایین را وارد نمایید :

نصب و پیکربندی ProFTPD در سرور CentOS

نصب و پیکربندی ProFTPD در سرور CentOS

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 را گزینش نمایید .

نصب و پیکربندی ProFTPD در سرور CentOS

نصب و پیکربندی ProFTPD در سرور CentOS

 

بر روی ok کلیک نمایید

نصب و پیکربندی ProFTPD در سرور CentOS

نصب و پیکربندی ProFTPD در سرور CentOS

 

دسترسی Anonymous به  ftp

شما خواهید توانست یک حساب Anonymous  در ProFTPD تهیه نمایید ، تنها می بایست این مسائـل را به پـایان فایل پیکربندی ProFTPD اضافه نمایید :

nano /etc/proftpd.conf

1nano /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

1systemctl restart proftpd.service

و بعد از طریق filezilla کانکت شوید:

بر روی Connectکلیک نمایید :

نصب و پیکربندی ProFTPD در سرور CentOS

نصب و پیکربندی ProFTPD در سرور CentOS

بر روی ok کلیک نمایید :

نصب و پیکربندی ProFTPD در سرور CentOS

نصب و پیکربندی ProFTPD در سرور CentOS

خب دوستان به انتهای مقاله آموزشی نحوه نصب و پیکربندی ProFTPD در سرور CentOS رسیدیم. از توجه شما سپاسگزاریم. با آموزش های دیگر در زمینه سرور مجازی و هاستیگ در این سایت ما را دنبال نمایید.