vsftpd安装配置

vsftpd测试服务器:

192.168.1.191

1、安装:

yum provides */vsftpd
yum install vsftpd -y

2、匿名用户最基本配置(生产上不设置匿名用户访问):

vim /etc/vsftpd/vsftpd.conf

允许匿名用户访问

anonymous_enable=YES

允许匿名用户上传文件并可以创建目录:

anon_upload_enable=YES
anon_mkdir_write_enable=YES

修改匿名目录所有者(默认是root):

chown ftp.ftp /var/ftp/pub/

设置允许匿名用户可上传可读写:

anon_other_write_enable=YES

注:如果去掉这一条,匿名用户可以创建,上传,但是不能删除。

3、启动vsftp服务:

service vsftpd start
service vsftpd stop
service vsftpd restart

4、正式部署vsftpd(废弃原来默认的ftp目录:/var/ftp):

首先修改配置文件

备份配置文件

cp -a vsftpd.conf vsftpd.conf.bak
echo "" > vsftpd.conf
vim /etc/vsftpd/vsftpd.conf

加入以下内容:

anonymous_enable=NO
write_enable=YES
chroot_local_user=YES
chroot_list_enable=YES
use_localtime=YES
local_enable=YES
allow_writeable_chroot=YES
xferlog_enable=YES
local_umask=022
pam_service_name=vsftpd
use_localtime=YES
listen_port=21
chroot_local_user=YES
idle_session_timeout=120
data_connection_timeout=120
guest_enable=YES
guest_username=ftpuser
user_config_dir=/etc/vsftpd/vuser_conf
virtual_use_local_privs=YES
pasv_min_port=10060
pasv_max_port=10090
accept_timeout=5
connect_timeout=1
ascii_upload_enable=YES
ascii_download_enable=YES

5、创建宿主用户

创建用户 ftpuser 指定 /vsftpd 目录:

useradd -g root -M -d /vsftpd -s /sbin/nologin ftpuser

设置用户 ftpuser 的密码:

passwd ftpuser
密码:
12345678

把 /vsftpd 的所有权给ftpuser.root:

chown -R ftpuser.root /vsftpd

建立虚拟用户文件:

touch /etc/vsftpd/vuser_passwd

编辑虚拟用户名单文件:

第一行账号,第二行密码,注意:不能使用root做用户名,系统保留。

vim  /etc/vsftpd/vuser_passwd

编辑内容:

ftp1
12345678
ftp2
12345678

6、生成虚拟用户数据文件

db_load -T -t hash -f /etc/vsftpd/vuser_passwd /etc/vsftpd/vuser_passwd.db
chmod 600 /etc/vsftpd/vuser_passwd.db

7、创建用户配置

mkdir /etc/vsftpd/vuser_conf # 建立虚拟用户个人vsftp的配置文件
cd /etc/vsftpd/vuser_conf # 进入目录
touch ftp1 ftp2

