Centos 6.3安裝配置vsFTPd環境的FTP伺服器
2012.10.11更新,增加 vsftpd 配置檔案說明。
2013.07.03更新,對文中一些字元被程式碼外掛轉義的錯誤。
我的電腦系統是win7 64bit,用virtualbox安裝了一個最小化版的centos 6.3 64位的系統。最近特意想搭建一個FTP的伺服器,所以,就有了如下的過程。備忘,方便你我他。
注:文章最後會附上 vsftpd 伺服器配置檔案的選項說明。
關於vsftpd介紹如下:
vsftpd 是“very secure FTP daemon”的縮寫,安全性是它的一個最大的特點。vsftpd 是一個 UNIX 類作業系統上執行的伺服器的名字,它可以執行在諸如 Linux、BSD、Solaris、 HP-UNIX等系統上面,是一個完全免費的、開發原始碼的ftp伺服器軟體,支援很多其他的 FTP 伺服器所不支援的特徵。比如:非常高的安全性需求、頻寬限制、良好的可伸縮性、可建立虛擬使用者、支援IPv6、速率高等。vsftpd是一款在Linux發行版中最受推崇的FTP伺服器程式。特點是小巧輕快,安全易用。
OK !現在進入安裝配置。
1、安裝vsftp
因為,我採用的yum命令安裝,不是原始碼包安裝。所以,安裝和配置都非常的方便。
在這裡,我要架設的是虛擬使用者。所謂虛擬使用者就是沒有使用真實的賬戶,只是通過某種技術手段達到對映賬戶和設定許可權的目的。
執行如下程式碼進行安裝vsftpd:
yum -y install vsftpd
如果,你不確定自己的系統是否已經安裝vsftpd,請用以下命令檢測:
rpm -qa | grep vsftpd
如果輸出類似以下內容:
vsftpd-2.2.2-11.el6.x86_64
說明你當前的系統已經安裝了。這是基於yum命令進行安裝的檢測方法,使用原始碼包編譯安裝的檢測方法不知道是不是這樣,如果你知道,請留言告訴我。謝謝。
如果,什麼都沒有輸出,說明你的系統沒有安裝。
因為,接下來配置 vsftpd 的需要,所以,要事先建立一個檔案,命令如下:
touch /var/log/vsftpd.log
2、啟動/重啟/停止 vsftpd 伺服器
剛才我們安裝了vsftpd 伺服器,但是,這個時候,還沒有啟動 vsftpd 服務。以下命令啟動:
service vsftpd start
會出現一行啟動成功的提示資訊:
Starting vsftpd for vsftpd:[ OK ]
如果,你與我一樣是安裝的中文語言的Centos,那麼提示資訊將是中文的。如果,提示資訊裡面沒有OK出現,也沒有“確定”這樣的字眼出現,說明啟動失敗了。反正,按照我的方式,不會出現失敗。
vsftpd 的 重啟命令:
service vsftpd restart
vsftpd 的 停止命令:
service vsftpd stop
如果,你希望下次系統啟動的時候,自動啟動 vsftpd 伺服器,執行以下命令:
chkconfig vsftpd on
3、與 vsftpd 伺服器有關的檔案和資料夾
vsftpd伺服器的配置檔案的是: /etc/vsftpd/vsftpd.conf
vsftpd伺服器的根目錄,即FTP伺服器的主目錄:/var/ftp/pub
4、新增FTP本地使用者(即虛擬使用者,簡單方案)
FTP大家可能都用過,通過給定的HOST、賬號、密碼就可以訪問伺服器對應的目錄空間了。但是,這個FTP賬號只能訪問FTP服務,不能登入伺服器系統,只能訪問自己的目錄。這樣的使用者就叫虛擬使用者,本質上這不叫虛擬使用者,僅僅只是不能通過終端等一系列途徑登入伺服器系統而已。
建立一個FTP使用者的命令如下:
adduser -d /opt/ftp_dir/ftp001 -g ftp -s /sbin/nologin ftp001
此命令的含義:
使用shell命令adduser新增一個ftp001的系統賬戶,但是,不能登入系統(-s /sbin/nologin),該賬戶的主目錄在(-d /opt/ftp_dir/ftp001),屬於ftp這個使用者組(-g ftp)。
我們建立了一個FTP賬戶,現在來設定賬戶的密碼,命令如下:
passwd ftp001
接著會要求你輸入兩次密碼確認。為了避免出現不要求的錯誤,請儘量保證自己的密碼長度大於6個字元,且是字母與數字的混合的字串。如我的密碼是:ftp123456。
5、vsftpd 配置檔案的調整
anonymous_enable=NO 設定不允許匿名訪問
local_enable=YES
設定本地使用者可以訪問。注:如使用虛擬宿主使用者,在該專案設定為NO的情況下所有虛擬使用者將無法訪問。
chroot_list_enable=YES 使使用者不能離開主目錄
xferlog_file=/var/log/vsftpd.log
設定vsftpd的服務日誌儲存路徑。注意,該檔案預設不存在。必須要手動touch出來。我們已經一開始就已經建立了。
ascii_upload_enable=YES
ascii_download_enable=YES 設定支援ASCII模式的上傳和下載功能。
pam_service_name=vsftpd PAM認證檔名。PAM將根據/etc/pam.d/vsftpd進行認證
chroot_list_file 將這個配置前面的#號去掉。
以下這些是關於Vsftpd虛擬使用者支援的重要CentOS FTP服務配置專案。
預設vsftpd.conf中不包含這些設定專案,需要自己手動新增CentOS FTP服務配置。
guest_enable=YES 設定啟用虛擬使用者功能。
guest_username=ftp 指定虛擬使用者的宿主使用者。-CentOS中已經有內建的ftp使用者了
user_config_dir=/etc/vsftpd/vuser_conf
設定虛擬使用者個人vsftp的CentOS FTP服務檔案存放路徑。存放虛擬使用者個性的CentOS FTP服務檔案(配置檔名=虛擬使用者名稱)
這個目錄可以這樣理解,針對每一個FTP賬號,我們可以在此目錄下建立一個與賬號同名的檔案(必須同名,這是規定)。然後,在裡面配置一些特殊的資訊。比如:這個賬號是否能上傳檔案,是否能下載檔案,所能訪問的目錄空間是什麼等。
6、建立chroot list,將FTP使用者加入其中:
我們有了FTP賬號,但是,這個時候 vsftpd 伺服器並不知道。所以,我們要告訴它。
執行如下命令:
touch /etc/vsftpd/chroot_list echo ftp001 >>/etc/vsftpd/chroot_list
如果,你有多個FTP賬戶,那麼請將這些賬戶以每行一個的方式配置在此檔案中即可。
7、賬戶認證:
首先,我們要安裝Berkeley DB工具,很多人找在接下來執行db_load命令的時候,會發生找到不此命令的錯誤就是因為沒有安裝這個包。
首先檢視系統中是否已經安裝,命令如下:
rpm -qa|grep db4
安裝即會輸出類似以下的資訊:
db4-4.7.25-17.el6.x86_64 db4-utils-4.7.25-17.el6.x86_64
反之,則沒有安裝。執行以下命令進行安裝:
yum -y install db4 db4-utils
安裝完畢。然後我們建立使用者密碼文字,命令如下:
vi /etc/vsftpd/vuser_passwd.txt
將我們的FTP賬號密碼配置進去。注意奇行是使用者名稱,偶行是密碼。如:
ftp001
ftp123456
接著,生成虛擬使用者認證的db檔案,執行如下命令:
db_load -T -t hash -f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.db
隨後,編輯 vsftpd 認證檔案:/etc/pam.d/vsftpd.
將此檔案中所有程式碼註釋掉,註釋請用#號。然後,在檔案最後增加如下兩句:
auth required pam_userdb.so db=/etc/vsftpd/vuser_passwd account required pam_userdb.so db=/etc/vsftpd/vuser_passwd
以上兩句是32位系統的新增內容,64位的系統是如下:
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd
8、最後配置每個FTP使用者的配置檔案
因為,我們要將所有與使用者FTP配置檔案放到如下目錄下,所以,我們要建立它:
mkdir /etc/vsftpd/vuser_conf/
然後,在此目錄中為每個FTP使用者建立一個配置檔案,以我們建立和ftp001賬戶為例:
vi /etc/vsftpd/vuser_conf/ftp001
在檔案中配置如下內容:
local_root=/opt/ftp_dir/ftp001 write_enable=YES anon_world_readable_only=NO anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES local_umask=022
local_root是告訴FTP賬戶只能訪問此目錄。
以上配置完成之後,記得關閉系統防火牆。
————————-以下是常見錯誤與解決方案—————–
安裝完以後,可能發現連線ftp伺服器,一般是由於SELinux的問題,原因如下:
CentOS系統是Rad Hat派系的,把vsftpd安裝配置OK之後,但客戶端訪問提示如下錯誤:
500 OOPS: cannot change directory:/opt/ftp_dir/ftp001
原因是CentOS系統安裝了SELinux,因為預設下是沒有開啟FTP的支援,所以訪問時都被阻止了。
檢視SELinux設定,命令如下:
getsebool -a|grep ftp
Centos6系列以前的版本在輸出的結果中會有如下資訊:
ftpd_disable_trans --> off ftp_home_dir-->off
Centos 6系列是沒有ftpd_disable_trans的。
通過檢視得到,ftp是關掉了。
使用setsebool命令開啟,Centos 6不需要執行第一句shell命令:
setsebool ftpd_disable_trans 1 setsebool ftp_home_dir 1
由於作業系統一旦重啟後,這種設定需要重新設定,這裡使用-P引數實現.
setsebool使用-P引數,無需每次開機都輸入這個命令,Centos 6版本不需要執行第一句shell命令:
setsebool -P ftpd_disable_trans 1 setsebool -P ftp_home_dir 1
檢視當前狀態是否是on的狀態,命令如下:
getsebool -a|grep ftp
結果如下:
ftpd_disable_trans –> on
ftp_home_dir–>on
這時候重啟 vsftpd 伺服器,命令如下:
service vsftpd restart
1.553 Could not create file
一般都是SELinux的問題,設定SELinux的一個值,重啟伺服器即可。
setsebool -P ftpd_disable_trans 1
service vsftpd restart
還有可能是所設定的目錄,FTP賬戶沒有許可權訪問。我在親測的過程中就遇到過這樣的問題。
2.500 OOPS: bad bool value in config file for: write_enable
注意你的CentOS FTP服務檔案中保證每一行最後沒有任何空格,一般出錯就是在多餘的空格上。
開啟/etc/selinux/config
將selinux=enforcing 改成permissive 或disabled。
•enforcing強制模式,只要SELinux不允許,就無法執行;
•permissive警告模式,將該事件記錄,依然允許執行;
•disabled關閉SELinux;
•停用、啟用需要重啟計算機;
•使用setenforce切換enforcing與permissive模式不需要重啟計算機;
•getenforce及sestatus檢視執行模式;
——————————————– vsFTPd 配置選項說明 ——————————————-
在預設的配置檔案中,並不會列出所有的配置項。所以,接下來可能會碰到一些在預設配置檔案中沒出現的配置選項,你可以根據需要自行配置使用。
anonymous_enable=NO
#設定本地使用者是否可以訪問。注意:主要是為虛擬宿主使用者,如果該專案設定為NO那麼所有虛擬使用者將無法訪問。
local_enable=YES
#設定可以進行寫操作。
write_enable=YES
#設定上傳後文件的許可權掩碼,預設值是077。
local_umask=022
#匿名使用者是否可以上傳:YES可以 NO不可以。
anon_upload_enable=NO
#匿名使用者是否可以建目錄:YES可以 NO不可以。
anon_mkdir_write_enable=NO
#匿名使用者其它的寫權利(更改許可權?)
anon_other_write_enable=NO
#匿名登入者是否允許下載可閱讀的檔案:YES允許、NO拒絕。
anon_world_readable_only=YES
#所有非匿名登陸的使用者名稱是否被切換成guest_username指定的使用者名稱。
guest_enable=NO
#所有匿名上傳的檔案的所屬使用者將會被更改成chown_username
chown_uploads=YES
#匿名上傳檔案所屬使用者名稱
chown_username=lightwiter
#如果啟動這項功能,則所有列在chroot_list_file之中的使用者不能更改根目錄,一般情況下,我們都不會允許使用者更改根目錄。
chroot_list_enable=YES
#允許使用"async ABOR"命令,一般不用,容易出問題,最好設定為NO。
async_abor_enable=YES
#是否可用ASCII 模式上傳。預設值為NO,即不允許。
ascii_upload_enable=YES
#是否可用ASCII 模式下載。預設值為NO,即不允許。
ascii_download_enable=YES
#定義匿名登入的使用者名稱。預設值為ftp。
ftp_username=ftp
#本地使用者主目錄,當前使用者必須具有此目錄的操作許可權,否則會連線FTP會提示沒有許可權操作。
local_root=(none)
#空閒連線超時,單位(秒)。
idle_session_timeout=600
#資料傳輸超時,單位(秒)。即傳輸超過2分鐘即超時斷開。如果是上傳大檔案,請將此值設定得更大一些即可。如:3600秒。
data_connection_timeout=120
#PAVS請求超時。
accept_timeout=60
#PROT模式連線超時。
connect_timeout=60
#開啟日記功能。
xferlog_enable=YES
#使用標準格式。
xferlog_std_format=YES
#當xferlog_std_format關閉且本選項開啟時,記錄所有ftp請求和回覆,當除錯比較有用。
log_ftp_protocol=NO
#允許使用pasv模式。
pasv_enable=YES
#關閉安全檢查。
pasv_promiscuous=NO
#允許使用port模式。
port_enable=YES
#開啟tcp_wrappers支援。
tcp_wrappers=YES
#定義PAM 所使用的名稱,預設為vsftpd。
pam_service_name=vsftpd
#當伺服器運行於最底層時使用的使用者名稱。
nopriv_user=nobody
#是否能使用ls -R命令以防止浪費大量的伺服器資源。
ls_recurse_enable=YES
#是否使用單程序模式。
one_process_model=NO
#繫結到listen_port指定的埠,既然都綁定了也就是每時都開著的,就是那個什麼standalone模式。
listen=YES
#當使用者登入後使用ls -al 之類的指令查詢該檔案的管理權時,預設會出現擁有者的UID,而不是該檔案擁有者的名稱。若是希望出現擁有者的名稱,則將此功能開啟。
text_userdb_names=NO
#顯示目錄清單時是用本地時間還是GMT時間,可以通過mdtm命令來達到一樣的效果
use_localtime=NO
#測試平臺優化
#use_sendfile=YES
相關推薦
Centos 6.3安裝配置vsFTPd環境的FTP伺服器
2012.10.11更新,增加 vsftpd 配置檔案說明。2013.07.03更新,對文中一些字元被程式碼外掛轉義的錯誤。 我的電腦系統是win7 64bit,用virtualbox安裝了一個最小化版的centos 6.3 64位的系統。最近特意想搭建一個FTP的伺服
CentOS 6.3安裝配置LAMP伺服器 (Apache+PHP5+MySQL)
準備篇: 1、配置防火牆,開啟80埠、3306埠 vi /etc/sysconfig/iptables -A INPUT -mstate --state NEW -m tcp -p tcp --dport 80 -j ACCEPT #允許80埠通過防火牆 -A INPUT -m state --st
CentOS 6.8 安裝配置 vsftpd 檔案伺服器
vsftpd 版本 vsftpd 2.2.2 , 來自阿里雲 執行命令安裝 sudo yum -y install vsftpd 然後在根目錄建立一個資料夾 ftpfile sudo mkdir ftpfile 然後給ftp服務建立一
linux系統安裝有關1: CentOS-6.3安裝配置Nginx
安裝說明 系統環境:CentOS-6.3 軟體:nginx-1.2.6.tar.gz 安裝方式:原始碼編譯安裝 安裝位置:/usr/local/nginx 下載地址:http://nginx.org/en/download.html 安裝前提 在安裝nginx前,需要
CentOS-6.3安裝配置Weblogic-10
安裝說明 安裝環境:CentOS-6.3-x64 軟體:server1001_ccjk_linux32.bin 安裝方式:bin檔案安裝 安裝位置:/usr/local/weblogic/ 下載地址:http://www.oracle.com/technetwork/mid
centos 6.x 安裝配置 node.js 環境
npm fig 環境變量 網站 gpo 代理 ack config htm 下載 可以在本地下載node.js最新版,然後通過ftp工具上傳到服務器,或者直接在服務器終端使用wget命令下載(我當時下載的是node-v6.11.3-linux-x64版本,其他版本請查看上面
CentOS 6.4安裝配置MairaDB 10.3 Galera Cluster
MariaDB10.3 Galera Cluster 一. 安裝環境不同版本的操作系統(CentOS 6 與 7)、不同版本的數據庫(MariaDB 10.1前後)相關安裝配置命令不太一樣。1. 操作系統:CentOS 6.42. 數據庫 : MariaDB 10.3.7二. 服務器規劃Mar
CentOS 6下安裝配置JDK+Tomcat環境
1.安裝OpenJDK 注意,安裝OpenJDK簡單迅速,只需一條命令,且無需配置環境變數 ①檢視是否已經安裝了JDK java -version rpm -qa |grep java rpm -qa |grep jdk ②若有如何解除安裝 解除安裝JDK相關檔案輸入:
CentOS 7.3安裝配置Powerline
bash vim powerline 一、Powerline簡介及演示環境:Powerline是一個極棒的Vim編輯器的狀態欄插件,主要用於顯示狀態行和提示信息。特點:使用Python編寫,使其更具擴展性且功能豐富穩定易測的代碼庫,兼容Python 2.6+和Python 3支持多種Linux功能
CentOS 6.4安裝配置LNMP服務器(Nginx+PHP+MySQL)
mysql- ket 是否 分號 使用 store 重啟 isa tpi 一 安裝篇 1. 安裝nginx yum check-update #更新yum源 yum remove httpd* php* #刪除系統自帶的軟件包 yum install nginx #安裝ng
CentOS 6 yum安裝配置lnmp服務器
設置密碼 客戶端 inux listening logs and cat 服務 load 一、準備: 1.配置防火墻,開啟80端口、3306端口編輯 /etc/sysconfig/iptables,添加如下條目: -A INPUT -m state --state
Centos 6.5安裝配置KVM
centos 6.5安裝kvm kvm部署 1 egrep --color=auto 'vmx|svm' /proc/cpuinfo2 yum install kvm qemu-kvm python-virtinst libvirt libvirt-python virt-mana
CentOS 6.9安裝配置nmon
nmon nmon是一款開源的性能監控工具,用於監控CentOS系統的資源消耗信息,並能把結果輸出到文件中,然後通過nmon_analyser性能報告分析器生成數據分析報表。一、安裝nmon:1、 配置epel源2、 安裝nmon:# yum -y install nmon --> 16g-3 二
centos-6.5安裝部署LNMP環境
worker download $path format java medium dump ddr 下載源 系統信息: 1 2 3 4 [root@zww ~]# cat /etc/redhat-release CentOS release 6.
CentOS 6.9安裝配置Jenkins
CentOS 6.9安裝配置Jenkins 安裝Jenkins 新增源 sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo sudo rpm
CentOS 6.10安裝配置WebLogic 11g雙機叢集
一、演示環境: IP OS JDK WebLogic 記憶體 伺服器角色 埠 192.168.1.220 CentOS 6.10 x86_64 jdk-7u80-linux-x6
CentOS 6.3下配置LVM(邏輯卷管理)(6.9測試也可用)
一、簡介 LVM是邏輯盤卷管理(Logical Volume Manager)的簡稱,它是Linux環境下對磁碟分割槽進行管理的一種機制,LVM是建立在硬碟和分割槽之上的一個邏輯層,來提高磁碟分割槽管理的靈活性。 LVM的工作原理其實很簡單,它就是通過將底層的物理硬碟抽象
CentOS 6.8安裝配置samba伺服器
1、關閉防火牆 # service iptables status //檢視防火牆的狀態 # service iptables stop //停止防火牆 # chkconfig iptables off //永久關閉防火牆 2、關閉SELINUX # sestatu
Mono on CentOS 6.3 安裝筆記
在網上找到篇關於yum的文章,寫的很詳細特此推薦下,在閱讀本文之前建議先看看它: 《CentOS yum源的配置與使用》 如果用的是移動光碟機,建議不要開啟本地的yum 的本地repository庫,即不要啟用/etc/yum.repos.d/CentOS-Media.repo檔案內的配置源。當然,如果
MonoDevelop 4.0.9 on CentOS 6.3 安裝筆記
前言 Mono的前東家Novell公司旗下的SUSE Linux系列對Mono及MonoDevelop提供內建支援,所以在SUSE/OpenSUSE這些Linux系統中安裝MonoDevelop是非常簡便的。但是,在其他Linux分支中要安裝MonoDevelop卻常常需要大費周折,為什麼會這樣呢?主要