热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

centos7搭建vsftpd环境详解[亲测成功]

centos7搭建vsftpd环境详解(亲测)标签:centos7vsftpd分类:linux相关(关于cen

centos7搭建vsftpd环境详解(亲测)


标签: centos7vsftpd



 分类:



初学Linux,各种被虐,经过各种折腾,终于成功在centosos7上搭建好了vsftpd,把操作过程写出来,供大家参考!


#-------------------------------------------------------------------

#   实现的目标及场景:

#   在centos7上搭建ftp环境,配置vsftpd

#   创建账号Fuser,dongzhu【多个账号】并使用该账号登录

#   使用被动模式,端口区间:40000-41000

#-------------------------------------------------------------------

一:安装Vsftpd软件

安装vsftpd,并设置开机启动

[plain] view plaincopy
print?
  1. #yum install -y vsftpd  
  2.   
  3. #systemctl start vsftpd.service  
  4.   
  5. #systemctl enable vsftpd.service  

二:配置vsftpd环境

执行下边的命令,一行一行来。

[plain] view plaincopy
print?
  1. #sed -i "s/anonymous_enable=YES/anonymous_enable=NO/g" '/etc/vsftpd/vsftpd.conf'  
  2.   
  3. #sed -i "s/#anon_upload_enable=YES/anon_upload_enable=NO/g" '/etc/vsftpd/vsftpd.conf'  
  4.   
  5. #sed -i "s/#anon_mkdir_write_enable=YES/anon_mkdir_write_enable=YES/g" '/etc/vsftpd/vsftpd.conf'  
  6.   
  7. #sed -i "s/#chown_uploads=YES/chown_uploads=NO/g" '/etc/vsftpd/vsftpd.conf'  
  8.   
  9. #sed -i "s/#async_abor_enable=YES/async_abor_enable=YES/g" '/etc/vsftpd/vsftpd.conf'  
  10.   
  11. #sed -i "s/#ascii_upload_enable=YES/ascii_upload_enable=YES/g" '/etc/vsftpd/vsftpd.conf'  
  12.   
  13. #sed -i "s/#ascii_download_enable=YES/ascii_download_enable=YES/g" '/etc/vsftpd/vsftpd.conf'  
  14.   
  15. #sed -i "s/#ftpd_banner=Welcome to blah FTP service./ftpd_banner=Welcome to FTP service./g" '/etc/vsftpd/vsftpd.conf'  
  16.   
  17. #echo -e "use_localtime=YES\nlisten_port=21\nchroot_local_user=YES\nidle_session_timeout=300  
  18.   
  19. #\ndata_connection_timeout=1\nguest_enable=YES\nguest_username=Fuser  

  1. #\ndata_connection_timeout=1\nguest_enable=YES\nguest_username=dongzhu  


  1.   
  2. #\nuser_config_dir=/etc/vsftpd/vconf\nvirtual_use_local_privs=YES  
  3.   
  4. #\allow_writeable_chroot=YES  
  5.   
  6. #\npasv_min_port=40000\npasv_max_port=41000  
  7.   
  8. #\naccept_timeout=5\nconnect_timeout=1" >> /etc/vsftpd/vsftpd.conf  

三:创建ftp用户

创建用户Fuser,一些写教程登录终端是/bin/false,我卡这半天,具体可以搜它和nologin的区别

[plain] view plaincopy
print?
  1. #useradd Fuser -d /wwwroot -s /sbin/nologin  
  2.   
  3. #chown Fuser.Fuser /wwwroot -R  
  4.   
  5. #passwd dongzhu  

  1. #useradd dongzhu -d /wwwroot -s /sbin/nologin  
  2.   
  3. #chown dongzhu.dongzhu /wwwroot -R  
  4.   
  5. #passwd dongzhu  


四:重启vsftp服务

[plain] view plaincopy
print?
  1. systemctl restart vsftpd.service  

注意,这里是centos的关于vsftp重启,以前的命令在这不管用!如果开了防火墙,记得把相应的端口添加进去,本场环境中涉及21,40000-41000


可能会用到的:

彻底删除用户:#userdel -rf Fuser   //强制删除用户及相关目录文件 

变更用户属性:#usermod -s /sbin/nologin Fuser

查看当前服务:#netstat -lntp


附:端口防火墙例外(端口放行)配置方法

1.centos7版本对防火墙进行 加强,不再使用原来的iptables,启用firewall

1.查看已开放的端口(默认不开放任何端口)
firewall-cmd --list-ports
2.开启80端口
firewall-cmd --zone=public(作用域) --add-port=80/tcp(端口和访问类型) --permanent(永久生效)
3.重启防火墙
firewall-cmd --reload
4.停止防火墙
systemctl stop firewalld.service
5.禁止防火墙开机启动
systemctl disable firewalld.service
6.删除
firewall-cmd --zone= public --remove-port=80/tcp --permanent

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

2.centos7以下版本

1.开放80,22,8080 端口
/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
/sbin/iptables -I INPUT -p tcp --dport 22 -j ACCEPT
/sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
2.保存
/etc/rc.d/init.d/iptables save
3.查看打开的端口
/etc/init.d/iptables status
4.关闭防火墙
1) 永久性生效,重启后不会复原
开启: chkconfig iptables on
关闭: chkconfig iptables off
2) 即时生效,重启后复原
开启: service iptables start
关闭: service iptables stop

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
同时附上另一篇安装指南供参考

