41、网络安全工作与X窗口管理指南

网络安全工作与X窗口管理指南

1. 网络安全工作

1.1 修改密码短语

要修改密码短语,可以使用 ssh-keygen 命令并加上 -p 选项。不过,在修改之前,你必须提供旧的密码短语,以防止未经授权的用户更改你的密码短语。示例如下:

oracle@BLSOL01:~$ ssh-keygen -p
Enter file in which the key is (/export/home/oracle/.ssh/id_rsa):
Enter old passphrase:
Key has comment '/export/home/oracle/.ssh/id_rsa'
Enter new passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved with the new passphrase.

1.2 公钥认证的安全风险

通过SSH连接到远程Linux/Solaris服务器时,使用公钥进行身份验证可能存在安全风险。例如,如果其他操作系统用户可以修改你的 $HOME/.ssh/authorized_keys 文件,他们可以将自己的公钥附加到该文件中,从而无需你的密码即可登录到你在远程服务器上的账户。

为了提高安全性,建议在创建公钥时设置密码短语,并且不要与任何人共享该密码短语。同时,运行 chmod 700 $HOME 命令,确保 $HOME 目录下的目录和文件只有所有者可以读写和执行,防止其他用户查看和修改这些文件。

成功登录后,可以运行以下命令验证远程服务器的主机名和用户名:

oracle@BLSOL02:~$ echo $HOSTNAME
BLSOL02
oracle@BLSOL02:~$ echo $USER
oracle

1.3 配置无提示登录

问题描述

希望在通过SSH连接到远程Linux/Solaris服务器时,无需提供远程操作系统用户的密码和公钥的密码短语即可登录。

解决方案

假设本地服务器为BLSOL01,远程服务器为BLSOL02,操作系统用户名为oracle。要实现无提示登录,可以按照以下步骤操作:
1. 在本地服务器BLSOL01上,为要发起SSH连接的操作系统用户创建公钥。
2. 运行SSH代理并将输出保存到 $HOME/ssh-agent.sh 文件中:

oracle@BLSOL01:~$ /usr/bin/ssh-agent > $HOME/ssh-agent.sh
  1. 运行 $HOME/ssh-agent.sh 脚本,设置环境变量 SSH_AUTH_SOCK SSH_AGENT_PID
oracle@BLSOL01:~$ source $HOME/ssh-agent.sh
Agent pid 4566
  1. 运行 ssh-add 命令,并提供在本地服务器上创建公钥时设置的密码短语:
oracle@BLSOL01:~$ /usr/bin/ssh-add
Enter passphrase for /export/home/oracle/.ssh/id_rsa:
Identity added: /export/home/oracle/.ssh/id_rsa (/export/home/oracle/.ssh/id_rsa)
  1. 现在,本地服务器上的用户oracle可以无需提供操作系统用户密码和公钥密码短语,直接登录到远程服务器BLSOL02:
oracle@BLSOL01:~$ ssh BLSOL02
Last login: Wed Aug 19 20:41:48 2015 from blsol01
Oracle Corporation      SunOS 5.11      11.2    June 2014
oracle@BLSOL02:~$
工作原理

在前面的方法中,虽然使用公钥进行身份验证,但仍需要输入创建公钥时生成的密码短语。为了实现完全无提示登录,需要运行 ssh-agent ssh-add 命令。

ssh-agent 命令会创建一个套接字,并缓存私钥的密码短语,同时在 /tmp 目录下创建一个新的目录,该目录由环境变量 SSH_AUTH_SOCK 指定。 ssh-add 命令会将RSA和DSA身份添加到SSH代理中。这样,在连接远程服务器时,就不会再提示输入密码或密码短语。

可以使用以下命令验证密钥指纹:

oracle@BLSOL01:~$ /usr/bin/ssh-add -l
2048 8b:de:0e:b3:22:de:77:3b:fa:37:ff:90:96:22:8a:60 /export/home/oracle/.ssh/id_rsa (RSA)

