Linux操作系统教程-RHEL10-Rocky10-微课视频版 课件 第6章 组建Linux局域网_第1页
Linux操作系统教程-RHEL10-Rocky10-微课视频版 课件 第6章 组建Linux局域网_第2页
Linux操作系统教程-RHEL10-Rocky10-微课视频版 课件 第6章 组建Linux局域网_第3页
Linux操作系统教程-RHEL10-Rocky10-微课视频版 课件 第6章 组建Linux局域网_第4页
Linux操作系统教程-RHEL10-Rocky10-微课视频版 课件 第6章 组建Linux局域网_第5页
已阅读5页,还剩86页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Linux操作系统授课教师XXX学院第6章组建Linux局域网第1章Linux简介与安装第2章Linux用户接口与软件包管理器第3章Shell脚本编程第4章系统管理第5章磁盘与文件管理第6章组建Linux局域网第7章提供Internet服务Linux操作系统第6章组建Linux局域网本章学习目标:熟练掌握网络接口的设置熟练掌握DHCP服务器和客户机的设置熟练掌握NFS服务器的设置熟练掌握Samba服务器的设置熟练掌握防火墙的设置了解代理服务器Squid的设置理解配置基于策略的路由和MPTCP的作用掌握安全文件传输相关命令的使用了解流量控制的作用掌握监控网络连接、网络抓包与分析相关命令的使用掌握网络故障排查的流程6.1实例—使用NetworkManager管理网络接口NetworkManager是RHEL10和Rocky10默认的网络管理工具,以其动态、事件驱动的特性简化了网络配置。它支持有线、无线、VPN、桥接、VLAN等多种连接类型,能够自动处理网络变化,例如在WiFi信号强度变化时切换到最佳网络,或在在线/离线模式间无缝转换。NetworkManager管理物理和虚拟网卡,支持动态IP(DHCP)和静态IP配置,其配置文件存储在/etc/NetworkManager/system-connections/目录中,以.nmconnection格式保存。RHEL10优化了NetworkManager对WiFi6(802.11ax)、IPv6以及容器网络的支持,提升了性能和兼容性。NetworkManager提供两种配置方式:图形用户界面(GUI)和命令行界面(CLI)。GUI方式通过gnome-control-center和nm-connection-editor提供直观操作;CLI方式通过nmcli工具提供强大功能,适合脚本化和批量管理。6.1.1GUI方式:gnome-control-center、nm-connection-editorGUI方式基于GNOME桌面环境,操作直观,适合快速配置网络参数。通过gnome-control-center,用户可以管理有线和无线网络设置;nm-connection-editor则提供更细粒度的连接管理功能,例如配置IP地址、网关、DNS服务器和MTU等。两种工具均通过NetworkManager后端操作,确保配置一致性。示例如下。gnome-control-centernetwork //打开“设置”窗口,管理有线网络连接gnome-control-centerwifi //打开“设置”窗口,管理WiFi网络连接nm-connection-editor //打开“网络连接”窗口,编辑连接参数(如IP、DNS)执行如下命令查看配置文件。ls/etc/NetworkManager/system-connections/ //查看所有连接的配置文件cat/etc/NetworkManager/system-connections/Wired\connection\1.nmconnection //查看“有线连接1”的详细配置(如UUID、IP地址、网关)NetworkManager为每个以太网适配器自动生成配置文件,存储为.nmconnection格式,内容以键值对形式组织,易于管理和调试。6.1.2CLI方式:nmclinmcli是NetworkManager的命令行工具,功能强大,适合高级用户和自动化脚本。它管理两种核心对象:connection(连接配置文件)和device(物理或虚拟网卡)。一个device可关联多个connection,但同一时刻只有一个connection处于活跃状态。RHEL10中,nmcli优化了对WiFi6信道选择的支持,并内置DHCP客户端(替代传统dhclient),提升了动态IP分配效率。nmcli支持丰富的子命令,device用于管理网卡状态,connection用于管理配置文件。配置文件位于/etc/NetworkManager/system-connections/,以.nmconnection格式存储。通过nmcli,可以快速切换网络配置或批量管理多台设备的网络设置。nmcli命令语法如下。nmcli[选项][对象][命令][参数]常用对象:device(管理物理或虚拟网卡)、connection(管理连接配置文件)、radio(管理无线功能)、networking(控制NetworkManager全局状态)。常用命令:status(显示状态)、show(显示详细信息)、up(激活连接)、down(停止连接)、add(添加新连接)、modify(修改连接参数)、delete(删除连接)。常用选项:-p(以表格格式输出,带标题和分段)、-fFIELD(指定输出字段,如-fNAME,UUID,IP4.ADDRESS)、-t(无表头/分隔符的纯数据输出,便于解析,适合脚本)、--ask(交互式提示输入敏感信息,如密码)。6.1.2CLI方式:nmcli示例如下。nmclidevicestatus //查看所有设备的状态(如connected、disconnected、unmanaged)nmclideviceshowwlp82s0

//显示指定WiFi设备详情,包括IP地址、信号强度、MAC地址等nmclidevicewifilist //列出可用的WiFi网络,显示SSID、信号强度、加密类型等nmcli-t-fNAME,UUIDconnectionshow

