そして、このギャップを埋めるために、実用的なソリューションを探すのに多くの時間を費やす必要がありました。 実は、私は彼を連れてきました。
ThinstationのRDPを介した端末アクセスに2要素認証を使用するには、RDPクライアント、スマートカード(電子キー)で動作するアプリケーション、およびスマートカードドライバーの3つのコンポーネントが必要です。 最初の2つのコンポーネント(rdesktopおよびpcsc)は最初はThinstationコンストラクターに存在しますが、rdesktopがスマートカードをサポートし、pcscバージョンが1.5.5以上であることを確認する場合を除き、それらに焦点を合わせません。 3番目のコンポーネント、ドライバー、およびpcscのリンクは、OpenCTパッケージです。 OpenCTは、比較的多数のUSBリーダーとトークンをサポートし、最も重要なこととして、rdesktopで正しく動作します。 それで、私たちは彼にもっと注意を払います。
電子USBキーをサポートするThinstation配布キットの組み立て手順は次のとおりです。ソースからOpenCTを収集し、Thinstationのパッケージを作成し、構成ファイルを編集し、Thinstationイメージを組み立てます。
OpenCTをビルドする
アセンブリはUbuntu上で行われ、それに応じてこのLinuxディストリビューション用のコマンドが提供されます。他のバージョンのLinuxではコマンドは異なります
最初に、アセンブリに必要なパッケージをインストールします。
$ sudo apt-get install libhal1 libltdl7 dpkg-dev build-essential fakeroot
ソースからOpenCTを収集するフォルダーをホームディレクトリに作成します。
$ mkdir〜/ openct
$ mkdir〜/ openct /ビルド
$ cd〜/ openct /ビルド
ソースをダウンロードし、パッケージをコンパイルするための依存関係をインストールします
$ sudo apt-get source openct
$ sudo apt-get build-dep openct
開梱:
$ sudo dpkg-source -x openct_0.6.20-1.1.dsc
必要なオプション-enable-pcscおよびenable-usbを使用してOpenCTパッケージをコンパイルします。
$ cd openct-0.6.20
$ sudo DEB_BUILD_OPTIONS = "-enable-pcsc --enable-usb" fakeroot debian /ルールバイナリ
$ cd ...
Thinstation用のパッケージを作成する
Openctの準備ができました。Thinstationのパッケージ構造を作成します
$ mkdir〜/ openct / packages
$ mkdir〜/ openct / packages / openct
$ mkdir〜/ openct / packages / openct / bin
$ mkdir〜/ openct / packages / openct / etc
$ mkdir〜/ openct / packages / openct / etc / udev /
$ mkdir〜/ openct / packages / openct / etc / udev / scripts
$ mkdir〜/ openct / packages / openct / lib
$ mkdir〜/ openct / packages / openct / usr
$ mkdir〜/ openct / packages / openct / usr / sbin
$ mkdir〜/ openct / packages / openct / var
$ mkdir〜/ openct / packages / openct / var / run
$ mkdir〜/ openct / packages / openct / var / run / openct
必要なファイルをコピーします
$ cp〜/ openct / build / openct-0.6.20 / debian / openct / usr / bin / openct-tool〜/ openct / packages / openct / bin / openct-tool
$ cp〜/ openct / build / openct-0.6.20 / debian / openct / usr / sbin / openct-control〜/ openct / packages / openct / bin / openct-control
$ cp〜/ openct / build / openct-0.6.20 / debian / openct / usr / sbin / if *〜/ openct / packages / openct / usr / sbin /
$ cp -r〜/ openct / build / openct-0.6.20 / debian / openct / usr / lib /〜/ openct / packages / openct /
$ cp -r〜/ openct / build / openct-0.6.20 / debian / openct / lib / udev / rules.d〜/ openct / packages / openct / etc / udev
$ cp〜/ openct / build / openct-0.6.20 / debian / openct / lib / udev / openct *〜/ openct / packages / openct / etc / udev / scripts
$ cp〜/ openct / build / openct-0.6.20 / debian / openct / etc / openct.conf〜/ openct / packages / openct / etc / openct.conf
$ cp -r〜/ openct / build / openct-0.6.20 / debian / libopenct1 / usr / lib / *〜/ openct / packages / openct / lib
$ cp -r / lib / libdbus *〜/ openct / packages / openct / lib
$ cp -r /usr/lib/libhal.so*〜/ openct / packages / openct / lib
$ cp -r /usr/lib/libltdl.so*〜/ openct / packages / openct / lib
構成ファイルを編集する
udevルールはすでに存在しますが、調整する必要があります
$ nano〜/ openct / packages / openct / etc / udev / rules.d / 60-openct.rules
行の後
ACTION!=「追加」、GOTO =「openct_usb_rules_end」を追加する必要があります。
サブシステム== "usb"、アクション== "add"、ENV {DEVTYPE} == "usb_device"、\
NAME = "bus / usb / $ env {BUSNUM} / $ env {DEVNUM}"、MODE = "0644"
また、必要な電子キーに関連するルールがコメント化されていないこと、実行されたスクリプトへのパスが正しいことを確認してください。 Thinstationでは、/ etc / udev / scriptsにあります
Openct_usbファイルは、より「深刻な」変更を受けます
$ nano〜/ openct / packages / openct / etc / udev / scripts / openct_usb
私たちはすべてを取り出して処方します:
#!/ bin / sh
/ bin / openct-control shutdown
/ bin / openct-control init
出口0
openct.confを調べる必要はありません。電子キーの必要なドライバーがロードされていることを確認してください。
$ nano〜/ openct / packages / openct / etc / openct.conf
pcscdのThinstationにopenctパッケージの依存関係を作成します。
$ echo 'pcscd' | cat>〜/ openct / packages / openct /依存関係
Thinstationイメージを構築する
パッケージを含むフォルダーに作成されたopenctパッケージ:
$ cp -r〜/ openct / packages / openct〜/ Thinstation-2.2.2 /パッケージ
Thinstation配布キットのアセンブリにopenctパッケージを含める必要があることを設計者に通知します。
$ nano〜/ Thinstation-2.2.2 / build.conf
パッケージopenct
シンクライアントのイメージの収集
$ cd〜/ Thinstation-2.2.2
$ sudo ./build
画像の準備ができました。 ブートし、トークンを接続し、コンソールでコマンドpcscd_scanおよび/またはopensc-tool –lで確認します
すべてが順調であれば、サーバーへの接続オプションで–r scardを指定することを忘れずに、ターミナルサーバーに接続します。