oracle@BLSOL01:~$ /usr/bin/ssh-keygen -l -f $HOME/.ssh/id_rsa
2048 8b:de:0e:b3:22:de:77:3b:fa:37:ff:90:96:22:8a:60 /export/home/oracle/.ssh/id_rsa.pub

要删除SSH代理中呈现的身份,可以使用 ssh-add 命令并加上 -d 选项;如果要删除所有身份,则使用 -D 选项:

oracle@BLSOL01:~$ /usr/bin/ssh-add -d
Identity removed: /export/home/oracle/.ssh/id_rsa (/export/home/oracle/.ssh/id_rsa.pub)

为了实现无提示登录,关键是要确保在通过SSH连接之前,环境变量 SSH_AUTH_SOCK 指向正确的路径。否则,当你退出shell或注销系统后,再次连接时可能会再次提示输入密码短语。

可以通过运行 ssh-agent 命令并将输出保存到 $HOME/ssh-agent.sh 文件中,在连接远程服务器之前,运行该脚本以设置 SSH_AUTH_SOCK 环境变量。为了在cron作业中调度 ssh scp 命令,建议在 $HOME/.bashrc 文件中添加以下内容:

if [ -f $HOME/ssh-agent.sh ]; then
  source $HOME/ssh-agent.sh > /dev/null
fi

如果配置正确但仍然提示输入密码短语,则需要进行故障排除。首先,验证SSH代理的操作系统进程是否仍然活跃,以及环境变量是否设置正确。可以使用 ps -ef | grep ssh-agent 命令确定SSH代理的PID:

oracle@BLSOL01:~$ ps -ef | grep ssh-agent
bslopuz  1639  1601   0   Aug 17 ?           0:01 /usr/bin/ssh-agent -- gnome-session
oracle  4566     1   0 20:44:03 ?           0:00 /usr/bin/ssh-agent

使用 env | grep SSH 命令显示环境变量,确保 SSH_AGENT_PID 的值与SSH代理的PID相同:

oracle@BLSOL01:~$ env | grep SSH
SSH_AGENT_PID=4566
SSH_AUTH_SOCK=/tmp/ssh-XXXXoGaO6i/agent.4565

还需要验证环境变量 SSH_AUTH_SOCK 指向的路径是否存在:

oracle@BLSOL01:~$ ls -l /tmp/ssh-XXXXoGaO6i/agent.4565
srw-------   1 oracle   staff          0 Aug 19 20:44 /tmp/ssh-XXXXoGaO6i/agent.4565

无提示登录配置流程图

graph TD;
    A[创建公钥] --> B[运行ssh-agent并保存输出];
    B --> C[运行ssh-agent.sh设置环境变量];
    C --> D[运行ssh-add添加身份];
    D --> E[无提示登录远程服务器];

2. X窗口管理

2.1 X窗口系统概述

许多数据库管理员认为,大多数Linux/Solaris服务器即使托管Oracle数据库,也不需要X窗口系统。实际上,可以使用文本控制台管理Oracle数据库,而无需图形控制台。但是,对于从Windows环境迁移过来的数据库管理员来说,通过命令行输入和记忆操作系统、SQL和RMAN命令可能会比较困难。如果你更喜欢运行基于GUI的程序,如使用DBCA创建Oracle数据库,那么了解X窗口系统将很有帮助。

在Linux/Solaris环境中,X客户端和X服务器可以托管在同一台计算机上,也可以分别位于网络中的不同计算机上。不过,其术语与传统的客户端/服务器环境有所不同。例如,在X窗口系统中,你在客户端PC上运行的用于与应用程序交互的程序实际上是X服务器,而运行在远程机器上的应用程序则是客户端。

2.2 配置X服务器

问题描述

希望在Linux/Solaris服务器上配置X窗口服务器,以运行基于GUI的应用程序,如DBCA创建Oracle数据库。

解决方案

要在Linux/Solaris服务器上设置X窗口服务器,需要编辑 xorg.conf 配置文件,该文件通常位于 /etc/X11 目录下。有两种方法可以编辑该文件:
- 直接修改 /etc/X11/xorg.conf 文件。
- 运行 Xorg 应用程序。

