文件服务vsftpd,nfs,samba

文件服务

文件服务:

应用层:ftp

内核级网络文件系统:nfs

会话层的协议

跨平台的网络文件系统:cifs(samba)

网络存储:

NAS:网络附加存储,文件系统级别的接口,共享存储的解决方案

SAN:存储取余网络,磁盘级别的块设备(要先分区)iscsi基于Internet的scsi

在专业级别的存储设备上提供远程服务

rpc远程过程调用

ftp:文件传输协议,基于tcp协议,21端口

奇葩

c/s架构协议   c <--> s   通过socket 三次握手四次挥手

命令连接

数据连接:客户端的命令通过一个tcp连接传输过去,服务端收到命令,将结果,打开另一个连接回话发送回去

数据连接不止一个

数据连接与命令连接有状态关系

有关联关系:related,一个连接与另一个连接有说不清道不明的关系

数据传输模式:

文本格式:    ssh

二进制格式:  https

xml扩展语言,重量级语言  多30%的网络和存储开销

数据连接:

主动模式:服务端主动连接客户端,通过20号端口连接客户端命令用的端口号+1,如果被占用,继续往下搜索知道知道一个

问题:有防火墙,防火墙在客户端可以让请求出去,相应的响应进来,但是外来的请求是被拒绝的

于是出来了被动模式

被动模式:客户端使用随机端口连接服务端某随机端口,客户端发送请求后,服务端通过命令连接发送一个响应报文给客户端,包括了两个号112,123 意思是前边的数值112*256+123=端口号  前边的号要小于256(应为端口号1-65535,256*256)

又有问题,服务器的防火墙呢,服务器的防火墙,开放自己的服务,把一直的提供服务的端口开放,别的全都封闭,类似白名单

协议安全:明文;认证时传输的账号密码是明文

ftps:ftp over ssl

sftp:ftp over ssh

端起碗来吃肉,放下筷子骂娘

世事洞明皆学问人情练达即文章

S:serv-U(Windows)

C:

CLI:ftp lftp curl

GUI:filezilla flashfxp cute gftp

S:开源解决方案

vsftpd:

主程序:vsftpd

配置文件:/etc/vsftp.conf

/usr/lib/systemd/system/vsftp.service

.target

路径映射:默认的根目录/var/ftp

配置文件vsftpd:

用户三类:

匿名用户:ftp 家目录:/var/ftp

系统用户:

虚拟用户:类似httpd basic的用户

用户通过ftp协议服务访问到的根路径时用户自己的家目录,默认可以在自己有权限的地方切换,禁锢用户于其家目录中

配置文件:/etc/vsftpd/vsftpd.conf

directory value

注意:directory一定一定要顶格,前面不能有任何字符,包括空格

匿名用户

匿名用户上传,想改配置文件upload,在改目标目录的权限,访问控制列表也行,但是记得千万不要改/var/ftp的权限,还有布尔值,开放上传后,不能删除,应为不是同一个权限,也不能创建目录,想开放的话要去配置文件把注释掉的mkdir更改,想删除要在下边加一个,把mkdir改成other

系统用户

系统用户:local_enable本地用户,默认允许上传,创建,删除

不能让root连接ftp,因为是明文的,需要额外的法则协同实现配置文件ftpusers,所有添加进这个文件的都不能访问ftp

限制全部用户

chroot-local-users =yes 将本地用户禁锢在家目录中;需要事先取出用户对家目录的写权限

禁锢列表里的用户,同样要去写权限

chroot-list-file=yes

chroot-file-list=/etc/vsftpd/chroot_list

在里边加上用户名

传输日志

xferlog_enable=yes 默认启用,但是没有文件的话还是不行

xferlog_file=/path/to/file 指明日志文件是哪个

最好还是不要启用传输日志,会非常大,除非做了日志滚动

更改匿名用户上传文件的默认属组属主

chown_uploads=yse

chown_username=whoever

超时时长

idle_connection_timeout=#

data_..................=#

listen=NO,启用后将作为独立守护进程监听在ipv4的端口上

pam_service_name=vsftpd 文件名/etc/pam.d目录下

是不是启用用户列表:pam实现的

userlist_enable=yes 启用user—list文件控制登录

