centos7下安裝vsftpd與PAM虛擬用戶


Vsftp與PAM虛擬用戶



使用yum 安裝vsftp

yum install vsftpd pam pam-* db4 db4-* 

設置開機啟動

chkconfig vsftpd on

 

創建一個保存用戶及密碼的文件

cd /etc/vsftpd/ 
touch  vuser_passwd.txt

 

 


添加用戶(奇行用戶,偶行密碼)

vi  vuser_passwd.txt 

 

tom
DSfaoewLD3
ken
GetpOIIofd324DLJhg

 

將文本內的帳號及密碼添加到db4的數據庫文件內

db_load -T -t hash -f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.db

 

將vsftpd原內容全部注釋掉,並添加如下:

sed -ir 's/^/#/g' /etc/pam.d/vsftpd 
echo -n ' 
auth    required   /lib64/security/pam_userdb.so   db=/etc/vsftpd/vuser_passwd 

account required   /lib64/security/pam_userdb.so   db=/etc/vsftpd/vuser_passwd

' >> /etc/pam.d/vsftpd 

  


創建一個vsftpd服務的用戶vsftpd,你也可以使用-d來指定他的家目錄

useradd -g www -d /home/vsftpd -s /sbin/nologin vsftpd 
#useradd -d /var/ftp/tom -s /sbin/nologin tom

  

 


更改 vsftpd的配置文件

cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak 
awk '! /^(#|$)/' /etc/vsftpd/vsftpd.conf.bak

配置如下:  

#不允許匿名訪問
anonymous_enable=NO
#設定本地用戶可以訪問。注意:主要是為虛擬宿主用戶,如果該項目設定為NO那么所有虛擬用戶將無法訪問
local_enable=YES
#允許寫操作
write_enable=YES
#創建或上傳后文件的權限掩碼
local_umask=022
#禁止匿名用戶上傳
anon_upload_enable=NO
#禁止匿名用戶創建目錄
anon_mkdir_write_enable=NO
#進入目錄時可以顯示一些設定的信息,可以通過message_file=.message來設置
dirmessage_enable=YES
#開啟日志
xferlog_enable=YES
#主動連接的端口號
connect_from_port_20=YES
#設定禁止上傳文件更改宿主
chown_uploads=NO
#日志路徑,記得自己創建一下並且對這個文件進行chown  vsftpd.vsftpd /var/log/vsftpd.log
xferlog_file=/var/log/vsftpd.log
#就是格式話日志格式的,你懂得。使用wu ftp軟件時設置yes就行
xferlog_std_format=YES
#因為我們把vsftpd的shell設置為nobody 了,所以 這個地方寫vsftpd就可以啦!當然或者可以寫成系統內的nobody
nopriv_user=vsftpd
#設定支持異步傳輸功能
async_abor_enable=YES
#設定支持ASCII模式的上傳
ascii_upload_enable=YES
#設定支持ASCII模式的上傳
ascii_download_enable=YES
#登陸歡迎語
ftpd_banner=Welcome to dongnan FTP service.
#限定在自己的目錄內,不讓他出去,就比如如果設置成NO,那么當你登陸到ftp的時候,可以訪問服務器的其他一些有權限目錄。設置為YES后即,鎖定你的目錄了
chroot_list_enable=YES
#待會要把用戶寫到這個里面,寫到這里的用戶乖乖的呆在家目錄下吧
chroot_list_file=/etc/vsftpd/chroot_list
#以standalone方式來啟動
listen=YES
#/etc/pam.d/下的vsftpd文件
pam_service_name=vsftpd
#在/etc/vsftpd/user_list中的用戶將不得使用FTP
userlist_enable=YES
#支援 TCP Wrappers 的防火牆機制
tcp_wrappers=YES
#啟用虛擬用戶功能
guest_enable=YES
guest_username=vsftpd
#虛擬用戶的權限符合他們的宿主用戶
virtual_use_local_privs=YES
#虛擬用戶個人vsftpd的配置文件存放路徑。vsftpd_config是文件夾啊。注意:配置文件名必須和虛擬用戶名相同
user_config_dir=/etc/vsftpd/vuser_conf

設置被動模式

allow_writeable_chroot=YES
#connect_from_port_10021=YES
pasv_min_port=8888
pasv_max_port=8899

放開端口

 

firewall-cmd --add-port=8888-8899/tcp --permanent
firewall-cmd --reload

  

 

  


創建一下保存虛擬用戶配置文件的目錄

mkdir /etc/vsftpd/vuser_conf/ 

 

創建vsftp日志文件

touch /var/log/vsftpd.log 
chmod 600 /var/log/vsftpd.log 
chown vsftpd.vsftpd /var/log/vsftpd.log 

 

 


創建要將哪些用戶固定在家目錄的配置文件

touch /etc/vsftpd/chroot_list
echo vsftpd > /etc/vsftpd/chroot_list

  

將需要固定用戶目錄的用戶名字寫進去即可。

cd /etc/vsftpd/vuser_conf/ 
cat > tom << EOF #起用虛擬用戶,centos下yes必須為小寫字母 

local_root=/home/ftp/tom
write_enable=YES
anon_umask=022
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

注:行末不能有空格  


啟動vsftp

/etc/init.d/vsftpd start

放開selinux限制  

setsebool -P ftp_home_dir=1   //設置ftp可以使用home目錄
setsebool -P allow_ftpd_full_access=1   //設置ftp用戶可以有所有權限

防火牆

firewall-cmd --add-port=21/tcp --permanent
firewall-cmd --reload

  

  

 

Starting vsftpd for vsftpd: 500 OOPS: bad bool value in config file for: anon_upload_enable
注意: 這里出現了 500 OOPS 之類的錯誤,請使用以下命令去除"多余的空格",再次啟動vsftp 即可。

sed -ir 's/[ ]*$//g'  /etc/vsftpd/vsftpd.conf 
sed -ir 's/[ ]*$//g'  /etc/vsftpd/vuser_conf/tom

 

基於SSL加密

(可以應用於任何用戶驗證。可以利用本博的博文抓包驗證)

mkdir  /etc/vsftpd/.sslkey        //建立存放證書的目錄
cd  /etc/vsftpd/.sslkey           //進入該目錄以備建立證書
openssl  req  –new  -x509  -nodes -days 900 -out vsftpd.pem  -keyout  vsftpd.pem  //生成證書,Common Name必須是客戶端訪問FTP服務器時的FQDN.默認過期時間為30天,這里設為900天
chmod  -R 400  /etc/vsftpd/.sslkey  //保證證書安全,修改證書目錄的權限。

filezilla client連接時“加密”選擇“要求顯式的FTP over TLS”


在/etc/vsftpd/vsftpd.conf配置文件中添加:

ssl_enable=YES
ssl_sslv2=YES
ssl_sslv3=YES
ssl_tlsv1=YES
force_local_logins_ssl=YES   
force_local_data_ssl=YES
rsa_cert_file=/etc/vsftpd/.sslkey/vsftpd.pem

  

  


#service  vsftpd  restart

參考
Vsftp服務安裝搭建,虛擬用戶配置
http://kinggoo.com/app-installvsftpdconf.htm

第二十一章、檔案伺服器之三: FTP 伺服器

 

 

/sbin/nologin和/bin/false的區別 
/bin/false是最嚴格的禁止login選項,一切服務都不能用,而/sbin/nologin只是不允許系統login,可以使用其他ftp等服務。

 

參考:http://jingyan.baidu.com/article/d169e186469f44436611d8ec.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM