檔案伺服器之二:FTP伺服器(pureftp)

weixin_34026276發表於2017-11-20

FTP(File Transfer Protocol),檔案傳輸協議,主要用來進行檔案傳輸(尤其是用來傳輸大型檔案非常方便),用於Internet上的控制檔案的雙向傳輸。使用者可以通過該服務把自己的PC機與世界各地所有執行FTP協議的伺服器相連,以此來訪問伺服器上的大量程式和資訊.

FTP的主要作用,就是讓使用者連線上一個遠端計算機(該遠端計算機上執行著FTP服務),檢視該計算機上有哪些檔案,或者將需要的檔案從遠端計算機上拷貝到本地,或將本地的檔案傳輸到遠端計算機上去。但是在傳輸的過程中具有一定的危險性,因為資料在Internet上面是完全沒有保護的明文傳輸方式。在 CentOS 或者 RedHat Linux 上有自帶的 ftp 軟體叫做 vsftp,但在這裡先介紹另外一款提供 ftp 服務的軟體(pure-ftpd)。這個軟體比 vsftp 配置起來更加靈活。



下面我們就來看看pureftp的部署和優化過程,這裡我們採用原始碼包編譯安裝的方法:

1、下載原始碼包:Pure-ftpd的官網是:http://www.pureftpd.org/project/pure-ftpd

我們可以到該網站去下載我們需要的版本:

cd /usr/local/src

wget wget https://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.42.tar.bz2


2、安裝步驟:


tar xjvf pure-ftpd-1.0.42.tar.bz2

cd pure-ftpd-1.0.42

./configure \

--prefix=/usr/local/pureftpd \

--without-inetd \

--with-altlog \

--with-puredb \

--with-throttling \

--with-peruserlimits \

--with-tls

注意:我們在這裡可能會遇到錯誤,在編譯之後系統會提示:configure: error: OpenSSL headers not found.

解決方法是:yum install -y openssl openssl-devel,如果找不到這兩個包,則需要安裝yum的擴充套件源:yum install -y epel-release

make && make install


3、配置 pure-ftpd

cd configuration-file

mkdir -p /usr/local/pureftpd/etc/

cp pure-ftpd.conf /usr/local/pureftpd/etc/pure-ftpd.conf

cd pure-config.pl /usr/local/pureftpd/sbin/pure-config.pl

chmod 755 /usr/local/pureftpd/sbin/pure-config.pl

在啟動 pure-ftpd 之前需要先修改配置檔案,配置檔案為/usr/local/pureftpd/etc/pure-ftpd.conf, 你可以開啟看一下,裡面內容很多,下面是筆者提供的配置檔案內容,如果你覺得直接更改嫌麻煩,直接把自帶配置刪除,然後把下面的配置貼上即可


  ChrootEveryone yes

  BrokenClientsCompatibility no

  MaxClientsNumber 50

  Daemonize yes

  MaxClientsPerIP 8

  VerboseLog no

  DisplayDotFiles yes

  AnonymousOnly no

  NoAnonymous no

  SyslogFacility ftp

  DontResolve yes

 MaxIdleTime 15

  PureDB /usr/local/pureftpd/etc/pureftpd.pdb

  LimitRecursion 3136 8

  AnonymousCanCreateDirs no

  MaxLoad 4

  AntiWarez yes

  Umask 133:022 

  MinUID 100

  AllowUserFXP no

  AllowAnonymousFXP no

  ProhibitDotFilesWrite no

  ProhibitDotFilesRead no

  AutoRename no

  AnonymousCantUpload no

  PIDFile /usr/local/pureftpd/var/run/pure-ftpd.pid

  MaxDiskUsage 99

  CustomerProof yes


4、啟動 pure-ftpd

cd /usr/local/pureftpd/

./sbin/pure-config.pl ./etc/pure-ftpd.conf

如果是啟動成功,會顯示一行長長的以 Running 開頭的資訊,否則那就是錯誤資訊。重啟可能會比較麻煩一些,畢竟我們沒有啟動指令碼。重啟的話,可以使用下面的命令來實現。

killall puref-ftpd

cd /usr/local/pureftpd/; ./sbin/pure-config.pl ./etc/pure-ftpd.conf


5、建立賬號

Pure-ftpd 使用的賬號並非 Linux 系統賬號,而是虛擬賬號。因為,這樣做比較安全。

mkdir /data/www/

useradd ftp

chown -R ftp:ftp /data/www/

/usr/local/pureftpd/bin/pure-pw useradd ftp_user1 -uftp -d /data/www/

Password:

Enter it again:

其中, -u 將虛擬使用者 ftp_user1 與系統使用者 www 關聯在一起,也就是說使用 ftp_user1
賬號登陸 ftp 後,會以 www 的身份來讀取檔案或下載檔案。 -d 後邊的目錄為 ftp_user1 賬戶
的家目錄,這樣可以使 ftp_user1 只能訪問其家目錄/data/www/。到這裡還未完成,還有最關
鍵的一步,就是建立使用者資訊資料庫檔案:

/usr/local/pureftpd/bin/pure-pw mkdb

pure-pw 還可以列出當前的 ftp 賬號,當然也可以刪除某個賬號, 我們再建立一個賬號:

/usr/local/pureftpd/bin/pure-pw useradd ftp_user2 -uwww -d /tmp

/usr/local/pureftpd/bin/pure-pw mkdb

注意:每次建立了一個帳號之後,就要執行這條命令,生成一個資料庫檔案,不然會報錯

列出當前賬號:

/usr/local/pureftpd/bin/pure-pw list

刪除賬號的命令為:

/usr/local/pureftpd/bin/pure-pw userdel ftp_user2


6、測試

在遠端機器上下載lftp:yum install -y lftp

使用遠端機器連線ftp服務:lftp user_ftp1@192.168.1.125

本文轉自奇蹟的少年部落格51CTO部落格,原文連結http://blog.51cto.com/raffaelexr/1723325如需轉載請自行聯絡原作者


liliangchun

相關文章