userlist_deny=no|yes 控制userlist是白名单还是黑名单,默认是黑名单

tcp_wrapper=yes  iptables时候说

虚拟用户:除了系统用户之外的字符串,作为用户登录登录时候用户名和密码

虚拟用户要映射一个系统用户

首先启用来宾账号

guest_enable=yes

制定映射用户

guest_username=vusers

用户账号存储

文件,mysql等能存数据的地方都可以

认证功能托管给pam,要想让vsftp使用虚拟用户,要看pam支不支持虚拟用户

基于何种服务存储用户信息,对存储服务的适配靠pam实现

pam_mysql:pam-mysql   c7要编译安装

mariadb-server,mariadb-devel,pam-devel

pam模块地址/usr/lib64/security下

make && make install

创建数据库授权用户,创建账号和文秘

首先是创建数据库,然后创建授权用户,创建相关的表

在pam.d下创建文件 vsftpd.vhost(一个账户有两行,上下都一样,只是开头的auth和account不一样,有几个用户就写几*2行)

auth required /usr/lib64/security/pam_mysql.so user=vsftpd passwd=mageedu host=127.0.1 db==vsftp table=users usercolumn=name passwdcolumn=passwd crypt=0

account required /usr/lib64/security/pam_mysql.so user=vsftpd passwd=mageedu host=127.0.1 db==vsftp table=users usercolumn=name passwdcolumn=passwd crypt=0

日志文件/var/log/secure

配置vsftpd,添加或修改以下选项pam_server,guest的两个

pam_service_name=vsftpd.vhost

guest_enable=YES

guest_username=mgmg

虚拟用户的写权限要要通过匿名用户一样的指令来定义,要是想要不同的权限怎么办,编辑配置文件vsftpd.conf,加一行

user_config_fir=目录

然后到里边编辑两个文件,anon_upload_enable

anon_mkdir_write_enable=yes

anon_other_write_enable

=yes

7月19号上午最后30分钟

nfs

监听在tcp 2049端口

只能基于来源主机的IP地址做验证

用于监听端口的服务来实现验证

nis

网络信息服务,主要提供认证功能,但是传输是不加密的,不安全

ldap

轻量级目录访问服务,协议,功能与nis相似,读性能高很多,但是写性能差,仍然是明文

ldaps

ldap over ssl/tls  取代nis的原因,可以加密

异步模型:一件事做着,突然调用别的数据,调用后不管调用结不结束对方在不在,自己该干什么接着干什么干什么

辅助类:rpc,portmapper

rpc.mounted 认证

rpc.locked  加锁

rpc.stated  状态追踪

如何构建一台nfs-server    y以c7为例

yum -y install nfs-utils

systemctl start nfs 启动

