服务器之家:专注于服务器技术及软件下载分享
分类导航

云服务器|WEB服务器|FTP服务器|邮件服务器|虚拟主机|服务器安全|DNS服务器|服务器知识|Nginx|IIS|Tomcat|

服务器之家 - 服务器技术 - FTP服务器 - 详解CentOS7 FTP服务搭建(虚拟用户访问FTP服务)

详解CentOS7 FTP服务搭建(虚拟用户访问FTP服务)

2021-12-16 16:40jiajinhao FTP服务器

Liunx外部文件的传输,避免不了使用FTP服务,所以现在就整理下,CentOS7环境下,FTP服务的搭建。有兴趣的可以了解一下。

概述

最近在搞Oracle在Linux系统下集群,针对Linux系统,笔人也是一片空白。Liunx外部文件的传输,避免不了使用FTP服务,所以现在就整理下,CentOS7环境下,FTP服务的搭建。FTP服务器需要安装vsftp服务端软件。我们知道,在建立vsftpd用户时,我们一般是在linux下建立用户useradd的方式来访问ftp,但有时我们只想提供ftp服务,而避免用户用ftp的帐号去登录linux,采用一般的方式只能是限制该用户的访问权限,但还是避免不了用户登录进linux系统,所以比较好的方法是用vsftpd的虚拟用户(virtual users)。

FTP基于虚拟用户的配置

一、配置防火墙,开启FTP服务器需要的端口

CentOS 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙。

1、关闭firewall:

?
1
2
3
systemctl stop firewalld.service #停止firewall
 
systemctl disable firewalld.service #禁止firewall开机启动

2、安装iptables防火墙

?
1
2
3
4
5
6
7
8
9
10
11
12
13
yum install iptables-services #安装
 
vi /etc/sysconfig/iptables #编辑防火墙配置文件,添加下面红色部分进入iptables,说明:21端口是ftp服务端口;10060到10090是Vsftpd被动模式需要的端口,可自定义一段大于1024的tcp端口
 
 -A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
 
 -A INPUT -m state --state NEW -m tcp -p tcp --dport 10060:10090 -j ACCEPT
 
 :wq! #保存退出
 
 systemctl restart iptables.service #最后重启防火墙使配置生效
 
 systemctl enable iptables.service #设置防火墙开机启动

二、关闭SELINUX

?
1
2
3
4
5
6
7
8
9
10
11
vi /etc/selinux/config
 
#SELINUX=enforcing #注释掉
 
#SELINUXTYPE=targeted #注释掉
 
SELINUX=disabled #增加
 
:wq! #保存退出
 
setenforce 0 #使配置立即生效

三、安装vsftpd

?
1
2
3
4
5
6
7
8
9
rpm -qc vsftpd #查询vsftpd是否安装
 
yum install -y vsftpd #安装vsftpd
 
yum install -y psmisc net-tools systemd-devel libdb-devel perl-DBI #安装vsftpd虚拟用户配置依赖包
 
systemctl start vsftpd.service #启动
 
systemctl enable vsftpd.service #设置vsftpd开机启动

四、新建系统用户vsftpd

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

五、建立虚拟用户个人Vsftp的配置文件和子账号FTP权限

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
mkdir /etc/vsftpd/vconf
 
cd /etc/vsftpd/vconf
 
touch web1 #这里创建虚拟用户配置文件
 
mkdir -p /home/wwwroot/web1/http/mydic
 
 #设置FTP上传文件新增权限,最新的vsftpd要求对主目录不能有写的权限所以ftp为755,主目录下面的子目录再设置777权限
 
 chmod -R 755 /home/wwwroot/web1/http
 chmod R 777 /home/wwwroot/web1/http/mydic
vi web1 #编辑用户web1配置文件,其他的跟这个配置文件类似,输入下面红色内容
 
 local_root=/home/wwwroot/web1/http/  #设置FTP账号根目录
 
 write_enable=YES
 
 anon_world_readable_only=NO
 
 anon_upload_enable=YES
 
 anon_mkdir_write_enable=YES
 
 anon_other_write_enable=YES
:wq! #保存退出

六、配置vsftp服务器

?
1
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf-bak #备份默认配置文件

执行以下命令进行设置:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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'
 
echo -e "use_localtime=YES\nlisten_port=21\nchroot_local_user=YES\nidle_session_timeout=300
 
\ndata_connection_timeout=1\nguest_enable=YES\nguest_username=vsftpd #此处要和刚刚创建的用户名一直
 
\nuser_config_dir=/etc/vsftpd/vconf\nvirtual_use_local_privs=YES
 
\npasv_min_port=10060\npasv_max_port=10090
 
\naccept_timeout=5\nconnect_timeout=1" >> /etc/vsftpd/vsftpd.conf

配置文件说明:

