Linux FTP文件共享服务

Linux FTP文件共享服务:

本文章适合的读者:
Linux初、中级用户
开源软件爱好者
大中专院校的学生
社会培训学生
Linux下的开发人员

ftp文件共享
主要用于存储,采用c/s架构,客户端可以通过登录server,去实现文件的上传,删除的操作
ftp工作模式:
主动传输模式:
client使用N端口向ftp的server的21端口进行请求,并且会告诉ftp的server其接收数据的端口为n+1端口,建立连接成功后,ftp的server会使用其20端口和client的n+1端口进行连接,传输数据
优点:服务端配置简单,利于服务端的安全管理,只需要开放21和20端口
缺点:如果客户端开启了防火墙,限制了端口,就有可能接收不了服务端响应的数据
被动传输模式:
client使用N端口向ftp的server的21端口进行请求,并且会告诉ftp的server使用的是被动模式,ftp的server会随机开放一个端口,这个端口大于1024,之后ftp的server会把自己随机开放的端口响应给客户端,client使用自己的n+1端口主动去和ftp的server随机开放的端口进行连接 传输数据
优点:对客户端的网络环境没有要求
缺点:server的设置会比较麻烦 服务端随机开放端口的范围不确定 所以手动比较麻烦
默认使用的模式主动传输模式
主动被动模式的不同
主动模式 服务端主动和client建立连接传输数据 20端口 21端口
21接受client的请求 20传输数据
大部分都应用的是主动模式
被动模式 client主动和服务端建立连接传输数据 21端口 随机端口1024大
21接受client的请求 随机开放的端口传输数据
身份验证:
匿名用户访问:ftp 没有密码的 server端共享目录 /var/ftp

server
[root@localhost ~]# yum -y install vsftpd
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
12 anonymous_enable=YES
16 local_enable=NO
33 anon_mkdir_write_enable=YES
[root@localhost ~]# systemctl restart vsftpd
[root@localhost ~]# firewall-cmd –add-service=ftp –permanent
success
[root@localhost ~]# firewall-cmd –reload
success

client
[root@localhost ~]# yum -y install ftp
[root@localhost ~]# ftp 192.168.2.10
Connected to 192.168.2.10 (192.168.2.10).
220 (vsFTPd 3.0.2)
Name (192.168.2.10:root): ftp
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
服务端:
[root@localhost ~]# cd /var/ftp/
[root@localhost ftp]# touch kkk
client
ftp> ls
ftp> get kkk
ftp> quit
下载到当前的所在的目录

本地用户访问:能够登陆server的用户 server端共享目录 登陆用户的家目录
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES
[root@localhost ~]# useradd cc
[root@localhost ~]# passwd cc
更改用户 cc 的密码 。
新的 密码:
无效的密码: 密码未通过字典检查 – 过于简单化/系统化
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@localhost ~]# systemctl restart vsftpd
client
[root@localhost ~]# ftp 192.168.2.10
Connected to 192.168.2.10 (192.168.2.10).
220 (vsFTPd 3.0.2)
Name (192.168.2.10:root): cc
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
验证:server
[root@localhost ~]# cd /home/cc
[root@localhost cc]# touch hhh
[root@localhost cc]# ls
hhh
client
ftp> ls
227 Entering Passive Mode (192,168,2,10,84,157).
150 Here comes the directory listing.
-rw-r–r– 1 0 0 0 Dec 08 08:15 hhh
ftp> get hhh #下载
local: hhh remote: hhh
ftp> put anaconda-ks.cfg #上传
local: anaconda-ks.cfg remote: anaconda-ks.cfg
server
[root@localhost cc]# ls
anaconda-ks.cfg hhh

虚拟用户访问:基于本地用户的虚拟用户 server端共享目录 基于本地用户的家目录
不能登录系统
虚拟用户的创建
server
[root@localhost ~]# cd /etc/vsftpd/
[root@localhost vsftpd]# vim users.list
aaa
123
bbb
456
ccc
789
转换成为二进制文件
[root@localhost vsftpd]# db_load -T -t hash -f users.list users.db
-T转换
-t类型 hash
-f 指定文件名
创建一个虚拟用户依赖的本地用户
[root@localhost vsftpd]# useradd -d /qq -s /sbin/nologin qq
[root@localhost vsftpd]# chown qq:qq /qq
[root@localhost vsftpd]# chmod 755 /qq
#pam认证—虚拟用户登录
[root@localhost vsftpd]# cd /etc/pam.d/
[root@localhost pam.d]# vim user.vu
#!PAM-1.0
auth required pam_userdb.so db=/etc/vsftpd/users #登录模块
account required pam_userdb.so db=/etc/vsftpd/users #登录测试模块
[root@localhost pam.d]# vim /etc/vsftpd/vsftpd.conf
16 local_enable=YES
29 anon_upload_enable=YES #允许用户上传文件
125 pam_service_name=user.vu #pam认证的文件名
添加
128 guest_enable=YES #开启虚拟用户登录
129 guest_username=qq #虚拟用户基于的本地用户
130 allow_writeable_chroot=YES #虚拟用户有读的权限
[root@localhost pam.d]# systemctl restart vsftpd
client:
[root@localhost ~]# ftp 192.168.2.10
Connected to 192.168.2.10 (192.168.2.10).
220 (vsFTPd 3.0.2)
Name (192.168.2.10:root): aaa
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
验证:
server创建数据
[root@localhost pam.d]# cd /qq
[root@localhost qq]# touch yyy
[root@localhost qq]# ls
yyy
client
ftp> ls
227 Entering Passive Mode (192,168,2,10,149,52).
150 Here comes the directory listing.
-rw-r–r– 1 0 0 0 Dec 08 08:49 yyy
226 Directory send OK.
ftp> get yyy
server
[root@localhost qq]# setenforce 0
client
ftp> put anaconda-ks.cfg #上传 需要在服务端关沙盒
local: anaconda-ks.cfg remote: anaconda-ks.cfg
227 Entering Passive Mode (192,168,2,10,175,158).
150 Ok to send data.
226 Transfer complete.
1760 bytes sent in 0.000912 secs (1929.82 Kbytes/sec

ftp文件共享
主要用于存储,采用c/s架构,客户端可以通过登录server,去实现文件的上传,删除的操作
ftp工作模式
主动传输模式
client使用N端口向ftp的server的21端口进行请求,并且会告诉ftp的server其接收数据的端口为n+1端口,建立连接成功后,ftp的server会使用其20端口和client的n+1端口进行连接,传输数据
优点:服务端配置简单,利于服务端的安全管理,只需要开放21和20端口
缺点:如果客户端开启了防火墙,限制了端口,就有可能接收不了服务端响应的数据
被动传输模式
client使用N端口向ftp的server的21端口进行请求,并且会告诉ftp的server使用的是被动模式,ftp的server会随机开放一个端口,这个端口大于1024,之后ftp的server会把自己随机开放的端口响应给客户端,client使用自己的n+1端口主动去和ftp的server随机开放的端口进行连接 传输数据
优点:对客户端的网络环境没有要求
缺点:server的设置会比较麻烦 服务端随机开放端口的范围不确定 所以手动比较麻烦
默认使用的模式主动传输模式

    原文作者:凌茹玉
    原文地址: https://blog.csdn.net/weixin_54204641/article/details/122204105
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