美文网首页
FTP服务器搭建

FTP服务器搭建

作者: 阿栋oxo | 来源:发表于2019-11-22 18:36 被阅读0次

FTP服务器

一、FTP工作模式

1、主动模式

  • 客户端连接到服务器的21端口
  • 当客户端请求数据时,客户端连接到服务器的20端口
主动模式.png

2、被动模式

  • 客户端连接到服务器的21端口
  • 当客户端请求数据时,服务器随机开启一个端口
  • 客户端连接到服务端的随机端口,获取数据
被动模式.png

综上所述,公司使用FTP服务器,若采用主动模式,因为客户端位于防火墙后面,防火墙策略一般不允许入站,也就说20端口连接不上客户端,这样FTP服务器将无法正常工作;所以采取被动模式。(注:特殊情况,防火墙可以配置识别FTP协议,允许其入站,这样的情况下使用主动模式也是可以的。)

二、安装vsftpd

1、安装

apt install vsftpd
systemctl start vsftpd
systemctl enable vsftpd

2、vsftpd核心文件与目录列表说明

/etc/logrotate.d/vsftpd -- 日志轮转备份配置文件

/etc/pam.d/vsftpd -- 基于PAM的vsftpd验证配置文件

/etc/vsftpd -- vsftpd软件主目录

/etc/vsftpd/vsftpd.conf -- vsftpd主配置文件

/etc/vsftpd/ftpusers -- 默认的vsftpd黑名单

/etc/vsftpd/user_list -- 可以通过主配置文件设置该文件为黑名单或白名单

/var/ftp -- 默认vsftpd共享目录

三、配置文件(配置虚拟用户)

1、主配置文件设置

##################  Global Setting ############
listen=no                                  
listen_ipv6=YES
write_enable=YES
local_umask=022
anon_umask=022
max_login_fails=5
xferlog_enable=YES
xferlog_std_format=YES
chroot_local_user=YES
pam_service_name=vsftpd.pam
userlist_enable=YES
tcp_wrappers=YES
connect_from_port_20=YES
pasv_enable=YES
pasv_max_port=24600
pasv_min_port=24500
ftpd_banner=Welcome to FTP Server
#### User Setting ########################
anonymous_enable=NO
local_enable=YES
guest_enable=YES
guest_username=vsftp
#### Permission ####################
anonymous_enable=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
####  Guest Setting  ############
user_config_dir=/etc/vsftpd/vsftpd_user_conf
user_sub_token=$USER
allow_writeable_chroot=YES

四、配置虚拟用户

1、创建虚拟用户数据库

​ 创建明文密码文件vlogin,明文文件奇数行为用户,偶数行为密码;然后使用db_load工具将vlogin文件转化为数据库文件。

#安装db_load工具
apt install libdb_utils
#将vlogin文件转化为数据库文件
db_load -T -t hash -f /etc/vsftpd/vlogin /etc/vsftpd/vlogin.db
#修改文件权限以增强数据安全性
chmod 600 /etc/vsftpd/{vlogin,vlogin.db}

2、创建pam文件,用于虚拟账户验证

​ PAM文件中的db选项用于指定并验证账户和密码的数据库文件,数据库文件无需添加.db后缀。

[root@ubuntu ~]#cat /etc/pam.d/vsftpd.pam
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vlogin
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vlogin

3、设置虚拟用户目录

​ 所有的虚拟用户最终都映射到一个真实的系统账户,需添加一个系统账户

adduser -s /sbin/nologin vsftp

4、设置每个虚拟用户的独立共享路径

#主配置文件添加
user_config_dir=/etc/vsftpd/vsftpd_user_conf
user_sub_token=$USER
allow_writeable_chroot=YES
#创建一个基于账户的配置目录,在该目录下可创建若干个与账户名称同名的文件,并在此文件为此账户设置独立的配置选项
mkdir /etc/vsftpd/vsftpd_user_conf
#单独设置tomcat001账户的共享路径
[root@ubuntu ~]#cat /etc/vsftpd/vsftpd_user_conf/tomcat001
local_user=/home/vsftp/$USER

