Linux网络服务

第一讲:linux网络基础
一:什么叫做网络服务
邮件服务:qq邮箱
网页服务:京东,淘宝网等
文件服务:ftp

网络服务器的概念:是指一些在网络上运行的,面向服务的软件模块
网络服务的标准:可以使用各种协议通过网络进行远程访问的软件模块(常见协议http/ftp/telnet/smtp等)

二:互联网接入方法
ADSL:非对称数字用户环路。ADSL可以提供最高1M的上行速率和最高8M的下行速率。
优点:使用电话线,节省了布线成本
上网的同时可以打电话,节省了电话费

  缺点:铜线耗材昂贵
        带宽限制
        动态IP地址

FTTH:光纤入户的带宽更高,而光纤的原材料是二氧化硅。在自然界取之不尽用之不竭。当然也是动态IP地址

小区宽带:小区宽带是一个大局域网,所有客户都在同一个网段中。外网接口可以是FTTH,
也可以是固定IP地址

固定IP光纤:带宽*申请,价格昂贵。因为固定IP地址,所以可以搭建服务器

第二讲:网络通信协议
一:OSI七层模型和TCP四层模型
OSI的七层框架

应用层功能:用户接口
表示层功能:数据的表现形式,特定功能的实现,如加密
会话层功能:对应用会话的管理,同步
传输层功能:可靠与不可靠的传输,传输前的错误检测,流控
网络层功能:提供逻辑地址,选路
数据链路层功能:成帧,用MAC地址访问媒介,错误检测与修正
物理层功能:设备之间的比特流的传输,物理接口,电气特性等

TCP/IP协议4层模型

TCP/IP模型与OSI模型的对应

网络接口层:网络接入层与OSI参考模型中的物理层和数据链路层相对应。它负责监视数据与主机和网络之间的交换。事实上,TCP/IP本身并没有定义该层的协议,而由参与互联的各网络使用自己的物理层和数据链路层协议,然后与TCP/IP的网络接入层进行连接。地址解析协议(ARP)工作在此层,即OSI参考模型的数据链路层

网际互联层:网际互联层对应于OSI参考模型的网络层,主要解决主机到主机的通信问题。它所包含的协议设计数据包在整个网络上的逻辑传输。该层有三个主要协议:网际协议(IP),
互联网组管理协议(IGMP)和互联网控制报文协议(ICMP)

传输层:传输层对应于OSI参考模型的传输层,为应用层实体提供端到端的通信功能,保证了数据包的顺序传送及数据的完整性。该层定义了两个主要的协议:传输控制协议(TCP)和用户数据报协议(UDP)

应用层:应用层对应于OSI参考模型的高层,为用户提供所需要的各种服务,例如:FTP,Telnet,DNS,SMTP等

二:数据封装过程

三:Linux网络基础
1、Linux的IP地址配置
(1)ifconfig命令临时配置IP地址
Ifconfig命令:查看与配置网络状态命令
ifconfig eth0 192.168.0.200 netmask 255.255.255.0 //设置IP地址与掩码
(2)setup工具永久配置IP地址
(3)修改网络配置文件
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0 //网卡设备名
TYPE=Ethernet //类型为以太网
UUID=d194e3aa-626a-46a2-aebf-0f774e083dc4 //唯一识别码
ONBOOT=yes //是否随网络服务启动,eth0生效
NM_CONTROLLED=yes //是否可以由Network Manager图形管理工具托管
BOOTPROTO=none //是否自动获取IP(none,static,dhcp)
HWADDR=00:0c:29:3a:ae:dd //mac地址
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME=“System eth0”
[root@localhost ~]# vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=localhost.localdomain
NTPSERVERARGS=iburst

[root@localhost ~]# vi /etc/resolv.conf
nameserver 202.103.44.150
nameserver 114.114.114.114

(4)图形界面配置IP地址

2、常用的网络命令
关闭与启动网卡如下:
Ifdown 网卡设备名 //禁用该网卡设备
Ifup 网卡设备名 //启用该网卡设备

查询网络状态如下:
[root@localhost ~]# netstat [选项]
选项 -t:列出TCP协议端口
-u:列出UDP协议端口
-n:不使用域名与服务名,而使用IP地址和端口号
-l:仅列出在监听状态网络服务
-a:列出所有的网络连接

[root@localhost ~]# netstat -rn
选项 -r:列出路由列表,功能和route命令一致

route命令如下:
[root@localhost ~]# route -n //查看路由列表(可以看到网关)

域名解析命令如下:
[root@localhost ~]# nslookup [主机名或IP] //进行域名与IP地址解析
[root@localhost ~]# nslookup

server //查看本机DNS服务器
Default server: 202.103.44.150
Address: 202.103.44.150#53
Default server: 114.114.114.114
Address: 114.114.114.114#53

