FTP服务器的简介

系统用户
即系统本机的用户。Linux一般不会针对实体用户进行限制,因此实体用户可以针对整个文件
系统进行工作。但通常不希望他们通过FTP方式远程访问系统。
虚拟用户
只能采用FTP方式使用系统的用户,不能直接使用Shell登录系统,即虚拟用户,访问服务器
时需要验证。大多数FTP用户是这类用户。
匿名用户
对于公共性质的服务器可以提供匿名用户访问,用户名:anonymous。但在使用匿名用户时,
应对其进行尽可能多的限制,权限较低,如:同时连接的用户数量受限,访问的文件数目受限,
不能上传文件,允许操作的指令较少,设置匿用户同时登入的最大联机数量等。

FTP服务器的安装

使用yum安装vsftpd软件包
#yum install vsftpd ftp
启动服务并设置开机自启
#systemctl start vsftpd.service
#systemctl enable vsftpd.service
设置防火墙与selinux机制
#firewall-cmd --permanent --zone=public --add-service=ftp
#firewall-cmd --reload
#setenforce 0

配置访问

配置匿名用户访问FTP
ftp的配置文件
ftp的配置文件是:/etc/vsftpd/vsftpd.conf
设置匿名用户访问ftp:
anonymous_enable=YES
设置匿名用户登录ftp时不输入密码
设置匿名用户登录ftp时不输入密码:
no_anon_password=YES
ftpd_banner= welcome to our home! //设置提示内容
设置匿名用户上传、新建、删除文件
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=yes
设置文件权限
chmod 777 pub   不推荐使用

setfacl -m u:ftp:rwx pub   推荐使用
设置匿名用户上传或新建文件的权限
如果使用vsftp的是本地用户,则要修改配置文件中的 local_umask 的值;

如果使用vsftp的是虚拟用户,则要修改配置文件中的 anon_umask 的值。

umask = 022 时,新建的目录 权限是755,文件的权限是 644;

umask = 077 时,新建的目录 权限是700,文件的权限时 600。
设置不允许系统用户登录,只能匿名用户登录
anonymous_enable=YES

local_enable=no
设置匿名用户访问ftp的默认目录
anon_root=/var/ftp

anon_root=/var/public

      注意:要修改vsftp服务器匿名用户默认目录时,不可以将anon_root设置为一个其他账号已有的家目录,否则不能实现匿名用户访问ftp服务器。
配置系统用户访问FTP
设置系统用户只能访问自己的主目录
设置系统用户只能访问自己的主目录并具有所有权限,不允许切换到系统的其他目录

chroot_local_user=YES   控制用户访问路径访问自己的主目录,不能切换到其他目录

allow_writeable_chroot=YES  允许写入

ftpd_banner= welcome to our home!

max_clients=30   设置最大连接数

idle_session_timeout=600   设置超时时间
设置系统用户访问指定目录
设置系统用户访问指定目录,不允许切换到系统的其他目录,并具上传、下载、新建、删除的权限。

local_root=/mnt/public/   设置系统用户访问ftp的默认目录

write_enable=YES          允许写入

chroot_local_user=YES      控制用户访问路径访问指定目录,不能切换到其他目录

allow_writeable_chroot=YES 允许写入

修改/mnt/public/目录下的文件权限
基于本地用户的访问控制
默认情况下
默认情况下,ftp服务器中所有系统用户都可以访问ftp,如何来限定只有指定的系统用户可以访问呢?vsftp中提供了两个与系统用户相关的配置文件:

/etc/vsftpd/ftpusers  提供了一份用于禁止登录的ftp用户列表(黑名单)。
此文件中包含的用户将被禁止登录vsftpd服务器,不管该用户是否在
/etc/vfsftpd/user_list中出现。 /etc/vsftpd/user_list 提供了一份用于允许登录的ftp用户列表(白名单),
此文件中包含的用户可能被禁止登录,可能被允许登录。
具体配置
具体在主配置文件vsftpd.conf中决定:
当存在userlist_enable=YES时,user_list文件生效。
当存在userlist_deny=YES时,则仅禁止列表中的帐户登录。
当存在userlist_deny=NO时,则允许列表中用户登录。
其中:ftpusers文件的优先级要高于user_list文件,即如果一个用户同时存在
于两个文件中,则被拒绝访问ftp。
举例:只让ftpuser用户访问ftp,那么可以进行如下设置:
#vim /etc/vsftpd/vsftpd.conf
userlist_enable=YES 启用userlist用户列表(系统默认设置)
userlist_deny=NO 只允许列表中的用户登录
#vim/etc/vsftpd/user_list 将允许登录的用户添加在最后 将服务重启后,在客户端测试,此时只有ftpuser用户可以访问ftp

