7.19 FTP

配置

服务端 

开启端⼝

# 打开控制台⾯板端⼝

[root@hcss-ecs-e083 ~]# firewall-cmd --zone=public --add-port=7500/tcp -

-permanent

# 打开frp服务端⼝

[root@hcss-ecs-e083 ~]# firewall-cmd --zone=public --add-port=7000/tcp -

-permanent

# 打开⼀组客户端⼝

[root@hcss-ecs-e083 ~]# firewall-cmd --zone=public --add-port=6000-

6100/tcp --permanent

# 加载防⽕墙更新

[root@hcss-ecs-e083 ~]# firewall-cmd --reload

⽂件

[root@hcss-ecs-e083 ~]# ls -l frp_0.33.0_linux_amd64/frps*

-rwxrwxr-x 1 yuanyu yuanyu 12976128 Apr 27 2020

frp_0.33.0_linux_amd64/frps

-rw-rw-r-- 1 yuanyu yuanyu 4639 Apr 27 2020

frp_0.33.0_linux_amd64/frps_full.ini

-rw-rw-r-- 1 yuanyu yuanyu 114 Jul 18 21:41

frp_0.33.0_linux_amd64/frps.ini

配置⽂件

[root@hcss-ecs-e083 ~]# vim ~/frp_0.33.0_linux_amd64/frps.ini

--------------------------------------------------------------

# 服务名称

[common]

# 服务端⼝

bind_port = 7000

# 控制台⾯板账号

dashboard_user=xxxxxx

# 控制台密码

dashboard_pwd=xxxxxxx

# 控制台端⼝

dashboard_port=7500

# 代理标识

token=xxxxxxxx

客户端 

⽂件

[root@hcss-ecs-e083 ~]# ls -l frp_0.33.0_linux_amd64/frpc*

-rwxrwxr-x 1 yuanyu yuanyu 10629120 Apr 27 2020

frp_0.33.0_linux_amd64/frpc

-rw-rw-r-- 1 yuanyu yuanyu 7575 Apr 27 2020

frp_0.33.0_linux_amd64/frpc_full.ini

-rw-rw-r-- 1 yuanyu yuanyu 126 Apr 27 2020

frp_0.33.0_linux_amd64/frpc.ini

配置⽂件

# 服务器名称

[common]

# 服务器ip

server_addr = x.x.x.x

# 服务器端⼝

server_port = 7000

# 代理标识

token=xxxxxxx

# 被代理的主机名称,不允许和其他重复

[被代理主机名称xxx]

# 代理服务类型type = tcp

# 本地ip

local_ip = 127.0.0.1

# 本地被代理的端⼝

local_port = 22

# 选择代理后的端⼝

remote_port = ⾃选端⼝xxxxxxx60000

FTP、NFS、SAMBA系统服务

⼀、rsync托管xinetd

1、为什么要进⾏服务托管

独⽴服务:独⽴启动脚本 ssh ftp nfs dns ...

依赖服务: 没有独⽴的启动脚本 rsync telnet 依赖xinetd服务(独⽴服务)

2、如何将rsync托管给xinetd服务去管理?

第⼀步:在系统中安装xinetd服务

# yum -y install xinetd

# rpm -ql xinetd

第⼆步:编写xinetd.conf⽂件(/etc/xinetd.conf)

# man 5 xinetd.conf

defaults

{
only_from 只允许访问

no_access 拒绝访问

access_times 控制访问服务的时间段

log_type 指定⽇志类型

interface 并发连接数

per_source 每个IP的最⼤连接数

}

includedir /etc/xinetd.d ⼦配置⽂件⽬录(追加rsync、telnet)

第三步:⼿⼯创建/etc/xinetd.d/rsync

# vim /etc/xinetd.d/rsync

service rsync

{
disable = no

flags = IPv6

socket_type = stream

wait = no

user = root

server = /usr/bin/rsync

server_args = --daemon

log_on_failure += USERID

}

备注:disable = no //开关;no表示开启该服务;yes表示关闭服务

第四步:重启xinetd服务(xinetd服务重启后,rsync服务也会随之重启,检查端⼝占⽤)

# pkill rsync

# systemctl restart xinetd

# ss -naltp |grep 873