ping命令如下:
ping [选项] ip或域名 //探测指定IP或域名的网络状况
选项 -c 次数:指定ping包的次数

telnet命令如下:
telnet [域名或IP] [端口] //远程管理与端口探测命令
例如:telnet 192.168.0.252 80

traceroute命令如下:
traceroute [选项] IP或域名 //路由跟踪命令
选项 -n:使用IP,不使用域名,速度更快

四:虚拟机网络参数配置
在配置虚拟机网络之前首先了解虚拟机中的三个连接方法
1.桥接模式:通过物理机的真实网卡进行通信,若选此项,则虚拟机需要配置与物理机相同的网关,缺点是需要占用真实网段的一个IP地址。这种模式更适用于实验,因为这种模式不仅可以与你的物理机可以通信还可以与同一局域网的其他主机通信,还可以访问公网。

2.NAT模式:在windows中(物理机中)是以VMware8虚拟网卡进行通信。这种模式只能与你自己的主机通信,不能与局域网的其他主机通信,但是可以通过物理的网卡访问公网。

3.仅主机模式:在windows中(物理机中)是以VMware1虚拟网卡进行通信。这种模式,不能与局域网的其他主机通信,只能与自己的物理机通信,并且不能上公网。

切记:在选择桥接模式之后,需要选择桥接的网卡(即需要确定虚拟机需要通过哪个真实网卡连接网络),一般的虚拟机都是自动桥接,但是这种方式真的跟不靠谱**,所以你需要自己选择,如果你是通过有线接入网络,则选择有线桥接,若是通过无线接入网络,则通过无线接入。

接下来配置虚拟机中的网络参数,以保证可以实验,达到自己想要的目的:
1.配置IP地址

2.启动网卡,在/etc/sysconfig/network-scripts/ifcfg-eth0文件中,将ONBOOT=no改为ONBOOT=yes
之后service network restart,最后在terminal中用命令ifconfig查看是否有eth0这个网卡信息。若没有则需要考虑是否是将虚拟机中的IP地址与真实机的IP地址是否冲突?

3.修改UUID,若你的虚拟机是通过clone或者复制而来的,则需要这一步,若你是通过光盘或者其他介质安装的系统,则忽略这一步。
1)打开ifcfg-eth0文件,删除MAC地址行
2)删除网卡和MAC地址绑定文件
3)重启系统

第三讲:SSH服务
SSH(安全外壳协议),SSH为建立在应用层和传输层基础上的安全协议
SSH端口:22
Linux中守护进程:sshd
安装服务:OpenSSH
服务端主程序:/usr/sbin/sshd
客户端主程序:/usr/bin/ssh
服务端配置文件:/etc/ssh/sshd__config
客户端配置文件:/etc/ssh/ssh_config
明文抓包小实验之ftp
[root@localhost ~]# rpm -ivh vsftpd-2.2.2-24.el6.x86_64.rpm //安装ftp的服务
[root@localhost ~]# service vsftpd restart //启动服务
[root@localhost ~]# netstat -tlun //查看网络服务端口号

在物理主机上dos窗口下测试

[root@localhost ~]# tcpdump -i eth0 -nnX port 21 //在eth0设备上抓包

1、ssh加密原理
压缩包使用对称加密算法,采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解释,这种加密方法称为对称加密,也称为单密钥加密

非对称加密算法(asymmetric cryptographic algorithm)又名为公开密钥加密算法,非对称加密算法需要两个密钥:公开密钥(publivkey)和私有密钥(privatekey)

关于ssh原理如下:

客户端首次ssh登录服务器,服务器会向客户端提供公钥B的下载,客户端再发送任何数据都会拿公钥B加密,服务器端收到后拿自己的私钥B解密

3、SSH配置文件
[root@localhost ~]# vi /etc/ssh/sshd
Port 端口
ListenAddress 0.0.0.0 监听的IP
Protocol 2 SSH版本选择
HostKey/etc/ssh/ssh_host_rsa_key 私钥保存位置
ServerKeyBits 1024 私钥的位数
SyslogFacility AUTH 日志记录SSH登录情况
LogLevel INFO 日志等级
GSSAPAuthentication yes GSSAPI认证开启

关于ssh服务器端安全设定部分
PermitRootLogin yes 允许root的ssh登录
PubkeyAuthentication yes 是否使用公钥验证
AuthorizedKeysFile .ssh/authorized_keys 公钥的保存位置
PasswordAuthentication yes 允许使用密码验证登录
PermitEmptyPasswords no 不允许空密码登录

4、常用SSH命令
SSH远程管理命令
ssh 用户名@IP
[root@localhost ~]# ssh lm@192.168.220.11
lm@192.168.220.11’s password:

