HashiCorp Vaultの基礎知識と導入 | Developers.IO
らしい。
Vaultがフロントに立ち、暗号化/複合化 を担ってくれるらしい。
1) だけ聞くと、導入したくなりますが、 2) のような中身であれば、自前実装でもよい気がします。
3)のように初回リリースから、それ程、経過していないこともあるので、 もう少し様子見
HashiCorp Vaultの基礎知識と導入 | Developers.IO
らしい。
Vaultがフロントに立ち、暗号化/複合化 を担ってくれるらしい。
1) だけ聞くと、導入したくなりますが、 2) のような中身であれば、自前実装でもよい気がします。
3)のように初回リリースから、それ程、経過していないこともあるので、 もう少し様子見
「インシデント発生時の初動調査の手引き WindowsOS標準ツールで感染を見つける」
https://www.ipa.go.jp/security/J-CRAT/report/20180329.html
└ https://www.ipa.go.jp/files/000065284.pdf
外部からの攻撃が、サーバを超え、更に内部のPCにまで達すると、 攻撃の痕跡調査は(少なくとも私には)難しくなりますが、 J-CRATが公開する以下のpdfは、windowsのコマンドラインまで記載されているので、助かります。
外部委託する際の 要求のまとめ方について、ググってみた
以下は、いずれも、「記載されていて当然」的な内容ですが、 漏れがちな内容でもありますので、自分用にメモ。
IPAが公開する 要求/要件仕様等、全般のサンプル(テンプレート)
1) https://www.ipa.go.jp/osc/trm/index.html
└ 2) https://www.ipa.go.jp/osc/trm/trmtemplate.html
図や表でなく、多くを文章で記載されていますが、さすがの情報量、というか網羅性。
上記 2)にある資料には、機能要求や非機能要求だけでなく、 納品物の定義やプロジェクト推進方法まで記載されています。
まぁ、ここまで細かく指定してくれるシステム発注者は、いないんですけどね。
http://www.nisc.go.jp/active/general/kijun28.html
内閣サイバーセキュリティセンターが公開する特にセキュリティ対策の資料。
こちらも、多くを文章で記載されていますが、さすがの網羅性。
http://www.nisc.go.jp/active/general/sbd_sakutei.html
こちらも、内閣サイバーセキュリティセンターによる公開資料。
特に * セキュリティ要件策定マニュアル 付録A.対策要件集 * には 具体的セキュリティリスクの内容と、それに対する仕様記載例、対策例 が、 表形式で記載されていて、読み休みです。
http://www.soumu.go.jp/denshijiti/jyouhou_policy/index.html
こちらは「地方公共団体」向けで、 前述の「情報システム調達のための技術参照モデル(TRM)」と重複している 部分も多くありますので、参考程度。
システム運用に関しては、以前、以下のエントリを記載しています。
ITILにおけるインシデント管理と、問題管理 - end0tknr's kipple - 新web写経開発
システム運用管理の勘どころ - end0tknr's kipple - 新web写経開発
JPCERT CC が公開する インシデント ハンドリング マニュアル (以下)は、 ITILのフローと異なりますが、JPCERT CC が出してるものですので、参考になります
https://www.jpcert.or.jp/csirt_material/files/manual_ver1.0_20151126.pdf
以前も mysql 5.7 に関して同様のentryを記載していますが、 virtual boxで動作させている centos を ver.7.4 にした為、改めてinstall
先程のentryにも記載していますが、mysql 5.7.18 より、
my.cnf が提供されない為、mysql 5.6.40をinstallしています
mysql5.7 をsrcからinstall - end0tknr's kipple - 新web写経開発
MySQL :: MySQL 5.6 リファレンスマニュアル :: 2.9 ソースから MySQL をインストールする
$ cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core)
以前は、とっくにreadlineやncurses (≒ curses) がinstall された centos7 環境に mysql をinstallしていたらしい。
そこで今回は、readline と ncurses を install
$ ftp://ftp.cwru.edu/pub/bash/readline-6.3.tar.gz $ tar -xvf readline-6.3.tar.gz $ cd readline-6.3 $ configure $ make $ sudo make install
https://www.gnu.org/software/ncurses/
https://invisible-island.net/ncurses/ncurses.html
$ sudo yum install ncurses-devel
$ tar -xvf mysql-5.6.40.tar.gz $ cd mysql-5.6.40 $ cmake . \ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci \ -DENABLED_LOCAL_INFILE=true \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_EXTRA_CHARSETS=all \ -DWITH_READLINE=ON \ $ make $ make test $ sudo make install
$ sudo groupadd mysql $ sudo useradd -r -g mysql mysql
MySQL :: MySQL 5.6 リファレンスマニュアル :: 2.9.2 標準ソース配布を使用して MySQL をインストールする
dev.mysql.comのdocument のように単純?に scripts/mysql_install_db を実行すると data dir が /usr/local/mysql 以下に作成されます。
/usr/local/mysql 以下にデータがある構成は、好みではありませんので、「 --datadir=/var/mysql_data/ 」を追加しています。
( dev.mysql.comのdocument では、/usr/local/mysql 以下に data dir を作成する為、 余計な chown や chgrp の実行が必要です )
$ cd /usr/local/mysql $ sudo /usr/local/bin/perl \ scripts/mysql_install_db \ --user=mysql --datadir=/var/mysql_data/
先程の scripts/mysql_install_db により /usr/local/mysql/my.cnf が作成されますので、 /etc/my.cnf へ移動し、編集します。
$ sudo su - # cd /etc # mv /usr/local/mysql/my.cnf ./my.cnf # vi ./my.cnf
以下、編集内容
old) # basedir = ..... new) basedir = /usr/local/mysql old) # datadir = ..... new) datadir = /var/mysql_data
mysql 5.1頃から使用していたmy.cnfでは、 他にも様々、設定していましたが、上記だけの編集でも動作はするようです。
$ cd /usr/local/mysql $ sudo bin/mysqld_safe --user=mysql
上のようにmysqlのdaemonを起動し、 下のようにmysqlのclientで接続できれば、OKです。
$ /usr/local/mysql/bin/mysql -u root : Server version: 5.6.40 Source distribution Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved. : mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | +--------------------+ 4 rows in set (0.00 sec)
接続test完了後は、mysqlのdaemonを停止してOKです。
ただし、停止方法が分からなかった為、kill しています。
自動起動の設定自体は、mysql.server を /etc/init.d 以下にcopyするだけです。 設定後、centosを再起動して、mysqlのdaemonが動作していることを確認しましょう。
$ sudo su - # cd /etc/init.d # cp /usr/local/mysql/support-files/mysql.server ./mysql.server # systemctl enable mysql.server # reboot
MySQL :: MySQL 5.7 Release Notes :: Changes in MySQL 5.7.18 (2017-04-10, General Availability)
上記のrelease noteに以下のように記載されています。
The my-default.cnf.sh file (used to produce a default my-default.cnf or my-default.ini file) is no longer included in source distributions and my-default.cnf and my-default.ini are no longer included in or installed by distribution packages. (Bug #22525354)
「my-default.cnf.sh だけの話で、my-default.cnf はあるのかも」と思い、 mysql 5.7.22 をsrcから installしましたが /etc/my.cnf や cd /usr/local/mysql/support-files/my-default.cnf がない。
全く最初からinstallする場合、my.cnf をどうやって準備しろと?
しばらくは、↓こちらを参考に my.cnfを作成しよう
「gpedit.msc」を「ファイル名を指定して実行」し、後は下図の通り
「バーバラ・ミントさんの名前は聞いたことがあるかなぁ...」程度でしたが、 とあるきっかけで「考える技術・書く技術」の「書く技術」を中心に読んでみた。
以下、自分用メモ
https://www.amazon.co.jp/dp/4478490279www.amazon.co.jp
https://www.amazon.co.jp/dp/4478490279
上記のように図示できますが、単純には以下のように理解してよい気がします。
アプローチ | 説明 |
---|---|
トップダウン | なぜなぜ分析 |
ボトムアップ | KJ法 |
「人が短期記憶できる情報はかなり少ない」為、 「各グループ内のメッセージは削減する or 集約すべき」らしい
伝えようとするテーマについて読み手が既に知っていると思われることを要約し、 これから文書中で答えなければならない疑問を明らかにする。
導入部は省略しない。状況や過去の出来事は導入部を利用する。
「導入部のストーリー展開」とは「状況(Situation)」→「複雑化(Complication)」 →「疑問(Question)」。
状況 (主題に関し 確認されている事実) |
複雑化 (次に起こった 疑問へつながる事実) |
疑問 |
---|---|---|
しなければならない仕事がある | その仕事の妨げに なることが起きた |
どうすればよいか |
問題がある | 解決方法を知っている | 解決方法を実行するには どうすればよいか |
問題がある | 解決方法が提案された | それは正しい解決方法か |
行動をとった | その行動は効果がなかった | なぜ効果がなかったか |
超大量のサーバがあり && EOLなミドルウエア管理ができていない場合、 「独自virus定義を作成し、virus scanに検知だけさせれば」と思ったのがきっかけ
groupadd
$ su - # groupadd clamav # useradd -g clamav -s /bin/false -c "Clam Antivirus" clamav
download , configure , make ...
$ wget https://www.clamav.net/downloads/production/clamav-0.99.4.tar.gz $ tar -xvf clamav-0.99.4.tar.gz $ cd clamav-0.99.4 $ ./configure : configure: Summary of detected features follows OS : linux-gnu pthreads : yes (-lpthread) configure: Summary of miscellaneous features check : no (auto) fanotify : yes fdpassing : 1 IPv6 : yes configure: Summary of optional tools clamdtop : -lncurses (auto) milter : yes (disabled) clamsubmit : yes configure: Summary of engine performance features release mode: yes llvm : yes, from built-in (auto) mempool : yes configure: Summary of engine detection features bzip2 : ok zlib : /usr unrar : yes pcre : /usr libxml2 : yes, from /usr yara : yes $ $ su # make install
install後、virus定義file(DB)を更新しようと、freshclam を実行したところ、 errorとなった為、freshclam.conf を作成。
freshclam.conf のファイルすらなかったので、サンプルよりcopy
# /usr/local/bin/freshclam ERROR: Can't open/parse the config file /usr/local/etc/freshclam.conf # cp ~/clamav-0.99.4/etc/freshclam.conf.sample /usr/local/etc/freshclam.conf
が、freshclam.conf 内に「Example」という記述があったので、コメント化
# /usr/local/bin/freshclam ERROR: Please edit the example config file /usr/local/etc/freshclam.conf ERROR: Can't open/parse the config file /usr/local/etc/freshclam.conf # vi /usr/local/etc/freshclam.conf
が、virus定義file 用のdirがない為、mkdir
# /usr/local/bin/freshclam ERROR: Can't change dir to /usr/local/share/clamav # mkdir /usr/local/share/clamav
が、ユーザ(clamav)への書込み権限が必要らしく、chown
# /usr/local/bin/freshclam ERROR: Can't create temporary directory /usr/local/share/clamav/clamav-3187640ea28ef290eedab5f5bfa9fc8c.tmp Hint: The database directory must be writable for UID 1003 or GID 1003 # ls -l /usr/local/share # chown clamav /usr/local/share/clamav
で、やっと成功。
# /usr/local/bin/freshclam ClamAV update process started at Sun Apr 8 10:47:58 2018 Downloading main.cvd [100%] main.cvd updated (version: 58, sigs: 4566249, f-level: 60, builder: sigmgr) Downloading daily.cvd [100%] daily.cvd updated (version: 24459, sigs: 1902655, f-level: 63, builder: neo) Downloading bytecode.cvd [100%] bytecode.cvd updated (version: 319, sigs: 75, f-level: 63, builder: neo) Database updated (6468979 signatures) from database.clamav.net (IP: 27.96.54.66) #
clamavには、3種類の定義fileの書式があるようです。 以下に記載していますが、いずれも clamav付属の sigtool を利用できます。
hexdumpし、適当な範囲(40~400文字程度?)でcutし、これを*.dbに保存
$ cat /usr/local/openssl_1_0_1/bin/openssl | \ /usr/local/bin/sigtool --hex-dump | \ cut -c 1-100 >> /home/endo/tmp/CLAM_DATA/test.db
$ /usr/local/bin/sigtool --md5 /usr/local/openssl_1_0_1/bin/openssl \ > /home/endo/tmp/CLAM_DATA/test.hdb
$ /usr/local/bin/sigtool --mdb /usr/local/openssl_1_0_1/bin/openssl \ > /home/endo/tmp/CLAM_DATA/test.mdb
以下の通りです。infected オプションにより検知のみ(削除等を行わない)にしています
$ /usr/local/bin/clamscan --verbose --infected \ --database=/home/endo/tmp/CLAM_DATA \ -r /home/endo/tmp/CLAM_TEST
誤送信防止プラグインである Secure Addressing の送信前確認画面において 宛先に応じた顔写真を表示。 顔写真は、WEB上(イントラ内)にあり、httpsにてアクセス可能。
https://addons.mozilla.org/ja/thunderbird/addon/secure-addressing/
これを実現するには、Thunderbirdのaddonにおいて、以下の技術要素が必要
imageタグ内のsrc属性は「https://~.png」のように拡張子で終わる場合、問題ないが、 拡張子で終わらない場合、画像が表示されない為。
(XULの問題かと思いましたが、Thunderbirdのアドレス帳の「顔写真」タブで、 拡張子なしのURLを指定した場合も表示されなかったので)
また、Thunderbird環境で画像ファイルをダウンロード & 保存する方法も 分かりませんでしたので
今回、初めてThunderbirdのアドオン開発に触れてみましたが、以下のurlを読み、 更にダウンロードした実際のThunderbirdアドオンをunzipして読経するとよいと思います。
http://www.magicvox.net/archive/2014/03161644/ http://www.koikikukan.com/archives/2018/01/30-000300.php http://thinkami.hatenablog.com/entry/20140429/1398721329
http://remotehost.blog54.fc2.com/blog-entry-22.html?q=thunderbird&charset=utf-8 http://d.hatena.ne.jp/mallowlabs/20080807/1218106360 https://developer.mozilla.org/en-US/docs/Mozilla/Thunderbird/Thunderbird_extensions/Building_a_Thunderbird_extension
以下の内容で、ssl化するはずですし、起動時のパスフレーズも聞かれないはず。
自分用メモ
Listen 443 https #SSLPassPhraseDialog exec:/usr/libexec/httpd-ssl-pass-dialog SSLPassPhraseDialog builtin SSLSessionCache shmcb:/run/httpd/sslcache(512000) SSLSessionCacheTimeout 300 #SSLRandomSeed startup file:/dev/urandom 256 SSLRandomSeed startup builtin SSLRandomSeed connect builtin #SSLRandomSeed startup file:/dev/random 512 #SSLRandomSeed connect file:/dev/random 512 #SSLRandomSeed connect file:/dev/urandom 512 SSLCryptoDevice builtin #SSLCryptoDevice ubsec <VirtualHost _default_:443> #DocumentRoot "/var/www/html" ServerName www.sexy-example.com:443 ErrorLog /data/sexyexample/logs/ssl_error_log LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" TransferLog /data/sexyexample/logs/ssl_access_log LogLevel warn SSLEngine on SSLProtocol -All +TLSv1 +TLSv1.1 +TLSv1.2 #SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5:!SEED:!IDEA SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5 #SSLCertificateFile /etc/pki/tls/certs/localhost.crt SSLCertificateFile /etc/httpd/cert/sexyexample_crt.pem #SSLCertificateKeyFile /etc/pki/tls/private/localhost.key SSLCertificateKeyFile /etc/httpd/cert/sexyexample_key.pem #SSLCertificateChainFile /etc/pki/tls/certs/server-chain.crt SSLCertificateChainFile /etc/httpd/cert/sexyexample.cer BrowserMatch "MSIE [2-5]" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 CustomLog /var/log/sexyexample/httpd/logs/ssl_request_log \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" </VirtualHost>
例えば、次の通り。(byte単位です)
# /usr/bin/rsync -e ssh -auolr --bwlimit=2048 /data/attach_file testadm@10.82.???.???:/data