FTP、NFS、SAMBA系统服务一

news2025/1/12 6:18:23

一、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服务概述

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

☆ 基于浏览器的访问

☆ 基于Windows资源管理器的访问

☆ 基于FlashFxp、FileZilla软件

☆ 基于ftp以及lftp命令进行连接(Linux与Linux之间的FTP文件传输)

 yum install ftp lftp -y
# ftp 10.1.1.10

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1198558.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

NSSCTF-Crypto入门题 练习记录贴 ‘‘一‘‘

文章目录 前言001[鹤城杯 2021]easy_crypto002[强网拟态 2021]拟态签到题003[SWPUCTF 2021 新生赛]crypto8004[SWPUCTF 2021 新生赛]crypto7005[SWPUCTF 2021 新生赛]crypto6006[SWPUCTF 2021 新生赛]ez_caesar007[SWPUCTF 2021 新生赛]crypto10008[鹤城杯 2021]A_CRYPTO009[SW…

SAM + YOLO 智能抠图

在计算机视觉领域,对象检测和实例分割是使机器能够理解视觉数据并与之交互的关键任务。 准确识别和隔离图像中的物体的能力具有许多实际应用,从自动驾驶车辆到医学成像。 在这篇博文中,我们将探索如何在 Roboflow 和 Ultralytics YOLOv8 的帮…

Linux C 时间编程

时间编程 Linux中时间相关命令时间编程time  获取当前的时间gmtime  获取当前日期时间localtime  获取本地时间日期asctime  规格时间结构体为字符串 Linux中时间相关命令 1)date:打印当前的系统时间。 2)date -s 20231111&#xff…

C#,数值计算——函数计算,Eulsum的计算方法与源程序

1 文本格式 using System; namespace Legalsoft.Truffer { public class Eulsum { private double[] wksp { get; set; } private int n { get; set; } private int ncv { get; set; } public bool cnvgd { get; set; } pri…

openEuler编译安装nmon性能监控工具及可视化分析工具

ln 介绍 nmon(short for Nigel’s Monitor)是一个性能分析工具,由蓝色巨人IBM开发,最早用于自家操作系统UNIX,AIX (Advanced Interactive eXecutive)。现在也能用在Linux上。它可以显示系统的…

跨域:利用JSONP、WebSocket实现跨域访问

跨域基础知识点:跨域知识点 iframe实现跨域的四种方式:http://t.csdnimg.cn/emgFr 注:本篇中使用到的虚拟主机也是上面iframe中配置的 目录 JSONP跨域 JSONP介绍 跨域实验: WebSocket跨域 websocket介绍 跨域实验 JSONP跨域…

JavaWeb Day09 Mybatis-基础操作02-XML映射文件动态SQL

目录 Mybatis动态SQL介绍​编辑 一、案例 ①Mapper层 ②测试类 ③EmpMapper.xml ④结果​ 二、标签 (一)if where标签 ​①EmpMapper.xml ②案例 ③总结 (二)foreach标签 ①SQL语句 ②Mapper层 ③EmpMapper.xml ④…

基于GPTs个性化定制SCI论文专业翻译器

1. 什么是GPTs GPTs是OpenAI在2023年11月6日开发者大会上发布的重要功能更新,允许用户根据特定需求定制自己的ChatGPT模型。 Introducing GPTs 官方介绍页面https://openai.com/blog/introducing-gpts 在原有自定义ChatGPT的流程中,首先需要自己编制p…

HuggingFace模型头的自定义

在线工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器 在本文中我们将介绍如何使HuggingFace的模型适应你的任务,在Pytorch中建立自定义模型头并将其连接到HF模型的主体&#…

2023数据安全战场回顾:迅软科技助您稳固阵线

随着各行业的数字化转型不断深入,数据安全逐步进入法制化的强监管时代。然而,由于人为攻击、技术漏洞和监管缺位等原因,各种数据泄露事件频繁发生,企业数据安全威胁日益严峻。 以下是我对2023年第三季度安全事件的总结&#xff0c…

Maven Profile组设置

application.properties中xxxx

JS实现数据结构与算法

队列 1、普通队列 利用数组push和shif 就可以简单实现 2、利用链表的方式实现队列 class MyQueue {constructor(){this.head nullthis.tail nullthis.length 0}add(value){let node {value}if(this.length 0){this.head nodethis.tail node}else{this.tail.next no…

hosts文件地址

Hosts是一个没有扩展名的系统文件,可以用记事本等工具打开,其作用就是将一些常用的网址域名与其对应的IP地址建立一个关联“数据库”,当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址&…

Typescript -尚硅谷

基础 1.ts是以js为基础构建的语言,是一个js的超集(对js进行了扩展); 2.ts(type)最主要的功能是在js的基础上引入了类型的概念; Js的类型是只针对于值而言,ts的类型是针对于变量而言 Ts可以被编译成任意版本的js,从而进一步解决了…

企业邮箱本地私有化部署解决方案

随着互联网化进程不断深入,加快推进企业信息化系统建设,已经成为提高企业核心竞争力的重要途径。企业对企业邮箱系统的需求越来越大,企业邮箱系统作为企业级通讯工具中的利器,在协同办公和内外业务交流上发挥着无可替代的巨大作用…

LLM代码生成器的挑战【GDELT早期观察】

越来越多的研究开始对LLM大模型生成的代码的质量提出质疑,尽管科技行业不断推出越来越多的旨在增强甚至取代人类编码员的工具。 随着我们(GDELT)继续探索和评估越来越多的此类工具,以下是我们的一些早期观察结果。 在线工具推荐&a…

将复数中的虚部取反 即对复数求共轭 numpy.conjugate()

【小白从小学Python、C、Java】 【计算机等级考试500强双证书】 【Python-数据分析】 将复数中的虚部取反 即对复数求共轭 numpy.conjugate() [太阳]选择题 请问以下代码中执行语句输出结果是? import numpy as np a np.array([1 2j, 3 - 4j]) print("【显示…

Linux学习教程(第二章 Linux系统安装)1

第二章 Linux系统安装 学习 Linux,首先要学会搭建 Linux 系统环境,也就是学会在你的电脑上安装 Linux 系统。 很多初学者对 Linux 望而生畏,多数是因为对 Linux 系统安装的恐惧,害怕破坏电脑本身的系统,害怕硬盘数据…

第二十五节——Vuex--历史遗留

文档地址 Vuex 是什么? | Vuex version V4.x 一、概念 Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式 库。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。一个状态自管理应用包含以下几个部…

大数据Doris(二十一):数据导入演示

文章目录 数据导入演示 一、启动zookeeper集群(三台节点都启动) 二、启动hdfs集群