LISTEN :::873 users:(("xinetd",pid=45079,fd=5))

在查询873端⼝占⽤时,发现只有xinetd服务,没有rsync服务,原因:rsync =>

xinetd

常⻅问题(经验值)

如果我们在启动xinetd服务时,发现系统中的873端⼝⼀直没有被占⽤,只能有⼀个问题:配置⽂

件有错误!

解决⽅案:cat /var/log/messages

⼀定要注意颜⾊的变化,有颜⾊变化代表是正确选项,没有,就肯定你在复制时惨咋了⼀些看不⻅

的字符。

⼆、FTP服务概述 统信os 

⼀个⽂件在同⼀时间内,⽆论有多少⼈在r,但是只能有⼀个w权限,x其实r权限

1、FTP服务介绍

FTP(File Transfer Protocol)是⼀种应⽤⾮常⼴泛并且古⽼的⼀个互联⽹⽂件传输协议。

⽂件传输:⽂件上传与⽂件下载

主要⽤于互联⽹中==⽂件的双向传输==(上传/下载)、⽂件共享

跨平台 Linux、Windows

FTP是==C/S==架构,拥有⼀个客户端和服务端,使⽤==TCP协议==作为底层传输协议,

提供可靠的数据传输

FTP的默认端⼝ ==21号==(命令端⼝) ==20号==(数据端⼝,主动模式下) 默认被

动模式下

FTP程序(软件)==vsftpd==

FTP软件名称 => vsftpd => vs(very secure ftp daemon)

2、FTP服务的客户端⼯具

Linux:ftp、lftp(客户端程序)

Windows:FlashFXP(虚拟主机)、FileZilla、IE、Chrome、Firefox

lftp和ftp⼯具区别:

lftp:默认是以==匿名⽤户==访问

ftp:默认是以==⽤户名/密码==⽅式访问

lftp可以批量并且下载⽬录3、FTP的两种运⾏模式(了解)

在FTP服务中,其⼀共拥有两种模式(主动模式 + 被动模式)

参考点,FTP的服务器端。如果是FTP服务器端主动连接客户端=>主动模式,如果是

客户端主动连接FTP服务器端=>被动模式。

主动模式

cmd:命令端⼝(发送FTP请求)

data:数据端⼝(后期⽤于传输数据)

1. 客户端打开⼤于1023的随机命令端⼝和⼤于1023的随机数据端⼝向服务的的21号端⼝发起请

2. 服务端的21号命令端⼝响应客户端的随机命令端⼝

3. 服务端的20号端⼝主动请求连接客户端的随机数据端⼝

4. 客户端的随机数据端⼝进⾏确认

被动模式

1. 客户端打开⼤于1023的随机命令端⼝和⼤于1023的随机数据端⼝向服务的的21号端⼝发起请

2. 服务端的21号命令端⼝响应客户端的随机命令端⼝

3. 客户端主动连接服务端打开的⼤于1023的随机数据端⼝

4. 服务端进⾏确认

FTP默认使⽤的就是被动模式!

4、搭建FTP服务(重要)

1. 关闭防⽕墙和selinux

2. 配置yum源(mount /dev/sr0 /mnt)

3. 软件三部曲

4. 了解配置⽂件

5. 根据需求修改配置⽂件来完成服务的搭建

6. 启动服务,开机⾃启动

7. 测试验证

第⼀步:关闭防⽕墙与SELinux

# systemctl stop firewalld

# systemctl disable firewalld

# setenforce 0

# vim /etc/selinux/config

SELINUX=disabled

第⼆步:配置YUM源

有⽹配置公⽹YUM源(阿⾥、清华、华为),没⽹就配置本地YUM源

# mount /dev/sr0 /mnt

# yum clean all

# yum makecache

第三步:安装vsftpd软件(FTP => vsftpd)

# yum install vsftpd -y

第四步:启动ftp服务并添加到开机启动项中

# systemctl start vsftpd

# systemctl enable vsftpd

第五步:测试FTP是否安装成功

# ifconfig ens33

inet 10.1.1.10 netmask 255.255.255.0 broadcast 10.1.1.255

5、FTP的配置⽂件详解(重要)

在Server服务器端,使⽤rpm -ql vsftpd

