15.2. FreeNX 高级配置

以下小节介绍一些高级功能,主要用在较复杂的 NX 方案中。

15.2.1. 配置使用客户密钥的 SSH 鉴定

第 15.1 节 “NX 入门”中配置的鉴定只依赖于用户名和口令凭证。要获得更安全的鉴定,您可以将 NX 配置为生成一对 SSH 密钥。此时客户密钥将从服务器计算机复制到要求能够连接到 NX 服务器的客户机。不存在此密钥的客户机不能在 NX 服务器上进行鉴定。只有 FreeNX 服务器/knx 客户机这一组合支持此功能。

要对 NX 服务器进行配置,以使用此鉴定方式并生成适当的密钥对,请执行如下操作:

  1. 作为 root 用户登录到服务器计算机。

  2. 打开服务器的配置文件 /etc/nxserver/node.conf 并确保 ENABLE_SSH_AUTHENTICATION 设置为 1(应为默认值)。

  3. 用以下命令安装服务器:

    nxsetup --install --clean --purge
  4. 调整对 /var/lib/nxserver/home/.ssh/authorized_keys2 的访问权限:

    chmod 640 /var/lib/nxserver/home/.ssh/authorized_keys2
    
  5. 注销。

要对 knx 进行配置以使用此密钥,请执行以下操作:

  1. 在服务器计算机上作为 root 用户登录。

  2. 将密钥文件复制到客户机上 knx 需要它的位置,用客户机地址替换 client

    scp /var/lib/nxserver/home/.ssh/client.id_dsa.key client:/usr/share/knx/
    
  3. 作为 root 用户登录到客户机。

  4. 如下所示调整访问权限:

    chmod 644 /usr/share/knx/client.id_dsa.key
    
  5. 注销。

15.2.2. 配置 PAM 鉴定

默认情况下,FreeNX 允许任何人打开 NX 会话,前提是服务器的用户数据库中存在此用户(本地方式或通过 LDAP、NIS 等)。此行为由服务器计算机上 /usr/bin/nxserver 中的 ENABLE_PAM_AUTHENTICATION 变量切换。此处的默认值为 1。将它设置为 0 可对 FreeNX 禁用以 PAM 为中介的用户鉴定 (PAM_AUTH)。

如果 ENABLE_PAM_AUTHENTICATION 设置为 0,您需要手动添加用户和密码。要在服务器上添加本地 NX 用户,请执行以下操作:

  1. 作为 root 用户登录到服务器计算机。

  2. 请确保系统的本地用户数据库中存在要添加的用户,方法是检查 /etc/passwd 的内容或使用 YaST 用户管理模块。

  3. 对每个要添加的用户使用 nxserver --adduser 命令添加用户名。然后使用 nxserver --passwd 命令添加用户口令。

  4. 使用 nxserver --restart 重启动服务器并注销。

15.2.3. 使用系统范围的和用户特定的配置文件

FreeNX 服务器的行为是通过 /etc/node.conf 控制的。您可以运行全局的 NX 服务器配置或以用户特定的配置运行服务器。如果有不同需要的多个用户在一台计算机上运行 NX,则要考虑到这个情况。

在下例中,假设用户 joe 希望在他打开 NX 会话时自动以特定的应用程序启动 NX。要仅为此用户启用此行为,请执行以下操作:

  1. 以 root 用户登录。

  2. 进入 /etc/nxserver 目录:

    cd /etc/nxserver
  3. 在同一目录中的 joe.node.conf 下保存一份 NX 服务器配置文件 (node.conf) 的副本。

  4. joe.node.conf 中编辑相应参数(NODE_AUTOSTARTENABLE_AUTORECONNECT)。有关这些功能的详细信息,请参考第 15.2.5 节 “配置 Autostart 任务并导出配置”第 15.2.4 节 “暂停和恢复 NX 会话”

  5. 重安装 NX 服务器以激活新的配置:

    nxsetup --install --clean --purge --setup-nomachine-key

    用户特定的配置将优先于全局配置。

  6. 注销。

15.2.4. 暂停和恢复 NX 会话

就像便携式计算机上的会话那样,NX 同样可以配置为允许暂停和恢复用户会话。重新打开暂停的会话时,其状态与您离开它时完全相同。

要配置 NX 会话的暂停和恢复,请执行如下操作:

  1. 以 root 用户登录。

  2. 打开服务器的配置文件 /etc/nxserver/node.conf 并作如下编辑:

    ENABLE_PASSDB_AUTHENTICATION="0"
    ENABLE_USER_DB="0"
    ENABLE_AUTORECONNECT="1"
    
  3. 保存并退出配置文件,然后用 nxserver --restart 重启动服务器。

  4. 注销。