SCP远程复制命令
下载
[root@localhost ~]# scp root@192.168.220.11:/root/lmls .
//把11里面的lmls文件复制到当前10的root目录下
root@192.168.220.11’s password:
root@192.168.220.11’s password:
lmls 100% 0 0.0KB/s 00:00

上传
[root@localhost ~]# scp -r /root/123 root@192.168.220.11/root
[root@localhost ~]# scp -r /root/123 root@192.168.220.11:/tmp
//把10的root目录下的123文件上传到11的tmp目录下
root@192.168.220.11’s password:
123 100% 0 0.0KB/s 00:00

Sftp文件传输命令
[root@localhost ~]# sftp root@192.168.40.11
-ls 查看服务器端数据
-cd 切换服务器端目录
-lls 查看本地数据
-lcd 切换本地目录
-get 下载
-put 上传

5、秘钥对登录
秘钥对验证

秘钥对登录小实验
步骤1:client端 ssh-keygen -t rsa
[root@localhost ~]# cd .ssh/
[root@localhost .ssh]# ls
id_rsa id_rsa.pub known_hosts
[root@localhost .ssh]# scp id_rsa.pub root@192.168.220.11:/root
root@192.168.220.11’s password:
id_rsa.pub 100% 408 0.4KB/s 00:00

   server端  把公钥上传到服务器端
             cat id_rsa.pub>>/root/.ssh/authorized_keys
             chmod 600 /root/.ssh/authorized_keys

步骤2:修改服务器端ssh配置文件
[root@localhost .ssh]# vi /etc/ssh/sshd_config
RSAAuthentication yes 开启RSA验证
PubkeyAuthentication yes 是否使用公钥验证
AuthorizedKeysFile .ssh/authorized_keys 公钥的保存位置
PasswordAuthentication no 禁止使用密码验证登录

步骤三:服务器端关闭SELinux服务
[root@localhost .ssh]# vi /etc/selinux/config
然后再重启服务

服务器端重启ssh服务 service sshd restart

第四讲:DHCP服务器
一:DHCP服务作用
为大量客户机自动分配地址,提供集中管理
减轻管理和维护成本,提高网络配置效率

可分配的地址信息主要包括:
网卡的IP地址,子网掩码
对应的网络地址,广播地址
默认网关地址
DNS服务器地址
引导文件,TFTP服务器地址

1、DHCP原理
DHCP协议中的报文如下:
DHCP DISCOVER :客户端开始DHCP过程发送的包,是DHCP协议的开始
DHCP OFFER :服务器接收到DHCP DISCOVER之后做出的响应
DHCP REQUEST :客户端对于服务器发出的DHCP OFFER所做出的响应。在续约租期的时候同样会使用
DHCP RELEASE :一般出现在客户端关机、下线等状况。这个报文将会使DHCP服务器释放发出此报文的客户端的IP地址

2、DHCP服务器相关文件
安装DHCP服务器
[root@localhost Packages]# rpm -ivh dhcp
关于dhcp的相关文件
服务名:dhcpd
主配置文件:/etc/dhcp/dhcpd.conf
模板文件:/usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample
[root@localhost Packages]# vi /etc/dhcp/dhcpd.conf

DHCP Server Configuration file.

see /usr/share/doc/dhcp*/dhcpd.conf.sample

see ‘man 5 dhcpd.conf’

[root@localhost Packages]# cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf
cp:是否覆盖"/etc/dhcp/dhcpd.conf"? y

[root@localhost Packages]# vi /etc/dhcp/dhcpd.conf

dhcpd.conf

Sample configuration file for ISC dhcpd

option definitions common to all supported networks…

option domain-name “example.org”;
option domain-name-servers ns1.example.org, ns2.example.org;

3、配置文件
DHCP全局配置
option domain-name 设置所在DNS域
option domain-name server 设置DNS服务器地址
default-lease-time 设置默认续租时间,单位为秒
max-lease-time 设置最大租约时间,单位为秒
log-facility 指定日志设备
ddns-update-style 设定DNS的更新方式
authoritative 标识权威服务器
log-facility local7 日志发送到local7日志服务中

4、配置DHCP服务器
修改配置文件
服务器端:[root@localhost Packages]# vi /etc/dhcp/dhcpd.conf

客户端配置
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=dhcp

重启网络服务
[root@localhost ~]# service network restart

验证是否分配成功
服务器端

客户端

第五讲:VSFTP服务
一:FTP简介与原理
FTP(file Transfer Protocol)中文称为“文件传输协议”。用于Internet上的控制文件的双向传输
下载文件就是从远程主机拷贝文件至自己的计算机上
上传文件就是将文件从自己的计算机中拷贝至远程主机上

