ftp文件共享服务详解

 ftp

文件共享服务,文件的上传下载 跨平台,tcp协议 21号(命令端口) 20号(数据端口,主动模式) 默认情况

ftp服务运行被动模式

vsftpd:软件 非常安全的
rpm -qi vsftpd
vsftpd is a Very Secure FTP daemon. It was written completely from
scratch.

主动模式:
被动模式:
验证:
默认是在被动模式下,被动模式和主动模式可以切换

主动:
server client

20 21 n m
<-------------

-------------->

---------------------------------------->

<---------------------------------------

被动:
server client
随机端口 21 n m
3000-3005 <---------------

---------------->

<--------------------------------------------

---------------------------------------------

客户端工具:
windows:firefox、ie、fileZilla
linux:lftp、ftp、sftp

思路:
1、关闭防火墙和selinux
2、配置yum源
3、软件三步曲(安装|确认是否安装成功|查看软件列表)
4、了解配置文件
5、通过需求修改配置文件
6、测试验证

步骤:
1、
2、
3、
rpm -qc vsftpd
/etc/logrotate.d/vsftpd 日志轮转
/etc/pam.d/vsftpd 验证
/etc/vsftpd/ftpusers 用户访问控制列表(黑名单)
/etc/vsftpd/user_list 用户访问控制列表(可黑可白)
/etc/vsftpd/vsftpd.conf 主配置文件

/var/ftp 匿名用户的默认目录
/var/ftp/pub 匿名用户的扩展目录

/usr/sbin/vsftpd 二进制命令
/etc/rc.d/init.d/vsftpd 启动脚本

4、了解配置文件
anon:代表匿名用户
local:代表本地用户
# cat /etc/vsftpd/vsftpd.conf |grep -v ^#
anonymous_enable=YES 开启匿名用户
local_enable=YES 开启本地用户
write_enable=YES 本地用户可写
local_umask=022 ——>755 本地用户的默认权限
dirmessage_enable=YES 开启访问消息
xferlog_enable=YES 启用日志
connect_from_port_20=YES 默认开启20号端口(支持主动和被动模式,默认是被动模式)
xferlog_std_format=YES 日志格式
listen=YES 独立服务

pam_service_name=vsftpd 认证模块
userlist_enable=YES 启用用户列表
tcp_wrappers=YES 支持tcp_wrappers功能

5、不修改配置文件
测试验证
client:192.168.5.2
yum -y install lftp ftp
结果:本地用户可以上传下载文件;匿名用户不可以上传只能下载文件

demo1:允许匿名用户上传文件、创建目录重命名等

1、vim /etc/vsftpd/vsftpd.conf

anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
2、重启服务

注意:
不要把/var/ftp目录的权限修改为777或者o+w,因为会导致报错。
通常的做法是在/var/ftp目录里创建一个子目录,修改子目录的权限为777就可以,匿名用户上传的文件保存到子目录里就可以。

2、匿名用户下载其他匿名用户所上传的文件
vim /etc/vsftpd/vsftpd.conf

anon_umask=022

重启服务

demo2:开启本地用户的消息功能

useradd user01
echo “welcome to uplook” >/home/user01/.message

banner_file=/etc/vsftpd/banner
vim /etc/vsftpd/banner
@@@@@@@@@@@@
@ @
@ ^ ^ @
@ _ @

demo3:将所有本地用户禁锢在自己的家里面

chroot_local_user=YES 所有用户都禁锢

需求1:只允许user01用户来回切换,其他用户禁锢
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
echo user01>/etc/vsftpd/chroot_list
需求2:只禁锢user02用户,其他人都可以切换
#chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

demo4:


ftp服务自身的用户访问控制

ftpusers 黑名单
user_list 可黑可白

echo user01 >ftpusers
# ftp 192.168.5.1
Connected to 192.168.5.1 (192.168.5.1).
[email protected]@@@@@@@@@@@
[email protected] @
[email protected] ^ ^ @
[email protected] _ @
220
Name (192.168.5.1:root): user01
331 Please specify the password.
Password:
530 Login incorrect. userlist_deny=NO,echo user01>> user_list
Login failed.
ftp>

# ftp 192.168.5.1
Connected to 192.168.5.1 (192.168.5.1).
220 (vsFTPd 2.2.2)
Name (192.168.5.1:root): user01
530 Permission denied. userlist_deny=YES(default) echo user01>>ftpusers
Login failed.

