1. 程式人生 > >centos6.5下vsftpd服務的安裝及配置並通過pam認證實現虛擬使用者檔案共享

centos6.5下vsftpd服務的安裝及配置並通過pam認證實現虛擬使用者檔案共享

 FTP的全稱是File Transfer Protocol(檔案傳輸協議),就是專門用來傳輸檔案的協議.它工作在OSI模型的第七層,即是應用層,使用TCP傳輸而不是UDP.這樣FTP客戶端和伺服器建立連線前就要經過一個"三次握手"的過程.FTP服務還有一個非常重要的特點是它可以獨立於平臺。


    LINUX下實現FTP服務的軟體很多,最常見的有vsftpd,Wu-ftpd和Proftp等。Red Hat Enterprise Linux中預設安裝的是vsftpd。
    通常,訪問FTP伺服器時需要經過驗證,只有經過了FTP伺服器的相關驗證,使用者才能訪問和傳輸檔案.vsftpd提供了3種ftp登入形式:
    (1)anonymous(匿名帳號)
使用anonymous是應用廣泛的一種FTP伺服器.如果使用者在FTP伺服器上沒有帳號,那麼使用者可以以anonymous為使用者名稱,以自己的電子郵件地址為密碼進行登入.當匿名使用者登入FTP伺服器後,其登入目錄為匿名FTP伺服器的根目錄/var/ftp.為了減輕FTP伺服器的負載,一般情況下,應關閉匿名帳號的上傳功能。
    (2)real(真實帳號)

real也稱為本地帳號,就是以真實的使用者名稱和密碼進行登入,但前提條件是使用者在FTP伺服器上擁有自己的帳號.用真實帳號登入後,其登入的目錄為使用者自己的目錄,該目錄在系統建立帳號時系統就自動建立。
    (3)guest(虛擬帳號)
如果使用者在FTP伺服器上擁有帳號,但此帳號只能用於檔案傳輸服務,那麼該帳號就是guest,guest是真實帳號的一種形式,它們的不同之處在於,geust登入FTP伺服器後,不能訪問除宿主目錄以外的內容。
下面就對其詳細介紹。

接下來我們開始實現vsftpd的虛擬使用者的功能:

1、yum安裝vsftpd程式:

# yum install vsftpd -y

2、修改配置檔案

    備份修改配置檔案
   # cd /etc/vsftpd
    # mv vsftpd.conf vsftpd.conf.bak
    # vim vsftpd.conf
加入以下內容,並儲存wq:

anonymous_enable=NO
local_enable=YES
write_enable=YES
anon_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
listen=YES
user_config_dir=/etc/vsftpd/vuser_dir
pam_service_name=/etc/pam.d/ftp.vu
userlist_enable=NO
chroot_list_enable=YES
tcp_wrappers=YES
guest_enable=YES
guest_username=root
chown_uploads=YES
chown_username=root


引數說明:
# cat vsftpd.conf | grep "^[^#]"
anonymous_enable=NO  //是否允許anonymous登入FTP伺服器,預設是允許的。
local_enable=YES  //是否允許本地使用者登入FTP伺服器,預設是允許
write_enable=YES  //是否允許使用者具有在FTP伺服器檔案中執行寫的許可權,預設是允許
anon_umask=022  //設定虛擬使用者的檔案生成掩碼為022,預設是077
dirmessage_enable=YES  //啟用目錄資訊,當遠端使用者更改目錄時,將出現提示資訊
xferlog_enable=YES  //啟用上傳和下載日誌功能
connect_from_port_20=YES  //啟用FTP資料埠的連線請求
xferlog_file=/var/log/vsftpd.log  //設定日誌檔案的檔名和儲存路徑,這是預設的
xferlog_std_format=YES  //是否使用標準的ftpd xferlog日誌檔案格式
listen=YES  //使vsftpd 處於獨立啟動模式
user_config_dir=/etc/vsftpd/vuser_dir  //使用虛擬使用者配置檔案的目錄
pam_service_name=/etc/pam.d/ftp.vu  //設定PAM認證服務的配置檔名稱,該檔案存放在/etc/pam.d/目錄下.
userlist_enable=NO  //使用者列表中的使用者是否允許登入FTP伺服器,預設是不允許
chroot_list_enable=YES  //如果希望使用者登入後不能切換到自己目錄以外的其它目錄,需要設定該項
tcp_wrappers=YES  //使用tcp_wrqppers作為主機訪問控制方式
guest_enable=YES  //是否啟用來賓使用者(也就是啟用虛擬使用者)
guest_username=root  //如果啟用了虛擬使用者後上傳檔案修改檔案的使用者名稱
chown_uploads=YES  //是否啟用上傳檔案後修改為指定的屬主
chown_username=root  //是否啟用上傳檔案後修改為指定的屬主使用者


