vsFTP部署

1. 預備組件

yum -y install vsftpd install pam* install db4 db4-utils

// 設置開機啓動
chkconfig vsftpd on

2.建立虛擬用戶

// 以下爲四個準備開啓虛擬用戶名稱
user1
user2
user3
user4

// 添加虛擬用戶名、密碼。奇數行爲用戶名,偶數行爲密碼。
vi /etc/vsftpd/vftpuser.txt
user1
passwd12
user2
passwd12
user3
passwd12
user4
passwd12

3.生成虛擬用戶口令認證文件

 // 把剛添加的vftpuser.txt虛擬用戶口令轉換成系統的口令認證文件。

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

4.編輯vsftpd的PAM認證

vim /etc/pam.d/vsftpd
註釋掉所有內容 並錄入下面兩行

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

5. 建立本地映射用戶並設置宿主權限

// 創建用戶前,不要創建/disk/ftp
useradd -d /disk/ftp -s /sbin/nologin user1
useradd -d /disk/ftp -s /sbin/nologin user2 
useradd -d /disk/ftp -s /sbin/nologin user3 
useradd -d /disk/ftp -s /sbin/nologin user4
注: 提示 “useradd: cannot create directory /disk/ftp”,不理會。

// 一次性創建每個虛擬用戶根目錄
mkdir -p /disk/ftp/user{1..4}

// 目錄的權限應該是770,owner是root,group是ftp(這裏的用戶組應該是當前系統已有的用戶組,不存在的用戶組無效,用戶組爲ftp是造成後面編輯無權限)

chmod -R 770 /disk/ftp
chown -R  root:hadoop /disk/ftp

6.配置 vsftpd.conf

// 設置虛擬用戶配置項,修改成以下屬性。
vim /etc/vsftpd/vsftpd.conf 

// 12行
anonymous_enable=NO  
// 95行
#users to NOT chroot().添加以下部分:

#虛擬用戶配置文件存放位置
user_config_dir=/etc/vsftpd/vsftpd_user (注意:這裏的" vsftpd_user "目錄,可以不用改.但是下面一個根據系統用戶而改.)
#開啓虛擬用戶
guest_enable=YES
#FTP虛擬用戶對應的系統用戶,注意:這裏的"vftpuser是對應掛鉤的用戶,比如hadoop."
guest_username=vftpuser

// 限定用戶只在自己目錄, 取消下面幾行的註釋
xferlog_file=/var/log/vsftpd.log        // 39行
chroot_list_enable=YES                  // 103行
chroot_list_file=/etc/vsftpd/chroot_list // 105行

// 123行
pam_service_name=vsftpd

6.2 新建chroot_list文件

touch /etc/vsftpd/chroot_list

7.虛擬用戶權限配置

// 創建虛擬用戶放置主目錄
mkdir /etc/vsftpd/vsftpd_user



配置用戶權限
// 依次創建4個文件,並輸入配置信息
vi /etc/vsftpd/vsftpd_user/user{1..4}

// 配置信息,將 * 分別替換成 1,2,3,4
local_root=/disk/ftp/user*
anon_world_readable_only=no
write_enable=yes
anon_upload_enable=yes
anon_other_write_enable=yes
anon_mkdir_write_enable=yes

修改端口默認的連接端口號:
添加此行:117行 listen 下添加: listen_port=21001     //117行
vim +117 /etc/vsftpd/vsftpd.conf 

vim +44 /etc/services 
將其中的 ftp 21/tcp 改爲 ftp 21001/tcp , ftp     // 44行 

啓動 vcftp
/etc/init.d/vsftpd {stop|start|restart|status}

FTP效果驗證

// 服務搭載主機ip:開房端口號
123.456.789.012:3456

// 使用ftp 軟件即可連接和使用

注意: 防火牆問題

8.常用配置組合:

1.可瀏覽
local_root=/disk/ftp/tonecan
anon_world_readable_only=no

1-1.禁瀏覽
local_root=/disk/ftp/tonecan
anon_world_readable_only=yes (默認設置)

2.可上傳
local_root=/disk/ftp/tonecan
write_enable=yes
anon_upload_enable=yes

3.瀏覽+下載+上傳
local_root=/disk/ftp/tonecan
anon_world_readable_only=no
write_enable=yes
anon_upload_enable=yes

4.瀏覽+下載+上傳+刪除
local_root=/disk/ftp/tonecan
anon_world_readable_only=no
write_enable=yes
anon_upload_enable=yes
anon_other_write_enable=yes

5.瀏覽+下載+上傳+創建目錄+刪除
local_root=/disk/ftp/tonecan (指定FTP只能登陸到這裏)
anon_world_readable_only=no (只讀,不能下載)
write_enable=yes (可寫入)[不能單獨使用,相當於寫開關]
anon_upload_enable=yes (可上傳)
anon_other_write_enable=yes (可刪除)
anon_mkdir_write_enable=yes (可創建目錄)

6.瀏覽+下載+上傳+創建目錄+不可刪除
local_root=/disk/ftp/tonecan
anon_world_readable_only=no
write_enable=yes
anon_upload_enable=yes
anon_other_write_enable=yes
anon_mkdir_write_enable=yes
cmds_allowed=ABOR,CWD,LIST,MDTM,MKD,NLST,PASS,PASV,PORT,PWD,QUIT,RETR,RMD,RNFR,RNTO,SITE,SIZE,STOR,TYPE,USER,ACCT,APPE,CDUP,HELP,MODE,NOOP,REIN,STAT,STOU,STRU,SYST

9.查看ftp日誌

tail -f    /var/log/xferlog 
# ABOR - 取消文件傳輸
# CWD - 更改目錄
# DELE - 刪除文件
# LIST - 列目錄
# MDTM - 返回文件的更新時間
# MKD - 遠程新建文件夾
# NLST - 遠程目錄列表名稱
# PASS - 發送密碼
# PASV - 進入被動模式
# PORT - 打開一個傳輸端口
# PWD - 顯示當前工作目錄
# QUIT - 退出
# RETR - 檢索遠程下載文件
# RMD - 刪除遠程目錄
# RNFR - rename from 重命名源
# RNTO - rename to    重命名爲
# SITE - 站點特定的命令
# SIZE - 返回文件大小
# STOR - 上傳文件
# TYPE - 設置傳輸類型
# USER - 發送用戶名
# ACCT* - 發送帳戶信息
# APPE - 附加到遠程文件(續傳)
# CDUP - CWD到當前目錄的父
# HELP - 幫助
# MODE - 設置傳輸模式
# NOOP - 什麼都不做
# REIN* - 重新初始化連接
# STAT - 返回服務器狀態
# STOU - 存儲文件的唯一
# STRU - 設置文件的傳輸結構
# SYST - 返回系統類型

示例vsftp.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_file=/var/log/vsftpd.log
xferlog_std_format=YES
guest_enable=YES
guest_username=vftpuser
user_config_dir=/etc/vsftpd/vsftp_user
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
”’

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