15.2. 進階 FreeNX 組態

下面幾節將介紹一些會用於更複雜 NX 使用情況下的進階功能。

15.2.1. 使用用戶端金鑰設定 SSH 驗證

設定於 節 15.1, "NX 入門" 驗證只跟使用者名稱和密碼等證明有關。如需更安全的驗證方式,NX 可以設定成產生一組 SSH 金鑰對。接著,從伺服器機器將用戶端金鑰複製到任何會連線到此 NX 伺服器的用戶端。沒有出現這份金鑰的用戶端無法通過 NX 伺服器的驗證。這項功能只支援 FreeNX server/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/nxserverENABLE_PAM_AUTHENTICATION 變數來切換這個行為。這個變數的預設值是 1。將這個值設定成 0 便可為 FreeNX 停用透過 PAM 中介的使用者驗證 (PAM_AUTH)。

如果 ENABLE_PAM_AUTHENTICATION 是設定成 0,您就必須手動加入使用者和密碼。若要在伺服器上加入本地 NX 使用者,請依據下列步驟執行:

  1. 登入成此伺服器機器的 root 使用者。

  2. Make sure that any user to add exists in the system's database of local users ,檢查 /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, "設定自動啟動任務和匯出組態"節 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. 設定自動啟動任務和匯出組態

FreeNX 會提供可在啟動或繼續 NX 會期時啟動特定任務的自動啟動 (Autostart) 功能,條件是底下應用程式必須支援 startresume 內容。例如,您可以在啟動 FreeNX 時自動清除桌面、或是執行其他自動啟動任務。這項功能在您重新連結會期時 (甚至是從不同 NX 用戶端,也就是您不能在此時使用標準 KDE 或 GNOME 機制) 特別有用。

若要設定自動啟動功能,請執行下列步驟:

  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. 透過 Samba 來使用檔案管理員 (Nautilus 或 Konqueror) 匯出軟碟。

    2. Desktop 目錄中建立 floppy.desktop 檔案,並輸入下列指令行:

      Exec=smb://$NX_USERIP/floppy

      這樣伺服器就會匯出精簡電腦的 IP 位址,讓您可以在 NX 會期中使用該軟碟圖示來存取此精簡電腦的軟碟。

15.2.6. 建立 NX 伺服器鏈結

NX 伺服器鏈結可以讓您穿越 (Traverse) 防火牆和處理 IP 偽裝 (masquerading)。外部「閘道」伺服器可用來將收到連線轉遞給躲在防火牆 (偽裝) 後面的內部伺服器。

若要設定 NX 伺服器鏈結,請依照下列步驟執行:

  1. 依據節 15.2.1, "使用用戶端金鑰設定 SSH 驗證"所述步驟來設定內部伺服器,並將伺服器的私密金鑰 (client.id_dsa.key) 散發給閘道上的 /usr/NX/share/

  2. 在閘道伺服器上,依照下列步驟執行:

    1. 登入為 root 使用者。

    2. /etc/nxserver/node.conf 中設定下列變數,並將 myinternalhost 取代成內部 NX 伺服器的 IP 位址:

      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),然後使用慣用密碼。