コンソールのログ記録
2018年12月、WSL Ubuntu18.04でSSHパスワード認証の設定をしました。
WSL Ubuntu18.04環境をインストールして使用しています。
WSL Ubuntuの標準コンソールはDOSコマンドプロンプトのようなものです。Ubuntuの操作ログを簡単に残すことができません。
独立したPCにリモートログインするときは、Tera Termというターミナルエミュレータでログインしてログを記録していました。
同じPCの上で動作するWSL UbuntuとTera Termの間でも、同じようにログインできるはずです。SSH通信のパスワード認証でログインできるように設定をしました。
SSHパスワード認証
昔はUNIXにリモートログインするときに、Telnetというプロトコルを使用していました。しかし、暗号化やセキュリティーの問題から、最近ではSSH(Secure Shell)プロトコルを使用するのが普通です。Telnetは平文で通信をするため入力情報が盗聴される危険性がありますが、SSH通信はネットワーク上の通信がすべて暗号化されるため盗聴されたとしても解読されにくいので比較的安全な通信方法です。
SSHは、複数の認証方式が利用できます。
- パスワード認証 : ユーザー名とパスワードで認証
- 公開鍵認証 : 公開鍵をログイン先に登録し、公開鍵に対応した秘密鍵を持つクライアントだけが接続可能
公開鍵認証は少々面倒な手順ですが、安全な認証方式です。今回はログ記録が目的です。しかも、ローカルネットワークで同じPCの上から接続しますのでパスワード認証の設定を行います。
SSHクライアント
SSHクライアントには、PuTTYやWindows10標準のOpenSSHがあります。今回は昔から使用しているTera Termを使用します。
Tera Termは、TelnetやSSHで通信できるターミナルエミュレータでオープンソースにより継続的に開発されています。久しぶりに公式サイトを見ると「Tera Term 4.101 (日付: 2018-11-30)」をリリースしていました。
SSHサーバー設定
WSL UbuntuにSSH通信ができるように/etc/ssh/sshd_configを設定します。最初に設定ファイルをバックアップしてから編集します。
$ sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.org $ sudo vi /etc/ssh/sshd_config (2カ所修正します) $ diff /etc/ssh/sshd_config /etc/ssh/sshd_config.org 56,57c56,57 < PasswordAuthentication yes < PermitEmptyPasswords no --- > PasswordAuthentication no > #PermitEmptyPasswords no $
- PasswordAuthentication : パスワード認証を有効(yes)
- PermitEmptyPasswords : パスワードなしでのログイン禁止(no)・・・コメント解除
SSHサービス開始
SSHサービスを開始します。
$ sudo service ssh start [sudo] pi のパスワード: * Starting OpenBSD Secure Shell server sshd [ OK ] $
SSH接続テスト
Tera TermからTelnetのTCPポート22で接続テストします。
UbuntuのOpenSSHから応答があれば、無事SSHサービスを起動しています。
これが、Windowsからの応答だった場合は、Windows側のSSHサービスが起動している状態なのでSSHサービスを停止しておきます。
SSH接続
WSL UbuntuのIPアドレスをifconfigコマンドで調べます。
$ ifconfig eth0: ・・・ inet 192.168.0.2 netmask 255.255.255.0 broadcast 192.168.0.255 ・・・
ホストにWSL UbuntuのIPアドレスを指定して、Tera TermからSSHのTCPポート22で接続します。
「プレインパスワードを使う」をチェックして、ユーザー名とパスフレーズ(パスワード)を入力します。
Ubuntuにログインしました。
Tera Term ログ記録
Tera Termは、ファイル(F)-ログ(L)でログ記録を開始します。
ログ記録の設定を変更すると便利に使用することができます。設定(S)-その他の設定(D)の[ログ]タブを開きます。
標準ログファイル名(F)を「%Y%m%d_%H%M%S_&h.txt」とします。ログファイル名を「20181211_103600_192.168.0.2.txt」のように「年月日_時分秒_IPアドレス」とします。
標準のログ保存先フォルダ(S)に任意のフォルダを指定します。
自動的にログ採取を開始する(U)にチェックを入れます。ログインと当時にログ記録を開始することができます。
最後に
Windows Subsystem for Linux (WSL)Ubuntu 18.04 LTSにSSHのパスワード認証でリモートログインできるようになりました。これで、コンソールログが簡単に記録できます。
セキュリティー対策は重要なことですので、SSHの公開鍵認証に関する設定についてもそのうちに調べてみたいと思います。