CentOS7安装和配置FTP

1. 安装vsftpd

#安装vsftpd
yum install -y vsftpd
#设置开机启动
systemctl enable vsftpd.service
# 重启
service vsftpd restart
# 查看vsftpd服务的状态
systemctl status vsftpd.service

 


2. 配置vsftpd.conf

#备份配置文件
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak#执行以下命令
sed -i "s/anonymous_enable=YES/anonymous_enable=NO/g" '/etc/vsftpd/vsftpd.conf'sed -i "s/#anon_upload_enable=YES/anon_upload_enable=NO/g" '/etc/vsftpd/vsftpd.conf'sed -i "s/#anon_mkdir_write_enable=YES/anon_mkdir_write_enable=YES/g" '/etc/vsftpd/vsftpd.conf'sed -i "s/#chown_uploads=YES/chown_uploads=NO/g" '/etc/vsftpd/vsftpd.conf'sed -i "s/#async_abor_enable=YES/async_abor_enable=YES/g" '/etc/vsftpd/vsftpd.conf'sed -i "s/#ascii_upload_enable=YES/ascii_upload_enable=YES/g" '/etc/vsftpd/vsftpd.conf'sed -i "s/#ascii_download_enable=YES/ascii_download_enable=YES/g" '/etc/vsftpd/vsftpd.conf'sed -i "s/#ftpd_banner=Welcome to blah FTP service./ftpd_banner=Welcome to FTP service./g" '/etc/vsftpd/vsftpd.conf'#添加下列内容到vsftpd.conf末尾
use_localtime
=YES
listen_port
=21
chroot_local_user
=YES
idle_session_timeout
=300
guest_enable
=YES
guest_username
=vsftpd
user_config_dir
=/etc/vsftpd/vconf
data_connection_timeout
=1
virtual_use_local_privs
=YES
pasv_min_port
=10060
pasv_max_port
=10090
accept_timeout
=5
connect_timeout
=1

 


3. 建立用户文件

#第一行用户名,第二行密码,不能使用root为用户名
vi /etc/vsftpd/virtusers
chris
123456
chang
123456

 


4. 生成用户数据文件

db_load -T -t hash -f /etc/vsftpd/virtusers /etc/vsftpd/virtusers.db#设定PAM验证文件,并指定对虚拟用户数据库文件进行读取chmod 600 /etc/vsftpd/virtusers.db

 


5. 修改/etc/pam.d/vsftpd文件

# 修改前先备份 cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak# 将auth及account的所有配置行均注释掉
vi /etc/pam.d/vsftpdauth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusersaccount sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers# 如果系统为32位,上面改为lib

 


6. 新建系统用户vsftpd,用户目录为/home/vsftpd

#用户登录终端设为/bin/false(即:使之不能登录系统)
useradd vsftpd
-d /home/vsftpd -s /bin/false
chown -R vsftpd:vsftpd /home/vsftpd

 


7.建立虚拟用户个人配置文件

