目录
1.1、客户端用端口n连接服务器端的21号端口,建立连接并使用PORT命令告知服务器开启了n+1端口
1.2、连接建立后,服务器使用20端口主动向客户端的n+1端口发送连接,以建立数据连接
2.1、客户端使用端口n连接FTP的21号端口,告知服务器使用被动模式
2.2、控制连接建立后,服务器建立端口P,使用PASV命令并告知客户端
2.3、客户端收到端口P后,使用n+1端口连接FTP的P端口,建立数据连接
一、 FTP
(一)概述
FTP:linux下最常见的文件服务器,工作于应用层,实现文件传输
FTP:file transfer protocol 文件传输协议
(二)FTP连接类型
1、 命令连接
客户端发起请求,服务器响应,默认一直保持连接
2、 数据连接
按需打开,按需关闭,与命令连接相关联,有可能同时打开多个数据连接
(三)端口
控制连接 TCP/21
数据连接 20/随机端口
(四)工作模式
1、 主动模式
1.1、客户端用端口n连接服务器端的21号端口,建立连接并使用PORT命令告知服务器开启了n+1端口
netstat -anptu | grep vsftpd
netstat -anptl
两种方式皆可查看监听
1.2、连接建立后,服务器使用20端口主动向客户端的n+1端口发送连接,以建立数据连接
2、 被动模式
2.1、客户端使用端口n连接FTP的21号端口,告知服务器使用被动模式
2.2、控制连接建立后,服务器建立端口P,使用PASV命令并告知客户端
2.3、客户端收到端口P后,使用n+1端口连接FTP的P端口,建立数据连接
(五)安装配置
1、 服务名
vsftpd
2、 主配置文件
/etc/vsftpd/vsftpd.conf
3、 用户控制文件
/etc/vsftpd/ftpusers
/etc/vsftpd/user_list
4、 用户验证类型
4.1、 匿名用户
是一种最不安全的模式,任何人都可无需密码验证而直接登录到FTP服务器
4.2、 本地用户
是通过linux系统本地的账号密码进行验证登录,相比较匿名开放模式更安全,配置也比较简单。
4.3、 虚拟用户
5、 安装
服务器安装vsftpd软件
客户端安装ftp,否则无法使用ftp命令
登录时,直接使用ftp命令加上服务器IP地址
6、 匿名用户验证
6.1、 用户名
ftp或者anonymous
6.2、 密码
匿名用户登录默认无密码
6.3、 工作目录
/var/ftp、/var/ftp/pub
6.4、 目录权限
更改工作目录pub/的权限,使匿名用户能够进行写入的操作
cd /var/ftp
ls -lh
chmod 777 pub/
ls -lh
6.5、 可选配置项
anon_upload_enable=[YES|NO]
是否允许匿名用户上传文件
anon_mkdir_write_enable=[YES|NO]
是否允许匿名用户创建目录
anon_other_write_enable=[YES|NO]
是否开放匿名用户的其他写入权限(删除、改名)
7、 本地用户验证
7.1、 用户名
服务器本地用户
tail /etc/passwd 默认查看后十行
7.2、 密码
服务器本地用户密码
7.3、 工作目录
本地用户的家目录
7.4、 可选配置项
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文件中列出被不限制的用户的ls列表chroot_list_file=/etc/vsftpd/chroot_list
7.5、 本地用户访问控制
userlist_enable=YES
userlist_deny=YES
不允许/etc/vsftpd/user_list文件中出现的用户名登录FTP
userlist_enable=YES
userlist_deny=NO
仅允许/etc/vsftpd/user_list文件中出现的用户名登录FTP
vim /etc/vsftpd/ftpusers
不允许/etc/vsftpd/ftpusers文件中出现的用户名登录FTP,无论user_list如何设置
7.6、 本地用户使用被动模式传输
配置项
vim /etc/vsftp/vsftpd.conf
在配置文件最下方插入
pasv_enable=YES 启用被动模式
pasv_min_port=2001 被动模式使用的最小端口号
pasv_max_port=2005 被动模式使用的最大端口号
注:被动模式使用的最大最小端口号数字为自设,可以更改
验证
服务器主配置文件添加上述3条记录
客户端下载文件时,查看端口号
注:文件内容太小的话再查看时显示不到
dd if=/dev/zero of=1.txt bs=100MB count=1
这条命令的作用是将/dev/zero中的数据写入到名为1.txt的文件中,每次写入的数据块大小为100MB,总共写入1次。其中,“if=/dev/zero”表示输入源为/dev/zero设备,它会不断产生字节为0的数据流;“of=1.txt”表示输出目标为名为1.txt的文件;“bs=100MB”表示每次写入的数据块大小为100MB;“count=1”表示总共写入1次。此命令的执行将会在1.txt文件中写入100MB的0字节数据。
现在再进行传输内容就可以查看到
8、 安装流程及验证
8.1、 配置基础环境
关闭防火墙,网络图形化管理与SElinux以及开机自启
systemctl stop firewalld && systemctl disable firewalld
systemctl stop NetworkManager ; systemctl disable NetworkManager
setenforce 0
vim /etc/selinux/config
将SELINUX=enforcing改为SELINUX=disabled
配置网络参数信息
vim /etc/sysconfig/network-scripts/ifcfg-ens33
挂载光盘、配置本地yum源
mount /dev/sr0 /mnt
cd /etc/yum.repos.d
vim local.repo
[local]
name=local
baseurl=file:///mnt
enabled=1
gpgcheck=0
8.2、 安装VSFTP服务端
yum install -y vsftp
8.3、 配置VSFTP服务端
vim /etc/vsftp/vsftpd.conf
8.4、 启动VSFTP服务
systemctl start vsftp 启动服务
systemctl restart vsftpd 重启服务
8.5、 安装FTP客户端
yum install -y ftp
8.6、 查看验证
二、 SAMBA
1、服务名
smb
2、主程序
smbd 实现文件共享
TCP/139 TCP/445
systemctl start smbd
netstat -anptu | grep smbd
nmbd 通过NetBIOS实现计算机名解析
3、安装
直接安装samba软件
yum install -y samba
4、主配置文件
/etc/samba/smb.conf
5、主配置文件解析
【global】 全局设置
workgroup=SAMBA 工作组
security=user 安全级别
user 本地用户验证,需要提供用户名密码
server 需要提供用户名密码,可指定其他主机进行身份验证
domain 需要提供用户名密码,可指定DC(域控制器)进行身份验证
【homes】 用户家目录的共享设置
comment 描述信息
readonly 只读
path 路径
write list 可写入的用户和组的列表
writeable 写入
public 所有人访问
【printers】 打印机共享设置
【print$】 自定义共享目录设置
【share】 自定义区域
为手动添加
6、实验
6.1、 samba提供简单文件共享,用户访问
6.1.1、 服务器端
安装samba
yum install -y samba
创建共享目录
更改目录权限
主配置文件中声明共享区域
启动服务
创建用户,设置为samba用户
smbpasswd -a 用户名
6.1.2、 客户端
安装客户端工具
yum -y install samba-client*
客户端查看共享目录
smbclient -U 用户名 -L //服务器地址/共享目录名称
客户端登录samba服务器
smbclient -U 用户名 //服务器地址/共享目录名称
ls 查看
get 下载
put 上传
6.2、 本地映射
win+R访问
使用UNC路径
提示输入用户名密码
映射网络驱动器
6.3、 客户端自动挂载
客户端
创建挂载目录
命令行挂载
mount -t cifs -o username=a1,password=123 //服务器地址/共享目录名称 挂载点
自动挂载文件挂载
//服务器地址/共享目录名称 挂载点 cifs 挂载参数 0 0
6.4、 权限
read only
write list
6.5、 用户别名
服务器
创建用户别名文件
vim /etc/samba/smbusers
a2 = zhangsan
在主配置文件中声明开启别名
username map = /etc/samba/smbusers
保存,重启服务
客户端
使用别名登录samba服务器
6.6、 访问控制
在主配置文件中的全区配置区域声明
hosts allow
允许个别,拒绝所有
hosts deny
拒绝个别,允许所有