3、在/etc/vsftpd/下建立兩個目錄

vuser_db   #後續存放虛擬使用者的配置檔案
vuser_dir  #存放虛擬使用者的認證檔案
# mkdir vuser_db vuser_dir
# cd vuser_db/
# ll
-rw-r--r-- 1 root root    44 6月  17 19:35 login_vuser
-rw-r--r-- 1 root root 12288 6月  17 19:35 vuser.db
# vim login_vuser
//以下是login_vuser虛擬使用者的帳號密碼格式,奇數行為使用者名稱,雙數行為密碼
ftpuser1
123456
ftpuser2
123456

生成資料庫檔案
選項-T允許應用程式能夠將文字檔案轉譯載入進資料庫。由於我們之後是將虛擬使用者的資訊以檔案方式儲存在檔案裡的,為了讓Vsftpd這個應用程式能夠通過文字來載入使用者資料,必須要使用這個選項。
如果指定了選項-T,那麼一定要追跟子選項-t
子選項-t,追加在在-T選項後,用來指定轉譯載入的資料庫型別。擴充套件介紹下,-t可以指定的資料型別有Btree、Hash、Queue和Recon資料庫。
-f:引數後面接包含使用者名稱和密碼的文字檔案,檔案的內容是:奇數行使用者名稱、偶數行密碼

# db_load -T -t hash -f /etc/vsftpd/vuser_db/login_vuser /etc/vsftpd/vuser_db/vuser.db


4、更改pam認證模組

# cd /etc/pam.d/
# vim ftp.vu  //這個檔名要與主配置檔案中的pam_service_name指定的一致
//最後面的vuser就是vuser.db,但是這裡的字尾不是需要寫的
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_db/vuser
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_db/vuser


5、為虛擬使用者建立對應的檔案

# cd /etc/vsftpd/vuser_dir/
# ll   //login_vuser中有多少個帳號就建立多少個虛擬使用者檔案
-rw-r--r-- 1 root root 168 6月  17 19:36 ftpuser1
-rw-r--r-- 1 root root 169 6月  17 19:37 ftpuser2

# vim ftpuser1

anon_world_readable_only=NO
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_root=/data/ftp1 //指定虛擬使用者有許可權登入到哪個目錄
chown_upload_mode=0777  //虛擬使用者上傳檔案的許可權設定


到這裡基本上算是配置完成了,可以啟動vsftpd服務了:

# service vsftpd start

注意:在複製配置檔案時,記得先儲存在文字編輯器中,去掉空格,避免配置無法被識別


如果ftp://ip連線不上去,可在終端使用lftp -u user,passwd ip連線上去,看看報什麼錯,然後逐個排查,線上伺服器的話要開放ftp的埠,線上的開放埠設定:
iptables -A INPUT -p tcp -m multiport --dports 20,21 -m state --state NEW -j ACCEPT
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 30000:31000 -j ACCEPT


在centos客戶機上安裝lftp命令
# yum install -y lftp
# lftp -u ftpuser1,pass 192.168.8.39
lftp [email protected]:~> ls
ls: 登入失敗: 500 OOPS: could not read chroot() list file:/etc/vsftpd/chroot_list


