天天看點

Vsftp安裝配置手冊(更新版)2. 系統要求3. 需要元件4. 安裝過程5. 用戶端測試

<a>1. 目标系統</a>

1. ftp功能

2. 使用者鎖定目錄

3. 上傳下載下傳可行

4. 不使用系統帳戶驗證

5. 多使用者支援

vsftpd-2.0.7

db4-devel-4.2.52-7.1

db4-4.2.52-7.1

db4-utils-4.2.52-7.1

首先下載下傳vsftp元件

解壓至目錄

#tar zxvf vsftpd-2.0.7.tar.gz

#cd vsftpd-2.0.7

清除編譯環境

#make clean

開始進入編譯預準備

#vi builddefs.h

将其中VSF_BUILD_TCPWRAPPERS、VSF_BUILD_PAM、VSF_BUILD_SSL所在行undef改為define。

在vsftpd的目錄裡編譯

#make

随後建立必要的帳号,目錄:

#useradd nobody //可能你的系統已經存在此帳号,那就不用建立

#mkdir /usr/share/empty //可能你的系統已經存在此目錄,那就不用建立

#mkdir /var/ftp //可能你的系統已經存在此目錄,那就不用建立

#useradd -d /var/ftp ftp //可能你的系統已經存在此帳号,那就不用建立

#chown root:root /var/ftp

#chmod og-w /var/ftp

請記住,如果你不想讓使用者在本地登陸,那麼你需要把他的登陸SHELL設定成/sbin/nologin,比如以上的nobody和ftp我就設定成/sbin/nologin

開始安裝

#install -m 755 vsftpd /usr/local/sbin/vsftpd-pam

#install -m 644 vsftpd.8 /usr/share/man/man8

#install -m 644 vsftpd.conf.5 /usr/share/man/man5

#install -m 644 vsftpd.conf /etc/vsftpd-pam.conf

1. 檢視系統是否有相應軟體包

#rpm –qa | grep db4

db4-utils-4.3.29-9.fc6

db4-4.3.29-9.fc6

db4-devel-4.3.29-9.fc6

如果沒有則需要安裝

2. 建立一個logins.txt的檔案,單行為使用者名,雙行為密碼

#vi /home/logins.txt

test

123456

3. 建立資料庫檔案并設定檔案屬性

#db_load -T -t hash -f /home/logins.txt /etc/vsftpd_login.db

#chmod 600 /etc/vsftpd_login.db

4. 建立認證檔案

建立檔案

#vi /etc/pam.d/ftp

并加入下面兩行

auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login

account required /lib/security/pam_userdb.so db=/etc/vsftpd_login

5. 建立一個虛拟使用者

useradd -d /home/vsftpd -s /sbin/nologin vsftpd

6. 修改配置檔案

#vi /etc/vsftpd-pam.conf

在配置檔案修改或添加以下選項

listen=YES

listen_port=21

tcp_wrappers=YES //支援tcp_wrappers,限制通路(/etc/hosts.allow,/etc/hosts.deny)

listen=YES的意思是使用standalone啟動vsftpd,而不是super daemon(xinetd)控制它 (vsftpd推薦使用standalone方式)

anonymous_enable=NO

local_enable=YES //PAM方式此處必須為YES,如果不是将出現如下錯誤:

500 OOPS: vsftpd: both local and anonymous access disabled!

write_enable=NO

anon_upload_enable=NO

anon_mkdir_write_enable=NO

anon_other_write_enable=NO

chroot_local_user=YES

guest_enable=YES

guest_username=vsftpd //這兩行的意思是采用虛拟使用者形式

virtual_use_local_privs=YES //虛拟使用者和本地使用者權限相同

pasv_enable=YES //建立資料聯機采用被動方式

anon_world_readable_only=NO

7. 啟動程式

#/usr/local/sbin/vsftpd-pam /etc/vsftpd-pam.conf &amp;

報錯:500 OOPS: bad bool value in config file for: tcp_wrappers

8. 測試連接配接

報錯:[root@lvs3 vsftpd-2.0.7]# ftp localhost

Connected to lvs3.

500 OOPS: vsftpd: cannot locate user specified in 'guest_username':vsftpd

Connected to 127.0.0.1.

220 (vsFTPd 2.0.7)

530 Please login with USER and PASS.

KERBEROS_V4 rejected as an authentication type

Name (127.0.0.1:root): pool1

331 Please specify the password.

Password:

230 Login successful.

Remote system type is UNIX.

Using binary mode to transfer files.

ftp&gt; dir

227 Entering Passive Mode (127,0,0,1,83,150)

150 Here comes the directory listing.

226 Directory send OK.

ftp&gt; quit

221 Goodbye.

1. 建立所有需要登入使用者

234567

單行為使用者名,雙行為密碼

2. 更新資料檔案

3. 配置使用者環境

#mkdir /etc/vsftpd_user_conf/

#vi /etc/vsftpd-pam.conf 加入如下語句

user_config_dir=/etc/vsftpd_user_conf

-----------------------以下為單使用者循環配置,每使用者都需要建立------------------------------

#mkdir /home/vsftpd/test

#vi /etc/vsftpd_user_conf/test

添加内容

local_root=/home/vsftpd/test

write_enable=YES

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

儲存退出

修改配置及目錄權限

# chmod 700 /home/vsftpd/test

# chown vsftpd.vsftpd /home/vsftpd/test/

---------------------------------使用者配置結束---------------------------------------

4. 測試使用者是否登入到自己目錄及上傳下載下傳正常

1. 在建立好的每個使用者/目錄下建立測試檔案兩個(檔案名不要相同);

2. 使用用戶端軟體從外部測試;

3. 分别登入兩個以上的帳号,通過察看根目錄存在檔案檢查是否引導到不同/目錄下;

4. 嘗試下載下傳測試檔案到本地;

5. 嘗試删除測試檔案;

6. 嘗試上傳檔案到測試帳号;

7. 測試完成。

    本文轉自vcdog 51CTO部落格,原文連結:http://blog.51cto.com/255361/837801,如需轉載請自行聯系原作者