linuxFtpServer

搭建vsftp服务器

201服务器搭建ftp服务器

环境ubuntu16.04

一、安装并建立用户

sudo apt-get update

sudo apt-get install vsftpd

vsftpd –version //检测是否安装

sudo groupadd ftpusers //创建ftpusers用户组

sudo useradd -m ftpuser//创建一个用户并且自动创建家目录为/home/ftpuser

usermod -G ftpusers ftpuser //将这个新用户加入到ftpusers用户组中

sudo passwd ftpuser //更改密码

mkdir /home/ftpuser/dev_new //为用户添加一个具有一定权限的文件夹

chmod 777 -R /home/ftpuser/dev_new //新建一个dev_new目录用于存放文件,并且赋予全部权限,因为vsftp不运行将根目录作为可访问的目录

usermod -s /sbin/nologin username //限制用户登录方式;限制用户username只能通过ftp登陆,而不能直接登陆服务器,或者直接改/etc/passwd文件

二、改配置文件,连接不成功

vim /etc/vsftp.conf 改动这几行

write_enable=YES

ftpd_banner=Welcome to BIOS FTP service.

chroot_local_user=YES        //对本地用户是否实施限制

chroot_list_enable=YES       //开启限制白名单

chroot_list_file=/etc/vsftpd.chroot_list        //白名单路径,若无这个文件需要自己创建

utf8_filesystem=YES  

并且vim /etc/vsftpd.chroot_list 写入ftpuser用户

ufw allow 21

service vsftpd restart 访问失败,报口令错误

三、找到原因一

绕开linux的pam认证,将/etc/pam.d/vsftpd文件里的required改为optional

auth    optional        pam_listfile.so

auth    optional        pam_shells.so

因为/etc/vsftp.conf 中有pam_service_name=vsftpd 这一行

service vsftpd restart filezalli访问失败,list目录失败

四、找到原因二

改为被动模式,在vsftp文件中加入

pasv_enable=YES

pasv_min_port=30000

pasv_max_port=30010

命令行执行 ufw allow 30000:30010/tcp

service vsftpd restart filezalli访问失败,仍然是list目录失败

五、找到原因三

在命令行用ftp xxx.201访问,输入用户名口令报错 500 OOPS: vsftpd: refusing to run with writable root inside chroot()

vim /etc/vsftp.conf文件,加入 allow_writeable_chroot=YES

service vsftpd restart filezalli访问成功

六、将原vsftpd配置文件和改动后的文件进行比较

diff /etc/vsftpd.conf.well /etc/vsftpd.conf

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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63

31c31

< #write_enable=YES

---

> write_enable=YES

103c103

< #ftpd_banner=Welcome to blah FTP service.

---

> ftpd_banner=Welcome to BIOS FTP service.

114c114

< #chroot_local_user=YES

---

> chroot_local_user=YES

123c123

< #chroot_list_enable=YES

---

> chroot_list_enable=YES

125c125

< #chroot_list_file=/etc/vsftpd.chroot_list

---

> chroot_list_file=/etc/vsftpd.chroot_list

155c155,162

< #utf8_filesystem=YES

---

> utf8_filesystem=YES

>

> pasv_enable=YES

>

> pasv_min_port=30000

> pasv_max_port=30010

>

> allow_writeable_chroot=YES

七、将原认证模块文件和改动后的文件进行比较

diff /etc/pam.d/vsftpd.well /etc/pam.d/vsftpd

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

2c2

< authrequiredpam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed

---

> authoptionalpam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed

10c10

< authrequiredpam_shells.so

---

> authoptionalpam_shells.so

八、总结

用ftp命令行方式报错信息更清晰!

ruixia,sun wechat
生活相关,请扫描wechat帐号获取更多精彩内容。。。。。。
0%