98、配置ftp服务器(vsftpd)
98.1、安装vsftpd:
1、安装:
[root@m01 ~]# yum install -y vsftpd #安装vsftpd
[root@m01 ~]# vsftpd -v #查看ftp的版本号
vsftpd: version 2.2.2
2、启动:
[root@m01 ~]# /etc/init.d/start
98.2、vsftp的匿名登录方式配置:
1、修改配置文件:
[root@m01 ~]# cat /etc/vsftpd/vsftpd.conf
anonymous_enable=YES
#是否允许匿名ftp
local_enable=YES
#允许本地用户登录
write_enable=YES
#本地用户登录有写的权限
local_umask=022
#本地用户所写文件的权限
dirmessage_enable=YES
######################################################################
#使用者第一次进入一个目录时对该目录的说明;
#message_file=.message
#设置目录消息文件,可将要显示的信息写入该文件。默认值为.message。
######################################################################
xferlog_enable=YES
######################################################################
#启用上传/下载日志记录;
#xferlog_file=/var/log/xferlog
#设置日志文件名和路径,默认值为/var/log/xferlog
########################################################################
connect_from_port_20=NO
#指定FTP使用20端口进行数据传输,默认值为YES;
pasv_enable=YES
#ftp的被动工作模式,默认开启;
pasv_min_port=1024
#在PASV工作模式下,数据连接可以使用的端口范围的最大端口,0 表示任意端口。默认值为0。
pasv_max_port=65536
#在PASV工作模式下,数据连接可以使用的端口范围的最小端口,0 表示任意端口。默认值为0。
xferlog_std_format=YES
#日志格式
listen=YES
#设置vsftpd服务器以standalone模式运行,这是一种较好的方式;
pam_service_name=vsftpd
#设置PAM使用的名称,默认值为/etc/pam.d/vsftpd。
userlist_enable=YES
#########################################################################
#开启控制用户访问;
#当 userlist_enable=NO时user_list列表不生效,此时只有user_list和不在ftpusers里面的系统用户可以访问;
#当 userlist_enable=YES,userlist_deny=YES时此时只有不在ftpusers和user_list的系统用户可以访问(默认);
#当 userlist_enable=YES , userlist_deny=NO时此时只有user_list用户可以访问,只能用命令行进行访问;
#如果用户同时出现在ftpuser和user_list中,ftpuser的优先权大于user_list;
############################################################################
tcp_wrappers=YES
############################################################################
#设置vsftpd是否与tcp wrapper相结合来进行主机的访问控制;
#如果启用,则vsftpd服务器会检查/etc/hosts.allow 和/etc/hosts.deny 中的设置,来决定请求连接的
#主机,是否允许访问该FTP服务器。
#比如:若要仅允许172.16.1.0网段的用户可以连接FTP服务器,则在需要在相应的配置文件中添加以下内容:
#[root@m01 vsftpd]# vim /etc/hosts.deny
#vsftpd:all:deny
#[root@m01 vsftpd]# vim /etc/hosts.allow
#vsftpd:172.16.1.0/255.255.255.0:allow
############################################################################
chroot_local_user=YES
#所有的用户都不能切换到其它的目录;
anon_upload_enable=YES
#允许匿名登入者有上传文件(非目录)的权限;
anon_mkdir_write_enable=YES
#允许匿名登入者有新增目录的权限;
anon_other_write_enable=YES
#允许匿名登入者更多于上传或者建立目录之外的权限,譬如删除或者重命名;
anon_umask=022
#匿名用户上传的文件权限为644,创建的目录权限为755
max_clients=100
#设置vsftpd允许的最大连接数为100,默认值为0,表示不受限制;
max_per_ip=100
#每个IP允许与FTP服务器同时建立连接的数目,默认值为0,表示不受限制;
data_connection_timeout=120
#设置建立FTP数据连接的超时时间,单位为秒,默认值为120。
idle_session_timeout=600
#设置多长时间不对FTP服务器进行任何操作,则断开该FTP连接,单位为秒,默认值为300 。
local_max_rate=0
#本地用户使用的最大传输速度,单位为B/s,0 表示不限制速度,默认值为0;
anon_max_rate=0
#匿名登入者使用的最大传输速度,单位为B/s,0 表示不限制速度,默认值为0;
anon_root=/var/ftp
############################################################################
#使用匿名登入时,所登入的目录。默认值为/var/ftp。
#注意ftp目录不能是777的权限属性,即匿名用户的家目录不能有777的权限。
#local_root=/home/$user:虚拟用户登录时所登录的ftp根目录默认是用户的家目录;
############################################################################
listen_port=21
#设置FTP服务器建立连接所监听的端口,默认值为21。
#listen_address=IP地址
#设置FTP服务器在指定的IP地址上侦听用户的FTP请求。
reverse_lookup_enable=NO
#解决查看ftp列表慢的问题;
2、chroot_local_user、chroot_list_enable介绍,默认中是不开启的:
chroot_list_enable=YES
#设置是否启用chroot_list_file配置项指定的用户列表文件。默认值为NO。
chroot_list_file=/etc/vsftpd.chroot_list
#用于指定用户列表文件,该文件用于控制哪些用户可以切换到用户家目录的上级目录
chroot_local_user=YES
#所有的用户都不能切换到其它的目录;
3、修改共享目录权限:
vsftpd匿名用户所使用的虚拟用户是ftp,默认的目录是/var/ftp其权限必须是root的属组和属组,操作权限
是755,如果不按照要求就会报错不能够访问;
权限设置如下:
[root@m01 ~]# ls -ld /var/ftp
drwxr-xr-x 3 root root 4096 3月 7 11:50 /var/ftp
[root@m01 ~]# chown -R ftp:ftp /var/ftp/pup
[root@m01 ~]# ls -ld /var/ftp/pub/ #该目录方便匿名用户进行访问;
drwxr-xr-x 2 ftp ftp 4096 3月 7 15:32 /var/ftp/pub/
4、启动服务:
[root@m01 ~]# /etc/init.d/vsftbd restart
5、访问:
98.3、vsftp的用户密码登录方式配置:
1、创建用户并指定家目录:
[root@m01 ~]# mkdir /lc_ftpdir -p #创建用户的ftp目录
[root@m01 ~]# useradd -Ms /sbin/nologin lc_ftp #创建ftp虚拟用户
[root@m01 ~]# usermod -d /lc_ftpdir/ lc_ftp #指定ftp用户的家目录,即上传目录
[root@m01 ~]# tail -1 /etc/passwd
lc_ftp:x:503:504::/lc_ftpdir/:/sbin/nologin
[root@m01 ~]# chown -R lc_ftp:lc_ftp /lc_ftpdir #创建ftp目录
[root@m01 ~]# ls -ld /lc_ftpdir
drwxr-xr-x 4 lc_ftp lc_ftp 4096 3月 7 05:28 /lc_ftpdir
[root@m01 ~]# passwd lc_ftp #为ftp用户创建密码
2、修改配置文件:
配置文件和上"98.2、vsftp的匿名登录方式配置"配置文件一致,改动的地方如下:
anonymous_enable=YES #将YES改为NO
3、测试登录:
98.4、总结:
1、vsftpd匿名用户所使用的虚拟用户是ftp,默认的目录是/var/ftp其权限必须是root的属组和属组,操作权限
是755,如果不按照要求就会报错不能够访问;
权限设置如下:
[root@m01 ~]# ls -ld /var/ftp
drwxr-xr-x 3 root root 4096 3月 7 11:50 /var/ftp
[root@m01 ~]# chown -R ftp:ftp /var/ftp/pup
[root@m01 ~]# ls -ld /var/ftp/pub/ #该目录方便匿名用户进行访问;
drwxr-xr-x 2 ftp ftp 4096 3月 7 15:32 /var/ftp/pub/
2、用户使用密码登录的的ftp根目录是其家目录;
3、vsftpd主动模式和被动模式:
(1)主动FTP:
命令连接由客户端发起,数据连接由服务端发起。当开启一个FTP连接时,客户端打开两个任意的非特权本地"N>1024"和"N+1"
端口。客户端从"N>1024"端口连接到FTP服务器的命令"21"端口。然后客户端发送FTP PORT命令将"N+1"端口发送到FTP服务器。
接着服务器会从它自己的数据"20"端口连接到客户端指定的数据"N+1"端口传送数据。
(2)被动FTP:
命令连接和数据连接都由客户端发起,这样就可以解决从服务器到客户端的数据端口的入方向连接被防火墙过滤掉的问题。当开
启一个FTP连接时,客户端打开两个任意的非特权本地"N>1024"和"N+1"端口。客户端从"N>1024"端口连接到FTP服务器的命
令"21"端口。然后客户端发送FTP PASV命令到FTP服务器,服务器会开启一个任意的非特权"N>1024"端口并发送FTP命令将
"N>1024"端口发送给客户端。接着客户端会从数据"N+1"端口连接到服务端指定的数据"N>1024"端口传送数据。
(3)小结:
1)使用主动还是被动模式取决于FTP客户端,而不是服务器。
2)主动模式(PORT):
服务器向客户端敲门,然后客户端开门。
服务端使用21端口进行用户验证及管理,使用20端口进行数据传输;客户端使用1025-65535之间随机端口进行数据传输。
需要FTP服务器防火墙开启20、21端口;需要客户端防火墙开放提供给服务端连接的1024以上的端口号。
3)被动模式(PASV常用):
客户端向服务器敲门,然后服务器开门。
服务端使用21端口进行用户验证及管理,使用1025-65535之间随机端口进行数据传输。客户端使用1025-65535之间随机端口进行数据传输。
需要FTP服务器防火墙开启21端口,及提供给客户端连接的1024以上的端口号。
4)提示:
如果你是通过代理上网的话,就不能用主动模式,因为服务器敲的是上网代理服务器的门,而不是敲客户端的门,而且有时
候,客户端也不是轻易就开门的,因为有防火墙阻挡,除非客户端开放大于1024的高端端口。
5)ftp的port和pasv模式最主要区别就是数据端口连接方式不同,ftp port模式只要开启服务器的21和20端口,而ftp pasv需要
开启服务器大于1024所有tcp端口和21端口。从网络安全的角度来看的话似乎ftp port模式更安全,而ftp pasv更不安全,那么为什
么RFC要在ftp port基础再制定一个ftp pasv模式呢,其实RFC制定ftp pasv模式的主要目的是为了数据传输安全角度出发的,因为:
A、ftp port使用固定20端口进行传输数据,那么作为黑客很容使用sniffer等探嗅器抓取ftp数据,这样一来通过ftp port模式传输数
据很容易被黑客窃取,因此使用pasv方式来架设ftp server是最安全绝佳方案。
B、如果作为一个有经验的网络管理员就会发现使用ftp pasv方式会给网络安全很大隐患,那就是ftp pasv需要开启服务器tcp大于
1024所有端口,这样对服务器的安全保护是非常不利的。在此我建议两种方法来完善FTP Pasv模式的端口开放问题,第一种就是使
用弱洞扫描工具比如Xscan找出服务器开放的端口,然后使用acl把端口deny掉,另外一种方法就是使用具有状态检测防火墙开启
ftp pasv的端口。在ftp pasv模式下是使用状态检测防火墙比acl最大的好处就是使用状态检测防火墙只要开启ftp 21端口就可以了,
状态检测防火墙会检测客户端口连接ftp server的21命令端口,一但检测客户端使用ftp 21命令端口然后就会允许这个Session使用
ftp服务器大于1024端口,而其他方式是无法直接访问ftp服务器大于1024端口。通过状态检测防火墙就可以保证ftp 服务器大于
1024端口只对FTP Session开放了。目前像IPTable、ISA Server 2000/2004/2006、以及主流硬件防火墙都可以支持状态检测。
C、因此如果只是简单的为了文件共享,完全可以禁用PASV模式,解除开放大量端口的威胁,同时也为防火墙的设置带来便利。不幸
的是,FTP工具或者浏览器默认使用的都是PASV模式连接FTP服务器,因此必须要使vsftpd在开启了防火墙的情况下,也能够支持PASV
模式进行数据访问。
4、开启主动模式的方法:
connect_from_port_20=YES
pasv_enable=NO
5、开启被动模式的方法:
connect_from_port_20=NO
pasv_enable=YES
pasv_min_port=1024
pasv_max_port=65536
6、VSFTP中文说明:
98、配置ftp服务器(vsftpd)的更多相关文章
- ubuntu 配置ftp服务器 vsftpd
1. 更新库,否则会可能有库过时不匹配报错. sudo apt-get update 2. 安装vsftpd sudo apt-get install vsftpd 3. 判断vsftpd是否安装成功 ...
- 安装与配置FTP服务器
概: 文件传输协议 (File Transfer Protocol,FTP),用于在网络上进行文件传输的协议.如果用户需要将文件从本机发送到另一台计算机,可以使用FTP上传操作:反之,用户可以使用 ...
- Centos 6.5使用vsftpd配置FTP服务器教程
Centos 6.5使用vsftpd配置FTP服务器教程什么是vsftpd vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序.特点是小巧轻快,安全易用.vsftpd 的名字代表”ver ...
- 腾讯云服务器linux centOS7.4 搭建ftp服务器 vsftpd
腾讯云服务器linux centos 7.4 搭建ftp服务器 vsftpd 在centos 7.3测试也是OK的,其它版本没有实验 # 安装 vsftpd $ yum install vsftpd ...
- 腾讯云服务器linux Ubuntu操作系统搭建ftp服务器vsftpd
腾讯云服务器linux Ubuntu操作系统安装ftp服务器vsftpd 操作系统: Ubuntu Server 16.04.1 LTS 64位 下面我将系统重装, 一步一步从头开始,安装FTP服务器 ...
- windows2003通过iis配置ftp服务器
以前习惯于用filezilla作为windows的ftp服务器,但是现在新版本的filezilla已经不支持windows2003了,所以趁机试一下iis配置ftp服务器. 前面都是很常规的配置 参考 ...
- Windows Server 2003 下如何安装及配置 FTP 服务器(转)
Windows Server 2003 下如何安装及配置 FTP 服务器 一.安装 FTP 服务器组件: 写在这里的一点 : 安装及配置 FTP 服务器之前 , 必须先手工配置服务器本身的 IP 地址 ...
- H3C配置FTP服务器
H3C配置FTP服务器 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.FTP协议简介 1.FTP协议是互联网上广泛使用的文件传输协议 FTP文件传送协议(File Transf ...
- win7下安装配置ftp服务器
1. win7操作系统自带了ftp组件,所以不需要另外下载.只需要在控制面板中,添加或删除组件中启用即可. 2. 在管理上,ftp和iis是属于同一个目录的.ftp也可以算是internet info ...
- 在windwo server2008服务器上配置ftp服务器、及配置phpstrom工具、实现项目同步。
在windwo server2008服务器上配置ftp服务器.及配置phpstrom工具.实现项目同步. 在windwo server2008服务器上配置ftp服务器 参考该篇文章:http://bl ...
随机推荐
- 折腾gcc/g++链接时.o文件及库的顺序问题
gcc/g++链接时.o文件以及库的顺序问题 1 写在前面 最近换了xubuntu12.4,把原来的项目co出来编译的时候报"undefined reference to".猜测是 ...
- linux服务器默认使用中文字符集zh_CN.UTF-8
linux服务器默认使用中文字符集zh_CN.UTF-8 一.问题描述和相关概念 linux服务器的字符集设置可能影响到网站页面出现 "???" 等问号乱码,还有可能导致文件中的汉 ...
- rsync同步遇到的报错和解决办法
rsync同步遇到的报错和解决办法 科技小能手 2017-11-12 18:27:00 浏览1125 配置 code 同步 open stream file read 在同步的客户端操作: [ ...
- Centos7 LVM管理的逻辑卷根目录扩容和/var目录扩容
Centos7 LVM管理的逻辑卷根目录扩容 fdisk /dev/sdb #对新加磁盘进行分区操作pvcreate /dev/sdb1 #创建一个物理卷vgs #查看现有的卷组vgextend ce ...
- json字符串和字典的区别
json字符串和字典的区别: json: (JavaScript Object Notation)的首字母缩写,字面的意思是(javascript对象表示法),这里说的json指的是类似于javasc ...
- [Django高级之forms组件]
[Django高级之forms组件] forms组件之校验字段 # 第一步:定义一个类,继承forms.Form # 第二步:在类中写字段,要校验的字段,字段属性就是校验规则 # 第三步:实例化得到一 ...
- Lombok中的@Builder注解
1.前言 今天在看项目代码的时候, 遇到了实体类上加@Builder注解, 之前在开发的时候, 一直没有用过这个注解, 便兴致勃勃地去查了一下资料, 它也是Lombok中的注解, 我们都知道Lombo ...
- 通过Maven打jar包&运行
运行命令:java -jar [包名] https://www.cnblogs.com/jinjiyese153/p/9374015.html
- 使用kubeadm部署一套高可用k8s集群
使用kubeadm部署一套高可用k8s集群 有疑问的地方可以看官方文档 准备环境 我的机器如下, 系统为ubuntu20.04, kubernetes版本1.21.0 hostname IP 硬件配置 ...
- 开放神经网络交换(ONNX)工具
开放神经网络交换(ONNX)工具 开放神经网络交换(ONNX)是一个开放的生态系统,它使人工智能开发人员能够在项目发展过程中选择正确的工具.ONNX为人工智能模型提供了一种开源格式,包括深度学习和传统 ...