JaCartaスマートカード認証を使用してUbuntu 17.10でVPN(PPTP)を構成する

Windowsオペレーティングシステムでは、スマートカードを使用してVPNアクセスを設定するのは非常に簡単で些細なことです。 ただし、MSの紳士は、Windows 10バージョン1709ビルド16299.15でこの機能を明らかに無効にしました。



スマートカードを使用してpptp経由でVPNサーバーに接続しようとすると、Windows OSは、スマートカードのパスワードを要求することなく、エラーなしでこのウィンドウを単純に閉じます。



「Linuxをインストールする必要がありました!!!」と、多くの人が言うでしょう。



この記事では、JaCartaスマートカード認証を使用して、VPN経由でリモートサーバーへの接続を構成する方法について説明します。



オペレーティングシステムとしてUbuntu 17.04 x64デスクトップが選択されました。 残念ながら、Debian 9を手早く入手することに成功しませんでしたが、これはDebianで次の記事を書く機会です。



$ uname –a Linux VPN-PPTP 4.13.0-16-generic #19-Ubuntu SMP Wed Oct 11 18:35:14 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
      
      





1.次に、必要なパッケージを配置します



 $ sudo apt update $ sudo apt install opensc libpcsclite1 pcsc-tools pcscd libengine-pkcs11-openssl ppp pptp-linux
      
      





* pptpバージョン1.9.0



標準リポジトリのパッケージに加えて、スマートカード用のドライバーとライブラリが必要です。



ダウンロードする



 $ mkdir ~/tmp $ cd ~/tmp $ wget https://www.aladdin-rd.ru/support/downloads/279f1310-d83d-4858-ba13-ecdbe0d37530/get
      
      





アーカイブを解凍します



 $ unzip get $ cd JaCarta_PKI_Linux/IDProtect\ Client\ 6.37.03/DEB/ $ ls idprotectclient_637.03-0_amd64.deb idprotectclient_637.03-0_i386.deb idprotectclientlib_637.03-0_amd64.deb
      
      





必要なドライバーとライブラリをインストールします。



64ビットシステムの場合:



 $ sudo dpkg -i idprotectclient_637.03-0_amd64.deb $ sudo dpkg –i idprotectclientlib_637.03-0_amd64.deb
      
      





32ビットシステムの場合:



 $ sudo dpkg -i idprotectclient_637.03-0_i386.deb
      
      





2.予備作業が完了しました。 これで、VPN自体がセットアップされました。



2.1。 まず、システムがスマートカードを認識したかどうかを確認する必要があります。 JaartaカードをコンピューターのUSBポートに挿入し、コマンドを実行します



 $ pkcs11-tool --module /lib64/libASEP11.so -L
      
      





次に、次のようなものが表示されます。



 [TEXT] Available slots: Slot 0 (0x0): Aladdin RD JaCarta [SCR Interface] (000000000000) 00 00 token label : ISadykov token manufacturer : Aladdin RD token model : JaCarta Laser token flags : login required, rng, token initialized, PIN initialized hardware version : 1.0 firmware version : 1.0 serial num : 4E46001220483933 pin min/max : 4/16
      
      







2.2。 構成ファイルを作成するには、トークンのキーと証明書の識別子が必要になります。 これを行うには、次のコマンドを入力します



 $ pkcs11-tool --module /lib64/libASEP11.so -l –O
      
      





PINコードを入力したら、IDフィールドの値を覚えておく必要あります



 Using slot 0 with a present token (0x0) Logging in to "ISadykov". Please enter User PIN: Certificate Object; type = X.509 cert label: le-AladdinJacartaUser-1e321881-0e-59035 ID: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Private Key Object; RSA label: le-AladdinJacartaUser-1e321881-0e-59035 ID: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Usage: decrypt, sign
      
      







2.3。 組織のルート証明書は、DERエンコーディングの.cer形式の証明書から.pem形式で取得します。



 $ openssl x509 -inform der -in ./root_certificate.cer -out ./root_certificate.pem
      
      





2.4。 次の内容で/etc/ppp/openssl.cnfファイルを作成します。



 $ sudo nano /etc/ppp/openssl.cnf openssl_conf = openssl_def [ openssl_def ] engines = engine_section [ engine_section ] pkcs11 = pkcs11_section [ pkcs11_section ] engine_id = pkcs11 dynamic_path = /usr/lib/x86_64-linux-gnu/openssl-1.0.2/engines/pkcs11.so MODULE_PATH = /lib64/libASEP11.so init = 0
      
      





2.5。 /etc/ppp/options.pptpファイルのrefuse-eap行をコメント化して、EAP-TLS認証を有効にする必要があります。



 $ sudo nano /etc/ppp/options.pptp
      
      





 # refuse-eap
      
      





2.6。 接続パラメーター/ etc / ppp / peers / any-peer-nameを使用してファイルを作成し、「UserName」パラメーターとしてドメインログインを指定し、次に「ca」パラメーターとしてPEM形式の変換されたルート証明書へのパスを指定します。 cert "and" key "保存されたキーと証明書識別子をプレフィックスで指定" pkcs11: "



 pty "pptp ***.aladdin-rd.ru --nolaunchpppd" name isadykov #   (  DOMAIN\\username) remotename ***.aladdin-rd.ru #    require-mppe-128 file /etc/ppp/options.pptp ipparam any-peer-name need-peer-eap updetach usepeerdns defaultroute replacedefaultroute ca /path/to/root_certificate.pem #   root.pem cert pkcs11:xxxxxxxxxxxxxxxxxxxxxxxxxx # certificate ID key pkcs11:xxxxxxxxxxxxxxxxxxxxxxxxxx # key ID
      
      





3.接続のセットアップ:



 $ sudo pon any-peer-name
      
      





接続の切断:



 $ sudo poff any-peer-name
      
      





接続のセットアップ中にデバッグ出力を有効にします。



 $ sudo pon klvpn debug dump logfd 2
      
      







付録:



指示は文書に基づいています



All Articles