当前位置: 首页 > news >正文

Linux复习笔记(二) 网络服务配置(samba /DNS)

 遇到的问题,都有解决方案,希望我的博客能为你提供一点帮助。

二、网络服务配置

2.1Samba服务

​协议基础​

  •  Samba基于​​SMB/CIFS协议​​(Server Message Block / Common Internet File System),该协议用于实现局域网内跨平台的文件、打印机共享及网络资源访问,其核心是通过模拟Windows的网络邻居功能,使Linux/Unix系统与Windows系统无缝通信

​核心进程​:

  • smbd:使用SMB协议提供文件共享和打印服务。smbd服务还负责资源锁定和验证连接的用户的工作。smbd服务可以systemd进程进行启动和停止。
  • nmbd:使用基于IPv4的NetBIOS协议提供主机名和IP解析服务。除了名称解析之外,nmbd服务还允许浏览SMB网络查找域、工作组、主机和打印机等信息。nmbd服务systemd进程将启动和停止。

​工作流程​:

  • ​协议协商​​:客户端发送支持的SMB版本,服务器确认协议兼容性
  • ​身份认证​​:用户凭据验证(如用户名/密码)
  • ​资源访问​​:客户端挂载共享目录或访问打印机,smbd处理读写请求

2.1.1 Samba常用配置文件示例(掌握)

要求:对于给的配置文件要会看,并且会按要求给出配置代码

​配置文件(/etc/samba/smb.conf)​

​全局配置(Global Settings)​​:

[global]
workgroup = WORKGROUP    # 工作组名(需与Windows一致)
security = user          # 安全模式(user需认证)
map to guest = bad user  # 匿名访问处理
log file = /var/log/samba/log.%m  # 日志路径

​共享定义(Share Definition)​​:

[public]
path = /srv/samba/share  # 共享目录路径
browsable = yes          # 允许浏览
writable = yes           # 可写权限
guest ok = yes           # 允许匿名访问
valid users = user1,user2  # 限制特定用户访问

2.1.2 全局配置参数及作用表(重点看蓝色)

参数说明
Workgroup=MYGROUP设置工作组名称,要求 Windows 主机的工作组必须与之同名 。这确保了 Samba 服务器与 Windows 主机在同一个逻辑工作环境中,方便资源共享与访问。
Server string = Samba Server %vSMB 服务器的描述字段,其中参数 % v 会被替换为实际的 SMB 版本号。这主要用于在网络中标识服务器,方便用户识别服务器的用途和版本信息。
netbios name = MySamba定义在 Windows 系统中显示出来的计算机名称。Windows 通过 NetBIOS 协议识别网络中的计算机,此名称用于在 Windows 网络邻居等界面展示 Samba 服务器,方便用户找到对应的服务器。
security = user指定 Samba 服务器对用户的验证方式。可选值有:
-
user:用户访问 Samba 资源时需要提供账户和密码进行身份验证,这是最常用的方式,安全性较高,能控制不同用户对资源的访问权限。
-
share不需要提供用户名和密码,只要知道共享资源路径就可访问,这种方式安全性较低,适用于对安全性要求不高的公共共享场景。
-
server使用独立的远程主机来验证账户如果认证失败,将自动切换为 user 方式进行验证。
- domain借助主域控制器来完成用户认证,适用于企业中已经存在域环境的情况。
passdb backend = tdbsam规定用户密码的存储方式。可选值包括:
-
tdbsam使用数据库文件(默认文件名为 passdb.tdb,存储在 /etc/samba 目录下 )来建立用户数据库,这是一种常用的本地密码存储方式,方便管理本地 Samba 用户。
-
smbpasswd:通过 smbpasswd 命令为系统用户设置 Samba 密码,客户端使用该密码访问资源,相关文件默认也在 /etc/samba 目录下。
-
ldapsam基于 LDAP(轻量级目录访问协议)的账户管理方式来验证用户,适用于企业已经部署 LDAP 服务器进行用户管理的场景。
smb passwd file = /etc/samba/smbpasswd定义 Samba 用户的密码文件。如果该文件不存在,需要手动创建。这个文件专门用于存储 Samba 用户的密码信息,是 Samba 进行用户身份验证的重要依据。
参数说明
log file = /var/log/samba/log.%m用于指定 Samba 服务器日志文件的存储位置和命名规则 。其中 % m 会被替换为客户端主机名,这样便于区分不同客户端与 Samba 交互产生的日志信息,方便排查问题和进行管理。
max log size = 50设置 Samba 日志文件的最大容量为 50KB 。当日志文件达到这个大小后,可能会进行滚动更新等操作(具体策略还涉及其他相关配置),避免日志文件无限增大占用过多磁盘空间。
max connections = 0用来指定能够连接到 Samba Server 的最大连接数目 。这里设置为 0 表示不限制连接数。在实际应用中,若服务器性能有限,可设置合适的数值来防止过多连接导致服务器性能下降。
encrypt passwords = yes表示开启认证密码加密功能 。在网络传输过程中,对用户密码进行加密能提高安全性,防止密码被窃取和破解,是保障 Samba 服务安全的重要设置。
load printers = yes意味着在启动 Samba 服务时,会自动共享打印机 。如果网络中有共享打印需求,开启此选项可方便用户通过 Samba 访问共享打印机进行打印操作。
printcap name = cups用于设置共享打印机的配置文件为 cups 。cups(Common Unix Printing System)是 Unix 系统上常用的打印系统,通过指定这个配置文件,Samba 能正确获取打印机相关配置信息来实现共享打印功能。
cups options = raw是关于打印机的选项设置 。这里设置为 raw 可能表示以原始数据格式进行打印相关操作,不同的选项会影响打印机的工作方式和数据处理方式。
hosts allow = 192.168.86.0/24表示允许连接到 Samba Server 的客户端范围 。此例中允许 192.168.86.0 这个网段(子网掩码为 255.255.255.0 ,即 / 24 表示的网段)内的客户端连接。与之对应的 hosts deny 则是用来设置拒绝连接的客户端范围。通过这两个参数可灵活控制 Samba 服务的访问权限,保障服务安全。

