3.3 ftp服務配置

1. vsftpd配置

vsftpd配置

/etc/pam.d/vsftpd       //vsftpd用戶認證配置文件
/etc/vsftpd/            //配置文件目錄
/etc/vsftpd/vsftpd.conf     //主配置文件

//匿名用戶(映射爲ftp用戶)的共享資源位置是/var/ftp
//系統用戶通過ftp訪問的資源位置爲用戶的家目錄
//虛擬用戶通過ftp訪問的資源位置爲給虛擬用戶指定的映射成爲的系統用戶的家目錄

1.1 安裝vsftpd

[root@yusyang ~]# yum -y install vsftpd

1.2 vsftpd的配置文件vsftpd.conf的參數

vsftpd常見的配置參數

參數 作用
anonymous_enable=YES 啓用匿名用戶登錄
anon_upload_enable=YES 允許匿名用戶上傳
anon_mkdir_write_enable=YES 允許匿名用戶創建目錄,但是不能刪除
anon_other_write_enable=YES 允許匿名用戶創建和刪除目錄
local_enable=YES 啓用本地用戶登錄
write_enable=YES 允許本地用戶有寫權限
local_umask=022 通過ftp上傳文件的默認遮罩碼
chroot_local_user=YES 禁錮所有的ftp本地用戶於其家目錄中
chroot_list_enable=YES 開啓禁錮文件列表
需要與chroot_list_file參數一起使用
chroot_list_file=/etc/vsftpd/chroot_list 指定禁錮列表文件路徑
在此文件裏面的用戶將被禁錮在其家目錄中
allow_writeable_chroot=YES 允許被禁錮的用戶家目錄有寫權限
xferlog_enable=YES 是否啓用傳輸日誌,記錄ftp傳輸過程
xferlog_std_format=YES 傳輸日誌是否使用標準格式
xferlog_file=/var/log/xferlog 指定傳輸日誌存儲的位置
chown_uploads=YES 是否啓用改變上傳文件屬主的功能
chown_username=whoever 指定要將上傳的文件的屬主改爲哪個用戶
此用戶必須在系統中存在
pam_service_name=vsftpd 指定vsftpd使用/etc/pam.d下的
哪個pam配置文件進行用戶認證
userlist_enable=YES 是否啓用控制用戶登錄的列表文件:
默認爲/etc/vsftpd/user_list文件
userlist_deny=YES 是否拒絕userlist指定的列表文件中存在的用戶登錄ftp
max_clients=# 最大併發連接數
max_per_ip=# 每個IP可同時發起的併發請求數
anon_max_rate 匿名用戶的最大傳輸速率,單位是“字節/秒”
local_max_rate 本地用戶的最大傳輸速率,單位是“字節/秒”
dirmessage_enable=YES 啓用某目錄下的.message描述信息
假定有一個目錄爲/upload,在其下創建一個文件名爲.message,
在文件內寫入一些描述信息,則當用戶切換至/upload目錄下時會自動顯示.message文件中的內容
message_file 設置訪問一個目錄時獲得的目錄信息文件的文件名,默認是.message
idle_session_timeout=600 設置默認的斷開不活躍session的時間
data_connection_timeout=120 設置數據傳輸超時時間
ftpd_banner=“Welcome to chenlf FTP service.” 定製歡迎信息,登錄ftp時自動顯示

2. 配置匿名用戶ftp

2.1 關閉防火牆

[root@yusyang ~]# systemctl stop firewalld
[root@yusyang ~]# setenforce 0

2.2 配置vsftpd.conf文件配置

[root@yusyang ~]# vim /etc/vsftpd/vsftpd.conf 	
......
anonymous_enable=YES			//允許匿名用戶登錄
anon_upload_enable=YES			//允許匿名用戶上傳
anon_mkdir_write_enable=YES			//允許匿名用戶創建目錄,但是不能刪除
......
[root@yusyang ~]# systemctl restart vsftpd		//重新啓動vsftpd服務

3. 配置虛擬用戶ftp

3.1 關閉防火牆

[root@yusyang ~]# systemctl stop firewalld
[root@yusyang ~]# setenforce 0

3.2 配置虛擬用戶

//創建文本格式的用戶名、密碼列表,例如若要添加兩個用戶tom、jerry,密碼分別爲123、456
[root@yusyang ~]# cat >/etc/vsftpd/vu.list <<EOF
> tim
> 123
> jerry
> 456
> EOF

//安裝db4工具
[root@wangqing ~]# yum -y install db4*

//將剛創建的文本格式用戶名、密碼文件使用db4工具轉換成數據庫文件
[root@wangqing ~]# db_load -T -t hash -f /etc/vsftpd/vu.list /etc/vsftpd/vu.db
//上面的-T表示轉換,-t表示加密方式使用hash算法加密