//以简洁的机器可读格式显示所有连接的名称和UUIDnmclidevicewificonnectMyWiFipasswordMyPass //连接到指定WiFi网络,需提供密码nmclidevicewificonnectMyWiFi--ask //弹出输入提示,提示输入密码nmcliconnectionshow //列出所有连接配置,绿色字体表示活跃连接nmcliconnectionup"Wiredconnection1" //激活指定的有线连接nmcliconnectiondown"Wiredconnection1" //停止指定的有线连接nmcliconnectionaddtypeethernetcon-nameenp0s3ifnameenp0s3ipv4.methodauto //创建使用DHCP的以太网连接nmcliconnectionaddtypeethernetcon-nameenp0s3ifnameenp0s3ipv4.addresses00/24ipv4.gatewayipv4.methodmanual //创建静态IP的以太网连接nmcliconnectionmodifyenp0s3ipv4.dns"" //修改连接的DNS服务器nmcliconnectiondeleteenp0s3 //删除指定的连接配置nmcli-pdeviceshowwlp82s0 //以表格格式显示WiFi设备信息nmcli-pconnectionshow //以可读格式显示所有网络连接的详细信息,输出包含连接名称、UUID等nmclinetworkingoff

//关闭NetworkManager,禁用NetworkManager对所有设备的控制(慎用)nmclinetworkingon //启用NetworkManager管理nmcliradiowifioff //禁用WiFi功能nmcliradiowifion //启用WiFi功能6.1.3NetworkManager的非托管设备默认情况下,NetworkManager管理所有网络设备。然而,有时需要将某些设备设置为非托管状态(unmanaged)。非托管设备不受NetworkManager控制,适合高性能服务器或特定网络场景。非托管状态可临时设置或永久配置。示例如下。nmclidevicesetenp0s3managedno //临时将enp0s3设置为非托管状态nmclidevicestatus //查看设备状态,确认enp0s3显示为unmanagednano/etc/NetworkManager/conf.d/99-unmanaged-devices.conf //编辑非托管设备配置文件配置文件99-unmanaged-devices.conf的示例内容如下。[keyfile]unmanaged-devices=interface-name:enp0s3;mac:00:11:22:33:44:55执行如下命令重载配置并且验证设备状态。systemctlreloadNetworkManager

