CentOS6.5配置vsftp虛擬用戶全程記錄
一、 檢查selinux是否開啓,如果開啓,請先關閉以便調試
二、創建虛擬用戶文本文件,添加虛擬用戶和密碼
cd /etc/vsftpd/
touch ftpusers.txt
編輯ftpusers.txt,設置用戶名、密碼,奇數行是用戶名,偶數是密碼
比如:
user1
123123
user2
123123
三、生成虛擬數據庫文件
如果db_load沒有安裝,yum install db4-utils db4-devel db4-4.3安裝才能使用
db_load –T –t hash –f /etc/vsftpd/ftpusers.txt /etc/vsftpd/ftpusers.db
四、 配置PAM認證
目的是對虛擬用戶進行登錄驗證
編輯/etc/pam.d/vsftpd文件,批註所有內容,後添加:
auth required pam\_userdb.so db=/etc/vsftpd/ftpusers
account required pam\_userdb.so db=/etc/vsftpd/ftpusers
不能寫成db=/etc/vsftpd/ftpusers.db
五、修改虛擬數據庫文件ftpusers.db的權限
爲 700
chmod 700 ftpusers.db
六、增加一個系統用戶ftp
使用它來對應所有虛擬用戶,虛擬用戶使用系統用戶來訪問ftp服務器。
mkdir /home/ftp
useradd -d /home/ftp ftp
chown ftp:ftp /home/ftp
usermod -s /sbin/nologin ftp
七、修改vsftpd.conf配置文件
使虛擬用戶可以訪問vsftpd服務器,增加以下參數
#註釋掉原有端口配置
#connect_from_port_20=YES
#設置獨立進程控制vsftpd
listen=YES
#修改端口vsft接入端口
listent_port=9999
#設置vsftp可隨機佔用的端口
pasv_max_port=8000
pasv_min_port=7000
#激活虛擬賬戶
guest_enable=YES
#把虛擬賬戶綁定爲系統賬戶ftp
guest_username=ftp
#使用PAM驗證
pam_service_name=vsftpd
"="兩邊不能有空格,請把所有註釋、空格全部刪掉,只留下文字和換行
八、 設置虛擬用戶的主配置文件
編輯vsftpd.conf文件,添加:
user_config_dir=/etc/ftp/ftp_user_conf
九、建立ftp_user_conf
mkdir /etc/ftp/ftp_user_conf
十、設置虛擬用戶配置文件
與虛擬賬戶同名
touch /etc/ftp/ftp_user_conf/user1
編輯虛擬賬戶user1的配置文件user1,使虛擬賬戶user1獲得相應的權限,內容如下:
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_umask=022
local_root=/home/ftp/user1
anon_world_readable_only=NO是否只讀
anon_upload_enable=YES允許上傳
anon_mkdir_write_enable=YES允許創建和刪除目錄
anon_other_write_enable=YES允許重命名和刪除文件
anon_umask=022配置上傳文件的默認權限
local_root=/home/ftp/user1
"="兩邊不能有空格,請把所有註釋、空格全部刪掉,只留下文字和換行
配置iptables
vim /etc/sysconfig/iptables
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
#ssh端口
-A INPUT -p tcp -m tcp --dport 111 -j ACCEPT
-A OUTPUT -p tcp -m tcp --sport 111 -j ACCEPT
#允許迴環網卡所有端口,讓php-fpm正常運行
-A INPUT -i lo -j ACCEPT
#允許本機訪問外網
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
#允許分配給vsftp的隨機端口
-A INPUT -p tcp -m tcp --dport 7000:8000 -j ACCEPT
COMMIT
附錄:
本次使用配置:
vsftpd.conf中:
listen_port指定ftp端口,修改前需先註釋掉系統默認配置的20端口
tcp_wrappers實現主機訪問控制
guest_enable允虛擬用戶
guest_username指定虛擬用戶映射的系統用戶
pam_service_name系統認證的服務名,vsftp的服務名就是vsftpd
user_config_dir指定虛擬用戶配置文件目錄
虛擬用戶名單ftpusers.txt:
虛擬用戶user1配置文件
vsftpd.conf部分解釋:
一:進程類別優化:
1.listen=YES/NO
設置獨立進程控制vsftpd
二:登錄和訪問控制選項優化:
1.anonymous_enable=YES/NO
允許/禁止匿名用戶登陸
2.banned_email_file=/etc/vsftpd/vsftpd.banned_emails
允許/禁止郵件的使用的存放路徑和目錄
配合使用:deny_email_enable=YES/NO
允許/禁止匿名用戶使用郵件作爲密碼
3.banner_file=/etc/vsftp/banner_file
在文件banner_file添加歡迎詞即可
4.cmds_allowed=HELP,DIR,QUIT,!
列出被允許使用的FTP命令
5.ftpd_banner=welcome to ftp server
和第三條一樣是歡迎詞屏幕,方法不一樣
6.local_enable=YES/NO
允許/禁止本地用戶登陸
7.pam_service_name=vsftpd
使用pam模塊進行ftp客戶端的驗證
8.userlist_deny=YES/NO
禁止/允許文件列表user_list的用戶訪問ftp服務器
配合使用:userlist_file=/etc/vsftpd/user_list
用戶列表文件
配合使用:userlist_enable=YES/NO
激活/失效第8條的功能
9.tcp_wrappers=YES/NO
啓用/不啓用tcp_wrappers控制服務訪問的功能
三:匿名用戶選項的優化:
1.anon_mkdir_write_enable=YES/NO
允許/禁止匿名用戶創建目錄、刪除文件
2.anon_root=/path/to/file
設置匿名用戶的根目錄,默認是/var/ftp/ 3.anon_upload_enable=YES/NO
允許/禁止匿名用戶上傳
4.anon_world_readable_only=YES/NO
禁止/允許匿名用戶瀏覽目錄和下載
5:ftp_username=anonftpuser
把匿名用戶綁定到系統用戶名
6:no_anon_password=YES/NO
不需要/需要匿名用戶的登錄密碼
四:本地用戶選項的優化:
1.chmod_enable=YES/NO
允許/禁止本地用戶修改文件權限
2.chroot_list_enable=YES/NO
啓用/不啓用禁錮本地用戶在家目錄
3.chroot_list_file=/path/to/file
建立禁錮用戶列表文件,一行一個用戶
4.guest_enable=YES/NO
激活/不激活虛擬用戶
5.guest_username=系統實體用戶
把虛擬用戶綁定在某個實體用戶上
6.local_root=/path/to/file
指定或修改本地用戶的根目錄
7.local_umask=具體權位數字
設置本地用戶新建文件的權限
8.user_config_dir=/path/to/file
激活虛擬用戶的的主配置文件
五:目錄選項的優化:
1.text_userdb_names=YES/NO
啓用/禁用用戶的名稱取代用戶的UID
六:文件傳輸選項優化:
1.chown_uploads=YES/NO
啓用/禁用修改匿名用戶上傳文件的權限
chown_username=賬戶
指定匿名用戶上傳文件的所有者
2.write_enable=YES/NO
啓用/禁止用戶的寫權限
max_clients=數字
設置FTP服務器同一時刻最大的連接數
4.max_per_ip=數字
設置每ip的最大連接數
七:網絡選項的優化:
1.anon_max_rate=數字
設置匿名用戶最大的下載速率(單位字節)
2.local_max_rate=數字
設置本地用戶最大的下載速率