Windows WSLインストールしたらSSHでハマった。。

表題の件で、なぜか躓いてSSHが起動しなかった。

root@LAPTOP:/etc/ssh# service ssh start
 * Starting OpenBSD Secure Shell server sshd                                                                            
sshd: no hostkeys available -- exiting.
                                                                          [fail]
root@LAPTOP:/etc/ssh#

下記が参考になった。
www.garron.me

SSHキーが用意されてなかったので下記コマンドで実施、今度はうまくいった。

root@LAPTOP:~# ssh-keygen -A
ssh-keygen: generating new host keys: RSA DSA ECDSA ED25519
root@LAPTOP:~#
root@LAPTOP:~# /etc/init.d/ssh start
 * Starting OpenBSD Secure Shell server sshd                                                                     [ OK ]
root@LAPTOP:~#


nginx 証明書設置エラーで起動しません。。。

久しぶりに証明書更新を利用しようとして、
CSRからごにゃごにゃ証明書作ってnxinx側へインストールしようとしたら
起動時にずっこけた。

~# systemctl status nginx.service
   Active: failed (Result: exit-code) since Fri 2020-08-14 05:46:13 UTC; 1min 5s ago
     Docs: man:nginx(8)
  Process: 22773 ExecStop=/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile /run/nginx.pid (code=exited, status=0/SUCCESS)
  Process: 21790 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
  Process: 22892 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=1/FAILURE)
 Main PID: 21792 (code=exited, status=0/SUCCESS)

Aug 14 05:46:13 ip-172-31-xx-xxx systemd[1]: Starting A high performance web server and a reverse proxy server...
Aug 14 05:46:13 ip-172-31-xx-xxx nginx[22892]: Enter PEM pass phrase:
Aug 14 05:46:13 ip-172-31-xx-xxx nginx[22892]: nginx: [emerg] SSL_CTX_use_PrivateKey_file("/etc/nginx/ssl/2020.ssl.globalsign.com.key") failed (SSL: error:2807106B:UI routines:UI_process:processing error
:while reading strings error:0906406D:PEM routines:PEM_def_callback:problems getting password error:0906A068:PEM routines:PEM_do_header:bad password read error:140B0009:SSL routines:SSL_CTX_use_PrivateKe
y_filAug 14 05:46:13 ip-172-31-xx-xxx nginx[22892]: nginx: configuration file /etc/nginx/nginx.conf test failed
Aug 14 05:46:13 ip-172-31-xx-xxx systemd[1]: nginx.service: Control process exited, code=exited status=1
Aug 14 05:46:13 ip-172-31-xx-xxx systemd[1]: nginx.service: Failed with result 'exit-code'.
Aug 14 05:46:13 ip-172-31-xx-xxx systemd[1]: Failed to start A high performance web server and a reverse proxy server.

これが参考になった。
qiita.com


バックアップを取って、パスフレーズを外すとうまくいった!!

# openssl rsa -in 2020.ssl.globalsign.com.key -out 2020.ssl.globalsign.com.key
Enter pass phrase for 2020.ssl.globalsign.com.key:
writing RSA key
# systemctl restart nginx

伊豆に行ってきた!

8月前半に伊豆に行ってきた。

意外と人が沢山いたけど、しっかりコロナ対策してあったので結構安心した。
子供と森に行ったり、川に行ったり、温水プール入ったり、水族館行ったり、楽しい夏を満喫できましたよ!

f:id:onrenkai:20200813171556j:plain
f:id:onrenkai:20200813171609j:plain
f:id:onrenkai:20200813171603j:plain
f:id:onrenkai:20200813171559j:plain
f:id:onrenkai:20200813171606j:plain

WireSharkを利用して Let's packet capture

パケットキャプチャをしたくて、よく利用されているWireSharkを利用して
TLS/SSLのパケットの中身を確認するまでをやっていきたいです。


WireSharkのインストールは省きます。
OSはWindowsServer2019を利用します。


設定は

Edit -> Preference -> Protocols -> TLS -> RSA keys list を [edit]
IP address, Port, Protocol, KeyFile, Passowrdを入力して、
f:id:onrenkai:20200813170521p:plain

必要であれば、TLS debug fileのパスも入力し、OK。

これで改めてキャプチャを取ってみると、、、
うまく復号化してくれません。


ここでうまく復号ができなくなった原因を探りました。
下記が参考になりました。
blog.goediy.com

cipepser.hatenablog.com



どうやら

ssl_decrypt_pre_master_secret: session uses Diffie-Hellman key exchange (cipher suite 0xC030 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) and cannot be decrypted using a RSA private key file.
<||

が原因でRSA固定長の鍵だとうまく復号できないようです。

ブラウザのパケットキャプチャを取る場合は、
export SSLKEYLOGFILE=~/sslkey.log
で上記の画面内の (Pre)-Master-Secret log filenameの箇所にパスをしてあげれば
RSAの固定長関係なくキャプチャが取れました。

AWS Transfer Family を使ってみた。

案件でSFTP経由でS3にデータをストアすることになったので、
AWSのSFTPサーバのサービスを使ったみました。

これが参考になった。

engineer.retty.me


「create server」 を選択
f:id:onrenkai:20200707135843p:plain

「SFTP」を選択
f:id:onrenkai:20200707140014p:plain

「Service managed」を選択
f:id:onrenkai:20200707140112p:plain

「public accessible」を選択
f:id:onrenkai:20200707140205p:plain

事前に作成したIAMロールを選択
f:id:onrenkai:20200707140607p:plain

最後にreviewで問題なければCreate
f:id:onrenkai:20200707140459p:plain



サーバができたら続いて、ユーザーの追加を行います。
「Add User」をクリック
f:id:onrenkai:20200707140924p:plain

各項目を埋めていく。
Home directoryはS3バケットとなる。
f:id:onrenkai:20200707141742p:plain


SFTP接続用のBashスクリプト(sftp.sh)作ってみた。

#! /bin/bash
set -x

if [ $# -ne 7 ]; then
  echo "expected 6 args..."
  exit 200
fi

SSH_KEY_PAIR=$1
SFTP_USER=$2
SFTP_HOST=$3
ORIG_FILE=$4
PUT_DIR=$5
PUT_PATH=$6
PUT_FILE=$7

iconv -f cp932 -t utf8 $ORIG_FILE > $PUT_PATH

echo "sftp -i $SSH_KEY_PAIR ${SFTP_USER}@${SFTP_HOST}"
echo "ORIG_FILE: $ORIG_FILE"
echo "PUT_DIR: $PUT_DIR"
echo "PUT_FILE: $PUT_FILE"

sftp -i $SSH_KEY_PAIR ${SFTP_USER}@${SFTP_HOST} << !
  cd  $PUT_DIR
  put $PUT_PATH
  ls $PUT_FILE
  bye
!

rm $PUT_PATH

exit 0


実行コマンドは下記

# bash sftp.sh $ssh_key_pair $sftp_user $sftp_host $file_path $sftp_put_dir $temp_file_path $temp_file_name

WorkSpaces ENI固定方法

VPNで接続する時にMacAddressを登録するのですが、これをAWSWorkSpaces(VDI)を
利用して設定してみます。


参考になったのがこれ
hacknote.jp
docs.aws.amazon.com


workspacesでローカルIPを確認したあと、
f:id:onrenkai:20200706095101p:plain

EC2のネットワークインタフェースでMacAddressを確認
f:id:onrenkai:20200706095401p:plain

ENIに関連付けられたMACアドレスは基本的に変わらない(固定)のようです。

※ただし、使っている間(再起動、停止など)はMACアドレスが変わることはないが、引き継がせることはできない。