Centos7 安装FTP服务

发布于 2020-05-04  792 次阅读


前言

vsftpd 是“very secure FTP daemon”的缩写,安全性是它的一个最大的特点。vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux、BSD、Solaris、 HP-UNIX等系统上面,是一个完全免费的、开放源代码的ftp服务器软件,支持很多其他的 FTP 服务器所不支持的特征。比如:非常高的安全性需求、带宽限制、良好的可伸缩性、可创建虚拟用户、支持IPv6、速率高等。 [2]vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序。特点是小巧轻快,安全易用。在开源操作系统中常用的FTPD套件主要还有ProFTPD、PureFTPd和wuftpd等(此部分解释来自百度百科)

安装

Centos版本:CentOS Linux release 7.4.1708

  1. 安装 yum -y install vsftpd
  2. 启动 systemctl start vsftpd.service
  3. 把服务添加到开机启动项 systemctl enable vsftpd
  4. 配置文件路径 /etc/vsftpd

功能一(匿名):

1、首先我们在企业中ftp服务器,一般情况下都会有个共享服务器,允许员工下载一些公司的软件或者常用的软件包(方便,不用再取外网去下载,也省带宽)

2、vsftp提供了匿名登录,默认anonymous_enable=YES的情况下,就启用了匿名访问,这种情况下你只能把需要给用户的文件,存放到/var/ftp/pub下(默认路径),如果想更改的话需要添加anon_root= /home/vsftpd,后面的路径就是匿名登录后实际访问的目录。

安装vsftpd后匿名访问需要保证以下3项为YES,配置文件vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES

功能二(虚拟用户):

1.修改配置文件内容如下,vim /etc/vsftpd/vsftpd.conf


  anonymous_enable=NO
  write_enable=YES
  chroot_local_user=YES
  chroot_list_enable=YES
  use_localtime=YES
  local_enable=YES
  allow_writeable_chroot=YES
  xferlog_enable=YES
  local_umask=022
  pam_service_name=vsftpd
 
  use_localtime=YES
  listen_port=21
  chroot_local_user=YES
  idle_session_timeout=120
  data_connection_timeout=120
  guest_enable=YES
  guest_username=ftpuser
  user_config_dir=/etc/vsftpd/vuser_conf
  virtual_use_local_privs=YES
  pasv_min_port=10060
  pasv_max_port=10090
 
  accept_timeout=5
  connect_timeout=1

2.创建宿主用户

 useradd -d /home/vsftpd -s /sbin/nologin ftpuser
 -d /home/vsftpd 指定将来的分享的根目录是:/home/vsftpd
 -s /sbin/nologin 使此账户只能登陆ftp不能通过ssh登陆
  设置ftpuser用户密码
  passwd ftpuser
  修改/home/vsftpd 的所有权
  chown -R ftpuser.ftpuser /home/vsftpd

3.建立虚拟用户文件

touch /etc/vsftpd/vuser_passwd
# 编辑虚拟用户名单文件:(
# 第一行账号,第二行密码,注意:不能使用root做用户名,系统保留)
vi /etc/vsftpd/vuser_passwd 
# 编辑内容,下面是 vuser_passwd 内容
ftp1
12345678
ftp2
12345678
:wq!#保存退出

4.生成虚拟用户数据文件

db_load -T -t hash -f /etc/vsftpd/vuser_passwd /etc/vsftpd/vuser_passwd.db
chmod 600 /etc/vsftpd/vuser_passwd.db

5.创建用户配置

mkdir /etc/vsftpd/vuser_conf  # 建立虚拟用户个人vsftp的配置文件
cd /etc/vsftpd/vuser_conf     # 进入目录
touch ftp1 ftp2

每个文件(ftp1和ftp2写入如下内容,local_root=/home/vsftpd/ftp1 #这里写入这个用户的实际存储路劲)

local_root=/home/vsftpd/ftp1
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

创建用户目录
mkdir -p /home/vsftpd/ftp1
mkdir -p /home/vsftpd/ftp2

6.生成虚拟用户的PAM文件

修改vsftpd文件内容(加入第二和第三行,下面的都全部注释,注意下面是64位操作系统,如果是32位的话lib64需要改成lib),vim /etc/pam.d/vsftpd

复制代码
#%PAM-1.0
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd

#session    optional     pam_keyinit.so    force revoke
#auth       required    pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
#auth       required    pam_shells.so
#auth       include     password-auth
#account    include     password-auth
#session    required     pam_loginuid.so
#session    include     password-auth

7.重启服务

systemctl restart vsftpd.service  # 重启服务
systemctl status vsftpd.service   # 服务状态查看

8.验证

9.注意事项

  • 开放ftp服务添加到防火墙外,阿里云主机需要开启21端口出入
  • 如果在使用的过程中遇到530错误,一般是目录的权限问题

一名测试工作者,专注接口测试、自动化测试、性能测试、Python技术。