安装Docker/Docker Desktop后，其registry server是默认指向https://hub.docker.com的。因众所周知的远呀，在国内该hub源访问速度异常慢，为了解决这个问题，一些国内的公司和组织提供了 Docker 镜像的国内镜像源，Docker Hub 镜像源提供商公共镜像私有镜像网易云hub-mirror.c.163.com 百度云mirror.baidubce.com 腾讯云ccr.ccs.tencentyun.com Docker Proxydockerproxy.com 华为云你的ID.mirror.swr.myhuaweicloud.comhttps://{你的ID}.mirror.swr.myhuaweicloud.com阿里云你的ID.mirror.aliyuncs.comhttp://{你的ID}.mirror.aliyuncs.comPS.阿里云需要自行创建专属镜像仓库https://cr.console.aliyun.com/修改配置修改daemon.json，增加或者修改以下配置：{ "registry-mirrors": [ "https://dockerproxy.com", "https://hub-mirror.c.163.com", "https://mirror.baidubce.com", "https://ccr.ccs.tencentyun.com" "https://docker.m.daocloud.io", "https://mirror.baidubce.com", "https://your_preferred_mirror", "https://dockerhub.icu", "https://docker.registry.cyou", "https://docker-cf.registry.cyou", "https://dockercf.jsdelivr.fyi", "https://docker.jsdelivr.fyi", "https://dockertest.jsdelivr.fyi", "https://mirror.aliyuncs.com", "https://dockerproxy.com", "https://mirror.baidubce.com", "https://docker.m.daocloud.io", "https://docker.nju.edu.cn", "https://docker.mirrors.sjtug.sjtu.edu.cn", "https://docker.mirrors.ustc.edu.cn", "https://mirror.iscas.ac.cn", "https://docker.rainbond.cc" ] }重新加载daemonsystemctl daemon-reload systemctl restart docker.serviceDocker从1.3.X之后，与docker registry交互默认使用的是https，然而此处搭建的私有仓库只提供http服务，所以当与私有仓库交互式就会有错误。http服务则需要填写到insecure-registries下面。配置文件所在位置：Linux: /etc/docker/daemon.jsonWindows: %USERPROFILE%\.docker\daemon.json 或者 %programdata%\Docker\config\daemon.jsonMacOS: ~/.docker/daemon.json如果使用的Docker Desktop，只需要在配置界面找到Docker Engine选项，修改之后然后点击Apply & Restart按钮，即可生效。在此修改等同于直接修改daemon.json文件。检查配置是否生效输入以下命令：docker info如果从结果中看到了如下类似的内容，说明配置成功：Registry Mirrors: https://hub-mirror.c.163.com/测试源镜像是否有效使用docker pull命令拉取软件，只要能够正常拉取就是有效的，否则就是无效的。docker pull dockerproxy.com/library/nginx:latest docker pull hub-mirror.c.163.com/library/nginx:latest docker pull mirror.baidubce.com/library/nginx:latest docker pull ccr.ccs.tencentyun.com/library/nginx:latest docker pull 1nj0zren.mirror.aliyuncs.com/library/nginx:latest docker pull 05f073ad3c0010ea0f4bc00b7105ec20.mirror.swr.myhuaweicloud.com/library/nginx:latest源镜像测速Linux在Linux下面有time命令，可以使用该命令对源进行测速：time docker pull nginx:latest测速结果大致如下：real 1m14.078s user 0m0.176s sys 0m0.120sWindows在Windows的PowerShell下面可以使用以下命令测速：Measure-Command {docker pull nginx:latest | Out-Default}测速结果大致如下：Days : 0 Hours : 0 Minutes : 0 Seconds : 4 Milliseconds : 217 Ticks : 42174202 TotalDays : 4.88127337962963E-05 TotalHours : 0.00117150561111111 TotalMinutes : 0.0702903366666667 TotalSeconds : 4.2174202 TotalMilliseconds : 4217.4202
安装 nfs-utils 包：如果系统中没有安装 nfs-utils 包，则需要使用以下命令进行安装：sudo yum install nfs-utils 创建本地挂载目录：在本地创建一个目录作为挂载点，例如 /mnt/nfs：sudo mkdir -p /mnt/nfs 编辑 /etc/fstab 文件：打开 /etc/fstab 文件，并添加一行类似于以下的条目：server:/remote/export /mnt/nfs nfs defaults 0 0 其中，server 是 NFS 服务器的主机名或 IP 地址，/remote/export 是远程共享的路径，/mnt/nfs 是本地挂载点，nfs 是文件系统类型，defaults 是默认挂载选项，0 和 0 分别表示 dump 和 fsck 的值。挂载 NFS 文件系统：使用以下命令挂载 NFS 文件系统：sudo mount -a 如果没有出现错误提示，则表示挂载成功。重启系统并测试：重启系统后，NFS 文件系统应该会自动挂载到指定的本地目录。可以使用以下命令检查是否已经挂载：df -h 如果输出中包含了 /mnt/nfs 目录，则表示挂载成功。
Lysncd是lua语言封装了 inotify 和 rsync 工具，采用了 linux 内核（2.6.13 及以后）里的 inotify 触发机制，通过inotify或者fsevents监控本地目录的变化事件，然后通过rsync同步。Lsyncd最强大之处在于简单高效传输海量数据并且Lsyncd支持多种工作模式。安装rsync[root@localhost ~]# yum install -y rsync [root@localhost ~]# rsync --version rsync version 3.1.2 protocol version 31 Copyright (C) 1996-2015 by Andrew Tridgell, Wayne Davison, and others. Web site: http://rsync.samba.org/ Capabilities: 64-bit files, 64-bit inums, 64-bit timestamps, 64-bit long ints, socketpairs, hardlinks, symlinks, IPv6, batchfiles, inplace, append, ACLs, xattrs, iconv, symtimes, prealloc rsync comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it under certain conditions. See the GNU General Public Licence for details.安装lsyncd所需依赖[root@localhost ~]# yum install -y gcc gcc-c++ lua lua-devel cmake libxml2 libxml2-devel Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: download.nus.edu.sg * elrepo: mirrors.tuna.tsinghua.edu.cn * epel: mirrors.tuna.tsinghua.edu.cn * extras: download.nus.edu.sg * updates: download.nus.edu.sg Package gcc-4.8.5-44.el7.x86_64 already installed and latest version Package lua-5.1.4-15.el7.x86_64 already installed and latest version Package libxml2-2.9.1-6.el7_9.6.x86_64 already installed and latest version Resolving Dependencies --> Running transaction check ---> Package cmake.x86_64 0:2.8.12.2-2.el7 will be installed --> Processing Dependency: libarchive.so.13()(64bit) for package: cmake-2.8.12.2-2.el7.x86_64 ---> Package gcc-c++.x86_64 0:4.8.5-44.el7 will be installed --> Processing Dependency: libstdc++-devel = 4.8.5-44.el7 for package: gcc-c++-4.8.5-44.el7.x86_64 ---> Package libxml2-devel.x86_64 0:2.9.1-6.el7_9.6 will be installed --> Processing Dependency: zlib-devel for package: libxml2-devel-2.9.1-6.el7_9.6.x86_64 --> Processing Dependency: xz-devel for package: libxml2-devel-2.9.1-6.el7_9.6.x86_64 ---> Package lua-devel.x86_64 0:5.1.4-15.el7 will be installed --> Running transaction check ---> Package libarchive.x86_64 0:3.1.2-14.el7_7 will be installed ---> Package libstdc++-devel.x86_64 0:4.8.5-44.el7 will be installed ---> Package xz-devel.x86_64 0:5.2.2-2.el7_9 will be installed ---> Package zlib-devel.x86_64 0:1.2.7-21.el7_9 will be installed --> Finished Dependency Resolution Dependencies Resolved ========================================================================================================================================================================================================================================= Package Arch Version Repository Size ========================================================================================================================================================================================================================================= Installing: cmake x86_64 2.8.12.2-2.el7 base 7.1 M gcc-c++ x86_64 4.8.5-44.el7 base 7.2 M libxml2-devel x86_64 2.9.1-6.el7_9.6 updates 1.1 M lua-devel x86_64 5.1.4-15.el7 base 21 k Installing for dependencies: libarchive x86_64 3.1.2-14.el7_7 base 319 k libstdc++-devel x86_64 4.8.5-44.el7 base 1.5 M xz-devel x86_64 5.2.2-2.el7_9 updates 46 k zlib-devel x86_64 1.2.7-21.el7_9 updates 50 k Transaction Summary ========================================================================================================================================================================================================================================= Install 4 Packages (+4 Dependent packages) Total download size: 17 M Installed size: 61 M Downloading packages: (1/8): libarchive-3.1.2-14.el7_7.x86_64.rpm | 319 kB 00:00:01 (2/8): lua-devel-5.1.4-15.el7.x86_64.rpm | 21 kB 00:00:00 (3/8): xz-devel-5.2.2-2.el7_9.x86_64.rpm | 46 kB 00:00:00 (4/8): zlib-devel-1.2.7-21.el7_9.x86_64.rpm | 50 kB 00:00:00 (5/8): libxml2-devel-2.9.1-6.el7_9.6.x86_64.rpm | 1.1 MB 00:00:03 (6/8): libstdc++-devel-4.8.5-44.el7.x86_64.rpm | 1.5 MB 00:00:03 (7/8): gcc-c++-4.8.5-44.el7.x86_64.rpm | 7.2 MB 00:00:15 (8/8): cmake-2.8.12.2-2.el7.x86_64.rpm | 7.1 MB 00:00:21 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Total 807 kB/s | 17 MB 00:00:21 Running transaction check Running transaction test Transaction test succeeded Running transaction Installing : zlib-devel-1.2.7-21.el7_9.x86_64 1/8 Installing : xz-devel-5.2.2-2.el7_9.x86_64 2/8 Installing : libstdc++-devel-4.8.5-44.el7.x86_64 3/8 Installing : libarchive-3.1.2-14.el7_7.x86_64 4/8 Installing : cmake-2.8.12.2-2.el7.x86_64 5/8 Installing : gcc-c++-4.8.5-44.el7.x86_64 6/8 Installing : libxml2-devel-2.9.1-6.el7_9.6.x86_64 7/8 Installing : lua-devel-5.1.4-15.el7.x86_64 8/8 Verifying : gcc-c++-4.8.5-44.el7.x86_64 1/8 Verifying : lua-devel-5.1.4-15.el7.x86_64 2/8 Verifying : libarchive-3.1.2-14.el7_7.x86_64 3/8 Verifying : libxml2-devel-2.9.1-6.el7_9.6.x86_64 4/8 Verifying : cmake-2.8.12.2-2.el7.x86_64 5/8 Verifying : libstdc++-devel-4.8.5-44.el7.x86_64 6/8 Verifying : xz-devel-5.2.2-2.el7_9.x86_64 7/8 Verifying : zlib-devel-1.2.7-21.el7_9.x86_64 8/8 Installed: cmake.x86_64 0:2.8.12.2-2.el7 gcc-c++.x86_64 0:4.8.5-44.el7 libxml2-devel.x86_64 0:2.9.1-6.el7_9.6 lua-devel.x86_64 0:5.1.4-15.el7 Dependency Installed: libarchive.x86_64 0:3.1.2-14.el7_7 libstdc++-devel.x86_64 0:4.8.5-44.el7 xz-devel.x86_64 0:5.2.2-2.el7_9 zlib-devel.x86_64 0:1.2.7-21.el7_9 Complete!源码编译安装lsyncd[root@localhost ~]# wget https://github.com/lsyncd/lsyncd/archive/refs/tags/v2.3.1.tar.gz [root@localhost ~]# tar xzvf v2.3.1.tar.gz [root@localhost lsyncd-2.3.1]# cd lsyncd-2.3.1 [root@localhost lsyncd-2.3.1]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/lsyncd [root@localhost lsyncd-2.3.1]# make && make install [root@localhost lsyncd-2.3.1]# ln -s /usr/local/lsyncd/bin/lsyncd /usr/bin/lsyncd出现-- Configuring incomplete, errors occurred!安装lua-devel即可，如有提示cmake版本问题请安装3.5以上版本cmake配置lsyncd.conf文件[root@localhost ~]# vi /etc/lsyncd.conf ssh远程同步模式settings { logfile = "/var/log/lsyncd.log", statusFile = "/var/log/lsyncd.status", pidfile = "/var/run/lsyncd.pid", statusInterval = 1, nodaemon = false, maxProcesses = 1, maxDelays = 1, } sync { default.rsyncssh, source = "/opt/", delete = true, host = "192.168.1.2", targetdir = "/bak", rsync = { binary = "/usr/bin/rsync", archive = true, compress = false, owner = true, perms = true, whole_file = false }, ssh = { port = 22 } }本地同步settings { logfile = "/var/log/lsyncd.log", statusFile = "/var/log/lsyncd.status", pidfile = "/var/run/lsyncd.pid", statusInterval = 1, nodaemon = false, maxProcesses = 1, maxDelays = 1, } sync { default.rsync, source = "/opt", target = "/bak", }远程同步rsync-daemon模式settings { logfile = "/var/log/lsyncd.log", statusFile = "/var/log/lsyncd.status", pidfile = "/var/run/lsyncd.pid", statusInterval = 1, nodaemon = false, maxProcesses = 1, maxDelays = 1, } sync { default.rsync, source = "/opt", target = "renwole@192.168.1.1::bak", delete="true", exclude = { ".bak*" }, delay = 30, init = false, rsync = { binary = "/usr/bin/rsync", archive = true, compress = true, verbose = true, perms = true, password_file = "/etc/rsync.password", _extra = {"--bwlimit=200"} } }lsyncd的config参数详解如下：delay: 设置同步源文件更新到目标机器的延迟时间，单位为秒。maxDelays:同步过程中最大可容忍的延迟次数，超过该次数后将自动退出同步程序。init: 指定lsyncd启动时需要执行的脚本命令。logfile:指定日志输出文件路径和名称，默认为stdout。statusFile:指定状态信息输出文件路径和名称，默认为/tmp/lsyncd.status。statusInterval:指定状态信息输出的时间间隔，单位为秒，默认为10秒。nodaemon: 指定以非守护进程模式运行lsyncd。insist:指定如果出现错误，则重试尝试重新同步文件。rsync: 指定rsync程序的可执行文件路径。ssh: 指定ssh程序的可执行文件路径。exclude: 指定需要排除同步的文件或文件夹。可以使用通配符或正则表达式。include:指定需要包含同步的文件或文件夹。可以使用通配符或正则表达式。protectArgs: 指定需要保护的rsync参数，避免被误删除或覆盖。copyin: 指定在同步之前是否需要将目标机器上的文件复制到源机器上。copyout:指定在同步之后是否需要将源机器上的文件复制到目标机器上。copyback: 指定在同步失败后是否需要将目标机器上的文件复制回源机器。delete: 指定是否需要删除目标机器上已经不存在于源机器上的文件。rsyncArgs: 指定传递给rsync程序的参数。sshArgs: 指定传递给ssh程序的参数。timeout: 指定同步过程中命令执行的超时时间，单位为秒。maxProcesses:指定最大同时运行的进程数。watch: 指定需要监视的文件或文件夹，当发现其有变化时会触发同步。可以使用通配符或正则表达式。sync: 指定需要同步的文件或文件夹，可以使用通配符或正则表达式。添加lsyncd开机自启动[root@localhost ~]# vi /etc/sysconfig/lsyncd LSYNCD_OPTIONS="/etc/lsyncd.conf" [root@localhost ~]# vi /usr/lib/systemd/system/lsyncd.service [Unit] Description=Live Syncing (Mirror) Daemon After=network.target [Service] Type=simple EnvironmentFile=-/etc/sysconfig/lsyncd ExecStart=/usr/local/lsyncd/bin/lsyncd -nodaemon $LSYNCD_OPTIONS [Install] WantedBy=multi-user.target [root@localhost ~]# systemctl start lsyncd [root@localhost ~]# systemctl enable lsyncd
背景很多情况下在业务环境访问公网的yum可能会受到带宽限制或者无法连公网的yum，因此需要配置本地yum源。配置过程选择一台Centos7系统的Linux虚机，点击配置信息-虚拟光驱-加载ISO，挂载yum仓库所需的iso(可以直接使用centos7官方的iso镜像)进入该Linux虚机，使用命令lsblk查看iso是否挂载成功，有sr0设备表示挂载成功使用以下命令创建一个media目录，再将iso镜像挂载至media目录，最后使用df -h命令查看是否挂载成功mkdir media #创建media目录mount /dev/sr0 /media #挂载iso镜像至media目录df -h #查看镜像是否挂载成功备份云主机中原来的yum仓库配置cd /etc/yum.repos.d/mkdir /etc/yum.repos.d/bakmv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak/使用以下命令新建光盘yum仓库配置touch /etc/yum.repos.d/yum.repo #创建yum.repo文件vim /etc/yum.repos.d/yum.repo #编辑yum.repo文件填入以下内容，baseurl路径为为镜像文件本地挂载的路径，本例为/media[Centos] name=centos baseurl=file:///media gpgcheck=0 enabled=1 yum仓库配置如下图所示清空历史缓存并创建新缓存，无报错说明配置正确yum clean all #清空所有yum缓存yum repolist ##列出仓库中的软件包测试效果以Centos7系统为例，配置本地yum源并进行yum安装ftp服务，分析最后执行结果为“complete!”，说明yum正常安装yum -y install ftp #安装ftp服务命令PS.在进行yum仓库配置文件变更之前，一定要做好原有文件配置备份工作，有问题可以随时回退配置文件，推进使用everything镜像。
SSL/TLS 服务器瞬时 Diffie-Hellman 公共密钥过弱 漏洞修复
问题描述写在前面：在用漏扫设备做漏扫时扫到的一个中危，在Windows下主要跑在5986端口的WinRM服务。Windows远程管理（WinRM）服务是Windows Server 2003 R2以上版本中一种新式的方便远程管理的服务。通过WinRM服务，便于在日常工作中远程管理服务器，或通过脚本同时管理多台服务器，来提高工作效率。winrm默认使用5985/5986端口通信，5985是http协议，5986是https协议。安全套接层（Secure Sockets Layer，SSL），一种安全协议，是网景公司（Netscape）在推出Web浏览器首版的同时提出的，目的是为网络通信提供安全及数据完整性。SSL在传输层对网络连接进行加密。传输层安全TLS（Transport LayerSecurity），IETF对SSL协议标准化（RFC 2246）后的产物，与SSL 3.0差异很小。当服务器SSL/TLS的瞬时Diffie-Hellman公共密钥小于等于1024位时，存在可以恢复纯文本信息的风险。https://www.openssl.org/blog/blog/2015/05/20/logjam-freak-upcoming-changes/https://weakdh.org/sysadmin.htmlhttps://en.wikipedia.org/wiki/DiffieE28093Hellman_key_exchange#Security解决办法http服务器相关配置首先生成大于1024bit(例如2048bit)的dhkeyopenssl dhparam -out dhparams.pem 2048 然后在对应服务器中配置Apache2.4.8及以后版本使用如下配置命令配置（http.conf中或者对应的虚拟主机配置文件中添加）SSLOpenSSLConfCmd DHParameters "{path to dhparams.pem}"Apache2.4.7版本、Apache2.2.31版本及以后版本，redhat debian等大多发行版中最新Apache2.2.x通过把dhparams.pem的内容直接附加到证书文件后，Apache2.4.7之前2.4.x版本、Apache2.2.31之前版本dhparam默认为1024bit 无法修改nginx使用如下命令配置（在对应的虚拟主机配置文件nginx.conf中server字段内添加）ssl_dhparam {path to dhparams.pem} 如果服务器配置无法修改，例如Apache2.2.31之前版本，可以禁用DHE系列算法，采用保密性更好的ECDHE系列算法，如果ECDHE不可用可以采用普通的 RSA。Windows下直接关闭Windows RM服务打开services.msc，找到Windows Remote Management (WS-Management)服务，停止服务，并将启动类型改为禁用，这时候在看5986端口已经没有在监听了。
IRF典型配置举例（LACP MAD检测方式）1.组网需求由于公司人员激增，接入层交换机提供的端口数目已经不能满足PC的接入需求。现需要在保护现有投资的基础上扩展端口接入数量，并要求网络易管理、易维护。2.组网图图1-14 IRF典型配置组网图（LACP MAD检测方式）3.配置思路Device A提供的接入端口数目已经不能满足网络需求，需要另外增加三台设备Device B、Device C和Device D。鉴于IRF技术具有管理简便、网络扩展能力强、可靠性高等优点，所以本例使用IRF技术构建接入层（即在四台设备上配置IRF功能）。为了防止IRF链路故障导致IRF分裂，网络中存在两个配置冲突的IRF，需要启用MAD检测功能。因为网络中有一台中间设备Device E，支持LACP协议，因此可采用LACP MAD检测。为提高IRF链路的性能和可靠性，在成员设备间使用聚合IRF链路方式进行连接。4.配置步骤(1)配置Device A# 根据图1-14选定IRF物理端口并关闭这些端口。为便于配置，下文中将使用接口批量配置功能关闭和开启物理端口，关于接口批量配置的介绍，请参见“二层技术-以太网交换配置指导”。 <Sysname> system-view [Sysname] interface range FortyGigE 1/0/1 to FortyGigE 1/0/4 [Sysname-if-range] shutdown [Sysname-if-range] quit # 配置IRF端口1/1，并将它与物理端口FortyGigE1/0/1和FortyGigE1/0/2绑定。 [Sysname] irf-port 1/1 [Sysname-irf-port1/1] port group interface FortyGigE 1/0/1 [Sysname-irf-port1/1] port group interface FortyGigE 1/0/2 [Sysname-irf-port1/1] quit # 配置IRF端口1/2，并将它与物理端口FortyGigE1/0/3和FortyGigE1/0/4绑定。 [Sysname] irf-port 1/2 [Sysname-irf-port1/2] port group interface FortyGigE 1/0/3 [Sysname-irf-port1/2] port group interface FortyGigE 1/0/4 [Sysname-irf-port1/2] quit # 开启FortyGigE1/0/1～FortyGigE1/0/4端口，并保存配置。 [Sysname] interface range FortyGigE 1/0/1 to FortyGigE 1/0/4 [Sysname-if-range] undo shutdown [Sysname-if-range] quit [Sysname] save # 激活IRF端口下的配置。 [Sysname] irf-port-configuration active(2)配置Device B# 将Device B的成员编号配置为2，并重启设备使新编号生效。 <Sysname> system-view [Sysname] irf member 1 renumber 2 Renumbering the member ID may result in configuration change or loss. Continue? [Y/N]:y [Sysname] quit <Sysname> reboot # 根据图1-14选定IRF物理端口并进行物理连线。 # 重新登录到设备，关闭选定的所有IRF物理端口。 <Sysname> system-view [Sysname] interface range FortyGigE 2/0/1 to FortyGigE 2/0/4 [Sysname-if-range] shutdown [Sysname-if-range] quit # 配置IRF端口2/1，并将它与物理端口FortyGigE2/0/1和FortyGigE2/0/2绑定。 [Sysname] irf-port 2/1 [Sysname-irf-port2/1] port group interface FortyGigE 2/0/1 [Sysname-irf-port2/1] port group interface FortyGigE 2/0/2 [Sysname-irf-port2/1] quit # 配置IRF端口2/2，并将它与物理端口FortyGigE2/0/3和FortyGigE2/0/4绑定。 [Sysname] irf-port 2/2 [Sysname-irf-port2/2] port group interface FortyGigE 2/0/3 [Sysname-irf-port2/2] port group interface FortyGigE 2/0/4 # 开启FortyGigE2/0/1～FortyGigE2/0/4端口，并保存配置。 [Sysname] interface range FortyGigE 2/0/1 to FortyGigE 2/0/4 [Sysname-if-range] undo shutdown [Sysname-if-range] quit [Sysname] save # 激活IRF端口下的配置。 [Sysname] irf-port-configuration active (3)Device A和Device B间将会进行主设备竞选，竞选失败的一方将重启，重启完成后，IRF形成。(4)配置Device C# 将Device C的成员编号配置为3，并重启设备使新编号生效。 <Sysname> system-view [Sysname] irf member 1 renumber 3 Renumbering the member ID may result in configuration change or loss. Continue? [Y/N]:y [Sysname] quit <Sysname> reboot # 根据图1-14选定IRF物理端口并进行物理连线。 # 重新登录到设备，关闭选定的所有IRF物理端口。 <Sysname> system-view [Sysname] interface range FortyGigE 3/0/1 to FortyGigE 3/0/4 [Sysname-if-range] shutdown [Sysname-if-range] quit # 配置IRF端口3/1，并将它与物理端口FortyGigE3/0/1和FortyGigE3/0/2绑定。 [Sysname] irf-port 3/1 [Sysname-irf-port3/1] port group interface FortyGigE 3/0/1 [Sysname-irf-port3/1] port group interface FortyGigE 3/0/2 [Sysname-irf-port3/1] quit # 配置IRF端口3/2，并将它与物理端口FortyGigE3/0/3和FortyGigE3/0/4绑定。 [Sysname] irf-port 3/2 [Sysname-irf-port3/2] port group interface FortyGigE 3/0/3 [Sysname-irf-port3/2] port group interface FortyGigE 3/0/4 [Sysname-irf-port3/2] quit # 开启FortyGigE3/0/1～FortyGigE3/0/4端口，并保存配置。 [Sysname] interface range FortyGigE 3/0/1 to FortyGigE 3/0/4 [Sysname-if-range] undo shutdown [Sysname-if-range] quit [Sysname] save # 激活IRF端口下的配置。 [Sysname] irf-port-configuration active(5)Device C将自动重启，加入Device A和Device B已经形成的IRF。(6)配置Device D# 将Device D的成员编号配置为4，并重启设备使新编号生效。 <Sysname> system-view [Sysname] irf member 1 renumber 4 Renumbering the member ID may result in configuration change or loss. Continue? [Y/N]:y [Sysname] quit <Sysname> reboot #根据图1-14选定IRF物理端口并进行物理连线。 # 重新登录到设备，关闭选定的所有IRF物理端口。 <Sysname> system-view [Sysname] interface range FortyGigE 4/0/1 to FortyGigE 4/0/4 [Sysname-if-range] shutdown [Sysname-if-range] quit # 配置IRF端口4/1，并将它与物理端口FortyGigE4/0/1和FortyGigE4/0/2绑定。 [Sysname] irf-port 4/1 [Sysname-irf-port4/1] port group interface FortyGigE 4/0/1 [Sysname-irf-port4/1] port group interface FortyGigE 4/0/2 [Sysname-irf-port4/1] quit # 配置IRF端口4/2，并将它与物理端口FortyGigE4/0/3和FortyGigE4/0/4绑定。 [Sysname] irf-port 4/2 [Sysname-irf-port4/2] port group interface FortyGigE 4/0/3 [Sysname-irf-port4/2] port group interface FortyGigE 4/0/4 [Sysname-irf-port4/2] quit # 开启FortyGigE4/0/1～FortyGigE4/0/4端口，并保存配置。 [Sysname] interface range FortyGigE 4/0/1 to FortyGigE 4/0/4 [Sysname-if-range] undo shutdown [Sysname-if-range] quit [Sysname] save # 激活IRF端口下的配置。 [Sysname] irf-port-configuration active(7)Device D将自动重启，加入Device A、Device B和Device C已经形成的IRF。(8)配置LACP MAD# 设置IRF域编号为1。 <Sysname> system-view [Sysname] irf domain 1 # 创建一个动态聚合接口，并使能LACP MAD检测功能。 [Sysname] interface bridge-aggregation 2 [Sysname-Bridge-Aggregation2] link-aggregation mode dynamic [Sysname-Bridge-Aggregation2] mad enable You need to assign a domain ID (range: 0-4294967295) [Current domain is: 1]: The assigned domain ID is: 1 Info: MAD LACP only enable on dynamic aggregation interface. [Sysname-Bridge-Aggregation2] quit # 在聚合接口中添加成员端口FortyGigE1/0/5、FortyGigE2/0/5、FortyGigE3/0/5和FortyGigE4/0/5，用于Device A和Device B实现LACP MAD检测。 [Sysname] interface range FortyGigE 1/0/5 FortyGigE 2/0/5 FortyGigE 3/0/5 FortyGigE 4/0/5 [Sysname-if-range] port link-aggregation group 2 [Sysname-if-range] quit(9)配置中间设备Device EDevice E作为中间设备来转发、处理LACP协议报文，协助IRF中的四台成员设备进行多Active检测。从节约成本的角度考虑，使用一台支持LACP协议扩展功能的交换机即可。注意如果中间设备是一个IRF系统，则必须通过配置确保其IRF域编号与被检测的IRF系统不同。 # 创建一个动态聚合接口。 <Sysname> system-view [Sysname] interface bridge-aggregation 2 [Sysname-Bridge-Aggregation2] link-aggregation mode dynamic [Sysname-Bridge-Aggregation2] quit # 在聚合接口中添加成员端口FortyGigE1/0/1～FortyGigE1/0/4，用于帮助LACP MAD检测。 [Sysname] interface range FortyGigE 1/0/1 to FortyGigE 1/0/4 [Sysname-if-range] port link-aggregation group 2 [Sysname-if-range] quitIRF典型配置举例（BFD MAD检测方式）1.组网需求由于网络规模迅速扩大，当前中心交换机（Device A）转发能力已经不能满足需求，现需要在保护现有投资的基础上将网络转发能力提高一倍，并要求网络易管理、易维护。2.组网图图1-15 IRF典型配置组网图（BFD MAD检测方式） 3.配置思路Device A处于局域网的汇聚层，为了将汇聚层的转发能力提高三倍，需要另外增加三台设备Device B、Device C和Device D。鉴于IRF技术具有管理简便、网络扩展能力强、可靠性高等优点，所以本例使用IRF技术构建网络汇聚层（即在四台设备上配置IRF功能），每台成员设备与上层设备Device E之间均有一条上行链路连接。为了防止IRF链路故障导致IRF分裂，网络中存在两个配置冲突的IRF，需要启用MAD检测功能。本例中我们采用BFD MAD检测方式来监测IRF的状态，并使用成员设备与上层设备间的专用链路传递BFD MAD报文。4.配置步骤(1)配置Device A# 根据图1-15选定IRF物理端口并关闭这些端口。 <Sysname> system-view [Sysname] interface range FortyGigE 1/0/1 to FortyGigE 1/0/4 [Sysname-if-range] shutdown [Sysname-if-range] quit # 配置IRF端口1/1，并将它与物理端口FortyGigE1/0/1和FortyGigE1/0/2绑定。 [Sysname] irf-port 1/1 [Sysname-irf-port1/1] port group interface FortyGigE 1/0/1 [Sysname-irf-port1/1] port group interface FortyGigE 1/0/2 [Sysname-irf-port1/1] quit # 配置IRF端口1/2，并将它与物理端口FortyGigE1/0/3和FortyGigE1/0/4绑定。 [Sysname] irf-port 1/2 [Sysname-irf-port1/2] port group interface FortyGigE 1/0/3 [Sysname-irf-port1/2] port group interface FortyGigE 1/0/4 [Sysname-irf-port1/2] quit # 开启FortyGigE1/0/1～FortyGigE1/0/4端口，并保存配置。 [Sysname] interface range FortyGigE 1/0/1 to FortyGigE 1/0/4 [Sysname-if-range] undo shutdown [Sysname-if-range] quit [Sysname] save # 激活IRF端口下的配置。 [Sysname] irf-port-configuration active (2) 配置Device B # 将Device B的成员编号配置为2，并重启设备使新编号生效。 <Sysname> system-view [Sysname] irf member 1 renumber 2 Renumbering the member ID may result in configuration change or loss. Continue? [Y/N]:y [Sysname] quit <Sysname> reboot # 根据图1-15选定IRF物理端口并进行物理连线。 # 重新登录到设备，关闭选定的所有IRF物理端口。 <Sysname> system-view [Sysname] interface range FortyGigE 2/0/1 to FortyGigE 2/0/4 [Sysname-if-range] shutdown [Sysname-if-range] quit # 配置IRF端口2/1，并将它与物理端口FortyGigE2/0/1和FortyGigE2/0/2绑定。 [Sysname] irf-port 2/1 [Sysname-irf-port2/1] port group interface FortyGigE 2/0/1 [Sysname-irf-port2/1] port group interface FortyGigE 2/0/2 [Sysname-irf-port2/1] quit # 配置IRF端口2/2，并将它与物理端口FortyGigE2/0/3和FortyGigE2/0/4绑定。 [Sysname] irf-port 2/2 [Sysname-irf-port2/2] port group interface FortyGigE 2/0/3 [Sysname-irf-port2/2] port group interface FortyGigE 2/0/4 # 开启FortyGigE2/0/1～FortyGigE2/0/4端口，并保存配置。 [Sysname] interface range FortyGigE 2/0/1 to FortyGigE 2/0/4 [Sysname-if-range] undo shutdown [Sysname-if-range] quit [Sysname] save # 激活IRF端口下的配置。 [Sysname] irf-port-configuration active(3)Device A和Device B间将会进行主设备竞选，竞选失败的一方将重启，重启完成后，IRF形成。(4)配置Device C# 将Device C的成员编号配置为3，并重启设备使新编号生效。 <Sysname> system-view [Sysname] irf member 1 renumber 3 Renumbering the member ID may result in configuration change or loss. Continue? [Y/N]:y [Sysname] quit <Sysname> reboot # 根据图1-15选定IRF物理端口并进行物理连线。 # 重新登录到设备，关闭选定的所有IRF物理端口。 <Sysname> system-view [Sysname] interface range FortyGigE 3/0/1 to FortyGigE 3/0/4 [Sysname-if-range] shutdown [Sysname-if-range] quit # 配置IRF端口3/1，并将它与物理端口FortyGigE3/0/1和FortyGigE3/0/2绑定。 [Sysname] irf-port 3/1 [Sysname-irf-port3/1] port group interface FortyGigE 3/0/1 [Sysname-irf-port3/1] port group interface FortyGigE 3/0/2 [Sysname-irf-port3/1] quit # 配置IRF端口3/2，并将它与物理端口FortyGigE3/0/3和FortyGigE3/0/4绑定。 [Sysname] irf-port 3/2 [Sysname-irf-port3/2] port group interface FortyGigE 3/0/3 [Sysname-irf-port3/2] port group interface FortyGigE 3/0/4 [Sysname-irf-port3/2] quit # 开启FortyGigE3/0/1～FortyGigE3/0/4端口，并保存配置。 [Sysname] interface range FortyGigE 3/0/1 to FortyGigE 3/0/4 [Sysname-if-range] undo shutdown [Sysname-if-range] quit [Sysname] save # 激活IRF端口下的配置。 [Sysname] irf-port-configuration active(5)Device C将自动重启，加入Device A和Device B已经形成的IRF。(6)配置Device D# 将Device D的成员编号配置为4，并重启设备使新编号生效。 <Sysname> system-view [Sysname] irf member 1 renumber 4 Renumbering the member ID may result in configuration change or loss. Continue? [Y/N]:y [Sysname] quit <Sysname> reboot # 根据图1-15选定IRF物理端口并进行物理连线。 # 重新登录到设备，关闭选定的所有IRF物理端口。 <Sysname> system-view [Sysname] interface range FortyGigE 4/0/1 to FortyGigE 4/0/4 [Sysname-if-range] shutdown [Sysname-if-range] quit # 配置IRF端口4/1，并将它与物理端口FortyGigE4/0/1和FortyGigE4/0/2绑定。 [Sysname] irf-port 4/1 [Sysname-irf-port4/1] port group interface FortyGigE 4/0/1 [Sysname-irf-port4/1] port group interface FortyGigE 4/0/2 [Sysname-irf-port4/1] quit # 配置IRF端口4/2，并将它与物理端口FortyGigE4/0/3和FortyGigE4/0/4绑定。 [Sysname] irf-port 4/2 [Sysname-irf-port4/2] port group interface FortyGigE 4/0/3 [Sysname-irf-port4/2] port group interface FortyGigE 4/0/4 [Sysname-irf-port4/2] quit # 开启FortyGigE4/0/1～FortyGigE4/0/4端口，并保存配置。 [Sysname] interface range FortyGigE 4/0/1 to FortyGigE 4/0/4 [Sysname-if-range] undo shutdown [Sysname-if-range] quit [Sysname] save # 激活IRF端口下的配置。 [Sysname] irf-port-configuration active(7)Device D将自动重启，加入Device A、Device B和Device C已经形成的IRF。(8)配置BFD MAD# 创建VLAN 3，并将端口FortyGigE1/0/5、FortyGigE2/0/5、FortyGigE3/0/5和FortyGigE4/0/5加入VLAN 3中。 [Sysname] vlan 3 [Sysname-vlan3] port FortyGigE 1/0/5 FortyGigE 2/0/5 FortyGigE 3/0/5 FortyGigE 4/0/5 [Sysname-vlan3] quit # 创建VLAN接口3，并配置MAD IP地址。 [Sysname] interface vlan-interface 3 [Sysname-Vlan-interface3] mad bfd enable [Sysname-Vlan-interface3] mad ip address 192.168.2.1 24 member 1 [Sysname-Vlan-interface3] mad ip address 192.168.2.2 24 member 2 [Sysname-Vlan-interface3] mad ip address 192.168.2.3 24 member 3 [Sysname-Vlan-interface3] mad ip address 192.168.2.4 24 member 4 [Sysname-Vlan-interface3] quit # 因为BFD MAD和生成树功能互斥，所以在FortyGigE1/0/5、FortyGigE2/0/5、FortyGigE3/0/5和FortyGigE4/0/5端口上关闭生成树协议。 [Sysname] interface range FortyGigE 1/0/5 FortyGigE 2/0/5 FortyGigE 3/0/5 FortyGigE 4/0/5 [Sysname-if-range] undo stp enable [Sysname-if-range] quit(9)配置中间设备Device EDevice E作为中间设备来透传BFD MAD报文，协助IRF中的四台成员设备进行多Active检测。 注意 如果中间设备是一个IRF系统，则必须通过配置确保其IRF域编号与被检测的IRF系统不同。 # 创建VLAN 3，并将端口FortyGigE1/0/1～FortyGigE1/0/4加入VLAN 3中，用于转发BFD MAD报文。 <DeviceE> system-view [DeviceE] vlan 3 [DeviceE-vlan3] port FortyGigE 1/0/1 to FortyGigE 1/0/4 [DeviceE-vlan3] quitIRF典型配置举例（ARP MAD检测方式）1.组网需求由于网络规模迅速扩大，当前中心交换机（Device A）转发能力已经不能满足需求，现需要在保护现有投资的基础上提高网络转发能力，并要求网络易管理、易维护。2.组网图图1-16 IRF典型配置组网图（ARP MAD检测方式）3.配置思路Device A处于局域网的汇聚层，为了将汇聚层的转发能力提高三倍，需要另外增加三台设备Device B、Device C和Device D。鉴于IRF技术具有管理简便、网络扩展能力强、可靠性高等优点，所以本例使用IRF技术构建网络接入层（即在四台设备上配置IRF功能），每台成员设备与上层设备Device E之间均有一条上行链路连接。为了防止IRF链路故障导致IRF分裂，网络中存在两个配置冲突的IRF，需要启用MAD检测功能。本例中我们采用ARP MAD检测方式来监测IRF的状态，复用上行链路传递ARP MAD报文。为防止环路发生，在IRF和Device E上启用生成树功能。为提高IRF链路的性能和可靠性，在成员设备间使用聚合IRF链路方式进行连接。4.配置步骤(1)配置Device A# 根据图1-16选定IRF物理端口并关闭这些端口。 <Sysname> system-view [Sysname] interface range FortyGigE 1/0/1 to FortyGigE 1/0/4 [Sysname-if-range] shutdown [Sysname-if-range] quit # 配置IRF端口1/1，并将它与物理端口FortyGigE1/0/1和FortyGigE1/0/2绑定。 [Sysname] irf-port 1/1 [Sysname-irf-port1/1] port group interface FortyGigE 1/0/1 [Sysname-irf-port1/1] port group interface FortyGigE 1/0/2 [Sysname-irf-port1/1] quit # 配置IRF端口1/2，并将它与物理端口FortyGigE1/0/3和FortyGigE1/0/4绑定。 [Sysname] irf-port 1/2 [Sysname-irf-port1/2] port group interface FortyGigE 1/0/3 [Sysname-irf-port1/2] port group interface FortyGigE 1/0/4 [Sysname-irf-port1/2] quit # 开启FortyGigE1/0/1～FortyGigE1/0/4端口，并保存配置。 [Sysname] interface range FortyGigE 1/0/1 to FortyGigE 1/0/4 [Sysname-if-range] undo shutdown [Sysname-if-range] quit [Sysname] save # 激活IRF端口下的配置。 [Sysname] irf-port-configuration active(2)配置Device B# 将Device B的成员编号配置为2，并重启设备使新编号生效。 <Sysname> system-view [Sysname] irf member 1 renumber 2 Renumbering the member ID may result in configuration change or loss. Continue? [Y/N]:y [Sysname] quit <Sysname> reboot # 根据图1-16选定IRF物理端口并进行物理连线。 # 重新登录到设备，关闭选定的所有IRF物理端口。 <Sysname> system-view [Sysname] interface range FortyGigE 2/0/1 to FortyGigE 2/0/4 [Sysname-if-range] shutdown [Sysname-if-range] quit # 配置IRF端口2/1，并将它与物理端口FortyGigE2/0/1和FortyGigE2/0/2绑定。 [Sysname] irf-port 2/1 [Sysname-irf-port2/1] port group interface FortyGigE 2/0/1 [Sysname-irf-port2/1] port group interface FortyGigE 2/0/2 [Sysname-irf-port2/1] quit # 配置IRF端口2/2，并将它与物理端口FortyGigE2/0/3和FortyGigE2/0/4绑定。 [Sysname] irf-port 2/2 [Sysname-irf-port2/2] port group interface FortyGigE 2/0/3 [Sysname-irf-port2/2] port group interface FortyGigE 2/0/4 # 开启FortyGigE2/0/1～FortyGigE2/0/4端口，并保存配置。 [Sysname] interface range FortyGigE 2/0/1 to FortyGigE 2/0/4 [Sysname-if-range] undo shutdown [Sysname-if-range] quit [Sysname] save # 激活IRF端口下的配置。 [Sysname] irf-port-configuration active(3)Device A和Device B间将会进行主设备竞选，竞选失败的一方将重启，重启完成后，IRF形成。(4)配置Device C# 将Device C的成员编号配置为3，并重启设备使新编号生效。 <Sysname> system-view [Sysname] irf member 1 renumber 3 Renumbering the member ID may result in configuration change or loss. Continue? [Y/N]:y [Sysname] quit <Sysname> reboot # 根据图1-16选定IRF物理端口并进行物理连线。 # 重新登录到设备，关闭选定的所有IRF物理端口。 <Sysname> system-view [Sysname] interface range FortyGigE 3/0/1 to FortyGigE 3/0/4 [Sysname-if-range] shutdown [Sysname-if-range] quit # 配置IRF端口3/1，并将它与物理端口FortyGigE3/0/1和FortyGigE3/0/2绑定。 [Sysname] irf-port 3/1 [Sysname-irf-port3/1] port group interface FortyGigE 3/0/1 [Sysname-irf-port3/1] port group interface FortyGigE 3/0/2 [Sysname-irf-port3/1] quit # 配置IRF端口3/2，并将它与物理端口FortyGigE3/0/3和FortyGigE3/0/4绑定。 [Sysname] irf-port 3/2 [Sysname-irf-port3/2] port group interface FortyGigE 3/0/3 [Sysname-irf-port3/2] port group interface FortyGigE 3/0/4 [Sysname-irf-port3/2] quit # 开启FortyGigE3/0/1～FortyGigE3/0/4端口，并保存配置。 [Sysname] interface range FortyGigE 3/0/1 to FortyGigE 3/0/4 [Sysname-if-range] undo shutdown [Sysname-if-range] quit [Sysname] save # 激活IRF端口下的配置。 [Sysname] irf-port-configuration active(5)Device C将自动重启，加入Device A和Device B已经形成的IRF。(6)配置Device D# 将Device D的成员编号配置为4，并重启设备使新编号生效。 <Sysname> system-view [Sysname] irf member 1 renumber 4 Renumbering the member ID may result in configuration change or loss. Continue? [Y/N]:y [Sysname] quit <Sysname> reboot # 根据图1-16选定IRF物理端口并进行物理连线。 # 重新登录到设备，关闭选定的所有IRF物理端口。 <Sysname> system-view [Sysname] interface range FortyGigE 4/0/1 to FortyGigE 4/0/4 [Sysname-if-range] shutdown [Sysname-if-range] quit # 配置IRF端口4/1，并将它与物理端口FortyGigE4/0/1和FortyGigE4/0/2绑定。 [Sysname] irf-port 4/1 [Sysname-irf-port4/1] port group interface FortyGigE 4/0/1 [Sysname-irf-port4/1] port group interface FortyGigE 4/0/2 [Sysname-irf-port4/1] quit # 配置IRF端口4/2，并将它与物理端口FortyGigE4/0/3和FortyGigE4/0/4绑定。 [Sysname] irf-port 4/2 [Sysname-irf-port4/2] port group interface FortyGigE 4/0/3 [Sysname-irf-port4/2] port group interface FortyGigE 4/0/4 [Sysname-irf-port4/2] quit # 开启FortyGigE4/0/1～FortyGigE4/0/4端口，并保存配置。 [Sysname] interface range FortyGigE 4/0/1 to FortyGigE 4/0/4 [Sysname-if-range] undo shutdown [Sysname-if-range] quit [Sysname] save # 激活IRF端口下的配置。 [Sysname] irf-port-configuration active(7)Device D将自动重启，加入Device A、Device B和Device C已经形成的IRF。(8)配置ARP MAD# 在IRF上全局使能生成树协议，并配置MST域，以防止环路的发生。 <Sysname> system-view [Sysname] stp global enable [Sysname] stp region-configuration [Sysname-mst-region] region-name arpmad [Sysname-mst-region] instance 1 vlan 3 [Sysname-mst-region] active region-configuration # 将IRF配置为桥MAC立即改变。 [Sysname] undo irf mac-address persistent # 设置IRF域编号为1。 [Sysname] irf domain 1 # 创建VLAN 3，并将端口FortyGigE1/0/5、FortyGigE2/0/5、FortyGigE3/0/5和FortyGigE4/0/5加入VLAN 3中。 [Sysname] vlan 3 [Sysname-vlan3] port FortyGigE 1/0/5 FortyGigE 2/0/5 FortyGigE 3/0/5 FortyGigE 4/0/5 [Sysname-vlan3] quit # 创建VLAN-interface3，并配置IP地址，使能ARP MAD检测功能。 [Sysname] interface vlan-interface 3 [Sysname-Vlan-interface3] ip address 192.168.2.1 24 [Sysname-Vlan-interface3] mad arp enable You need to assign a domain ID (range: 0-4294967295) [Current domain is: 1]: The assigned domain ID is: 1 (9)配置中间设备Device EDevice E作为中间设备来转发、处理ARP报文，协助IRF中的四台成员设备进行多Active检测。从节约成本的角度考虑，使用一台支持ARP功能的交换机即可。注意如果中间设备是一个IRF系统，则必须通过配置确保其IRF域编号与被检测的IRF系统不同。# 在全局使能生成树协议，并配置MST域，以防止环路的发生。 <DeviceE> system-view [DeviceE] stp global enable [DeviceE] stp region-configuration [DeviceE-mst-region] region-name arpmad [DeviceE-mst-region] instance 1 vlan 3 [DeviceE-mst-region] active region-configuration # 创建VLAN 3，并将端口FortyGigE1/0/1～FortyGigE1/0/4加入VLAN 3中，用于转发ARP MAD报文。 [DeviceE] vlan 3 [DeviceE-vlan3] port FortyGigE 1/0/1 to FortyGigE 1/0/4 [DeviceE-vlan3] quitIRF典型配置举例（ND MAD检测方式）1.组网需求IPv6网络中，由于网络规模迅速扩大，当前中心交换机（Device A）转发能力已经不能满足需求，现需要在保护现有投资的基础上提高网络转发能力，并要求网络易管理、易维护。2.组网图图1-17 IRF典型配置组网图（ND MAD检测方式）3.配置思路Device A处于局域网的汇聚层，为了将汇聚层的转发能力提高一倍，需要另外增加三台设备Device B、Device C和Device D。鉴于IRF技术具有管理简便、网络扩展能力强、可靠性高等优点，所以本例使用IRF技术构建网络接入层（即在四台设备上配置IRF功能），每台成员设备与上层设备Device E之间均有一条上行链路连接。为了防止IRF链路故障导致IRF分裂，网络中存在两个配置冲突的IRF，需要启用MAD检测功能。在IPv6环境我们采用ND MAD检测方式来监测IRF的状态，复用上行链路传递ND MAD报文。为防止环路发生，在IRF和Device E上启用生成树功能。为提高IRF链路的性能和可靠性，在成员设备间使用聚合IRF链路方式进行连接。配置步骤(1)配置Device A# 根据图1-17选定IRF物理端口并关闭这些端口。 <Sysname> system-view [Sysname] interface range FortyGigE 1/0/1 to FortyGigE 1/0/4 [Sysname-if-range] shutdown [Sysname-if-range] quit # 配置IRF端口1/1，并将它与物理端口FortyGigE1/0/1和FortyGigE1/0/2绑定。 [Sysname] irf-port 1/1 [Sysname-irf-port1/1] port group interface FortyGigE 1/0/1 [Sysname-irf-port1/1] port group interface FortyGigE 1/0/2 [Sysname-irf-port1/1] quit # 配置IRF端口1/2，并将它与物理端口FortyGigE1/0/3和FortyGigE1/0/4绑定。 [Sysname] irf-port 1/2 [Sysname-irf-port1/2] port group interface FortyGigE 1/0/3 [Sysname-irf-port1/2] port group interface FortyGigE 1/0/4 [Sysname-irf-port1/2] quit # 开启FortyGigE1/0/1～FortyGigE1/0/4端口，并保存配置。 [Sysname] interface range FortyGigE 1/0/1 to FortyGigE 1/0/4 [Sysname-if-range] undo shutdown [Sysname-if-range] quit [Sysname] save # 激活IRF端口下的配置。 [Sysname] irf-port-configuration active(2)配置Device B# 将Device B的成员编号配置为2，并重启设备使新编号生效。 <Sysname> system-view [Sysname] irf member 1 renumber 2 Renumbering the member ID may result in configuration change or loss. Continue? [Y/N]:y [Sysname] quit <Sysname> reboot # 根据图1-17选定IRF物理端口并进行物理连线。 # 重新登录到设备，关闭选定的所有IRF物理端口。 <Sysname> system-view [Sysname] interface range FortyGigE 2/0/1 to FortyGigE 2/0/4 [Sysname-if-range] shutdown [Sysname-if-range] quit # 配置IRF端口2/1，并将它与物理端口FortyGigE2/0/1和FortyGigE2/0/2绑定。 [Sysname] irf-port 2/1 [Sysname-irf-port2/1] port group interface FortyGigE 2/0/1 [Sysname-irf-port2/1] port group interface FortyGigE 2/0/2 [Sysname-irf-port2/1] quit # 配置IRF端口2/2，并将它与物理端口FortyGigE2/0/3和FortyGigE2/0/4绑定。 [Sysname] irf-port 2/2 [Sysname-irf-port2/2] port group interface FortyGigE 2/0/3 [Sysname-irf-port2/2] port group interface FortyGigE 2/0/4 [Sysname-irf-port2/2] quit # 开启FortyGigE2/0/1～FortyGigE2/0/4端口，并保存配置。 [Sysname] interface range FortyGigE 2/0/1 to FortyGigE 2/0/4 [Sysname-if-range] undo shutdown [Sysname-if-range] quit [Sysname] save # 激活IRF端口下的配置。 [Sysname] irf-port-configuration active(3)Device A和Device B间将会进行主设备竞选，竞选失败的一方将重启，重启完成后，IRF形成。(4)配置Device C# 将Device C的成员编号配置为3，并重启设备使新编号生效。 <Sysname> system-view [Sysname] irf member 1 renumber 3 Renumbering the member ID may result in configuration change or loss. Continue? [Y/N]:y [Sysname] quit <Sysname> reboot # 根据图1-17选定IRF物理端口并进行物理连线。 # 重新登录到设备，关闭选定的所有IRF物理端口。 <Sysname> system-view [Sysname] interface range FortyGigE 3/0/1 to FortyGigE 3/0/4 [Sysname-if-range] shutdown [Sysname-if-range] quit # 配置IRF端口3/1，并将它与物理端口FortyGigE3/0/1和FortyGigE3/0/2绑定。 [Sysname] irf-port 3/1 [Sysname-irf-port3/1] port group interface FortyGigE 3/0/1 [Sysname-irf-port3/1] port group interface FortyGigE 3/0/2 [Sysname-irf-port3/1] quit # 配置IRF端口3/2，并将它与物理端口FortyGigE3/0/3和FortyGigE3/0/4绑定。 [Sysname] irf-port 3/2 [Sysname-irf-port3/2] port group interface FortyGigE 3/0/3 [Sysname-irf-port3/2] port group interface FortyGigE 3/0/4 [Sysname-irf-port3/2] quit # 开启FortyGigE3/0/1～FortyGigE3/0/4端口，并保存配置。 [Sysname] interface range FortyGigE 3/0/1 to FortyGigE 3/0/4 [Sysname-if-range] undo shutdown [Sysname-if-range] quit [Sysname] save # 激活IRF端口下的配置。 [Sysname] irf-port-configuration active(5)Device C将自动重启，加入Device A和Device B已经形成的IRF。(6)配置Device D# 将Device D的成员编号配置为4，并重启设备使新编号生效。 <Sysname> system-view [Sysname] irf member 1 renumber 4 Renumbering the member ID may result in configuration change or loss. Continue? [Y/N]:y [Sysname] quit <Sysname> reboot # 根据图1-17选定IRF物理端口并进行物理连线。 # 重新登录到设备，关闭选定的所有IRF物理端口。 <Sysname> system-view [Sysname] interface range FortyGigE 4/0/1 to FortyGigE 4/0/4 [Sysname-if-range] shutdown [Sysname-if-range] quit # 配置IRF端口4/1，并将它与物理端口FortyGigE4/0/1和FortyGigE4/0/2绑定。 [Sysname] irf-port 4/1 [Sysname-irf-port4/1] port group interface FortyGigE 4/0/1 [Sysname-irf-port4/1] port group interface FortyGigE 4/0/2 [Sysname-irf-port4/1] quit # 配置IRF端口4/2，并将它与物理端口FortyGigE4/0/3和FortyGigE4/0/4绑定。 [Sysname] irf-port 4/2 [Sysname-irf-port4/2] port group interface FortyGigE 4/0/3 [Sysname-irf-port4/2] port group interface FortyGigE 4/0/4 [Sysname-irf-port4/2] quit # 开启FortyGigE4/0/1～FortyGigE4/0/4端口，并保存配置。 [Sysname] interface range FortyGigE 4/0/1 to FortyGigE 4/0/4 [Sysname-if-range] undo shutdown [Sysname-if-range] quit [Sysname] save # 激活IRF端口下的配置。 [Sysname] irf-port-configuration active(7)Device D将自动重启，加入Device A、Device B和Device C已经形成的IRF。(8)配置ND MAD# 在IRF上全局使能生成树协议，并配置MST域，以防止环路的发生。 <Sysname> system-view [Sysname] stp global enable [Sysname] stp region-configuration [Sysname-mst-region] region-name ndmad [Sysname-mst-region] instance 1 vlan 3 [Sysname-mst-region] active region-configuration # 将IRF配置为桥MAC立即改变。 [Sysname] undo irf mac-address persistent # 设置IRF域编号为1。 [Sysname] irf domain 1 # 创建VLAN 3，并将端口FortyGigE1/0/5、FortyGigE2/0/5、FortyGigE3/0/5和FortyGigE4/0/5加入VLAN 3中。 [Sysname] vlan 3 [Sysname-vlan3] port FortyGigE 1/0/5 FortyGigE 2/0/5 FortyGigE 3/0/5 FortyGigE 4/0/5 [Sysname-vlan3] quit # 创建VLAN-interface3，并配置IPv6地址，使能ND MAD检测功能。 [Sysname] interface vlan-interface 3 [Sysname-Vlan-interface3] ipv6 address 2001::1 64 [Sysname-Vlan-interface3] mad nd enable You need to assign a domain ID (range: 0-4294967295) [Current domain is: 1]: The assigned domain ID is: 1(9)配置中间设备Device EDevice E作为中间设备来转发、处理ND报文，协助IRF中的四台成员设备进行多Active检测。从节约成本的角度考虑，使用一台支持ND功能的交换机即可。注意如果中间设备是一个IRF系统，则必须通过配置确保其IRF域编号与被检测的IRF系统不同。# 在全局使能生成树协议，并配置MST域，以防止环路的发生。 <DeviceE> system-view [DeviceE] stp global enable [DeviceE] stp region-configuration [DeviceE-mst-region] region-name ndmad [DeviceE-mst-region] instance 1 vlan 3 [DeviceE-mst-region] active region-configuration # 创建VLAN 3，并将端口FortyGigE1/0/1～FortyGigE1/0/4加入VLAN 3中，用于转发ND MAD报文。 [DeviceE] vlan 3 [DeviceE-vlan3] port FortyGigE 1/0/1 to FortyGigE 1/0/4 [DeviceE-vlan3] quit
安恒明御Web应用防火墙日志异常的案例分析
问题描述WAF的日志异常，WAF的日志恢复后，一段时间后再次消失，且运行状态自动从正常防护切换到了物理直通。问题分析1.查看系统状态，初步判断是mysql服务未启动，重启mysql服务后，日志恢复。2.重启一段时间后，WAF的日志又消失，且自动切换到了物理直通状态。3.查看系统日志，发现WAF的数据库状态异常，系统自动执行了应急保障，运行模式切换到网桥直通，接着系统又发现数据库引擎异常，切换到物理直通。4.下载日志分析后，发现流量过大导致数据库异常，关闭业务访问监控功能，重启mysql服务，将模式切换会正常防护，恢复正常。解决办法1.WAF开启SSH，登录WAF后台（后台密码400获取）重启mysql服务，命令：service mysql restart（其它重启服务命令均可）2.若mysql服务仍存在异常情况，查看系统日志，确认数据库异常原因，在配置-监控管理-关闭业务访问监控-应用配置，在重新启动mysql服务
以root分区扩容为例：1.为了数据安全，第一步扩容的虚拟机打快照：2.编辑虚拟机增加一块磁盘扩容3.登录虚拟机使用命令查下新增磁盘，并使用fdisk将磁盘进行分区，注意n为创建新的分区，p为创建主分区，1为创建分号，启始扇区回车保持默认就好，持续扇区回车保持默认t命令修改分区，8e的类型为linux的分区类型为LVM，最后w保存并退出4.使用pvcreate命令将分区vdb1创建成逻辑卷的物理卷5.使用vgextend命令将分区vdb1加入卷入centos后，vgs就可以看到卷组centos的大小由之前的118.99G变成了618.99G的大小6.使用lvresize命令将root分区由50GG扩展到了550G，逻辑卷的拉伸就成功了；7.但是扩展后df -h看到挂载的root分区还是50G，需要使用xfs_growfs再次确认逻辑卷，这样一个逻辑卷的拉伸就完成了
问题描述windows虚拟机2016或者2012，telnet公网地址，发现需要9秒才能通，但是ping延时非常低，windows7虚拟机去telnet相同地址就正常。打开百度等公网网页慢，一直在转圈。解决办法通过抓包发现，前两个SYN请求包的中，带有ECN标记，到第三个SYN包没有带ECN标记才请求成功。查询官方文档，因为windows server 2016中的ECN功能默认是开启的，ECN利用了TCP/IP中未使用的字段来支持功能，目的是为了减少网络拥堵，但网络中间的各种设备可能不支持，并把该字段不为0的包丢弃。telnet的时候第一次发送带ECN标志的SYN包，3秒后未收到响应，接着发第二次，6秒后未收到相应，第三次会采用不带ECN的SYN包，即可成功，所以导致telnet需要9秒多才可以连上。可以使用管理员权限的CMD执行下面的命令：netsh int tcp set global ecncapability=disabled
“这个设备（服务）的驱动程序已被禁用。另一个驱动程序可以提供这个功能”解决办法
问题描述打开windows设备管理器查看到异常设备，右键带感叹号的设备，查看属性，提示设备状态“这个设备（服务）的驱动程序已被禁用。另一个驱动程序可以提供这个功能”。解决办法操作前先备份个镜像或打个快照；设备异常，最先要检查的是以下两点：卸载设备，重新刷新设备管理器卸载设备，勾选“删除此设备的驱动程序软件”；然后刷新设备管理器，再次手动安装驱动，指定驱动所在目录来更新驱动；出现上述报错还应该检查是否存在过滤驱动，检查方式如下：运行regedit打开注册表，找到以下目录HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlClass逐个检查这个项下的每个文件，查看是否有upfilter和lowfilter字段，查看是否upfilter和lowfilter的值的驱动是来自于哪个软件，是否系统自带的驱动；以下截图中upfilter中的“klfltdev.sys”是卡巴斯基杀毒软件中的一个驱动。upfilter中的“scfilter”“irenum”是微软自带的驱动；在C:WindowsSystem32drivers目录下查看对应驱动的公司名来确认是否是第三方驱动。以下截图为卡巴斯基添加了过滤驱动“klfltdev”，进而导致设备异常；确认虚拟机已卸载了卡巴斯基，这些过滤驱动都是卸载后未清理的残留项，upfilter值只有klfltdev的话，直接删除upfilter项。如果有其他微软自带的过滤驱动的话，如scfilter、irenum，则只删除klfltdev值。原因分析某些软件（一般是安全软件、或者备份软件）会为设备添加一些过滤驱动。安全软件在不改变文件系统的上层和下层接口的情况下，在中间加入一个过滤层，这样就可以在上层软件读取文件、下层驱动提供数据时，对这些数据进行扫描，看其中是否含有某个病毒的特征码。如果这些过滤驱动异常（未加载成功，被删除，卸载后未清理过滤驱动等情况下），会导致设备异常（另外也碰到过安全狗的驱动异常导致服务器网络异常）。
WAF在反向代理-牵引模式下引流后出现业务不通的排错案例分析
问题描述故障背景：新增一台WAF，旁挂在H3C核心交换机上。WAF部署模式为反向代理-牵引模式。通过策略路由引流的方式将内网服务器访问互联网的流量引到WAF上,将外网回来的流量引到WAF上来实现对服务器站点的保护。（如下图所示）故障现象：在H3C核心交换机上配置针对服务器网段业务双向的策略路由，在将其引流到WAF后，出现无法访问的问题。过程分析H3C核心交换机添加策略路由后出现了无法访问外网的问题，进行排查，检查策略路由的配置是否正确，确认配置无误后尝试路由跟踪命令来排查问题。通过路由跟踪命令发现了下图所示问题1.外部流量访问服务器2.服务器访问外部问题现象：在旁路的WAF和核心交换机之间出现环路，内网服务器发送的数据包匹配核心交换机下联策略路由，核心交换机将数据包转发到旁路WAF上，WAF匹配默认路由把包发回给核心交换机，可是核心交换却又把包发回给旁路设备 ，导致环路。确认问题后，经过讨论测试确认了故障原因，如下图所示：原理说明： 交换机由路由表和各种策略生成fib表,首包查fib表生成快速转发表,后续报文优先匹配快速转发表，默认快速转发表由五元组决定 。 快速转发使用5元组（源IP地址、源端口号、目的IP地址、目的端口号、协议号）来标识一条数据流。当一条数据流的第一个报文通过查找路由表转发后，在高速缓存中生成相应的转发信息，该数据流后续报文的转发就可以通过直接查找快速转发表进行转发。这样便大大缩减了IP报文的排队流程，减少报文的转发时间，提高IP报文的转发速率。快速转发能处理已经分片的IP报文，但不支持对IP报文的再分片。解决办法关闭快速转发负载分担功能，将会根据入接口的不同对五元组标识的数据流再次做出区分，即将入接口作为区分数据流的另一特征标识。在配置了策略路由的H3C核心交换机上关闭快速转发负载分担功能。相关命令:undo ip fast-forwarding load-sharingPS.安全设备在旁挂引流时，注意引流的方向和交换机的默认转发规则。
深信服SSL VPN更新护网组合包之后控制台登录提示“503 Service Unavailable”解决办法
问题描述深信服SSL VPN更新护网组合包之后控制台登录提示“503 Service Unavailable”原因分析客户端电脑无法联网，acheck工具通过离线导入补丁包升级improve护网组合包成功之后，控制台IP和4430端口测试均正常通，但是控制台页面登录提示“503 Service Unavailable”。2、后台通过cat /hislog/shellcall.txt |grep boa，查看shellcall日志内容看到了boa服务 stop，但是没有看到start，判断为打护网包重启服务的时候boa服务未正常拉起导致。解决办法后台通过命令systemctl restart sangfor-boa重启boa服务之后，控制台登录正常。PS.需要重启控制台服务，重启不影响其他业务。
Windows Server 2008和2012 修复CVE-2016-2183漏洞
漏洞说明Windows server 2008或2012远程桌面服务SSL加密默认是开启的，且有默认的CA证书。由于SSL/ TLS自身存在漏洞缺陷，当开启远程桌面服务，使用漏洞扫描工具扫描，发现存在SSL/TSL漏洞。TLS是安全传输层协议，用于在两个通信应用程序之间提供保密性和数据完整性。TLS, SSH, IPSec协商及其他产品中使用的DES及Triple DES密码存在大约四十亿块的生日界，这可使远程攻击者通过Sweet32攻击，获取纯文本数据。CVE编号：CVE-2016-2183CNNVD编号：CNNVD-201608-448CNVD编号：CNVD-2016-06765解决办法OpenSSL Security Advisory [22 Sep 2016]链接：https://www.openssl.org/news/secadv/20160922.txt请在下列网页下载最新版本：https://www.openssl.org/source/对于nginx、apache、lighttpd等服务器禁止使用DES加密算法主要是修改conf文件Windows系统可以参考如下链接：https://social.technet.microsoft.com/Forums/en-US/31b3ba6f-d0e6-417a-b6f1-d0103f054f8d/ssl-mediumstrength-cipher-suites-supported-sweet32cve20162183?forum=ws2016以Windows为例打开服务器，运行gpedit.msc，打开“本地组策略编辑器”，定位到计算机配置-管理模板-网络-SSL配置设置打开“SSL密码套件顺序”，更改为已启用，并在“SSL密码套件”下修改SSL密码套件算法，仅保留TLS 1.2 SHA256 和 SHA384 密码套件、TLS 1.2 ECC GCM 密码套件。复制并替换以下内容：TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_P256,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_P384,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_P521,TLS_ECDHE_ECDSA,WITH_AES_256_GCM_SHA384_P384,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384_P521,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P384,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P521,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P521,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256_P256,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256_P384,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256_P521,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384_P384,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384_P521,TLS_DHE_DSS_WITH_AES_128_CBC_SHA256,TLS_DHE_DSS_WITH_AES_256_CBC_SHA256,TLS_RSA_WITH_NULL_SHA,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_DHE_DSS_WITH_AES_128_CBC_SHA重启服务器完成修复
目的设置密码策略性，以及配置创建可以有效的保障用户认证安全。降低部分威胁风险。概念通过validate_password去检测密码的各项策略，通过编辑参数从而达到修改密码策略配置。定义NO_AUTO_CREATE_USER，可防止GRANT语句在未提供身份验证信息时自动创建用户用户认证-密码复杂性说明：密码​​复杂性包括密码特征，如长度，大小写，长度和字符集。复杂密码有助于缓解字典，暴力破解和其他密码攻击。此建议可防止用户选择容易被猜到的弱密码。检测：执行以下SQL语句来评估此建议：SHOW VARIABLES LIKE 'validate_password%'; MySQL默认设置运行结果：length：密码最小长度，此处为8mixed_case_count：大小写字符长度，至少1个number_count ：数字至少1个special_char_count：特殊字符至少1个为保证密码复杂性：validate_password_length应为14或更多validate_password_mixed_case_count应为1或更多validate_password_number_count应为1或更多validate_password_special_char_count应为1或更多validate_password_policy应为MEDIUM或STRONG加固：在/etc/my.cnf里添加：plugin-load=validate_password.so validate-password=FORCE_PLUS_PERMANENT validate_password_length=14 validate_password_mixed_case_count=1 validate_password_number_count=1 validate_password_special_char_count=1 validate_password_policy=MEDIUM 重启mysql服务以管理员账户登录，检查密码复杂性：用户认证-设置NO_AUTO_CREATE_USERsql-mode定义了mysql应该支持的sql语法，数据校验等NO_AUTO_CREATE_USER是sql_mode的一个选项，可防止GRANT语句在未提供身份验证信息时自动创建用户。空白密码否定了身份验证机制提供的好处。如果没有此设置，管理用户可能会在没有密码的情况下意外创建用户。检测：执行以下SQL语句来评估此建议：SELECT @@global.sql_mode; SELECT @@session.sql_mode;确保每个结果包含NO_AUTO_CREATE_USER加固：执行以下操作以修复此设置：1.打开MySQL配置文件（my.cnf）2.在[mysqld]区域中找到sql_mode3.将NO_AUTO_CREATE_USER添加到sql_mode设置
问题描述最新发布的明御运维审计与风险控制系统版本2.0.8.4支持LINUX应用中心由于LINUX应用中心工具需要填写应用的路径，那么我们怎么查询诸如UOS浏览器所在路径呢？解决方法通常情况下应用在/usr/bin/目录下，如下以查找UOS浏览器默认路径举例。点击启动器，右键UOS浏览器，发送到桌面打打开终端，将桌面的UOS浏览器拖动到终端中，就能看到应用的名称，如下图org.deepin.browser就是应用的名称，desktop只是代表它的位置然后输入如下指令，最后的参数为上一步查到的应用名称，命令查到的结果为此应用所有的相关文件sudo dpkg -L org.deepin.browser就能确认UOS浏览器应该是这个/usr/bin/browser的文件验证这个文件是否能打开UOS浏览器，可以正常打开sudo su cd / ./usr/bin/browser --no-sandbox
安恒堡垒机（明御运维审计与风险控制系统）运维应用发布黑屏的一种原因（应用发布进程控制问题）
问题描述明御运维审计与风险控制系统版本：2.0.8.3.4应用发布版本：windows server 2016问题描述：部署好应用发布后，运维黑屏，一直卡在启动应用过程分析过程1.查看运维日志有正常登录的情况2.应用发布服务器上应用加载器已更新，与堡垒机保持同版本。且重新部署应用加载器现象相同3.应用发布服务器上检查没有其他安全软件拦截，使用服务器其他账户登录现象相同。4.通过查看审计会话，发现在登录过程中已经正常登录上了5.多次测试应用运维观察运行情况，看是否有应用拉起相关报错测试过程中发现中如下提示,该部分因为一闪而过，会话未记录到，也未截到图，以下图举例，对应的名称为USMdrvier.exe。 为应用加载器的运行程序。6.证明应用加载器被系统的安全通知拦截 未正常运行，导致一直卡在开启过程中，所以应用一直未加载解决方法1.应用发布服务器上右击“此电脑”这一项，再选择“属性”选项；通过左下角安全和维护进入用户账户控制，将通知有关计算机更改消息 改为从不通知，系统在应用启动时便不会拦截通知有关计算机更改消息 改为从不通知，再测试应用发布即可正常登录注意事项应用运维登录黑屏或者报错的情况，需要通过测试仔细观察登录过程，确认问题出现的位置，再去结合功能进行判断大致问题原因如果存在应用加载器的拉起问题，测试方式可以采用替换账户，重新安装应用加载器等方式观察登录过程，确认问题点是应用加载器本身，还是有其他的系统或者软件控制。
centos7忘记root密码后，可以通过linux的单用户救援机制下进行修改。过程如下：开机时进入如下界面，按e键出现下面界面进行修改按方向键下，定位到最后，找到“ro”一行，ro的意思是read only，将“ro”替换成 rw init=/sysroot/bin/sh，如下图按Ctrl-x 进行重启进入单用户模式进入以后执行以下命令并根据提示修改密码chroot /sysroot password root touch /.autorelabel exit reboot
问题描述CAS环境要如何确定该物理机是否是CVM节点或有没有安装CVM组件。解决办法SSH到该服务器后台，然后执行cat /etc/cas_component_info ,如果有相对应的信息显示，或在 /ETC目录有cas_component_info文件，该服务器就是部署了CVM组件。root@localhost:~# cat /etc/cas_component_info <Components> <Language>zh</Language> <CVM>installed</CVM> </Components>
问题描述通过明御®运维审计与风险控制系统（简称“DASUSM”）堡垒机远程windows server2019时出现如下报错：connect to xxx failed，[Error 0] Success 解决办法检查windows是否在重启或者升级状态；尝试勾选或者取消勾选管理会话（曾经遇到过绕过堡垒机访问正常，但是勾选了管理会话后，远程Windows黑屏的情况）；检查RDS许可状态是否为绿色打勾；检查RDS诊断是否提示为每用户模式；配置应用发布服务器需要将RD许可设置为每设备模式，但是有的时候即使设置好了，在RD许可诊断中还是提示远程桌面会话主机在每用户模式下（如下图）此问题是由于人为在组策略中修改了配置。cmd窗口中输入gpedit.msc, 打开组策略，计算机配置-管理模板-远程桌面-远程桌面主机会话-许可-设置远程桌面许可模式，修改为每设备即可（这边的配置优先级高于在服务器管理那边的配置）RDS诊断没有报错的最终效果重启windows服务器，这是因为部分配置存在没有重启不生效的情况。
明御运维审计与风险控制系统远程桌面（server2012系统）报错error：NLA or TLS security negotiation failure, Please check the username and password
问题描述在使用安恒堡垒机明御®运维审计与风险控制系统（DASUSM）远程桌面运维Windows server 2012系统时报错：error：NLA or TLS security negotiation failure, Please check the username and password这个情况主要是服务器身份验证引起的，需要服务器端修改组策略。解决办法进入组策略进入计算机配置-管理模板-Windows组件-远程桌面服务-远程桌面会话主机-安全“要求使用网络级别的身份验证对远程连接的用户进行身份验证”更改为已禁用状态“客户端连接加密级别”更改为已启用，“加密级别”选择客户端兼容“远程（RDP）连接要求使用指定的安全层”更改为已启用，安全层选择协商
阿里云的服务器要到期了，抽空把服务器做了个迁移，做个笔记。备份数据Mysqldump常用命令：mysqldump -u用户名 -p密码 --databases 数据库1 数据库2 > xxx.sql常见选项：-u: 用户名 -p: 密码 -P: 端口号，不写默认3306 --all-databases, -A：备份所有数据库 --databases, -B: 用于备份多个数据库，如果没有该选项，mysqldump把第一个名字参数作为数据库名，后面的作为表名。使用该选项，mysqldum把每个名字都当作为数据库名。 -d: 只导出数据库的表结构 -t: 只导出数据库的数据 --quick, -q：快速导出 --xml, -X：导出为xml文件下面是具体的使用samples:1. 备份全部数据库的数据和结构（-A） mysqldump -uroot -p123456 -A > backup.sql 2. 备份全部数据库的结构（-d） mysqldump -uroot -p123456 -P3306 -A -d > backup.sql 3. 备份全部数据库的数据（-t） mysqldump -uroot -p123456 -P3306 -A -t > backup.sql 4. 备份单个数据库的数据和结构（sakila 为数据库名） mysqldump -uroot -p123456 -P3306 sakila > backup.sql 5. 备份单个数据库结构（sakila 为数据库名，-d） mysqldump -uroot -p123456 -P3306 sakila -d > backup.sql 6. 备份单个数据库数据（sakila 为数据库名，-t） mysqldump -uroot -p123456 -P3306 sakila -t > backup.sql 7. 备份多个表的结构和数据 (table1,table2为表名) mysqldump -uroot -p123456 -P3306 sakila table1 table2 > backup.sql 8. 一次备份多个数据库 mysqldump -uroot -p123456 --databases db1 db2 > backup.sql还原数据库系统命令行：mysqladmin -uroot -p123456 create db_name mysql -uroot -p123456 db_name < /bak/backup.sql注：在导入备份数据库前，db_name如果没有，是需要创建的； 而且与backup.sql中数据库名是一样的才可以导入。soure 方法：mysql > use db mysql > source /bak/backup.sqlNOTES还原单个数据库、单个数据库的多表需要指定数据库，而还原多个数据库时不用指定数据库。区别：备份用的命令是mysqldump， 还原用的是mysql。
使用python调用API添加主机import requests import json def postusmsource(Usmurl): #定义请求头 Usmheader = { 'Content-Type':'application/json', 'AccessToken' :'xxxxxxxxxxxxxxxxxxxxx', } #发起请求携带的参数 Hosts = { 'comment':'test',#此参数非必填 'departmentId':65, 'hostIp':'12.12.14.3', 'hostname':'test' } #转换为json格式的数据进行发送 Hosts = json.dumps(Hosts) Source = requests.post(url=Usmurl,headers=Usmheader,data=Hosts,verify=False) #查看下输出的状态码。若为201则表示添加成功 print(Source.status_code) if name == '__main__': # 定义API接口地址 Usmhosturl = 'https://IP/api/hosts' postusmsource(Usmhosturl)注意事项将IP替换成堡垒机对应的IP在用户-查看个人信息-API访问键获取AccessToken值
系统环境：CentOS Linux release 7.9.2009 (Core)卸载旧版本[root@ARL ~]# yum remove docker \ > docker-client \ > docker-client-latest \ > docker-common \ > docker-latest \ > docker-latest-logrotate \ > docker-logrotate \ > docker-engine 已加载插件：fastestmirror, langpacks 参数 docker 没有匹配 参数 docker-client 没有匹配 参数 docker-client-latest 没有匹配 参数 docker-common 没有匹配 参数 docker-latest 没有匹配 参数 docker-latest-logrotate 没有匹配 参数 docker-logrotate 没有匹配 参数 docker-engine 没有匹配 不删除任何软件包安装需要的安装包yum-utils[root@ARL ~]# yum install -y yum-utils 已加载插件：fastestmirror, langpacks Loading mirror speeds from cached hostfile * base: mirrors.aliyun.com * extras: mirrors.aliyun.com * updates: mirrors.aliyun.com 软件包 yum-utils-1.1.31-54.el7_8.noarch 已安装并且是最新版本 无须任何处理设置镜像仓库地址使用阿里云镜像[root@ARL ~]# yum-config-manager \ > --add-repo \ > http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 已加载插件：fastestmirror, langpacks adding repo from: http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo grabbing file http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo to /etc/yum.repos.d/docker-ce.repo repo saved to /etc/yum.repos.d/docker-ce.repo安装docker引擎更新yum软件包索引[root@ARL ~]# yum makecache fase 已加载插件：fastestmirror, langpacks Loading mirror speeds from cached hostfile * base: mirrors.ustc.edu.cn * extras: mirrors.ustc.edu.cn * updates: mirrors.aliyun.com docker-ce-stable | 3.5 kB 00:00:00 (1/4): docker-ce-stable/7/x86_64/filelists_db | 25 kB 00:00:01 (2/4): docker-ce-stable/7/x86_64/primary_db | 58 kB 00:00:00 (3/4): docker-ce-stable/7/x86_64/updateinfo | 55 B 00:00:01 (4/4): docker-ce-stable/7/x86_64/other_db | 118 kB 00:00:00 (1/4): updates/7/x86_64/other_db | 517 kB 00:00:00 (2/4): extras/7/x86_64/other_db | 137 kB 00:00:00 (3/4): extras/7/x86_64/filelists_db | 228 kB 00:00:00 (4/4): base/7/x86_64/other_db | 2.6 MB 00:00:00 元数据缓存已建立docker社区、ee企业版 ce为社区版 官方推荐使用ce版，默认安装最新的docker版本，也可以指定版本安装[root@ARL ~]# yum install docker-ce docker-ce-cli containerd.io 已加载插件：fastestmirror, langpacks Loading mirror speeds from cached hostfile * base: mirrors.aliyun.com * extras: mirrors.aliyun.com * updates: mirrors.aliyun.com 正在解决依赖关系 --> 正在检查事务 ---> 软件包 containerd.io.x86_64.0.1.4.4-3.1.el7 将被 安装 --> 正在处理依赖关系 container-selinux >= 2:2.74，它被软件包 containerd.io-1.4.4-3.1.el7.x86_64 需要 ---> 软件包 docker-ce.x86_64.3.20.10.5-3.el7 将被 安装 --> 正在处理依赖关系 docker-ce-rootless-extras，它被软件包 3:docker-ce-20.10.5-3.el7.x86_64 需要 ---> 软件包 docker-ce-cli.x86_64.1.20.10.5-3.el7 将被 安装 --> 正在检查事务 ---> 软件包 container-selinux.noarch.2.2.119.2-1.911c772.el7_8 将被 安装 ---> 软件包 docker-ce-rootless-extras.x86_64.0.20.10.5-3.el7 将被 安装 --> 正在处理依赖关系 fuse-overlayfs >= 0.7，它被软件包 docker-ce-rootless-extras-20.10.5-3.el7.x86_64 需要 --> 正在处理依赖关系 slirp4netns >= 0.4，它被软件包 docker-ce-rootless-extras-20.10.5-3.el7.x86_64 需要 --> 正在检查事务 ---> 软件包 fuse-overlayfs.x86_64.0.0.7.2-6.el7_8 将被 安装 --> 正在处理依赖关系 libfuse3.so.3(FUSE_3.2)(64bit)，它被软件包 fuse-overlayfs-0.7.2-6.el7_8.x86_64 需要 --> 正在处理依赖关系 libfuse3.so.3(FUSE_3.0)(64bit)，它被软件包 fuse-overlayfs-0.7.2-6.el7_8.x86_64 需要 --> 正在处理依赖关系 libfuse3.so.3()(64bit)，它被软件包 fuse-overlayfs-0.7.2-6.el7_8.x86_64 需要 ---> 软件包 slirp4netns.x86_64.0.0.4.3-4.el7_8 将被 安装 --> 正在检查事务 ---> 软件包 fuse3-libs.x86_64.0.3.6.1-4.el7 将被 安装 --> 解决依赖关系完成 依赖关系解决 ========================================================================================================================================================================================================================================= Package 架构 版本 源 大小 ========================================================================================================================================================================================================================================= 正在安装: containerd.io x86_64 1.4.4-3.1.el7 docker-ce-stable 33 M docker-ce x86_64 3:20.10.5-3.el7 docker-ce-stable 27 M docker-ce-cli x86_64 1:20.10.5-3.el7 docker-ce-stable 33 M 为依赖而安装: container-selinux noarch 2:2.119.2-1.911c772.el7_8 extras 40 k docker-ce-rootless-extras x86_64 20.10.5-3.el7 docker-ce-stable 9.1 M fuse-overlayfs x86_64 0.7.2-6.el7_8 extras 54 k fuse3-libs x86_64 3.6.1-4.el7 extras 82 k slirp4netns x86_64 0.4.3-4.el7_8 extras 81 k 事务概要 ========================================================================================================================================================================================================================================= 安装 3 软件包 (+5 依赖软件包) 总下载量：102 M 安装大小：424 M Is this ok [y/d/N]: y Downloading packages: (1/8): container-selinux-2.119.2-1.911c772.el7_8.noarch.rpm | 40 kB 00:00:00 warning: /var/cache/yum/x86_64/7/docker-ce-stable/packages/docker-ce-20.10.5-3.el7.x86_64.rpm: Header V4 RSA/SHA512 Signature, key ID 621e9f35: NOKEY======== ] 6.6 MB/s | 56 MB 00:00:07 ETA docker-ce-20.10.5-3.el7.x86_64.rpm 的公钥尚未安装 (2/8): docker-ce-20.10.5-3.el7.x86_64.rpm | 27 MB 00:00:09 (3/8): containerd.io-1.4.4-3.1.el7.x86_64.rpm | 33 MB 00:00:09 (4/8): fuse3-libs-3.6.1-4.el7.x86_64.rpm | 82 kB 00:00:00 (5/8): fuse-overlayfs-0.7.2-6.el7_8.x86_64.rpm | 54 kB 00:00:00 (6/8): slirp4netns-0.4.3-4.el7_8.x86_64.rpm | 81 kB 00:00:00 (7/8): docker-ce-rootless-extras-20.10.5-3.el7.x86_64.rpm | 9.1 MB 00:00:02 (8/8): docker-ce-cli-20.10.5-3.el7.x86_64.rpm | 33 MB 00:00:07 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 总计 5.9 MB/s | 102 MB 00:00:17 从 https://download.docker.com/linux/centos/gpg 检索密钥 导入 GPG key 0x621E9F35: 用户ID : "Docker Release (CE rpm) <docker@docker.com>" 指纹 : 060a 61c5 1b55 8a7f 742b 77aa c52f eb6b 621e 9f35 来自 : https://download.docker.com/linux/centos/gpg 是否继续？[y/N]：y Running transaction check Running transaction test Transaction test succeeded Running transaction 正在安装 : 2:container-selinux-2.119.2-1.911c772.el7_8.noarch 1/8 正在安装 : containerd.io-1.4.4-3.1.el7.x86_64 2/8 正在安装 : slirp4netns-0.4.3-4.el7_8.x86_64 3/8 正在安装 : fuse3-libs-3.6.1-4.el7.x86_64 4/8 正在安装 : fuse-overlayfs-0.7.2-6.el7_8.x86_64 5/8 正在安装 : 1:docker-ce-cli-20.10.5-3.el7.x86_64 6/8 正在安装 : docker-ce-rootless-extras-20.10.5-3.el7.x86_64 7/8 正在安装 : 3:docker-ce-20.10.5-3.el7.x86_64 8/8 验证中 : 1:docker-ce-cli-20.10.5-3.el7.x86_64 1/8 验证中 : fuse3-libs-3.6.1-4.el7.x86_64 2/8 验证中 : fuse-overlayfs-0.7.2-6.el7_8.x86_64 3/8 验证中 : slirp4netns-0.4.3-4.el7_8.x86_64 4/8 验证中 : 2:container-selinux-2.119.2-1.911c772.el7_8.noarch 5/8 验证中 : 3:docker-ce-20.10.5-3.el7.x86_64 6/8 验证中 : docker-ce-rootless-extras-20.10.5-3.el7.x86_64 7/8 验证中 : containerd.io-1.4.4-3.1.el7.x86_64 8/8 已安装: containerd.io.x86_64 0:1.4.4-3.1.el7 docker-ce.x86_64 3:20.10.5-3.el7 docker-ce-cli.x86_64 1:20.10.5-3.el7 作为依赖被安装: container-selinux.noarch 2:2.119.2-1.911c772.el7_8 docker-ce-rootless-extras.x86_64 0:20.10.5-3.el7 fuse-overlayfs.x86_64 0:0.7.2-6.el7_8 fuse3-libs.x86_64 0:3.6.1-4.el7 slirp4netns.x86_64 0:0.4.3-4.el7_8 完毕！运行docker[root@ARL ~]# systemctl start docker [root@ARL ~]# docker version Client: Docker Engine - Community Version: 20.10.5 API version: 1.41 Go version: go1.13.15 Git commit: 55c4c88 Built: Tue Mar 2 20:33:55 2021 OS/Arch: linux/amd64 Context: default Experimental: true Server: Docker Engine - Community Engine: Version: 20.10.5 API version: 1.41 (minimum version 1.12) Go version: go1.13.15 Git commit: 363e9a8 Built: Tue Mar 2 20:32:17 2021 OS/Arch: linux/amd64 Experimental: false containerd: Version: 1.4.4 GitCommit: 05f951a3781f4f2c1911b05e61c160e9c30eaa8e runc: Version: 1.0.0-rc93 GitCommit: 12644e614e25b05da6fd08a38ffa0cfe1903fdec docker-init: Version: 0.19.0 GitCommit: de40ad0
CentOS系统从最小化安装平滑升级到基础设施服务器安装
问题描述在项目中碰到CentOS系统为最小化安装，部署需要基础环境。解决办法准备和系统版本一致的镜像，将镜像上传到虚拟机的opt目录中将镜像配置为本地yum源创建挂载目录mkdir /media/CentOS7 挂载ISO文件mount -t iso9660 -o loop /opt/CentOS-7-x86_64-DVD-1511_7.2.iso /media/CentOS7/ 注意：如果想一直用本地yum源可以配置/etc/fstab，设置开机挂载配置yum源执行vi /etc/yum.repos.d/CentOS7-Localsource.repo打开repo文件，如果这一文件不存在则被创建按a 进入编辑模式输入以下内容：[local] name=local baseurl=file:///media/CentOS7 enabled=1 gpgcheck=0按ESC退出编辑，输入 :wq 再回车 保存后退出生成 本地yum 缓存 执行yum clean all(清除缓存)yum makecache(建立新缓存)yum grouplist看看可用的环境组里有没有Infrastructure Serveryum groupinstall "Infrastructure Server"yum grouplist 再次查看环境yum groupinstall "devetool" 安全开发工具
深信服AC开启防共享功能导致网页打开显示异常
问题描述网页频繁出现窗口白屏、等待，浏览器卡死等情况.处理过程打开网页测试显示异常，一直转圈圈，显示不出来.出现异常现象时，抓包发现请求被劫持，进入AC进行处理，处理完毕后再重新发起同样请求；这样就影响了协同数据请求的连贯性，导致参数丢失，页面报错。并且会插入一段js文件: 上述页面除了有直接写的 JS 代码外，还内嵌了一个地址为 http://1.1.1.3:89/cookie/flash.js 的脚本文件，内容如下： 根因坑点：前期通过AC上的排障并未发现拦截日志，但跳过设备时业务正常。通过分析数据包，是AC防共享模块检测机制种植cookie导致。解决方案关闭防共享模块测试正常，若某些网站开启防共享导致异常，可联系400工程师，后台排除相关域名解决。建议与总结此类网络问题可在设备界面抓包进行对比测试，定位问题点
某次加固Windows server主机的时候，在配置各项审核策略后，发现配置又被还原了。配置审核策略：关闭后再打开发现配置还原：对从msdn上下的纯净镜像进行配置审核策略，发现均能配置成功，无法复现。后面发现在计算机策略–策略–Windows设置–安全设置–本地策略–安全选项中有一条“审核：强制审核策略子类别设置（Windows Vista或更高版本）以覆盖审核策略类别设置”被启用了。将该策略禁用，再重新配置各项审核策略后，配置成功，配置不会再被还原。
解决Nginx报错：an upstream response is buffered to a temporary file
最近某个应用用户登录的时候登录不上，应用跳转不过去。发现Nginx下有错误日志：2020/09/15 17:17:28 [warn] 1427#1427: *1786 an upstream response is buffered to a temporary file这个问题应该是请求头过大，fastcgi_buffers默认设置太小导致，贴个Nginx的buffer机制：当被代理服务器向nginx proxy发送数据时，proxy buffer会判断本次响应的数据量的大小。如果buffer足够，那么本次响应数据直接写入buffer。如果buffer装不下本次响应的数据，那么nginx服务器会将部分接收到的数据临时存放在磁盘的临时文件中，磁盘上的临时文件路径可以通过proxy_temp_path指定，临时文件的大小有proxy_max_temp_file_size和proxy_temp_file_write_size指令决定一次响应数据接收完成或者buffer已经转满，nginx服务器开始向客户端传输数据修改Nginx配置文件：fastcgi_buffer_size 512k; fastcgi_buffers 6 512k; fastcgi_busy_buffers_size 512k; fastcgi_temp_file_write_size 512k;业务恢复正常
解决You have new mail in /var/spool/mail/root
问题描述：终端远程登陆后经常提示You have new mail in /var/spool/mail/root这个提示是LINUX会定时查看LINUX各种状态做汇总，每经过一段时间会把汇总的信息发送的root的邮箱里，以供有需之时查看。一般这种情况mail的内容就只是一些正常的系统信息或者是比较重要的错误报告。如果你安装了mutt的话直接用这个命令就可以查看mail的内容（用root登陆先），没有装的话用cat /var/spool/mail/root查看（用root登陆先）。解决方案：第一步：关闭提示[root@localhost ~]# echo "unset MAILCHECK">> /etc/profile [root@localhost ~]# source /etc/profile 第二步：查看[root@localhost ~]# ls -lth /var/spool/mail/ 第三步：清空[root@localhost ~]# cat /dev/null > /var/spool/mail/root
0x00 安装snmp服务通过yum安装snmp：[root@localhost ~]# yum -y install net-snmp net-snmp-utils 已加载插件：fastestmirror, langpacks Loading mirror speeds from cached hostfile epel/x86_64/metalink | 9.3 kB 00:00:00 * base: mirrors.aliyun.com * epel: hkg.mirror.rackspace.com * extras: mirrors.cn99.com * updates: mirrors.aliyun.com base | 3.6 kB 00:00:00 extras | 2.9 kB 00:00:00 updates | 2.9 kB 00:00:00 正在解决依赖关系 --> 正在检查事务 ---> 软件包 net-snmp.x86_64.1.5.7.2-48.el7_8.1 将被 安装 --> 正在处理依赖关系 net-snmp-agent-libs = 1:5.7.2-48.el7_8.1，它被软件包 1:net-snmp-5.7.2-48.el7_8.1.x86_64 需要 --> 正在处理依赖关系 libnetsnmptrapd.so.31()(64bit)，它被软件包 1:net-snmp-5.7.2-48.el7_8.1.x86_64 需要 --> 正在处理依赖关系 libnetsnmpmibs.so.31()(64bit)，它被软件包 1:net-snmp-5.7.2-48.el7_8.1.x86_64 需要 --> 正在处理依赖关系 libnetsnmpagent.so.31()(64bit)，它被软件包 1:net-snmp-5.7.2-48.el7_8.1.x86_64 需要 ---> 软件包 net-snmp-utils.x86_64.1.5.7.2-48.el7_8.1 将被 安装 --> 正在检查事务 ---> 软件包 net-snmp-agent-libs.x86_64.1.5.7.2-48.el7_8.1 将被 安装 --> 解决依赖关系完成 依赖关系解决 ========================================================================================================================================================================================================================================= Package 架构 版本 源 大小 ========================================================================================================================================================================================================================================= 正在安装: net-snmp x86_64 1:5.7.2-48.el7_8.1 updates 332 k net-snmp-utils x86_64 1:5.7.2-48.el7_8.1 updates 200 k 为依赖而安装: net-snmp-agent-libs x86_64 1:5.7.2-48.el7_8.1 updates 707 k 事务概要 ========================================================================================================================================================================================================================================= 安装 2 软件包 (+1 依赖软件包) 总下载量：1.2 M 安装大小：3.3 M Downloading packages: (1/3): net-snmp-utils-5.7.2-48.el7_8.1.x86_64.rpm | 200 kB 00:00:00 (2/3): net-snmp-agent-libs-5.7.2-48.el7_8.1.x86_64.rpm | 707 kB 00:00:00 (3/3): net-snmp-5.7.2-48.el7_8.1.x86_64.rpm | 332 kB 00:00:00 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 总计 3.4 MB/s | 1.2 MB 00:00:00 Running transaction check Running transaction test Transaction test succeeded Running transaction 正在安装 : 1:net-snmp-agent-libs-5.7.2-48.el7_8.1.x86_64 1/3 正在安装 : 1:net-snmp-5.7.2-48.el7_8.1.x86_64 2/3 正在安装 : 1:net-snmp-utils-5.7.2-48.el7_8.1.x86_64 3/3 验证中 : 1:net-snmp-agent-libs-5.7.2-48.el7_8.1.x86_64 1/3 验证中 : 1:net-snmp-5.7.2-48.el7_8.1.x86_64 2/3 验证中 : 1:net-snmp-utils-5.7.2-48.el7_8.1.x86_64 3/3 已安装: net-snmp.x86_64 1:5.7.2-48.el7_8.1 net-snmp-utils.x86_64 1:5.7.2-48.el7_8.1 作为依赖被安装: net-snmp-agent-libs.x86_64 1:5.7.2-48.el7_8.1 完毕！查看snmp版本：[root@localhost ~]# snmpd -v NET-SNMP version: 5.7.2 Web: http://www.net-snmp.org/ Email: net-snmp-coders@lists.sourceforge.net启动snmp服务并添加启动项centos6[root@localhost ~]# service snmpd start [root@localhost ~]# chkconfig snmpd on centos7[root@localhost ~]# systemctl start snmpd [root@localhost ~]# systemctl enable snmpd 0x01 配置snmp更改snmp配置文件[root@localhost ~]# vi /etc/snmp/snmpd.conf ############################################################################### # # snmpd.conf: # An example configuration file for configuring the ucd-snmp snmpd agent. # ############################################################################### # # This file is intended to only be as a starting point. Many more # configuration directives exist than are mentioned in this file. For # full details, see the snmpd.conf(5) manual page. # # All lines beginning with a '#' are comments and are intended for you # to read. All other lines are configuration commands for the agent. ############################################################################### # Access Control ############################################################################### # As shipped, the snmpd demon will only respond to queries on the # system mib group until this file is replaced or modified for # security purposes. Examples are shown below about how to increase the # level of access. # By far, the most common question I get about the agent is "why won't # it work?", when really it should be "how do I configure the agent to # allow me to access it?" # # By default, the agent responds to the "public" community for read # only access, if run out of the box without any configuration file in # place. The following examples show you other ways of configuring # the agent so that you can change the community names, and give # yourself write access to the mib tree as well. # # For more information, read the FAQ as well as the snmpd.conf(5) # manual page. #### # First, map the community name "public" into a "security name" # sec.name source community com2sec notConfigUser default public #### # Second, map the security name into a group name: # groupName securityModel securityName group notConfigGroup v1 notConfigUser group notConfigGroup v2c notConfigUser #### # Third, create a view for us to let the group have rights to: # Make at least snmpwalk -v 1 localhost -c public system fast again. # name incl/excl subtree mask(optional) view systemview included .1.3.6.1.2.1.1 view systemview included .1.3.6.1.2.1.25.1.1 #### # Finally, grant the group read-only access to the systemview view. # group context sec.model sec.level prefix read write notif access notConfigGroup "" any noauth exact systemview none none # ----------------------------------------------------------------------------- # Here is a commented out example configuration that allows less # restrictive access. # YOU SHOULD CHANGE THE "COMMUNITY" TOKEN BELOW TO A NEW KEYWORD ONLY # KNOWN AT YOUR SITE. YOU *MUST* CHANGE THE NETWORK TOKEN BELOW TO # SOMETHING REFLECTING YOUR LOCAL NETWORK ADDRESS SPACE. ## sec.name source community #com2sec local localhost COMMUNITY #com2sec mynetwork NETWORK/24 COMMUNITY ## group.name sec.model sec.name #group MyRWGroup any local #group MyROGroup any mynetwork # #group MyRWGroup any otherv3user #... ## incl/excl subtree mask #view all included .1 80 ## -or just the mib2 tree- #view mib2 included .iso.org.dod.internet.mgmt.mib-2 fc ## context sec.model sec.level prefix read write notif #access MyROGroup "" any noauth 0 all none none #access MyRWGroup "" any noauth 0 all all all ############################################################################### # Sample configuration to make net-snmpd RFC 1213. # Unfortunately v1 and v2c don't allow any user based authentification, so # opening up the default config is not an option from a security point. # # WARNING: If you uncomment the following lines you allow write access to your # snmpd daemon from any source! To avoid this use different names for your # community or split out the write access to a different community and # restrict it to your local network. # Also remember to comment the syslocation and syscontact parameters later as # otherwise they are still read only (see FAQ for net-snmp). # # First, map the community name "public" into a "security name" # sec.name source community #com2sec notConfigUser default public # Second, map the security name into a group name: # groupName securityModel securityName #group notConfigGroup v1 notConfigUser #group notConfigGroup v2c notConfigUser # Third, create a view for us to let the group have rights to: # Open up the whole tree for ro, make the RFC 1213 required ones rw. # name incl/excl subtree mask(optional) #view roview included .1 #view rwview included system.sysContact #view rwview included system.sysName #view rwview included system.sysLocation #view rwview included interfaces.ifTable.ifEntry.ifAdminStatus #view rwview included at.atTable.atEntry.atPhysAddress #view rwview included at.atTable.atEntry.atNetAddress #view rwview included ip.ipForwarding #view rwview included ip.ipDefaultTTL #view rwview included ip.ipRouteTable.ipRouteEntry.ipRouteDest #view rwview included ip.ipRouteTable.ipRouteEntry.ipRouteIfIndex #view rwview included ip.ipRouteTable.ipRouteEntry.ipRouteMetric1 #view rwview included ip.ipRouteTable.ipRouteEntry.ipRouteMetric2 #view rwview included ip.ipRouteTable.ipRouteEntry.ipRouteMetric3 #view rwview included ip.ipRouteTable.ipRouteEntry.ipRouteMetric4 #view rwview included ip.ipRouteTable.ipRouteEntry.ipRouteType #view rwview included ip.ipRouteTable.ipRouteEntry.ipRouteAge #view rwview included ip.ipRouteTable.ipRouteEntry.ipRouteMask #view rwview included ip.ipRouteTable.ipRouteEntry.ipRouteMetric5 #view rwview included ip.ipNetToMediaTable.ipNetToMediaEntry.ipNetToMediaIfIndex #view rwview included ip.ipNetToMediaTable.ipNetToMediaEntry.ipNetToMediaPhysAddress #view rwview included ip.ipNetToMediaTable.ipNetToMediaEntry.ipNetToMediaNetAddress #view rwview included ip.ipNetToMediaTable.ipNetToMediaEntry.ipNetToMediaType #view rwview included tcp.tcpConnTable.tcpConnEntry.tcpConnState #view rwview included egp.egpNeighTable.egpNeighEntry.egpNeighEventTrigger #view rwview included snmp.snmpEnableAuthenTraps # Finally, grant the group read-only access to the systemview view. # group context sec.model sec.level prefix read write notif #access notConfigGroup "" any noauth exact roview rwview none ############################################################################### # System contact information # # It is also possible to set the sysContact and sysLocation system # variables through the snmpd.conf file: syslocation Unknown (edit /etc/snmp/snmpd.conf) syscontact Root <root@localhost> (configure /etc/snmp/snmp.local.conf) # Example output of snmpwalk: # % snmpwalk -v 1 localhost -c public system # system.sysDescr.0 = "SunOS name sun4c" # system.sysObjectID.0 = OID: enterprises.ucdavis.ucdSnmpAgent.sunos4 # system.sysUpTime.0 = Timeticks: (595637548) 68 days, 22:32:55 # system.sysContact.0 = "Me <me@somewhere.org>" # system.sysName.0 = "name" # system.sysLocation.0 = "Right here, right now." # system.sysServices.0 = 72 ############################################################################### # Logging # # We do not want annoying "Connection from UDP: " messages in syslog. # If the following option is commented out, snmpd will print each incoming # connection, which can be useful for debugging. dontLogTCPWrappersConnects yes # ----------------------------------------------------------------------------- ############################################################################### # Process checks. # # The following are examples of how to use the agent to check for # processes running on the host. The syntax looks something like: # # proc NAME [MAX=0] [MIN=0] # # NAME: the name of the process to check for. It must match # exactly (ie, http will not find httpd processes). # MAX: the maximum number allowed to be running. Defaults to 0. # MIN: the minimum number to be running. Defaults to 0. # # Examples (commented out by default): # # Make sure mountd is running #proc mountd # Make sure there are no more than 4 ntalkds running, but 0 is ok too. #proc ntalkd 4 # Make sure at least one sendmail, but less than or equal to 10 are running. #proc sendmail 10 1 # A snmpwalk of the process mib tree would look something like this: # # % snmpwalk -v 1 localhost -c public .1.3.6.1.4.1.2021.2 # enterprises.ucdavis.procTable.prEntry.prIndex.1 = 1 # enterprises.ucdavis.procTable.prEntry.prIndex.2 = 2 # enterprises.ucdavis.procTable.prEntry.prIndex.3 = 3 # enterprises.ucdavis.procTable.prEntry.prNames.1 = "mountd" # enterprises.ucdavis.procTable.prEntry.prNames.2 = "ntalkd" # enterprises.ucdavis.procTable.prEntry.prNames.3 = "sendmail" # enterprises.ucdavis.procTable.prEntry.prMin.1 = 0 # enterprises.ucdavis.procTable.prEntry.prMin.2 = 0 # enterprises.ucdavis.procTable.prEntry.prMin.3 = 1 # enterprises.ucdavis.procTable.prEntry.prMax.1 = 0 # enterprises.ucdavis.procTable.prEntry.prMax.2 = 4 # enterprises.ucdavis.procTable.prEntry.prMax.3 = 10 # enterprises.ucdavis.procTable.prEntry.prCount.1 = 0 # enterprises.ucdavis.procTable.prEntry.prCount.2 = 0 # enterprises.ucdavis.procTable.prEntry.prCount.3 = 1 # enterprises.ucdavis.procTable.prEntry.prErrorFlag.1 = 1 # enterprises.ucdavis.procTable.prEntry.prErrorFlag.2 = 0 # enterprises.ucdavis.procTable.prEntry.prErrorFlag.3 = 0 # enterprises.ucdavis.procTable.prEntry.prErrMessage.1 = "No mountd process running." # enterprises.ucdavis.procTable.prEntry.prErrMessage.2 = "" # enterprises.ucdavis.procTable.prEntry.prErrMessage.3 = "" # enterprises.ucdavis.procTable.prEntry.prErrFix.1 = 0 # enterprises.ucdavis.procTable.prEntry.prErrFix.2 = 0 # enterprises.ucdavis.procTable.prEntry.prErrFix.3 = 0 # # Note that the errorFlag for mountd is set to 1 because one is not # running (in this case an rpc.mountd is, but thats not good enough), # and the ErrMessage tells you what's wrong. The configuration # imposed in the snmpd.conf file is also shown. # # Special Case: When the min and max numbers are both 0, it assumes # you want a max of infinity and a min of 1. # # ----------------------------------------------------------------------------- ############################################################################### # Executables/scripts # # # You can also have programs run by the agent that return a single # line of output and an exit code. Here are two examples. # # exec NAME PROGRAM [ARGS ...] # # NAME: A generic name. The name must be unique for each exec statement. # PROGRAM: The program to run. Include the path! # ARGS: optional arguments to be passed to the program # a simple hello world #exec echotest /bin/echo hello world # Run a shell script containing: # # #!/bin/sh # echo hello world # echo hi there # exit 35 # # Note: this has been specifically commented out to prevent # accidental security holes due to someone else on your system writing # a /tmp/shtest before you do. Uncomment to use it. # #exec shelltest /bin/sh /tmp/shtest # Then, # % snmpwalk -v 1 localhost -c public .1.3.6.1.4.1.2021.8 # enterprises.ucdavis.extTable.extEntry.extIndex.1 = 1 # enterprises.ucdavis.extTable.extEntry.extIndex.2 = 2 # enterprises.ucdavis.extTable.extEntry.extNames.1 = "echotest" # enterprises.ucdavis.extTable.extEntry.extNames.2 = "shelltest" # enterprises.ucdavis.extTable.extEntry.extCommand.1 = "/bin/echo hello world" # enterprises.ucdavis.extTable.extEntry.extCommand.2 = "/bin/sh /tmp/shtest" # enterprises.ucdavis.extTable.extEntry.extResult.1 = 0 # enterprises.ucdavis.extTable.extEntry.extResult.2 = 35 # enterprises.ucdavis.extTable.extEntry.extOutput.1 = "hello world." # enterprises.ucdavis.extTable.extEntry.extOutput.2 = "hello world." # enterprises.ucdavis.extTable.extEntry.extErrFix.1 = 0 # enterprises.ucdavis.extTable.extEntry.extErrFix.2 = 0 # Note that the second line of the /tmp/shtest shell script is cut # off. Also note that the exit status of 35 was returned. # ----------------------------------------------------------------------------- ############################################################################### # disk checks # # The agent can check the amount of available disk space, and make # sure it is above a set limit. # disk PATH [MIN=100000] # # PATH: mount path to the disk in question. # MIN: Disks with space below this value will have the Mib's errorFlag set. # Default value = 100000. # Check the / partition and make sure it contains at least 10 megs. #disk / 10000 # % snmpwalk -v 1 localhost -c public .1.3.6.1.4.1.2021.9 # enterprises.ucdavis.diskTable.dskEntry.diskIndex.1 = 0 # enterprises.ucdavis.diskTable.dskEntry.diskPath.1 = "/" Hex: 2F # enterprises.ucdavis.diskTable.dskEntry.diskDevice.1 = "/dev/dsk/c201d6s0" # enterprises.ucdavis.diskTable.dskEntry.diskMinimum.1 = 10000 # enterprises.ucdavis.diskTable.dskEntry.diskTotal.1 = 837130 # enterprises.ucdavis.diskTable.dskEntry.diskAvail.1 = 316325 # enterprises.ucdavis.diskTable.dskEntry.diskUsed.1 = 437092 # enterprises.ucdavis.diskTable.dskEntry.diskPercent.1 = 58 # enterprises.ucdavis.diskTable.dskEntry.diskErrorFlag.1 = 0 # enterprises.ucdavis.diskTable.dskEntry.diskErrorMsg.1 = "" # ----------------------------------------------------------------------------- ############################################################################### # load average checks # # load [1MAX=12.0] [5MAX=12.0] [15MAX=12.0] # # 1MAX: If the 1 minute load average is above this limit at query # time, the errorFlag will be set. # 5MAX: Similar, but for 5 min average. # 15MAX: Similar, but for 15 min average. # Check for loads: #load 12 14 14 # % snmpwalk -v 1 localhost -c public .1.3.6.1.4.1.2021.10 # enterprises.ucdavis.loadTable.laEntry.loadaveIndex.1 = 1 # enterprises.ucdavis.loadTable.laEntry.loadaveIndex.2 = 2 # enterprises.ucdavis.loadTable.laEntry.loadaveIndex.3 = 3 # enterprises.ucdavis.loadTable.laEntry.loadaveNames.1 = "Load-1" # enterprises.ucdavis.loadTable.laEntry.loadaveNames.2 = "Load-5" # enterprises.ucdavis.loadTable.laEntry.loadaveNames.3 = "Load-15" # enterprises.ucdavis.loadTable.laEntry.loadaveLoad.1 = "0.49" Hex: 30 2E 34 39 # enterprises.ucdavis.loadTable.laEntry.loadaveLoad.2 = "0.31" Hex: 30 2E 33 31 # enterprises.ucdavis.loadTable.laEntry.loadaveLoad.3 = "0.26" Hex: 30 2E 32 36 # enterprises.ucdavis.loadTable.laEntry.loadaveConfig.1 = "12.00" # enterprises.ucdavis.loadTable.laEntry.loadaveConfig.2 = "14.00" # enterprises.ucdavis.loadTable.laEntry.loadaveConfig.3 = "14.00" # enterprises.ucdavis.loadTable.laEntry.loadaveErrorFlag.1 = 0 # enterprises.ucdavis.loadTable.laEntry.loadaveErrorFlag.2 = 0 # enterprises.ucdavis.loadTable.laEntry.loadaveErrorFlag.3 = 0 # enterprises.ucdavis.loadTable.laEntry.loadaveErrMessage.1 = "" # enterprises.ucdavis.loadTable.laEntry.loadaveErrMessage.2 = "" # enterprises.ucdavis.loadTable.laEntry.loadaveErrMessage.3 = "" # ----------------------------------------------------------------------------- ############################################################################### # Extensible sections. # # This alleviates the multiple line output problem found in the # previous executable mib by placing each mib in its own mib table: # Run a shell script containing: # # #!/bin/sh # echo hello world # echo hi there # exit 35 # # Note: this has been specifically commented out to prevent # accidental security holes due to someone else on your system writing # a /tmp/shtest before you do. Uncomment to use it. # # exec .1.3.6.1.4.1.2021.50 shelltest /bin/sh /tmp/shtest # % snmpwalk -v 1 localhost -c public .1.3.6.1.4.1.2021.50 # enterprises.ucdavis.50.1.1 = 1 # enterprises.ucdavis.50.2.1 = "shelltest" # enterprises.ucdavis.50.3.1 = "/bin/sh /tmp/shtest" # enterprises.ucdavis.50.100.1 = 35 # enterprises.ucdavis.50.101.1 = "hello world." # enterprises.ucdavis.50.101.2 = "hi there." # enterprises.ucdavis.50.102.1 = 0 # Now the Output has grown to two lines, and we can see the 'hi # there.' output as the second line from our shell script. # # Note that you must alter the mib.txt file to be correct if you want # the .50.* outputs above to change to reasonable text descriptions. # Other ideas: # # exec .1.3.6.1.4.1.2021.51 ps /bin/ps # exec .1.3.6.1.4.1.2021.52 top /usr/local/bin/top # exec .1.3.6.1.4.1.2021.53 mailq /usr/bin/mailq # ----------------------------------------------------------------------------- ############################################################################### # Pass through control. # # Usage: # pass MIBOID EXEC-COMMAND # # This will pass total control of the mib underneath the MIBOID # portion of the mib to the EXEC-COMMAND. # # Note: You'll have to change the path of the passtest script to your # source directory or install it in the given location. # # Example: (see the script for details) # (commented out here since it requires that you place the # script in the right location. (its not installed by default)) # pass .1.3.6.1.4.1.2021.255 /bin/sh /usr/local/local/passtest # % snmpwalk -v 1 localhost -c public .1.3.6.1.4.1.2021.255 # enterprises.ucdavis.255.1 = "life the universe and everything" # enterprises.ucdavis.255.2.1 = 42 # enterprises.ucdavis.255.2.2 = OID: 42.42.42 # enterprises.ucdavis.255.3 = Timeticks: (363136200) 42 days, 0:42:42 # enterprises.ucdavis.255.4 = IpAddress: 127.0.0.1 # enterprises.ucdavis.255.5 = 42 # enterprises.ucdavis.255.6 = Gauge: 42 # # % snmpget -v 1 localhost public .1.3.6.1.4.1.2021.255.5 # enterprises.ucdavis.255.5 = 42 # # % snmpset -v 1 localhost public .1.3.6.1.4.1.2021.255.1 s "New string" # enterprises.ucdavis.255.1 = "New string" # # For specific usage information, see the man/snmpd.conf.5 manual page # as well as the local/passtest script used in the above example. ############################################################################### # Further Information # # See the snmpd.conf manual page, and the output of "snmpd -H".找到以下字段# sec.name source community com2sec notConfigUser default public将source更改为允许通信的ip，public更改为自己想要的通信团体名，默认为public如com2sec notConfigUser 192.168.0.1 test找到以下字段# Finally, grant the group read-only access to the systemview view. # group context sec.model sec.level prefix read write notif #access notConfigGroup "" any noauth exact roview rwview none添加access notConfigGroup "" any noauth exact all none none为只读权限找到以下字段# Make at least snmpwalk -v 1 localhost -c public system fast again. # name incl/excl subtree mask(optional) view systemview included .1.3.6.1.2.1.1 view systemview included .1.3.6.1.2.1.25.1.1添加view systemview included .1为返回所有监控信息重启snmp服务[root@localhost ~]# systemctl restart snmpd 0x02 添加防火墙端口[root@localhost ~]# firewall-cmd --add-port=161/udp --permanent --zone=public success [root@localhost ~]# firewall-cmd --reload success [root@localhost ~]# firewall-cmd --list-all public (active) target: default icmp-block-inversion: no interfaces: ens192 sources: services: dhcpv6-client ssh ports: 161/udp protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules: 添加完防火墙后可用snmp相关工具进行获取snmp信息的测试snmpwalk -v 2c -c public 127.0.0.10x03 问题补充在某台安装snmp过程中碰到如下报错：[root@localhost ~]# yum -y install net-snmp net-snmp-utils Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile Resolving Dependencies --> Running transaction check ---> Package net-snmp.x86_64 1:5.7.2-32.el7 will be installed --> Processing Dependency: net-snmp-libs = 1:5.7.2-32.el7 for package: 1:net-snmp-5.7.2-32.el7.x86_64 --> Processing Dependency: net-snmp-agent-libs = 1:5.7.2-32.el7 for package: 1:net-snmp-5.7.2-32.el7.x86_64 --> Processing Dependency: perl(Data::Dumper) for package: 1:net-snmp-5.7.2-32.el7.x86_64 --> Processing Dependency: libnetsnmptrapd.so.31()(64bit) for package: 1:net-snmp-5.7.2-32.el7.x86_64 --> Processing Dependency: libnetsnmpmibs.so.31()(64bit) for package: 1:net-snmp-5.7.2-32.el7.x86_64 --> Processing Dependency: libnetsnmpagent.so.31()(64bit) for package: 1:net-snmp-5.7.2-32.el7.x86_64 ---> Package net-snmp-utils.x86_64 1:5.7.2-32.el7 will be installed --> Processing Dependency: net-snmp-libs = 1:5.7.2-32.el7 for package: 1:net-snmp-utils-5.7.2-32.el7.x86_64 --> Running transaction check ---> Package net-snmp.x86_64 1:5.7.2-32.el7 will be installed --> Processing Dependency: net-snmp-libs = 1:5.7.2-32.el7 for package: 1:net-snmp-5.7.2-32.el7.x86_64 ---> Package net-snmp-agent-libs.x86_64 1:5.7.2-32.el7 will be installed --> Processing Dependency: net-snmp-libs = 1:5.7.2-32.el7 for package: 1:net-snmp-agent-libs-5.7.2-32.el7.x86_64 ---> Package net-snmp-utils.x86_64 1:5.7.2-32.el7 will be installed --> Processing Dependency: net-snmp-libs = 1:5.7.2-32.el7 for package: 1:net-snmp-utils-5.7.2-32.el7.x86_64 ---> Package perl-Data-Dumper.x86_64 0:2.145-3.el7 will be installed --> Finished Dependency Resolution Error: Package: 1:net-snmp-utils-5.7.2-32.el7.x86_64 (CentOS7.5) Requires: net-snmp-libs = 1:5.7.2-32.el7 Installed: 1:net-snmp-libs-5.7.2-48.el7_8.1.x86_64 (@updates) net-snmp-libs = 1:5.7.2-48.el7_8.1 Available: 1:net-snmp-libs-5.7.2-32.el7.x86_64 (CentOS7.5) net-snmp-libs = 1:5.7.2-32.el7 Error: Package: 1:net-snmp-agent-libs-5.7.2-32.el7.x86_64 (CentOS7.5) Requires: net-snmp-libs = 1:5.7.2-32.el7 Installed: 1:net-snmp-libs-5.7.2-48.el7_8.1.x86_64 (@updates) net-snmp-libs = 1:5.7.2-48.el7_8.1 Available: 1:net-snmp-libs-5.7.2-32.el7.x86_64 (CentOS7.5) net-snmp-libs = 1:5.7.2-32.el7 Error: Package: 1:net-snmp-5.7.2-32.el7.x86_64 (CentOS7.5) Requires: net-snmp-libs = 1:5.7.2-32.el7 Installed: 1:net-snmp-libs-5.7.2-48.el7_8.1.x86_64 (@updates) net-snmp-libs = 1:5.7.2-48.el7_8.1 Available: 1:net-snmp-libs-5.7.2-32.el7.x86_64 (CentOS7.5) net-snmp-libs = 1:5.7.2-32.el7 You could try using --skip-broken to work around the problem You could try running: rpm -Va --nofiles --nodigest将已安装的旧包：net-snmp-libs = 1:5.7.2-48.el7_8.1 net-snmp-libs = 1:5.7.2-48.el7_8.1 net-snmp-libs = 1:5.7.2-48.el7_8.1remove后即可重新正常安装
解决远程桌面：出现身份验证错误/要求的函数不受支持
系统版本：Win10专业版 1909问题描述：在通过mstsc登录某盟的堡垒机的时候出现如下报错：出现身份验证错误/要求的函数不受支持blablabla解决方法：运行gpedit.msc进入组策略。进入计算机配置>管理模板>系统>凭据分配>加密数据库修正。选择启用，更改保护级别为易受攻击后应用。应用后再尝试远程桌面即可正常登录了。PS.若无法找到加密数据库修正，通过找到路径：计算机HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionPoliciesSystem在System文件夹内创建文件夹项：CredSSPParameters然后在Parameters文件夹内，新建 DWORD（32）位值（D），名称为 AllowEncryptionOracle，值为2。
Nginx报错client intended to send too large body
问题描述：迁移完服务器后，发现无法上传大文件，查看Nginx日志发现如下报错[root@localhost ~]# cat /var/log/nginx/error.log 2020/04/16 10:12:40 [error] 14173#14173: *2680 client intended to send too large body: 2045031 bytes, client: 192.168.1.1, server: localhost, request: "POST /index.php?mod=explorer&op=ajax&operation=uploads&container=584 HTTP/1.1", host: "xx.cn", referrer: "http://xx.cn/"看来是Nginx限制了上传文件的大小。解决办法：默认配置完Nginx未配置上传文件大小限制，修改Nginx配置文件,在HTTP{}中添加client_max_body_size字段，设置上传文件大小[root@localhost ~]# vi /etc/nginx/nginx,conf user nginx; worker_processes 1; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; #tcp_nopush on; keepalive_timeout 65; #gzip on; client_max_body_size 100m; include /etc/nginx/conf.d/*.conf; } [root@localhost ~]# nginx -s reload重载Nginx后发现可以正常上传了
新安装的centos7,通过yum安装Nginx，更改/etc/nginx/conf.d下的配置文件中默认root路径/usr/share/nginx/html，发现不管修改为什么路径即使赋予777权限，均提示403：尝试修改Nginx配置文件中的user为root：[root@localhost ~]# cat /etc/nginx/nginx.conf user root; worker_processes 1; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; #tcp_nopush on; keepalive_timeout 65; #gzip on; include /etc/nginx/conf.d/*.conf; }重载Nginx配置，重启Nginx发现问题依旧，查看Nginx状态并检查配置文件：[root@localhost ~]# systemctl status nginx ● nginx.service - nginx - high performance web server Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled) Active: active (running) since 二 2020-04-14 15:28:05 CST; 34min ago Docs: http://nginx.org/en/docs/ Process: 2708 ExecStop=/bin/kill -s TERM $MAINPID (code=exited, status=0/SUCCESS) Process: 2712 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (code=exited, status=0/SUCCESS) Main PID: 2713 (nginx) Tasks: 2 CGroup: /system.slice/nginx.service ├─2713 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf └─2714 nginx: worker process 4月 14 15:28:05 ceshi1 systemd[1]: Starting nginx - high performance web server... 4月 14 15:28:05 ceshi1 systemd[1]: Started nginx - high performance web server. [root@localhost ~]# nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful [root@localhost ~]# ps -ef|grep nginx root 2713 1 0 15:28 ? 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf root 2714 2713 0 15:28 ? 00:00:00 nginx: worker process root 3235 2450 0 16:12 pts/0 00:00:00 grep --color=auto nginx均显示正常，查看Nginx错误信息cat /var/log/nginx/error.log发现有一条13: Permission denied，这就很奇怪了，权限明明是最高的并且Nginx已经是root权限运行了。后面突然想到有个selinux这个玩意，setenforce 0将selinux临时关闭，发现更高Nginx配置文件的root目录生效了Nginx也没有error日志了。下面永久关闭selinux。[root@localhost ~]# sestatus #查看selinux状态 SELinux status: enabled SELinuxfs mount: /sys/fs/selinux SELinux root directory: /etc/selinux Loaded policy name: targeted Current mode: enforcing Mode from config file: enforcing Policy MLS status: enabled Policy deny_unknown status: allowed Max kernel policy version: 31 [root@localhost ~]# cat /etc/selinux/config # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=enforcing # SELINUXTYPE= can take one of three two values: # targeted - Targeted processes are protected, # minimum - Modification of targeted policy. Only selected processes are protected. # mls - Multi Level Security protection. SELINUXTYPE=targeted 将SELINUX=更改为disable，重启后再查看selinux的状态发现已经变成disabled了。
功能介绍ONLYOFFICE是一款集成了文档、电子邮件、事件、任务和客户关系管理工具的开源在线办公套件。其文档管理功能实现了文档的在线编辑、在线预览和协同管理，可用于替代Office365或Google docs。另外，它还提供了CRM、项目管理等功能，非常合适作为企业内部的全员协作Office系统。以下为OnlyOffice的主要功能截图功能概要文档管理项目管理客户关系管理文档在线编辑方法一：docker安装系统要求硬件要求：处理器：单核 2 GHz 以上内 存： 2 GB 以上存储空间： at least 40 GB of free space其他要求： at least 2 GB of swap不同并发活跃用户所需硬件配置：并发用户数最小的硬件服务器配置小于100单核 CPU，2 GB RAM，40 GB可用硬盘空间100-200双核 CPU，2 GB RAM，80 GB可用硬盘空间200-400四核 CPU，4 GB RAM，160 GB可用硬盘空间硬件配置仅供参考。服务器用户的实际数量取决于用户使用的文档的数量，类型和大小。软件需求：OS 内核版本为3.10或更高版本的amd64 Linux发行版其他要求：Docker版本1.10或更高版本安装安装docker:以Centos 7为例，其他的系统请参阅请参阅Docker网站上的安装部分[root@localhost ~]# yum install -y docker [root@localhost ~]# docker -v [root@localhost ~]# systemctl start docker设置开机启动：[root@localhost ~]# systemctl enable docker配置镜像加速器：针对Docker客户端版本大于 1.10.0 的用户，可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器[root@localhost ~]# mkdir -p /etc/docker [root@localhost ~]# tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["http://hub-mirror.c.163.com"] } EOF [root@localhost ~]# systemctl daemon-reload [root@localhost ~]# systemctl restart dockerPS.docker安装后在使用过程中有时会出现编辑文档下载出错的提示，目前并未看到有解决办法。方法二：centos7安装安装依赖关系添加包含最新Node.js包版本的存储库：[root@localhost ~]# curl -sL https://rpm.nodesource.com/setup_6.x | sudo bash -安装最新的NGINX软件包版本要为RHEL/CentOS设置yum存储库，vi /etc/yum.repos.d/nginx.repo使用以下内容创建名为的文件：[nginx] name=nginx repo baseurl=http://nginx.org/packages/centos/7/$basearch/ gpgcheck=0 enabled=1安装NGINX：[root@localhost ~]# yum install nginx -y安装完后无需配置安装EPEL存储库：[root@localhost ~]# yum install epel-release -y安装 CentOS版本中包含的PostgreSQL版本：[root@localhost ~]# yum install postgresql postgresql-server -y初始化PostgreSQL数据库[root@localhost ~]# service postgresql initdb [root@localhost ~]# systemctl enable postgresql打开 IPv4和IPv6本地主机的’信任’认证方法vi /var/lib/pgsql/data/pg_hba.conf在文本编辑器中打开文件,找到该host all all 127.0.0.1/32 ident字符串并将其替换为trust，找到该host all all ::1/128 ident字符串并将其替换为trust：host all all 127.0.0.1/32 trust host all all ::1/128 trust保存更改，重新启动PostgreSQL服务。[root@localhost ~]# systemctl restart postgresql创建PostgreSQL数据库和用户：首先运行cd /tmp以防止 could not change directory to “/root “从根目录运行的警告。然后必须创建数据库和用户onlyoffice：sudo -u postgres psql -c "CREATE DATABASE onlyoffice;" sudo -u postgres psql -c "CREATE USER onlyoffice WITH password 'onlyoffice';" sudo -u postgres psql -c "GRANT ALL privileges ON DATABASE onlyoffice TO onlyoffice;"安装Redis:启动redis服务并启用在启动时启动：[root@localhost ~]# yum install redis -y [root@localhost ~]# systemctl start redis [root@localhost ~]# systemctl enable redis安装RabbitMQ:启动RabbitMQ服务并启用在启动时启动[root@localhost ~]# yum install rabbitmq-server -y [root@localhost ~]# systemctl start rabbitmq-server [root@localhost ~]# systemctl enable rabbitmq-server安装 Document Server添加 Document Server 存储库使用以下命令添加yum Document Server存储库：[root@localhost ~]# yum install http://download.onlyoffice.com/repo/centos/main/noarch/onlyoffice-repo.noarch.rpm安装 Document Server运行相关服务并在启动时启用它们：[root@localhost ~]# yum install onlyoffice-documentserver -y [root@localhost ~]# systemctl start supervisord [root@localhost ~]# systemctl enable supervisord [root@localhost ~]# systemctl start nginx [root@localhost ~]# systemctl enable nginx默认情况下，Document Server使用端口80侦听传入连接。从版本4.3开始，可以更改它的端口为此，您需要编辑运行以下命令的DS_PORT环境变量：[root@localhost ~]# export DS_PORT=PORT_NUMBERPORT_NUMBER替换为端口号。配置DocumentServer运行documentserver-configure.sh脚本：将被要求指定PostgreSQL，Redis和RabbitMQ连接参数。使用以下数据：[root@localhost ~]# cd /usr/bin/ [root@localhost bin]# sh documentserver-configure.sh Configuring database access... Host: localhost Database name: onlyoffice User: onlyoffice Password: Trying to establish PostgreSQL connection... OK Installing PostgreSQL database... OK Configuring redis access... Host: localhost Trying to establish redis connection... OK Configuring AMQP access... Host: localhost User: guest Password: Trying to establish AMQP connection... OK Restarting services... OK添加防火墙例外:[root@localhost ~]# firewall-cmd --zone=public --add-port=80/tcp --permanent [root@localhost ~]# firewall-cmd --reload重新启动服务器以使更改生效。当出现如下图时only office部署成功：
安恒堡垒机使用VNC运维带图形界面的linux主机配置
前言明御运维审计与风险控制系统（简称“DASUSM”）是安恒信息在多年运维安全管理的理论和实践经验积累的基础上，结合各类法律法规对运维审计的要求，采用B/S架构，集“身份认证、账户管理、控制权限、日志审计”于一体，支持多种字符终端协议、文件传输协议、图形终端协议、远程应用协议的安全监控与历史查询，具备全方位运维风险控制能力的统一安全管理与审计产品。配置步骤linux 上使用yum安装vnc server设置vnc server的连接密码及查看桌面号查看桌面号对应的端口是否起来本机测试到Linux的连接配置ping测试没问题但提示超时，一般为防火墙问题Linux的防火墙上放行对应端口重启防火墙使其配置生效本机测试连接正常堡垒机上设置主机账户，进行授权关系后，点击主机运维可正常运维
前言天擎终端安全管理系统是面向政府、企业、金融、军队、医疗、教育、制造业等大型企事业单位推出的集防病毒与终端安全管控于一体的解决方案。天擎终端安全管理系统，以大数据技术为支撑、以可靠服务为保障，它能够为用户精确检测已知病毒木马、未知恶意代码，有效防御APT攻击，并提供终端资产管理、漏洞补丁管理、安全运维管控、网络安全准入、移动存储管理、终端安全审计、XP安全防护诸多功能。很多甲方的网络要接入都要强制安装360天擎，卸载退出都需要密码。作为甲方密码忘了我管理后台改下密码就好了，要是乙方装了又不能退出就麻烦了。卸载/退出找到360天擎的安装目录C:\Program Files (x86)\360\360Safe\EntClient\conf通过编辑器打开目录下的EntBase.dat文件[base] persistent_connetion=close show_tip=1 net_env=1 communication_interval=900 [api_frequency] checkupdate=180 get_client_tasks=180 getconf=180 svr_init_info=180 update_client_info=60 [protect] uipass= qtpass= [admin] name= phone= mail=将uipass和qtpass字段置空后保存，若权限不够可通过自带的文件粉碎助手将文件粉碎，或进安全模式更改文件。这个时候再重新卸载360天擎就可直接卸载无需密码了。
在做Windows基线加固的时候，经常会有一项关闭高危端口，按照加固手册来，往往只是通过防火墙等方式限制入站出站，通过netstat -an发现135、445等端口依旧在监听状态。关闭135端口运行dcomcnfg，打开“组件服务”→“计算机”，在“我的电脑”上右键点击，选“属性”；然后点默认属性，把“在此计算机上启用分布式COM（E）”的勾去掉，接着返回到“默认协议”，移除“面向连接的TCP/IP”协议。开始菜单-运行-输入regedit，进入注册表，定位到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Rpc右键点击Rpc,新建——项——输入Internet后重启。重启之后再用netstat -an检查就会发现135端口已不再监听。关闭445端口打开注册表定位到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT\Parameters右键新建一个dword值，若是你系统是32位，就建32的dword的，64位的就选择新建对应64的dword值，然后将值设为0。部分系统需要关闭server服务，开始菜单-运行，输入services.msc，进入服务，然后，找到server服务，将这个服务的启动类型更改为“禁用”，服务状态更改为“停止”，再应用（更改完后需重启）。重启之后再用netstat -an检查就会发现445端口已不再监听。注意事项彻底关闭高危端口可能导致系统部分服务无法运行，如计划任务、磁盘碎片等。如均无需使用这些功能，可进行相关操作。
问题出现早上上班来看到几台Linux（centos、Redhat）服务器离线了，上了平台看一下，centos直接黑屏，Redhat倒是没看出有啥问题，但是无法输入命令，貌似没啥操作空间，只能先重启查下日志了。定位问题查了一下日志，发现离线的时间都一样，隐约有点不好的感觉。几台都强制重启后发现没有一台起得来。进去一看无法进入系统出现如下提示：***an error occurred during the file system check ***dropping you to a shell;the system will reboot ***when you leave the shell. ***warningive root password for maintenance(or type Control-D to continue)大致就是系统在校验文件的时候有问题。查了一下出现以上提示可能由于异常关机或硬盘逻辑错误，会导致linux无法启动，无法进入操作系统。看了一下日志那个时间点并没有人操作服务器，这时候看到存储有报警，一看发现存储的双活故障了，故障时间点跟服务器挂掉的时间点刚好吻合。解决办法对于存储：同步双活数据，导出日志交由厂商处理。对于服务器：输入服务器root用户的密码，回车，进入命令操作界面。输入fsck -y 回车 ，即开始修复文件系统。时间根据硬盘的大小，在10分钟~几个小时不等。修复完文件系统可能会丢失一些文件，丢失的文件在相应分区的lost+found目录。修复完成后重启，服务器恢复正常。补充：关于e2fsck命令的翻译:e2fsck(ext3/2 file system check) 功能说明：检查ext3/2文件系统的正确性语法：e2fsck -acCdfFnprsStvVy-B <区块大小>-L <文件> e2fsck执行后的传回值及代表意义如下 0 没有任何错误发生
前言有朋友碰到疑似环路问题，在问关于生成树的配置，其实碰到环路也未必需要用到生成树，大部分厂商的交换机都有环路检测功能。环路检测产生背景网络连接错误或配置错误都容易导致二层网络中出现转发环路，使设备对广播、组播以及未知单播报文进行重复发送，造成网络资源的浪费甚至导致网络瘫痪。为了能够及时发现二层网络中的环路，以避免对整个网络造成严重影响，需要提供一种检测机制，使网络中出现环路时能及时通知用户检查网络连接和配置情况，这种机制就是环路检测机制。当网络中出现环路时，环路检测机制通过生成日志信息（请参见“网络管理和监控配置指导”中的“信息中心”）来通知用户，并可根据用户事先的配置来选择是否关闭出现环路的端口。环路检测运行机制环路检测时间间隔由于网络时刻处于变化中，因此环路检测是一个持续的过程，它以一定的时间间隔发送环路检测报文来确定各端口是否出现环路、以及存在环路的端口上是否已消除环路等，这个时间间隔就称为环路检测的时间间隔。环路检测处理模式环路检测的处理模式是指当系统检测到端口出现环路时的处理方式，包括以下几种：Block模式：当系统检测到端口出现环路时，除了生成日志信息外，还会禁止端口学习MAC地址并将端口阻塞。No-learning模式：当系统检测到端口出现环路时，除了生成日志信息外，还会禁止端口学习MAC地址。Shutdown模式：当系统检测到端口出现环路时，除了生成日志信息外，还会自动关闭该端口，使其不能收发任何报文。被关闭的端口将在shutdown-interval命令（请参考“基础配置命令参考”中的“设备管理”）所配置的时间之后自动恢复。缺省情况下，系统不采用上述任何一种模式，当系统检测到端口出现环路时，除了生成日志信息外不对该端口进行任何处理。端口状态自动恢复在Block模式和No-learning模式下，当设备检测到某端口出现环路后，若在三倍的环路检测时间间隔内仍未收到环路检测报文，就认为该端口上的环路已消除，自动将该端口恢复为正常转发状态，并通知给用户。这个过程就是端口状态的自动恢复过程。在Shutdown模式下，出现环路的端口先被自动关闭，然后在shutdown-interval命令所配置的时间之后自动恢复。如果此时环路尚未消除，该端口将被再次关闭，然后恢复……如此往复直至环路消除。环路检测典型配置举例组网需求三台设备Device A、Device B和Device C组成一个物理上的环形网络。通过在Device A上配置环路检测功能，使系统能够自动关闭Device A上出现环路的端口，并通过打印日志信息来通知用户检查网络。组网图配置步骤(1)配置Device A创建VLAN 100，并全局开启该VLAN内的环路检测功能。<DeviceA> system-view [DeviceA] vlan 100 [DeviceA–vlan100] quit [DeviceA] loopback-detection global enable vlan 100配置端口GigabitEthernet1/0/1和GigabitEthernet1/0/2为Trunk类型，并允许VLAN 100通过。[DeviceA] interface gigabitethernet 1/0/1 [DeviceA-GigabitEthernet1/0/1] port link-type trunk [DeviceA-GigabitEthernet1/0/1] port trunk permit vlan 100 [DeviceA-GigabitEthernet1/0/1] quit [DeviceA] interface gigabitethernet 1/0/2 [DeviceA-GigabitEthernet1/0/2] port link-type trunk [DeviceA-GigabitEthernet1/0/2] port trunk permit vlan 100 [DeviceA-GigabitEthernet1/0/2] quit全局配置环路检测的处理模式为Shutdown模式。[DeviceA] loopback-detection global action shutdown配置环路检测的时间间隔为35秒。[DeviceA] loopback-detection interval-time 35(2)配置Device B创建VLAN 100。<DeviceB> system-view [DeviceB] vlan 100 [DeviceB–vlan100] quit配置端口GigabitEthernet1/0/1和GigabitEthernet1/0/2为Trunk类型，并允许VLAN 100通过。[DeviceB] interface gigabitethernet 1/0/1 [DeviceB-GigabitEthernet1/0/1] port link-type trunk [DeviceB-GigabitEthernet1/0/1] port trunk permit vlan 100 [DeviceB-GigabitEthernet1/0/1] quit [DeviceB] interface gigabitethernet 1/0/2 [DeviceB-GigabitEthernet1/0/2] port link-type trunk [DeviceB-GigabitEthernet1/0/2] port trunk permit vlan 100 [DeviceB-GigabitEthernet1/0/2] quit(3)配置Device C创建VLAN 100。<DeviceC> system-view [DeviceC] vlan 100 [DeviceC–vlan100] quit配置端口GigabitEthernet1/0/1和GigabitEthernet1/0/2为Trunk类型，并允许VLAN 100通过。[DeviceC] interface gigabitethernet 1/0/1 [DeviceC-GigabitEthernet1/0/1] port link-type trunk [DeviceC-GigabitEthernet1/0/1] port trunk permit vlan 100 [DeviceC-GigabitEthernet1/0/1] quit [DeviceC] interface gigabitethernet 1/0/2 [DeviceC-GigabitEthernet1/0/2] port link-type trunk [DeviceC-GigabitEthernet1/0/2] port trunk permit vlan 100 [DeviceC-GigabitEthernet1/0/2] quit4.验证配置当配置完成后，系统在一个环路检测时间间隔内在Device A的端口GigabitEthernet1/0/1和GigabitEthernet1/0/2上都检测到了环路，于是将这两个端口自动关闭，并打印了如下日志信息：[DeviceA] %Feb 24 15:04:29:663 2013 DeviceA LPDT/4/LPDT_LOOPED: Loopback exists on GigabitEthernet1/0/1. %Feb 24 15:04:29:667 2013 DeviceA LPDT/4/LPDT_LOOPED: Loopback exists on GigabitEthernet1/0/2. %Feb 24 15:04:44:243 2013 DeviceA LPDT/5/LPDT_RECOVERED: Loopback on GigabitEthernet1/0/1 recovered. %Feb 24 15:04:44:248 2013 DeviceA LPDT/5/LPDT_RECOVERED: Loopback on GigabitEthernet1/0/2 recovered.使用display loopback-detection命令可以查看Device A上环路检测的配置和运行情况：显示Device A上环路检测的配置和运行情况。[DeviceA] display loopback-detection Loopback detection is enabled. Loopback detection interval is 35 second(s). No loopback is detected.由此可见，Device A上并未显示在端口GigabitEthernet1/0/1和GigabitEthernet1/0/2上检测到环路，这是由于环路检测功能运行在Shutdown模式下，端口GigabitEthernet1/0/1和GigabitEthernet1/0/2上出现环路后均已被自动关闭，因此这两个端口上的环路已消除。此时，使用display interface命令分别查看Device A上端口GigabitEthernet1/0/1和GigabitEthernet1/0/2的状态信息：显示Device A上端口GigabitEthernet1/0/1的状态信息。[DeviceA] display interface gigabitethernet 1/0/1 GigabitEthernet1/0/1 current state: DOWN (Loopback detection down)显示Device A上端口GigabitEthernet1/0/2的状态信息。[DeviceA] display interface gigabitethernet 1/0/2 GigabitEthernet1/0/2 current state: DOWN (Loopback detection down)由此可见，端口GigabitEthernet1/0/1和GigabitEthernet1/0/2均已被环路检测模块自动关闭。
问题描述今天接到下面不同区域反馈终端能够通过DHCP获取到地址，由于所有终端均为手动设置的静态ip，怀疑下面有人将路由器一类的带DHCP功能的设备接入到网络中。问题定位核心上配了个相同的VLAN口接入笔记本发现能够自动获取到地址，登录获取到的地址网关，发现是一台tplink路由器。试了几个密码都进不去，通过arp -a查看路由器mac，再到交换机上根据mac表排查具体从哪个端口上来的，定位到区域，遂通报之。杜绝问题再次发生为防止问题再次出现，将所有交换机配置上DHCP snooping，并不设置trust端口。这样即使有人乱接设备DHCP报文也无法通过VLAN透传。贴一个配置案例组网需求Switch B通过以太网端口GigabitEthernet1/0/1连接到合法DHCP服务器，通过以太网端口GigabitEthernet1/0/3连接到非法DHCP服务器，通过GigabitEthernet1/0/2连接到DHCP客户端。要求：· 与合法DHCP服务器相连的端口可以转发DHCP服务器的响应报文，而其他端口不转发DHCP服务器的响应报文。· 记录DHCP-REQUEST报文和信任端口收到的DHCP-ACK报文中DHCP客户端IP地址及MAC地址的绑定信息。组网图图5-3 DHCP Snooping组网示意图配置步骤全局开启DHCP Snooping功能。<SwitchB> system-view[SwitchB] dhcp snooping enable[SwitchB] dhcp enable设置GigabitEthernet1/0/1端口为信任端口。[SwitchB] interface gigabitethernet 1/0/1[SwitchB-GigabitEthernet1/0/1] dhcp snooping trust[SwitchB-GigabitEthernet1/0/1] quit在GigabitEthernet1/0/2上开启DHCP Snooping表项功能。[SwitchB] interface gigabitethernet 1/0/2[SwitchB-GigabitEthernet1/0/2] dhcp snooping binding record[SwitchB-GigabitEthernet1/0/2] quit验证配置配置完成后，DHCP客户端只能从合法DHCP服务器获取IP地址和其它配置信息，非法DHCP服务器无法为DHCP客户端分配IP地址和其他配置信息。且使用display dhcp snooping binding可查询到获取到的DHCP Snooping表项。
深信服设备U盘恢复控制台密码方法（不支持AC找回）：1、新建文件名为为：reset-password.txt的文件拷贝到U盘根目录（U盘格式必须为FAT32）2、插入U盘，重启设备3、当设备的LED红灯熄灭之后，拔出U盘4、查看U盘中的结果文件reset-password.log，若恢复成功在该文件中记录恢复后的控制台密码PS.txt文件必须在U盘的根目录下；U盘可以为单分区或多分区。单分区的U盘格式必须为FAT32；多分区U盘必须把txt文件放在第一个分区，且第一个分区格式必须为FAT32。
移动云mas设置在移动云mas中新建短信接口，IP地址一栏填写VPN或AC访问云mas平台的公网IP。在短信接入用户管理中下载签名文档。深信服SSLVPN在SSLVPN-认证设置-辅助认证-短信验证码各字段对应签名文档中的字段如下：VPN/AC字段云mas签名字段短信网关类型中国移动V2短信网关服务器地址联系400获取短信网关服务器端口联系400获取企业代码短信接口用户名业务代码签名编码SP接入号服务代码网关编号留空登录账号短信接口用户名登录口令短信接口密码填写完毕后发送测试短信，测试短信发送成功即对接云mas成功。深信服AC在AC中系统管理-系统配置-高级配置-通知设置-短信通知服务器新增填写完毕后发送测试短信，测试短信发送成功即对接云mas成功。
产品线主模块一级子模块二级子模块对应操作高危风险说明SSL系统设置网络配置部署模式更新网口IP在线VPN用户会断开，立即生效时会有提示SSL系统设置网络配置多线路更改或删除IPSec多线路传输配置重启所有服务，若配置错误可导致WAN口方向登录不上设备，需通过LAN口地址登录设备或者直连设备删除IPSec多线路配置恢复；立即生效时会有提示SSL系统设置网络配置多线路更改或删除SSL多线路配置重启SSLVPN服务。立即生效时会有提示SSL系统设置网络配置本地子网更改或删除本地子网配置重启IPSEC VPN服务。立即生效无提示，直接重启DLAN服务;SSL系统设置系统配置日期与时间更改时间配置/NTP设置（包括同步配置）重启所有服务。保存时会有提示SSL系统设置系统配置外置数据中心更改外置数据中心配置重启所有服务。立即生效时会有提示SSL系统设置系统配置设备证书更新设备证书重启所有服务。立即生效时会有提示SSL系统设置系统选项接入选项修改http/https端口或者启用禁用http端口重启SSLVPN服务。立即生效时会有提示SSL系统设置系统选项接入选项启用L2TP接入服务自动关闭标准IPSEC VPN。启用按钮旁有备注，请仔细阅读SSL系统设置系统选项虚拟IP池更改或删除虚拟IP池配置重启虚拟IP分配服务，所有用户20S内无法获取虚拟IP，20S后恢复。立即生效时有提示SSL系统设置系统选项资源服务选项修改web资源资源访问模式重启SSLVPN服务。设备无提示，会直接重启svpn服务SSL系统设置系统选项资源服务选项修改TCP资源资源访问模式重启SSLVPN服务。设备无提示，会直接重启svpn服务SSL系统设置系统选项资源服务选项修改L3VPN资源资源访问模式、修改高级设置参数/修改传输协议重启L3VPN服务。设备无提示SSL系统设置网络传输优化传输优化修改WEB服务压缩重启SSLVPN服务，保存有提示；SSL系统设置登录策略登录策略修改页面选择登录模板、启用虚拟门户重启SSLVPN服务，点击立即生效有提示SSL系统设置集群部署集群部署设置禁用集群若分发器禁用集群，集群发生切换，SSL用户会掉线，IPSEC VPN中断重连。若真实服务器禁用集群，调度给真实服务器的用户会掉线;禁用集群的时候，点击“保存”会提示重启服务SSL系统设置分布式部署分布式部署设置禁用分布式部署集群+分布式集群环境禁用分布式集群，会自动退出集群SSLSSLVPN设置认证设置证书与USB-KEY认证更新内置或者外置CA证书重启SSLVPN服务，点击立即生效有提示SSLSSLVPN设置企业移动管理移动设备管理修改移动设备管理客户端接入地址修改移动设备管理客户端接入地址，立即生效时会有提示；SSLSSLVPN设置应用商店设置修改应用商店接入地址重启SSLVPN服务，若配置错误awork接入之后在应用商店无法看到下发的APP。立即生效时会有提示；SSLIPSECVPN设置基本设置基本设置修改IPSECVPN基本设置参数重启IPSEC VPN服务。点击确认有提示SSLIPSECVPN设置连接管理连接管理修改IPSECVPN传输模式重启IPSEC VPN服务。点击确认有提示SSLIPSECVPN设置虚拟IP池虚拟IP池修改IPSECVPN虚拟IP池配置重启IPSEC VPN服务。点击确认有提示SSLIPSECVPN设置第三方对接第三方对接修改第一阶段、第二阶段配置标准IPSEC会重连，修改哪个阶段就重连哪个阶段。设备无提示SSLIPSECVPN设置第三方对接安全选项修改IPSECVPN安全选项配置重启IPSEC VPN服务。点击确认有提示SSLIPSECVPN设置VPN接口VPN接口设置修改VPN内网接口设置以及本机VPN接口设置重启IPSEC VPN服务。点击确认有提示SSL防火墙设置防DOS攻击防DOS攻击填写dos攻击内网防护网段，且内网网段列表添加不全或错误导致内网断网，设备登录不了；设备无提示说明；SSL系统维护重启/重启服务/关机重启/重启服务重启操作重启所有服务SSL系统维护备份配置/恢复备份配置/恢复导入配置重启所有服务。设备有提示
AF接入网络后，开启了相应策略后，出现访问异常。在“系统维护“--”数据包拦截日志与直通”，设置开启条件：如能确定外网测试电脑，就设置外网测试电脑IP；如无法确认外网测试电脑，那就配置服务器IP。 开启直通了，会打出拒绝日志，同时去访问的数据会被策略放通、不被策略拦截。除以下功能：DOS/DDOS防护中的基于数据包攻击和异常数据报文检测、网页防篡改、http与ftp隐藏4个功能外，其余策略拦截数据都会被放通。开启直通后，访问正常后，就看拒绝日志；常见丢包日志：丢包来源丢包标记解释未知unknown未知情况proxykvfilter杀毒模块丢包标记sslssldriverssl协议握手失败，出现在web过滤中https中的业务wdosdosckdos/ddos防护丢包标记fluxlogfluxlog连接数控制丢包标记app controlappcontrol应用控制丢包标记url filterwebfilterweb 过滤丢包标记ips center 或 proxyipsips模块丢包标记proxywafwaf模块丢包标记proxyproxy抓包模块丢包，常见为ips，waf，apt，杀毒，防篡改模块丢包aifwaifw防火墙联动丢包标记开启直通后，网站访问正常，则可判断为相应策略做了拒绝。根据丢包模块，找到相应功能模块。开启的策略，开启“审计”，记录被策略拦截的日志信息。去内置数据中心，查看相应模块的拒绝日志信息：跟根据源IP或目的IP判断。查看拒绝的详细信息，是被那条策略的那个规则做的拒绝。找的对应的策略名称与规则后，再进行策略调整。调整完策略后，要关闭直通与拒绝列表。