Ubuntuが猫や映画に非常に適していると自分の経験から確信しました。 ただし、Windowsから拒否するためにコンピューターはリモート作業にも使用されるため、eToken認証を使用して設定されたCisco VPNへの接続では不十分でした。
プログラムセット
接続するには、少なくともトークンドライバーとVPNクライアントが必要であることは明らかでした。 ネット上で検索した結果、次のリストがあります。
- OpenConnectは、Cisco AnyConnectサーバーと互換性のある「完全にランダムな」VPNクライアントです。
- GnuTLSは、TLSおよびSSLプロトコルの無料実装です。 重要なのは、このライブラリにはスマートカードを操作するためのp11toolユーティリティが含まれていることです。
- SafeNet認証クライアント-eToken電子キーを操作するためのドライバーと追加ユーティリティのセット
OpenConnect接続には、p11toolユーティリティを使用して見つけることができるクライアント証明書URLが必要であり、両方のプログラムがスマートカードを操作するためのドライバーを必要とするため、このドライバーをインストールすることから始めます。
eTokenクライアントのインストール
Ubuntu 12.04でのeTokenのセットアップに関する記事で合理的に指摘されているように、SafeNet認証クライアントへのリンクはほとんど秘密です。 しかし、同時に、インターネット上で、タンバリンと14.04の早い時期に、そしてSafeNetブラジル支店のどこかにあるディストリビューションへのライブリンクを使用した同様のダンスに関する最新のメモがありました。 さらに興味深いのは、同じサーバー上にクライアントの現在のバージョンのファイルがあります-9.1、それは古いライブラリを必要としません。 クライアントを獲得する正しい方法は、もちろん、主要なサプライヤーに連絡することです。
現在、SafenetAuthenticationClient-9.1.7-0_amd64.debパッケージ(または32ビットシステムの場合はSafenetAuthenticationClient-9.1.7-0_i386.debパッケージ)は、ファイルマネージャーでダブルクリックすることで基本的に配置されます。 しかし、この資料の作業の開始中、Ubuntuソフトウェアのバグは修正されませんでした。そのため、サードパーティパッケージのインストールは機能しませんでした。 したがって書かれた
コンソールからクライアントをダウンロードしてインストールする手順
wget --user-agent="Mozilla" http://www.proteq.com.br/download/sac/sac9.1_linux.zip # user-agent unzip sac9.1_linux.zip -d sac # , mkdir sacmnt # , iso sudo mount -o loop sac/SAC_9_1_Linux.iso sacmnt # sudo - # mount -o loop sudo dpkg -i sacmnt/Installation/Standard/DEB/SafenetAuthenticationClient-9.1.7-0_amd64.deb # sudo apt install --fix-broken # # sudo umount ./sacmnt # rm -d sacmnt # rm -r sac # ,
インストールが正常に完了すると、SafeNet Authentication Client Toolsアプリケーションが[アプリケーション]メニューに表示されます。
GnuTLSをインストールして構成する
言及された記事の最初の記事は、全体として非常に有用でしたが、ある行については著者に特に感謝しています。 ここにあります:
pkcs11-tool --module /usr/lib64/libeTPkcs11.so -L
事実、特定の瞬間に完全に行き詰まり、ネイティブクライアントからのトークンが表示される理由を理解できず、p11toolを介してではありません。 そして、ここからドライバー自身がどこにいるのかがわかりました。 ドライバーへのパスを把握し、 指示に従ってGnuTLSをインストールおよび構成します。
sudo apt install gnutls-bin sudo mkdir /etc/pkcs11 sudo mkdir /etc/pkcs11/modules echo 'module: /usr/lib/libeTPkcs11.so' > eToken.module # eToken.module sudo mv eToken.module /etc/pkcs11/modules # , GnuTLS
これで、GnuTLSを使用するすべてのアプリケーションがトークンを操作できるようになります。 また、p11toolユーティリティを使用して、証明書のURLを確認できます。
トークンデータの読み取り
次のコマンドを使用して、トークンで使用可能な証明書を一覧表示できます。
p11tool --login --list-certs 'pkcs11:model=eToken'
p11toolの出力は次のようになります。
オブジェクト0:
URL:pkcs11:model = eToken; manufacturer = SafeNet%2c%20Inc .; Serial = 99999999; token = Username; id =%XX%XX; object =%7bXXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX%7d;タイプ= cert
タイプ:X.509証明書
ラベル:{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}
ID:XX:XX
オブジェクト1:...
複数の証明書が存在する場合があり、接続には特定の証明書が1つ必要です。 OpenConnectのp11toolの指示では、誰もがこれを試すことを推奨しています。 証明書とそのURLを比較するために、各証明書のURLとテキストデータの両方を表示する小さなスクリプトを作成しました。
sudo apt install openssl # - p11tool --login --list-certs 'pkcs11:model=eToken' | grep -P pkcs11.+id.* -o | while read -r line; do p11tool --info "$line"; p11tool --export "$line" | openssl x509 -text; done
ここで、オブジェクトp11tool --infoのURLをループするループで、プレゼンテーション内の証明書データを表示し、p11tool --exportは、pemファイル形式の証明書をテキスト表現を表示するopenssl入力に転送します。 OpenConnectに転送するには、クライアント認証行が見つかったものが必要です。URLを覚えておいてください。 さらに、サーバーが自己署名証明書を使用する場合、フラグCKA_CERTIFICATE_CATEGORY = CAを持つオブジェクトのURLも記憶します。
証明機関の証明書をファイルにエクスポートします(URL全体はオプションです-オブジェクトを一意に識別する場合のみ):
p11tool --export 'pkcs11:model=eToken;...' > CA.pem # URL
最後にOpenConnect
インストール:
sudo apt install openconnect
接続する引数の最小セットは、次のコマンドで指定されます。
sudo openconnect --certificate 'pkcs11:model=eToken;id=%XX%XX' your.vpn.server.com # %XX%XX - id
サーバーが自己署名証明書を使用している場合、このフォームで起動すると、OpenConnectはサーバーを信頼するかどうかを指定し、さらにターミナルウィンドウが表示されます。 したがって、コマンドを少し拡張します。
sudo openconnect --certificate 'pkcs11:model=eToken;id=%XX%XX' --cafile=CA.pem --background --pid-file=connect.pid your.vpn.server.com > connect.log # UPD: certificate
cafileを使用して、証明機関の証明書を指定しました-これで、サーバーの信頼に関する質問はありません。 バックグラウンドオプションはそれ自体を意味し、pid-fileを使用すると、バックグラウンドプロセスの識別子が保存されているファイルの名前を指定できます。 さらに、トークンのパスワードは、pin-value属性を使用してURLで直接指定できます。 しかし、これは多少安全ではありません。
次のコマンドを使用して、バックグラウンドプロセスを正しく停止します。
sudo kill --signal SIGINT $(< connect.pid) # $() - , .. kill stdin
SIGINTによると、OpenConnectは接続を正しく終了します。接続を「ハード」に切断すると、次の接続中に問題が発生する可能性があります。 持っていませんでしたが
あとがき
問題は解決しました。リモートアクセスにRemminaを喜んで使用します。vpnに接続したらすぐに起動し、OpenConnectスタートアップスクリプトにコマンドを追加します。
cd ~ remmina --connect=./.remmina/myconnection.remmina
確かに、クリップボードの同期を無効にする必要がありました。それ以外の場合、リモートマシン上の一部のアプリケーションでは機能しません。 「トレイアイコンを無効にする」設定を有効にします。それ以外の場合は、接続するたびに新しいアイコンがトレイに追加されます。 繰り返しますが、Remminaを呼び出す前にホームディレクトリに切り替えることは偶然ではありません。アプリケーションはパス
自宅でのLinuxの適用可能性について結論を出すことはしません。今のところ、これで十分です。この記事はHowToと同じように設計されています。
PS:Ubuntuバージョンの最終的な選択は、この問題の解決策の影響を受けました。Ubuntu14.04に含まれる5番目のバージョンでは、OpenConnectバージョンが接続の確立を妨げるエラーを示しました。 そのエラーのないOpenConnectの7番目のバージョンのために、おそらく未加工の16.04を配信しました。
編集:Ubuntu 19.04はlibcryptoのバージョンを更新し、SafeNetのバージョン10に同梱されているドライバーでさえこのライブラリを見つけられません。 シンボリックリンクで保存
sudo ln -s /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1 /usr/lib/libcrypto.so
もう一度、使用する資料へのリンク:
ハウツー:LinuxでAladdin eTokenを使用する法人向けインターネットバンキング(Ubuntu)
SafeNet eToken PROをUbuntu 14.04 LTSにインストールします
GnuTLSからp11toolを呼び出す
OpenConnectスマートカード/ PKCS#11のサポート