FTP安装及配置
在centos7安装ftp服务
yum install -y vsftpd
启动服务
systemctl start vsftpd
自启动
systemctl enable vsftpd
查看端口
注意关闭SELinux和本地防火墙,否则不能正常操作
重要文件
/var/ftp/pub/ 默认共享目录
/etc/vsftpd/vsftpd.conf 主配置文件
/etc/vsftpd/user_list 黑名单,可修改成白名单
/etc/vsftpd/ftpusers 黑名单
FTP相关用户
匿名用户
anonymous或ftp
本地用户
Linux系统用户
虚拟用户
管理员自定义用户
配置文件/etc/vsftpd/vsftpd.conf
anonymous_enable=YES ### 允许匿名登录,建议关闭
local_enable=YES ### 允许本地用户登录
write_enable=YES ### 允许对文件系统做改动的 FTP 命令
local_umask= ### 本地用户创建文件所用的 umask 值
dirmessage_enable=YES ### 当用户首次进入一个新目录时显示一个消息
xferlog_enable=YES ### 用于记录上传、下载细节的日志文件
connect_from_port_20=YES ### 主动模式数据传输接口
xferlog_std_format=YES ### 使用标准的ftp日志格式
listen=NO ### 不要让 vsftpd 运行在独立模式
listen_ipv6=YES ### vsftpd 将监听 IPv6 而不是 IPv4
pam_service_name=vsftpd ### vsftpd 使用的 PAM 服务名
userlist_enable=YES ### 用户登入限制
tcp_wrappers=YES ### 使用 tcp wrappers
匿名用户登入
在默认情况下,ftp可以用匿名用户登入,登入的目录为/var/ftp/
用户名为anonymous或ftp,密码为空,建议关闭
默认情况下,只能在对应的目录下进行下载文件,不能上传文件
可以修改对应的配置文件,允许匿名用户进行文件上传和建立目录的权限
配置文件/etc/vsftpd/vsftpd.conf中将以下两行注释去掉即可
anon_upload_enable=YES #允许上传文件
anon_mkdir_write_enable=YES #允许建立目录
重启服务,同时还需要让ftp作为/var/ftp/pub的所有者
chown ftp pub/
重新用匿名用户登入ftp就可以在pub/上传文件和建立目录
系统用户登入
采用Linux的系统用户作为ftp服务的用户进行登入,但是因为ftp是明文传递,如果被人截获数据包,就相当于获得Linux的用户和密码,因此建议关闭
默认情况下,采用系统用户登入,可以进行上传下载,目录为用户的家目录
可以修改配置文件更换系统用户的登入位置,在/etc/vsftpd/vsftpd.conf添加
local_root=/tmp/test_home/
然后建立对应的目录 mkdir /tmp/test_home,重启服务
再次登入ftp,目录为/tmp/test_home,其他Linux用户登入ftp服务也是在这个目录(注意系统的目录权限)
但是用系统用户登入ftp存在一个缺陷,即可以切换到根目录,可以窃取其他目录的信息,所以我们需要把系统用户禁锢在家目录下
进入配置文件,把这句话前面的注释去掉,然后重启服务,即把所有的系统用户限制在家目录下
chroot_local_user=YES
注意一个特别配置,如果把这三句都去掉注释,同时在/etc/vsftpd/建立一个chroot_list,里面的内容为系统用户,那么写在这里的系统用户则可以访问任何目录
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
假如我们在/etc/vsftpd/chroot_list添加一个系统用户test2,那么这个系统用户登入ftp服务器,则可以访问根目录,也可以访问其他目录
/etc/vsftpd/ftpusers和 /etc/vsftpd/user_list默认情况下都是黑名单,但是/etc/vsftpd/user_list可以通过配置文件修改成白名单
在/etc/vsftpd/vsftpd.conf配置文件中
userlist_enable=YES #在这句下面添加以下两句,将user_list反转成白名单
userlist_deny=NO
userlist_file=/etc/vsftpd/user_list
注意黑名单的权限比白名单大,即同时存在与黑名单和白名单,依旧被禁用
虚拟用户登入
比较安全和常见的登入方式为虚拟用户登入,即只能登入ftp服务器
1、添加一个虚拟用户口令文件
vim /etc/vsftpd/vuser.txt
在里面输入虚拟用户和密码
vtest #账户
test #密码
vtest2 #账户
test2 #密码
2、生成认证文件
db_load -T -t hash -f /etc/vsftpd/vuser.txt /etc/vsftpd/vuser.db
如果没有安装口令认证文件先安装
yum -y install db4-utils
3、编辑pam认证文件
进入 /etc/pam.d/vsftpd,注释掉原来的内容,因为系统登入依赖这个文件
在后面添加两行
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser
4、建立本地映射用户
useradd -d /home/vftproot -s /sbin/nologin vuser
chmod /home/vftproot
5、修改配置文件
在/etc/vsftpd/vsftpd.conf下面添加
guest_enable=YES
guest_username=vuser
user_config_dir=/etc/vsftpd/vuser_conf
然后重启服务,就可以进行虚拟用户登入,记得删除原来的vuser.txt文件
虚拟用户进行目录分配
mkdir /etc/vsftpd/vuser_conf
在这个目录下创建文件,文件名为虚拟用户名,在里面指定权限和目录,没有设置的虚拟用户则根据主配置文件
vim /etc/vsftpd/vuser_conf/vtest2
anon_upload_enable=YES
anon_mkdir_write_enable=YES
local_root=/tmp/vtest2
mkdir /tmp/vtest2
chown vuser vtest2/
并在配置文件中添加
allow_writeable_chroot=YES
重启服务,再次登入,可以正常使用
FTP安装及配置的更多相关文章
- [Windows Server 2003] IIS自带FTP安装及配置方法
★ 欢迎来到[护卫神·V课堂],网站地址:http://v.huweishen.com★ 护卫神·V课堂 是护卫神旗下专业提供服务器教学视频的网站,每周更新视频.★ 本节我们将带领大家:IIS6.0自 ...
- Linux下FTP安装与配置
第一部分 .note-content {font-family: 'Helvetica Neue', Arial, 'Hiragino Sans GB', STHeiti, 'Microsoft Ya ...
- [转]CentOS 5.5下FTP安装及配置
一.FTP的安装 1.检测是否安装了FTP : [root@localhost ~]# rpm -q vsftpd vsftpd-2.0.5-16.el5_5.1 否则显示:[root@localho ...
- CentOS7 FTP安装与配置
1.FTP的安装 #安装yum install -y vsftpd #设置开机启动systemctl enable vsftpd.service #启动systemctl start vsftpd.s ...
- IIS6自带FTP安装及配置方法
参考:http://v.huweishen.com/video/9.html ·IIS自带的FTP服务是最安全的,不会像Serv-U那样存在各种漏洞:但其配置过程也比较复杂. ·本节将以虚拟目录方式, ...
- 从零开始搭建系统1.7——FTP安装及配置
1.安装vsftp软件包 [root@localhost usr]# yum install -y vsftpd 2.先备份vsftpd的默认配置文件 [root@localhost usr]# cd ...
- centos 6.4 FTP安装和配置
链接地址:http://blog.csdn.net/wind520/article/details/38019647 1: 安装 检查是否安装 [root@localhost ~]# rpm -qa ...
- linux ftp安装和配置
1. 启动VSFTP服务器 A:cenos下运行:yum install vsftpd B. 登录Linux主机后,运行命令:"service vsftpd start"C. ...
- Linux 安装及配置 Nginx + ftp 服务器
Nginx 安装及配置 一.Nginx 简介: Nginx("engine x") 是一款是由俄罗斯的程序设计师 Igor Sysoev 所开发高性能的 Web和 反向代理服务器, ...
随机推荐
- Selenium之显式、隐式等待
selenium自动化页面元素存在异常发生的原因有以下几点: ① 页面加载时间过慢,需要查找的元素程序已经完成,但是页面还未加载成功.此时可以加载页面等待时间. ② 查找的元素没有在当前的iframe ...
- 【JS】374- 重学 this 关键字
为什么要学习this关键字 1. 面试会问啊!总有一些面试官喜欢问你一段不可能这么写的代码.看一道经典且古老的面试题(学完本文后,文末会有一道更复杂的面试题等着你哦!) 代码如下: let a = 5 ...
- HTML真零基础教程
这是为完全没有接触过的童鞋写的,属于真正的傻瓜式教程,当然由于本人也不是什么大佬,可能有些知识的理解与自己想的不一样,如果有大佬看到,还请帮我指出.以下主要是HTML5的基础标签的使用. 开发前的准备 ...
- 【NodeJS】nvm
[NodeJS]nvm node多版本管理 NVM_HOME=C:\env\nvm NVM_SYMLINK=C:\env\nodejs 查看版本 nvm v 查看当前使用的node版本 nvm cur ...
- NodeJS2-2环境&调试----引用系统内置模块,引用第三方模块
引用系统内置模块的方法 08_fs.js // 引用系统内置模块的方法 const fs = require('fs'); const result = fs.readFile('./08_fs.js ...
- 《Java基础知识》Java静态内部类、匿名内部类、成员式内部类和局部内部类
内部类可以是静态(static)的,可以使用 public.protected 和 private 访问控制符,而外部类只能使用 public,或者默认. 成员式内部类 在外部类内部直接定义(不在方法 ...
- Python高级应用程序设计任务
Python高级应用程序设计任务要求 用Python实现一个面向主题的网络爬虫程序,并完成以下内容:(注:每人一题,主题内容自选,所有设计内容与源代码需提交到博客园平台) 一.主题式网络爬虫设计方案( ...
- 【AHOI 2013】差异
Problem Description 给定一个长度为 \(n\) 的字符串 \(S\),令 \(T_i\) 表示它从第 \(i\) 个字符开始的后缀.求 \(\sum_{1\leqslant i&l ...
- 一起学Spring之注解和Schema方式实现AOP
概述 在上一篇,我们了解了通过实现接口和XML配置的方式来实现AOP,在实现注解方式AOP之前,先了解一下AspectJ.AspectJ是一个面向切面的框架,它扩展了Java语言,定义了AOP语法,能 ...
- .Net Core2.2升级到3.1小记
.NET Core 3.1 作为LTS长期支持版本,会提供3年的支持(明年就出.net5),值得升级(吗). 目前主流的第三方包大多都已经提供了支持,2.x => 3.1还是变化不是特别多,EF ...