基于本地用户管理的配置

一、 安装vsftpd

yum -y install vsftpd
chkconfig vsftpd on

二、阻止匿名访问和切换根目录

编辑 /etc/vsftpd/vsftpd.conf,找到下面两处配置并修改:

# 禁用匿名用户
anonymous_enable=NO # 禁止切换根目录
chroot_local_user=YES

三、创建用户

创建一个用户 ftpuser

useradd ftpuser

为用户 ftpuser 设置密码

echo "dAvK55EG" | passwd ftpuser --stdin

限制该用户仅能通过 FTP 访问

usermod -s /sbin/nologin ftpuser

四、为用户分配主目录

为用户 ftpuser 创建主目录并约定:

/data/ftp 为主目录, 该目录不可上传文件

/data/ftp/pub 文件只能上传到该目录下

mkdir -p /data/ftp/pub

创建登录欢迎文件 :

echo "Welcome to use FTP service." > /data/ftp/welcome.txt

设置访问权限:

chmod a-w /data/ftp && chmod 777 -R /data/ftp/pub

设置为用户的主目录:

usermod -d /data/ftp ftpuser

基于独立用户验证配置

一、 安装vsftpd

yum -y install vsftpd
chkconfig vsftpd on

二、 修改主配置文件

vi /etc/vsftpd/vsftpd.conf

# 允许匿名用户登陆,登陆时登陆名为 ftp 或 anonymous,口令为空
anonymous_enable=YES
# 允许本地用户登陆,登陆名为本地用户名,口令为本地用户的口令
local_enable=YES
# 允许本地用户写拥有FTP服务器文件的写权限
write_enable=YES
# 本地用户的文件默认掩码022,文件的默认最大权限为666,也就是上传文件的默认权限为644
local_umask=022
# 激活目录的欢迎信息功能
dirmessage_enable=YES
# 指定FTP使用20端口进行数据传输(默认FTP工作模式为被动模式,也就是PASV FTP,服务器将使用20端口与客户端进行数据传输)
connect_from_port_20=YES
# 启用上传和下载日志功能,该日志文件默认的存放位置为 /var/log/xferlog
xferlog_enable=YES
# 启用xferlog的标准格式输出
xferlog_std_format=YES
xferlog_file=/var/log/xferlog
dual_log_enable=YES
# ftp日志文件位置,需要手动touch
vsftpd_log_file=/var/log/vsftpd.log
# 以ascii模式传输数据
ascii_upload_enable=YES
ascii_download_enable=YES
# 服务器独立运行
listen=YES
# 支持ipv6
listen_ipv6=YES
# 设置PAM使用的名称,默认值为 /etc/pam.d/vsftpd
pam_service_name=vsftpd
# 启动user_list文件(该选项需与userlist_deny选项配合使用,userlist_deny默认为YES,也就是说默认请况下user_list表中的用户将被阻止登陆ftp服务器)
userlist_enable=YES
# 设置vsftpd与tcp wrapper组合来进行访问控制,YES的情况下,vsftpd将检查/etc/hosts.allow以及/etc/hosts.deny中的设置,来进行主机的访问控制
tcp_wrappers=YES
# 设定启用虚拟用户功能
guest_enable=YES
# 指定虚拟用户的宿主用户
guest_username=vftpdata
user_config_dir=/etc/vsftpd/vuser_conf

三、 设置虚拟账号认证

#安装Berkeley DB工具,提供虚拟账号管理
yum install db4 db4-utils #创建用户密码文本,注意奇行是用户名,偶行是密码
vi /etc/vsftpd/vuser_passwd.txt backup
123456 #生成虚拟用户认证的db文件
db_load -T -t hash -f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.db #编辑认证文件,全部注释掉原来语句,再增加以下两句
vi /etc/pam.d/vsftpd auth required pam_userdb.so db=/etc/vsftpd/vuser_passwd
account required pam_userdb.so db=/etc/vsftpd/vuser_passwd

四、 创建虚拟用户宿主

useradd -d /ftp_data vftpdata

五、 配置虚拟用户

#创建虚拟用户配置文件
mkdir /etc/vsftpd/vuser_conf/ #文件名等于vuser_passwd.txt里面的账户名
vi /etc/vsftpd/vuser_conf/backup #虚拟用户根目录,根据实际情况修改
local_root=/ftp_data/backup
write_enable=YES
anon_umask=022
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

剩下的可以添加PASV扩展了

六、 端口及相关安全设置(能正常登录,无法获取目录列表)

方案一:

1、修改/etc/vsftpd/vsftpd.conf的配置文件,在文件末端添加:

pasv_max_port=6666
pasv_min_port=5555
/etc/init.d/vsftpd restart

2、添加一条防火墙规则

/etc/init.d/iptables stop
iptables -I INPUT -p tcp --dport 5555:6666 -j ACCEPT
/etc/init.d/iptables save
/etc/init.d/iptables start

方案二:

添加附加模块,链接追踪模块

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
modprobe ip_conntrack_ftp //临时加载 /etc/sysconfig/iptables-config//这个是永久的
IPTABLES_MODULES="ip_conntrack_netbios_ns ip_conntrack_ftp"