FTP传输文件分为主动模式和被动模式
主动模式:服务端从20端口主动向客户端发起连接

当客户端通过用户名和密码登录服务器端,登录的服务器端为21端口。如果服务器通过21端口接收到客户端就会验证这个用户名和密码。不合格就拒绝访问,合格就回复NAK。客户端会随机开启1024以上的端口,在端口中传递一个PORT命令。服务器端接受到这条PORT命令,就会开启20端口号,向客户端的随机端口号发送数据

被动模式:服务端在指定范围内某个端口被动等待客户端连接

客户端连接21端口,输入用户名和密码。登录成功,服务端回复NAK报文。这时客户端开启PASV命令。告诉服务端采用被动模式连接。服务端这边开启1024随机端口并告诉客户端。客户端通过本机随机端口向服务器端随机端口传送数据

FTP连接端口如下:
控制连接:TCP21,用于发送FTP命令信息
数据连接:TCP20,用于上传,下载数据

2、FTP相关文件
安装vsftpd配置文件
[root@localhost Packages]# rpm -ivh /mnt/cdrom/Packages/vsftpd-2.2.2-24.el6.x86_64.rpm
warning: /mnt/cdrom/Packages/vsftpd-2.2.2-24.el6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Preparing… ########################################### [100%]
package vsftpd-2.2.2-24.el6.x86_64 is already installed

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

用户控制列表文件(相当于黑名单)
/etc/vsftpd/ftpusers
/etc/vsftpd/user_list

[root@localhost Packages]# vi /etc/vsftpd/ftpusers

Vsftpd实验
[root@localhost ~]# service vsftpd restart //开启vsftpd服务
[root@localhost ~]# tcpdump -i eth0 -nnX port 21 //监听21端口

在windowns上测试

FTP相关用户如下:
匿名用户 :anonymous或ftp
本地用户 :使用Linux系统用户和密码
虚拟用户:管理员自定义的模拟用户

3、匿名用户访问
[root@localhost ~]# vi /etc/vsftpd/vsftpd.conf
anonymous_enable //允许匿名用户访问
anon_upload_enable //允许匿名用户上传
anon_mkdir_write_enable=YES //允许匿名用户建立目录
anon_umask //设置上传的默认文件权限(默认600)

本地用户访问基本配置
[root@localhost ~]# vi /etc/vsftpd/vsftpd.conf
Local_ENABLE=YES 允许本地用户登录
write_enable=YES 允许本地用户上传
local——umask=022 本地用户上传umask值

配置虚拟用户登录的步骤如下:
(1)添加虚拟用户口令文件
[root@localhost ~]# vi /etc/vsftpd/vuser.txt
lm //用户名
redhat //密码

(2)生成虚拟用户口令认证文件
[root@localhost ~]# yum -y install db4-utils
#如果没有安装口令认证命令,需要安装

[root@localhost ~]# db_load -T -t hash -f /etc/vsftpd/vuser.txt /etc/vsftpd/vuser.db
#把文本文档转变为认证的数据库

(3)编辑vsftpd的PAM认证文件
[root@localhost ~]# vi /etc/pam.d/vsftpd

#%PAM-1.0
#session optional pam_keyinit.so force revoke
#auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
#auth required pam_shells.so
#auth include password-auth
#account include password-auth
#session required pam_loginuid.so
#session include password-auth
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser
#注释掉其他的行,加入此两行即可
#注释掉其他行,可以禁止本地用户登录,因为本地用户登陆时的验证依然依赖这个文件

(4)建立本地映射用户并配置宿主目录权限
[root@localhost ~]# useradd -d /home/vftproot -s /sbin/nologin vuser
#此用户不需要登录,只是映射用户
#用户名必须和下一步配置文件中一致

[root@localhost ~]# chmod 755 /home/vftproot/ //修改权限

(5)修改配置文件
[root@localhost ~]# vi /etc/vsftpd/vsftpd.conf
guest_enable=YES //开启虚拟用户
guest_username=vuser //FTP虚拟用户对应的系统用户
pam_service_name=vsftpd //PAM认证文件(默认存在)

(6)重启vsftpd服务,并测试
[root@localhost ~]# service vsftpd restart
关闭 vsftpd:[确定]
为 vsftpd 启动 vsftpd:[确定]
#此时虚拟用户可以登录,查看,不能下载,默认上传文件的位置是宿主用户的家目录
#权限使用的是匿名用户权限进行管理

二:虚拟用户访问之单独定义虚拟用户权限
1、修改配置文件
[root@localhost ~]# vi /etc/vsftpd/vsftpd.conf
#指定保存虚拟机用户配置文件的目录

2、手工建立目录
[root@localhost ~]# mkdir /etc/vsftpd/vusers_dir

