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地址

windows向centos传输文件失败 centos传输文件到服务器_客户端

浏览器没有上传功能,要想上传文件,可以使用工具

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/
查看下效果

windows向centos传输文件失败 centos传输文件到服务器_服务器_02




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服务器文件系统

一个文件服务器,对应多个客户端

windows向centos传输文件失败 centos传输文件到服务器_客户端_03


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