標籤:
一、vsftp安裝
一般在CentOS上都自動安裝了vsftd,若沒有安裝則可以使用以下步驟進行安裝
[[email protected] yum.repos.d]# yum install vsftpd[[email protected] ~]# chkconfig vsftpd on[[email protected] ~]# service vsftpd start# 清空iptables,並關閉iptables和selinux[[email protected] ~]# iptables -F # 清空iptables規則[[email protected] ~]# iptables -L -nvChain INPUT (policy ACCEPT 40 packets, 3328 bytes) pkts bytes target prot opt in out source destination Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination Chain OUTPUT (policy ACCEPT 25 packets, 3208 bytes) pkts bytes target prot opt in out source destination[[email protected] ~]# service iptables stop # 關閉防火牆iptables: Setting chains to policy ACCEPT: filter [ OK ]iptables: Flushing firewall rules: [ OK ]iptables: Unloading modules: [ OK ][[email protected] ~]# chkconfig iptables off # 設定iptables開機不啟動# 關閉selinux[[email protected] ~]# sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/g‘ /etc/sysconfig/selinux[[email protected] ~]# shutdown -r now
二、匿名/系統使用者配置測試
[[email protected] ~]# useradd -s /sbin/nologin shaw[[email protected] ~]# passwd shaw
預設,安裝好vsftp,匿名使用者(只可下載)和系統使用者(完全許可權)就可以訪問
因為系統使用者登入ftp,即在自己家目錄中,所有具備全部許可權
更改系統帳號ftp主目錄,對使用者限速
[[email protected] ~]# vim /etc/vsftpd/vsftpd.conf local_root=/var/ftp/pub # 更改系統使用者主目錄local_max_rate=1024000 # 系統使用者限速1MB(上傳和下載)[[email protected] ~]# service vsftpd restart[[email protected] ~]# chmod o+w /var/ftp/pub # 加許可權,可以上傳和刪除(ftp許可權,由dir許可權和ftp許可權共同控制)
此時系統使用者登入ftp,就在‘/var/ftp/pub’目錄下,需要什麼樣的許可權,手工添加
三、vsftpd虛擬使用者配置測試
1. 編輯設定檔vi /etc/vsftpd/vsftpd.conf
[[email protected] ~]# touch /var/log/vsftpd.log # 建立vsftp的記錄檔[[email protected] ~]# vim /etc/vsftpd/vsftpd.confanonymous_enable=NO #設定不允許匿名訪問local_enable=YES #設定本機使用者可以訪問chroot_list_enable=YES #使使用者不能離開主目錄xferlog_file=/var/log/vsftpd.log #設定vsftpd的服務日誌pam_service_name=vsftpd #PAM"認證檔案"名,PAM將根據/etc/pam.d/vsftpd進行認證# Vsftpd虛擬使用者支援服務配置,預設vsftpd.conf中不包含這些設定項目,需要自己手動添加guest_enable=YES #設定啟用虛擬使用者功能。guest_username=ftp #指定虛擬使用者的宿主使用者。系統中已經有內建的"ftp"使用者了user_config_dir=/etc/vsftpd/vuser_conf #設定虛擬使用者個人vsftp的設定檔存放路徑。存放虛擬使用者個人化的設定檔名,應和虛擬使用者名稱相同
2. 建立chroot_list,將使用者ftp加入其中
[[email protected] ~]# touch /etc/vsftpd/chroot_list[[email protected] ~]# echo ftp >> /etc/vsftpd/chroot_list
3. 進行虛擬使用者認證配置
安裝Berkeley DB工具,後面找不到db_load的問題就是沒有安裝這個軟體包的原因
[[email protected] ~]# yum install db4 db4-utils
建立使用者密碼檔案vuser_passwd.txt
[[email protected] ~]# vi /etc/vsftpd/vuser_passwd.txt # #注意奇數行是使用者名稱,偶數行是密碼ftpuserq.123456
產生虛擬使用者認證的db檔案
[[email protected] ~]# db_load -T -t hash -f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.db
編輯認證檔案/etc/pam.d/vsftpd,全部注釋掉原來語句,並增加以下兩行
[[email protected] ~]# vi /etc/pam.d/vsftpd#%PAM-1.0#session optional pam_keyinit.so force revoke#auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed#auth required pam_shells.so#auth include password-auth#account include password-auth#session required pam_loginuid.so#session include password-authauth required pam_userdb.so db=/etc/vsftpd/vuser_passwdaccount required pam_userdb.so db=/etc/vsftpd/vuser_passwd
建立虛擬使用者服務設定檔
[[email protected] ~]# mkdir /etc/vsftpd/vuser_conf[[email protected] ~]# vi /etc/vsftpd/vuser_conf/ftpuser # 設定檔名和使用者名稱相同,每行配置最後,不能有空格,否則啟動時報錯local_root=/var/ftp/pub # 虛擬使用者的根目錄(根據實際修改)write_enable=YES # 可寫anon_umask=022 # 掩碼anon_max_rate=1024000 # 限速1MBanon_world_readable_only=NO anon_upload_enable=YES anon_mkdir_write_enable=YESanon_other_write_enable=YES[[email protected] ~]# mkdir /var/ftp/ftpuser # 給剛建立的使用者建立目錄[[email protected] ~]# chown -R ftp /var/ftp/ftpuser # 設定目錄許可權
4.重新啟動vsftp服務
[[email protected] ~]# service vsftpd restart
基於vsftpd部署ftp服務(centos/rhel)