hosts allow = host_list:允许连接到Samba Server的客户端;host_list可取值    

  • hosts allow=172.17.2.EXCEPT172.17.2.50:表示容许来自172.17.2.*.*的主机连接,但排除172.17.2.50;     
  • hosts allow=172.17.2.0/255.255.0.0,表示容许来自172.17.2.0/255.255.0.0子网中的所有主机连接;     
  • hosts allow=M1,M2,表示容许来自M1和M2两台计算机连接;   
  •  hosts allow=@xq,表示容许来自XQ网域的所有计算机连接。 

2.1.3 共享配置参数 

参数说明
comment = Home Directories对该共享的描述,可填写任意字符
path = /share/manager设置共享目录路径。/share/% u 会自动创建并共享 /share 目录下以用户名命名的目录;/share/% m 会自动创建并共享 /share 下以客户机主机名命名的目录
available = yes指定该共享是否可用,yes 表示可用
browseable = yes指定该共享资源是否可以被浏览,yes 表示可浏览
valid users = bobyuan,@bob指定允许访问该共享资源的用户,@groupName 表示组内用户
admin users = bobyuan,jane指定该共享的管理员,这些管理员对共享具有完全控制权限
writable = yes指定该共享路径是否可写,yes 表示可写
read only = no是否只读,no 表示不是只读(默认值 )
write list = username,@group拥有读取和写入权限的用户和组,以 @开头表示组
create mask = 0700默认创建文件的权限
directory mask = 0700

默认创建目录的权限

printable = yes

是否允许打印

2.1.4  samba中的常见内置变量

变量含义变量含义
%vsamba 服务器版本%m客户端 Netbios 主机名
%S任意用户%u当前登录用户名
%L服务器端 Netbios 主机名%g当前登录用户组名
%hsamba 服务器主机名%U当前对话用户名

 2.2DNS服务

DNS(Domain Name System) 是互联网的核心服务,负责将人类可读的域名(如 www.example.com)转换为机器可识别的 IP 地址(如 192.0.2.1)。它的核心功能包括:

  • 域名解析:将域名解析为 IP 地址(正向解析)或 IP 地址解析为域名(反向解析)。

  • 负载均衡:通过轮询分配请求到多台服务器。

  • 邮件路由:通过 MX 记录指定邮件服务器。

  • 服务发现:通过 SRV 记录标识服务位置(如 VoIP、数据库)。

2.2.1 DNS 核心概念

记录类型

  • A 记录:域名 → IPv4 地址。
  • AAAA 记录:域名 → IPv6 地址。
  • CNAME 记录:域名别名(如 www → example.com)。
  • MX 记录:邮件服务器地址。
  • NS 记录:指定域名由哪些 DNS 服务器解析。
  • PTR 记录:IP → 域名(反向解析)。
  • TXT 记录:存储文本信息(如 SPF、DKIM 配置)。

DNS 服务器类型

  • 权威服务器:直接管理某个域名的 DNS 记录(如 .com 的根服务器)。
  • 递归服务器:为用户查询其他 DNS 服务器(如 ISP 的 DNS 或 Google 的 8.8.8.8)。