此時
vim /etc/vsftpd/chroot_list
加入以下內容即可,這個是說可以列出除家目錄以外的使用者
ftpuser1
ftpuser2


lftp [email protected]:~> ls
ls: 登入失敗: 500 OOPS: bad bool value in config file for: anon_world_readable_only


/etc/vsftpd/vuser_dir/ftpuser1的配置檔案許可權中有空格,去掉即可


lftp [email protected]:~> ls
ls: 登入失敗: 500 OOPS: cannot change directory:/root
解決辦法:
1、 檢視 SELinux 的狀態


# sestatus -b | grep ftp
allow_ftpd_anon_write                       off
allow_ftpd_full_access                      off
allow_ftpd_use_cifs                         off
allow_ftpd_use_nfs                          off
ftp_home_dir                                off
ftpd_connect_db                             off
ftpd_use_fusefs                             off
ftpd_use_passive_mode                       off
httpd_enable_ftp_server                     off
tftp_anon_write                             off
tftp_use_cifs                               off
tftp_use_nfs                                off
2、 在出現的結果中可以看到 ftp_home_dir off
tftpd_disable_trans off
之類。我們現在只要把其中之一設定為on就可以啦。
3、 setsebool -P ftpd_disable_trans on 或者 setsebool -P ftp_home_dir on
# setsebool -P ftpd_disable_trans on
Boolean ftpd_disable_trans is not defined
4、 重啟vsftpd: service vsftpd restart


貌似不行,此時需要關閉selinux防火牆
# setenforce 0
修改其配置檔案,不讓selinux隨機啟動
# vim /etc/selinux/config
SELINUX=disabled

相關推薦

centos6.5vsftpd服務安裝配置通過pam認證實現虛擬使用者檔案共享

 FTP的全稱是File Transfer Protocol(檔案傳輸協議),就是專門用來傳輸檔案的協議.它工作在OSI模型的第七層,即是應用層,使用TCP傳輸而不是UDP.這樣FTP客戶端和伺服器建立連線前就要經過一個"三次握手"的過程.FTP服務還有一個非常重要的特點是

CentOS6.5 Asterisk 的安裝配置 2個軟電話實現互撥

[general]                              //類似與全域性變數 context  = default                 srvlookup = yes                   //DNS SRV記錄查詢 [111] secret=aaa      

CentOS6.5 Nginx 的安裝配置

ffffff style 指定 this load() 應用 case 編譯 $? 昨天買了個服務器最近在配置一些基礎環境,想在訪問www.wzpbk.com:8080 不想要後面的:8080就能直接訪問到,聽說了Nginx就研究下給服務器裝上傳說中大名鼎鼎 Ng

linuxvsftpd安裝配置

transfer rem mon wrap attack comment ftpd 用戶 user 1. 安裝 執行 yum -y install vsftpd 註:(1)可通過 rpm -qa|grep vsftpd 檢查是否已安裝 vsftpd .

centos6.5redis的安裝配置心得

$ wget http://download.redis.io/releases/redis-3.2.9.tar.gz $ tar xzf redis-3.2.9.tar.gz $ cd redis-3.2.9 $ make 或者 make install PREFIX=安裝目錄上述流程依次代表,下載r

linux nginx 服務安裝配置,開機自動啟動

