タイトルはほとんどそれを言っています。私は、2要素認証、ワンタイムパスワード、ハードトークン、およびその他の改善されたセキュリティ機能についてもっと聞いています。パスワードだけを使用するとセキュリティが低下するため、Ubuntuのセキュリティをどのように改善できるかを知りたいと思います。Unityで14.04 LTSを使用しています。
タイトルはほとんどそれを言っています。私は、2要素認証、ワンタイムパスワード、ハードトークン、およびその他の改善されたセキュリティ機能についてもっと聞いています。パスワードだけを使用するとセキュリティが低下するため、Ubuntuのセキュリティをどのように改善できるかを知りたいと思います。Unityで14.04 LTSを使用しています。
回答:
Google Authenticatorと呼ばれる、Googleが作成したオープンソースのPluggable Authentication Module(PAM)を使用できます。このモジュールは、ソースからビルドできるように、GitHubからだけでなく標準リポジトリでも利用できます。同じ名前のAndroid、iOS、またはBlackberryアプリと組み合わせると、パスワードとともに認証用の時間ベースの時間依存コードが作成されます。PAMモジュールであるため、ほとんどどこにでもドロップできます。始めましょう!
開始するには、次を使用してPAMをインストールできます。
sudo apt-get install libpam-google-authenticator
シンプル!
インストール後、Android、iOS、またはBlackberry(モバイルプラットフォームに応じて)に対応するモバイルアプリケーションもインストールする必要があります。それぞれが他なしでは役に立たない。モバイルデバイスに必要なアプリケーションを入手したら、ターミナルで次のコマンドを実行します。
google-authenticator
これは、いくつかの質問をすることから始まります。最初の質問は、「はい」と答える必要がある唯一の質問であり、コードを時間ベースにするかどうかを尋ねます。その後、各質問を読んで、あなたにとって最も意味のある選択をしてください。
初期設定が完了すると、端末に非常に大きなQRコードとその他の情報が表示されます。「Your New Secret Key Is:」という行は、デバイスのペアリングにQRコードを使用したくない場合に非常に必要な行です。セットアップするまでこのウィンドウを閉じないでください。モバイルデバイスを紛失した場合にログインに使用するものであるため、これが提供する「スクラッチコード」も重要です。それらを書き留めて、安全な場所に保管してください。
次に、モバイルデバイスでGoogle認証システムアプリケーションを開き、[アカウントのセットアップ]を選択します。生成されたQRコードをスキャンするか、「提供されたキーを使用する」を選択できます。QRコードをスキャンすると、すべてが「your_user @ your_host」という名前のアカウントで自動的に保存されます。ただし、「提供されたキーを使用」を選択した場合、トークンの名前、キー、およびタイプを手動で入力する必要があります。名前は任意に設定できます。キーは、以前に生成された秘密キーになります。タイプはデフォルトの時間ベースになります。設定すると、Google Authenticatorアプリのメインペインにアカウントが表示され、その横に円形のタイマーが表示されます。そのタイマーは30秒ごとに消耗し、新しいコードが生成されます。
ここに魔法があります。これはPAMモジュールであるため、さまざまな場所で使用できます。sudo
要求、SSHログイン、およびlightdmログインへの認証の追加について説明します。ただし、このチュートリアルを読んだ後は、同じテクニックに基づいて他の場所で有効にすることができます。
余分なステップがあるため、最初にこれを実行しています。最初に行う必要があるのは、SSH構成ファイルを編集することです。
gksudo gedit /etc/ssh/sshd_config
次の行を検索します。
ChallengeResponseAuthentication no
「いいえ」を「はい」に変更します。
次に、sshのPAMモジュールを編集する必要があります。
gksudo gedit /etc/pam.d/sshd
このファイルの最後に、次の行を追加します。
auth required pam_google_authenticator.so nullok
「nullok」引数は、ユーザーが2要素認証を設定していない場合、検証コードを要求しないようにシステムに指示します。編集後、先に進んでsshサービスを再起動します。
sudo service ssh restart
sudo
リクエスト次のPAMファイルを編集しますsudo
。
gksudo gedit /etc/pam.d/sudo
最後に次の行を追加します。
auth required pam_google_authenticator.so nullok
今、すべてのsudo
要求は、検証コードだけでなく、パスワードの入力を要求されます。
LightDMのPAMファイルを編集します。
gksudo gedit /etc/pam.d/lightdm
最後に次の行を追加します。
auth required pam_google_authenticator.so nullok
それでおしまい!GUIからログインするたびに、パスワードの後に確認コードが要求されます。
上記の方法を有効にしても、CTRL+ ALT+でTTYに切り替えると、確認コードの入力は求められませんF#。これを修正するには、common-auth
PAMファイルを編集します。
gksudo gedit /etc/pam.d/common-auth
最後に次の行を追加します。
auth required pam_google_authenticator.so nullok
ご覧のとおり、この認証を追加するのは非常に簡単でした。LightDM以外のディスプレイマネージャーを使用している場合は、それに応じて上記のlightdm行を簡単に変更できます。モバイルデバイスとシステムはこの秘密キーを既に共有しているため、常に同期している必要があります。この設定では、Googleサーバーやその他のインターネットリソースとの相互作用はありません。両方のデバイスが完全にオフラインであっても、アプリケーションに表示される検証コードは正しいものになります。有効にしたいずれかの方法でログインする必要がある場合は、必ずモバイルアプリケーションを開き、現在の確認コードを取得してください。
FreeOTPは、Google PlayのGoogle Authenticator Androidアプリ(現在のコードはオープンソースではありません)のオープンソースの代替です。FreeOTPはF-Droid(およびGoogle Play)で利用できます。