天天看點

centos7 vsftpd 虛拟使用者 pam子產品認證

若開啟selinux的話,那麼就需要

chcon -R -t public_content_t /var/ftp/user1/

chcon -R -t public_content_t /var/ftp/user2/

setsebool -P ftp_home_dir on

一、首先需要裝的包有:

yum install vsftpd lftp ftp libdb-utils(生成虛拟使用者驗證資料庫檔案) -y

systemctl restart vsftpd.service  啟動服務

systemctl enable vsftpd    設定開機啟動

systemctl status vsftpd     檢視服務啟動狀态與啟動狀态時間,加載的配置檔案等。

二、建立一個虛拟使用者的資料庫檔案

#!/bin/bash

cat > /etc/vsftpd/auth_virtual_ftp_user <<END

user1

123

user2

456

END

需要這個檔案來生成資料庫檔案

db_load -T -t hash -f /etc/vsftpd/auth_virtual_ftp_user /etc/vsftpd/auth_virtual_ftp_user.db

-T :允許non-Berkeley DB應用程式容易文本檔案加載到資料庫

-t:指定生成資料庫檔案類型

後面就是要用哪個檔案來生成資料庫檔案了,前面是文本檔案,後面是資料庫檔案,什麼名字都可以,但資料庫檔案必須是以*.db結尾的

三、配置vsftpd檔案

首先要備份一份初始檔案

cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.$(date +%Y-%m-%d).bak

cat /etc/vsftpd/vsftpd.conf.$(date +%Y-%m-%d).bak | grep -v ^# | tr -s '\n' > /etc/vsftpd/vsftpd.conf

把裡面多餘的空行用tr -s '\n' 來清理掉,接着再重定向到vsftpd的配置檔案中。

cat /etc/vsftpd/vsftpd.conf   按以下要求來修改配置檔案

anonymous_enable=NO

local_enable=YES

write_enable=YES

local_umask=022

dirmessage_enable=YES

xferlog_enable=YES

connect_from_port_20=YES

xferlog_std_format=YES

listen=NO      (預設是YES,改為NO的話,啟動服務時就不會出錯了)

listen_ipv6=YES

#userlist_enable=YES     如果這個開啟的話,那麼必須要有下面的這個檔案

#userlist_file=/etc/vsftpd.user_list 隻有這檔案裡面的使用者才用通路

pam_service_name=pam_vsftpd   這個檔案對應的位置是/etc/pam.d/pam_vsftpd 

userlist_enable=YES

tcp_wrappers=YES

use_localtime=YES

guest_enable=YES

guest_username=ftpuser

user_config_dir=/etc/vsftpd/user_conf

建立虛拟使用者配置目錄

mkdir /etc/vsftpd/user_conf/

四、修改pam 子產品

[root@server1 ~]# cat /etc/pam.d/pam_vsftpd

auth       required     pam_userdb.so    db=/etc/vsftpd/auth_virtual_ftp_user

account    required     pam_userdb.so    db=/etc/vsftpd/auth_virtual_ftp_user

這裡的*.so 檔案全部都是預設在/lib64/security/這個目錄下

之前我總是認證不成功(登入503錯誤),我想可能是子產品之間有一些影響,是以我把其他的都注釋掉,隻留下這兩個即可。通常使用的情況下,暫無其他問題,若有的話歡迎指出問題,謝謝。

五、建立虛拟使用者

touch  /etc/vsftpd/user_conf/{user1,user2}

cat /etc/vsftpd/user_conf/user1

anon_world_readable_only=no

write_enable=yes

anon_mkdir_write_enable=yes

anon_other_write_enable=yes

anon_upload_enable=yes

local_root=/var/ftp/user1

cat /etc/vsftpd/user_conf/user2

anon_world_readable_only=no       # 允許匿名使用者浏覽器整個伺服器的檔案系統

write_enable=no                             # 允許在檔案系統寫入權限

anon_mkdir_write_enable=yes              #  允許建立檔案夾

anon_other_write_enable=NO                #   允許使用者改名和删除檔案的權限

anon_upload_enable=yes                            # 允許使用者上傳檔案

local_root=/var/ftp/user2

mkdir  /var/ftp/{user1,user2} 建立虛拟使用者的根目錄 

六、建立一個使用者要與vsftp.conf中的guest_username=ftpuser 所對應上

useradd  -g ftp -s /sbin/nologin ftpuser

配置設定權限

cd /var/ftp/

chown -R ftpuser *

[root@server1 ftp]# ll -dh /var/ftp/user1/

drwxr-xr-x. 2 ftpuser ftpuser 6 Oct 31 02:38 /var/ftp/user1/

<a href="http://s3.51cto.com/wyfs02/M00/75/5B/wKiom1Y3QSfis0zJAAGAoiKSnJE505.jpg" target="_blank"></a>

本文轉自silence部落格51CTO部落格,原文連結http://blog.51cto.com/silencezone/1708341如需轉載請自行聯系原作者

a120518129