ftp日志管理

日志文件
Vsftp软件搭建的FTP服务器的日志文件的配置,在/etc/vsftpd.conf中找到:

xferlog_enable=YES   开启FTP服务器记录上传下载的情况

xferlog_std_format=YES    日志格式

xferlog_file=路径        指定日志文件

默认为:/var/log/xferlog
日志文件输出格式
(1)当前时间(为本地时间),格式为:DDD MMM dd hh:mm:ss YYYY

(2)传输时间:传送文件所用时间,单位为秒

(3)远程主机名称/IP:

(4)文件大小:传输文件的大小,单位为byte

(5)文件名:传输文件名,包括路径

(6)传输类型:a--以ASCII传输;b--以二进制文件传输

(7)特殊处理标志:
_:不做任何特殊处理
c:文件是压缩格式
u:文件是非压缩格式
t:文件时tar格式 (8)传输方向:o 从FTP服务器想客户端传输;i 从客户端向FTP服务器传输 (9)访问模式:a 匿名用户;g 来宾用户;r 系统中的用户 (10)用户名 (11)服务名:一般为FTP (12)认证方式:0 无; 1 RFC931认证 (13)认证用户id:如果使用*,测表示无法获得该id (14)完成状态:i 传输未完成;c表示传输已完成。

配置虚拟用户访问

安装Vsftpd虚拟用户需要用到的软件及认证模块
yum install pam* libdb-utils libdb* --skip-broken -y
创建虚拟用户临时文件/etc/vsftpd/ftpusers.txt,用户名密码格式
xxxxxx
123456
……
……
生成Vsftpd虚拟用户数据库认证文件,设置权限为600
权限为600 表示只有所有者可以访问
#db_load -T -t hash -f /etc/vsftpd/ftpusers.txt /etc/vsftpd/vsftp_login.db
#chmod 600 /etc/vsftpd/vsftp_login.db
配置PAM认证文件:vim /etc/pam.d/vsftpd.vu
配置PAM认证文件:vim /etc/pam.d/vsftpd.vu

   auth   required   pam_userdb.so   db=/etc/vsftpd/vsftp_login

   account  required  pam_userdb.so  db=/etc/vsftpd/vsftp_login

创建一个系统用户,用于虚拟用户映射
#useradd -s /sbin/nologin ftpuser
修改配置文件
修改配置文件:#vim /etc/vsftpd/vsftpd.conf 

   #pam_service_name=vsftpd

   pam_service_name=vsftpd.vu

   guest_enable=YES

   guest_username=ftpuser

   user_config_dir=/etc/vsftpd/vsftpd_user_conf

   virtual_use_local_privs=YES
分别为虚拟用户创建私有的虚拟目录与独立的配置文件
#mkdir /home/ftpuser/techftp

#mkdir /etc/vsftpd/vsftpd_user_conf

#vim techftp
local_root=/home/ftpuser/techftp
write_enable=YES
anon_world_readable_only=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES #mkdir /home/ftpuser/netftp #vim netftp
local_root=/home/ftpuser/netftp
write_enable=YES
virtual_use_local_privs=NO #不具有可登录用户的权限
anon_world_readable_only=YES #可浏览目录
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