可以使用 Xorg 命令并加上 -configure 选项来创建一个临时配置文件 /root/xorg.conf.new

# /usr/bin/Xorg -configure

X.Org X Server 1.14.5
Release Date: 2013-12-12
X Protocol Version 11, Revision 0
Build Operating System: SunOS 5.11 i86pc
Current Operating System: SunOS BLSOL01 5.11 11.2 i86pc
Solaris ABI: 64-bit
Current version of pixman: 0.29.2
        Before reporting problems, check http://support.oracle.com/
        to make sure that you have the latest version.
Markers: (--) probed, (**) from config file, (==) default setting,
        (++) from command line, (!!) notice, (II) informational,
        (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(==) Log file: "/var/log/Xorg.0.log", Time: Fri Nov 13 00:38:29 2015
List of video drivers:
        intel
        openchrome
        r128
        vmware
        mga
        vboxvideo
        radeon
        cirrus
        ast
        mach64
        ati
        vesa
(++) Using config file: "/root/xorg.conf.new"
(==) Using config directory: "/etc/X11/xorg.conf.d"
(==) Using system config directory "/usr/share/X11/xorg.conf.d"
Number of created screens does not match number of detected devices.
  Configuration failed.
(EE) Server terminated with error (2). Closing log file.

在运行 Xorg -configure 时,可能会遇到错误消息“Fatal server error: Server is already active for display 0. If this server is no longer running, remove /tmp/.X0-lock and start again.”,此时需要删除该文件以避免错误。

可以使用 X -config /root/xorg.conf.new 命令测试新的配置文件。如果X服务器能够正常运行,则将该文件复制到 /etc/X11/xorg.conf

cp /root/xorg.conf.new /etc/X11/xorg.conf
工作原理

当启动X服务器时,它会读取位于 /etc/X11 目录下的 xorg.conf 文件。该文件包含了Linux/Solaris服务器运行X窗口系统时的系统资源、显卡、键盘、鼠标和显示器的配置信息。

xorg.conf 文件中,只需包含发生更改的部分,未指定的部分将使用默认设置。此外,还会从 /etc/X11/xorg.conf.d 目录下的文件中读取额外的配置内容。

在编辑 xorg.conf 文件时,不建议手动修改,除非你对更改有足够的把握。无论采用哪种方法,在修改之前都应该备份该文件,以便在新的更改不起作用时可以恢复到原始设置。

在排查X服务器问题时,要检查日志文件 /var/log/Xorg.0.log ,以及Linux系统的 /var/log/messages 和Solaris系统的 /var/adm/messages

2.3 启动X服务器

问题描述

希望在Linux/Solaris服务器上启动X服务器,以运行基于GUI的软件应用程序。

解决方案
Solaris服务器
  • 运行 svcs 命令验证GDM服务的状态:
# svcs gdm
STATE          STIME    FMRI
disabled        1:25:37 svc:/application/graphical-login/gdm:default
  • 如果GDM服务处于禁用状态,则运行以下命令启用它:
# svcadm enable gdm
Linux服务器

有三种方法可以启动X服务器:
- 手动运行X命令
1. 如果提示登录,请以要运行X服务器的操作系统用户身份登录。
2. 运行 X 命令并加上 & 符号,使X服务器在后台运行:

$ X &
3. 按下`Ctrl+Alt+F7`切换到图形控制台,此时屏幕中央会出现一个`x`,表示鼠标光标。
4. 按下`Ctrl+Alt+F1`返回文本控制台。
  • 运行 init 5 telinit 5 命令 :在操作系统提示符下以root用户身份运行该命令,可能会出现基于GUI的登录屏幕。

  • 修改 /etc/inittab 文件并重启服务器 :将 initdefault 变量的值修改为 5 ,然后重启服务器:

id:5:initdefault:
工作原理

对于Solaris服务器,可以使用 svcadm enable gdm 命令启动GDM服务。如果对 xorg.conf 配置文件进行了更改,可以使用 svcadm restart gdm 命令重启该服务。使用 svcs gdm 命令验证GDM服务的状态,如果服务处于在线状态,则表示已启用:

# svcs gdm
STATE          STIME    FMRI
online         11:23:58 svc:/application/graphical-login/gdm:default

对于Linux服务器,如果运行级别设置为 5 ,则在服务器重启时会自动启动X服务器。如果服务器以运行级别 3 启动,默认屏幕显示为文本控制台,而你希望运行基于GUI的应用程序,如 dbca 创建Oracle数据库,则需要手动启动X服务器。

X 命令实际上会调用 Xorg ,可以使用 which X ls -l /usr/bin/X 命令查看其关联:

# which X
/usr/bin/X
# ls -l /usr/bin/X
lrwxrwxrwx. 1 root root 4 Jan 13  2014 /usr/bin/X -> Xorg
# which Xorg
/usr/bin/Xorg
# ls -l /usr/bin/Xorg
-rwsr-xr-x. 1 root root 2274240 Nov 21  2013 /usr/bin/Xorg

不同的Linux发行版中, X 命令的位置可能不同,可以使用 which X 命令确定其确切目录。

除了使用 X 命令启动X服务器,还可以使用 startx 命令,它会自动调用 X 命令并启动图形显示管理器。大多数Linux发行版的默认显示管理器是GNOME,如果你想切换到其他显示管理器,可以参考相关文档。

当X服务器已经运行时,可以按下 Ctrl+Alt+F1 切换到文本控制台,按下 Alt+F7 切换到图形控制台,通过重复这些步骤可以在文本和图形控制台之间来回切换。

X服务器启动方法对比表格

服务器类型 启动方法 操作步骤 难易程度
Solaris 启用GDM服务 1. 运行 svcs gdm 验证状态;2. 若禁用则运行 svcadm enable gdm 简单
Linux 手动运行X命令 1. 登录用户;2. 运行 X & ;3. 切换控制台 复杂
Linux 运行 init 5 telinit 5 以root身份运行命令 中等
Linux 修改 /etc/inittab 并重启 1. 修改文件;2. 重启服务器 中等

X服务器启动流程图

graph TD;
    A[选择服务器类型] --> B{Solaris};
    B -- 是 --> C[验证GDM状态];
    C --> D{GDM禁用};
    D -- 是 --> E[启用GDM服务];
    B -- 否 --> F{Linux};
    F -- 是 --> G[选择启动方法];
    G --> H[手动运行X命令];
    G --> I[运行init 5或telinit 5];
    G --> J[修改inittab并重启];

2.4 停止X服务器

问题描述

需要在Linux/Solaris服务器上停止正在运行的X服务器。

解决方案
Solaris服务器

运行以下命令停止GDM服务:

# svcadm disable gdm
Linux服务器
  • 手动运行X命令启动的情况 :在文本控制台中,找到X服务器的进程ID(PID),可以使用 ps -ef | grep X 命令查找,然后使用 kill -9 <PID> 命令终止该进程。例如:
$ ps -ef | grep X
user  1234  1  0 10:00:00 ?  0:00 /usr/bin/X &
$ kill -9 1234
  • 通过 init telinit 命令启动的情况 :将运行级别修改为不启动X服务器的级别,如运行 init 3 telinit 3 将运行级别设置为3,此时X服务器会停止。
# init 3
  • 修改 /etc/inittab 文件启动的情况 :将 initdefault 变量的值修改回原来不启动X服务器的级别(通常为3),然后重启服务器。
id:3:initdefault:
工作原理

对于Solaris服务器, svcadm disable gdm 命令会禁用GDM服务,从而停止X服务器。对于Linux服务器,不同的启动方式对应不同的停止方法。手动启动的X服务器通过终止其进程来停止;通过 init telinit 命令启动的X服务器,改变运行级别可以停止它;修改 /etc/inittab 文件启动的X服务器,修改文件并重启服务器可以使其停止。

2.5 重定向和安全X显示到远程计算机

问题描述

希望将本地的X显示重定向到远程计算机,并且保证传输的安全性。

解决方案
使用SSH隧道

可以使用SSH隧道来安全地重定向X显示。在本地客户端连接远程服务器时,使用 -X -Y 选项。 -X 选项启用X11转发,但安全性较低; -Y 选项启用受信任的X11转发,安全性较高。例如:

$ ssh -Y user@remote_server

连接成功后,在远程服务器上运行的基于GUI的应用程序的窗口会显示在本地客户端上。

使用xhost进行访问控制

可以使用 xhost 命令来控制哪些客户端可以访问本地的X服务器。例如,允许特定的IP地址或主机名访问:

# 允许特定IP访问
$ xhost +192.168.1.100
# 允许所有客户端访问(不建议在安全要求高的环境中使用)
$ xhost +
工作原理

SSH隧道通过加密通道将X显示数据传输到本地客户端,保证了数据的安全性。 xhost 命令通过修改X服务器的访问控制列表,允许或拒绝特定的客户端访问。

2.6 改变X终端的外观和感觉

可以通过修改X资源文件来改变X终端的外观和感觉。X资源文件通常是 ~/.Xresources 。例如,修改终端的字体和背景颜色:

! 设置终端字体
xterm*faceName: Monospace
! 设置终端背景颜色
xterm*background: black
! 设置终端前景颜色
xterm*foreground: white

修改完成后,使用 xrdb 命令加载新的资源文件:

$ xrdb -merge ~/.Xresources

然后重新启动X终端,就可以看到修改后的外观。

X服务器操作汇总表格

操作 Solaris服务器 Linux服务器
启动 1. 运行 svcs gdm 验证状态;2. 若禁用则运行 svcadm enable gdm 1. 手动运行X命令;2. 运行 init 5 telinit 5 ;3. 修改 /etc/inittab 并重启
停止 运行 svcadm disable gdm 1. 手动启动的用 kill -9 <PID> ;2. 通过 init telinit 启动的修改运行级别;3. 修改 /etc/inittab 启动的修改文件并重启
重定向显示 使用SSH隧道( ssh -Y user@remote_server )和 xhost 控制 使用SSH隧道( ssh -Y user@remote_server )和 xhost 控制

X服务器操作流程图

graph TD;
    A[选择操作类型] --> B{启动};
    B -- 是 --> C{Solaris};
    C -- 是 --> D[验证GDM状态并启用];
    C -- 否 --> E{Linux};
    E -- 是 --> F[选择启动方法];
    F --> G[手动运行X命令];
    F --> H[运行init 5或telinit 5];
    F --> I[修改inittab并重启];
    A --> J{停止};
    J -- 是 --> K{Solaris};
    K -- 是 --> L[禁用GDM服务];
    K -- 否 --> M{Linux};
    M -- 是 --> N[选择停止方法];
    N --> O[终止X进程];
    N --> P[修改运行级别];
    N --> Q[修改inittab并重启];
    A --> R{重定向显示};
    R --> S[使用SSH隧道和xhost控制];

总结

本文详细介绍了网络安全工作中的密码短语修改、无提示登录配置,以及X窗口系统的管理,包括X服务器的配置、启动、停止、显示重定向和外观修改等内容。通过合理配置和操作,可以提高网络连接的安全性,同时方便地使用基于GUI的应用程序来管理服务器和数据库。在实际应用中,需要根据不同的服务器类型和需求,选择合适的方法和命令进行操作。

基于实时迭代的数值鲁棒NMPC双模稳定预测模型(Matlab代码实现)内容概要:本文介绍了基于实时迭代的数值鲁棒非线性模型预测控制(NMPC)双模稳定预测模型的研究Matlab代码实现,重点在于通过数值方法提升NMPC在动态系统中的鲁棒性稳定性。文中结合实时迭代机制,构建了能够应对系统不确定性外部扰动的双模预测控制框架,并利用Matlab进行仿真验证,展示了该模型在复杂非线性系统控制中的有效性实用性。同时,文档列举了大量相关的科研方向技术应用案例,涵盖优化调度、路径规划、电力系统管理、信号处理等多个领域,体现了该方法的广泛适用性。; 适合人群:具备一定控制理论基础和Matlab编程能力,从事自动化、电气工程、智能制造等领域研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①用于解决非线性动态系统的实时控制问题,如机器人控制、无人机路径跟踪、微电网能量管理等;②帮助科研人员复现论文算法,开展NMPC相关创新研究;③为复杂系统提供高精度、强鲁棒性的预测控制解决方案。; 阅读建议:建议读者结合提供的Matlab代码进行仿真实践,重点关注NMPC的实时迭代机制双模稳定设计原理,并参考文档中列出的相关案例拓展应用场景,同时可借助网盘资源获取完整代码数据支持。
UWB-IMU、UWB定位对比研究(Matlab代码实现)内容概要:本文介绍了名为《UWB-IMU、UWB定位对比研究(Matlab代码实现)》的技术文档,重点围绕超宽带(UWB)惯性测量单元(IMU)融合定位技术展开,通过Matlab代码实现对两种定位方式的性能进行对比分析。文中详细阐述了UWB单独定位UWB-IMU融合定位的原理、算法设计及仿真实现过程,利用多传感器数据融合策略提升定位精度稳定性,尤其在复杂环境中减少信号遮挡和漂移误差的影响。研究内容包括系统建模、数据预处理、滤波算法(如扩展卡尔曼滤波EKF)的应用以及定位结果的可视化误差分析。; 适合人群:具备一定信号处理、导航定位或传感器融合基础知识的研究生、科研人员及从事物联网、无人驾驶、机器人等领域的工程技术人员。; 使用场景及目标:①用于高精度室内定位系统的设计优化,如智能仓储、无人机导航、工业巡检等;②帮助理解多源传感器融合的基本原理实现方法,掌握UWBIMU互补优势的技术路径;③为相关科研项目或毕业设计提供可复现的Matlab代码参考实验验证平台。; 阅读建议:建议读者结合Matlab代码逐段理解算法实现细节,重点关注数据融合策略滤波算法部分,同时可通过修改参数或引入实际采集数据进行扩展实验,以加深对定位系统性能影响因素的理解。
本系统基于MATLAB平台开发,适用于2014a、2019b及2024b等多个软件版本,并提供了可直接执行的示例数据集。代码采用模块化设计,关键参数均可灵活调整,程序结构逻辑分明且附有详细说明注释。主要面向计算机科学、电子信息工程、数学等相关专业的高校学生,适用于课程实验、综合作业及学位论文等教学科研场景。 水声通信是一种借助水下声波实现信息传输的技术。近年来,多输入多输出(MIMO)结构正交频分复用(OFDM)机制被逐步整合到水声通信体系中,显著增强了水下信息传输的容量稳健性。MIMO配置通过多天线收发实现空间维度上的信号复用,从而提升频谱使用效率;OFDM方案则能够有效克服水下信道中的频率选择性衰减问题,保障信号在复杂传播环境中的可靠送达。 本系统以MATLAB为仿真环境,该工具在工程计算、信号分析通信模拟等领域具备广泛的应用基础。用户可根据自身安装的MATLAB版本选择相应程序文件。随附的案例数据便于快速验证系统功能性能表现。代码设计注重可读性可修改性,采用参数驱动方式,重要变量均设有明确注释,便于理解后续调整。因此,该系统特别适合高等院校相关专业学生用于课程实践、专题研究或毕业设计等学术训练环节。 借助该仿真平台,学习者可深入探究水声通信的基础理论及其关键技术,具体掌握MIMOOFDM技术在水声环境中的协同工作机制。同时,系统具备良好的交互界面可扩展架构,用户可在现有框架基础上进行功能拓展或算法改进,以适应更复杂的科研课题或工程应用需求。整体而言,该系统为一套功能完整、操作友好、适应面广的水声通信教学科研辅助工具。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值