3、为每个虚拟用户建立配置文件
[root@localhost ~]# vi /etc/vsftpd/vusers_dir/cangls
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
#允许此用户上传
local_root=/tmp/vcangls
#给cangls指定独立的上传目录

4、建立上传目录
[root@localhost ~]# mkdir /tmp/vcangls
[root@localhost ~]# chown vuser /tmp/vcangls/

配置完效果如下:
禁止匿名用户登录(配置文件修改)
禁止本地系统用户登录(pam文件修改)
允许虚拟用户登录(配置文件修改)
cangls的上传目录是/tmp/vcangls,并且允许查看,下载,上传

第六讲:Samba服务
数据共享的方法:在windowns中最常用的是网上邻居。网上邻居使用的文件系统是CIFS(通用互联网文件系统)协议进行数据共享
Linux中最常用的是NFS服务

一:samba简介
Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过设置“NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。

Samba主要应用如下:
文件共享
打印服务器
Samba登录时身份验证
可以进行windows的主机解析

二:Samba安装与端口
1、 安装
Samba: 主服务包
Samba-client: 客户端
Samba-common: 通用工具
Samba4-libs: 库
Samba-winbind: Windows域映射
Samba-winbind-clients:域映射客户端

[root@localhost Packages]# rpm -ivh samba-3.6.23-51.el6.x86_64.rpm
warning: samba-3.6.23-51.el6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Preparing… ########################################### [100%]
1:samba ########################################### [100%]

[root@localhost Packages]# rpm -ivh samba4-libs-4.2.10-15.el6.x86_64.rpm
warning: samba4-libs-4.2.10-15.el6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Preparing… ########################################### [100%]
package samba4-libs-0:4.2.10-15.el6.x86_64 is already installed

[root@localhost Packages]# rpm -ivh samba-winbind-3.6.23-51.el6.x86_64.rpm
warning: samba-winbind-3.6.23-51.el6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Preparing… ########################################### [100%]
package samba-winbind-0:3.6.23-51.el6.x86_64 is already installed

2、samba的守护进程
smbd:提供对服务器中文件,打印资源的共享访问139 445
nmbd:提供基于NetBIOS主机名称的解析137 138

3、启动samba服务
[root@localhost Packages]# service smb start
[root@localhost Packages]# service nmb start

三:samba相关文件
[root@localhost Packages]# cd /etc/samba/
[root@localhost samba]# ls
lmhosts smb.conf smbusers

1、常用文件
/etc/samba/smb.conf
#配置文件

/etc/samba/lmhosts
#对应NetBOIS名与主机的IP的文件,一般samba会自动搜索(只对本机生效)

/etc/samba/smbpasswd
#samba密码保存文件,默认不存在

/etc/samba/smbusers
#用户别名,用于适用不同操作系统中用户名习惯。需要配置文件中“username map”选项支持

2、常用命令
testparm //检测配置文件是否正确

四:samba配置文件详解
[root@localhost samba]# vi smb.conf

1、配置文件结构
Global Settings
-[global]:全局设置

Share Definitions
-[homes]:用户目录共享设置
-[printers]:打印机共享设置
-[myshare]:自定义名称的共享目录设置
comment:描述信息
path:共享的路径
guest ok:允许所有人访问,等同于public
read only:所有人只读
writable:所有人可写
write list:拥有写权限的用户列表
browseable:是否浏览可见
valid users:指定可以访问的用户

2、Global Settings
workgroup:所在工作组名称
server string:服务器描述信息
log file:日志文件位置
max log size:日志文件的最大容量

security:安全级别,可用值如下:
share:不需要密码可以访问
user:使用系统用户,samba密码登录
server:由其他服务器提供认证
domain:由域控制器提供认证

3、常见的变量
%v samba的版本号
%S 任意用户可以登录
%m client端的NetBOIS主机名
%L 服务器端的NetBIOS的主机名
%u 当前登录的用户名
%g 当前登录的用户组名

五:samba基本使用
1、 share权限访问
配置文件修改

重启服务[root@localhost samba]#
[root@localhost samba]# service smb restart
关闭 SMB 服务:[失败]
启动 SMB 服务:[确定]
[root@localhost samba]# service nmb restart
关闭 NMB 服务:[失败]
启动 NMB 服务:[确定]

2、 客户端的使用
在windown左下角搜索虚拟机ip地址 //192.168.220.10

[root@localhost ~]# chown nobody /stu/ //修改stu文件权限为nobody
[root@localhost ~]# ll -d /stu
drwxr-xr-x 2 nobody root 4096 3月 28 13:38 /stu

