CentOS7 FTP服务搭建(虚拟用户访问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:

systemctl stop firewalld.service #停止firewall

systemctl disable firewalld.service #禁止firewall开机启动

2、安装iptables防火墙

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

vi /etc/selinux/config

#SELINUX=enforcing #注释掉

#SELINUXTYPE=targeted #注释掉

SELINUX=disabled #增加

:wq! #保存退出

setenforce 0 #使配置立即生效

三、安装vsftpd

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

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

chown vsftpd:vsftpd /home/wwwroot -R

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

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服务器

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‘

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

配置文件说明:

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服务文件(配置文件名=虚拟用户名)

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

touch /etc/vsftpd/virtusers

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

vi /etc/vsftpd/virtusers
web1
123456
:wq! #保存退出

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

db_load -T -t hash -f /etc/vsftpd/virtusers /etc/vsftpd/virtusers.db

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

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

修改前先备份

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

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服务器

systemctl restart vsftpd.service

参考博客:

CentOS FTP基于虚拟用户的配置         http://www.cnblogs.com/surge/p/3868385.html
CentOS 7.0安装配置vsftp服务器        http://www.linuxidc.com/Linux/2016-09/135636.htm

vsftpd+pam=虚拟用户登录FTP服务器 http://blog.chinaunix.net/uid-7553302-id-2978313.html

centos 安装vsftp 绝对成功包括目录权限配置 http://blog.csdn.net/openn/article/details/8744650

时间: 2024-08-02 06:59:33

CentOS7 FTP服务搭建(虚拟用户访问FTP服务)的相关文章

Linux Centos 通过虚拟用户访问FTP的配置

Linux Centos 通过虚拟用户访问FTP的配置 实验需求: 让下面4个虚拟用户使用系统用户ftpvu的权限来连接到Linux FTP服务器,并确保都锁定在 自己的虚拟用户目录,不能切换到其他目录. ftp1-3的带宽速率限制在500KB,davidge用户不限制带宽. 系统环境: [root@cent7-184 ~]# uname -r 3.10.0-229.el7.x86_64 [root@cent7-184 ~]# cat /etc/redhat-release CentOS Lin

centos 7虚拟用户访问FTP

在vsftpd服务中,虚拟用户被默认作为匿名用户进行处理以降低权限,因此对应的配置项通常以anon_开头.基本搭建过程如下:cent OS7搭建基于虚拟用户的FTP服务 1.创建文本格式的用户名/密码列表文本中奇数行为用户名,偶数行为上一行中用户所对应的密码.如:执行以下操作添加两个用户mike.john,密码分别为123,456 新建一个文本:cent OS7搭建基于虚拟用户的FTP服务 输入用户名和密码:cent OS7搭建基于虚拟用户的FTP服务 2.创建Berkeley DB格式的数据库

linux-第十二课时笔记-[FTP服务器搭建]-[虚拟用户FTP]-[03]

FTP虚拟用户服务器搭建: 创捷一个账号列表: [[email protected] vsftpd]# echo -e "msl23\n123\nbenet\n123" >> vusers.list [[email protected] vsftpd]# cat vusers.list msl23 123 benet 123 [[email protected] vsftpd]# 使用db_load把别表变为数据库: [[email protected] vsftpd]#

Centos下安装FTP并进行虚拟用户访问方式配置

1.准备工作 yum install pam* yum install db4* 首先安装PAM(用于用户认证)和DB4(用于生成虚拟用户的用户名密码的db文件). 2.安装vsftpd yum install vsftpd 设置vsftpd开机启动: chkconfig vsftpd on 通过chkconfig --list 查看启动项 3. 配置vsftpd.conf anonymous_enable=NO local_enable=YES write_enable=YES local_u

通过MySQL实现虚拟用户访问vsftpd服务器

声明 作者:昨夜星辰 博客:http://yestreenstars.blog.51cto.com/ 本文由本人创作,如需转载,请注明出处,谢谢合作! 目的 通过MySQL实现虚拟用户访问FTP服务器. 配置 # 安装本次实验所用到的所有软件包 yum -y install vsftpd mysql-server mysql-devel pam-devel gcc-c++ make wget # 启动mysqld服务 service mysqld start # 初始化数据库管理员密码 mysq

Centos 7安装配置 vsftp服务 (虚拟用户登录)

一.实验环境操作系统: CentOS 7 二.安装 关闭SELINUX: vim /etc/selinux/config SELINUX=disable 临时关闭: setenforce 0 三.安装vsftpd服务: 1.使用安装yum安装vsftp: yum -y install vsftp 2.备份vsftp主配置文件: cp /etc/vsftpd/vsftpd.conf{,.bak} 四.配置虚拟用户访问vsftp服务: 1.创建虚拟用户密码文件: user1 password1 us

搭建FTP服务,实现三种方式的访问:1.匿名访问;2,本地用户访问;3虚拟用户访问。

FTP服务(File Transfer Protocol,文件传输协议)是典型的C/S结构 的应用层协议,需要由服务端软件,客户端软件两部分共同实 现文件传输功能.既可以在局域网使用,又可以在广域网使 用.在Windows系统中,常见的FTP服务器软件包括FileZilla Sener, Serv-U等,而在linux系统中,vsftpd是目前在linux/UNIX领域 应用 十分广泛的一款FTP服务软件本次实验主要讲解vsftpd,在虚拟机上以redhat6.5为服务端,Windows7为客户

centos7搭建虚拟用户ftp服务

1.创建虚拟账户文件,奇数行为用户名,偶数行为密码2.将存储虚拟账户用户名密码文件转换为数据库,数据库文件为vuser.db3.配置pam验证加载账户名密码数据库4.创建系统账户指定ftp根目录位置,用户名为virtualftp5.修改ftp主配置文件支持虚拟账户6.创建存储虚拟账户访问ftp目录7.设置Alice允许下载和上传权限8.设置marry下载上传创建目录删除数据覆盖重命名文件或者目录9.创建测试数据启动服务设置服务开机自动启动1)创建测试数据2)设置ftp根目录为755权限,允许其他

centos 7搭建基于虚拟用户的FTP服务

该博文主要记录了centos 7中使用vsftpd服务的虚拟用户配置过程,即将一个真实的系统用户映射为多个虚拟用户. 部署vsftpd虚拟用户的思路: 过程如下: 建立虚拟FTP用户的账号数据库文件. 创建FTP根目录及虚拟用户映射的系统用户. 建立支持虚拟用户的PAM认证文件. 在vsftpd.conf文件中添加支持配置. 为个别虚拟用户建立独立的配置文件. 重新加载vsftpd配置. 使用虚拟FTP账户访问进而测试是否成功. 该博文是最初写博文时,写过的一篇博文,当初不懂排版,截图比较多,导