ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

第七章 网络操作系统与应用服务器

第七章 网络操作系统与应用服务器 第七章 网络操作系统与应用服务器考点分析重要程度⭐⭐⭐本章主要考选择题分值在5分左右高频考点国产化、Linux基础命令、Linux防火墙配置、Web服务器配置新教材变化大篇幅删减Windows Server少量加入UOS7-1 网络操作系统基础Windows Server 2016Windows Server 2016引入了新的安全层保护用户数据和控制访问权限增强了弹性计算能力降低了存储成本提供了新的方式进行打包、配置、部署、运行、测试和保护应用程序提升了虚拟化、安全性、软件定义的数据计算、网络技术、存储方面的支持能力。单台服务器最大内存支持提升至24TB分为基础版 Essentials、标准版 Standard、数据中心版 Datacenter三个发行版本是一款仅支持64位的操作系统。32位操作系统的话最大4G内存国产操作系统信创全程信息技术应用创新麒麟KylinOS包括服务器操作系统、桌面操作系统、嵌入式操作系统、麒麟云等产品能够同时支持飞腾、龙芯、申威、兆芯、海光、鲲鹏等国产 CPU。统信 UOS由统信软件技术有限公司开发有家庭版、专业版和服务器版三个发行版本。统信服务器操作系统 V20 支持鲲鹏、飞腾、海光、兆芯等国产 CPU 芯片及国际主流 CPU 芯片多计算架构提供ISO、容器、云镜像交付物进行环境部署。红旗 Linux支持x86、ARM、MIPS、SW等 CPU 指令集架构。鸿蒙HarmonyOS华为开发应用于移动端、PC、智慧屏、车机。欧拉openEuler支持服务器、云计算、边缘计算、嵌入式等应用场景。来源于华为的 EulerOS 系统2021 年华为将欧拉开源操作系统openEuler正式捐赠给开放原子开源基金会。国外开源 LinuxUbuntu、Debian、Fedora、CentOS、openSUSE、Kali。闭源 UnixAIXIBM、HP-UX、SolarisOracle、macOS。开源的云平台OpenSTack开源的虚拟化KVM7-2 UOS Linux的网络配置 UOS 统信UOS网络配置文件UOS网络配置配置完成后需要重启网络服务。UOS中默认使用NetworkManager服务管理网络使用nmcli connection reload重启网络服务。也可以手动安装network.service服务使用systemctl restart network命令重启网络服务建议使用NetworkManager服务管理网络。UOS网络配置文件2/etc/hostname系统主机名文件。3/etc/hosts包含IP地址和主机名之间的映射还包含主机别名。127.0.0.1 pc1 localhost# IP地址127.0.0.1主机名pc1别名localhost192.168.0.2 pc24/etc/host.conf指定客户机域名解析顺序下面为该文件内容order hosts,bindmulti on启用多重解析利于负载均衡。5/etc/resolv.conf指定客户机域名搜索顺序和DNS服务器地址。Search test.edu.cn nameserver114.114.114.114# 首选DNS服务器nameserver8.8.8.8# 备用DNS服务器UOS网络配置命令nmcli(1)nmcli命令。hmcli是NetworkManager服务的命令行管理工具。支持简写:connection可简写成con或c,modify可以简写成mod或m,可以使用tab键补全命令执行。connection网络连接常用配置命令有:nmcli connection show显示网络连接信息 nmcliconnection up/down ens32激活或停用ens32接口的网络连接 nmcli connection modify ens32 ipv4.addresses10.0.10.10/32 设置IP地址 nmcli connection modify ens32 ipv4.gateway10.0.10.254 设置网关 nmcli connection modify ens32 ipv4.dns8.8.8.8 设置DNS地址 nmcli connection upens32激活新的配置使上述命令配置生效ifconfig网络接口设置Ifconfig interface-name ip-address up|down[rootlocalhost~]# ifconfig ens32 10.1.1.1 netmask 255.255.255.0 up[rootlocalhost~]# font colorgreenifconfig ens32 /font//显示接口配置inet10.1.1.1 netmask255.255.255.0 ether 00:20:57:95:23:ce txqueuelen1000(Ethernet)route配置路由的命令配置静态路由 route add -net 目的网段 gw 下一跳地址查看路由表 route -n添加永久路由 /etc/rc.d/rc.local开启路由转发功能sysctl -avim /etc/sysctl.confnet.ipv4.ip_forward 1sysctl -p[rootuos ~]# routeKernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface default _gateway0.0.0.0 UG10000ens3210.0.10.00.0.0.0255.255.255.0 U10000ens32route命令格式:Route [add|del] [-net|-host] target [netmask Nm] [gw GW] [dev]target → 你自己替换成具体目标地址通过route命令配置路由如下所示:route add -net 10.0.20.0 netmask 255.255.255.0 dev ens32增加一条路由目标为10.0.20.0/24网络的请求由ens32网络接口转发使用route命令配置的路由在主机重启或者网卡重启后就失效了。route add -host 192.168.168.119 gw 192.168.168.1netsh interface ipv6 add route ::/0 “local” 网址IP(1)显示网卡信息。[rootuos ~]#ip addr show(2)配置|P地址[rootuos ~]#ip addr add 10.0.10.30/255.255.255.0 dev ens32(3)查看路由[rootuos ~]# ip route show(4)添加静态路由[rootuos ~]#ip route add 10.0.20.0/24 via 10.0.10.20 dev ens32上述命令增加一条路由目标为10.0.20.0/24网络的请求由ens32网络接口转发使用iproute命令配置的路由在主机重启或者网卡重启后就失效。netstat网络查询命令-a显示所有连接的信息包括正在侦听的-i显示已配置网络设备的统计信息-c持续更新网络状态每秒一次直到被人中止-r显示内核路由表-n以数字格式而不是已解析的名称显示远程和本地地址netstat -tunlp参数含义记忆-t显示TCP连接t TCP-u显示UDP连接u UDP-n用数字形式显示 IP 和端口不进行名称解析n numeric-l只显示**正在监听LISTEN**的端口l listen-p显示进程/程序信息即哪个进程占用了端口p process7-3 UOS Linux文件和目录管理Linux文件管理Linux系统所有设备都对应一个文件使用索引节点记录文件信息每个索引节点有编号(inode)。多级目录树形层次结构最上层是根目录用“/”表示。Linux: /etc/host只有一个根目录Windows: E:\test\test.txt 每个磁盘分区都是单独的树Linux文件挂载将一个文件系统的顶层目录挂到另一个文件系统的子目录上使它们成为一个整体。(1) 挂载点必须是一个目录而不能是一个文件。(2) 一个分区挂载在一个已知的目录节点上这个目录可以不为空挂载后这个目录以前的内容不可用。mount /dev/sda1 /mnt#将/dev/sda1设备挂载到 /mnt 目录Linux文件类型七种文件类型普通文件、目录文件、链接文件、块设备文件、字符设备文件、管道和套接字文件。四类权限读r、写w、执行x、无访问权限-。三类用户文件所有者、与文件所有者同组用户和其他用户。-普通文件文本、程序等d目录文件文件夹l链接文件类似快捷方式b块设备文件以块为单位进行读写操作用于存储设备如硬盘、光盘c字符设备文件按字节流字符进行读写操作用于终端设备如键盘、鼠标p管道文件用于进程间通信s套接字文件用于网络编程Linux文件权限UNIX/Linux系统中用9bit表示访问控制权限。例如某个文件信息-rwxr-xr-- 1 test test 4月9日17:50 sample.txt用户test对文件sample.txt的访问权限有“读、写、执行”而test组的其他用户只能“读、执行”除此以外的其他用户只有“读”权限。Linux文件权限可以用数字表示r4 w2 x1比如:-rwxr-xr–可以写为:754命令 chmod -R xxx /home/abc-R 递归Recursive作用修改目录本身及其内部所有子目录、文件的权限。对比不加-R只改目录本身。⚠️警告慎用严禁对系统根目录/执行易导致系统崩溃。13个Linux基础命令(1) cat用来在屏幕上滚动显示文件的内容cat命令也可以同时查看多个文件的内容还可以用来合并文件。cat [-选项] fileName [fileName2] ... [fileNameN](2) more如果文本文件比较长一屏显示不完这时可以使用more命令将文件内容分屏显示。(3) lessless的功能与more很相似也是按页显示文件不同的是less命令在显示文件时允许用户既可以向前或向后翻页文件。按B键向前翻页显示按P键向后翻页显示输入百分比显示指定位置按Q键退出显示。(4) 文件复制命令cpcp [-选项] sourcefileName | directory destfileName | directory-a整个目录复制。它保留链接、文件属性并递归地复制子目录-f删除已经存在的目标文件且不提示-i和-f相反覆盖文件之前提示用户确认-l不做复制只是链接文件cp -p保留权限、所有者、时间戳适合单个文件。cp -a保留所有属性 递归 保留链接适合目录归档(5) 文件移动命令mv-i交互方式操作-f禁止交互操作(6) 文件删除命令rmrm [-选项] fileName | directory ...-f忽略不存在的文件从不给出提示-r指示rm将参数中列出的全部目录和子目录均递归地删除最大的笑话删库跑路rm -rf /*(7) (8) 创建/删除目录命令mkdir/rmdir(9) 改变目录命令cd(10) 显示当前目录命令pwd[rootredhat-64 -]# pwd 显示的路径名为/home/sun(11) 列目录命令ls(12) 文件访问权限命令chmodchmod grw test.txt(13) 文件链接命令ln功能是在文件之间创建链接。ls补充ls [-选项] fileName | directory重要选项参数说明如下-a显示指定目录下所有子目录与文件包括隐藏文件-c按文件的修改时间排序-d如果参数是目录只显示其名称而不显示其下的各文件-i在输出的第一列显示文件的i节点号-l以长格式来显示文件的详细信息这是ls命令最常用的参数[rootuos home]# ls -l-rw-r--r--1root root210月2622:21 myfile.txt[rootuos home]# chmod gw myfile.txt // 为同组用户增加对文件myfile.txt的写权限[rootuos home]# ls -l // 修改权限后-rw-rw-r--1root root210月2622:21 myfile.txt/etc存放配置文件比如网络配置、DNS配置、用户名和密码配置等/lib存放共享库和内核模块/dev存放设备文件对应系统中的硬件设备如硬盘、光驱、键盘、鼠标或虚拟设备如环回接口。设备文件可以分为两大类字符设备文件这些文件按字节流字符进行读写操作如终端、串口设备。字符设备文件的名字通常以 c 标识。块设备文件这些文件以块为单位进行读写操作用于存储设备如硬盘、光盘。块设备文件的名字通常以 b 标识。/bin存放可执行文件比如ls、cp、mv、rm等。7-4 UOS Linux用户和组管理Linux系统中最重要的是超级用户即根用户rootUID0/etc/passwd每个用户在该文件中都有一行对应记录所有用户可读用户名称xuidgid:说明信息家目录shell/etc/group 用户组信息/etc/shadow 只有超级用户root能读该文件包含了系统中的所有用户及其口令等相关信息分成9个域①用户登录名②用户加密后的口令 若为空表示该用户不需口令即可登录若为*号表示该账号被禁止③从1970年1月1日至口令最近一次被修改的天数④口令在多少天内不能被用户修改⑤口令在多少天后必须被修改⑥口令过期多少天后用户账号被禁止⑦口令在到期多少天内给用户发出警告⑧口令自1970年1月1日起被禁止的天数⑨保留。useradd [-选项] username-d 指定用于取代默认/home/username的用户主目录useradd -d /home/test user1-g 用户所属用户组的组名或组ID例adduser -g test user1-s 指定shell 默认/bin/bash /sbin/nologin不允许与系统交互-u uid指定用户的UID它必须是唯一的且大于499-M不创建家目录 系统用户-G 指定用户附加组-r 创建系统用户passwd [-选项] username操作用户的密码-i锁定用户即禁用账号-u解锁用户-d使账号无口令-f强迫用户下次登录时修改口令查看用户idid 用户名称修改用户密码 passwd 用户名称修改用户信息usermod-s 修改shell-G 修改附加组 -aG加入多个组删除用户 userdel -r 用户名称 -r同时删除用户相关文件命令userdel -r test效果:(1)删除/etc/passwd文件中此用户的记录(2)删除/etc/group文件中该用户的信息(3)删除用户的主目录(4)删除用户所创建的或属于此用户的文件用户组操作创建用户组 groupadd 组名删除用户组 groupdel 组名将用户加入组 gpasswd -a 用户名 组名将用户踢出组 gpasswd -d 用户名 组名\7-5 UOS Linux防火墙配置UOS Linux防火墙类型Linux 2.4内核开始提供防火墙软件框架Netfilter。配置工具firewalld、iptables、UFW(Uncomplicated Firewall)Linux 3.13以上内核开始增加了新的数据包过滤框架nftables。配置工具nftnftables在逐步取代Netfilter/iptables软件框架firewalldfirewalldDynamic Firewall Manager of Linux Systems, Linux动态防火墙管理器服务是UOS默认的防火墙配置管理工具配置命令为firewall-cmd。1显示当前配置的规则。命令如下iptables -nL2配置本机开放tcp 443端口其中–permanent表示永久生效。命令如下firewall-cmd --permanent --add-port443/tcp3配置允许源地址10.0.30.5访问本机的tcp 3389端口。命令如下firewall-cmd --permanent --add-rich-rule rule familyipv4 source address10.0.30.5 port protocoltcp port3389 accept4重载配置使之生效。命令如下firewall-cmd --reloadiptables的四表五链默认的4个规则表raw表确定是否对该数据包进行状态跟踪 OUTPUT, PREROUTINGmangle表为数据包设置标记 INPUT, OUTPUT, FORWARDPREROUTING, POSTROUTINGnat表修改数据包中的源、目的IP地址或端口 OUTPUT, PREROUTING,POSTROUTINGfilter表确定是否放行该数据包(过滤)INPUT、FORWARD, OUTPUT默认的5种规则链INPUT处理入站数据包OUTPUT处理出站数据包FORWARDPREROUTINGPOSTROUTINGiptables语法格式iptables -nL 显示当前配置的所有规则iptables 【-t表名】 管理选项 【链名】 条件匹配 -j 执行动作iptables -t filter -A INPUT -s 192.168.184.20 -p tcp --dport 22 -j DROP通用参数-p协议 例iptables -A INPUT -p tcp-s源地址 例iptables -A INPUT -s 192.168.1.1-d目的地址 例iptables -A INPUT -d 192.168.12.1–sport源端口 例iptables -A INPUT -p tcp --sport 22–dport目的端口 例iptables -A INPUT -p tcp --dport 22-P 设置默认策略设定默认门是关着的还是开着的?默认策略一般只有两种iptables -P INPUT (DROP|ACCEPT),默认是关的/默认是开的比如:iptables -P INPUT DROP.-j 处理动作DROP丢弃直接丢弃REJECT丢弃回显ICMP不可达消息LOG将数据包信息记录到syslogACCEPT允许数据包通过配置保存生效:service iptables savenftablesnftables是一个新的数据包分类框架新的Linux防火墙管理程序在Linux内核版本高于3.13时可用。nftables的命令行工具为nft命令格式与iptables命令不同。在使用nft之前需要使用yum install nftables命令安装 nftables 服务。rootadmin-PC:~# yum install nftablesUOS服务器版用该命令rootadmin-PC:~# apt-get install nftablesUOS桌面版用该命令正在读取软件包列表… 完成正在分析软件包的依赖关系树正在读取状态信息… 完成nftables配置查看表命令示例nft list tables #查看所有表nft list table ip filter #查看ip簇filter表的所有规则nft list chain filter INPUT #查看filter表INPUT链的规则默认为ip簇nft list ruleset #查看所有规则rootadmin-PC:~# nft list rulesettableipfilter{chain INPUT{typefilter hook input priority0;policy accept;}chain FORWARD{typefilter hook forward priority0;policy accept;}chain OUTPUT{typefilter hook output priority0;policy accept;}}2表操作。表的操作符包括Add添加表。delete删除表。list显示一个表中的所有规则链和规则。flush清除一个表中的所有规则链和规则。命令示例nft listtableip filter #查看ip簇filter表的所有规则nft addtableip filter #创建ip簇的filter表nft addtableipv6 filter #创建ipv6簇的filter表(3) chain链操作。链的操作符包括add将一条规则链添加到表create在表中创建规则链delete删除一条规则链flush清除一条规则链里的所有规则list显示一条规则链里的所有规则rename修改一条规则链的名称基本规则链类型包括filter数据包过滤route用于数据包路由nat用于网络地址转换命令示例nft add chain ip filter test { type filter hook input priority 0\; }命令执行后效果tableipfilter{chaintest{typefilter hook input priority filter;policy accept;}}这条命令的作用是创建一个名为test的链它 属于 filter 表用于过滤流量 挂载在 input 钩子上处理所有进入本机的数据包 具有默认的优先级0(4) 规则配置。规则配置的操作符包括add添加一条规则insert在规则链中加入一个规则可以添加在规则链开头或指定的地方delete删除一条规则例nft add rule filter test tcp dport 22 accept#filter表的INPUT链增加规则开放tcp 22端口命令执行后效果tableipfilter{chaintest{typefilter hook input priority filter;policy accept;tcp dport22accept}}7-6Web应用服务的配置Web服务软件在Linux操作系统中常用的Web服务软件有Apache和Nginx。通过简单的配置即可提供HTTP或HTTPS服务(默认端口80和443)Windows中Web服务软件是IIS可以提供Web、FTP和SMTP服务。[没有POP3】虚拟主机:基于IP地址、基于端口、基于名字。Apache安装与配置使用yum安装Apache服务:[rootuos~]#yum -y install httpd安装完成后验证:[rootuos~]#rpm -qa httpdhttpd-2.4.37-47.moduleuelc20724c3a76df7.2.x86_64启动Apache服务: [rootuos ~]#systemctl start httpd停Apache服务:[rootuos ~]#systemctl stop httpd查看Apache服务状态:[rootuos ~]#systemctl status httpdApache配置/etc/bttpd/conf/httpd.conf为Apache的配置文件默认目录:/var/www/htmlServerRoot/etc/httpd#配置Apache安装主目录Listen80#配置服务监听端口User apache#配置运行Apache 的用户Group apache#配置运行Apache的用户组ServerName localhost:80#配置网站绑定的域名和端口也可以配置IP或者localhostDocumentRoot/var/www/html#配置网站根目录IfModuledirmoduleDirectoryIndex index.html#配置请求根目录时默认提供的文件/IfModuleErrorLoglogs/error_log#配置错误日志文件LogLevel warn#配置日志级别IfModule log_config module#定义日志格式NginxNginx是一款高性能的HTTP和反向代理Web服务软件。可以在大部分的UNIX、Linux、Windows系统运行一般与其他Web中间件配合使用实现反向代理、负载均衡和缓存功能。特点:内存占用少、启动极快、高并发能力强、支持热部署。Nginx安装与启动[rootuos ~]#yum install nginx启动Nginx服务:[rootuos # systemctl start nginx停Nginx服务:[rootuos ~]# systemctl stop nginx查看Nginx服务状态:[rootuos ~]#systemctl status nginx反向代理客户端(用户)–Nginx–后端服务器Nginx反向代理功能:(1)负载均衡:将请求分发到多个后端服务器实现负载均衡提升系统性能和可靠性。(2)缓存加速:缓存后端服务器的响应减少后端负载并加快响应速度。(3)安全性增强:隐藏后端服务器的IP和端口增加安全性。可以配置SSL/TLS提供HTTPS支持保护数据传输安全。例题针对sql注入怎么防范部署专业防注入安全设备例如WAF,使用过滤性语句DHCP工作原理DHCP租期更新当客户机的租约期到50%会向DHCP服务器发送DHCP REQUEST消息包。如果客户机接收到该服务器回应的DHCP ACK消息包客户机就根据包中所提供的新的租期以及其它已经更新的TCP/IP参数更新自己的配置IP租用更新完成。如果没有收到该服务器的回复则客户机继续使用现有的IP地址因为租期还剩50%。如果在租期过去50%的时候没有更新则客户机将在租期过去**87.5%**的时候再次向为其提供IP的DHCP服务器联系。如果还不成功到租约的100%时候客户机必须放弃这个IP地址发送DHCP DISCOVER重新申请地址。如果此时无DHCP可用客户机会使用169.254.0.0/16中随机的一个地址并且每隔5分钟再进行尝试.DHCP报文格式DHCP除了标准字段还包含可选部分Option(用户自定义)。·Option 82:称为中继代理DHCP Relay信息选项。·Option43:为AP分配IP地址的同时通告AC的地址。Option 43应用举例在WLAN三层组网中当AP上线时需要获取Ac的IP地址并与AC之间建立CAPWAP隧道。AP的IP地址通过DHCP服务器分配当AC的IP地址与AP不在同一个广播域AP无法通过广播的方式获取AC的IP地址则CAPWAP隧道无法建立成功。AP通过DHCP报文中的option 43选项字段获取Ac的IP地址当AP获取AC的IP地址后可以进一步完成CAPWAP隧道的建立从而实现AP上线。华为DHCP option43配置DHCP常规配置为AP分配IP地址。[DHCP-HW]dhcpenable[DHCP-HW]ippool huawei[DHCP-HW-ip-pool-huawei]network192.168.100.0255.255.255.0[DHCP-HW-ip-pool-huawei]gateway-list192.168.100.1配置Option43使AP能够获得AC的IP地址假设AC的IP地址是10.10.10.1。[DHCP-HW-ip-pool-huawei]option43sub-option3ascii10.10.10.1 dhcp server option43sub-option1hex c0a86401 dhcp server option43sub-option2ip-address192.168.100.1 dhcp server option43sub-option3ascii192.168.100.1DHCP分配固定IP地址[R1]interface GigabitEthernet0/0/1[R1-GigabitEthernet0/0/1]ipaddress192.168.2.124[R1-GigabitEthernet0/0/1]DHCPselectinterface //选择接口地址池[R1-GigabitEthernet0/0/1]DHCP server excluded-ip-address192.168.2.254[R1-GigabitEthernet0/0/1]DHCP server static-bind ip-address192.168.2.2 mac-address 00e0-fc00-00aa#为PC3分配固定的IP地址实验要求:采用基于全局地址池的方式为PC1分配IP地址。采用基于接口地址池的方式为PC2和PC3分配IP地址且PC3获取固定的IP地址。DHCP中继(DHCP Relay)随着网络规模的不断扩大网络设备不断增多企业内不同的用户可能分布在不同的网段一台DHCP服务器在正常情况下无法满足多个网段的地址分配需求。如果还需要通过DHCP服务器分配IP地址则需要跨网段发送DHCP报文。DHCP Relay即DHCP中继它是为解决DHCP服务器和DHCP客户端不在同一个广播域而提出的提供了对DHCP广播报文的中继转发功能能够把DHCP客户端的广播报文“透明地”传送到其它广播域的DHCP服务器上同样也能够把DHCP服务器端的应答报文“透明地”传送到其它广播域的DHCP客户端。DHCP Relay工作原理DHCP Relay配置举例DHCP Snooping 防止私接DHCP服务器DHCP Snooping配置[Huawei]dhcp enable //开启DHCP功能所有接口默认为untrusted[Huawei] dhcp snooping enable //开启DHCP snooping功能[Huawei] int GigabitEthernet0/0/1[Huawei-GigabitEthernet0/0/1] dhcp snooping enable //接口下开启DHCP Snooping功能[Huawei-GigabitEthernet0/0/1] dhcp snooping trusted //把接口g0/0/1设置为信任接口DNSDNS域名系统DNS作用:把域名转换成IP地址。DNS/DHCP服务器必须为静态IP地址而Web/FTP均可为动态IP。Linux系统中提供DNS服务的组件为bind,主配置文件为named.conf。诊断域名系统基础结构的信息和查看DNS服务器的IP地址命令是:nslookup。DNS记录类型IPv6 AAAADNS查询过程DNS查询方式递归查询:域名服务器帮助用户进行名字解析并返回最后的结果。迭代查询:域名服务器进行迭代访问反复多次直到最后找到结果。
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进