要在退出时暂停会话,请单击 NX 窗口右上角的 X 并选择暂停,以此暂停您的会话并退出客户机。重新连接时,系统会询问您是恢复旧会话还是启动新会话。

15.2.5. 配置 Autostart 任务并导出配置

FreeNX 提供 autostart 功能,允许您在启动或恢复 NX 会话时发起特定任务,前提是其应用程序支持启动恢复属性。例如,您可以在启动 FreeNX 时自动清理桌面或执行其它 autostart 任务。当您重新连接会话时此功能会特别有用,即使您是从不同的 NX 客户机进行连接(在此客户机上不能使用标准的 KDE 或 GNOME 机制)。

要对 autostart 功能进行配置,请执行以下操作:

  1. 作为 root 用户登录到服务器计算机。

  2. 打开服务器的配置文件 /etc/nxserver/node.conf 并按如下所示编辑 NODE_AUTOSTART 变量,将 myprogram 替换为启动或恢复 NX 会话时应执行的程序:

    NODE_AUTOSTART=myprogram
         
  3. 保存并退出配置文件。

  4. 使用 nxserver --restart 命令重启动服务器并注销。

    这样,每次启动或恢复会话时都会启动指定的程序。

您也可以导出 NX_USERIPNX_SESSIONID 变量以使它们在用户环境中也可访问。例如,这样允许您在桌面上放置一个带有一般性内容的图标,访问用户瘦客户机上运行的 Samba 服务器。要使用户能够访问瘦客户机软驱中软盘的内容,请执行以下操作:

  1. 在服务器端启用 NX_USERIPNX_SESSIONID 变量的导出:

    1. 作为 root 用户登录到服务器。

    2. 打开服务器的配置 /etc/nxserver/node.conf 并设置以下变量:

      EXPORT_USERIP="1"
      EXPORT_SESSIONID="1"
      
    3. 保存并退出服务器的配置,然后用 nxserver --restart 命令重启动服务器。

    4. 注销。

  2. 在客户机端,打开一个会话,通过 SMB 导出软盘驱动器,然后在桌面上创建一个图标:

    1. 使用您的文件管理器(Nautilus 或 Konqueror)通过 Samba 导出软盘驱动器的内容。

    2. Desktop 目录下创建一个 floppy.desktop 文件并输入如下一行:

      Exec=smb://$NX_USERIP/floppy

      服务器会导出瘦客户机的 IP 地址,允许您使用 NX 会话中的软盘图标访问瘦客户机的软驱。

15.2.6. 创建 NX 服务器链

NX 服务器链允许您穿越防火墙并处理 IP 伪装。可以使用一台外部“网关”服务器将进来的连接转发到防火墙之后(伪装)的内部服务器。

要配置 NX 服务器链,请执行以下操作:

  1. 第 15.2.1 节 “配置使用客户密钥的 SSH 鉴定”所述对内部服务器进行配置并将服务器的私用密钥 (client.id_dsa.key) 分发到网关上的 /usr/NX/share/

  2. 在网关服务器上执行以下操作:

    1. 以 root 用户登录。

    2. 设置 /etc/nxserver/node.conf 中的以下变量,用内部 NX 服务器的 IP 地址替换 myinternalhost

      ENABLE_SERVER_FORWARD="1"
      SERVER_FORWARD_HOST="myinternalhost"
      SERVER_FORWARD_KEY="/usr/NX/share/client.id_dsa.key"
    3. 使用 nxserver --restart 命令重启动外部服务器以应用变更后的配置,然后注销。

      所有进来的连接都会被转发到内部服务器。

15.2.7. 在同一服务器上安装并运行 FreeNX 和 NoMachine

您可以在同一计算机上安装并运行 FreeNX 和商业 NoMachine NX 服务器,两者不会相互影响。这是在 FreeNX 中实施的,方法是将连接转发到同一计算机上安装的 NoMachine。

要启用此功能,请执行以下操作:

  1. 作为 root 用户登录到服务器计算机。

  2. /etc/nxserver/node.conf 下打开 FreeNX 的服务器配置文件,然后设置以下变量:

    ENABLE_NOMACHINE_FORWARD="1"
  3. 保存此文件,然后使用 nserver --restart 命令重启动 FreeNX 服务器。

  4. 注销。

要连接到 NoMachine 服务器,请使用标准的用户名和口令凭证。要连接到 FreeNX 服务器,请在正常的用户名前附加 freenx.(例如 freenx.joedoe)并使用一般的口令。