//爲提高虛擬用戶帳號文件的安全性,應將文件權限設置爲600,以避免數據外泄
[root@wangqing ~]# chmod 600 /etc/vsftpd/vu.*
[root@wangqing ~]# ll /etc/vsftpd/vu.*
-rw-------. 1 root root 12288 Aug  2 15:53 /etc/vsftpd/vu.db
-rw-------. 1 root root    18 Aug  2 15:50 /etc/vsftpd/vu.list

//添加虛擬用戶的映射帳號、創建ftp根目錄。例如要將使用的ftp根目錄設置爲/var/ftp, \
//映射帳號的名稱爲vftp,可以執行以下操作
[root@wangqing ~]# useradd -d /var/ftp -s /sbin/nologin vftp
[root@wangqing ~]# chmod 755 /var/ftp/
[root@wangqing ~]# ll -d /var/ftp/
drwxr-xr-x. 2 vftp vftp 62 Aug  2 15:56 /var/ftp/

//爲虛擬用戶建立PAM認證
[root@wangqing ~]# cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak
[root@yusyang ~]# cat > /etc/pam.d/vsftpd<<EOF
> #%PAM-1.0
> auth required pam_userdb.so db=/etc/vsftpd/vu
> account required pam_userdb.so db=/etc/vsftpd/vu
> EOF

//修改vsftpd配置文件,添加虛擬用戶支持
[root@wangqing ~]# echo 'guest_enable=YES' >> /etc/vsftpd/vsftpd.conf
[root@wangqing ~]# echo 'guest_username=vftp' >> /etc/vsftpd/vsftpd.conf

//爲不同的虛擬用戶建立獨立的配置文件
[root@wangqing ~]# echo 'user_config_dir=/etc/vsftpd/vusers_dir' >> /etc/vsftpd/vsftpd.conf
[root@wangqing ~]# echo 'allow_writeable_chroot=YES' >> /etc/vsftpd/vsftpd.conf

//在/etc/vsftpd/vusers_dir目錄中爲每個虛擬用戶分別建立配置文件
[root@wangqing ~]# mkdir /etc/vsftpd/vusers_dir

//設置tom用戶可上傳文件、創建目錄
[root@wangqing ~]# echo 'anon_upload_enable=YES' >> /etc/vsftpd/vusers_dir/tom
[root@wangqing ~]# echo 'anon_mkdir_write_enable=YES' >> /etc/vsftpd/vusers_dir/tom

//設置jerry用戶只有默認的下載權限,只需要創建一個名爲jerry的空文件即可
[root@localhost ~]# touch /etc/vsftpd/vusers_dir/jerry

//注意:虛擬用戶是通過匿名訪問的,所以必須開啓匿名訪問功能!!!

//啓動服務
[root@localhost ~]# systemctl start vsftpd

3.3 客戶端測試

[root@localhost ~]# ftp 192.168.80.128
Connected to 192.168.80.128 (192.168.80.128).
220 (vsFTPd 3.0.2)
Name (192.168.80.128:root): tim
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> pwd
257 "/"
ftp> cd ..		//驗證是否鎖定用戶目錄
250 Directory successfully changed.
ftp> pwd
257 "/"
ftp> mkdir tim
257 "/tim" created
ftp> ls
227 Entering Passive Mode (192,168,80,128,173,152).
150 Here comes the directory listing.
drwx------    2 1031     1031            6 Nov 07 09:10 tim
226 Directory send OK.

4.創建系統用戶ftp

4.1 創建用戶

[root@yusyang ~]# useradd tom
[root@yusyang ~]# echo '123456' |passwd --stdin tom

4.2 關閉防火牆

[root@yusyang ~]# systemctl stop firewalld
[root@yusyang ~]# setenforce 0

4.3 配置vsftpd.conf

[root@yusyang ~]# vim /etc/vsftpd/vsftpd.conf 
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/home/tom
allow_writeable_chroot=YES

//重啓服務
[root@yusyang ~]# systemctl restart vsftpd

4.4 驗證本地用戶是否被禁錮和是否可以創建

[root@localhost ~]# ftp 192.168.80.128
Connected to 192.168.80.128 (192.168.80.128).
220 (vsFTPd 3.0.2)
Name (192.168.80.128:root): tom
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> pwd
257 "/"
ftp> cd ..
250 Directory successfully changed.
ftp> pwd
257 "/"
ftp> ls
227 Entering Passive Mode (192,168,80,128,226,125).
150 Here comes the directory listing.
226 Directory send OK.
ftp> mkdir kl
257 "/kl" created
ftp> ls
227 Entering Passive Mode (192,168,80,128,149,95).
150 Here comes the directory listing.
drwxr-xr-x    2 1031     1031            6 Nov 07 11:16 kl
226 Directory send OK.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章