//重载NetworkManager配置,无需重启服务nmclidevicestatus //验证设备是否为非托管状态非托管设备可以通过接口名、MAC地址或设备类型指定。临时配置在重启后失效,永久配置需写入配置文件。可通过NetworkManager--print-config命令检查实际加载的配置。6.1.4自动配置/etc/resolv.conf/etc/resolv.conf是存储DNS服务器信息的配置文件,用于应用程序解析域名。RHEL10默认使用NetworkManager动态管理该文件,DNS服务器顺序由网络连接的ipv4.dns-priority和ipv6.dns-priority参数决定,值越小优先级越高(负值优先级更高)。示例配置如下。cat/etc/resolv.conf //查看当前DNS配置nmcliconnectionshowenp0s3 //查看指定连接的DNS设置nmcliconnectionmodifyenp0s3ipv4.dns-priority10 //设置连接的DNS优先级nmcliconnectionmodifyenp0s3ipv6.dns-priority10 //设置连接的DNS优先级systemctlrestartNetworkManager //重启NetworkManager以应用更改修改/etc/NetworkManager/NetworkManager.conf文件,编辑全局DNS优先级配置(优先级低于连接特定配置),示例配置文件内容如下。[connection]ipv4.dns-priority=50ipv6.dns-priority=50执行如下命令重载配置并且验证DNS服务器顺序。systemctlreloadNetworkManager //重载配置,应用全局DNS配置cat/etc/resolv.conf //验证DNS服务器顺序6.1.5手动配置/etc/resolv.conf在企业环境等需要固定DNS服务器的场景下,可手动配置/etc/resolv.conf,并禁用NetworkManager的DNS管理以防止自动覆盖。创建禁用NetworkManagerDNS管理的配置文件/etc/NetworkManager/conf.d/90-dns-none.conf,内容如下。[main]dns=none执行systemctlreloadNetworkManager命令重载NetworkManager配置,停止自动更新DNS。执行nano/etc/resolv.conf命令,手动编辑DNS配置,示例文件内容如下。nameservernameserver6.1.6默认网关的设置默认网关是网络数据包的出口,负责将数据转发到外部网络。默认网关需与静态IP地址配合设置,RHEL10支持多网关配置,通过route-metric参数区分优先级(值越小优先级越高)。NetworkManager为不同网络类型分配默认metric,例如VPN为50,以太网为100。示例如下。iprouteshow //查看当前路由表及默认网关nmcliconnectionmodifyenp0s3ipv4.gateway //设置enp0s3的IPv4默认网关nmcliconnectionmodifyenp0s3ipv6.gateway2001:db8::1 //设置enp0s3的IPv6默认网关nmcliconnectionupenp0s3 //激活连接以应用网关更改nmcliconnectionmodifyenp0s3ipv4.route-metric100 //设置IPv4网关优先级ip-4route //查看IPv4路由表ip-6route //查看IPv6路由表nmcliconnectionmodifyenp0s3ipv4.never-defaultyes //禁止enp0s3使用IPv4默认网关nmcliconnectionupenp0s3 //激活连接以应用网关更改交互模式设置网络接口的命令如下。nmcliconnectioneditenp0s3 //进入交互模式编辑连接nmcli>setipv4.gateway //设置IPv4网关nmcli>savepersistent //保存配置nmcli>activateenp0s3 //激活连接nmcli>quit //退出交互模式若主机配置多个默认网关,需为每个网关设置不同metric值以避免路由冲突。例如:nmcliconnectionmodifyenp0s3ipv4.route-metric100ipv6.route-metric100nmcliconnectionmodifyenp0s5ipv4.route-metric200ipv6.route-metric2006.1.7ifconfig、dhclient、route、ping、traceroute、arping1.ifconfigifconfig用于查看和配置网络接口,可临时设置IP地址、掩码等参数,但不修改配置文件。RHEL10中ifconfig已弃用,推荐使用ipaddr命令替代。ifconfig //显示所有活跃网络接口的信息ifconfigenp0s3 //查看enp0s3接口的详细信息ifconfigenp0s300netmaskup //设置enp0s3静态IP并激活ifconfigenp0s3down //禁用enp0s3接口ifconfigenp0s3:001netmaskup //为enp0s3添加虚拟接口6.1.7ifconfig、dhclient、route、ping、traceroute、arping2.dhclientdhclient通过DHCP协议动态获取IP地址,RHEL10中已被NetworkManager内置DHCP客户端取代,不推荐使用dhclient。dhclientenp0s3 //为enp0s3动态获取IP地址dhclient-renp0s3 //释放enp0s3的DHCP租约rm/var/lib/dhcp/dhclient.leases //删除DHCP租约文件以强制重新获取3.routeroute用于管理内核路由表,适合临时添加网关或静态路由。RHEL10中route已弃用,推荐使用iproute命令替代。route-n //显示路由表(以数字格式避免DNS解析)routeadddefaultgw //添加默认网关routedeldefault //删除默认网关routeadd-net/24gw //添加静态路由6.1.7ifconfig、dhclient、route、ping、traceroute、arping4.pingping用于测试网络连通性,通过ICMP报文检测目标主机的可达性。ping-c4 //发送4次ICMP包测试网络连通性ping-i0.5 //每0.5秒ping网关一次sysctl-wnet.ipv4.icmp_echo_ignore_all=1 //临时禁止外部ping可以编辑/etc/sysctl.conf文件来永久禁用ping。在/etc/sysctl.conf文件最后添加如下一行。然后执行sysctl-p命令应用sysctl配置。net.ipv4.icmp_echo_ignore_all=15.traceroutetraceroute追踪数据包从本地到目标的路由路径,适合网络故障定位。dnfinstalltraceroute //安装traceroute工具traceroute //追踪到的路由路径traceroute-n //以IP地址格式显示路径(避免DNS解析)6.1.7ifconfig、dhclient、route、ping、traceroute、arping6.arpingarping是一个命令行工具,通过发送ARP(地址解析协议)请求检测局域网内的设备存活状态、获取MAC地址或排查IP冲突。它工作在数据链路层,直接与网卡通信,不受防火墙阻挡,适合低层网络诊断。arping仅限同一网段,无法跨路由,需root权限运行。dnfinstalliputils-y //安装iputils包,包含arpingarping-V //查看arping版本,确认安装成功arping-Ienp0s3-f //向发送ARP请求,收到首个响应后立即退出arping-Ienp0s3-c3 //发送3次ARP请求,确认设备存活arping-Ienp0s3-d //检查是否存在IP冲突arping-Ienp0s3-c10-i10 //每秒发送一次ARP请求,共10次,监控设备状态arping-Ienp0s3-U00 //发送无回报ARP请求,强制更新ARP缓存6.1.8net-tools与iproute2net-tools和iproute2是Linux系统中用于网络配置和管理的两大工具集。net-tools包含传统命令如ifconfig、netstat、route和arp,设计受BSD的TCP/IP工具启发,功能简单但维护基本停止(主要开发止于2001年,偶有补丁更新),适用于基本网络配置,但在IPv6、多播和复杂路由场景下功能有限。iproute2是现代网络工具集,包含命令如ip和ss,通过netlink接口与内核通信,支持IPv6、多播、隧道和策略路由等高级功能,性能更优,灵活性更高,是RHEL10的推荐工具集。ss比netstat更快,通过直接访问内核数据(如/proc和netlink)提供更详细的套接字信息。net-tools命令示例如下:ifconfigenp0s3 //显示eth0接口的网络配置ifconfigenp0s3up //激活enp0s3网络接口netstat-tulnp //显示监听的TCP/UDP端口和进程netstat-rn //显示路由表(数字格式)arp-a //查看ARP缓存表arp-s0000:11:22:33:44:55 //添加静态ARP条目6.1.8net-tools与iproute2iproute2命令示例如下:iplinkshow //显示所有网络接口信息iplinksetenp0s3up //激活enp0s3网络接口ipaddrshow //显示所有接口的IP地址ip-braddrshow //以简洁格式显示IP地址信息ipaddradd00/24devenp0s3 //为enp0s3添加IP地址ipaddrshowenp0s3 //查看enp0s3的IP配置iprouteshow //显示路由表iprouteshowtablelocal //查看本地静态路由iprouteshowtablemain //查看直连路由iproutedeldefault //删除默认路由ipruleshow //显示路由规则ipneighshow //查看ARP或NDP表ip-4neighshow //显示IPv4ARP表ipneighadd00lladdr00:11:22:33:44:55devenp0s3

