一、安裝及配置檔案介紹
1、使用yum的方式即可實作。
yum -y install vsftpd
2、使用者認證配置檔案
/etc/pam.d/vsftpd
3、主配置檔案
/etc/vsftpd/vsftpd.conf
4、共享目錄的位置:/var/ftp/
二、vsfptd常用配置
1、匿名使用者的常用配置
annoymous_enable=YES #是否啟用匿名使用者
anno_upload_enable=YES #是否允許匿名使用者上傳權限
anno_mkdir_write_enable=YES #是否允許匿名使用者可建立目錄及其檔案
anno_other_write_ebable=YES #匿名使用者是否除了寫權限是否擁有删除和修改的權限
anno_world_readable_only=YES #匿名使用者是否擁有隻讀權限
no_anno_password=YES #匿名使用者是否跳過密碼檢測
anno_umask=077 #匿名使用者建立檔案的掩碼權限
2、系統使用者的配置
local_enable=YES #是否啟用本地使用者
write_enable=YES #本地使用者是否可寫
local_mask=022 #本地使用者的掩碼資訊
3、禁锢所有ftp使用者在其家目錄下
chroot_local_user=YES
4、禁锢檔案中指定的ftp本地使用者在其家目錄下
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
5、改變上傳檔案的屬主
chown_uploads=YES
chown_username=whoever
6、是否啟用控制使用者登入的清單資訊
userlist_enable=YES
userlist_deny=YES|NO
此配置檔案預設為:/etc/vsftpd/user_list
三、基于虛拟使用者的vsftpd
實驗環境:
平台:CentOS7,編譯安裝vsftpd
子產品:pam_mysql子產品
依賴關系:mariadb-devel,pam-devel
開發包:pam_mysql-0.7RC1.tar.gz
實驗步驟:
1、vsftpd依賴于pam完成認證,pam存儲支援的認證方式,vsftpd都可調用,本文使用mysql資料庫來存儲虛拟賬号資訊。
2、編譯安裝pam_mysql-07RC01.tar.gz
yum -y install mariadb-devel yum -y install pam-devel
./configure --with-pam=/usr --with-mysql=/usr --with-pam-mods-dir=/usr/lib64/security
make install
3、建立資料庫授權使用者及其表和向表中插入資料
create database vsftpd
grant all on vsftpd.* to 'vsftpd'@'localhost' identified by 'pass'
create table vsftpd.users (uid smallint unsigned not null auto_increment unique key,name varchar(39) not null,password char(48) not null)
insert into users (name,password) values('tom',password('pass')), ('lucy',password('pass')), ('jerry',password('pass')),
4、建立共享目錄及其系統賬号
mkdir -pv /ftproot/{pub,upload}
useradd -d /ftproot vuser 或則 useradd -s /sbin/nologin -M -d /ftproot/ vuser
setfacl -m u:vuser:rwx /ftproot/pub
setfacl -m u:vuer:rwx /ftproot/upload
5、建立認證pam配置檔案:/etc/pam.d/vsftpd.mysql
vi /etc/pam.d/vsftpd.mysql
auth required pam_mysql.so host=127.0.0.1 user=vsftpd passwd=mageedu db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2
account required pam_mysql.so host=127.0.0.1 user=vsftpd passwd=mageedu db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2
6、指定虛拟使用者及其指定pam.server
pam_service_name=vsftpd.mysql
guest_enable=YES
guest_username=vuser
user_config_dir=/etc/vsftpd/vuser_conf
7、配置每個虛拟不同的使用者權限
mkdir /etc/vsftpd/vusers_conf
touch username
權限配置
anno_upload_enable=YES
anno_mkdir_write_enable=YES
anno_other_write_enabel=YES
8、測試
[root@centos7 ~]# lftp 10.1.10.3 -utom
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<code>Password:</code>
<code>lftp [email protected]:~> </code><code>ls</code>
<code>drwxrwxr-x 3 0 0 29 Oct 15 04:22 pub</code>
<code>drwxrwxr-x 4 0 0 70 Oct 14 15:15 upload</code>
<code>lftp [email protected]:/> </code><code>cd</code> <code>upload</code>
<code>lftp [email protected]:</code><code>/upload</code><code>> </code><code>ls</code>
<code>-rw------- 1 1003 1003 507 Oct 14 12:08 fstab</code>
<code>-rw------- 1 1003 1003 511 Oct 14 15:15 inittab</code>
<code>-rw------- 1 1003 1003 23 Oct 14 12:55 issue</code>
<code>drwx------ 2 1003 1003 6 Oct 14 12:10 </code><code>test</code>
<code>drwx------ 2 1003 1003 6 Oct 14 12:55 testchen</code>
<code>lftp [email protected]:</code><code>/upload</code><code>> </code><code>rm</code> <code>-rf </code><code>test</code>
<code>rm</code> <code>ok, `</code><code>test</code><code>' removed</code>
<code>lftp [email protected]:</code><code>/upload</code><code>> </code><code>mkdir</code> <code>testdir</code>
<code>mkdir</code> <code>ok, `testdir' created</code>
<code>lftp [email protected]:</code><code>/upload</code><code>> put </code><code>/etc/inittab</code>
<code>511 bytes transferred</code>
<code>lftp [email protected]:</code><code>/upload</code><code>> get inittab</code>
<code>lftp [email protected]:</code><code>/upload</code><code>></code>
圖示:
<a href="http://s1.51cto.com/wyfs02/M02/88/EF/wKioL1gBwePBqUtoAABfcXaJGto413.png" target="_blank"></a>
本文轉自chengong1013 51CTO部落格,原文連結:http://blog.51cto.com/purify/1862159,如需轉載請自行聯系原作者