FTP NFS与ssh
ftp介绍
文件传输协议(File Transfer Protocol ),基于该协议FTP客户端与服务器可以实现共享文件,上传文件,下载文件。FTP基于TCP协议生成一个虚拟的链接,主要用于控制FTP连接信息,同时再生成一个单独的TCP链接用于FTP数据传输,用户可以通过客户端向FTP服务器端上传、下载、删除文件,FTP服务器可以同时提供给多人使用
FTP服务是Client/Server(简称C/S)模式,基于FTP协议实现FTP文件对外共享及传输的软件称之为FTP服务器源端,客户端程序基于FTP协议,则成为FTP客户端,FTP客户端可以向FTP服务器上传,下载文件
目前主流 FTP服务器端软件包括:vsftpd、ProFTPD、PureFTPd、Wuftpd、Server-U FTP、FileZIla Server等软件,其中Uninx/Linux使用较为广泛的FTP服务端软件为Vsftpd
Ftp传输模式介绍
FTP基于C/S模式,FTP客户端与服务器端有两种传输模式,分别是FTP主动模式、FTP被动模式,主被动模式均是以FTP服务器端为参考
- FTP主动模式:客户端从一个任意端口
N(N>1024)
连接到FTP服务器的port21
命令端口,客户端开始监听端口N+1
,并发送FTP命令port N+1
到FTP服务器,FTP服务器以数据端口(20
)连接到客户端指定的数据端口(N+1
) - FTP被动模式:客户端从一个任意端口
N(N>1024)
连接到FTP服务器的port21
命令端口,客户端开始监听端口N+1
,客户端提交PASV
命令,服务器会开启一个任意的端口(P>1024
),并发送PORT P
命令给客户端。客户端发起从本地端口N+1
到服务器的端口P
的连接用来传输数据
企业实际环境中,如果FTP客户端与FTP服务器均开放防火墙,FTP需以主动模式工作,这样只需要在FTP服务器端防火墙规则中,开放20,21端口即可(控制端口:21 访问端口20)
Vsftp服务器使用说明
Vsftp服务器简介
非常安全的FTP服务器进程(Very Secure FTP daemon),Vsftpd在Uninx/Linux发行版中最主流的FTP服务器程序,优点小巧轻快,安全易用、稳定高效、满足企业跨部门、多用式的使用(1000用户)等
Vsftpd基于GPL开源协议发布,在中小企业中得到广泛的应用,Vsftpd可以快速上手,基于Vsftpd虚拟用户方式,访问验证更安全。Vsftpd还可以基于MYSQL数据库做安全验证,多重安全防火
Vsftp的登录类型
VSFTPD提供了系统用户、匿名用户、虚拟用户三种不同的登录模式。所有的虚拟用户会映射成一个系统用户,访问时的文件目录为此系统用户的家目录;匿名用户也是虚拟用户,映射的系统用户为ftp,详细信息可以通过man vsftpd.conf查看
Vsftp安装配置
环境:CentOS 7
需要安装epel源 请先安装阿里的epel源
yum install -y vsftpd* pam* db4*
# vsftpd ftp软件
# pam 认证模块
# db4 支持文件数据库
vsftpd配置文件说明
配置文件 | 作用 |
/etc/vsftpd/vsftpd.conf | vsftpd的核心配置文件 |
/etc/vsftpd/ftpusers | 用于指定那些用户不能访问FTP服务器 |
/etc/vsftpd/user_list | 指定允许使用vsftpd的用户列表文件 |
/etc/vsftpd/vsftpd_conf_migrate.sh | 是vsftpd操作的一些变量和设置脚本 |
/var/ftp/ | 默认情况下匿名用户的根目录 |
vsftp配置详解
vsftpd配置匿名用户
1、编辑配置文件
[root@catdexin-pc ~]# vim /etc/vsftpd/vsftpd.conf
write_enable=YES
# 设置匿名用户的权限掩码
anon_umask=022
anonymous_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
# 是否允许匿名用户有其他写入权限
anon_other_write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
vsftpd配置本地(系统)用户
[root@catdexin-pc ~]# vim /etc/vsftpd/vsftpd.conf
local_enable=YES
local_umask=077
chroot_local_user=YES
allow_writeable_chroot=YES
write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
userlist_deny=NO
tcp_wrappers=YES
ps: 本地用户登录的文件目录就是各自的家目录
常用的本用户用FTP配置项
local_enable=YES # 是否允许本地系统用户访问
local_umask=022 # 本地用户所上传文件的权限掩码
local_root=/var/ftp # 设置本地用户的FTP根目录
chroot_list_enable=YES # 表示是否开启chroot的环境,默认没有开启
chroot_list_file=/etc/vsftpd/chroot_list # 表示写在/etc/vsftpd/chroot_list文件里的用户是不可以进出chroot环境的,默认是可以的
chroot_local_user=YES # 表示写在/etc/vsftpd/chroot_list文件里的用户是可以进出chroot环境的,和上面相反
local_max_rate=0 # 限制最大传输速度(kb/s),0为无限制
重新启动vsftpd服务
[root@catdexin-pc ~]# systemctl restart vsftpd
[root@catdexin-pc ~]# ps -aux|grep vsftpd
root 27522 0.0 0.0 53288 568 ? Ss 02:24 0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
查看ftp分析的效果
浏览器访问 ftp://服务器IP地址
浏览器没有上传功能,要想上传文件,可以使用工具
vsftp配置虚拟用户
1、简历虚拟FTP用户账号
useradd -s /sbin/nologin vu
2、创建虚拟用户文件
[root@catdexin-pc ~]# vim /etc/vsftpd/user
user01
123456
user02
123456
# 奇数行代表用户名 偶数行代表密码
3、创建数据文件
通过db_load工具创建出Berkeley DB格式的数据库文件
-
-f
指定数据源文件 -
-T
允许非Berkeley DB的应用程序使用文本格式转换的DB数据文件 -
-t
hash 读取文件的基本方法
[root@catdexin-pc vsftpd]# db_load -T -t hash -f user user.db
[root@catdexin-pc vsftpd]# ls
ftpusers user user.db user_list vsftpd.conf vsftpd_conf_migrate.sh
4、建立支持虚拟用户的PAM认证文件
[root@catdexin-pc vsftpd]# vim /etc/pam.d/vsftpd.vu
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/user
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/user
ps:对应刚才生成的user.db文件
5、修改配置文件
write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
userlist_enable=YES
tcp_wrappers=YES
allow_writeable_chroot=YES
guest_enable=YES
guest_username=vu
pam_service_name=vsftpd.vu
local_enable=YES
local_umask=077
chroot_local_user=YES
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/user_dir
6、为用户建立独立的配置目录以及文件
[root@catdexin-pc vsftpd]# mkdir /etc/vsftpd/user_dir
[root@catdexin-pc vsftpd]# vim /etc/vsftpd/user_dir/user01
local_root=/etc/vsftpd/data
[root@catdexin-pc vsftpd]# mkdir data
[root@catdexin-pc vsftpd]# chmod 777 data/
查看下效果
LinuxFTP客户端下载FTP分享的文件
方式一 浏览器直接下载 firefox
ie
方式二 lftp
下载
# 安装lftp
yum install -y lftp
lftp FTPServerIP # 接目标服务器
get FileName # 下载文件
mirror DirName # 下载文件夹
put FileName # 上传文件
ny@CatdeXin-ubantu:~$ lftp 192.168.61.132
lftp 192.168.61.132:~> ls
-rw-r--r-- 1 0 0 168638 Feb 26 08:28 a.jpg
drwxr-xr-x 2 0 0 6 Oct 13 16:10 pub
lftp 192.168.61.132:/> get a.jpg
传输 168638 字节
lftp 192.168.61.132:/> mirror pub
lftp 192.168.61.132:/> exit
# 下载的地址就是你所登录时所在的地址
ny@CatdeXin-ubantu:~$ ls
a.jpg pub
方式三 wget
下载
wget ftp://192.168.61.132/a.jpg
wget ftp://path -O /Path/FileName
yum install -y lftp
开启FTP上传功能
配置文件简介
用于设定FTP服务器的功能开启或关闭的文件 ~ps: 操作前先备份一份
/etc/vsftpd/vsftpd.conf
# 启用禁用匿名账户(默认启用 比较方便)
anonymous_enable=YES
# 启用文件上传能力
#anon_upload_enable=YES
# 启用创建目录能力
#anon_mkdir_write_enable=YES
NFS
NFS: Network File System
网络文件系统,Linux/Unix系统之间共享文件的一种协议
NFS的主要客户端为Linux, 支持多节点同时挂载,以及并发写入
准备测试环境
nas 192.168.61.132
web 192.168.61.133
web 192.168.61.134
web 192.168.61.135
# 注意先关闭防火墙
准备nas(存储端)
安装NFS服务器
# 安装nfs工具
yum -y install nfs-utils
# 创建一个存储网站代码的文件
mkdir /webdata
# 在文件中创建测试文件
[root@catdexin-pc ~]# cat /webdata/index.html
'<h3>nfs test 2021-02-01 file</h3>'
配置NFS服务器
vim /etc/exports
[root@catdexin-pc ~]# vim /etc/exports
/webdata 192.168.61.0/24(rw)
# webdata 指的是发布资源的目录
# 192.168.61.0/24 允许访问NFS的客户机 根据网段来定
# rw 可读可写 ps: 一般情况只给读的权限 这里只是做事
启动NFS服务器
# 启动nfs服务器
systemctl start nfs-server
# 将nfs服务设置为开机自启
systemctl enable nfs-server
web1 web2 web3 客户端
安装NFS客户端
yum install -y nfs-utils httpd
查看存储端共享
# 查询NFS服务器可用目录
showmount -e 192.168.61.132
[root@catdexin-pc ~]# showmount -e 192.168.61.132
Export list for 192.168.61.132:
/webdata 192.168.61.0/24
手动挂载
mount -t nfs 192.168.61.132:/webdata /var/www/html
: 分隔符
# 如果取消挂载,请使用umount /var/www/html
查看挂载效果
# df指令也可以查看效果
[root@catdexin-pc ~]# ll /var/www/html/
总用量 4
-rw-r--r-- 1 root root 34 3月 1 10:21 index.html
其他服务器也这样配一下
查看一下效果
- 分别访问三个客户端开启的网站服务查看一下效果
NFS通过网络分发文件,集中管理多台web服务器文件系统
一个文件服务器,对应多个客户端
SSH
查询SSH是否安装
rmp -qa|grep ssh
安装ssh
yum install -y openssh-server
SSH服务管理
启动服务
systemctl start sshd
查看端口
netstat -antp|grep sshd
22端口提供着ssh服务
开机启动
systemctl enable sshd
默认启动
使用SSH远程管理
ssh 账户名@IP地址
C:\Users\admin>ssh root@192.168.61.132