記錄一下自已做vsftp的經過
一、安裝vsftp,首先得有安裝包,預設在系統CD光牒的中有,rhel4中在第一張CD光牒中,名稱為:vsftpd-2.0.1*;
在centos中直接用yum指令 :yum -y install vsftpd* ;yum -y install db4*
查詢一下是否安裝
#rpm -q vsftpd (結 果顯示未安裝)
#rpm -ivh vsftpd-2.0.1*.rpm
#grep -v '#' /etc/vsftpd/vsftpd.conf
#cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
#vi /etc/vsftpd/vsftpd.conf
anonymous_anonymous_enable=yes
local_enable=yes
write_enable=yes
local_umask=022
dirmessage_enable=yes
xferlog_enable=yes
connect_from_port_20=yes
xferlog_std_format=yes
listen=yes
chroot_local_user=yes (鎖定使用者目錄,不讓其切換)
guest_enable=yes (添加需拟使用者配置項)
guest_username=virtual (添加需拟使用者配置項)
user_config_dir=/etc/vsftpd_user_conf
pam_service_name=vsftpd.vu (預設為vsftpd,目錄在/etc/pam.d/vsftpd)
userlist_enable=yes
tcp_wrappers=yes
保出退出
建立虛拟使用者
#vi longins.txt (建立虛拟使用者密碼檔案)
rose
123456pw
allen
pw123456
儲存退出
#db_load -t -t hash -f longins.txt /etc/vsftpd/vsftpd_login.db (生成vsftpd的認證檔案,這裡可能會出現問題,如沒有安裝db4的rpm包)
#chmod 600 /etc/vsftpd/vsftpd_login.db (給檔案授予隻對root使用者有讀寫的權限)
#vi /etc/pam.d/vsftpd.vu ( 建立虛拟使用者所需的pam配置檔案)
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
添加這兩行,儲存退出
(如果使用預設的認證檔案,其目錄/etc/pam.d/vsftpd,将以上兩行添加在最上面,或者将其餘内容注釋掉)
#useradd -d /home/ftpsite virtual (建立虛拟使用者及要通路的目錄并設定相應的權限,賬号為 virtual,
指定的宿主目錄為/home/ftpsite,設定目錄權限為700)
#chmod 700 /home/ftpsite
(對不同虛拟使用者設定不同的權限)
#mkdir /etc/vsftpd_user_conf (建立主配置檔案,這項需要在/etc/vsftpd/vsftpd.conf中添加
user_config_dir=/etc/vsftpd_user_conf
#vi /etc/vsftpd_user_conf/rose (設定rose使用者的權限,為浏覽、下載下傳的權限)
anon_world_readable_on
ly=no
#vi /etc/vsftpd_user_conf/allen (設定allen的權限,為上傳、浏覽、下載下傳、改名、删除、建立檔案的權 限)
anon_world_readable_only=no
anon_upload_enable=yes
anon_mkdir_write_enable=yes
anon_other_write_enable=yes
重新開機vsftp服務
service vsftpd restart
分别用兩個使用者測試,ok
配置ip通路限制
首先在linux下,特别是沒有圖形界面的情況下配置伺服器真的是很痛苦..
1、如何限制ip可以通路ftp
在/etc/hosts.allow添加
vsftpd:192.168.1.4(具體根據你允許通路ftp的ip)
在/etc/hosts.deny添加
vsftpd:all
2、關于上傳檔案權限為600問題
在/etc/vsftpd/vsftpd.conf添加file_open_mode=0775(設定為你想要的mode即可)
網上很多文章對這個問題都答不到要點,害得我整了半天
3、pasv和port模式
如果您的ftp伺服器防火牆不友善開放端口段的話,我建議你最好還是不要使用pasv
如果要使用被動模式的話,在伺服器防火牆要開放對應的端口
例如pasv_min_port=50000
pasv_max_port=60000
你就要在/etc/sysconfig/iptables添加-a input -p tcp -m tcp --dport 50000:60000 -j accept
4、所有配置項都是采用key=value格式“=”左右不能有空格,所有單詞全部小寫
5、如果要把使用者限制在他的對應目錄裡
chroot_local_user=no
chroot_list_enable=yes
#以上兩行将虛拟使用者限制在其目錄下,不能通路其他目錄,或者直接用
chroot_local_user=yes
listen=yes #監聽/被動模式
listen_port=21 #監聽端口
chroot_list_file=/etc/vsftpd/vsftpd.chroot_list #虛拟使用者名單儲存在檔案/etc/vsftpd/vsftpd.chroot_list 中
user_config_dir=/etc/vsftpd/vsftpd_user_conf #每個虛拟使用者名的更加詳細的培植儲存在/etc/vsftpd/vsftpd_user_conf 中
虛拟使用者其他設定
在/etc/vsftpd/vsftpd.chroot_list 檔案中寫入允許登陸的虛拟使用者名稱,每行一個
在/etc/vsftpd/vsftpd_user_conf 檔案夾中建立一個以虛拟使用者使用者名命名的檔案,
寫入:local_root = /var/ftp/子目錄名
然後在/var/ftp下建立一個對應的目錄即可