//添加静态ARP条目ss-tunap //显示所有连接及关联进程信息ss-tulnp //显示监听的TCP/UDP端口和进程iplinksetenp0s3address00:11:22:33:44:56 //修改enp0s3的MAC地址ipmaddradd33:33:00:00:00:01devenp0s3 //为enp0s3添加多播地址6.1.9使用BCC进行网络追踪eBPF(扩展伯克利分组过滤器)是Linux内核的高效技术,允许在内核中运行沙箱程序,无需修改内核代码或加载模块。eBPF支持网络监控、性能分析、安全审计等多种应用,广泛用于容器网络(如Kubernetes)、DDoS防护和系统性能优化。eBPF的4个特性:安全性(程序运行于受限沙箱,内核验证确保无崩溃风险)、高性能(直接在内核执行,减少上下文切换开销)、灵活性(支持网络过滤、流量统计、系统调用审计等)、可移植性(字节码格式兼容不同硬件架构)。BCC(BPF编译器集合)是eBPF的开发工具集,提供预置工具(如tcpconnect、tcplife)简化网络诊断。BCC工具安装后位于/usr/share/bcc/tools/,提供开箱即用的网络诊断功能。按Ctrl+C可终止追踪进程。eBPF的低开销和高灵活性使其成为现代Linux网络管理的核心技术,尤其在容器化和云原生环境中表现出色。BCC工具语法如下。/usr/share/bcc/tools/[工具名][选项]常用选项如下:-L<端口>(过滤本地端口)、-R<端口>(过滤远程端口)、-t(显示时间戳)、-p<PID>(过滤特定进程的网络活动)。6.1.9使用BCC进行网络追踪示例命令如下:dnfinstallbcc-tools //安装BCC工具集/usr/share/bcc/tools/tcpaccept //追踪TCP接受的连接详情/usr/share/bcc/tools/tcpconnect //追踪发起的TCP连接尝试(包括失败连接)/usr/share/bcc/tools/tcpconnlat //测量TCP连接建立的延迟/usr/share/bcc/tools/tcpdrop //显示丢弃的TCP数据包及原因/usr/share/bcc/tools/tcplife-L22 //追踪本地端口22的连接(显示流量、时长等)/usr/share/bcc/tools/tcpretrans //显示TCP重传的详细信息/usr/share/bcc/tools/tcpstates //追踪TCP状态变化/usr/share/bcc/tools/tcpsubnet/24 //监控指定子网的流量统计/usr/share/bcc/tools/tcptop //显示活跃TCP连接的流量(以KiB为单位)/usr/share/bcc/tools/tcptracer //追踪已建立的TCP连接/usr/share/bcc/tools/solisten //显示TCP监听尝试(包括失败情况)/usr/share/bcc/tools/softirqs //追踪软中断的执行时间/usr/share/bcc/tools/netqtop-nenp0s3-i2 //每2秒统计enp0s3的数据包分布6.1.9使用BCC进行网络追踪bpftool命令示例如下。dnfinstallbpftool //安装bpftoolbpftoolproglist //列出已加载的eBPF程序bpftoolmapshow //显示eBPF映射的详细信息bpftoolprogloadmyprog.o/sys/fs/bpf/myprog //加载eBPF程序myprog.obpftoolcgroupattach/sys/fs/cgroup/mygrouptracingprog_id123 //将eBPF程序附加到cgroupbpftool-jproglist //以JSON格式列出eBPF程序6.1.10检查无线网络(WiFi)信息无线网络是Linux局域网的重要组成部分,涉及SSID连接、信号强度、信道选择等。常用工具包括nmcli(是管理WiFi的首选工具,可快速连接或切换网络)、iw和ip。示例如下。nmclidevicewifilist //列出可用WiFi网络(显示SSID、信号、加密类型)iplinkshow //查看WiFi接口名(如wlp82s0)ifconfigwlp82s0 //查看WiFi接口的IP地址和MAC地址iwdevwlp82s0link //查看WiFi连接的技术参数(如频率、速率)6.2.1DHCP概述动态主机配置协议(DynamicHostConfigurationProtocol,简称DHCP)是一种网络协议,用于自动为网络中的设备分配IP地址、子网掩码、默认网关、DNS服务器等参数,从而简化网络管理。DHCP基于客户端/服务器模型,客户端通过广播与服务器通信,服务器根据配置动态为客户端分配网络参数。DHCP的核心优势在于减轻网络管理员的手动配置负担,尤其在大规模网络中,通过集中管理和自动化分配提升效率。DHCP服务器以租约(lease)的方式为客户端提供服务,租约可以是固定租期(如数小时或数天),也可以是永久分配(固定IP)。在RHEL10系统中,DHCP服务由kea软件包提供(dnfinstallkea),支持IPv4和IPv6协议。IPv4和IPv6需要独立的配置文件和实例运行,分别使用/etc/kea/kea-dhcp4.conf和/etc/kea/kea-dhcp6.conf,租约信息存储在/var/lib/kea/kea-leases4.csv和/var/lib/kea/kea-leases6.csv中。Kea作为新一代DHCP服务器,具有可扩展性、支持模块钩子、RESTAPI动态重配置等优势。6.2.1DHCP概述DHCP分配IP地址的过程包括四个阶段:(1)发现阶段(Discover)。DHCP客户端启动时,通过广播发送DHCPDISCOVER包,寻找可用的DHCP服务器。只有DHCP服务器会响应此请求。(2)提供阶段(Offer)。DHCP服务器收到DHCPDISCOVER后,从地址池中选择一个未分配的IP地址,并通过DHCPOFFER包向客户端提供IP地址及其他配置信息(如子网掩码、网关等)。(3)选择阶段(Request)。如果有多台DHCP服务器发送DHCPOFFER,客户端会选择一个(通常是第一个收到的),然后广播DHCPREQUEST包,声明接受该服务器提供的地址,同时通知其他服务器释放预分配的地址。如果DHCPOFFER中的参数无效,客户端会发送DHCPDECLINE包拒绝分配。(4)确认阶段(Acknowledge)。选中的DHCP服务器收到DHCPREQUEST后,发送DHCPACK包,确认IP地址分配。客户端接收后配置网络参数,开始使用该地址。6.2.1DHCP概述DHCP还支持续租和释放机制:(1)续租。动态IP地址的租约有固定期限,通常在租期过半时,客户端会发送DHCPREQUEST包请求续租。如果服务器确认地址仍然有效,会回复DHCPACK包更新租约;若地址不可用,服务器发送DHCPNAK包,客户端需重新开始分配流程。(2)释放。当客户端不再需要IP地址时,会发送DHCPRELEASE包主动释放,服务器将该地址标记为可用,客户端的IP地址被置为。DHCP的设计目标是实现IP地址的集中化管理,减少人为干预,同时支持固定IP分配(通过硬件地址绑定),满足特殊设备的需求。6.2.2配置DHCP服务器配置DHCP服务器的核心任务是编辑配置文件/etc/kea/kea-dhcp4.conf(针对IPv4),定义子网、地址池、租约时间以及其他网络参数。运行后台进程kea-dhcp4,监听UDP67(服务器端)和UDP68(客户端)端口。租约信息存储在/var/lib/kea/kea-leases4.csv文件中,记录已分配的地址及其租约状态。搭建DHCP服务器的步骤如下。1.安装Kea软件包使用dnfinstallkea命令安装kea软件包。6.2.2配置DHCP服务器2.编辑DHCP配置文件使用文本编辑器修改/etc/kea/kea-dhcp4.conf,定义子网和分配参数。该配置文件采用JSON格式。例如,配置一个/24子网,地址池范围为00-00,并为特定设备分配固定IP。6.2.2配置DHCP服务器{"Dhcp4":{//指定DHCPv4服务器监听的网络接口。使用"*"表示监听所有接口"interfaces-config":{"interfaces":["*"]},//配置过期租约的处理参数。这些是默认值,用于定期回收过期租约"expired-leases-processing":{"reclaim-timer-wait-time":10,//回收定时器等待时间(秒)"flush-reclaimed-timer-wait-time":25,//刷新已回收租约的定时器等待时间(秒)"hold-reclaimed-time":3600,//保持已回收租约的时间(秒)"max-reclaim-leases":100,//每次回收的最大租约数量"max-reclaim-time":250,//每次回收的最大时间(毫秒)"unwarned-reclaim-cycles":5//未警告的回收周期数},//设置全局租约定时器。这些值适用于所有子网,除非子网中指定了特定值"renew-timer":10800,//续租定时器(T1),客户端开始续租的时间,通常为有效寿命的50%(秒)"rebind-timer":18900,//重绑定定时器(T2),客户端开始重绑定的时间,通常为有效寿命的87.5%"valid-lifetime":21600,//租约的有效寿命,默认租期(秒)"max-valid-lifetime":43200,//最大有效寿命(秒)//定义全局选项数据。这些选项将被发送给客户端,除非在更具体的范围内被覆盖"option-data":[{"name":"domain-name-servers",//DNS服务器选项名称"data":","//DNS服务器地址},{"name":"domain-name",//域名选项名称"data":""//域名},{"name":"domain-search",//域名搜索列表选项名称"data":""//域名搜索列表,通常与域名相同}],6.2.2配置DHCP服务器//定义IPv4子网列表"subnet4":[{"id":1,//子网唯一标识符"subnet":"/24",//子网地址和掩码"pools":[{"pool":"00-00"}],//地址池范围"option-data":[{"name":"routers",//默认网关选项名称。"data":""//默认网关地址},{"name":"subnet-mask",//子网掩码选项名称。"data":""//子网掩码}],//定义主机预留列表,用于为特定设备分配固定IP。"reservations":[{"hw-address":"00:11:22:33:44:55",//客户端硬件(MAC)地址"ip-address":"0"//分配的固定IP地址}]}],//配置日志记录器"loggers":[{"name":"kea-dhcp4",//日志记录器名称,针对DHCPv4"output-options":[{"output":"/var/log/kea/kea-dhcp4.log"//日志输出文件路径。}],"severity":"INFO",//日志严重级别。"debuglevel":0//调试级别(DEBUG时有效)。}]}}6.2.2配置DHCP服务器3.设置配置文件权限配置完成后,调整文件权限以确保安全。chownroot:kea/etc/kea/kea-dhcp4.confchmod640/etc/kea/kea-dhcp4.conf4.启动并启用DHCP服务配置完成后,启动DHCP服务并设置开机自启。systemctlstartkea-dhcp4 //启动DHCP服务systemctlenablekea-dhcp4 //设置DHCP服务开机启动systemctlrestartkea-dhcp4 //如果修改了配置文件,需重启DHCP服务systemctlstatuskea-dhcp4 //查看DHCP服务的状态6.2.2配置DHCP服务器5.配置防火墙DHCP使用UDP67和68端口,需确保防火墙允许相关流量通过。firewall-cmd--add-service=dhcp--permanent //允许DHCP服务通过防火墙firewall-cmd--reload //重新加载防火墙规则6.验证租约信息DHCP服务器运行后,会自动更新租约文件,执行如下命令查看已分配的地址。cat/var/lib/kea/kea-leases4.csv //查看当前租约信息示例租约文件内容如下(CSV格式)。address,hwaddr,client_id,valid_lifetime,expire,subnet_id,fqdn_fwd,fqdn_rev,hostname,state,user_context,pool_id00,00:0a:eb:13:fc:6f,,3600,1713072000,1,0,0,client1,0,,06.2.3设置DHCP客户机DHCP客户端通过与服务器通信自动获取网络参数。DHCP客户端可以是Linux操作系统,也可以是Windows操作系统。在RHEL10中,NetworkManager是默认的网络管理工具,推荐使用nmcli配置DHCP客户端。配置步骤如下。nmcliconnectionmodifyenp0s3ipv4.methodauto //使用nmcli将网络接口配置为DHCP模式nmcliconnectionupenp0s3 //激活网络连接,应用配置并触发地址获取ipaddrshowenp0s3 //查看enp0s3接口的IP地址,检查接口是否成功获取IP6.3.1配置NFS服务器NFS服务器的配置主要涉及修改/etc/exports文件,定义共享目录及其访问权限。配置NFS服务器的示例步骤如下。1.创建共享目录创建一个用于共享的目录并设置权限。mkdir-p/srv/nfs/share //创建共享目录chmod777/srv/nfs/share //设置目录权限为7776.3.1配置NFS服务器2.编辑NFS配置文件修改NFS配置文件/etc/exports,定义共享目录及其权限,在文件最后添加如下一行。/srv/nfs/share/24(rw,sync,no_subtree_check,all_squash)配置说明如下:/srv/nfs/share:共享目录的绝对路径。/24:允许访问的客户端网段。rw:读写权限。sync:数据同步写入硬盘,确保一致性。no_subtree_check:禁用子目录检查,提升性能。all_squash:将所有客户端用户映射为匿名用户。6.3.1配置NFS服务器3.启用并启动NFS服务启动NFS服务并设置开机自启。systemctlstatusnfs-server //查看NFS服务的状态systemctlenable--nownfs-server //启用并立即启动NFS服务4.重新加载共享配置如果修改了/etc/exports,无需重启服务即可应用更改。exportfs-r //重新加载/etc/exports配置5.验证共享目录查看当前导出的共享目录。exportfs-v //显示所有共享目录及其选项6.配置防火墙确保防火墙允许NFS流量通过。firewall-cmd--add-service=nfs--permanent //允许NFS服务通过防火墙firewall-cmd--reload //重新加载防火墙规则6.3.2访问NFS服务器的共享目录NFS客户端通过mount命令挂载服务器的共享目录,支持手动挂载或通过/etc/fstab实现开机自动挂载。Linux客户端访问NFS共享的步骤如下。showmount-e0