关于Linxu客户端访问
[root@localhost samba]# smbclient -L //192.168.220.10 //查看主机的共享资源
WARNING: The security=share option is deprecated
Enter root’s password:
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.23-51.el6]

    Sharename       Type      Comment
    ---------       ----      -------
    movie           Disk      stu
    IPC$            IPC       IPC Service (sc samba)

Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.23-51.el6]

    Server               Comment
    ---------            -------
    LOCALHOST            sc samba

    Workgroup            Master
    ---------            -------
    MYGROUP              LOCALHOST
    WORKGROUP            DESKTOP-BRFLO1L

3、 user级别访问
配置文件修改

4、 添加,删除,查看
添加samba用户如下
注意用户必须已经是系统用户,才能添加为samba用户
pdbedit -a -u 系统用户
或 smbpasswd -a 系统用户名

删除samba用户如下:
pdbedit -x -u 系统用户
或 smbpasswd -x 系统用户名

samba共享目录权限如下:
系统权限要对共享目录生效
Samba服务器权限也会对共享目录生效
在实际的工作中,可能的共享目录众多,用户众多,权限交叉,建议使用系统权限控制共享目录权限,而不是使用samba权限

Samba访问实验如下
1、Samba共享目录

2、创建文件
[root@localhost samba]# mkdir -p /share/jiaoxue
[root@localhost samba]# mkdir -p /share/jiaowu

3、改权限
[root@localhost share]# chmod 700 jiao*
[root@localhost share]# ll
总用量 8
drwx------ 2 root root 4096 3月 29 14:33 jiaowu
drwx------ 2 root root 4096 3月 29 14:33 jiaoxue

4、创建用户和密码
[root@localhost share]# useradd jx
[root@localhost share]# passwd jx
[root@localhost share]# smbpasswd -a xz
[root@localhost share]# pdbedit -L
sc:514:
5、改对目录执行的权限
[root@localhost share]# setfacl -m u:jx:rwx jiaoxue/
[root@localhost share]# setfacl -m u:jw:rx jiaowu/

[root@localhost share]# getfacl jiaoxue/

file: jiaoxue/

owner: root

group: root

user::rwx
user:jx:rwx
user:jw:r-x
user:xz:r-x
group::—
mask::rwx
other::—

6.测试
\192.168.220.10

六:samba其他使用
实验一:客户端挂载到本地使用
mount -t cifs -o username=用户 原路径 目标路径
例如:[root@localhost ~]# mount -t cifs -o username=jx //192.168.220.10/教学 /test
Password:
验证是否成功:

实验二:samba别名
Linux的用户如root,nobody在Windows中可能对应的用户是administrator,guest用户
Samba是跨平台,所以用别名让他们可以通用
[root@localhost samba]# vi smbusers

Unix_name = SMB_name1 SMB_name2 …

root = administrator admin
nobody = guest pcguest smbguest
注意:原名=别名(多个别名空格隔开)

第七讲:NFS服务
一:NFS简介
NFS可以让客户端把服务器的共享目录,挂载到本机使用,就像使用本机分区一样,使用非常方便
NFS端口:2049
RPC端口:111
NFS daemon端口:随机
PRC(远程调用)服务:NFS是被RPC服务管理的,所以必须安装RPC的主程序rpcbind

二:NFS权限说明
Linux系统目录权限会生效
NFS服务共享权限也很会生效

用户身份映射(系统权限)如下:
NFS没有用户登录认证机制,所以客户端登录到服务器之后,会把客户端的身份映射到服务器端。就会出现以下四种可能:
第一种可能:client和server上刚好有相同的账号和用户组(用户名和UID都要相同)
Client上用户可以在server上按照用户权限使用文件

服务器:[root@localhost home]# useradd -u 600 test1
[root@localhost home]# passwd test1

客户端:[root@localhost ~]# useradd -u 600 test1
[root@localhost ~]# passwd test1
[root@localhost client]# su - test1
[test1@localhost ~]$ cd /home/client/
[test1@localhost client]$ touch cde
[test1@localhost client]$ ll cde
-rw-rw-r—1 test1 test1 0 11月 14 2021 cde

第二种可能:当client和server上拥有相同的UID,但是用户名不同
(1) 假设client上有用户aa(UID:500),server上有用户bb(UID:500).在client上使用server共享目录时,身份识别为bb(因为Linux权限绑定在UID上)
(2) 此种情况尽量避免出现,容易逻辑混乱

服务器端:用户名:test1 UID:600
客户端:[root@localhost client]# userdel -r test1 //删除test1用户
[root@localhost client]# useradd -u 600 user1
[root@localhost client]# passwd user1
[root@localhost client]# su - user1
[user1@localhost ~]$ cd /home/client/
[user1@localhost client]$ touch def
[user1@localhost client]$ ll def
-rw-rw-r–1 user1 user1 0 3月 30 2021 def
服务器端:[root@localhost home]# ll /tmp/def
-rw-rw-r–1 test1 test1 0 3月 30 2021 def

