EC2のTermination Protection設定を確認する

EC2インスタンスのTermination Protection設定をまとめて調べようと思い、とりあえずスクリプトを書いてみたので、メモ。

#!/bin/bash

INTERVAL=2
HEADER='instance-id,disable_api_termination'

INSTANCE_IDS=$(aws ec2 describe-instances | jq -r '.Reservations[].Instances[].InstanceId')

echo ${HEADER}
for INSTANCE_ID in ${INSTANCE_IDS}
do
  PROTECTION=$(aws ec2 describe-instance-attribute --instance-id ${INSTANCE_ID} --attribute disableApiTermination | jq -r '.DisableApiTermination.Value')
  echo "${INSTANCE_ID},${PROTECTION}"
  sleep ${INTERVAL}
done

実行するとこんな感じ。

instance-id,disable_api_termination
i-xxxxxxxx,true
i-xxxxxxxx,true
i-xxxxxxxx,true

とりあえず感がありますが、今日はこんなところで。

Virtualboxで作成したCentOS7が起動しない

相当しばらくぶりの投稿です。今日はVirtualboxの話題。


VirtualBox上でCentOS7の仮想マシンを先日作ったのですが、
これを起動しようとしたところ、起動できず。
復旧する羽目になりました。その時の対応メモです。

環境

起動直後


起動直後はこんな感じでした。完全にダメですね。


f:id:think-t:20180904005430j:plain

レスキューモードで起動


ということでレスキューモードで立ち上げます。


f:id:think-t:20180904010633j:plain


f:id:think-t:20180904010648j:plain


f:id:think-t:20180904010926j:plain

復旧


参考リンクのページを参考に「grubx64.efi」をコピーしました。
参考リンクのコマンドをそのまま参考にしながら進めましたが、「/dev/centos_gateway/root」「/dev/sda2」「/dev/sda1」はレスキューモードにしたタイミングで既にマウントされていました。

vgchange -ay
mount /dev/centos_gateway/root /mnt/sysimage
mount /dev/sda2 /mnt/sysimage/boot
mount /dev/sda1 /mnt/sysimage/boot/efi
mount --bind /proc /mnt/sysimage/proc
mount --bind /sys /mnt/sysimage/sys
mount --bind /dev /mnt/sysimage/dev
chroot /mnt/sysimage
cp -p /boot/efi/EFI/centos/grubx64.efi /boot/efi/EFI/BOOT/
exit
umount -R /mnt/sysimage
shutdown -r now


これでローカルからブートしたらもとに戻せました。


f:id:think-t:20180904012050j:plain


今日はこんなところで。

パスワード変更時に「/usr/share/cracklib/pw_dict: error reading header」エラーが出たときの対処メモ

普段作業用に使っているVMのパスワードがなぜか変更できなくなったので、
そのとき調査したことと、復旧で行ったことをメモしておきます。


環境はCentOS6.6の64ビット版です。

起きたこと


passwd コマンドを使って、パスワードを変更しようとしたところ、以下のようなメッセージが出ました。

# passwd
ユーザー root のパスワードを変更。
新しいパスワード:
/usr/share/cracklib/pw_dict: error reading header
PWOpen: 成功です

調べた


参考リンクを元に環境を調べたところ、cracklibの辞書ファイルが0バイトになっていたため、辞書ファイルが壊れてしまったと推測。

# cd /usr/share/cracklib/
# ls -la
合計 264
drwxr-xr-x.  2 root root   4096  7月 21 12:13 2014 .
drwxr-xr-x. 78 root root   4096  5月 31 16:24 2016 ..
-rw-r--r--.  1 root root   1024  6月 25 15:39 2011 cracklib-small.hwm
-rw-r--r--.  1 root root 235109  6月 25 15:39 2011 cracklib-small.pwd
-rw-r--r--.  1 root root  12416  6月 25 15:39 2011 cracklib-small.pwi
-rw-r--r--.  1 root root    360  6月 25 15:39 2011 cracklib.magic
-rw-r--r--.  1 root root      0  1月 27 16:55 2015 pw_dict.hwm
-rw-r--r--.  1 root root      0  1月 27 16:55 2015 pw_dict.pwd
-rw-r--r--.  1 root root      0  1月 27 16:55 2015 pw_dict.pwi

