「コンピュータ」カテゴリーアーカイブ

iTunesバックアップパスワード解析

iTunesのバックアップに掛けたパスワードがどうしても解らなくなってしまい。。。調べた結果こんな記事を発見

https://qiita.com/wakaoys/items/7734b4e2c969420abfb8

普通のPCでやってたらとんでもない時間が掛かってしまい使い物にならないわけですが、AWS使ってP3でぶん回せば行けるのでは!?

https://www.akimbocore.com/article/hashcracking-with-aws/

こんな記事も見つけました。

私はubuntu 20.04で試しましたが問題なく動きました。

なお、NVIDIA-Linux-x86_64-440.33.01.runのインストールはNVIDIAデバイスがないと失敗します。私はコスト面を考えてそれ以前の準備はt2.microで実施しました。作ったAMIをp3.16xlargeで起動してクラックを実施します。また、コストが安い、us-east-1(バージニア北部リージョン)のスポットインスタンスで起動しています。ちなみに、Pインスタンスはデフォルトでは4vCPUまでしか起動できない制限が掛かっているのでAll P instances制限緩和申請する必要があります。さらにスポットインスタンスとして起動しようとするとMax spot instance count exceededと言われて起動できないのでEC2 スポットインスタンスp3.16xlarge:1で申請しました。サポートレベルがBasicのせいか、スポットインスタンスの制限緩和申請に3営業日程かかりました。スポットインスタンス制限緩和は平日9:00-18:00対応だそうです。。。

hashcatは最新は6.1.1の様なので、以下から最新のバイナリを入手しました。

https://hashcat.net/hashcat/

手元のi3-6300TのマシンのWSLで2428 H/sくらいでした。p3.16xlargeでは2891.1kH/sだそうです。まぁ、おおよそ1000倍と言ったところでしょうか。7桁で13時間くらいと出てました。

幸いヨワヨワパスワードだったので、1時間ちょいで解けてしまいました (^o^;)/ 怖

かかった費用

p3.16xlarge Linux/UNIX Spot Instance-hour in US East (N. Virginia) in VPC Zone #7 1.641 Hours $12.06

時間単価 7.35USDくらいですかね。オンデマンドだと24.48USD/時間なので、スポットだと7割引。素晴らしいです。

AWSへ移行したSMTPサーバで見落としがちな罠

オンプレにあったメールサーバ(冗長構成)をAWSに移行したときに危なかった話。

オンプレのロードバランサでは一般的にソースNATはしないと思いますが、AWSのELB(CLB)はソースNATしてしまいます。例えば、PostfixなどでMynetworksにローカルIPが許可されてると、思いっきりサードパーティリレーされてしまうので気を付けましょう :-)

そしてちゃんとサードパーティリレーチェックしましょう。有志によるこんなサイトもあるので、ご活用ください。

http://check.jippg.org/

JetPackの接続エラー

サイトは普通に見えているし証明書エラーも出ていないのですが、JetPackの接続時に “cURL error 60: SSL certificate problem: certificate has expired”と言われて接続できない。もちろん証明書の期限は切れていない。

色々調べた結果、安い証明書を使っているので、中間証明書を入れないといけなかったようだ。Ubuntu 20.04の場合こんな感じ。中間証明書は証明書を買ったところに行けば入手できると思います。

$ sudo vi /etc/apache2/sites-enabled/default-ssl.conf
SSLCertificateChainFile /etc/ssl/certs/lambeden_dyndns_org.ca
$ sudo systemctl restart apache2

今更ながらWSL便利

Windows 10でLinuxディストリビューションを使えるって話題になって久しいですが、今更ながらWSL(Windows Subsystem for Linux)を使い始めました。

選択ディストリビューションはubuntu。20.04LTSが使えるようになってました。

普通に使ってる分にはネイティブなubuntuを使ってるのと変わらないレベルですね。びっくりです。

systemctl statusとか打って

System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: ホストが落ちています

と言われて初めてあーほんとに偽物なんだと気づく(笑)