第三种可能:server上没有client的UID
Client用户访问server时,server上没有此UID,则把此用户自动转变为nfsnobody(UID:65534)用户

服务器端:没有UID为700的用户
客户端:[root@localhost client]# useradd -u 700 test2
[test2@localhost client]$ touch qwe
[test2@localhost client]$ ll qwe
-rw-rw-r–1 nobody nobody 0 3月 30 2021 def

第四种可能:clinet上root使用共享
默认把root也转变为nfsnobody,服务器端可以修改配置文件,允许root访问nfs服务器

三:NFS服务器端设置
服务器端安装如下:
默认已经安装,如果需要手工安装:NFS主程序:nfs-uti手工开启nfs命令chkconfig nfs on
RPC主程序:rpcbind(旧版本portmap)
[root@localhost ~]# chkconfig --list | grep nfs
nfs 0:关闭 1:关闭 2:关闭 3:关闭 4:关闭 5:关闭 6:关闭
nfs-rdma 0:关闭 1:关闭 2:关闭 3:关闭 4:关闭 5:关闭 6:关闭
nfslock 0:关闭 1:关闭 2:关闭 3:启用 4:启用 5:启用 6:关闭

[root@localhost ~]# chkconfig --list | grep rpc
rpcbind 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭
rpcgssd 0:关闭 1:关闭 2:关闭 3:启用 4:启用 5:启用 6:关闭
rpcsvcgssd 0:关闭 1:关闭 2:关闭 3:关闭 4:关闭 5:关闭 6:关闭
配置文件:/etc/exports

服务器端管理如下:
默认已经启动,如果需要手工启动:
Service nfs start
Service rpcbind start
[root@localhost ~]# service rpcbind restart
停止 rpcbind:[确定]
正在启动 rpcbind:[确定]
[root@localhost ~]# service nfs restart
关闭 NFS 守护进程:[失败]
守护进程如下:
[root@localhost ~]# ps aux | grep -E “nfs|rpc”
rpc.requotad:NFS配额
rpc.mountd:处理客户端挂载
nfsd:NFS守护进程
rpcbind:RPC守护进程

四:NFS服务器端配置文件
NFS配置文件是/etc/exports 共享目录 客户端(权限)

可以识别的客户端写法如下:
指定IP:192.168.220.10
指定网段:192.168.220.0/24
192.168.44.0/255.255.255.0
指定主机名:www.itxdl.cn
所有主机:*

NFS服务常用权限如下:
rw:读写
ro:只读
all_squash:不论登录是谁,都压缩为匿名用户nfsnobody
root_squash:如果登录的是root,压缩为nfsnobody
no_root_squash:允许root身份登录,不推荐
anonuid:把所有的登录用户,不再压缩为nfsnobody用户,而是压缩为指定uid用户
sync:将数据同步写入内存缓冲区与磁盘中,效率低。但可以保证数据的一致性
async:将数据先保存在内存缓冲区中,必要时才写入磁盘

举例1
任何人可以访问,允许root访问
[root@localhost ~]# vi /etc/exports
/home/test 192.168.220.129(rw,no_root_squash)

举例2
同时共享多个目录
/home/test 192.168.220.129(rw,no_root_squash)
/home/soft 192.168.220.0/24(ro) 192.168.220.4(rw)
#220的网段都有只读权限,只要192.168.220.4有读写权限

nfs常用命令如下:
exportfs 选项 -a 按照配置文件挂载/卸载所有目录
-r 重新挂载
-u 卸载
-v 显示详细信息

exportfs -arv //重新挂载所有目录,不用重启NFS服务
exportfs -auv //全部卸载所有目录

[root@localhost ~]# exportfs -auv
[root@localhost ~]# exportfs -arv
exporting 192.168.220.4:/home/soft
exporting 192.168.220.129:/home/test
exporting 192.168.220.0/24:/home/soft

showmount命令如下:
showmount查看共享目录
showmount -e IP或主机名
选项 -e 查看某个主机的共享目录

[root@localhost ~]# showmount -e
Export list for localhost.localdomain:
/home/soft 192.168.220.0/24
/home/test 192.168.220.129

五:NFS客户端使用
客户端需要启动的服务有哪些?
需要启动rpcbind,默认已经启动
如果没有启动,手工启动命令:service rpcbind start

查看服务器端共享目录:[root@localhost ~]# showmount -e 192.168.220.10
Export list for 192.168.220.10:
/home/soft 192.168.220.0/24
/home/test 192.168.220.129

把服务器共享目录挂载到本地
mkdir /home/client
#建立挂载点
mount -t nfs 192.168.220.10:/home.soft /home/client
#挂载到本地使用
mount //查看挂载
umount /home/client //卸载
nfs开机自动挂载 vi /etc/fstab