vsftp 搭建及虚拟账号配置的更多相关文章

  1. 烂泥:Postfix邮件服务器搭建之虚拟用户配置

    virtual_gid_maps = static: virtual_transport = dovecot dovecot_destination_recipient_limit = 1 注意:po ...

  2. Linux安装配置vsftp搭建FTP的详细配置

    这里主要是说vsftp的配置:基础的可以参考Linux中VSFTP的配置 转自:https://www.jb51.net/article/103904.htm 修改配置文件 配置文件/etc/vsft ...

  3. Vsftp与PAM虚拟用户

    使用yum 安装vsftp yum install vsftpd pam pam-* db4 db4-* 创建一个保存用户及密码的文件 cd /etc/vsftpd/ touch virtual_lo ...

  4. 详解CentOS7安装配置vsftp搭建FTP

    安装配置vsftpd做FTP服务,我们的Web应用使用git管理进行迭代,公共文件软件存储使用开源网盘Seafile来管理,基本够用.想不到FTP的使用的场景,感觉它好像老去了,虽然现在基本没有用到这 ...

  5. linux下使用vsftp搭建FTP服务器:匿名登录,账号登录,SSL加密传输

    目录 一.关于FTP和VSFTP 二.ftp.sftp.vsftp.vsftpd的区别 三.项目一:搭建一台所有人都可以访问的通用FTP服务器 3.1 项目要求 3.2 项目思路分析 3.3 使用vs ...

  6. CentOS7 FTP服务搭建(虚拟用户访问FTP服务)

    概述 最近在搞Oracle在Linux系统下集群,针对Linux系统,笔人也是一片空白.Liunx外部文件的传输,避免不了使用FTP服务,所以现在就整理下,CentOS7环境下,FTP服务的搭建.FT ...

  7. 烂泥:ubuntu下vsftpd虚拟用户配置

    本文由ilanniweb提供友情赞助,首发于烂泥行天下 想要获得更多的文章,可以关注我微信ilanniweb. 以前搭建vsftpd都是在centos下,本以为在ubuntu按照以前的步骤搭建即可.可 ...

  8. ftp虚拟账号登陆

    配置使用虚拟用户登录的FTP服务器,可以避免使用操作系统帐号作为FTP用户带来的一些安全问题,也便于通过数据库或其它程序来进行管理.废话不多说,这里记录下ftp虚拟账号登陆的部署过程及其中遇到的问题: ...

  9. Linux下FTP虚拟账号环境部署总结

    vsftp的用户有三种类型:匿名用户.系统用户.虚拟用户.1)匿名登录:在登录FTP时使用默认的用户名,一般是ftp或anonymous.2)本地用户登录:使用系统用户登录,在/etc/passwd中 ...

随机推荐

  1. JavaScript高级程序设计学习笔记--高级技巧

    惰性载入函数 因为浏览器之间行为的差异,多数JavaScript代码包含了大量的if语句,将执行引导到正确的代码中,看看下面来自上一章的createXHR()函数. function createXH ...

  2. windows Service

    用c#中创建一个windows服务非常简单,与windows服务相关的类都在System.ServiceProcess命名空间下. 每个服务都需要继承自ServiceBase类,并重写相应的启动.暂停 ...

  3. .NET LINQ 聚合操作

    聚合操作      聚合运算从值集合计算单个值. 从一个月的日温度值计算日平均温度就是聚合运算的一个示例. 方法 方法名 说明 C# 查询表达式语法 Visual Basic 查询表达式语法 更多信息 ...

  4. (2016弱校联盟十一专场10.3) B.Help the Princess!

    题目链接 宽搜一下就行. #include <iostream> #include<cstdio> #include<cstring> #include<qu ...

  5. React学习笔记-1-什么是react,react环境搭建以及第一个react实例

    什么是react?react的官方网站:https://facebook.github.io/react/下图这个就是就是react的标志,非常巧合的是他和我们的github的编辑器Atom非常相似. ...

  6. AE开发中对GDB以及shapefile的读取、对FeatureClass的相关操作

    读取gdb方法 private void btn_Click(object sender, EventArgs e) { FolderBrowserDialog dlg = new FolderBro ...

  7. Oracle 11g新特性延迟段创建和truncate的增强

    下面测试Oracle 11g开始的新特性truncate的增强和延迟段空间创建. Oracle从11g开始,当用户创建一张空表的时候不会先分配段和空间,只有当对这张表插入第一行数据的时候才分配段和空间 ...

  8. 10月wish me luck

    10/13 明天开始的三天 就要跟历史地理化学说拜拜了 以诚待之 好运 10/20 P三角形计数:一看就是叉积.因为去年迪子讲过.但是我已经忘记了.所以重新写了一遍.把所有的点有序化,将三角形面积转化 ...

  9. SpringMVC注解@RequestParam全面解析---打酱油的日子

    在SpringMVC后台控制层获取参数的方式主要有两种,一种是request.getParameter("name"),另外一种是用注解@RequestParam直接获取.这里主要 ...

  10. 【转】Java内存管理:深入Java内存区域

    转自:http://www.cnblogs.com/gw811/archive/2012/10/18/2730117.html 本文引用自:深入理解Java虚拟机的第2章内容 Java与C++之间有一 ...