Linux:FTP服务器的搭建的更多相关文章

  1. 自学linux——18.FTP服务器的搭建

    Centos7下FTP服务器的搭建 一.FTP的作用 文件传输协议(File Transfer Protocol,FTP),是一种在互联网中进行文件传输的协议,基于客户端/服务器模式,默认使用 20. ...

  2. ubuntu 14.04 下FTP服务器的搭建--锁定用户目录,解决vsftpd: refusing to run with writable root inside chroot()

    FTP服务器的搭建,我要实现的需求是: 不允许匿名访问,因为我的机器不想让谁都能登录上来,随便获取文件, 需要锁定一个目录,因为在家里,我需要给媳妇下载一些电影 韩剧之类的东西,媳妇会来我机器下载,但 ...

  3. 【FTP】FTP服务器的搭建

    记录一下FTP服务器的搭建首先打开 程序和功能>打开或关闭Windows功能 进入到Windows功能界面:勾选FTP服务器.然后再在IIS界面,新建一个网站.右键网站,选择“添加到FTP发布” ...

  4. Ubuntu 14.04 下FTP服务器的搭建

    FTP服务器的搭建,我要实现的需求是: 不允许匿名访问,因为我的机器不想让谁都能登录上来,随便获取文件, 需要锁定一个目录,因为在家里,我需要给媳妇下载一些电影 韩剧之类的东西,媳妇会来我机器下载,但 ...

  5. Linux篇---ftp服务器的搭建

    一.前述 企业中linux搭建ftp服务器还是很实用的,所以本文针对centoos7和centoos6搭建服务器教程做个总结. 二.具体 1.显示如下图则表示已安装 vsftp软件.如果未显示则需要安 ...

  6. Linux FTP服务器搭建与使用

    一.vsftpd说明 LINUX下实现FTP服务的软件很多,最常见的有vsftpd,Wu-ftpd和Proftp等.Red Hat Enterprise Linux中默认安装的是vsftpd. 访问F ...

  7. Linux中FTP服务器的搭建

    vmware12上安装的CentOs6.8,最终实现物理机上的windows10能正常访问CentOs上的FTP服务器. 一.查看是否安装有ftp相关的安装包. # rpm -qa | grep vs ...

  8. 浅谈Linux ftp服务器相关配置

    首先我们需要在Linux系统下安装FTP服务器  Ubuntu sudo apt-get install.......  centos yun....... 然后,我们要配置vsftpd.conf文件 ...

  9. FTP服务器的搭建与安全配置

    FTP可以说是Internet上使用非常广泛的一种通讯协议了.它工作在OSI模型的第7层,是TCP/IP的一种具体应用.FTP采用基于TCP的可靠连接:监听21端口来等待控制连接请求,当连接建立后,采 ...

随机推荐

  1. JS中遍历对象属性的四种方法

    Object.keys().Object.values().Object.entries().for...in.Map (1)Object.keys(): let ex1 = {c1: 'white' ...

  2. Spring Boot Request method DELETE not supported

    1: 开启HiddenHttpMethodFilter 最新版本的spring boot 默认不开启 restful 分割api @Bean @ConditionalOnMissingBean({Hi ...

  3. 算法设计与分析——n后问题(回溯法+位运算)

    一.问题描述 在n×n格的国际象棋上摆放n个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行.同一列或同一斜线上,问有多少种摆法. 二.算法设计 解n后问题的回溯算法描述如下: #include ...

  4. 极客必备 Chrome 浏览器插件

    本文微信公众号「AndroidTraveler」首发. 自己平时使用的最多的就是 Chrome 浏览器,因此本文主要分享自己添加的一些扩展程序. 介绍扩展程序的时候也是以我本人的实际使用为主,有些功能 ...

  5. 1、netty入门说明

    netty中的例子,基本模式都是:server -> Initializer -> Handler . 在server中去启动线程,打开端口,设置initializer,和一些启动的参数配 ...

  6. 抖音短视频教程VIP培训课程(2019实时更新中)

    抖音联盟,抖友会,抖音联盟会员,抖音联盟学员,抖音批量做号团队,工作室带队,联盟学员统一官网认证可查,统一变现渠道担保,成熟技术技术后盾,实时工作室真机实测规则,抖音情感励志书单模式2.0升级,拒绝落 ...

  7. 寝室远程连接室友mysql数据库

    注意,本方法是适用于同一局域网下的远程连接 注意,本方法是适用于同一局域网下的远程连接 注意,本方法是适用于同一局域网下的远程连接 首先需要修改mysql数据库的相关配置,将user表中的host改为 ...

  8. 【转载】Vue.js 安装及其环境搭建

    注:最近在学习Vue,以下是环境搭配方法: ****************************************************************************** ...

  9. java之方法的重载(overload)

    什么是重载? 在任何一个类中,允许存在一个以上的同名的方法,只要它们的参数个数或者参数类型不同即可: 重载的特点? 与返回值无关,只看参数列表.且参数列表必须不同(参数个数或参数类型).调用时,根据方 ...

  10. swoole怎么保持不掉线

    正常情况下客户端中断TCP连接时,会发送一个FIN包,进行4次断开握手来通知服务器.但一些异常情况下,如客户端突然断电断网或者网络异常,服务器可能无法得知客户端已断开连接. 尤其是移动网络,TCP连接 ...