最近經常需要安裝linux伺服器,經過網上查詢整理資料,以備後用。 模組依賴性Nginx需要依賴下面3個包 1. gzip 模組需要 zlib 庫 ( 下載: http://www.zlib.net/ ) 2

centos6.5redis的安裝配置

$ wget http://download.redis.io/releases/redis-3.2.9.tar.gz $ tar xzf redis-3.2.9.tar.gz $ cd redis-3.2.9 $ make 或者 make install PREFIX=

CentOS7NFS服務安裝配置

系統環境:CentOS Linux release 7.4.1708 (Core) 3.10.0-693.el7.x86_64 軟體版本:nfs-utils-1.3.0-0.48.el7_4.x86_64 網路環境中配置了DNS伺服器,NFS伺服器對應的域名是nfs.st.local,IP是192.168.1

【轉】CentOS6.5docker的安裝遇到的問題和簡單使用

Docker是一個開源的應用容器引擎,可以輕鬆的為任何應用建立一個輕量級的、可移植的、自給自足的容器。利用Linux的LXC、AUFS、Go語言、cgroup實現了資源的獨立,可以很輕鬆的實現檔案、資源、網路等隔離,其最終的目標是實現類似PaaS平臺的應用隔離。    Doc

Centos6.5DHCP服務器的安裝配置

默認 聲明 網絡 grep eve install 廣播 6.0 lan 1、首先需要安裝DHCP的軟件包,使用yum進行安裝 # yum install -y dhcp.x86_64 dhcp-devel.x86_64 2、將/usr/share/doc/dhcp-4.

WindowsMySQL 5.6.27.0.安裝配置

在DOS命令視窗輸入 mysql -h localhost -u root -p回車 進入mysql資料庫,其中-h表示伺服器名,localhost表示本地;-u為資料庫使用者名稱,root是mysql預設使用者名稱;-p為密碼,如果設定了密碼,接下來在Enter password後面輸入設定的密碼, 或

Centos 6.5SVN服務安裝配置

第一:說明,軟體說明,和安裝的目的 架設基於linux下的SVN伺服器,進行版本控制。 第二:本例操作環境  所使用的系統環境為 Centos 6.5 64位作業系統 [[email protected] ~]# uname -a  Linux tia

LinuxApache httpd安裝配置服務

 Apache安裝 2016年9月26日 10:51 最重要的要點 安裝版本:2.4.23 依賴軟體:apr-1.4.5、apr-util-1.3.12和pcre-8.31 安裝環境

Ubuntu系統OpenLDAP的安裝配置

操作系統 ldap 前言LDAP(Lightweight Directory Access Protocol)是基於X.500標準的輕量級目錄訪問協議,在Unix操作系統裏面,和NIS,DNS一樣,屬於名稱服務(Naming Service)。本文描述了如何在Ubuntu操作系統上面,搭建LDAP服務

window10系統caffe的安裝配置matlab接口(顯卡為1080)

文件重命名 port watermark 無法打開 系統環境變量 警告 自動下載 解決辦法。 單擊 caffe一般是在linux系統下安裝,網上關於windows下安裝教程教程,且每個教程都不是很全,我在這邊總結一下流程及所有bug 的解決辦法。 我是在w

Windows Server SNMP服務安裝配置

Windows;SNMPWindows Server SNMP服務安裝及配置 一、 Windows XP OR Windows Server2003 1. 安裝服務 1) 打開控制面板,選擇‘添加或刪除程序’ 2) 點擊左側,‘添加/刪除Windows組件(A)‘ 3) 選擇‘管理和監視工具’,並點

CentOs6.5 源碼安裝samba

簡單測試 linux共享 表示 lan ip) swd install 服務啟動 服務 環境:CentOS6.5 安裝:samba-3.5.8.tar.gz 安裝步驟: tar -xzvf samba-3.5.8.tar.gz cd samba-3.5.8 cd so

【轉載】linux的samba安裝配置

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

Linuxeclipse的安裝配置

Eclipse for Ubuntu:         Eclipse這款免費的IDE至今還有不少人在用,由於win10系統太耗費CPU資源,加之一直對Linux非常感興趣,想在Linux系統下玩玩,安裝配置過程中也踩了一些坑

centosmaven的安裝配置

⑴.將apache-maven-3.5.0-bin.tar.gz拷貝到/usr/local目錄下; ⑵.解壓:tar -xzvf apache-maven-3.5.0-bin.tar.gz ⑶.修改資料夾名字:mv apache-maven-3.5.0/ mav