普通に /mnt/c/Users/XXX/Documentsとかにアクセスできてしまうし。これは確かに便利だは。

とりあえず、やっておくこと。

sudo apt update
sudo apt upgrade
sudo apt install language-pack-ja
sudo update-locale LANG=ja_JP.UTF-8
sudo apt install manpages-ja manpages-ja-dev

timezoneは元々JSTになってました。

参考

https://www.atmarkit.co.jp/ait/articles/1903/18/news031.html

ubuntu 20.04 mysqlが起動しない問題

18.04 LTSから20.04に上げた時に確認したら普通に上がっていたと思うのですが。。。後日、再起動したらmysqldが正しく上がってきませんでした。

確認したら以下のログが

May 9 23:30:24 abel kernel: [ 5967.758467] audit: type=1400 audit(1589034624.217:34): apparmor="DENIED" operation="open" profile="/usr/sbin/mysqld" name="/proc/sys/kernel/random/boot_id
" pid=6850 comm="mysqld" requested_mask="r" denied_mask="r" fsuid=0 ouid=0

/etc/apparmor.d/usr.sbin.mysqldを確認すると、確かに許可されていなかったので、以下を追加したら問題なく起動しました。

/proc/sys/kernel/random/boot_id r,

MySQLが8系になって起動時にランダム値を使うようになったのかな。

Ubuntu 18.04 LTS -> 20.04 LTS on GCP

GCPで運用しているこのサイトのOSをUbuntu 18.04 LTSから20.04LTSにアップグレードした。