每个文件(ftp1和ftp2写入如下内容,local_root=/vsftpd/ftp1#这里写入这个用户的实际存储路劲):

vim ftp1
内容:
local_root=/vsftpd/ftp1
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
vim ftp2
内容:
local_root=/vsftpd/ftp2
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

8、创建用户目录

mkdir -p /vsftpd/ftp1
mkdir -p /vsftpd/ftp2

修改权限:

chown -R ftpuser.root /vsftpd/ftp1
chown -R ftpuser.root /vsftpd/ftp2

注:原来ftp安装完的默认目录/var/ftp可以废弃。

9、服务启动

systemctl restart vsftpd.service # 重启服务
systemctl start vsftpd.service # 启动服务
systemctl status vsftpd.service # 服务状态查看

10、生成虚拟用户的PAM文件

cd /etc/pam.d/
备份vsftpd文件:
cp -a vsftpd vsftpd.bak

修改vsftpd文件内容(加入第二和第三行,下面的都全部注释,注意下面是64位操作系统,如果是32位的话lib64需要改成lib):

vim vsftpd

内容:

#%PAM-1.0
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd
#session optional pam_keyinit.so force revoke
#auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
#auth required pam_shells.so
#auth include password-auth
#account include password-auth
#session required pam_loginuid.so
#session include password-auth

11、客户端调试

1.首先每次更改配置需要重启vsftpd服务。

2.上面每个配置文件中的内容最好是手动键入(曾经的我直接粘贴进去,cat就是没问题,但是粘贴进去就是不行)。

3.客户端windows打开cmd到后台进行连接,网页和资源管理器里面都会有缓存也看不到报错。

4.服务器tail -f /var/log/secure查看日志(也可以tail -f /var/log/messages,这个看不出什么,前者更精准)。

查看日志:

tail -f /var/log/secure

5.客户端报错示例(坑了我好久,它说chroot没有读到/etc/vsftpd/chroot_list这个文件,所以我们新建这个文件就行,记得重启服务)。

建立文件:

touch /etc/vsftpd/chroot_list

6.如果虚拟用户登录到自己的宿主目录后,不能上传文件的话,服务器端需要在宿主目录里面再新建一个文件夹,给这文件夹777权限,就可以了(直接把宿主目录设置777就会登录不了)。

7.新增用户的话,需要在/etc/vsftpd/vsuser.passwd里面追加用户(删除就是删除用户),

记得使用db_load重新生成vsuser.passwd文件即可,vuser_confi里面新建一个新建账户的权限文件,宿主目录记得新建存储文件。

8.建议使用ftp工具和cmd验证。

测试1:

ftp 192.168.1.191
输入:
ftp1
密码
12345678
ftp 192.168.1.191
输入:
ftp2
密码
12345678

在ftp>下输入:

user

注:输入user可以重新输入用户名和密码。

测试2:

ftp://192.168.1.191/

注:输入ftp1用户名,进入的是ftp1用户的目录(ftp1),输入ftp2用户名,进入的是ftp2用户的目录(ftp2)。

12、修改端口号(测试的时候没有修改成2121,而是用默认的21端口)

1.在/etc/vsftpd/vsftpd.conf文件中增加listen_port=21(这里默认是21)。

2.在vim /etc/services文件中修改如下内容。

ftp       21/tcp
ftp 21/udp fsp fspd

注意:上面修改的只是链接端口号,既然更改了连接端口号,别忘记访问的时候修改端口。

既然我们设置的是被动模式(服务器被动打开数据端口,只有在数据链接的时候才会使用,

下面我们用ftp工具能成功连接,当打开某个文件夹的时候(请求数据的时候),才会使用该端口,

但是我这里使用了iptables,之允许了2121通过我们设置的是10060到10090端口,具体如下)。

设置防火墙:

firewall-cmd --add-port=10060-10090/tcp --zone=public --permanent
firewall-cmd --add-port=21/tcp --zone=public --permanent
firewall-cmd --reload

注:正常情况下使用默认21端口即可,考虑到安全,可以修改为其它端口。

转载至:https://www.cnblogs.com/suixhxy/p/14916989.html

vsftpd安装配置的更多相关文章

  1. vsftpd安装配置以及常见问题解决

    vsftpd安装配置以及踩坑解决办法,Centos7 nginx已经配置成功了,但是使用http始终没办法访问到图片,那么你来对地方了(在文章末尾是原因) 配置nginx教程:http://blog. ...

  2. vsftpd 安装配置

    # vsftp 安装yum install vsftpd -y # 配置用户名密码时需要yum install db* db4* -y# 启动vsftpdservice vsftpd start # ...

  3. Linux vsftpd 安装配置使用

    1.安装 yum install vsftpd 2.配置 允许root登陆: /etc/vsftpd/user_list文件中把root那一行删除或者注释掉 /etc/vsftpd/ftpusers文 ...

  4. vsftpd 安装配置详细教程

    linux下ftp软件不少,大致特点:<br /> wu-ftp:比较老牌,但针对它的攻击比较多,设置比较麻烦,但功能比较强大.<br /> vsftpd:功能强大,配置也比较 ...

  5. Ubuntu 16.04下vsftpd 安装配置实例

    从https://www.linuxidc.com/Linux/2017-06/144807.htm转载 第一步:安装VSFTPD sudo apt-get install vsftpd 安装完成后启 ...

  6. vsftpd安装配置虚拟用户

    原文发表于cu:2016-03-11 参考文档: FTP原理:http://vbird.dic.ksu.edu.tw/linux_server/0410vsftpd_1.php FTP配置:http: ...

  7. CentOS6.5中的vsftpd安装配置

    安装ftp 1.使用chkconfig 来查看是否装有vsftpd服务: 2.使用yum命令直接安装:yum -y install vsftpd 3.然后为它创建日志文件:touch /var/log ...

  8. vsftpd安装配置 530 Permission denied.错误

    yum install vsftpd service vsftpd start 530 Permission denied.错误 /etc/vsftpd/user_list    该文件里的用户账户在 ...

  9. centOS 6.4 vsftpd 安装配置

    参考  http://blog.csdn.net/wocjj/article/details/7418944   配置说明 http://www.cnblogs.com/redhatlinux/arc ...

随机推荐

  1. BGP路由技术

    BGP路由技术 目录 一.BGP概述 1.1.自治系统 1.2.动态路由分类 1.3.BGP概念 1.4.BGP的特征 1.5.BGP工作原理 二.命令配置 2.1.BGP配置思路 2.2.命令 一. ...

  2. Devops 改变coding —— 安装个指定版本的 jenkins 发现和想象的不太一样?

    你好呀,我是小猿来也,一个刚开始折腾 Devops 的程序猿. 写在前面 前两天在池大那里看到了一段话,原话出自美团首席科学家夏华夏老师,具体内容我贴到了下面. 对于图片里的内容你们是怎么认为的呢?我 ...

  3. ES6学习笔记之字符串新增方法

    1.字符串的子串识别 传统上,Javascript 只有indexof 方法,用来确定一个字符串是否包含在另一个字符串中.如: //indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的 ...

  4. 安聊服务端Netty的应用

    Netty简介 Netty是一个面向网络编程的Java基础框架,它基于异步的事件驱动,并且内置多种网络协议的支持,可以快速地开发可维护的高性能的面向协议的服务器和客户端. 安聊简介 安聊是一个即时聊天 ...

  5. 一个SDK给我干懵逼了?大厂的SDK就这?

    活久见 .org.jboss.netty 和 io.netty 你分的清吗? 大家好,我是小猿来也,一个热衷写 bug 的程序猿. 一天我正在专心致志写 Bug 的时候,一个同事跑过来找我. 说有个很 ...

  6. 『心善渊』Selenium3.0基础 — 17、Selenium操作浏览器窗口的滚动条

    目录 1.为什么操作滚动条 2.Selenium如何操作滚动条 3.Selenium操作滚动条方法 4.操作滚动条示例 5.下拉至聚焦元素的位置 (1)实现步骤: (2)实现示例: 1.为什么操作滚动 ...

  7. POJ 1654 Area 多边形面积 G++会WA

    #include<stdio.h> #include<algorithm> #include <cstring> using namespace std; type ...

  8. CentOS-Docker搭建Nacos-v1.3.2(单点)

    说明:从v1.3.1版本开始支持自定义mysql-8.x 通用属性配置(v1.3.2) name description option MODE cluster模式/standalone模式 clus ...

  9. XCTF Hello CTF

    一.查壳 二.拖入ida x86静态分析 shift +F12找到字符串. 发现关键字please input your serial 点击进入 这是我们的主函数,F5反编译一下,看一下逻辑. 这里有 ...

  10. buu 新年快乐

    一.查壳 发现是upx的壳. 二.拖入ida,发现要先脱壳. 题外话.总结一下手动脱壳,esp定律: 1.先单步到只有esp红色时,右键数据窗口跟随. 2.到数据窗口后,左键硬件访问,byte和wor ...