天天看點

vsftp

記錄一下自已做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下建立一個對應的目錄即可

繼續閱讀