1. 程式人生 > >FTP伺服器vsftpd安裝架設

FTP伺服器vsftpd安裝架設

yum install vsftpd

2.啟動/重啟/關閉vsftpd伺服器
[[email protected] ftp]# /sbin/service vsftpd restart
Shutting down vsftpd: [ OK ]
Starting vsftpd for vsftpd: [ OK ]
OK表示重啟成功了.
啟動和關閉分別把restart改為start/stop即可.
如果是原始碼安裝的,到安裝資料夾下找到start.sh和shutdown.sh檔案,執行它們就可以了.

3.與vsftpd伺服器有關的檔案和資料夾
vsftpd伺服器的配置檔案的是: /etc/vsftpd/vsftpd.conf

vsftpd伺服器的根目錄,即FTP伺服器的主目錄:
在/var/ftp處pub處
如果你想修改伺服器目錄的路徑,那麼你只要修改/var/ftp到別處就行了

4.新增FTP本地使用者
有的FTP伺服器需要使用者名稱和密碼才能登入,就是因為設定了FTP使用者和許可權.
FTP使用者一般是不能登入系統的,只能進入FTP伺服器自己的目錄中,這是為了安全.這樣的使用者就叫做虛擬使用者了.實際上並不是真正的虛擬使用者,只是不能登入SHELL了而已,沒能力登入系統.

/usr/sbin/adduser -d /opt/test_ftp -g ftp -s /sbin/nologin test
這個命令的意思是:
使用命令(adduser)新增test使用者,不能登入系統(-s /sbin/nologin),自己的資料夾在(-d /opt/test_ftp)),屬於組ftp(-g ftp)
然後你需要為它設定密碼 passwd test
這樣就添加了一個FTP使用者了.下面的示例可以幫助你進入FTP伺服器了.

[[email protected] ftp]# ftp
ftp> open 192.168.0.33
Connected to 192.168.0.33 (192.168.0.33).
220 (vsFTPd 2.0.5)
Name (192.168.0.33:gxl): test
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.

ftp> quit

在windows中,只要在瀏覽器中輸入 ftp://192.168.0.33

進入FTP伺服器,然後 右鍵 登入,輸入使用者名稱和密碼就可以登入自己的目錄了.
當然你要保證自己能讀寫自己的目錄,就要在配置檔案vsftpd.conf裡設定一下就可以讀寫了.
local_enable=yes
write_enable=yes
local_umask=022

5.匿名上傳下載
修改配置檔案即可vsftpd.conf,確定有以下幾行,沒有自己新增進去就可以了.
anonymous_enable=yes
anon_upload_enable=yes
anon_mkdir_write_enable=yes
anon_umask=022

然後你可以新建一個資料夾,修改它的許可權為完全開放,任何使用者就可以登入這個資料夾,並上傳下載檔案:
mkdir /var/ftp/guest
chmod 777 /var/ftp/guest