//客户端查看服务器导出的共享列表mkdir/mnt/nfs //在客户端创建挂载点目录mount-tnfs0:/srv/nfs/share/mnt/nfs //手动挂载NFS共享目录df-hT //查看挂载点信息,检查挂载是否成功ls/mnt/nfs //进入挂载点列出共享目录内容编辑/etc/fstab文件,添加自动挂载配置,在文件最后添加如下一行。0:/srv/nfs/share/mnt/nfsnfsdefaults00执行如下命令立即应用fstab配置或等待重启。mount/mnt/nfs //挂载fstab中定义的共享如果挂载失败,可在服务器检查/var/log/messages或使用journalctl-unfs排查问题。6.4.1Samba概述Samba是一个开源软件,实现了服务器消息块(ServerMessageBlock,简称SMB)协议,用于在Linux、Windows、macOS和其他操作系统之间实现文件和打印机共享。SMB协议最初由IBM开发,后由Microsoft扩展并标准化,现今已成为整个协议族的通用名称,广泛应用于企业网络中,支持文件共享、打印服务以及域集成。Samba的核心功能包括:跨平台文件共享(支持Linux、Windows、macOS等系统的文件访问)、打印服务(通过SMB协议共享打印机)、用户认证管理(支持匿名访问和基于账户的权限控制)、域控制器支持(可作为Windows域控制器或加入ActiveDirectory)。从RHEL8.2开始,Samba默认仅支持SMB2及更高版本,以提升安全性和性能。与NFS相比,Samba提供更细粒度的权限管理和Windows兼容性,适合混合操作系统环境,而NFS更适用于Unix-like系统间的文件共享。Samba由2个守护进程驱动:(1)smbd。处理文件和打印服务,监听TCP139和445端口,负责会话建立、用户验证和资源访问。(2)nmbd。提供NetBIOS名称解析,监听UDP137和138端口,方便客户端浏览网络中的Samba服务器。如果不需要NetBIOS支持,可不启用nmbd服务。6.4.1Samba概述常用命令如下。dnflistinstalled|grepsamba //检查是否安装Samba软件包dnfinstallsamba-y //安装Samba软件包systemctlstartsmb //启动smb服务systemctlstartnmb //启动nmb服务(如果需要NetBIOS支持)systemctlstatussmb //查看smb服务状态systemctlstatusnmb //查看nmb服务状态ss-tlnp|grepsmb //查看smb监听的TCP端口ss-ulnp|grepnmb //查看nmb监听的UDP端口6.4.2配置Samba服务器1.修改配置文件编辑/etc/samba/smb.conf,设置全局参数和共享目录,具体的配置语句如下。[global]workgroup=WORKGROUP #设置工作组名称,与Windows客户端的工作组匹配netbiosname=MYSERVER #设置唯一NetBIOS名称,用于网络浏览识别服务器security=user #使用用户认证模式,支持用户名/密码验证maptoguest=baduser #将无效用户映射为guest,支持匿名访问passdbbackend=tdbsam #使用TDB数据库存储用户账户信息[share]comment=tmpshare #共享目录描述,用于客户端浏览时显示path=/home/share #共享目录的实际路径writable=yes #允许客户端写入文件(等同于readonly=no)browseable=yes #允许在网络浏览中显示该共享guestok=yes #支持匿名(guest)访问guestonly=yes #仅允许guest用户访问,排除其他账户createmask=0666 #新建文件的权限掩码(0666表示所有用户可读写)directorymask=0777 #新建目录的权限掩码(0777表示所有用户可读写执行)6.4.2配置Samba服务器2.检查配置文件语法,重启Samba服务testparm //检查smb.conf语法,验证配置文件语法的正确性systemctlrestartsmb //重启smb服务systemctlrestartnmb //重启nmb服务(如果需要NetBIOS名称解析支持)3.创建共享目录创建共享目录并设置权限。创建共享目录并设置权限。对于匿名共享,需确保目录对所有用户开放;如果启用SELinux,还需设置上下文类型为samba_share_t。mkdir/home/share //创建共享目录chmod-R777/home/share //设置目录权限为777,确保匿名用户可访问chcon-R-tsamba_share_t/home/share //设置SELinux上下文,允许Samba访问(如果SELinux启用)4.配置防火墙允许Samba流量通过防火墙。firewall-cmd--add-service=samba--permanent //允许Samba服务firewall-cmd--reload //重新加载防火墙规则6.4.3Samba服务器的配置文件Samba的配置文件/etc/samba/smb.conf是其核心,分为全局设置([global])和共享定义(如[homes]、[printers]或自定义共享)。全局设置影响所有共享资源,定义工作组、认证模式、日志路径等;共享定义则针对具体资源,指定路径、权限和访问策略。配置文件使用“参数名=参数值”格式,支持变量(如%u表示用户名,%m表示客户端NetBIOS名)。配置文件示例如下(基于RHEL10默认配置)。6.4.3Samba服务器的配置文件[global] workgroup=SAMBA #设置工作组名称,默认值为SAMBA,与客户端工作组匹配 security=user #设置安全模式为user,使用用户名/密码认证 passdbbackend=tdbsam #指定用户数据库后端为tdbsam(TDB格式的SAM数据库) printing=cups #设置打印系统为CUPS(CommonUNIXPrintingSystem) printcapname=cups #指定打印机配置文件为CUPS的printcap loadprinters=yes #自动加载系统打印机到Samba共享 cupsoptions=raw #CUPS选项,设置为raw以直接传递打印数据 include=/etc/samba/usershares.conf#包含用户共享配置文件,支持samba-usershares包的动态共享[homes] comment=HomeDirectories #共享描述,为用户主目录共享 validusers=%S,%D%w%S #有效用户,仅允许当前用户(%S)和域用户(%D%w%S)访问 browseable=No #不可在网络浏览中显示该共享 readonly=No #允许读写(等同于writable=yes) inheritacls=Yes #继承目录的ACL(访问控制列表)[printers] comment=AllPrinters #共享描述,为所有打印机共享 path=/var/tmp #打印队列的临时路径 printable=Yes #标记为可打印共享 createmask=0600 #新建文件的权限掩码(0600表示所有者可读写) browseable=No #不可在网络浏览中显示该共享[print$] comment=PrinterDrivers #共享描述,用于打印机驱动程序共享 path=/var/lib/samba/drivers #驱动程序存储路径 writelist=@printadminroot #可写用户列表,包括printadmin组和root forcegroup=@printadmin #强制组为printadmin,确保文件组所有权 createmask=0664 #新建文件的权限掩码(0664表示所有者可读写,组可读) directorymask=0775 #新建目录的权限掩码(0775表示所有者可读写执行,组可读执行)6.4.3Samba服务器的配置文件常用命令:cat/etc/samba/smb.conf //查看配置文件内容testparm //检查配置文件语法systemctlreloadsmb //重新加载配置,无需重启服务RHEL10的Samba支持动态配置更新,通过systemctlreloadsmb可应用更改,而无需重启服务。配置文件支持继承机制,共享定义中的参数优先级高于全局设置。6.4.4匿名访问Samba共享的资源1.Windows客户端访问在文件资源管理器中,直接输入网络路径“\\09\share”(替换为实际IP和共享名),或在运行框(按Win+R)输入“\\09”浏览服务器所有共享。Windows会自动尝试guest账户访问。如果提示凭据错误,确保smb.conf中已配置maptoguest=baduser,并重启smb服务。注意,需确保smb.conf中的netbiosname已设置并唯一,避免局域网内名称冲突;若使用主机名访问,确保nmb服务启用以支持NetBIOS名称解析。6.4.4匿名访问Samba共享的资源2.Linux客户端访问在GNOME文件管理器中,选择“其他位置”,输入“smb://09/share”访问共享(替换为实际IP和共享名)。或使用命令行工具smbclient进行访问。dnfinstallsamba-clientsmbclient-L09-N //匿名列出服务器的共享列表smbclient//09/share-N //匿名访问share共享smbclient命令语法如下:smbclient[选项][//服务器/共享路径]常用选项:-L(列出服务器的共享列表)、-N(匿名访问,无密码)、-U<用户>(指定用户名)。访问后,可使用ls(列出文件)、get<文件>(下载文件)、put<文件>(上传文件)等命令操作共享资源。6.4.5帐号访问Samba共享的资源基于账户的访问通过用户认证控制共享资源,适合需要权限管理的场景。RHEL10中的Samba使用tdbsam后端存储用户账户,支持本地认证;用户必须在Linux系统和Samba数据库中均存在。以下是一个配置账户访问的示例,仅允许特定用户组访问共享。6.4.5帐号访问Samba共享的资源1.修改配置文件编辑/etc/samba/smb.conf,禁用匿名访问并定义受限共享。[global]security=user #使用用户认证模式,支持用户名/密码验证#maptoguest=baduser #注释该行禁用匿名访问[shareacc]comment=accountshare #共享描述,用于客户端浏览时显示path=/home/shareacc #共享的实际路径writable=yes #允许客户端写入文件(等同于readonly=no)guestok=no #禁用匿名(guest)访问validusers=@smbgroupacc #仅允许smbgroupacc组用户访问(@表示组)forcegroup=smbgroupacc #强制新建文件/目录所属组为smbgroupacccreatemask=0660 #新建文件的权限掩码(0660表示所有者和组可读写)directorymask=0770 #新建目录的权限掩码(0770表示所有者和组可读写执行)inheritpermissions=yes #继承父目录的权限设置6.4.5帐号访问Samba共享的资源2.添加用户和组创建Linux用户和Samba用户,并加入指定组。Samba认证使用独立的密码数据库,因此需使用smbpasswd设置Samba密码。useraddsamuser //创建Linux用户(无主目录和shell,除非指定)smbpasswd-asamuser