gcp用でも問題なく do-release-upgrade -d で上げることができた。なお、gcpでアップグレードを掛けると、Kernelは勝手に5.4.0-1009-gcpになる様だ。(apt/sources.listはhttp://us-west1.gce.archive.ubuntu.com/ubuntu/を参照している)

GCPの問題というわけではなく毎回出る軽微な設定の変更な何点かあった。

  • PHP7.2→7.4になったことによりApacheが起動しない問題
May 02 09:14:18 abel systemd[1]: Starting The Apache HTTP Server... 
May 02 09:14:19 abel apachectl[3698]: apache2: Syntax error on line 146 of /etc/apache2/apache2.conf: Syntax error on line 3 of /etc/apache2/mods-enabled/php7.2.load: Cannot load /usr/lib/apache2/modules/libphp7.2.so into server: /usr/l> 
May 02 09:14:19 abel apachectl[3693]: Action 'start' failed. May 02 09:14:19 abel apachectl[3693]: The Apache error log may have more information. May 02 09:14:19 abel systemd[1]: apache2.service: Control process exited, code=exited, status=1/FAILURE 
May 02 09:14:19 abel systemd[1]: apache2.service: Failed with result 'exit-code'. 
May 02 09:14:19 abel systemd[1]: Failed to start The Apache HTTP Server. 

phpモジュールをリンクしなおして解決
# a2dismod php7.2
# a2enmod php7.4
  • dovecot 2.3系での変更
May 2 09:20:53 abel dovecot: config: Warning: please set ssl_dh= /etc/dovecot/dh.pem 
May 2 09:20:53 abel dovecot: imap-login: Error: Failed to initialize SSL server context: Can't load DH parameters: error:1408518A:SSL routines:ssl3_ctx_ctrl:dh key too small: user=, rip=126.203.14.194, lip=10.138.0.3, session=

May 02 09:23:52 abel dovecot[4362]: config: Warning: NOTE: You can get a new clean config file with: doveconf -Pn > dovecot-new.conf 
May 02 09:23:52 abel dovecot[4362]: config: Warning: Obsolete setting in /etc/dovecot/conf.d/10-ssl.conf:50: ssl_protocols has been replaced by ssl_min_protocol

DH keyを作れと言われるので以下で作る(2048を指定しないと1024で作られてしまう)
dd if=/var/lib/dovecot/ssl-parameters.dat bs=1 skip=88 | openssl dhparam 2048 -inform der > /etc/dovecot/dh.pem

/etc/dovecot/conf.d/10-ssl.confを以下の様に変更
ssl_dh = </etc/dovecot/dh.pem
# ssl_protocols = TLSv1 TLSv1.1 TLSv1.2
ssl_min_protocol = TLSv1

AWS インターネットVPNでRTXを使ったハマった話

AWSのインターネットVPNを張るときRTXでNATを使っているとAWSコンソールからダウンロードできるコンフィグをそのまま使うと繋がりません。

インターネットには繋がっていて、RTXのログにはVPNを張ろうとしている記録が残っているのにshow ipsec sa しても何も出てこなかったら以下を疑ってみましょう。

ipsec ike local address 1 xxx.xxx.xxx.xxx ←ここ

アドレスがCGWとして入力したルータのIPになっていますが、普通、NATを使っているのでRTXのLAN側のIPで書く必要があります。

参考

Gmail アプリケーションパスワード設定

アカウントの保護: Google からのセキュリティに関するアドバイス「 安全性の低いアクセスの無効化 」というのが頻繁に来てうざいので無効化してみました。。。

そしたらこのサーバからGmailのSMTPサーバに飛ばしているメールが飛ばなくなり。。。

重大なセキュリティ通知 「 ログインをブロックしました 」と言われるように。。。

メールサーバのログにはこんなのが。

Oct 22 02:26:31 abel postfix/smtp[6427]: B271742237: to=xxxxxxxx@gmail.com, relay=smtp.gmai
 l.com[74.125.195.109]:587, delay=71777, delays=71776/0.02/0.84/0, dsn=4.7.14, status=deferred
  (SASL authentication failed; server smtp.gmail.com[74.125.195.109] said: 534-5.7.14  Please?534-5.7.14 log in via your web browser and then try 
 again.?534-5.7.14  Learn more at?534 5.7.14  https://support.google.com/mail/answer/78754 c8s
 m17372375pfi.117 - gsmtp)

まぁ、SMTP Authは安全性の低いアクセスって訳ですね。確かに、これだけ権限が集中しているGoogleアカウントをメール送信のためにメールサーバに仕込むのは気が引けてはいました。

では何か手がないかというと、アプリパスワードという専用のパスワードを作ってSMTPサーバを利用する方法がありました。

アプリパスワードを利用するためにはその前に2段階認証を有効にしておく必要があります。

まぁ、詳しくはもろそのまんまなブログがあったので先人の知恵を利用させて頂きました(^_^)

参考サイト

https://blog.saboh.net/smtpgmailcom/

AWS Lightsail to GCP CE

Google Cloud Platformが実は ちっちゃいインスタンスをずっと無料で動かせるという事を知り、このBLOGをAWS LightSailから引っ越しました(笑)

Always Freeの仮想マシン(Compute Engine)条件は以下の通り

1 つの非プリエンプティブル f1-micro VM インスタンス(1 か月あたり)。次の米国リージョンのいずれかで利用できます。
オレゴン: us-west1
アイオワ: us-central1
サウスカロライナ: us-east1
30 GB 月の HDD
次のリージョンで 5 GB スナップショット ストレージ(期間合計):
オレゴン: us-west1
アイオワ: us-central1
サウスカロライナ: us-east1
台湾: asia-east1
ベルギー: europe-west1
1 GB の北米から全リージョン宛ての下りネットワーク(1 か月あたり、中国とオーストラリアを除く)

https://cloud.google.com/free/docs/gcp-free-tier?hl=ja

サイズ的にはAWS LightSailの$3.5/月版(1vCPU, 512MBメモリ,20GB SSD,1TB転送)くらいかと。

米国にサーバを建てないといけないわけですが、クラウドだし、WEBサーバならそんなに気になりません。

違うリージョンに作ってしまったり、対象外の国(中国など)からのアクセスは課金されるので注意。

なお、元のLightSailサーバはスナップショットを取った上で削除しました。スナップショットは$0.05/GB月なので、20GBあっても$1くらいですね。(実際は使ってる分だけなのでそんなにないです。)

参考

https://qiita.com/Brutus/items/22dfd31a681b67837a74