⼀、SAMBA⽂件共享
1、什么是SAMBA
SMB(Server Message Block)协议实现⽂件共享,也称为CIFS(Common
Internet File System )
是Windows和类Unix系统之间共享⽂件的⼀种协议
客户端==主要是Windows==;⽀持多节点同时挂载以及并发写⼊
主要⽤于windows和Linux下的⽂件共享、打印共享
实现==匿名与本地⽤户==⽂件共享
2、SAMBA主要进程
smbd进程
控制发布共享⽬录与权限、==负责⽂件传输== ==TCP 139
445==
nmbd进程 ⽤于名称解析netbios ==UDP 137 138== ; 基于NETBIOS协议获得
计算机名称——>解析为相应IP地址,实现信息通讯 NetBIOS是Network Basic Input/Output System的简称,⼀般指⽤于局域⽹通信的
⼀套API
3、SAMBA环境准备
第⼀步:从模板机中克隆⼀台Linux服务器,叫做SAMBA
第⼆步:更改主机名称与IP地址
# hostnamectl set-hostname samba.itcast.cn
# su
# vim /etc/sysconfig/network-scripts/ifcfg-ens33
BOOTPROTO=none
IPADDR=10.1.1.10
NETMASK=255.255.255.0
GATEWAY=10.1.1.2
DNS1=8.8.8.8
DNS2=114.114.114.114
# systemctl restart network
扩展:如果是多张⽹卡,建议使⽤ifdown ens33以及ifup ens33实现重启⽹络操作
第三步:关闭防⽕墙与SELinux
# systemctl stop firewalld
# systemctl disable firewalld
# setenforce 0
# vim /etc/selinux/config
SELINUX=disabled
第四步:配置yum源
# yum clean all
# yum makecache
4、SAMBA软件安装(服务器搭建)
# yum install samba -y
# rpm -qa |grep ^samba
SAMBA也是⼀个C/S架构的软件,Client主要是Windows
5、了解smb的配置⽂件
# vim /etc/samba/smb.conf
[global] 全局选项
workgroup = MYGROUP 定义samba服务器所在的⼯作组
server string = Samba Server Version %v smb服务的描述
log file = /var/log/samba/log.%m ⽇志⽂件
max log size = 50 ⽇志的最⼤⼤⼩KB
security = user 认证模式:share匿名|user⽤户密
码|server外部服务器⽤户密码
passdb backend = tdbsam 密码格式
load printers = yes 加载打印机
cups options = raw 打印机选项
[homes] 局部选项(共享名称)
comment = Home Directories 描述
browseable = no 隐藏共享名称
writable = yes 可读可写
[printers] 共享名称
comment = All Printers 描述
path = /var/spool/samba 本地的共享⽬录
browseable = no 隐藏
guest ok = no ——> public = no 需要帐号和密码访问
writable = no ——> read only =yes 不可写
printable = yes 打印选项
[share]
path = /dir1
guest ok = no
writable = yes
6、SAMBA综合案例
搭建⼀个SAMBA服务,共享⼀个⽬录/samba/share,客户端使⽤user01/123通过
windows或者Linux可以在该⽬录⾥创建⽂件删除⽂件
第⼀步:SAMBA服务器环境准备
更改主机名称、IP地址、关闭防⽕墙、SELinux、配置YUM源
第⼆步:安装SAMBA软件
# yum install samba -y
# rpm -aq|grep ^samba
第三步:查询SAMBA⽣成⽂件列表(rpm -ql)
# rpm -ql samba
/usr/sbin/smbd
/usr/sbin/nmbd
/usr/lib/systemd/system/smb.service
/usr/lib/systemd/system/nmb.service
第四步:在服务器端创建⼀个共享⽬录
# mkdir /samba/share -p
第五步:编辑/etc/smb.conf配置⽂件,实现SAMBA共享
# vim /etc/samba/smb.conf
...
[smb_share]
comment = samba service
path = /samba/share
guest ok = no
writable = yes
或者
[samba_share]
path = /samba/share
public = no
writable = yes
备注:guest ok === public
第六步:创建⼀个user01⽤户,然后添加到samba认证中,设置密码为123
# useradd user01
# smbpasswd -a user01
New SMB password:123
Retype new SMB password:123
Added user user01.
以上操作完成后,则SAMBA系统中增加了⼀个user01的账号以及123的密码
第七步:启动nmb与smb服务
# systemctl start nmb
# systemctl start smb
第⼋步:基于Windows或Linux实现⽂件共享
Windows:
① ⾸先安装SAMBA⽀持Windows + X,选择控制⾯板
② 找到Windows功能选项
③ 安装SAMBA功能(客户端)
④ 进⼊计算机(我的电脑),找到映射⽹络驱动器
设置SAMBA服务器的地址信息:
10.1.1.10 => Linux服务器的IP地址
smb_share => SAMBA标签
挂载完成后,⽬录不可写?答:主要原因在于/samba/share⽬录没有写⼊
权限
# setfacl -m u:user01:rwx /samba/share
第九步:基于Linux或Linux实现⽂件共享
yum -y install samba-client
smbclient -L 10.1.1.10 -U user01
使⽤smbclient查看⽬录信息
# smbclient //10.1.1.10/smb_share -U user01
把SAMBA挂载到Linux系统(类似NFS)
yum -y install cifs-utils
# mkdir /u01
# mount.cifs -o user=user01,pass=123 //10.1.1.10/smb_share /u01
访问控制说明:
控制读写权限
writable = yes/no
readonly = yes/no
如果资源可写,但只允许某些⽤户可写,其他都是只读
write list = admin, root, @staff(⽤户组)
read list = mary, @students
控制访问对象
valid users = tom,mary,@itcast
invalid users = tom
注意:以上两个选项只能存在其中⼀个
⽹络访问控制:
hosts deny = 192.168.0. 拒绝某个⽹段
hosts allow = 192.168.0.254 允许某个IP
hosts deny = all 拒绝所有
hosts allow = 192.168.0. EXCEPT 192.168.0.254 允许某个⽹段,但拒绝
某个单个IP
注意:deny和allow同时存在,allow优先
7、总结
1. ftp 局域⽹和外⽹都可以
2. nfs 局域⽹ 挂载⽅式访问 mount.nfs 侧重于Linux与Linux之间
3. samba 局域⽹ 直接访问(smbclinet)挂载的⽅式mount.cifs 侧重于Windows与
Linux之间
⼆、DNS域名管理系统
1、任务背景
解析内⽹域名,能够访问内⽹web应⽤。把 www.zhangmin.cluster 解析到内⽹服
务器IP
2、DNS概述
DNS(domain name system ) 域名管理系统
域名:
由特定的格式组成,⽤来表示互联⽹中==某⼀台计算机或者计算机组的名称==,能
够使⼈更⽅便的访问互联⽹,⽽不⽤记住能够被机器直接读取的IP地址。
计算机 => IP地址,互联⽹中的计算机都是通过IP地址进⾏互相访问的。(IP地址过
于复杂)
域名:代替IP实现计算机的访问(⾼级 => 上层应⽤,底层还是IP地址)
每个域名 => DNS服务器 => 对应的IP地址
DNS的正向解析
域名的==正向解析==
将主机域名转换为对应的IP 地址,以便⽹络程序能够通过主机域名访问到对应的服
务器主机
域名——>IP
A记录
DNS的反向解析
域名的==反向解析==
将主机的IP地址转换为对应的域名,以便⽹络(服务)程序能够通过IP地址查询到
主机的域名
IP——>域名
PTR记录
3、DNS的结构
域名:www.itheima.com
DNS结构:www.itheima.com. => 从右向左解析
根域(.)
在整个 DNS 系统的最上⽅⼀定是 . (⼩数点) 这个 DNS 服务器 (称为 root),也
叫”根域“。
根域 (13台 全世界只有13台。1个为主根服务器,放置在美国。其余12个均为
辅根服务器,其中9个放置在美国,欧洲2个,位于英国和瑞典,亚洲1个,位于
⽇本。)
⼀级域名<顶级域|国家域>
com net edu gov org cc io| cn uk us ru ja ko
com : 商业公司
net :互联⽹公司
edu :教育(中⼩学、⾼中、⼤学...)
gov :政府.io :存储设备,redis
cn :中国域名(国家域)
⼆级域名(⾃⼰购买管理)
qq.com. baidu.com. google.com.
域名机构
收费(新⽹|万⽹)
⽼牌免费域名:TK顶级域名、TK域名DNS、TK域名商
4、DNS⼯作原理
如果询问⼀次得到结果 递归查询 C-S
如果询问多次得到结果 迭代查询 S-S
⼀次递归 多次迭代
5、dig⼯具使⽤编号
主机名称
IP地址
5、dig⼯具使⽤
# dig +trace www.itcast.cn 追踪DNS的解析过程
# dig www.itcast.cn 正向解析
# dig -x IP地址 反向解析
三、DNS服务器的搭建
DNS 的==域名解析==都是 ==udp/53== . 主从之间的==数据传输==默认使
⽤==tcp/53==
DNS服务器端软件:
==Bind==是⼀款开放源码的DNS服务器软件,Bind由美国加州⼤学Berkeley(伯克
利)分校开发和维护的,全名为Berkeley Internet Name Domain它是⽬前世界上使
⽤最为⼴泛的DNS服务器软件,⽀持各种unix平台和windows平台。BIND现在由互
联⽹系统协会(Internet Systems Consortium)负责开发与维护。
第⼀步:环境准备
① 更改主机名称与IP地址
# hostnamectl set-hostname client
# hostnamectl set-hostname dns
# hostnamectl set-hostname web
# su
# vim /etc/sysconfig/network-scripts/ifcfg-ens33
BOOTPROTO=none
IPADDR=10.1.1.11/10.1.1.12/10.1.1.13
更改UUID编号的后3位,必须是唯⼀的
② 使⽤MX进⾏连接
③ 关闭防⽕墙与SELinux
# systemctl stop firewalld
# systemctl disable firewalld
# setenforce 0
# vim /etc/selinux/config
SELINUX=disabled
④ 配置YUM源(有⽹配置公⽹YUM源、⽆⽹就配置光盘或⾃建YUM源)
# yum clean all
# yum makecache
第⼆步:安装DNS软件
DNS服务器:
# yum install bind -y
安装完毕后,可以使⽤rpm -q查询是否安装成功:
# rpm -q bind
# rpm -ql bind
# ⽇志轮转⽂件
/etc/logrotate.d/named
# 配置⽂件⽬录
/etc/named
# 主配置⽂件
/etc/named.conf
# zone⽂件,定义域
/etc/named.rfc1912.zones
# 服务管理脚本
/usr/lib/systemd/system/named.service
# ⼆进制程序⽂件
/usr/sbin/named
# 检测配置⽂件
/usr/sbin/named-checkconf
# 检测域⽂件
/usr/sbin/named-checkzone
# 根域服务器
/var/named/named.ca
# 正向解析区域⽂件模板
/var/named/named.localhost
# 反向解析区域⽂件模板
/var/named/named.loopback
# dns服务器下载⽂件的默认路径
/var/named/slaves
# 进程pid
/var/rum/named
find主要⽤来搜索计算机中的⽂件,rpm主要⽤来检查计算机中是否安装过
某个软件
第三步:DNS正向解析配置(域名=>IP)
/etc/named.conf主要配置访问权限控制(哪些IP或哪些主机可以访问DNS服务器)
/etc/named.rfc1912.zones主要定义域名如何解析(正向解析),解析到具体哪个IP
地址
① 对named.conf以及named.rfc1912.zones进⾏备份
cp /etc/named.conf /etc/named.conf.bak
cp /etc/named.rfc1912.zones /etc/named.rfc1912.zones.bak
② named.conf主配置⽂件详解(访问权限控制)
# vim /etc/named.conf
添加任何主机都可以访问的权限
③ zones⼦配置⽂件详解(域名应该指向哪个IP地址)
# vim /etc/named.rfc1912.zones
...
zone "zhangmin" IN {
type master;
file "zhangmin.zone";
allow-update { none; };
};
扩展 => vim => :19,23 co 42,把19-23⾏,copy到42⾏的后⾯
④ 在/var/named⽬录创建itcast.cluster.zone⽂件定义正向解析
# cd /var/named
# cp -p named.localhost itcast.cluster.zone
扩展:-p代表复制⽂件时保留⽂件的原有属性
⑤ 编辑itcast.cluster.zone⽂件,定义域名的指向
# vim itcast.cluster.zone
扩展:zone⽂件的格式说明
zone⽂件详解
# $TTL 缓存的⽣存周期
# @ = zonename = itcast.com 当前域
# IN 互联⽹
# SOA 开始授权
# NS dns服务端 nameserver
# A ipv4 正向
# AAAA IPV6
# CNAME 别名
# MX 邮件交互记录 5 数字代表优先级 数字越⼩优先级越⾼
# 0 ; serial 更新序列号
# 1D ; refresh 更新间隔(从服务器下载数据)
# 1H ; retry 失败重试
# 1W ; expire 区域⽂件的过期时间
# 3H ) ; minimum 缓存的最⼩⽣存周期
# D Day、H Hour、W Week
第四步:检查named.conf与zones⽂件
# named-checkconf /etc/named.conf
# named-checkconf /etc/named.rfc1912.zones
检查itcast.cluster.zone⽂件
# cd /var/named
# named-checkzone itcast.cluster.zone itcast.cluster.zone
第五步:启动DNS服务(named)
# systemctl restart named
# netstat -tnlp |grep named
3、Web服务搭建
# yum install httpd -y
# systemctl start httpd
# echo 'DNS Test ...' > /var/www/html/index.html
4、测试DNS服务器的正向解析
Client:客户端服务器操作
# 3H ) ; minimum 缓存的最⼩⽣存周期
# D Day、H Hour、W Week
# named-checkconf /etc/named.conf
# named-checkconf /etc/named.rfc1912.zones
检查itcast.cluster.zone⽂件
# cd /var/named
# named-checkzone itcast.cluster.zone itcast.cluster.zone
# systemctl restart named
# netstat -tnlp |grep named
# yum install httpd -y
# systemctl start httpd
# echo 'DNS Test ...' > /var/www/html/index.html
添加DNS服务器
# 临时
echo 'nameserver 10.1.1.12' > /etc/resolv.conf
注:电脑重启,⽹络刷新restart network,VMware挂起,临时DNS都会失效
# 永久添加
vim /etc/sysconfig/network-scripts/ifcfg-ens33
DNS=10.1.1.12
使⽤nslookup检测正向解析是否⽣效
# nslookup www.itcast.cluster
使⽤elinks命令⾏浏览器或curl来实现访问
# yum install elinks -y
# elinks
输⼊www.itcast.cluster
# curl http://www.itcast.cluster