基于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 -y
vsftpd是查询到ftp的比喻,如果是其他ftp请修改成其他ftp的包名。
2.2安装vsftpd
yum install vsftpd -y
3.创建映射账户
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/admin
admin可替换为创建虚拟用户文件vftpusers时填写的用户名
有几个用户就创建几个,创建完成后执行下方命令将虚拟用户的目录所有者改为vsftpd这个账户
chown -R vsftpd:vsftpd /vsftpd
4.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 安 ...
随机推荐
- JDK源码阅读-------自学笔记(七)(二维数组的浅析)
实际开发中一般最多使用到二维数组,再高很少使用 二维数组很少用,实际开发中会使用容器代替使用 1.创建二维数组 1 // 二维数组初始化 2 int[][] secondDimensional = n ...
- OAI SDR LTE 基站部署
目录 文章目录 目录 硬件设备要求 物料购买 部署架构图 安装 LTE/EPC 前期准备 运维相关 操作系统要求 内核要求 CPU Frequency scaling,将 CPU 频率打满 eNode ...
- Java学习之旅(day.09)
封装 把数据包装起来,给你能看的,不能看的包装起来不让你看 该露的露,该藏的藏 程序设计要求"高内聚,低耦合". 高内聚指类的内部数据操作细节自己完成,不允许外部干涉: 低耦合指仅 ...
- flask-wtf和WTForms官网翻译详解
https://flask-wtf.readthedocs.io/en/stable/# https://wtforms.readthedocs.io/en/2.3.x/ 介绍: wtformflas ...
- vmware迁移虚拟机
迁移 1.打开"VMware",点击"虚拟机详细信息"可以看到虚拟机的储存路径. 2. 按照储存路径找到虚拟机文件位置,将整个虚拟机文件复制,粘贴到需要转移的路 ...
- Swoole 源码分析之 Timer 定时器模块
原文首发链接:Swoole 源码分析之 Timer 定时器模块 大家好,我是码农先森. 引言 Swoole 中的毫秒精度的定时器.底层基于 epoll_wait 和 setitimer 实现,数据结构 ...
- Newtonsoft.Json 首字母小写
// 首字母小写 JsonSerializerSettings jsonSerializerSettings = new JsonSerializerSettings(); jsonSerialize ...
- itest(爱测试)开源接口测试&敏捷测试&极简项目管理 7.1.0 发布,ui优化及bug修复
(一)itest 简介及更新说明 itest 开源敏捷测试管理,testOps 践行者,极简的任务管理,测试管理,缺陷管理,测试环境管理,接口测试,接口Mock 6合1,又有丰富的统计分析.可按测试包 ...
- jquery的树状菜单
<body> <ul> <li>一级菜单 <ol> <li ...
- LeetCode 72. Edit Distance 编辑距离 (C++/Java)
题目: Given two words word1 and word2, find the minimum number of operations required to convert word1 ...