域名层次结构

根域名(.) → 顶级域名(.com.org) → 二级域名(example.com) → 子域名(mail.example.com)。

 DNS服务软件

  • BIND(Berkeley Internet Name Domain):最广泛使用的开源 DNS 服务器。

域名解析:

  • 递归查询
  • 迭代查询

图片源自网络

2.2.2DNS的配置使用

安装BIND

sudo yum install bind bind-utils
# 或
sudo dnf install bind bind-utils

 配置 BIND

BIND 的主配置文件位于/etc/named.conf,其结构如下:

options {// 全局配置(监听端口、日志等)
};zone "example.com" {// 定义域名解析区域
};zone "2.0.192.in-addr.arpa" {// 定义反向解析区域
};

2.2.3 DNS配置文件(全局配置文件、区域配置文件、正反解析区域声明文件 )

2.2.3.1 全局配置文件 /etc/name.conf

修改 options 配置

options {listen-on port 53 { any; };  # 允许所有 IP 访问recursion yes;               # 启用递归查询allow-query { any; };        # 允许所有客户端查询forwarders {8.8.8.8;8.8.4.4;};  # 指定上游 DNS
};
常用配置项参数解析
listen - on port 53 {…};设置 named 守护进程监听的 IP 地址和端口。默认监听 127.0.0.1 和 53 端口,回环地址仅能监听本地客户端请求。可通过命令指定监听的 IP 地址,“any” 代表监听任何 IP 地址
listen - on - v6 port 53 {…};限定监听 IPv6 的接口
directory “ ”;用于指定 named 守护进程的工作目录,各区域正反向搜索解析文件和 DNS 根服务器地址列表文件(named.ca)应放在该项目指定的目录中
include “…”;指定区域配置文件,需根据实际路径和名称修改
recursion yes;是否允许递归查询,yes 为允许,no 为拒绝
allow - query {…};允许 DNS 查询的客户端地址。“any” 代表匹配任何地址,“none” 代表不匹配任何地址,“localhost” 代表匹配本地主机所使用的所有 IP 地址,“localnets” 代表匹配同本地主机相连的网络中的所有主机
dnssec - validation yes;在 DNS 查询过程中是否使用 DNSSEC 验证,yes 为启用,no 为禁用
forward{};用于定义 DNS 转发器。所有非本域和在缓存中无法解析的域名记录,可由指定的 DNS 转发器来完成解析工作并进行缓存
zone “.”该条目用于指定根服务器的配置信息
type hint;区域类型。“hint” 代表根域,“master” 代表主域,“slave” 代表从域
file “name.ca”指定根域的区域配置数据文件。区域数据文件默认保存在 /var/named/ 目录中,该条目代表配置文件的目录在 /var/named/named.ca
2.2.3.2 区域配置文件
zone "example.com" {type master;file "/etc/bind/zones/example.com.db";allow-transfer { none; };  # 禁止区域传输(生产环境需配置从服务器IP)
};
参数解析
zone “” IN {}指定解析区域,其中.in-addr.arpa 为反向解析区域
type master;区域类型,hint 代表根域,master 代表主域,slave 代表从域
file "named.localhost";指定(正向 / 反向)查询区域的文件
allow-update{};用于允许客户端动态更新,none 代表不允许

 

