目录
3、设置本地用户验证访问ftp,并禁止切换到ftp以外的目录(默认登录的根目录为本地用 户家目录)
1、NFS (Network File System)网络文件系统
前言
作为运维人员,在工作中往往要与大规模的服务器群接触,因此在安装程序上借助于YUM软件仓库,在共享数据存储上使用NFS协议,是最合适的,可以避免给管理员带来额外的维护开销,减轻管理员的工作,而且效率更高。
一、构建YUM软件仓库
1、YUM的概念
借助于YUM 软件仓库,可以完成安装、卸载、自动升级 rpm 软件包等任务,能够自动查找并
解决rpm包之间的依赖关系,而无须管理员逐个、手工地去安装每个rpm包,使管理员在维护大量
Linux服务器时更加轻松自如。特别是在拥有大量Linux主机的本地网络中,构建一台"源"服务器可
以大大缓解软件安装、升级等对Internet的依赖。
软件仓库的提供方式
FTP服务:ftp://......
HTTP服务:http:// ......
本地目录:file://......
RPM软件包的来源
CentOS发布的RPM包集合
第三方组织发布的RPM包集合
用户自定义的RPM包集合
2、配置本地源仓库
mount /dev/sr0 /mnt #把光盘挂载到/mnt目录下(前提虚拟机是光盘挂载)
cd /etc/yum.repos.d/
mkdir repos.bak
mv *.repo repos.bak/
vim local.repo(输入下面5行命令)
[local] #仓库类别
name=local #仓库名称
baseurl=file:///mnt #指定URL 访问路径为光盘挂载目录
enabled=1 #开启此yum源,此为默认项,可省略
gpgcheck=O #不验证软件包的签名
yum clean all && yum makecache ##清理yum缓存并更新
yum repolist ###检查安装
3、配置ftp源
3-1、服务器配置
主要思路:(1)安装vsftpd服务端软件(2)创建并制作yum远程ftp站点的源(3)启动ftp服务
yum -y install vsftpd
mkdir /var/ftp/centos7 #创建挂盘挂载目录
mount /dev/sr0 /mnt #镜像挂载
cp -rf /mnt/* /var/ftp/centos7/ &
mkdir /var/ftp/other #创建目录repodata数据文件
cd /var/ftp/other/
createrepo -g /media/cdrom/repodata/repomd.xml ./ #工具建立仓库数据文件
systemctl start vsftpd
systemctl is-enabled vsftpd #查看系统是否开机自启动
systemctl enabled vsftpd #开机自启动
3-2、客户端配置
主要思路:(1)创建远程yum源的配置文件 (2) yum安装软件验证结果
yum install ftp -y
cd /etc/yum.repos.d/
ls
mkdir repo.bak
mv CentOS-* repo.bak/
ls
vim /etc/yum.repos.d/ftp.repo
[ftp] #仓库类别
name=ftp #仓库名称(说明)
baseurl=ftp://192.168.10.20/cetnos7 #URL访问路径
enabled=1 #启用此软件仓
gpgcheck=1(或=0 注:在这里不使用验证) #验证软件包的签名
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Cent0S-7 //GPG公钥文件的位置
[other]
name=ftp
baseurl=ftp://192.168.10.20/other
enabled=1 #启用此软件仓库
gpgcheck=0 #验证软件包的签名
yum clean all
yum makecache
4、配置网络源
4-1、centos7 清华源
vim CentoS7-Base-tsinghua.repo
[base]
name=CentOS-$releasever - Base
baseurl=http://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
#released updates
[updates]
name=CentOS-$releasever - Updates
baseurl=http://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
baseurl=http://mirrors.tuna.tsinghua.edu.cn/centosl$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
baseurl=http://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Centos-7
4-2、163 yum源
下载链接: wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
vim CentOS7-Base-163.repo #编辑163 yum网络源
[base]
name=CentOS-$releasever - Base - 163.com
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
baseurl=http://mirrors.163.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOs-7
#released updates
[updates]
name=CentOS-$releasever - Updates - 163.com
#mirrorlist=http://mirrorlist.centos.org/release=$releaseveraarch=$basearch&repo=updates
baseurl=http://mirrors.163.com/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7
#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras - 163.com
#mirrorlist=http://mirrorlist.centos.org/release=$releasever&arch=$basearch&repo=extras
baseurl=http://mirrors.163.com/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-Centos-7
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus - 163.com
baseurl=http://mirrors.163.com/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7
4-3、阿里源
下载地址: wget http://mirrors.aliyun.com/repo/Centos-7.repo
vim Centos7-Base-aliyun.repo #编辑阿里云yum 网络源
[base]
name=CentOS-$releasever - Base - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
http://mirrors.aliyuncs.com/centos/$releaseverlos/$basearch/
http://mirrors.cloud.aliyuncs.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-Centos-7
#released updates
[updates]
name=CentOS-$releasever - Updates - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/updates/$basearch/
http://mirrors.aliyuncs.com/centosl$releasever/updates/$basearch/
http://mirrors.cloud.aliyuncs.com/centosl$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http: / /mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOs-7
#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/extras/$basearch/
http://mirrors.aliyuncs.com/centos/$releasever/extras/$basearch/
http://mirrors.cloud.aliyuncs.com/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/centosplus/$basearch/
http://mirrors.aliyuncs.com/centos/$releasever/centosplus/$basearch/
http://mirrors.cloud.aliyuncs.com/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
#contrib - packages by Centos Users
[contrib]
name=Centos-$releasever - Contrib - mirrors.aliyun. com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/contrib/$basearch/
http://mirrors.aliyuncs.com/centos/$releasever/contrib/$basearch/
http://mirrors.cloud.aliyuncs.com/centos/$releasever/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
5、使用yum工具管理软件包
yum常用的操作命令:
yum -y install 软件名 #安装、升级软件包,"-y"选项表示自动确认
yum -y remove 软件名 #卸载软件包,可自动解决其依赖关系
yum -y update 软件名 #升级软件包
yum list #查询软件包列表
yum list installed #查询系统中已安装的软件包
yum list available #查询仓库中尚未安装的软件包
yum list updates #查询可以升级版本的软件包
案列搜索RPM包(两种方法)
yum search vim
yum list | grep "vim"
yum info 软件名 #查询软件包的描述信息
yum info httpd
yum search [all] 关键词 #根据某个关键词来查找相关的软件包
yum search all httpd
yum whatprovides 命令 #查询命令属于哪个软件包
yum whatprovides netstat
下载RPM包而不安装
# yum install 包名-y --downloadonly
# yum reinstall -y bash --downloadonly #下载已安装过的rpm包
# yum install 包名 -y --downloadonly --downloaddir=/tmp/ #下载RPM包到指定目录
yum history查看历史记录来找到它所依赖的包,然后删除,
如:yum history list 列出最近的历史
yum history info id 列出某次的详细信息,
yum history undo id 撤销某次更改
yum history help 查看帮助
二、FTP
1、FTP概念
FTP (File Transfer Protocol:文件传输协议)作用:Internet 上用来传送文件的协议。
VSFTP全称(very secure FTP),也是FTP
VSFTP模式:C/S模式
FTP服务器默认使用TCP协议的20、21端口与客户端进行通信
20端口用于建立数据连接,并传输文件数据
21端口用于建立控制连接,并传输FTP控制命令FTP数据连接分为主动模式和被动模式
主动模式:服务器主动发起数据连接
被动模式:服务器被动等待数据连接
yum install -y vsftpd
cd /etc/vsftpd/
cp vsftpd.conf vsftpd.conf.bak
2、设置匿名用户访问的FTP服务(最大权限)
#修改配置文件
vim /etc/vsftpd/vsftpd.conf
anonymous enable=YES #开启匿名用户访问。默认已开启
write_enable=YES #开放服务器的写权限(若要上传,必须开启)。默认已开启
anon_umask=022 #设置匿名用户所上传数据的权限掩码(反掩码)。
anon_upload_enable=YES #允许匿名用户.上传文件。默认已注释,需取消注释
anon_mkdir_write_enable=YES #允许匿名用户创建(上传)目录。默认已注释,需取消注释
anon_other_write_enable =YES #允许删除、重命名、覆盖等操作。需添加
chmod 777 /var/ftp/pub/ #为匿名访问ftp的根目录下的pub子目录设置最大权限,以便匿名用
户上传数据
systemctl restart vsftpd #重启
如果出现错误,输入vim /var/log/messages或tail -f /var/log/messages命令,查看日志文件,找到错误原因。
#开启服务,关闭防火墙和增强型安全功能
systemctl start vsftpd
systemctl stop firewalld
setenforce o
#匿名访问测试
在windows系统打开开始菜单,输入cmd命令打开命令提示符
#建立ftp连接
ftp 192.168.80.10
#匿名访问,用户名为ftp,密码为空,直接回车即可完成登录
ftp> pwd #匿名访问ftp的根目录为Linux系统的/var/ftp/目录
ftp> ls #查看当前目录
ftp> cd pub #切换到pub目录
ftp> get 文件名 #下载文件到当前windows本地目录
ftp> put 文件名 #上传文件到ftp目录
ftp> quit #退出
3、设置本地用户验证访问ftp,并禁止切换到ftp以外的目录(默认登 录的根目录为本地用户的家目录)
#修改配置文件
vim /etc/vsftpd/vsftpd.conf
local_enable=Yes #启用本地用户
anonymous_enable=NO #关闭匿名用户访问
write_enable=YES #开放服务器的写权限(若要上传,必须开启)
local_umask=077 #可设置仅宿主用户拥有被上传的文件的权限(反掩码)
chroot_local_user=YES #将访问禁锢在用户的宿主目录中
allow_writeable_chroot=YES #允许被限制的用户主目录具有写权限
#anon mkdir write enable=YES 注释
#anon_other_write_enable=YES 注释
systemctl restart vsftpd 重启服务
vim letc/vsftpd/vsftpd.conf
userlist_enable=YEs#启用user_list用户列表文件
userlist_deny=NO #设置白名单,仅允许user_list用户列表文件的用户访问。默认为YES,为黑名单,禁
用
三、NFS共享服务
1、NFS (Network File System)网络文件系统
依赖于RPC (远端过程调用)
需安装nfs-utils、rpcbind软件包
系统服务: nfs、rpcbind
共享配置文件:/etc/exports
NFS 服务的实现依赖于RPC (Rembte Process Call,远端过程调用)机制,以完成远程到本
地的映射过程。在CentOS 7系统中,需要安装nfs-utils、rpcbind 软件包来提供NFS 共享服务,
前者用于NFS 共享发布和访问,后者用于RPC支持。手动加载NFS共享服务时,应该先启
rpcbind,再启动nfs。
nfs端口号2049
RPC端口号111
2、特点
采用TCP/IP传输网络文件
安全性低
简单易操作
适合局域网环境
3、步骤
安装nfs和rpcbind软件
修改配置文件设置共享
创建共享目录
开启服务
客户端验证共享目录可访问
rpm -q rpcbind nfs-utils
yum install -y nfs-utils rpcbind
rpcinfo -p localhost #查看localhost的详细信息
vim /etc/exports #NFS的配置文件为/etc/exports,文件内容默认为空(无任何共享)
/opt/web 192.168.10.0/24 (rw, sync,no_root_squash) #/opt/web权限是192.168.10.0/24所有
网段,都可以可读可写,同步且不验证父目录
常用选项:
rw 表示允许读写
ro 表示为只读
sync 表示同步写入到内存与硬盘中
no_root_squash 表示当客户机以root身份访问时赋予本地root权限(默认是root_squash),如果不加那
么客户端无法在里面编辑或写入文件,因为默认以nfsnobody的权限
root_squash 表示客户机用root用户访问该共享目录时,将root用户映射成匿名用户
其它常用选项:
all_squash 所有访问用户都映射为匿名用户或用户组
async 将数据先保存在内存缓冲区中,必要时才写入磁盘,速度快但会丢失数据
subtree_check(默认) 若输出目录是一个子目录,则nfs服务器将检查其父目录的权限
no _subtree_check 即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率
systemctl start rpcbind //需要先启动rpc服务,因为nfs要向rpc注册端口
systemctl start nfs
systemctl enable rpcbind rpcbind开机自启动
systemctl enable nfs
详细过程:
服务端:IP是192.168.10.20
yum install -y nfs-utils rpcbind
systemctl start rpcbind #需要先启动rpc服务,因为nfs要向rpc注册端口
systemctl start nfs
netstat -anup | grep rpc
rpcinfo -p localhost #查看nfs向rpc注册的端口信息
vim /etc/exports #NFS 的配置文件为/etc/exports,文件内容默认为空(无任何共享)
/opt/web 192.168.10.0/24(rw,sync,no_root_squash) #/opt/web权限是192.168.10.0/24(网段
根据实际情况)所有网段,都可以可读可写,同步且不验证父目录
systemctl restart rpcbind #重启
systemctl restart nfs #重启
exportfs -v
mkdir /opt/web
showmount -e localhost
客户端:IP是192.168.10.21
yum install -y nfs-utils rpcbind
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
showmount -e 192.168.10.20 #客户端验证共享
yum install -y httpd
mount -t nfs 192.168.10.20:/opt/web /var/www/html/ #将共享目录挂载到网页目录
df -h
vim /etc/fstab #这条命令可以永久挂载,这里暂时不用
cd /var/www/html/
echo "this is kk" >> /var/www/html/index.html
systemctl restart httpd #启动web服务
接下来可以在浏览器上输入192.168.10.21,可以得到this is kk
在服务端上输入cd /opt/web/然后再输入cat index.html,会出现this is kk
umount -lf /var/www/ html #加lf参数可以强制卸载
总结
可以说yum仓库和NFS服务目前在面对大规模的服务器群时有着极大的优势,减轻了管理员的负担。