Linux基礎知識(FTP服務)
一、 FTP的部署
-
安裝vsftpd
-
安裝 lftp
-
開啟vsftpd服務,並設定開機自啟動
-
檢視火牆狀態,當火牆關閉時開啟火牆,並新增lftp服務到火牆白名單
-
重新載入
-
檢視,ftp服務已經新增到火牆白名單中
-
使用ftp訪問主機(當ls有內容顯示,則代表登入成功,否則表示不成功)
-
關閉selinux
編輯getenforce 當顯示Enforcing,則代表沒有關閉,需要關閉
編輯selinux配置檔案
將selinux的狀態改為disabled
重新啟動虛擬機器
reboot
編輯getenforce檢視
二、FTP服務的資訊
- 軟體安裝包:vsftpd
協議介面:21/tcp
服務配置檔案:/etc/vsftpd/vsftpd.conf
預設釋出目錄:/var/ftp - 報錯id的解析:
550 服務本身功能未開啟
553 本地檔案系統許可權過小
530 使用者認證失敗
500 檔案系統許可權過大
三、FTP命令運用
編輯/etc/vsftpd/vsftpd.conf 進行設定
在服務端新建一個使用者,並設定密碼
-
匿名使用者
anonymous_enable=YES|NO 匿名使用者是否可以登陸
編輯 vim /etc/vsftpd/vsftpd.cof
編輯結束後重新啟動服務
將YES 改成NO
測試:
-
本地使用者
local_enable=YES|NO 本地使用者是否可以登陸
測試:
-
write_enable=YES|NO ftp是否對登陸使用者可寫
write_enable=YES 可寫
若改為write_enable=NO,則不可寫。
測試:
-
匿名使用者上傳
預設情況下,匿名使用者是不能上傳的
編輯配置檔案
修改匿名使用者目錄的所有組並給組新增可寫的許可權
測試:
-
匿名使用者家目錄修改
anon_root=/目錄
新建一個目錄/off
新增anon_root=/off
測試:
-
匿名使用者上傳檔案預設許可權的修改
anon_umask=xxx
測試:
-
匿名使用者建立目錄
anon_mkdir_write_enable=YES|NO
測試:
-
匿名使用者下載
anon_world_readable_only=YES|NO NO表示匿名使用者可以下載YES表示不可以下載
測試:
-
匿名使用者刪除
anon_other_write_enable=YES|NO
測試:
-
匿名使用者使用的使用者身份和許可權的修改
編輯配置檔案
測試:
-
最大上傳速率
anon_max_rate=102400
擷取檔案
編輯配置檔案
新增(最大上傳速率為102400)
測試:上傳速率很慢
-
最大連結數
max_clients=2 表示最多有2個可以連線
測試:
-
本地使用者家目錄修改
local root=/directory
測試:
-
本地使用者上傳檔案許可權
local umask=xxx
測試:
-
限制本地使用者登陸
vim /etc/vsftpd/ftpusers 使用者永久黑名單
測試:無法登入
-
特殊情況下使用者白名單設定
編輯該檔案
在這個檔案內並且不在 /etc/vsftpd/ftpusers 檔案內的使用者為可登陸使用者
測試:
四、FTP虛擬使用者的管理
一、ftp建立虛擬使用者
建立虛擬使用者的原因: 因為系統使用者登陸ftp服務,同時也可以登陸系統,這樣很不安全,所以我們要建立ftp虛擬使用者,使這些使用者只能登陸ftp
- 建立方式:
vim /etc/vsftpd/loginusers
寫入
westos1 使用者
123 密碼
westos2 使用者
123 密碼
westos3 使用者
123 密碼
退出
注意:編輯的時候不要有空格 - 對檔案進行hash加密
執行 db_load -T -t hash -f loginusers loginusers.db
- 編輯檔案(驗證密碼與使用者是否一致的檔案) 檔名稱任意
vim /etc/pam.d/ftpauth
寫入
account required pam_userdb.so db=/etc/vsftpd/loginusers
auth required pam_userdb.so db=/etc/vsftpd/loginusers
退出
- 編輯配置檔案 vim /etc/vsftpd/vsftpd.conf退出後重新啟動服務
修改 pam_service_name=ftpauth
新增 guest_enable=YES
- 在另一臺主機進行測試:可以看到虛擬使用者建立成功,可以登入
- 建立虛擬使用者後,本地使用者就不能正常登陸了,但是仍然可以指定本地使用者身份登陸
再次編輯配置檔案vim /etc/vsftpd/vsftpd.conf
新增guest_username=tom退出tom使用者必須存在
檢視tom使用者家目錄下的東西,如果虛擬使用者登入時可以看到以下檔案,則證明虛擬使用者登入身份修改成功
cd /home/
執行 chmod 555 tom/減小許可權
- 在另一臺主機測試:
二、虛擬使用者獨立家目錄設定
-
首先在這三個家目錄中分別建立檔案
mkdir -p /ftphome/westos{1…3}
mkdir -p /ftphome/westos1/westos1date
mkdir -p /ftphome/westos2/westos2date
mkdir -p /ftphome/westos3/westos3date
-
編輯配置檔案vim /etc/vsftpd/vsftpd.conf退出後重新啟動服務
新增:
注意:
$ USER 相當於c語言中的變數,給不同的值,輸出不同的值
user_sub_token=$ USER (將shell中$USER的用法移到ftp服務中來用)
重新啟動服務systemctl restart vsftpd
給該檔案滿許可權chmod 777 /ftphome/westos*/*
-
在令外一臺主機測試:
三、虛擬使用者許可權單獨設定
原理:虛擬使用者使用的是匿名使用者的引數控制,如果我們想讓不同的虛擬使用者有不同的權利,就必須給每個虛擬使用者設定自己的次配置檔案。
- 首先建立虛擬使用者的次目錄和次配置檔案
mkdir /etc/vsftpd/user_conf
touch /etc/vsftpd/user_conf/westos1
- 編輯次配置檔案 vim /etc/vsftpd/user_conf/westos1
寫入允許虛擬使用者執行的動作anon_upload_enable=YES退出儲存(注意:虛擬使用者的上傳引數為NO,或預設)
- 編輯配置檔案vim /etc/vsftpd/vsftpd.conf
寫入user_config_dir=/etc/vsftpd/user_conf
重新啟動服務systemctl restart vsftpd
- 在另一臺主機測試:
虛擬使用者westos1可以實現上傳功能,而westos2和westos3不行