//添加Samba用户并设置密码(必须在Linux用户存在后执行)groupaddsmbgroupacc //创建用户组usermod-aGsmbgroupaccsamuser //将用户加入组3.设置共享目录权限创建共享目录并配置权限。创建共享目录并配置权限。如果SELinux启用,还需设置上下文类型为samba_share_t以允许Samba访问。mkdir/home/shareacc //创建共享目录chgrpsmbgroupacc/home/shareacc //设置目录所属组为smbgroupaccchmod770/home/shareacc //设置目录权限为770,确保组可访问chcon-R-tsamba_share_t/home/shareacc //设置SELinux上下文6.4.5帐号访问Samba共享的资源4.重启服务systemctlrestartsmb //重启smb服务,应用配置更改5.客户端访问Windows客户端:在文件资源管理器输入\\09\shareacc(替换为实际IP和共享名),系统会提示输入用户名samuser和密码进行认证。Linux客户端:使用smbclient命令行工具访问共享资源。smbclient-L09-Usamuser

//使用账户列出服务器的共享列表(会提示输入密码)smbclient//09/shareacc-Usamuser //使用账户访问shareacc共享(会提示输入密码)mkdir/mnt/smbacc //创建本地挂载点mount-tcifs-ousername=samuser,password=111111//09/shareacc/mnt/smbacc //挂载共享(替换密码为实际值)6.4.5帐号访问Samba共享的资源6.配置自动挂载(Linux)编辑/etc/fstab添加挂载配置,在文件最后添加如下一行(使用凭据文件避免明文密码)。//09/shareacc/mnt/smbacccifscredentials=/etc/smb.cred00创建凭据文件/etc/smb.cred,内容如下()。username=samuserpassword=111111执行chmod600/etc/smb.cred命令设置凭据文件权限,确保文件权限为600,仅root可读执行如下命令进行挂载。mount/mnt/smbacc //挂载共享(或重启系统自动挂载)6.4.6SELinux:getsebool、setsebool、chcon、restorecon安全增强型Linux(Security-EnhancedLinux,简称SELinux)是Linux内核的强制访问控制(MAC)机制,通过安全策略限制进程和用户的访问权限,显著提升系统安全性。相比传统Linux的自主访问控制(DAC),SELinux通过用户、角色和类型的安全上下文定义细粒度权限,即使是root用户也受限。SELinux在RHEL10中默认启用,广泛应用于保护网络服务(如DHCP、NFS和Samba)。SELinux有如下三种状态:Disabled:关闭SELinux,需重启生效。Enforcing:强制执行策略,拒绝未授权访问,是默认模式。Permissive:记录违规操作但不阻止,适合调试。Samba共享可能因SELinux限制无法访问,需调整布尔值或安全上下文。以下是常用SELinux命令及其应用。常用命令及示例如下。6.4.6SELinux:getsebool、setsebool、chcon、restorecon1.查看SELinux状态sestatus//检查SELinux是否启用及当前模式,显示详细信息如当前模式、策略类型等2.检查SELinux是否启用selinuxenabled //检查SELinux是否启用,返回退出码0表示启用,1表示关闭echo$? //显示返回码,0表示启用,1表示关闭3.查看当前模式getenforce //查看SELinux当前模式,显示Enforcing、Permissive或Disabled4.临时切换SELinux模式(重启后恢复)setenforce0 //设置为Permissive模式,仅记录违规而不阻止setenforce1 //设置为Enforcing模式,强制执行策略6.4.6SELinux:getsebool、setsebool、chcon、restorecon5.查看SELinux布尔值SELinux布尔值控制特定功能是否启用。getsebool-a //列出所有SELinux布尔值及其当前状态getseboolsamba_export_all_rw //查看特定布尔值,如Samba是否允许导出所有文件为读写6.设置SELinux布尔值启用或禁用特定功能,支持永久设置。setseboolsamba_export_all_rwon //临时启用Samba共享写权限,重启后恢复setsebool-Psamba_export_all_rwon //永久启用Samba共享写权限,修改策略文件7.修改安全上下文为共享目录设置适当的SELinux上下文,允许Samba访问。chcon-R-tsamba_share_t/home/share //递归设置共享目录为sam

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论