5、重启服务

systemctl restart vsftpd

至此,FTP服务器基于多用户的操作已完成,用户可创建和删除目录,创建和删除文件。

附件1:user.sh

通过脚本的方式,创建和删除虚拟用户

  1. 创建用户
./user.sh -c tomcat-001
  1. 删除用户
./user.sh -d tomcat-001

#!/bin/bash
#set -x
PASSWD=/etc/vsftpd/vlogin
HOME=/home/vsftp
CONFIG=/etc/vsftpd/vsftpd_user_conf
function create(){
    #create user and passwd
    cat ${PASSWD} |grep -w $1 && echo "User is already exists!" && exit 1
    passwd=$(openssl rand -base64 8)
    echo  "$1" >> ${PASSWD}
    echo  "${passwd}" >> ${PASSWD}
    db_load -T -t hash -f ${PASSWD} ${PASSWD}.db
    #create home diretory
    mkdir ${HOME}/$1
    chown -R vsftp:vsftp ${HOME}/$1
    #create config file
    echo "local_root=${HOME}/$1" > ${CONFIG}/$1
    echo -e "用户名:$1 \n密码:${passwd}"
}
function delete(){
    cat ${PASSWD} |grep -w $1 || echo "User does not exist!" && exit 1
    sed -i '/^'$1'$/,+1d' ${PASSWD}
    rm -f ${PASSWD}.db
    db_load -T -t hash -f ${PASSWD} ${PASSWD}.db
    rm -rf ${HOME}/$1
    rm -f ${CONFIG}/$1
    echo "$1 is delete!"
}
case $1 in 
    -c)
        create $2
    ;;
    -d)
       delete $2
    ;;
    *)
       echo "Usage:$0 [-c [username]] | [-d [username]]"
    ;;
esac

10个vsftpd的问题
vsftpd的配置详细

相关文章

  • 自动化安装linux(2)

    接下来,我们就尝试一下,如何用光盘引导启动,并选择ftp方式安装。 一、搭建ftp服务器 ftp服务器搭建,可以参...

  • ftp服务器的搭建-linux

    一、前言 企业中linux搭建ftp服务器还是很实用的,所以本文针对centos7和centos6搭建ftp服务器...

  • 服务器的搭建

    FTP服务器的搭建 搭建FTP服务器要用到Ser-U软件,下载好安装包以后双击安装,打开软件配置服务器 然后要设置...

  • CentOS搭建FTP服务

    Linux 云服务器搭建 FTP 服务 操作场景 Vsftpd(very secure FTP daemon)是众...

  • 4.ftp文件服务&ssh服务搭建

    ftp文件服务搭建 1. 搭建ftp服务 FTP:文件传输协议,用于文件在本地和服务器上的双向传输,"下载"(Do...

  • FTP

    FTP 一.FTP简介和原理 FTP即文件传输协议, CS架构, Linux下搭建ftp服务器需要安装vsftpd...

  • FTP服务器的搭建

    ubuntu14.04下的ftp服务器的搭建

  • 安装ftp服务

    vsftpd是Linux下比较著名的FTP服务器,搭建FTP服务器当然首选这个。 1.安装vsftpd yum -...

  • Linux之旅(FTP安装)

    由于项目需要在Linux 上搭建FTP,所以我试着先在ubuntu上搭建一个FTP服务器。 先 sudo apt-...

  • Python黑科技:6行代码轻松搭建FTP服务器

    六行代码轻松搭建个人FTP服务器 什么是FTP服务器? 学习Python中有不明白推荐加入交流群 ...

网友评论

      本文标题:FTP服务器搭建

      本文链接:https://www.haomeiwen.com/subject/ujiqwctx.html