# rpm -ql vsftpd

/usr/lib/systemd/system/vsftpd.service 启动脚本

/etc/vsftpd 配置⽂件的⽬录

/etc/vsftpd/ftpusers ⽤户列表⽂件,⿊名单

/etc/vsftpd/user_list ⽤户列表⽂件,可⿊可⽩(默认是⿊名单)

/etc/vsftpd/vsftpd.conf 配置⽂件(主配置⽂件)

/usr/sbin/vsftpd 程序本身(⼆进制的命令)

/var/ftp 匿名⽤户的默认数据根⽬录

/var/ftp/pub 匿名⽤户的扩展数据⽬录

vsftpd配置⽂件详解:

# grep -v ^# /etc/vsftpd/vsftpd.conf

anonymous_enable=YES ⽀持匿名⽤户访问 

local_enable=YES ⽀持⾮匿名⽤户,普通账号登录,默认进⼊到⾃⼰家⽬录

write_enable=YES 写总开关

local_umask=022 反掩码 file:644 rw- r-- r-- dir:755

dirmessage_enable=YES 启⽤消息功能

xferlog_enable=YES 开启或启⽤xferlog⽇志

connect_from_port_20=YES ⽀持主动模式(默认被动模式)

xferlog_std_format=YES xferlog⽇志格式

listen=YES ftp服务独⽴模式下的监听

pam_service_name=vsftpd 指定认证⽂件

userlist_enable=YES 启⽤⽤户列表

tcp_wrappers=YES ⽀持tcp_wrappers功能(FTP限速操作)

# man 5 vsftpd.conf

三、FTP任务解决⽅案

1、任务背景

简单来说:根据我们所学的内容(FTP)搭建⼀个客户服务系统(主要涉及客服资料上传与下

载)

1. 客服⼈员必须使⽤⽤户名密码(kefu/123)的⽅式登录服务器来下载相应⽂档

2. 不允许匿名⽤户访问

3. 客服部⻔的相关⽂档保存在指定的⽬录⾥/data/kefu local_root=/data/kefu

4. 客服⽤户使⽤⽤户kefu/123登录后就只能在默认的/data/kefu⽬录⾥活动

2、创建客服账号(Server)

# useradd kefu

# echo 123 |passwd --stdin kefu

3、不允许匿名⽤户访问

# vim /etc/vsftpd/vsftpd.conf

12⾏ anonymous_enable=NO

配置修改完毕后,⼀定要重启vsftpd服务

# systemctl restart vsftpd

4、指定账号访问的⽬录

# mkdir /data/kefu -p

# vim /etc/vsftpd/vsftpd.conf

17⾏ local_root=/data/kefu

5、限定kefu/123只能在/data/kefu⽬录下活动

禁锢kefu⽤户只能在/data/kefu⽬录下

# vim /etc/vsftp/vsftpd.conf

18⾏ chroot_local_user=YES

配置修改完毕后,⼀定要重启vsftpd服务

# systemctl restart vsftpd

四、经验值

1、500 OOPS

以上问题主要出现在FTP2.3.5以后的版本中,当然你可以使⽤

# rpm -qi vsftpd 查看版本信息

解决⽅案:

① 去除写权限(治标不治本)

# chmod a-w /home/dhj

② 核⼼解决⽅案,添加⼀个选项

# vim /etc/vsftpd/vsftpd.conf

19⾏ allow_writeable_chroot=YES

2、⽆法上传

之所以⽆法上传,主要原因在于kefu这个账号对于/data/kefu⽂件夹没有w写权限

# setfacl -R -m u:kefu:rwx /data/kefu

# systemctl restart vsftpd

3、禁锢⽬录补充

18⾏ chroot_local_user=YES 禁锢所有⽤户

需求:我们能不能给⼀⼩部分⽤户开通⾮禁锢权限。

# vim /etc/vsftpd/vsftpd.conf

105⾏ chroot_list_enable=YES 开启⽤户列表⽂件

107⾏ chroot_list_file=/etc/vsftpd/chroot_list 指定⽤户列表⽂件

echo kefu >> /etc/vsftpd/chroot_list 代表客服这个账号不会被禁锢在指定⽬ 录

# systemctl restart vsftpd

  • 14
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值