mkdir /etc/vsftpd/vconf
cd
/etc/vsftpd/vconf#这里建立两个虚拟用户配合文件
touch chris chang#建立用户根目录
mkdir -p /home/vsftpd/chris/#编辑chris用户配置文件,内容如下,其他用户类似
vi chrislocal_root=/home/vsftpd/chris/
write_enable
=YES
anon_world_readable_only
=NO
anon_upload_enable
=YES
anon_mkdir_write_enable
=YES
anon_other_write_enable
=YES

 


8. 防火墙设置

vi /etc/sysconfig/iptables
#编辑iptables文件,添加如下内容,开启21端口
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT

 

9. 重启vsftpd服务器

service vsftpd restart

 


10. 使用xftp等软件连接测试




推荐阅读
  • 如何自行分析定位SAP BSP错误
    The“BSPtag”Imentionedintheblogtitlemeansforexamplethetagchtmlb:configCelleratorbelowwhichi ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 成功安装Sabayon Linux在thinkpad X60上的经验分享
    本文分享了作者在国庆期间在thinkpad X60上成功安装Sabayon Linux的经验。通过修改CHOST和执行emerge命令,作者顺利完成了安装过程。Sabayon Linux是一个基于Gentoo Linux的发行版,可以将电脑快速转变为一个功能强大的系统。除了作为一个live DVD使用外,Sabayon Linux还可以被安装在硬盘上,方便用户使用。 ... [详细]
  • 本文介绍了Python爬虫技术基础篇面向对象高级编程(中)中的多重继承概念。通过继承,子类可以扩展父类的功能。文章以动物类层次的设计为例,讨论了按照不同分类方式设计类层次的复杂性和多重继承的优势。最后给出了哺乳动物和鸟类的设计示例,以及能跑、能飞、宠物类和非宠物类的增加对类数量的影响。 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • 如何查询zone下的表的信息
    本文介绍了如何通过TcaplusDB知识库查询zone下的表的信息。包括请求地址、GET请求参数说明、返回参数说明等内容。通过curl方法发起请求,并提供了请求示例。 ... [详细]
  • Android系统源码分析Zygote和SystemServer启动过程详解
    本文详细解析了Android系统源码中Zygote和SystemServer的启动过程。首先介绍了系统framework层启动的内容,帮助理解四大组件的启动和管理过程。接着介绍了AMS、PMS等系统服务的作用和调用方式。然后详细分析了Zygote的启动过程,解释了Zygote在Android启动过程中的决定作用。最后通过时序图展示了整个过程。 ... [详细]
  • 基于Socket的多个客户端之间的聊天功能实现方法
    本文介绍了基于Socket的多个客户端之间实现聊天功能的方法,包括服务器端的实现和客户端的实现。服务器端通过每个用户的输出流向特定用户发送消息,而客户端通过输入流接收消息。同时,还介绍了相关的实体类和Socket的基本概念。 ... [详细]
  • 本文讲述了如何通过代码在Android中更改Recycler视图项的背景颜色。通过在onBindViewHolder方法中设置条件判断,可以实现根据条件改变背景颜色的效果。同时,还介绍了如何修改底部边框颜色以及提供了RecyclerView Fragment layout.xml和项目布局文件的示例代码。 ... [详细]
  • 本文介绍了在Linux下安装Perl的步骤,并提供了一个简单的Perl程序示例。同时,还展示了运行该程序的结果。 ... [详细]
  • 本文介绍了三种方法来实现在Win7系统中显示桌面的快捷方式,包括使用任务栏快速启动栏、运行命令和自己创建快捷方式的方法。具体操作步骤详细说明,并提供了保存图标的路径,方便以后使用。 ... [详细]
  • 本文介绍了在mac环境下使用nginx配置nodejs代理服务器的步骤,包括安装nginx、创建目录和文件、配置代理的域名和日志记录等。 ... [详细]
  • Spring学习(4):Spring管理对象之间的关联关系
    本文是关于Spring学习的第四篇文章,讲述了Spring框架中管理对象之间的关联关系。文章介绍了MessageService类和MessagePrinter类的实现,并解释了它们之间的关联关系。通过学习本文,读者可以了解Spring框架中对象之间的关联关系的概念和实现方式。 ... [详细]
author-avatar
蒋易之
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有