2.2.3.3 正反向区域配置文件
$TTL 1D  ; 设置该区域记录的默认生存时间为1天
@       IN SOA  dns.jan.cn. root.jan.cn. (  ; 定义起始授权记录,@代表当前区域名称(jan.cn),dns.jan.cn.是主DNS服务器域名,root.jan.cn.是管理员邮箱(用.代替@ )0       ; serial,序列号,用于标识区域文件版本,每次修改区域文件后应递增1D      ; refresh,从服务器刷新间隔,1天1H      ; retry,从服务器重试间隔,1小时1W      ; expire,从服务器过期时间,1周3H )    ; minimum,最小生存时间,3小时NS      dns.jan.cn.  ; 定义该区域的域名服务器记录,指定dns.jan.cn.为jan.cn区域的域名服务器MX      10      mail  ; 定义邮件交换记录,优先级为10,邮件服务器为mail.jan.cn(这里mail省略了后缀,实际为jan.cn区域内的主机 )
dns     A       192.168.110.30  ; 定义主机记录,将dns.jan.cn映射到IP地址192.168.110.30
web     A       192.168.110.6   ; 定义主机记录,将web.jan.cn映射到IP地址192.168.110.6
dhcp    A       192.168.110.10  ; 定义主机记录,将dhcp.jan.cn映射到IP地址192.168.110.10
mail    A       192.168.110.58  ; 定义主机记录,将mail.jan.cn映射到IP地址192.168.110.58
www     CNAME   web  ; 定义别名记录,www.jan.cn是web.jan.cn的别名
$TTL 1D  ; 设置区域记录的默认生存时间为1天
@       IN SOA  110.168.192.in-addr.arpa.  root.jan.cn. (  ; 起始授权记录,@代表区域名,指定主DNS服务器和管理员邮箱0       ; 序列号,每次区域文件更新后应递增1D      ; 从服务器刷新间隔,1天1H      ; 从服务器重试间隔,1小时1W      ; 从服务器过期时间,1周3H )    ; 最小生存时间,3小时NS      dns.jan.cn.  ; 域名服务器记录,指定该反向解析区域的域名服务器
30      PTR     dns.jan.cn.  ; 指针记录,将IP地址192.168.110.30映射到域名dns.jan.cn.
6       PTR     web.jan.cn.  ; 指针记录,将IP地址192.168.110.6映射到域名web.jan.cn.
10      PTR     dhcp.jan.cn. ; 指针记录,将IP地址192.168.110.10映射到域名dhcp.jan.cn.
58      PTR     mail.jan.cn. ; 指针记录,将IP地址192.168.110.58映射到域名mail.jan.cn.

2.2.4 URL​​格式解析

完整URL​​:

https://www.example.com:8080/docs/report.pdf?download=true&version=2#page=3

​协议(Scheme)​​:https

  • 作用:指定使用​​加密的HTTP协议​​,确保数据传输安全
  • 扩展:若改为ftp则表示文件传输协议,适用于下载场景

​主机名(Host)​​:www.example.com

  • 作用:标识资源所在的服务器域名,浏览器通过DNS解析为IP地址(如192.0.2.1
  • 扩展:可包含登录凭证(如admin:pass@host.com),但实际因安全风险较少使用

​端口(Port)​​::8080

  • 作用:指定服务器监听的非默认端口(HTTP默认80,HTTPS默认443),常用于测试或特殊服务
  • 省略情况:若省略则自动使用协议默认端口。

​路径(Path)​​:/docs/report.pdf

  • 作用:指向服务器上​​具体资源的物理路径​​,层级由/分隔。本例表示服务器根目录下docs文件夹中的PDF文件
  • 扩展:若路径以/结尾(如/docs/),通常表示目录而非文件

​查询参数(Query)​​:?download=true&version=2

  • 作用:向服务器传递动态参数,用于过滤或定制资源。本例中:
  • download=true:触发文件下载而非在线预览;
  • version=2:请求第二版文档
  • 格式规则:参数键值对用=连接,多参数以&分隔。

​片段(Fragment)​​:#page=3

  • 作用:定位资源内部特定位置,如PDF第3页或网页锚点。​​仅客户端生效​​,不发送至服务器

相关文章:

  • Python机器学习中的字典列表特征提取
  • Windows环境,Python实现对本机处于监听状态的端口,打印出端口,进程ID,程序名称
  • 675SJBH国防生阅览室图书管理系统
  • rust程序静态编译的两种方法总结
  • Rust 开发环境搭建与插件
  • CLR是什么
  • mqtt选型,使用
  • WHAT - react-query(TanStack Query) vs swr 请求
  • 浙大与哈佛联合开源图像编辑模型IC-Edit,实现高效、精准、快速的指令编辑~
  • .NET中使用HTTPS全解析
  • android-ndk开发(9): undefined reference to `__aarch64_ldadd4_acq_rel` 报错分析
  • 网络靶场基础知识
  • rest_framework学习之认证 权限
  • 重定向及基础实验
  • Python变量作用域
  • [学习]RTKLib详解:ephemeris.c与rinex.c
  • 如何修复WordPress数据库
  • Vscode (Windows端)免密登录linux集群服务器
  • Linux中的防火墙
  • 【Linux学习笔记】基础IO之理解文件
  • 新买宝马竟是“维修车”,男子发视频维权被4S店索赔100万
  • 首届上海老年学习课程展将在今年10月举办
  • 对话哭泣照被恶意盗用成“高潮针”配图女生:难过又屈辱
  • 2025江西跨境电子商务发展交流会召开,探索行业发展新趋势
  • 4月外汇储备增加410亿美元,黄金储备连续6个月增加
  • 吴清:加强监管的同时传递监管温度,尽力帮助受影响企业应对美加征关税的冲击