匿名訪問的FTP服務
(一)安裝軟件包
rpm -ivh /mnt/iso/Packages/vsftpd-2.2.2-11.el6_4.1.x86_64.rpm //安裝FTP服務包
(二)修改配置文件
chown ftp /var/ftp/pub/ //把屬主改爲ftp,使匿名用戶對該目錄有寫入權限
cd /etc/vsftpd
cp vsftpd.conf vsftpd.conf.back //備份主配置文件(以防萬一嘛!)
grep -v "#" vsftpd.conf | grep -v "^#" > 123//過濾主配置文件(看着友好嘛!)
mv -f 123 vsftpd.conf//覆蓋原主配置文件
vi /etc/vsftpd/vsftpd.conf //打開主配置文件
---------全局配置-----------(可選擇的調用)
write_enable=YES //啓用任何形式的寫入權限(如上傳刪除文件等)都需要開啓此項
listen=YES //是否以獨立運行的方式監聽服務
dirmessage_enable=YES //用戶切換進入目錄時顯示.message文件(如果存在)的內容
xferlog_enable=YES //啓用xferlog日誌,默認記錄到/var/log/xferlog
xferlog_std_format=YES //啓用標準的xferlog日誌格式,若禁用此項,將使用vsftpd自己的日誌格式
connect_from_port_20=YES //允許服務器主動模式從20端口建立連接
pam_service_name=vsftpd //設置用於用戶認證的PAM文件位置(/etc/pam.d目錄中對應的文件名)
tcp_wrappers=YES //是否啓用TCP_wrappers 主機訪問控制
listen_address=192.168.1.10 //只在一個接口監聽服務
listen_port=2121 //監聽端口改爲520(原爲21)
--------允許使用FTP服務器的被動模式----------
pasv_enable=YES //允許被動模式連接
pasv_max_port=24500 //指定被動模式的上限端口
pasv_min_port=24600 //指定被動模式的下限端口
-----------限制FTP的併發數---------
max_clients=20 //限制併發客戶連接最多20個
Max_per_ip=2 //限制每個IP地址的連接數最多兩個(即用時下載或上傳的文件數量)
--------匿名用戶配置---------
anonymous_enable=YES//是否開放FTP匿名訪問(默認就可以匿名訪問)
anon_upload_enable=YES //是否允許匿名用戶上傳文件
anon_umask=022//設置匿名用戶所上傳文件和目錄反掩碼值(即文件爲644,目錄爲755)anon_mkdir_write_enable=YES //是否允許匿名用戶有創建目錄的寫入權限
anon_other_write_enable=YES //是否允許匿名用戶有其它寫入權限,如對文件改名、覆蓋及刪除文件等
anon_max_rate=10000 //限制匿名用戶傳輸速率爲10kB/s(單位爲B)
(三)測試匿名FTP服務器
1.用FTP客戶端工具(FileZilla)
2.電腦地址欄URL訪問
ftp://192.168.1.20
用戶驗證FTP服務
(一)新建本地用戶
useradd -s /sbin/nologin jack //不用登陸系統
passwd jack
(二)修改配置文件
-------本地用戶配置-------
chroot_local_user=yes//是否將所有的宿主目錄禁錮在其宿主目錄中
local_enable=YES //是否允許本地系統用戶訪問
local_umask=022 //設置本地用戶所上傳文件和目錄反掩碼值(即文件爲644,目錄爲755)
local_max_rate=20000 //限制本地用戶傳輸速率爲20kB/s(單位爲B)
(三)測試本地用戶FTP服務
和匿名用戶驗證方法一樣,在此不做詳解!!
(四)使用user_list用戶列表文件
1.修改user_list 配置文件
vi /etc/vsftpd/ftpusers //黑名單,優先於user_list,但當配置了虛擬用戶後不生效,只有user_list文件生效
vi /etc/vsftpd/user_list //只允許jack,tom,登陸FTP服務器,匿名用戶也不可以登陸
jack
tom
2.修改主配置文件
-------本地用戶配置-------
userlist_enable=YES //是否啓用user_list用戶列表文件
userlist_deny=NO //是否禁止user_list列表文件中的用戶賬號
基於虛擬用戶的FTP服務
(一)建立虛擬用戶的賬號數據庫
1.安裝db_load工具
rpm -ivh /mnt/iso/Packages/db4-utils-4.7.25-18.el6_4.x86_64.rpm
2創建文本格式的用戶名、密碼列表
vi /etc/vsftpd/vuser.list
xiao//奇數行爲賬號
123//偶數行爲密碼
3.創建Berkley DB格式的數據庫文件
cd /etc/vsftpd
db_load -T -t hash -f vuser.list vuser.db
file vuser.db //查看轉換後的文件類型
chmod 600 vuser* //將文件權限設爲600,以免數據外泄
4.添加虛擬用戶的映射賬號、創建FTP根目錄
useradd -d /var/ftproot -s /sbin/nologin xiaohang
chmod 755 /var/ftproot
(二)爲vsftpd服務添加虛擬用戶支持
1.爲虛擬用戶建立PAM認證文件(可參考PAM默認認證文件/etc/pam.d/vsftpd)
vi /etc/pam.d/authentication
auth required pam_userdb.so db=/etc/vsftpd/vuser
account required pam_userdb.so db=/etc/vsftpd/vuser
2.修改主配置文件添加虛擬用戶支持
vi /etc/vsftpd/vsftpd.conf
local_enable=YES //是否允許本地系統用戶訪問
anon_umask=022 //設置本地用戶所上傳文件和目錄反掩碼值(即文件爲644,目錄爲755)
write_enable=YES //啓用任何形式的寫入權限(如上傳刪除文件等)都需要開啓此項
pam_service_name=authentication//指定PAM認證文件(即vi /etc/pam.d/authentication)
guest_enable=YES //啓用用戶映射功能
guest_username=xiaohang//指定映射的系統用戶名(用戶可不用登系統)
3.重啓服務,驗證虛擬用戶登錄
service vsftpd restart
!注,如果開啓了user_list用戶列表,虛擬用戶必須加入列表才能正常登錄FTP服務器(即tom1、tom2、tom3)
(三)爲不同的虛擬用戶在不同家目錄建立不同的配置文件
例:
tom1 家目錄在 /var/ftproot/tom1 tom1要求只有讀取權限
tom2 家目錄在 /var/ftproot/tom2tom2要求只有讀取和上傳權限,上傳目錄權限爲644
tom3 家目錄在 /var/ftproot/tom3 tom3有所有權限(讀取,上傳,命名,刪除,建文件夾),上傳權限爲644
1. 修改vsftpd.conf主配置文件
vi /etc/vsftpd/vsftpd.conf
------匿名配置------
anonymous_enable=YES
---------本地用戶配置--------
user_config_dir=/etc/vsftpd/vdir
2. 創建虛擬目錄vdir中創建三個虛擬用戶配置文件
mkdir /etc/vsftpd/vdir
touch /etc/vsftpd/vdir/tom1 /etc/vsftpd/vdir/tom2 /etc/vsftpd/vdir/tom3
3.分別給虛擬用戶tom1、tom2、tom3創建家目錄
mkdir /var/ftproot/tom1 /var/ftproot/tom2 /var/ftproot/tom3
chown -R xiaohang.xiaohang /var/ftproot/ //把家目錄屬主、屬組,遞歸改爲虛擬映射用戶
4. 配置各虛擬用戶
tom1 的配置
vi /etc/vsftpd/vdir/tom1
local_root=/var/ftproot/tom1
tom2 的配置
vi /etc/vsftpd/vdir/tom1
anon_upload_enable=YES
anon_umask=022
local_root=/var/ftproot/tom2
tom3 的配置
vi /etc/vsftpd/vdir/tom1
anon_mkdir_write_enable=YES
anon_upload_enable=YES
anon_other_write_enable=YES
local_root=/var/ftproot/tom3
anon_umask=022
5.重啓服務驗證
service vsftps restart
注!開啓了虛擬用戶後本地用戶將失效,匿名用戶可以正常訪問