基于vsftpd搭建项目文件服务器
vsftpd 是“very secure FTP daemon”的缩写,安全性是它的一个最大的特点。vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux、BSD、Solaris、 HP-UNIX等系统上面,是一个完全免费的、开放源代码的ftp服务器软件,支持很多其他的 FTP 服务器所不支持的特征。比如:非常高的安全性需求、带宽限制、良好的可伸缩性、可创建虚拟用户、支持IPv6、速率高等。
流程概要
- 关闭防火墙及selinux
- 安装vsftpd
- 创建vsftpd的映射账户
- 创建虚拟用户目录及配置文件
- 创建数据库认证文件
- 修改pam认证
- 修改vsftpd配置文件
1.关闭防火墙及selinux
1.1关闭系统防火墙
# 停止防火墙
systemctl stop firewalld.service
# 关闭防火墙
systemctl disable firewalld.service1.2关闭selinux
查询是否开启了selinux
sestatus显示enabled就说明SELinux是开着的,我们需要关掉。
临时关闭
setenforce 0永久关闭
vi /etc/selinux/config将SELINUX=enforcing改为SELINUX=disabled
修改后保存退出,然后重启Linux系统,重启命令:reboot或init 0
2.安装vsftpd
2.1检查ftp
此命令检查是否安装过vsftpd
rpm -qa |grep vsftpd如果有安装过其他ftp,怕影响的可以执行下面
rpm -qa |grep ftp查询到后执行下方命令卸载
yum remove vsftpd -yvsftpd是查询到ftp的比喻,如果是其他ftp请修改成其他ftp的包名。
2.2安装vsftpd
yum install vsftpd -y3.创建映射账户
useradd vsftpd -d /vsftpd -s /bin/false/bin/false禁止此账户登录系统
4.创建虚拟用户及配置文件
4.1创建虚拟用户
vi /etc/vsftpd/vftpusers创建一个虚拟用户配置文件,文件名为vftpusers,里面填虚拟用户的用户名及密码,奇数行为用户名,偶数行为密码,例如:
admin
admin创建了一个用户名和密码都为admin的用户,本文将以虚拟用户admin举例
4.2创建虚拟用户目录
mkdir -p /vsftpd/adminadmin可替换为创建虚拟用户文件vftpusers时填写的用户名
有几个用户就创建几个,创建完成后执行下方命令将虚拟用户的目录所有者改为vsftpd这个账户
chown -R vsftpd:vsftpd /vsftpd4.3创建虚拟用户配置文件
创建一个文件夹存放虚拟用户的配置文件
mkdir /etc/vsftpd/userconf创建虚拟用户的配置文件
touch /etc/vsftpd/userconf/admin编辑此配置文件
vi /etc/vsftpd/userconf/admin添加如下代码,其中admin为4.2步骤中创建的文件夹
local_root=/vsftpd/admin
write_enable=YES
anon_umask=022
anon_world_readable_only=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES注意:不能有多余的空格
配置对应含义如下
# 设置登录后禁锢的目录 xxx可修改为/etc/vsftpd/vftpusers内设置的用户且创建了虚拟用户目录。
local_root=/vsftpd/xxx
# 开放写权限
write_enable=YES
# 掩码
anon_umask=022
# 开放下载权限
anon_world_readable_only=YES
# 开放上传权限
anon_upload_enable=YES
# 开放创建目录的权限
anon_mkdir_write_enable=YES
# 开放删除和重命名的权限
anon_other_write_enable=YES5.生成数据库认证文件
db_load -T -t hash -f /etc/vsftpd/vftpusers /etc/vsftpd/vftpusers.db
chmod 600 /etc/vsftpd/vftpusers.db6.pam认证
cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak
vi /etc/pam.d/vsftpd注释里面所有的内容,在最后添加以下内容
auth required pam_userdb.so db=/etc/vsftpd/vftpusers
account required pam_userdb.so db=/etc/vsftpd/vftpusers7.修改vsftpd配置文件
vi /etc/vsftpd/vsftpd.conf配置文件(可直接替换)
#是否允许匿名登录
anonymous_enable=NO
#是否允许本地登录
local_enable=YES
#是否允许任何更改文件系统的FTP命令
write_enable=YES
#掩码
local_umask=022
#如果设置为YES,则允许匿名用户在特定条件下上载文件。
#anon_upload_enable=YES
#如果设置为YES,则允许匿名用户在特定条件下创建新目录
#anon_mkdir_write_enable=YES
#FTP服务器的用户首次进入新目录时可以显示消息
dirmessage_enable=YES
#如果启用,将维护一个日志文件,详细说明上载和下载。
xferlog_enable=YES
#这可以控制PORT样式数据连接是否在服务器计算机上使用端口20(ftp-data)。
connect_from_port_20=YES
#如果启用,则所有匿名上载的文件的所有权都将更改为设置chown_username中指定的用户。
#chown_uploads=YES
#这是获得匿名上传文件所有权的用户的名称。
#chown_username=whoever
#编写wu-ftpd样式传输日志的文件的名称。
#xferlog_file=/var/log/xferlog
#传输日志文件将以标准xferlog格式写入,如wu-ftpd所使用。
xferlog_std_format=YES
#超时(以秒为单位),即远程客户端在FTP命令之间可能花费的最长时间。
#idle_session_timeout=600
#超时(以秒为单位),大致是我们允许数据传输停止而没有进度的最长时间。
#data_connection_timeout=120
#这是vsftpd在完全没有特权的情况下使用的用户名。
#nopriv_user=ftpsecure
#启用后,将启用称为“异步ABOR”的特殊FTP命令。
#async_abor_enable=YES
#启用后,上传时将遵循ASCII模式数据传输。
ascii_upload_enable=YES
#启用后,下载时将遵循ASCII模式数据传输。
ascii_download_enable=YES
#欢迎信息
#ftpd_banner=Welcome to blah FTP service.
#如果激活,您可能会提供一个匿名密码电子邮件响应列表,导致登录被拒绝。
#deny_email_enable=YES
#此选项是包含不允许的匿名电子邮件密码列表的文件的名称。
#banned_email_file=/etc/vsftpd/banned_emails
#禁止用户访问除主目录以外的目录
chroot_local_user=YES
#是否启用例外名单
#chroot_list_enable=YES
#默认名单目录文件
#chroot_list_file=/etc/vsftpd/chroot_list
#如果启用,vsftpd将以独立模式运行。
listen=YES
#与listen参数一样,除了vsftpd将侦听IPv6套接字而不是IPv4套接字。此参数和listen参数是互斥的。
#listen_ipv6=YES
#此字符串是vsftpd将使用的PAM服务的名称。
pam_service_name=vsftpd
#如果启用,vsftpd将从userlist_file给出的文件名加载用户名列表。
userlist_enable=YES
#如果启用,并且vsftpd是使用tcp_wrappers支持编译的,则传入连接将通过tcp_wrappers访问控制提供。
tcp_wrappers=YES
#开启虚拟用户
guest_enable=YES
#主虚拟用户名
guest_username=vsftpd
#虚拟用户配置
user_config_dir=/etc/vsftpd/userconf
allow_writeable_chroot=YES修改内容(可自行根据内容修改)
# 修改
anonymous_enable=NO
listen=YES
# 取消注释
ascii_upload_enable=YES
ascii_download_enable=YES
chroot_local_user=YES
# 注释
listen_ipv6=YES
# 添加
guest_enable=YES
guest_username=vsftpd
user_config_dir=/etc/vsftpd/userconf
allow_writeable_chroot=YES8.常用vsftpd命令
# 开机自启动
systemctl enable vsftpd
# 启动vsftpd
systemctl start vsftpd
# 重启vsftpd
systemctl restart vsftpd
# 停止vsftpd
systemctl stop vsftpd
# 关闭vsftpd
systemctl disable vsftpd9.如果同一个ftp账号想访问多个不同目录,可以使用挂载实现
mount --bind /opt/software/ /home/ftp1
mount --bind /usr/local/openresty/nginx/html /vsftpd/admin/文件服务器/**原型库
mount --bind /mnt/ /home/ftp1
基于vsftpd搭建项目文件服务器的更多相关文章
- Linux下基于vsftpd搭建ftp服务器
1.先用检查是否已经安装rpm -qa| grep vsftpd2.然后再进行在线安装vsftpd这个服务yum install vsftpd -y3.修改vi /etc/vsftpd/vsftpd. ...
- windows环境下基于nginx搭建rtmp服务器
基于nginx搭建rtmp服务器需要引入rtmp模块,引入之后需重新编译nginx linux环境几个命令行就能实现编译,笔者未尝试,网上有很多教程. windows环境还需要安装一系列的编译环境,例 ...
- 在阿里云主机上基于CentOS用vsftpd搭建FTP服务器
最近需要在一台阿里云的云服务器上搭建FTP服务器,在这篇博文中分享一下我们根据实际需求进行的一些配置. ftp软件用的是vsftpd. vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序 ...
- 【腾讯云服务器】基于centos7搭建ftp服务器(vsftpd)
该博客分为三部分设置,1.ftp服务器搭建.2.防火墙设置 3.腾讯云安全组 一.ftp服务器搭建 1.1 安装vsftpd yum install vsftpd -y 1.2 启动vsftpd服 ...
- 基于openssl搭建https服务器
1. 搭建web环境 我这里使用源码编译安装方式安装httpd.详情可以参加我的一篇博客http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_linux_1 ...
- Nginx+vsftpd搭建图片服务器
安装Nginx 参考:http://www.cnblogs.com/idefav2010/p/nginx-concat.html Nginx配置文件 location ~ .*\.(gif|jpg|j ...
- 基于Docker搭建GitLab服务器
运行环境:CentOS 7.4 一.安装Docker Docker安装可以参照runoob教程(http://www.runoob.com/docker/centos-docker-install.h ...
- ubuntu VSFTPD搭建FTP服务器 提示530错误
配置完 vsftpd ,发现不能登录,提示 530 错误.解决方法如下: sudo rm /etc/pam.d/vsftpd 注:因为 ubuntu 启用了 PAM,所在用到 vsftp 时需要用到 ...
- 基于licode搭建webrtc服务器
0. 前言 licode官网文档安装教程十分简单, 但是实际搭建过程是很艰辛的. 官方文档没有提示说会遇到什么样的问题, 实际过程中可能遇到各种各样的问题, 在解决的时候费时费力, 我就总结一下自己在 ...
- 基于 BaGet 搭建 Nuget 服务器
1 前言 1.1 BaGet 介绍 BaGet 是一个轻量级的,开源的,跨平台的 Nuget 和 symbol 服务器. 1.2 环境介绍 操作系统:CentOS 7 使用 Docker 安装 2 安 ...
随机推荐
- C 语言编程 — 堆栈与内存管理
目录 文章目录 目录 前文列表 栈(Stack)和堆(Heap) 栈 堆 内存管理 动态分配内存 重新调整内存的大小和释放内存 前文列表 <程序编译流程与 GCC 编译器> <C 语 ...
- mySql脚本转换成sqlserver脚本(主流数据库的脚本都能转换,需要使用powerdesigner)
我使用的powerdesginer版本是16.5,只需要脚本文件就可以了,不需要安装mysql和sqlserver. 文件->反向工程->Database... 选择原脚本文件的数据库类型 ...
- django多表关联实战
定义模型类: from django.db import models from django.contrib.auth.models import User ''' ---------- Djang ...
- Android 13 - Media框架(8)- MediaExtractor
关注公众号免费阅读全文,进入音视频开发技术分享群! 上一篇我们了解了 GenericSource 需要依赖 IMediaExtractor 完成 demux 工作,这一篇我们就来学习 android ...
- RTOS官方文档学习
任务与协程 区别 一个程序可以只有任务.只有协程.二者都有,但不可以通过队列/信号量互相传递数据 任务特点 任务之间可以互相独立 每个任务分配自己的堆栈,提高了RAM使用率 操作简单.按优先级抢占式执 ...
- UML建模工具Astah Pro 8破解教程2022最新最详细版
(2022最新最详细版)UML建模工具Astah Pro 8破解教程 本文作者严正声明:拒绝盗版行为,打击盗版,痛恨吃白食的家伙,我一直都是坚定思想,有钱了一定要支持正版,所以此文档贡献,只为学习交流 ...
- Lru在Rust中的实现, 源码解析
LRU(Least Recently Used)是一种常用的页面置换算法,其核心思想是选择最近最久未使用的页面予以淘汰. LRU算法原理 基本思想:LRU算法基于一个假设,即如果一个数据在最近一段时间 ...
- redux中集成immutable.js
安装redux-immutable redux中利用combineReducers来合并reducer并初始化state,redux自带的combineReducers只支持state是原生js形式的 ...
- runliuv MSDN I TELL YOU
runliuv MSDN I TELL YOU 老站点:WIN SEVER ,VISUAL STUDIO 早期版本 老站点:https://msdn.itellyou.cn/ 新站点:最近的WIN10 ...
- 太卷了,史上最简单的监控系统 catpaw 简介
指标监控的痛点 当下比较流行的监控系统,比如 Prometheus.Nightingale.VictoriaMetrics,都是基于数值型指标的监控系统,这类监控系统的痛点在于:告警的时候只能拿到异常 ...