直す


該当するファイルが含まれるRPMパッケージを確認すると「cracklib-dicts」であることが分かったので、これをインストールしなおすことにしました。

# rpm -qf /usr/share/cracklib/pw_dict.hwm 
cracklib-dicts-2.8.16-4.el6.x86_64


パッケージの依存関係に「pam」があったので、強制再インストールにすることにしました。

# rpm -q --whatrequires cracklib-dicts                                                                             
pam-1.1.1-20.el6.x86_64

# yumdownloader cracklib-dicts
# rpm -Uvh --force cracklib-dicts-2.8.16-4.el6.x86_64.rpm 


cracklib-dictsパッケージの再インストールを行った結果、パスワード変更ができるようになりました。

# passwd
ユーザー root のパスワードを変更。
新しいパスワード:
新しいパスワードを再入力してください:
passwd: 全ての認証トークンが正しく更新できました。


今日はこんなところで。

awscliでWindowsインスタンスのパスワードを取得する

自分用のメモとしてWindowインスタンスのパスワードを取得する方法を。


通常だとマネジメントコンソール上で秘密鍵ファイルからAdministratorユーザーのパスワードを取得しますが、
結構面倒くさいので、コマンドラインからパスワードを取得する方法を試しました。


awscliでコマンドが用意されています。

$ aws ec2 get-password-data --instance-id i-xxxxxxxx
{
    "InstanceId": "i-xxxxxxxx",
    "Timestamp": "2016-08-27T07:58:22.000Z",
    "PasswordData": "\r\nAuEqrqN9xg7SrLgheizv0Y9jGVLzgVj+SxStcNzduNRjiOZzOzkFpqTiJeCQOgsXlhVTaytOqBiK3l05UDcvPXQL51i5wXB/RFy1DJlTQkBPaP4O6n28xBvDCUBS5VXhApNJgrZUUDkNfMXm4ZO1vktJzdXB0zkMe1mOi1zwJC9J5VwcKPD4YqADhH3z7FutNhDyJvjPsxlcUiTbZo0Sv54caeY1GQMhMChP9gj8QeC9+d0aKzuNXCHmbygt0mcv9s1iq+8/a+C+P9aA18h8NkeAGIwMt9RdsojjaRZLtNtJMg0mAJmJ2EfsoSnO8fEiAwjEd4eJ9RqIYHO7YLpXpA==\r\n"


そのままだと暗号化された状態のパスワードが戻ってくるので、復号するには秘密鍵ファイルを指定します。

$ aws ec2 get-password-data --instance-id i-xxxxxxxx --priv-launch-key /home/myuser/.ssh/id_rsa                                                                                       
{
    "InstanceId": "i-xxxxxxxx",
    "Timestamp": "2016-08-27T07:58:22.000Z",
    "PasswordData": "XXXXXXXXXX"
}


これで少し作業が楽になりそうです。
今日はこんなところで。

Windows Server 2012R2でIE Enhanced Security Configurationの設定を変更する

自分メモです。

Windows Server 2012R2では、初期状態で、「IE Enhanced Security Configuration」が有効になっています。
これを無効にする方法のメモ。

サーバーマネージャーから「IE Enhanced Security Configuration」を無効にすることで対応してみます。

サーバーマネージャーを起動


f:id:think-t:20160827151125p:plain


Local Serverを選択後、「IE Enhanced Security Configuration」を選択


f:id:think-t:20160827151145p:plain


Administrator, 一般ユーザのうち、解除が必要なものを選択して実行


f:id:think-t:20160827151217p:plain



今日はこんなところで。