编辑配置文件/etc/exports 或者编辑/etc/exports.d/*  定义共享

是个路径 /PATH/TO/SOMADIR client客户端地址clients1_export_options [cilients(export_options)。。]多个空格隔开

建议导出的是本地的文件系统,独立的某个分区,但是,是目录也无所谓

知名客户端地址的方式

单主机        single host ipv4 ipv6 FQDN

网络地址      address/netmask

知己名统配    *.magedu.com

域内的主机组  @groupname

匿名          anonymous   使用*匹配所有组

通用选项

ro:只读

rw:读写权限访问允许

sync/async:同步/异步

no subtree check :不检查子树

用户id映射

root_squash:压缩root用户,一般只讲root映射为nfsbody,默认的

no_root_squash:不压缩

all_squash:全部压缩

anonuid and anongid:将压缩的用户映射为此处指定的用户,将uid和gid改成想要的

exportfs -ar 将所有目录重新导出

-au 将所有的导出目录关闭

-v  详细信息

-o  重新定义导出选项

事例:

mkdir /data/shared

vim /etc/exports

/data/shared 172.16.7.7

exportfs -ar

mount -t nfs/mount.nfs servername:/path/to/share  /path/to/mount_point

mount.nfs 172.16.100.67:/data/shared /mydata

showmount 显示nfs怪哉信息

-e IP地址 查看制定主机上游那些文件系统可以挂载可以被多个客户端挂载使用

7月19下午 第一节课最后

博客作业

实践作业:

1.使用nfs server 导出/data/application在目录中提供wordpress

2.nfs client 挂载此导出的文件系统至/var/www/html

3.客户端(lamp)部署wordpress,并让其正常访问,确保能正常发文件上传照片

4.客户端2(lamp),挂载nfs server 导出的问价系统只/var/www/html;验证其wordpress是否可被访问,要确保能正常发文章

实践作业:

1.nfs server 导出/data/目录

2.nfs client 挂载/data/至本地的mysqld或mariadb服务的数据设置为/mydata,要求服务能正常启动

samba:跨平台共享文件系统 linux--Windows

功能:文件系统共享

打印机共享

netBIOS协议:网络基本输出系统

点到点   peer/peer (workgroup model)

domain model

安装使用samba

服务端

yum -y install samba(服务端)

与Windows   samba-dc

客户端      samba-client

主程序 smbd

nmbd :netBIOS

主配置文件 /etc/samba/smb.conf  samba-common提供

Unit file smb.service

nmb.service

监听端口:137/udp 138/udp

139/tcp 445/tcp

启动服务的时候连个都要启动

客户端

smbclient:类似于lftp,交互模式下put,get文件

mount.cifs:挂载cifs文件系统的专用命令

samba配置

smb.conf    ini风格

两类配置端

全局配置

1.网络相关:

workgroup:加入的网络组

netBIOS name:定义本地的netBIOS名字

interfaces=lo eht0|ip/netmask监听的地址,eth0上所有地址

hosts allow=:白名单

2.日志相关

log file :日志文件

max log size :日志回滚大小

3.独立运行服务器standalone

security = user :安全级别,控制安全的严格程度

user:任何人来了必须提供账号密码,samba的用户必须是系统用户,密码不是shadow的密码samba自我独立管理的密码

share:匿名共享

server:让第三方服务器认证

domain:使用DC认证;基于kerberos协议进行

passdb backend=tdbsam :定义上边的密码文件的格式

4.printing options 打印相关   了解

load printers:是不是加载打印机

cups options:一般使用raw格式,一般不用修改

共享文件系统配置  三类

homes:为每个samba用户(本地用户)定义其是否能够访问通过samba服务访问自己的家目录

printers:定义打印服务

shared file system:共享服务定义

指令:

comment:共享的注释信息

browseable:是不是可以浏览,是否可被用户查看(ls可见)

path:定义当前共享所映射的文件路径

guest ok:是否允许来宾匿名账号访问

public:是不是公开给所有的用户

wirtable:是不是可写

write list:拥有写权限的列表

wirte list= user1 user2

用户名

@组名

+组名   组内成员都有写权限

自己如何定义一个共享,以及定义的的共享是不是可以使用

[developers]--------------要用[]括起来

comment=develop tools

path=/data/tools

browseable=yes

guest ok=yes

writable=yes

samba自带的测试工具

显示目标有哪些共享

smbclient -L 172.16.100.68 -U name(省略即匿名)

samba用户的管理

smbpasswd [options] username

-a:添加

-x:删除

-e:启用

-d:禁用

-h:帮助

pdbedit

-h:帮助

-L:列出samba中的所有用户和id号

-a:添加

-u username 一起用  -a -u username

-x:删除

-u username

-t:--passwd-from-stdin,从标准输入接受密码,类似passwd --stdin

smbclient //samba_server/share_name -U username

权限即要有共享权限也要有文件权限

smbstatus   smb信息 用户啊之类的

-b:简要格式信息

-v:更加详细的信息

mount.cifs //172.16.100.68/developers /tools -o username=centos,passwd=magedu

将远程共享文件挂载到本机

但是要注意用户权限的问题,root什么都干不了,同名的也是,但是同id的什么都能干

注意:挂载访问的时候,你的当前用户无论是什么,都会被samba识别成你所挂载的用户,比如我拿root挂载developers的时候,-o的选项的用户是centos,所以即便我是拿root挂载,但是samba识别的我的身份呢还是centos

时间: 2024-10-20 08:17:24

文件服务vsftpd,nfs,samba的相关文章

基础服务汇总 NFS+SAMBA+AUTOFS(太长了,三个服务做一篇吧)

1:nfs 常用的linux之前的网络共享,内网用的,最简单的,没设置任何权限的设置类似于: vim /etc/exports: /home/samba * 复杂点的 配置权限和限定ip来源的: /home/david 192.168.1.0/24(rw) 查看nfs showmount -e nfs_server_ip [[email protected] etc]# showmount -e 10.1.2.136 Export list for 10.1.2.136: /home/samba

文件服务器之NFS服务器

NFS(Network File System),它的目的就是想让不同的机器,不同的操作系统可以彼此共享数据文件,目前在Unix like当中用来作为文件服务器是一个相当不错的解决方案,基本上Unix like主机连接到另一台Unix like主机来共享彼此的文件时,使用NFS要比SAMBA服务器快速且方便的多.此外,NFS的配置很简单,只要记得启动Remote Procedure Call(rpc,就是rpcbind这个软件)就能够搭建起来. 1.NFS的由来与功能 NFS共享文件系统的搭建很

利用windows 2008 r2自带的“文件服务”实现NFS存储功能

一 环境说明 一台xenserver 6.5服务器(虚拟机) IP:192.168.45.10 一台windows 2008 r2 sp1服务器(虚拟机) IP:192.168.45.100 二 配置过程 xenserver 6.5系统安装(略) windows 2008 r2 spq系统安装(略) 开启windows 2008 r2 sp1 NFS服务功能 (1)点击"服务器管理器" (2)选择"角色"-> "添加角色" (3)选择&qu

文件服务器之:SAMBA 服务器,稳定可靠,没有连接数限制

SAMBA使用的是NetBIOS通讯协议,NetBIOS是无法跨路由的透过NetBIOS over TCP/IP的技术,可以跨路由使用SAMBA服务器所提供的功能 SAMBA联机模式:1.peer/peer(Workgroup model,对等模式):适合小型的网域,不经常进行档案数据分享的网络环境,或者每个使用者都拥有该计算机的拥有权的环境2.domain model(主控模式):DC服务器控管整个网域里面的各个机器的账号与密码的信息 Samba所需软件及其软件结构:samba :这个软件主要

搭建 FTP 文件服务vsftpd

安装并启动 FTP 服务 安装 VSFTPD 使用 yum 安装 vsftpd: yum install vsftpd -y vsftpd 是在 Linux 上被广泛使用的 FTP 服务器,根据其[官网介绍][https://security.appspot.com/vsftpd.html],它可能是 UNIX-like 系统下最安全和快速的 FTP 服务器软件. 启动 VSFTPD 安装完成后,启动 FTP 服务: service vsftpd start 启动后,可以看到系统已经[监听了 2

linux文件服务之nfs

nfs -------- Network File System 网络文件系统 nfs图解 作用:在Linux服务器间实现数据共享 软件: nfs-utils rpcbind [[email protected] ~]# rpm -q rpcbind rpcbind-0.2.0-32.el7.x86_64 [[email protected] ~]# rpm -q nfs-utils nfs-utils-1.3.0-0.21.el7.x86_64 [[email protected] ~]# 目

13、【华为HCIE-Storage】--文件协议 CIFS NFS FTP HTTP

------------------------------------重要说明------------------------------------ 以下部分内容来网络,部分自华为存储官方教材 具体教材内容请移步华为存储官网进行教材下载 网络引用内容无法找到原创,如有侵权请通知 ------------------------------------重要说明------------------------------------ ① CIFS CIFS是一个网络文件共享协议,允许Intern

NFS文件服务

NFS:Network File System 传统意义上,文件系统在内核中实现: RPC:函数调用(远程主机上的函数) Remote Procedure Call protocol 一部分功能由本地程序完成,另一部分功能由远程主机上的函数完成 由于无法确认如 123为字符还是数字,使用半结构数据,使用半结构数据定义. 半结构数据: XML: eXtended Mark Language(重量级) JSON    (轻量级) 现在很多使用RESful的调用方式,借助于http,跨越互联网网发送.

samba文件服务

Linux 文件服务器  samba NAS  #linux+samba | FTP 的结合体,实现内部共享 SAN  #linux+samba | FTP 通过光纤,公网IP,实现公网共享   yum install samba -y 1.1. 服务与端口号 service nmb restart   老系统 service smb restart UPD: 137  138 TCP: 139  445 1.2. 防火墙配置 iptables -I INUPT 1 -P --dport 137