如果ftpusers和user_list文件冲突,拒绝优先。

demo5:更改匿名用户和本地用户的ftp家目录
默认:anon的家 /var/ftp
local的家 /home/$username

mkdir /ftp/data -p
mkdir /local/data -p

vim vsftpd.conf

anon_root=/ftp/data
local_root=/local/data

其他访问控制:

max_clients:允许多少个链接(最大连接数)默认2000
max_per_ip:每个IP地址的最大连接数 默认没有限制

local_max_rate:限制本地用户下载速率,默认没有限制

tcp_wrappers:访问控制的一个工具,类似防火墙,但是其功能没有防火墙强大;配置简单。
/etc/hosts.deny
/etc/hosts.allow

./configure --help --enable-libwrap
rpm

# ldd /usr/sbin/vsftpd |grep libwrap
libwrap.so.0 => /lib64/libwrap.so.0 (0x00007f13adcf9000)

# ldd /usr/sbin/sshd|grep libwrap
libwrap.so.0 => /lib64/libwrap.so.0 (0x00007f9a0f28e000)

访问控制机制:先去匹配/etc/hosts.allow,再去匹配/etc/hosts.deny;如果两个文件都没有,全部都允许;如果两个文件都存在hosts.allow优先

需求:
vim /etc/hosts.deny
vsftpd,sshd:all 禁止所有人
vsftpd:192.168.5.0/255.255.255.0 EXCEPT 192.168.5.254
vsftpd:all EXCEPT .uplookg.com
vsftpd:192.168.5.1

注意:子网掩码不支持/24/8/16这种写法

练习一:
搭建一个ftp服务器,要求如下:
1、匿名用户可以上传下载文件,同时也可以下载其他人所上传的文件,并且所有匿名用户上传的文件的属主都是root,放在/ftp/data目录里。
mkdir /ftp/data -p
vim /etc/vsftpd/vsftpd.conf
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_umask=022
chown_uploads=YES
chown_username=root
anon_root=/ftp

重启服务:

chmod o+w /ftp/data

2、创建一个本地用户zhangsan(自己名字),可以访问ftp服务但是不能登录操作系统,并且只能在自己的家里活动。
useradd zhangsan -s /sbin/nologin
chroot_local_user=YES 禁锢所有本地用户

3、zhangsan用户可以上传下载文件,并且所上传的文件都放在/local/data下
mkdir /local/data -p
vim vsftpd.conf
...
local_root=/local/data
4、在你的本地主机/tmp/zhangsan(自己名字)目录下创建5个文件,通过客户端工具以匿名用户身份将整个以你名字命名的目录上传到服务器192.168.5.1上。
mkdir /tmp/zhangsan
touch /tmp/zhangsan/file{1..5}

lftp 192.168.5.1:/> mirror -R /tmp/zhangsan/ data/ 上传本地目录到远端

5、使用客户端工具(除了浏览器)用本地用户redhat(密码123)下载192.168.5.1上的“2016-04-18”目录到你的本地/tmp/zhangsan(自己名字)里
lftp [email protected]:~> mirror /ftp/2016-04-18/ /tmp/zhangsan/ 下载远端到本地
6、不允许192.168.5.2访问你的ftp服务器,但是只允许192.168.5.1访问
vim /etc/hosts.deny
vsftpd:192.168.5.2

vim /etc/hosts.allow
vsftpd:all EXCEPT 192.168.5.2 不生效,和hosts.deny一起使用

7、把被动连接的端口范围控制在2000~2050之间
pasv_enable=YES 可以不写,默认就是被动模式
pasv_max_port=2050
pasv_min_port=2000

练习二:
将vsftpd服务托管给xinetd服务管理
# service xinetd status
xinetd (pid 18628) is running...
创建子配置文件在/etc/xientd.d/vsftpd
# cat vsftpd
# default: off
# description: The rsync server is a good addition to an ftp server, as it \
# allows crc checksumming etc.
service ftp
{
disable = no
flags = IPv4
socket_type = stream
wait = no
user = root
server = /usr/sbin/vsftpd
log_on_failure += USERID
}

vim /etc/vsftpd/vsftpd.conf
...
linsen=NO

重启服务xined:
service xinetd restart

# netstat -tlnp|grep 21
tcp 0 0 :::21 :::* LISTEN 18628/xinetd

测试验证

时间: 2024-10-12 16:15:06

ftp文件共享服务详解的相关文章