6.定製進入FTP伺服器的歡迎資訊
在vsftpd.conf檔案中設定:
dirmessage_enable=yes
然後進入使用者目錄建立一個.message檔案,輸入歡迎資訊即可(我這裡寫入的是Welcome to gxlinux's FTP!):
[[email protected] test_ftp]# ftp 192.168.0.33
Connected to 192.168.0.33 (192.168.0.33).
220 (vsFTPd 2.0.5)
Name (192.168.0.33:gxl): test
331 Please specify the password.
Password:
230-Welcome to gxlinux's FTP!
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.

7.實現虛擬路徑
將某個目錄掛載到FTP伺服器下供使用者使用,這就叫做虛擬路徑.
比如將gxl使用者的目錄掛載到FTP伺服器中,供FTP伺服器的使用者使用,使用如下命令即可:
[[email protected] opt]# mount --bind /home/gxl /var/ftp/pub #使用掛載命令
[[email protected] opt]# ls /var/ftp/pub
LumaQQ Screenshot.png 桌面

8.開啟vsFTPd的日誌功能
新增下面一行到vsftpd.conf檔案中,一般情況下該檔案中有這一行,只要把前面的註釋符號#去掉即可,沒有的話就新增,或者修改:
xferlog_file=/var/log/vsftpd.log

9.限制連結數,以及每個IP最大的連結數
修改配置檔案中,例如vsftp最大支援連結數100個,每個IP能支援5個連結:
max_client=100
max_per=5

10.限制傳輸速度
修改配置檔案中,例如讓匿名使用者和vsftd上的使用者(即虛擬使用者)都以80KB=1024*80=81920的速度下載
anon_max_rate=81920
local_max_rate=81920

11.將使用者(一般指虛擬使用者)限制在自家目錄
修改配置檔案中,這樣使用者就只能訪問自己家的目錄了:
chroot_local_user=yes
如果只想某些使用者僅能訪問自己的目錄,其它使用者不做這個限制,那麼就需要在chroot_list檔案(此檔案一般是在/etc/vsftpd/中)中新增此使用者.
編輯此檔案,比如將test使用者新增到此檔案中,那麼將其寫入即可.一般的話,一個使用者佔一行.
[[email protected] vsftpd]# cat chroot_list
test

12.繫結某個IP到vsFTPd
有時候要限制某些IP訪問伺服器,只允許某些IP訪問,例如只允許192.168.0.33訪問這個FTP,同樣修改配置檔案:
listen_address=192.168.0.33


配置vsftpd.conf
                   anonymous_enable=NO            #禁止匿名
                   local_enable=YES                       #允許本地登入
                   write_enable=YES                       #允許寫,如需上傳,則必須
                   local_umask=027                        #將上傳檔案的許可權設定為:777-local_umask 
                   anon_upload_enable=YES          #允許虛擬使用者和匿名使用者上傳
                   anon_other_write_enable=YES #允許虛擬使用者和匿名使用者修改檔名和刪除檔案
                   dirmessage_enable=YES          
                   xferlog_enable=YES                      #開啟日誌記錄
                   connect_from_port_20=YES
                   xferlog_file=/var/log/vsftpd.log     #日誌存放位置
                   xferlog_std_format=YES              #標準日誌格式
                   idle_session_timeout=600        #空閒連線超時
                   data_connection_timeout=120
                   ftpd_banner=Welcome to ChinaRise FTP service       #歡迎資訊
                   guest_enable=yes                       #允許虛擬使用者
                   guest_username=vsftpdguest #虛擬使用者使用的系統賬號
                   virtual_use_local_privs=YES     #虛擬使用者擁有本地系統許可權

                   chroot_local_user=NO             
                   chroot_list_enable=YES
                     #以上兩行將虛擬使用者限制在其目錄下,不能訪問其他目錄,或者直接用                           
                   chroot_local_user=YES                               

                   listen=yes                #監聽/被動模式
                   listen_port=21        #監聽埠

                   chroot_list_file=/etc/vsftpd/vsftpd.chroot_list       #虛擬使用者名稱單儲存在檔案/etc/vsftpd/vsftpd.chroot_list 中
                   user_config_dir=/etc/vsftpd/vsftpd_user_conf   #每個虛擬使用者名稱的更加詳細的培植儲存在/etc/vsftpd/vsftpd_user_conf 中

虛擬使用者其他設定

      在/etc/vsftpd/vsftpd.chroot_list 檔案中寫入允許登陸的虛擬使用者名稱稱,每行一個
      在/etc/vsftpd/vsftpd_user_conf 資料夾中建立一個以虛擬使用者使用者名稱命名的檔案,
      寫入:local_root = /var/FTP/子目錄名
      然後在/var/FTP下建立一個對應的目錄即可

可能遇到的問題以及解決方案:

在執行ftp IP 登入時出現

500 OOPS: vsftpd: cannot locate user specified in 'ftp_username':ftp

的錯誤訊息

需要在vsftpd.conf中加入了ftp_username=ftpuser(使用者)這一行,ftp_username的預設使用者應該是ftp

/etc/init.d/vsftpd restart後成功登陸

如果出現“550 create directory operation failed”

是SELinux安裝機制搞的鬼.只要disable SELinux就可以了.

# vi /etc/selinux/config
將 SELINUX=XXX -->XXX 代表級別
改為
SELINUX=disabled
或者setsebool -P ftpd_disable_trans on  + service vsftpd restart     或者 setsebool -P  ftp_home_dir  on  +  service vsftpd restart 即可

如果不能執行,提示“
Could not change active booleans: Invalid boolean

可以執行以下命令
setsebool allow_ftpd_full_access  1
setsebool allow_ftpd_use_cifs 1
setsebool allow_ftpd_use_nfs 1
 setsebool ftp_home_dir  1
setsebool httpd_enable_ftp_server 1

setsebool tftp_anon_write

以下是具體實踐步驟可供參考

1開啟防火牆ftp埠

vi /etc/sysconfig/iptables #編輯防火牆配置檔案
 -A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT(允許21埠通過防火牆)
 -A INPUT -m state --state NEW -m tcp -p tcp --dport 20 -j ACCEPT(允許20埠通過防火牆)
 -A INPUT -m state --state NEW -m tcp -p tcp --dport 9000:9045 -j ACCEPT(設定ftp被動模式的埠範圍)

注意:如果ftp埠修改為其它的埠(比如2222),這時防火牆就要開啟2222埠,這裡防火牆是以CentOS 6.0為例

 -A INPUT -m state --state NEW -m tcp -p tcp --dport2222 -j ACCEPT(允許2222埠通過防火牆)

/etc/init.d/iptables restart #重啟防火牆使配置生效

2、檢查系統是否已安裝vsftp
rpm -q vsftpd
package vsftpd is not installed #說明系統沒有安裝vsftpd
3、安裝vsftpd
yum install vsftpd
按Y回車,系統自動安裝
/etc/init.d/vsftpd start #啟動vsftpd
service vsftpd restart #重啟
service vsftpd stop #停止
chkconfig vsftpd on #設定開機時自動執行
4、配置vsftp伺服器
配置檔案說明:
/etc/vsftpd/vsftpd.conf vsftpd的核心配置檔案
/etc/vsftpd/ftpusers 用於指定哪些使用者不能訪問FTP伺服器
/etc/vsftpd/user_list 指定允許使用vsftpd的使用者列表檔案
/etc/vsftpd/vsftpd_conf_migrate.sh 是vsftpd操作的一些變數和設定指令碼
/var/ftp/ 預設情況下匿名使用者的根目錄
========================================================================
配置/etc/vsftpd/vsftpd.conf
配置前先備份
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.confbak
恢復檔案
cp /etc/vsftpd/vsftpd.confbak /etc/vsftpd/vsftpd.conf

vi /etc/vsftpd/vsftpd.conf #配置

use_localtime=YES #ftp時間和系統同步,如果啟動有錯誤,請登出
reverse_lookup_enable=NO #新增此行,解決客戶端登陸緩慢問題!重要!預設vsftpd開啟了DNS反響解析!這裡需要關閉,如果啟動有錯誤,請登出!

listen_port=21 #預設無此行,ftp埠為21,新增listen_port=2222把預設埠修改為2222,注意:防火牆同時要開啟2222埠
anonymous_enable=NO   #禁止匿名使用者
local_enable=YES
設定本地使用者可以訪問。注意:主要是為虛擬宿主使用者,如果該專案設定為NO那麼所有虛擬使用者將無法訪問
write_enable=YES #全域性設定,是否容許寫入(無論是匿名使用者還是本地使用者,若要啟用上傳許可權的話,就要開啟他)
local_umask=022 設定上傳後文件的許可權掩碼。
anon_upload_enable=NO 禁止匿名使用者上傳。
anon_mkdir_write_enable=NO 禁止匿名使用者建立目錄。
dirmessage_enable=YES 設定開啟目錄標語功能。
xferlog_enable=YES 設定開啟日誌記錄功能。
connect_from_port_20=YES 設定埠20進行資料連線。
chown_uploads=NO 設定禁止上傳檔案更改宿主。
xferlog_file=/var/log/vsftpd.log 日誌儲存路徑(先建立好檔案)
xferlog_std_format=YES   #使用標準格式
async_abor_enable=YES 設定支援非同步傳輸功能。
ascii_upload_enable=YES
ascii_download_enable=YES 設定支援ASCII模式的上傳和下載功能。
ftpd_banner=Welcome to Awei FTP servers 設定Vsftpd的登陸標語。
chroot_local_user=YES 禁止本地使用者登出自己的FTP主目錄。
pam_service_name=vsftpd 設定PAM服務下Vsftpd的驗證配置檔名。因此,PAM驗證將參考/etc/pam.d/下的vsftpd檔案配置。
userlist_enable=YES 設為YES的時候,如果一個使用者名稱是在userlist_file引數指定的檔案中,
 那麼在要求他們輸入密碼之前,會直接拒絕他們登陸。
tcp_wrappers=YES 是否支援tcp_wrappers
idle_session_timeout=300 #超時設定
data_connection_timeout=1 #空閒1秒後伺服器斷開
#########################################################
以下這些是關於Vsftpd虛擬使用者支援的重要配置專案。
預設Vsftpd.conf中不包含這些設定專案,需要自己手動新增配置
#########################################################
guest_enable=YES 設定啟用虛擬使用者功能。
guest_username=vsftpd 指定虛擬使用者的宿主使用者(這個是我們後面要新建的使用者)
user_config_dir=/etc/vsftpd/vconf 設定虛擬使用者個人Vsftp的配置檔案存放路徑。
 也就是說,這個被指定的目錄裡,將存放每個Vsftp虛擬使用者個性的配置檔案,一個需要注意的
 地方就是這些配置檔名必須和虛擬使用者名稱相同。
 比如說vsftpd.conf的配置檔案,你複製到這個目錄下,你要mv一下,配置成虛擬使用者的名稱

virtual_use_local_privs=YES #當該引數啟用(YES)時,虛擬使用者使用與本地使用者相同的許可權。
 #當此引數關閉(NO)時,虛擬使用者使用與匿名使用者相同的許可權。預設情況下此引數是關閉的(NO)。
pasv_min_port=9000 (設定被動模式的埠範圍)
pasv_max_port=9045 (設定被動模式的埠範圍)
accept_timeout=5 #保持5秒
connect_timeout=1 #1秒後重新連線


5、先建立虛擬使用者名稱單檔案:

touch /etc/vsftpd/virtusers
編輯虛擬使用者名稱單檔案:(第一行賬號,第二行密碼,注意:不能使用root做使用者名稱,系統保留)
vi /etc/vsftpd/virtusers
web1
123456
web2
123456
web3
123456
=======================================================================
6、生成虛擬使用者資料檔案:
db_load -T -t hash -f /etc/vsftpd/virtusers /etc/vsftpd/virtusers.db
chmod 600 /etc/vsftpd/virtusers.db #設定PAM驗證檔案,並指定對虛擬使用者資料庫檔案進行讀取=======================================================================
7、在/etc/pam.d/vsftpd的檔案頭部加入以下資訊(在後面加入無效)
修改前先備份 cp /etc/pam.d/vsftpd /etc/pam.d/vsftpdbak
恢復cp /etc/pam.d/vsftpdbak /etc/pam.d/vsftpd
vi /etc/pam.d/vsftpd


auth sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/virtusers
account sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/virtusers
注意:如果系統為64為,則上面的lib改為lib64,否則配置失敗
8、新建一個系統使用者vsftpd,使用者家目錄為/home/wwwroot, 使用者登入終端設為/bin/false(即使之不能登入系統)


useradd vsftpd -d /home/wwwroot -s /bin/false
chown vsftpd:vsftpd /home/wwwroot -R
chown apache:apache /home/wwwroot -R #如果虛擬使用者的宿主使用者為apache,需要這樣設定。
9、建立虛擬使用者個人Vsftp的配置檔案
系統運維 溫馨提醒:qihang01原創內容版權所有,轉載請註明出處及原文連結

mkdir /etc/vsftpd/vconf
cd /etc/vsftpd/vconf
touch web1 web2 web3 #這裡建立三個虛擬使用者配置檔案


vi web1 #編輯使用者web1配置檔案,其他的跟這個配置檔案類似


local_root=/home/wwwroot/web1/
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
10、最後重啟vsftpd伺服器
/etc/init.d/vsftpd restart

備註:guest_username=vsftpd #指定虛擬使用者的宿主使用者(就是我們前面新建的使用者)
如ftp的目錄是指向網站根目錄的,用來上傳網站程式的話
guest_username=apache #指定虛擬使用者的宿主使用者為apache執行賬戶,可以避免很多許可權設定問題


如果生成虛擬使用者資料檔案的時候出現以下錯誤
users.db-bash: db_load: command not found
因為在執行db命令時候軟體包沒有安裝
db4
db4-devel
db4-java
db4-tcl
db4-utils

可以執行yum install db4* 命令安裝

至此,vsftpd安裝配置完成。

相關推薦

FTP伺服器vsftpd安裝架設

yum install vsftpd2.啟動/重啟/關閉vsftpd伺服器[[email protected] ftp]# /sbin/service vsftpd restartShutting down vsftpd: [ OK ]Starting vsftpd

Ubuntu FTP伺服器--vsftpd安裝和配置

方法/步驟 更新源列表 開啟"終端視窗",輸入"sudo apt-get update"-->回車-->"輸入當前登入使用者的管理員密碼"-->回車,就可以了。如果不執行該命令,直接安裝vsftpd,會出現"有 幾個軟體包無法下載,您可以執行apt-get up

在CentOS 6.3 64bit上安裝FTP伺服器vsftpd 2.2.2

vsftpd是一款在Linux發行版中最受推崇的FTP伺服器程式。特點是小巧輕快,安全易用。並且是一個完全免費開放原始碼的ftp軟體 根據業務需要,要求支援ftp和sftp,我需要在Linux上架設一個ftp伺服器,來存放CDN線上節點的使用者訪問日誌。我選擇在CentOS

Debian8下安裝ftp伺服器 Vsftpd伺服器配置 ftp圖片伺服器

先上圖 下面開始工作 現在網上的文件差不多大體都能做出來,但是主要是細節沒說,我就不知道他們怎麼成功的,還有幾乎所有文件都是一樣的,天下文章一大抄。版本過老,都是坑。 我的伺服器:Debian GNU/Linux 8 配置篇 說明:debian預設安裝是沒有開啟任何

LNMP下FTP伺服器安裝和使用(Pureftpd和Proftpd)

FTP是網站檔案維護中使用比較多的,目前LNMP一鍵安裝包中有Pureftpd和Proftpd伺服器安裝指令碼,LNMP預設不安裝任何FTP伺服器,需要使用者自行安裝(1.2開始不再提供proftpd的安裝指令碼)。 一、Pureftpd LNMP一鍵安裝包裡1.3及更高版本不需要MySQL支援,無影象介

Linux:FTP伺服器 vsftpd 的搭建和配置

本文連結: https://blog.csdn.net/xietansheng/article/details/84145618 vsftpd(Very Secure FTP Daemon)是一個在 Linux/Unix 系統上執行的一款開源免費的 FTP 伺服器軟體。vsftpd

網路作業系統 第十二章 FTP伺服器安裝與配置

習題 1.簡述FTP的連線模式。 FTP的連線模式有PORT和PASV兩種,其中PORT模式是主動模式,PASV是被動模式, 這裡所說的主動和被動都是相對於伺服器而言的。如果是主動模式,資料埠為20,如 果是被動模式,則由伺服器端和客戶端協商而定。 2.簡述FTP的傳輸模式。 FTP可用多種格式傳

ubuntu的ftp伺服器安裝以及在windows下的訪問

listen=YES       # 伺服器監聽 anonymous_enable=YES       # 匿名訪問允許 local_enable=YES    # 本地主機訪問允許 write_enable=YES    # 寫允許 anon_upload_enable=YES # 匿名上傳允許,預設是N

centos7下ftp伺服器安裝和配置

1. 刪除firewalld防火牆         systemctl stop firewalld.service         yum remove firewalld.service 2.安裝iptables防火強          yum install ipta

解決 伺服器vsftpd安裝完成後,用winscp不能上傳和下載檔案的問題

需要修改vsftpd配置檔案,配置檔案預設是不允許上傳下載和修改的 sudo vi /etc/vsftpd.conf 檢視配置檔案裡面的註釋,將你需要的功能的註釋去掉(上傳下載功能都被注視掉了) 然後儲存,重啟vsftpd就可以了。 ps:如果重啟之後發現連線ftp伺

ftp伺服器搭建(離線安裝vsftpd),配置

1.下載vsftp:http://rpmfind.net/linux/rpm2html/search.php?query=vsftpd(x86-64) 2.檢查是否已經安裝了vsftp rpm -qa | grep vsftpd 如果沒有提示則說明沒有安裝 如果提示版本號則說明已經安裝

POI匯出時寫一份到ftp伺服器,一份下載給客戶端 ftp伺服器搭建(離線安裝vsftpd),配置 poi實現百萬級資料匯出 oi實現百萬級資料匯出

導語:   昨天接到專案經理這麼一個需求,讓我在POI匯出Excel的時候寫一份到我之前搭建的ftp伺服器上。所以就有了這篇部落格首先我們來分析下之前的業務邏輯:我們建立並構造了一個workbook,然後構建了一個OutputStream輸出流,然後我們把資料寫入輸出流中就可以被客戶端下載。   現在我們

centos安裝vsftpd,部署ftp伺服器

Vsftp 安裝配置 1.檢視是否安裝vsftp rpm –qa|grep vsftpd 如果出現 vsftpd-2.0.5-16.el5_5.1 說明已經安裝 vsftp 安裝vsftp yum -y install vsftpd 2.測試 是否安裝成功 (ip 改成

【Linux】教你一步一步在CentOS Linux release 7.1上安裝vsftpd FTP伺服器

1.執行yum安裝vsftpd sudo yum install vsftpd 2.安裝完成後,修改vsftpd ftp登入使用者配置檔案 如果你希望可以使用root使用者登入ftp的話,需要做以下修改 /etc/vsftpd/ftpusers   該檔案中定義的使

Centos 6.3安裝配置vsFTPd環境的FTP伺服器

2012.10.11更新,增加 vsftpd 配置檔案說明。2013.07.03更新,對文中一些字元被程式碼外掛轉義的錯誤。 我的電腦系統是win7 64bit,用virtualbox安裝了一個最小化版的centos 6.3 64位的系統。最近特意想搭建一個FTP的伺服

【Linux】教你一步一步在CentOS Linux release 7.1上解除安裝vsftpd FTP伺服器

1.首先檢視系統中是否安裝了vsftpd rpm -qa | grep vsftpd  例如:如果顯示結果如下的話,說明是安裝了vsfptd3.0的ftp伺服器的 [[email protected] sbin]# rpm -qa | grep vsftpd v

vsftpd檔案伺服器安裝與配置(centos6.x和7.x)

vsftpd是一款免費的、開源的ftp伺服器軟體。     安裝環境(centos 6.8 64位)   安裝版本 vsftpd-2.2.2-24.el6.x86_64   安裝步驟:     一:執行 yum -y install vsftpd(1、可以先執

Linux安裝部署FTP伺服器

  本文章會將安裝FTP伺服器的步驟以及一些遇到的問題來記錄下   因為專案中要與第三方對接資料,需要用到FTP伺服器以提供他們每天上傳資料,因為之前在本地的VMware虛擬機器上部署過一次,這次則在天翼雲上部署。   首先,我們執行安裝命令:yum install -y vsftpd    &nbs

【解決 FTP】windows訪問Ubuntu的vsftpd(FTP伺服器)問題200 Switching to ASCII mode,227 Entering Passive Mode (0,0,0

問題:如下, ---------------------------FTP 資料夾錯誤---------------------------開啟 FTP 伺服器上的資料夾時發生錯誤。請檢查是否有許可權訪問該資料夾。 詳細資訊:200 Switching to ASCII mode.227 Entering

centos7上ftp伺服器安裝

檢測是否已經安裝vsftpd。 rpm -qa | grep vsftpd 安裝 yum -y install vsftpd 啟動服務,檢測是否安裝成功 service vsftpd status 匿名訪問測試 vsftpd預設是開啟匿名訪問的,可以通過匿名的方式進行測試 可