前言
FTP(File Transfer Protocol)是一种用于在网络上传输文件的标准协议。它允许用户通过将文件从一个计算机传输到另一个计算机来共享和访问文件。
一、概述
FTP:linux下最常见的文件服务器,工作于应用层,实现文件传输
FTP:file transfer protocol 文件传输协议
二、FTP连接类型
1、命令连接
客户端发起请求,服务器响应
默认一直保持连接
2、数据连接
按需打开,按需关闭,与命令连接相关联
有可能同时打开多个数据连接
三、端口
控制连接 TCP/21
数据连接 20/随机端口
四、工作模式
1、主动模式
客户端用端口n连接服务器端的21号端口,建立连接并使用PORT命令告知服务器开启了
n+1端口
连接建立后,服务器使用20端口主动向客户端的n+1端口发送连接,以建立数据连接
2、被动模式
客户端使用端口n连接FTP的21号端口,告知服务器使用被动模式
控制连接建立后,服务器建立端口P,使用PASV命令并告知客户端
客户端收到端口P后,使用n+1端口连接FTP的P端口,建立数据连接
五、基本配置安装
1.1关闭防火墙
systemctl stop firewalld && systemctl disable firewalld
1.2改为宽容模式
setenforce 0
1.3配置静态IP服务器和客户端的IP都要配置
vim /etc/sysconfig/network-scripts/ifcfg-ens33
服务器配置
客户端配置
1.4重启网络
systemctl restart network
1.5配置yum源
cd /etc/yum.repos.d/
mkdir backup
mv CentOS-* backup
vim local.repo
[local]
name=local
baseurl=file:///mnt
enabled=1
gpgcheck=0
mount /dev/sr0 /mnt
服务器安装vsftpd
yum -y install vsftpd
客户端安装ftp
yum -y install ftp
六、安装配置
1、服务名
vsftpd
2、主配置文件
/etc/vsftpd/vsftpd.conf
3、用户控制文件
/etc/vsftpd/ftpusers
/etc/vsftpd/user_list
4、用户验证类型
匿名用户
是一种最不安全的模式,任何人都可无需密码验证而直接登录到FTP服务器
本地用户
是通过linux系统本地的账号密码进行验证登录,相比较匿名开放模式更安全,配置也比较简单。
虚拟用户
5、安装
服务器安装vsftpd软件
客户端安装ftp,否则无法使用ftp命令
登录时,直接使用ftp命令加上服务器IP地址
6、 匿名用户验证
用户名
ftp或者anonymous
密码 无
工作目录
/var/ftp、/var/ftp/pub
目录权限
服务器更改工作目录pub/的权限,使匿名用户能够进行写入的操作
vim /etc/vsftpd/vsftpb.conf
试一下客户端是否可以下载文件
可选配置项
anon_upload_enable=[YES|NO] 是否允许匿名用户上传文件
anon_mkdir_write_enable=[YES|NO] 是否允许匿名用户创建目录
anon_other_write_enable=[YES|NO] 是否开放匿名用户的其他写入权限(删除、改名)
设置完毕一定要从新启动一下服务
systemctl restart vsftpd
7、本地用户验证
用户名 服务器本地用户
密码 本地用户密码
工作目录 本地用户的家目录
可选配置项
local_enable=[YES|NO] 是否允许本地用户登录FTP
local_umask=022 本地用户上传文件的umask值
local_root=/var/ftp 本地用户的FTP根目录
chroot_local_user=[YES|NO] 是否将用户权限禁锢在FTP目录,确保安全
禁锢之后上传不了文件
不禁锢
allow_writeable_chroot=YES 是否允许写入
chroot_list_enable=YES|NO 是否启用chroot_list_file
在/etc/vsftpd/chroot_list文件中列出被不限制的用户的列表
chroot_list_file=/etc/vsftpd/chroot_list
本地用户访问控制
不允许/etc/vsftpd/user_list文件中出现的用户名登录FTP
userlist_enable=YES
userlist_deny=YES
允许/etc/vsftpd/user_list文件中出现的用户名登录FTP
userlist_enable=YES
userlist_deny=NO
ftpusers
不允许/etc/vsftpd/ftpusers文件中出现的用户名登录FTP,无论user_list如何设置
本地用户使用被动模式传输
配置项
pasv_enable=YES 启用被动模式
pasv_min_port=2001 被动模式使用的最小端口号
pasv_max_port=2005 被动模式使用的最大端口号
vim /etc/vsftpd/vsftpd.conf
验证
服务器主配置文件添加上述3条记录
客户端下载文件时,查看端口号
七 SAMBA服务
1.1服务名
smb
1.2主程序
smbd 实现文件共享
TCP/139 TCP/445
SAMBA服务的监听端口
nmbd 通过NetBIOS实现计算机名解析
1.3安装
直接安装samba软件
1.4主配置文件
/etc/samba/smb.conf
1.5主配置文件解析
【global】 全局设置
workgroup=SAMBA 工作组
security=user 安全级别
user 本地用户验证,需要提供用户名密码
server 需要提供用户名密码,可指定其他主机进行身份验证
domain 需要提供用户名密码,可指定DC(域控制器)进行身份验证
【homes】 用户家目录的共享设置
comment 描述信息
readonly 只读
path 路径
write list 可写入的用户和组的列表
writeable 写入
public 所有人访问
【printers】 打印机共享设置
【print$】 自定义共享目录设置
【share】 自定义区域
1.6 实验
samba提供简单文件共享,用户访问
服务器端
安装samba
创建共享目录
更改目录权限
主配置文件中声明共享区域
vim etc/samba/smb.conf
添加以下这一段
重启服务
启动服务
创建用户,设置为samba用户
smbpasswd -a
客户端
安装客户端工具
yum -y install samba-client*
客户端查看共享目录
smbclient -U 用户名 -L //服务器地址/共享目录名称
客户端登录samba服务器
smbclient -U 用户名 //服务器地址/共享目录名称
客户机看一下
ls 查看
get 下载
put 上传
本地映射
win+R访问
使用UNC路径
提示输入用户名密码
映射网络驱动器
创建文本文档
查看文本文档
客户端自动挂载
客户端
创建挂载目录
命令行挂载
mount -t cifs -o username=a1,password=123 //服务器地址/共享目录名称 挂载点
自动挂载文件挂载
自动挂载
//服务器地址/共享目录名称 挂载点 cifs 挂载参数 0 0
权限
read only
write list
用户别名
服务器
创建用户别名文件
vim /etc/samba/smbusers
a2 = zhangsan lisi
在主配置文件中声明开启别名
username map = /etc/samba/smbusers
保存,重启服务
客户端
使用别名登录samba服务器
访问控制
在主配置文件中的全区配置区域声明
hosts allow 允许个别,拒绝所有
hosts deny 拒绝个别,允许所有