centos6.5下vsftpd服務的安裝及配置並通過pam認證實現虛擬使用者檔案共享
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 -y2、修改配置檔案
# 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
注意:在複製配置檔案時,記得先儲存在文字編輯器中,去掉空格,避免配置無法被識別
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.5下vsftpd服務的安裝及配置並通過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
linux下vsftpd的安裝及配置
transfer rem mon wrap attack comment ftpd 用戶 user 1. 安裝 執行 yum -y install vsftpd 註:(1)可通過 rpm -qa|grep vsftpd 檢查是否已安裝 vsftpd .
centos6.5下redis的安裝與配置心得
$ 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.5下redis的安裝與配置
$ 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=
CentOS7下NFS服務安裝及配置
系統環境: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.5下docker的安裝及遇到的問題和簡單使用
Docker是一個開源的應用容器引擎,可以輕鬆的為任何應用建立一個輕量級的、可移植的、自給自足的容器。利用Linux的LXC、AUFS、Go語言、cgroup實現了資源的獨立,可以很輕鬆的實現檔案、資源、網路等隔離,其最終的目標是實現類似PaaS平臺的應用隔離。 Doc
Centos6.5下DHCP服務器的安裝和配置
默認 聲明 網絡 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.
Windows下MySQL 5.6.27.0.安裝及配置
在DOS命令視窗輸入 mysql -h localhost -u root -p回車 進入mysql資料庫,其中-h表示伺服器名,localhost表示本地;-u為資料庫使用者名稱,root是mysql預設使用者名稱;-p為密碼,如果設定了密碼,接下來在Enter password後面輸入設定的密碼, 或
Centos 6.5下SVN服務安裝配置
第一:說明,軟體說明,和安裝的目的 架設基於linux下的SVN伺服器,進行版本控制。 第二:本例操作環境 所使用的系統環境為 Centos 6.5 64位作業系統 [[email protected] ~]# uname -a Linux tia
Linux下Apache 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 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
Linux下eclipse的安裝及配置
Eclipse for Ubuntu: Eclipse這款免費的IDE至今還有不少人在用,由於win10系統太耗費CPU資源,加之一直對Linux非常感興趣,想在Linux系統下玩玩,安裝配置過程中也踩了一些坑
centos下maven的安裝及配置
⑴.將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