实战NFS文件共享存储详解

实战NFS文件共享存储详解 对Linux有兴趣的朋友加入QQ群:476794643 在线交流 本文防盗链:http://zhang789.blog.51cto.com 目录 NFS简介 NFS工作流程 使用NFS的好处 NFS应用环境 NFS服务器安装 NFS客户端配置 实例:创建web共享 NFS简介 NFS(Network File System)即网络文件系统,Sun公司开发,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源.在NFS的应用中,本

HTTPD服务详解

HTTPD服务详解 目录 一.httpd的程序版本 二.httpd的特性 三.httpd的功能特性 四.httpd使用 1.httpd的安装 2.程序环境 Httpd-2.2 (Centos6) http-2.4 (Centos7) 五.http配置相关说明 1.修改监听的ip和port 2.持久连接 3.MPM 4.DSO配置指令模块加载 5.定义Main'server文档页面路径 6.站点访问控制 文件系统路径 URL路径 7.<Directory> 中基于源地址实现访问控制 Option

FTP 文件共享服务

FTP 文件共享服务 基于tcp协议  端口:tcp 21(三次握手建立连接):tcp 20(数据传输) 工作模式  应用层 根据客户端的角度划分的: [主动模式] 客户端开启一个1024以上的动态端口如:(2000) -->连接服务器21号端口进行三次握手建立连接,三次握手的过程中会有延迟,延迟过程中: 客户端再次开启一个比上一个端口大1的端口(2001),监听 -->客户端给服务器发送命令Port2001,告知服务器,客户端的数据传输端口的2001 -->服务器端开启20端口与客户端

CentOS 默认基本服务详解

1.使用chkconfig --list来查看安装的服务,比如我这里最小化安装后的一些服务 [[email protected] ~]# chkconfig --list auditd          0:off   1:off  2:on    3:on    4:on   5:on    6:off crond           0:off   1:off  2:on    3:on    4:on   5:on    6:off ip6tables       0:off  1:off

部署ftp文件共享服务

部署ftp文件共享服务 一.部署ftp服务 常用的部署网络服务的步骤: 部署 FTP 服务器 ? FTP ( 文件传输协议 ) 是 INTERNET 上仍常用的最老的网络协议之一 , 它为系统提供了通过网络与远程服务器进行传输的简单方法 ? 在 RED HAT ENTREPRISE LINUX 6 中. FTP 服务器包的名称为 VSFTPD , 它代表 Very Secure File Transfer Protocol Damon 服务器名称也叫做 vsftpd ? 默认配置文件让 ANON

winxp计算机管理中服务详解

winxp计算机管理中服务详解01 http://blog.sina.com.cn/s/blog_60f923b50100efy9.html http://blog.sina.com.cn/s/blog_b08c76100102vijm.html winxp计算机管理中服务详解02 http://blog.sina.com.cn/s/blog_60f923b50100efz3.html http://blog.sina.com.cn/s/blog_b08c76100102vijn.html

linux笔记 2-9 ftp文件共享服务

*****************9.ftp文件共享服务*************** 为保证实验正常进行,需修改配置文件 ##1.安装ftp##yum install vsftpd -y             //安装软件systemctl start vsftpd            //启动软件服务firewall-cmd --list-all           //查看火墙中允许的服务firewall-cmd --permanent --add-service=ftp //将ftp

CentOS5启用Telnet服务详解(转载)

CentOS5启用Telnet服务详解 配置步骤如下: 一.安装telnet软件包(通常需要两个) 1. telnet(或 telnet-client),这个软件包提供telnet 客户端程序: 2. telnet-server,这个软件包提供telnet 服务器端程序: 安装之前先检查系统是否已安装这些软件包,方法如下: [[email protected] /]#rpm –qa |grep telnet 如果没有检测到软件包,则需要进行安装.CentOS5默认已安装了telnet软件包,te

配置Samba服务器配置现实文件共享(详解)

配置Samba服务器配置现实文件共享     一:实验环境 Samba服务端:xuegod63.cn   IP:192.168.1.63 Samba客户端:xuegod64.cn   IP:192.168.1.64 1:关闭iptables #很重要 2:关闭selinux 二:实验目标 1.samba服务器概述 2.samba服务器配置文件 3.实战,举例 三:实验代码 第一块:Samba服务概述:     Samba 最先在Linux 和Windows 两个平台之间架起了一座桥梁,正是由于S