?
1
2
3
4
5
6
7
8
9
10
11
12
anonymous_enable=NO //设定不允许匿名访问
local_enable=YES //设定本地用户可以访问。注:如使用虚拟宿主用户,在该项目设定为NO的情况下所有虚拟用户将无法访问
chroot_list_enable=YES //使用户不能离开主目录
ascii_upload_enable=YES
ascii_download_enable=YES //设定支持ASCII模式的上传和下载功能
pam_service_name=vsftpd  //PAM认证文件名。PAM将根据/etc/pam.d/vsftpd进行认证
 
 
#以下这些是关于vsftpd虚拟用户支持的重要配置项,默认vsftpd.conf中不包含这些设定项目,需要自己手动添加
guest_enable=YES //设定启用虚拟用户功能
guest_username=vsftpd //指定虚拟用户的宿主用户,CentOS中已经有内置的ftp用户了,通过映射到vsftpd
user_config_dir=/etc/vsftpd/vuser_conf //设定虚拟用户个人vsftp的CentOS FTP服务文件存放路径。存放虚拟用户个性的CentOS FTP服务文件(配置文件名=虚拟用户名)

七、建立虚拟用户名单文件

?
1
touch /etc/vsftpd/virtusers

编辑虚拟用户名单文件:(第一行账号,第二行密码,注意:不能使用root做用户名,系统保留)

?
1
2
3
4
vi /etc/vsftpd/virtusers
web1
123456
:wq! #保存退出

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

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

九、在/etc/pam.d/vsftpd的文件头部加入以下信息(在后面加入无效)

修改前先备份

?
1
cp /etc/pam.d/vsftpd /etc/pam.d/vsftpdbak

vi /etc/pam.d/vsftpd #先注释到vsftpd所有配置,加入下面红色部分

?
1
2
auth  sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers

注意:如果系统为32位,上面改为lib,否则配置失败;

十、最后重启vsftpd服务器

?
1
systemctl restart vsftpd.service

可通过  tail -f /var/log/secure 指令,查看服务器安全日志,便于分析错误问题,设置操作效果一定要仔细.....

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:http://www.cnblogs.com/xibei666/p/5934659.html

延伸 · 阅读

精彩推荐
  • FTP服务器宝塔系统ftp端口无法下载

    宝塔系统ftp端口无法下载

    问:已根据提示安装,但是刷新点击还是提示未安装,辛苦检查一下,如果无法登陆,亲帮我下载改站点下的所有程序,O(∩_∩)O谢谢 ,发到邮箱@qq.com,宝...

    未知1422023-05-23
  • FTP服务器云服务器怎么修改ftp

    云服务器怎么修改ftp

    标题: 云服务器 中如何修改FTP设置 引言: 随着云计算技术的飞速发展,云服务器已经成为了许多企业和个人的首选。云服务器提供了高灵活性、可扩展性...

    未知1882023-07-21
  • FTP服务器甘肃ftp服务器租用云空间虚拟主机

    甘肃ftp服务器租用云空间虚拟主机

    甘肃FTP 服务器租用 云空间 虚拟主机 背景介绍: 随着信息技术的日益发展,云计算技术的应用也越来越广泛。甘肃作为中国西部的一个重要地区,随着经...

    未知1702023-09-04
  • FTP服务器Windows Server 2012安装ftp服务器图文教程

    Windows Server 2012安装ftp服务器图文教程

    本文主要为大家讲解在Windows Server 2012安装ftp服务器图文教程,有需要的朋友可以参考下...

    服务器技术网16802020-11-23
  • FTP服务器FTP账号:chjpb  流量超标

    FTP账号:chjpb 流量超标

    问:FTP账号:chjpb 流量超标 我看了下是Web Core / s 大量抓内容。如何禁止呢 ?,FTP账号:chjpb 流量超标 答:您好,流量主要是由图片类文件占用,分析网站访...

    未知1442023-06-06
  • FTP服务器甘肃win10ftp服务器租用云空间

    甘肃win10ftp服务器租用云空间

    如今,随着云计算技术的不断发展,越来越多的企业开始将自己的服务器迁移到云端,从而节省成本,提高效率。同样,对于个人用户来说,云空间的租用...

    未知1682023-05-26
  • FTP服务器FTP 文件上传更新时间不正确

    FTP 文件上传更新时间不正确

    问:ftp地址:dlls.gotoftp11.comftp账号:dlls ftp密码:********** 上传任何文件,修改时间都不对,换了FTP工具也不行。,FTP 文件上传更新时间不正确 答:您好,我...

    未知872023-05-12
  • FTP服务器多个网站ftp和mysql用户登录被拒绝

    多个网站ftp和mysql用户登录被拒绝

    问:new用户的可以正常登录而的ftp和mysql总是被拒绝多个网站ftp和mysql用户登录被拒绝,多个网站ftp和mysql用户登录被拒绝 答:您好 问:1、输入正确的用户名...

    未知692023-05-23