FTP实验
一.安装
sudo apt-get install vsftpd
service vsftpd start 启动vsftpd服务
如果在不设置任何的情况下,可以以匿名的方式访问该ftp。
这时候你可以试着访问下ftp://IP地 址。应该可以看到一个空白内容的ftp空间。
二. 修改配置文件
在安装好ftp会产生几个文件:
/etc/vsftpd.conf 主配置文件
/etc/ftpusers 指定哪些用户不能访问FTP服务器
/etc/vsftpd.user_list 文件中指定的用户是否可以访问ftp服务器(由vsftpd.conf文件中的userlist_deny的取值来决定)
vsftpd.chroot_list
这几个文件就是整个ftp控制和禁止用户的权限配置。。。
注:每次更改完配置文件(/etc/vsftpd.conf) 都要重新启动 服务,要不然更改后的配 置不生效。
设置主配置文件
修改之前最好先备份下这个文件:cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
参数内容
################# 匿名权限控制 ###############
anonymous_enable=YES #是否启用匿名用户
no_anon_password=YES # 匿名用户 login 时不询问口令 下面这四个主要语句控制这文件和文件夹的上传、下载、创建、删除和重命名。
anon_upload_enable= ( yes/no) ; # 控制匿名用户对文件(非目录)上传权限。
anon_world_readable_only= ( yes/no ); # 控制匿名用户对文件的下载权限
anon_mkdir_write_enable= ( yes/no ); # 控制匿名用户对文件夹的创建权限
anon_other_write_enable= ( yes/no ); # 控制匿名用户对文件和文件夹的删除和重命名
注:匿名用户下载是使用的是 nobody 这个用户,所以相应的 O 这个位置要有 R 权限才能被下载。若想让匿名用户能上传和删除权限,必需设置 write_enable=YES # 全局设置,是否容许写入(无论是匿名用户还是本地用户,若要启用上传权限的话,就要开启他)
anon_root=(none) # 匿名用户主目录
anon_max_rate =( 0 ) # 匿名用户速度限制
anon_umask =( 077 ) # 匿名用户上传文件时有掩码 ( 若想让匿名用户上传的文件能直接被匿名下载,就这设置这里为 073)
chown_uploads=YES # 所有匿名上传的文件的所属用户将会被更改成 chown_username
chown_username=whoever # 匿名上传文件所属用户名 ################# 本地用户权限控制 ###############
write_enable=YES # 可以上传 ( 全局控制 ) 删除,重命名
local_umask=022 #本地用户上传文件的 umask
userlist_enable=YES # 限制了这里的用户不能访问
local_root # 设置一个本地用户登录后进入到的目录
user_config_dir # 设置用户的单独配置文件,用哪个帐户登陆就用哪个帐户命名
download_enable # 限制用户的下载权限
chown_uploads=YES # 所有匿名上传的文件的所属用户将会被更改成 chown_username
chown_username=whoever # 匿名上传文件所属用户名
chroot_list_enable=YES # 如果启动这项功能,则所有列在 chroot_list_file 之中的使用者不能更改根目录
chroot_list_file=/etc/vsftpd/chroot_list # 指定限制的用户文件
user_config_dir= # 后面跟存放配置文件的目录。用来实现不同用户不同权限。
# 在 vsftpd.conf 文件中加入这一句,在相应的目录里面,为每个用户创建自己的配置文件,用来实现不同的权限 可以通过以下三条配置文件来控制用户切换目录。
chroot_list_enable=YES/NO # 设置是否启用 chroot_list_file 配置项指定的用户列表文件。
# 如果启动这项功能,则所有列在 chroot_list_file 之中的使用者不能更改根目录 . 默认值为 yes 。
chroot_list_file=/etc/vsftpd/chroot_list # 指出被锁定在自家目录中的用户的列表文件。
chroot_list_enable=YES 通过与 chroot_local_user=YES/NO 搭配能实现以下几种效果:
1 、当 chroot_list_enable=YES , chroot_local_user=YES 时,在/etc/vsftpd.chroot_list 文件中列出的用户,可以切换到其他目录;未在文件中列出的用户,不能切换到其他目录。
2 、当 chroot_list_enable=YES , chroot_local_user=NO 时,在/etc/vsftpd.chroot_list 文件中列出的用户,不能切换到其他目录;未在文件中列出的用户,可以切换到其他目录。
3 、当 chroot_list_enable=NO , chroot_local_user=YES 时,所有的用户均不能切换到其他目录。
4 、当 chroot_list_enable=NO , chroot_local_user=NO 时,所有的用户均可以切换到其他目录。
我们对FTP进行设置,主要就是通过修改这些参数
简单配置例子
实现匿名用户上传、下载的功能
anonymous_enable=yes (允许匿名登陆)
anon_upload_enable=yes (开放上传权限)
anon_mkdir_write_enable=yes(可创建目录的权限 )
anon_other_write_enable=yes (开放用户写权限)
anon_world_readable_only=YES(具有下载可读文件的权限)
注:要注意文件夹的属性,匿名帐户是其它(other)用户要开启它的读写执行的权限
实现本地用户有上传、下载的权限
local_enable=YES 允许本地用户登陆
local_root=/var/local 指定本地用户的家目录
阻止本地的某些用户访问FTP服务器(user_list)
vi /etc/vsftpd.conf 添加如下内容
local_enable=YES 允许本地用户登陆
userlist_enable=YES
userlist_deny=YES 决定了/etc/vsftpd/user_list文件中的用户无法访问FTP服务器
区别比较:
ftpusers不受任何配制项的影响,它总是有效,该文件存放的是一个禁止访问FTP的用户列表。它是一个黑名单!
通常为了安全考虑,管理员不希望一些拥有过大权限的帐号(比如root)登入FTP,以免通过该帐号从FTP上传或下载一些危险位置上的文件从而对系统造成损坏。
而user_list则是和vsftpd.conf中的userlist_enable和userlist_deny两个配置项紧密相关的,它可以有效,也可以无效,有效时它可以是一个黑名单,也可以是一个白名单!
所以ftpusers文件总是生效,user_list则取决于userlist_enable和userlist_deny两项配置。
安全设置
idle_session_timeout=600(秒) 用户会话空闲后10分钟
data_connection_timeout=120(秒) 将数据连接空闲2分钟断
accept_timeout=60(秒) 将客户端空闲1分钟后断
connect_timeout=60(秒) 中断1分钟后又重新连接
local_max_rate=50000(bite) 本地用户传输率50k
anon_max_rate=30000(bite) 匿名用户传输率30k
pasv_min_port=50000 客户端的连接端口号最小值
pasv_max_port=60000 客户端连接端口号最大值
max_clients=200 ftp的最大连接数
max_per_ip=4 每ip的最大连接数
listen_port=5555 从5555端口进行数据连接
ps –xf |grep ftp 查看谁登陆了ftp,并杀死它的进程
例子:
sudo mkdir /home/vftp #新建"/home/vftp目录作为用户主目录
新建用户并设置密码
sudo useradd -d /home/vftp -s /bin/bash 用户名
sudo passwd 用户名
vi /etc/vsftpd.conf ,向文件中添加:
userlist_deny=NO
userlist_enable=YES 指定允许ftp登录的本地用户
userlist_file=/etc/allowed_users 记录允许本地登录用户名的文件
seccomp_sandbox=NO 该选项不配置可能导致530问题
local_enable=YES 允许本地登录
chroot_list_enable=YES 使用户不能离开主目录
ascii_upload_enable=YES
ascii_download_enable=YES 设定支持ASCII模式的上传和下载功能 vi /etc/allowed_users 在/etc/allowed_users文件中添加允许ftp登录的用户
vi /etc/ftpusers 不允许登录的用户名。若允许登录的用户名也在其中,则需要删除
创建设置FTP目录权限
chmod -R 755 /home/vftp
chmod -R 777 /home/vftp/upload
【案例 1 】建立基于虚拟用户的 FTP 服务器,并根据以下要求配置 FTP 服务器。
( 1 )配置 FTP 匿名用户的主目录为 /var/ftp/anon 。下载带宽限制为 100kB/s
( 2 )建立一个名为 abc ,口令为 xyz 的 FTP 账户。下载带宽限制为 500kB/s 。
( 3 )设置 FTP 服务器同时登录到 FTP 服务器的最大链接数为 100 ;每个 IP 最大链接数为 3 ;用户空闲时间超过限值为 5 分钟。
mkdir /var/fpt/anon
useradd abc
passwd abc
vim /etc/vsftpd.conf
主要内容如下
anonymous_enable=YES
anon_root=/var/ftp/anon
anon_max_rate=100
# Uncomment this to allow local users to log in.
local_enable=YES
local_max_rate=500
max_clients=100
max_per_ip=3
connect_timeout=300
高级配置
1 、只能上传。不能下载、删除、重命名。
cmds_allowed =FEAT,REST,CWD,LIST,MDTM,MKD,NLST,PASS,PASV,PORT,PWD,QUIT,RMD,SIZE,STOR,TYPE,USER,ACCT,APPE,CDUP,HELP,MODE,NOOP,REIN,STAT,STOU,STRU,SYST
2 、只能下载。不能上传、删除、重命名。 write_enable=NO
3 、只能上传、删除、重命名。不能下载。 download_enable = NO
4 、只能下载、删除、重命名。不能上传。
cmds_allowed=FEAT,REST,CWD,LIST,MDTM,MKD,NLST,PASS,PASV,PORT,PWD,QUIT,RMD,RNFR,RNTO,RETR,DELE,SIZE,TYPE,USER,ACCT,APPE,CDUP,HELP,MODE,NOOP,REIN,STAT,STOU,STRU,SYST
参数解释
cmds_allowed=ABOR,ACCT,APPE,CWD,CDUP,DELE,HELP,LIST,MODE,MDTM,MKD,NOOP,NLST,PASS,PASV,PORT,PWD,QUIT,REIN,RE
TR,RMD,RNFR,RNTO,SITE,SIZE,STOR,STAT,STOU,STRU,SYST,TYPE,USER
CWD - change working directory 更改目录
DELE - delete a remote file 删除文件
LIST - list remote files 列目录
MKD - make a remote directory 新建文件夹
NLST - name list of remote directory
PWD - print working directory 显示当前工作目录
RETR - retrieve a remote file 下载文件RMD - remove a remote directory 删除目录
RNFR - rename from 重命名
RNTO - rename to 重命名
STOR - store a file on the remote host 上传文件
# ABOR - abort a file transfer 取消文件传输
# CWD - change working directory 更改目录
# DELE - delete a remote file 删除文件
# LIST - list remote files 列目录
# MDTM - return the modification time of a file 返回文件的更新时间
# MKD - make a remote directory 新建文件夹
# NLST - name list of remote directory
# PASS - send password
# PASV - enter passive mode
# PORT - open a data port 打开一个传输端口
# PWD - print working directory 显示当前工作目录
# QUIT - terminate the connection 退出
# RETR - retrieve a remote file 下载文件
# RMD - remove a remote directory
# RNFR - rename from
# RNTO - rename to
# SITE - site-specific commands
# SIZE - return the size of a file 返回文件大小
# STOR - store a file on the remote host 上传文件
# TYPE - set transfer type
# USER - send username
# less common commands:
# ACCT* - send account information
# APPE - append to a remote file
# CDUP - CWD to the parent of the current directory
# HELP - return help on using the server
# MODE - set transfer mode
# NOOP - do nothing
# REIN* - reinitialize the connection
# STAT - return server status
# STOU - store a file uniquely
# STRU - set file transfer structure
# SYST - return system type
相关文章
http://www.linuxnote.org/vsftp-the-configuration-instructions.html
FTP实验的更多相关文章
- FTP实验报告
FTP实验报告 制作人:全心全意 准备工作: linux1:192.168.100.4 关闭防火墙.selinux机制 配置yum源 匿名访问 1.安装vsftpd服务和客户端 [root@local ...
- Huawei-R&S-网络工程师实验笔记20190530-FTP上传下载、STelnet登录、SFTP登录
>Huawei-R&S-网络工程师实验笔记20190530-FTP上传下载.STelnet登录.SFTP登录 >>实验开始,参考<Huawei-R&S-网络工程 ...
- Cisco VLAN ACL配置
什么是ACL? ACL全称访问控制列表(Access Control List),主要通过配置一组规则进行过滤路由器或交换机接口进出的数据包, 是控制访问的一种网络技术手段, ACL适用于所有的被路由 ...
- Linux基础六(网络管理)
目录 一.网络配置 1. IP 地址配置 2. 网络配置文件 3. 虚拟机网络配置参数 二.网络命令 1. 网络环境查看命令 2. 网络测试命令 三.远程会话安全协议-SSH原理 1. SSH 原理 ...
- 创建一个TCP代理
代理技术 代理一般被我们用于"穿墙",具体来说可以看这里,或者查wiki.理解代理背后的原理之后,便很容易知道,代理的作用不仅仅只是"穿墙".例如我们可以把经过 ...
- 【Linux】网络应用
一. 网络基本配置 setup 永久网络设置 (IP 网关 DNS) vim /etc/sysconfig/network-scripts/ifcfg-eth0 (网卡信息文件) route -n 查 ...
- Linux系统的vsftpd服务配置
概述: FTP ( 文件传输协议 ) 是 INTERNET 上仍常用的最老的网络协议之一 , 它为系统提供了通过网络与远程服务器进行传输的简单方法FTP 服务器包的名称为 VSFTPD , 它代表 V ...
- [vsftp服务]——ftp虚拟用户、权限设置等的实验
搭建ftp服务器,满足以下要求: 1.允许匿名用户登录服务器并下载文件,下载速度设置为最高2MB/s 2.不允许本地用户登录ftp服务器 3.在服务器添加虚拟用户vuser01.vuser02.vus ...
- C#的FTP上传下载的实验
前段时间做了一个FTP操作服务器文件的实验,现在把一些经验写下来,免得忘记. 1.上传的处理:目标文件夹A上传到服务器指定目录.先检索服务器目录中有无同名文件夹,若有,则先改名,上传成功后再删除,上传 ...
随机推荐
- codeforces-1114F-线段树练习
https://www.cnblogs.com/31415926535x/p/10391639.html 概述 这是一道用线段树维区间值的一道题,,题意很简单,,就是对于给定的一个序列,,初始时每个数 ...
- NMAP为什么扫描不到端口
NMAP为什么扫描不到端口 NMAP是知名的网络端口扫描工具.但很多新人发现,使用NMAP经常扫描不出来任何端口,尤其是手机之类.这实际存在一个理解上的误区.扫描端口是为了发现主机/设备上存在的对 ...
- [BZOJ2650]积木
[BZOJ2650]积木 题目大意: 有一排\(n\)个积木,第\(i\)个积木的高度为\(h_i\),定义混乱值为相邻两个积木高度之差的绝对值之和乘上系数\(c\).可以花费\(t^2\)的代价将一 ...
- 对类方法进行约束(类的抽象方法ABC+raise抛出异常 )
#base.py #####方法一###### from abc import ABCMeta from abc import abstractmethod class BaseMessage(met ...
- Windows 文件名的书写规范
下面是不能用于文件名的: / \ : * " < > | windows系统下文件名长度为: 255个英文字符(DOS下8.3格式),包括文件名和扩展名在内,或者是255/2=1 ...
- [模板][P3377]左偏树
Description: 一开始有N个小根堆,每个堆包含且仅包含一个数.接下来需要支持两种操作: 操作1: 1 x y 将第x个数和第y个数所在的小根堆合并(若第x或第y个数已经被删除或第x和第y个数 ...
- CocosCreator核心概念里的基础点
1,锚点:是节点位置的参照点,也是自身旋转,缩放的基准点,也是子节点坐标原点.X.Y描述横纵向的锚点位置.注:锚点的取值是可以超过(0,0)~(1,1),即锚点并不在节点尺寸范围内. 2,子节点:子节 ...
- AIX中vi编辑器使用
3.1 vi 简介 vi 是 UNIX 世界里使用非常普遍的全屏幕文本编辑器,几乎任何一种UNIX系统都会提供这套软件.AIX当然也支持这种编辑器.熟悉DOS下的文本处理后,用户在开始接触vi时也许会 ...
- android addJavascriptInterface 不能生效 解决办法
2015-03-10 16:47:31| 分类: 软件技术|举报|字号 订阅 下载LOFTER客户端 1. webview.addJavascriptInterface() doen ...
- windows环境下面批量移动文件到指定文件夹里面
move D:批量新建文件夹\upload\20171225173033565_2052.jpg D:批量新建文件夹\1623 move D:批量新建文件夹\upload\20171225174344 ...