vsftp 配置虛擬用戶

        

        VSFTP是一個基於GPL發佈的類Unix系統上使用的FTP服務器軟件,它的全稱是Very Secure FTP(非常安全的FTP) 從此名稱可以看出來,編制者的初衷是代碼的安全。目前已經被許多大型站點所採用,如:ftp.RedHat.com,ftp.kde.org,ftp.gnome.org.等。


Vsftpd的實現有三種方式
1、匿名用戶形式:在默認安裝的情況下,系統只提供匿名用戶訪問
2、本地用戶形式:以/etc/passwd中的用戶名爲認證方式
3、虛擬用戶形式:支持將用戶名和口令保存在數據庫文件或數據庫服務器中。相對於FTP的本地用戶形式來說,虛擬用戶只是FTP服務器的專有用戶,虛擬用戶只能訪問FTP服務器所提供的資源,這大大增強系統本身的安全性。相對於匿名用戶而言,虛擬用戶需要用戶名和密碼才能獲取FTP服務器中的文件,增加了對用戶和下載的可管理性。對於需要提供下載服務,但又不希望所有人都可以匿名下載;既需要對下載用戶進行管理,又考慮到主機安全和管理方便的FTP站點來說,虛擬用戶是一種極好的解決方案。


下面我們來看看虛擬用戶的配置:

系統環境(執行以下任何一個命令查看系統版本): 

cat /etc/redhat-release
cat /etc/issue

顯示: Red Hat Enterprise Linux Server release 6.0 (Santiago)

說明我的系統版本是 RHEL Server release 6.0


一、首先安裝相關包

以下都是用yum安裝,配置yum源的方法網上有,這裏就不說了

1. yum安裝vsftp:

yum install vsftpd -y


2. yum安裝PAM服務相關部件:

yum install pam* -y


3. yum安裝DB4部件包(這裏要特別安裝一個db4的包,用來支持文件數據庫):

yum install db4* -y


二、配置 (vsftp的默認配置在/etc/vsftpd/下)

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

cd /etc/vsftpd/ 
touch virtual_user


2. 添加用戶一行是用戶一行是密碼

cd /etc/vsftpd/ && vim  virtual_user

比如: lengyu

          passwd


3. 將virtual_user文本里的賬號及密碼添加到db4的數據庫文件裏

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


4. 配置 /etc/pam.d/下的vsftpd,裏面的內容全部註釋,然後再添加:

sed -ir 's/^/#/g' /etc/pam.d/vsftpd   #將vsftpd裏的內容全部註釋

echo -n ' 
auth    required   /lib64/security/pam_userdb.so   db=/etc/vsftpd/virtual_user 
account required   /lib64/security/pam_userdb.so   db=/etc/vsftpd/virtual_user 
' >> /etc/pam.d/vsftpd                #添加兩行內容


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

useradd -s /sbin/nologin vsftpd
useradd -d /var/ftp/lengyu -s /sbin/nologin lengyu


6. 更改vsftp的配置文件(修改以下):

vim /etc/vsftpd/vsftpd.conf

#不允許匿名訪問

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
#虛擬用戶的權限符合他們的宿主用戶
virtual_use_local_privs=YES
#虛擬用戶個人vsftpd的配置文件存放路徑。vsftpd_config是文件夾啊。注意:配置文件名必須和虛擬用戶名相同
user_config_dir=/etc/vsftpd/vsftpd_config


7. 創建一個保存虛擬用戶配置文件的目錄:

mkdir /etc/vsftpd/vsftpd_config/


8. 創建vsftp的日誌文件

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


9. 創建要將哪些用戶固定在家目錄的配置文件,將需要固定用戶目錄的用戶名字寫進去即可:

touch /etc/vsftpd/chroot_list


10. 編輯用戶的配置文件:

cd /etc/vsftpd/vsftpd_config/

cat > lengyu << EOF 

#啓用虛擬用戶,centos下yes必須爲小寫字母 
guest_enable=yes 

#映射本地虛擬用戶 
guest_username=lengyu

#如果當時創建用戶的時候鎖定一個目錄了,那就可以不寫 
local_root=/var/ftp/lengyu

#用戶會話空閒後10分鐘
idle_session_timeout=600 

#將數據連接空閒2分鐘斷 
data_connection_timeout=120 

#最大客戶端連接數 
max_clients=10 

#每個ip最大連接數 
max_per_ip=5 

#限制上傳速率,0爲無限制 
local_max_rate=0 

EOF


11. 啓動vsftp:

/etc/init.d/vsftpd start


        如果出現 Starting vsftpd for vsftpd:500 OOPS: bad boolvalue in config file for:的話,使用以下命令,再次啓動vsftp 即可:

sed -ir 's/[ ]*$//g'  /etc/vsftpd/vsftpd.conf
sed -ir 's/[ ]*$//g'  /etc/vsftpd/vsftpd_config/lengyu


    如需要再添加其他用戶,只需編輯virtual_user文件,向裏面添加賬號密碼(一行是賬號一行是密碼,切記不要將賬號和密碼放到同一行),然後進入vsftpd_config目錄,拷貝一個用戶文件重命名成自己用戶的文件,編輯-保存,然後再次使用以下命令將用戶添加到文件數據庫virtual_user.db中;然後直接登錄即可,不用重啓vsftp。

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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章