1. 程式人生 > >centos7 安裝vsftpd安裝和配置以及虛擬用戶權限分配

centos7 安裝vsftpd安裝和配置以及虛擬用戶權限分配

vsftpd

系統環境 centos7.3 版本

ftp 根目錄 : /data/ftp
ftp 配置文件目錄:/etc/vsftpd
ftp 虛擬用戶權限配置文件目錄:/etc/vsftpd/vuser_config

實現目標:

1,匿名用戶可以登錄,但是不能訪問虛擬用戶的宿主目錄,只能訪問共享目錄
2,虛擬用戶對自己的宿主目錄有任何權限,且只能在自己宿主目錄中操作


1,安裝vsftpd和db_load加密工具


1

2

3

4

5

6

#要關閉selinux 和防火墻或者開啟允許的端口,不然訪問會有問題

sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/‘ /etc/selinux/config #修改配置文件

setenforce 0 #臨時關閉

systemctl stop firewalld.service #關閉防火墻

yum install vsftpd db4-utils -y

2,創建本地用戶[用於映射虛擬用戶]


1

2

3

4

5

6

7

#建立ftp用戶目錄

mkdir -p /data/ftp

#創建用戶

useradd -d /data/ftp vuser -s /sbin/nologin

更改權限和主組權限

chmod 755 /data/ftp

chown vuser.root /data/ftp

3,創建虛擬用戶[用戶和密碼]文件


1

2

3

4

5

vim /etc/vsftpd/vuser-list

jin [用戶名]

123456 [密碼]

jinc [用戶名]

123123 [密碼]

4,加密用戶密碼文件生成數據庫文件


1

2

3

4

cd /etc/vsftpd/

db_load -T -t hash -f ./vuser-list ./vuser-list.db

chmod 600 vuser-list.db

5,創建PAM認證文件


1

2

3

4

vim /etc/pam.d/vuser.vu

auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser-list #註意64位系統寫/lib64這個路徑,32位系統要寫成/lib,下同!

account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser-list

6,修改配置文件


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

vim /etc/vsftpd/vsftpd.conf

#允許匿名用戶訪問

anonymous_enable=yes

local_enable=YES

write_enable=YES

local_umask=022

dirmessage_enable=YES

xferlog_enable=YES

connect_from_port_20=YES

xferlog_file=/var/log/xferlog

xferlog_std_format=YES

listen=NO

listen_ipv6=YES

#修改ftp默認目錄到/data/ftp下面

chroot_local_user=YES

local_root=/data/ftp

anon_root=/data/ftp

#pam認證文件

pam_service_name=vuser.vu

#虛擬用戶權限配置目錄

user_config_dir=/etc/vsftpd/vuser_config

userlist_enable=YES

tcp_wrappers=YES

allow_writeable_chroot=YES

one_process_model=NO

#開啟虛擬用戶

guest_enable=YES

guest_username=vuser

重啟vsftpd服務

systemctl restart vsftpd.service

7,創建虛擬用戶[權限]配置文件


1

2

3

4

5

6

7

8

9

10

11

12

13

14

cd /etc/vsftpd/vuser_config

vim jin [有所有權限]

local_root=/data/ftp/jin #設置登錄後禁錮的目錄

write_enable=yes #開放寫權限

anon_world_readable_only=no #開放下載權限

anon_upload_enable=yes #開放上傳權限

anon_mkdir_write_enable=yes #開放創建目錄的權限

anon_other_write_enable=yes #開放刪除和重命名的權限

vim jinc [只有上傳下載的權限]

local_root=/data/ftp/jinc

anon_upload_enable=yes

anon_world_readable_only=no

8,更改虛擬用戶目錄權限

1

2

3

#如果不更改的話,匿名用戶是可以訪問到的

chmod 700 jin

chmod 700 jinc

9,訪問測試:[先在用戶文件夾中建個測試的文件夾或文件,方便識別]

匿名訪問

技術分享

登錄jin 用戶訪問:

技術分享

登錄jinc 用戶訪問:

技術分享


錯誤1:226 Transfer done (but failed to open directory)
解決:selinux 和防火墻導致

錯誤2:500 OOPS: vsftpd: refusing to run with writable root inside chroot()
解決:配置文件中加入 allow_writeable_chroot=YES 針對標準vsftpd(standonly)模式, 然後重啟ftp


本文出自 “jinchuang” 博客,請務必保留此出處http://jinchuang.blog.51cto.com/8690689/1947579

centos7 安裝vsftpd安裝和配置以及虛擬用戶權限分配