第八讲:DNS服务
一:DNS介绍
1、什么是域名?
域名(Domain Name)简称域名、网域,是由一串用点分隔的名字组成的 Internet 上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位。具有独一无二,不可重复的特性

2、什么是DNS
域名系统(Domain name System)是互联网的一项服务。域名解析是把域名指向网站空
间 IP,让人们通过注册的域名可以方便地访问到网站的一种服务。IP 地址是网络上标识站点的数字地址,为了方便记忆,采用域名来代替 IP 地址标识站点地址。域名解析就是域名到 IP 地址的转换过程。
域名的解析工作由 DNS 服务器完成。可以理解为 DNS 就是翻译官。
正向解析:域名 --> IP 地址
反向解析:IP 地址 --> 域名

3、域名的组成和分类
常见格式:www.atguigu.com
完整格式:www.atguigu.com.
. : 根域,可省略不写
com: *域,由 ICANN 组织指定和管理
分类:
国家地区域名:cn(中国)、hk(香港)、sg(新加坡)等
通用*域名:com(商业机构)、org(非营利组织)、edu(教育机构)等
新通用*域名:red(红色、热情)、top(*、高端)等
atguigu:二级域(注册域),可由个人或组织申请注册
www: 三级域(子域),服务器网站名代表
主机名:s1.www.atguigu.com. 中的 s1 就是主机名,一般用来表示具体某一台主机

域名关系图

二:域名解析过程

  1. 客户机首先查看查找本地 hosts 文件,如果有则返回,否则进行下一步
  2. 客户机查看本地缓存,是否存在本条目的缓存,如果有则直接返回,否则进行下一步。
  3. 将请求转发给指向的 DNS 服务器。
  4. 查看域名是否本地解析,是则本地解析返回,否则进行下一步。
  5. 本地 DNS 服务器首先在缓存中查找,有则返回,无则进行下一步。
  6. 向全球 13 个根域服务器发起 DNS 请求,根域返回 org 域的地址列表。
    7.使用某一个 org 域的 IP 地址,发起 DNS 请求,org 域返回 kernel 域服务器地址列表。
  7. 使用某一个 kernel 域 IP 地址,发起 DNS 请求,kernel 域返回 www.kernel.org 主机的 IP 地址,本地 DNS 服务收到后,返回给客户机,并在本地 DNS 服务器保存一份。

三:分布式DNS模型
分布式:同一个任务,由不同步骤共同完成的过程就叫分布式(生产车间中某一条流水线,流水线上有很多步骤,不同步骤之间就叫分布式)

客户机想去访问www.aiguigu.com服务器的时候,由于客户端查看自己的host文件和缓存都没有,则客户端只能通过DNS服务器访问,客户端问DNS,你知道www.ai地址吗?DNS不知道,客户端则去问根域。根域答不知道,但是我知道*域的com,就把*域的com告诉客户端,客户端问*域的com,你知道www.ai地址吗,*域的com不知道,但是知道athuigu地址,则把哪个地址告诉客户端。客户端问athuigu地址,你知道www.ai地址吗,athuigu地址就把www.ai地址告诉客户端

负载均衡:将用户的请求,分配到多个功能相同的服务器上(一个生产车间中的多条相同功能的流水线)

四:DNS软件信息
安装dns:[root@iZ2ze9yk5mv9ltpu3ofrmpZ ~]# yum -y install bind
软件名称:
bind
服务名称:
named
软件端口:
UDP 53 数据通信(域名解析)
TCP 53 数据同步(主从同步)
配置文件:
主配置文件:/etc/named.conf(服务器运行参数)

区域配置文件:/etc/named.rfc1912.zones(服务器解析的区域配置,正反向区域定义信息)

数据配置文件:/var/named/xx.xx(主机名和 IP 地址的对应解析关系,及主从同步信息)

五:DNS服务搭建
先关闭服务器和客户机的防火墙和SELinux
1、 软件安装
yum -y install bind

2、 配置主配置文件(/etc/named.conf)
3、 配置区域文件(/etc/named.rfc1912.zones)
注:先对区域文件进行备份,删除多余的模板,只留下一个正向和反向(反向修改时,网络的反写格式,如192.168.100.2—>100.168.192)
4、配置数据文件/var/named
A.先复制生成正向解析文件和反向解析文件
B.编辑正向解析文件(注意域名结尾的.)
C.编辑反向解析文件(注意域名结尾的.)
5、重启DNS服务
service named restart
6、客户端测试
在网卡配置文件中添加DNS服务器的地址,然后用nslookup测试

上一篇:Lunix学习笔记 | 配置Samba


下一篇:Samba服务的配置与使用