SWEET32問題解決!

scanmyserverのsecurity badge戻ってきました。 昨日行ったapacheの設定見直し正解でした。  のんびり対応したので、WordPress pluginの時みたいに時間がかかりました。

SWEET32問題解決か? – scanmyserverのscanに備えて…

かなり秀逸なblog記事に助けられました。

http://labunix.hateblo.jp/entry/20161009/1475962828

scanmyserverは、nmapを使ってssl protocol checkでなくopensslを使っていると思う。 なので、上記サイトのscriptを少し変更して引数でdomainなりip addressを渡してCheckすると、対応しているCipherをリストアップします。

openssl ciphers -v | awk '{print $1}' | \
 for CIPHER in `xargs`;do \
 echo "#$CIPHER"; \
 echo "GET / HTTP/1.0 \r\n" | openssl s_client -connect $1:443 -cipher ${CIPHER} -tls1_2 -debug 2>&1 | \
 awk '/^#|Protocol|Cipher|support/'; \
 done | grep -B 2 -A 2 "IS supported" | awk '/^#/{sum+=1;print "OK:TLSv1_2,"$0}END{print sum}'

で、scanmyserverでSWEET32が報告されたのは、単に41_mod_ssl.default-vhost.confがapacheのmodule.dに残っていたからでした。 このファイルに書いてあるSSLCipherSuiteが優先されていました(のはず)。 これまず削除。 サイト設定は、すべてvhost.dで行うことにします。 で、各vhost設定に

 SSLEngine on
 SSLCipherSuite EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+SHA384:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA384:EECDH+aRSA+SHA256:!aNULL:!eNULL:!DES:!3DES:!RC4:!RC2:!IDEA:!MD5:!SHA1:!SSLv3:!TLSv1:!EXP:!LOW:!MEDIUM:!DH:!DSS:!aNULL
 SSLHonorCipherOrder on
 SSLProtocol All -SSLv2 -SSLv3 -TLSv1

と記載。 上記スクリプトを実行すると。

# checkConfig.sh www.channelx.biz
OK:TLSv1_2,#ECDHE-RSA-AES256-GCM-SHA384
OK:TLSv1_2,#ECDHE-RSA-AES256-SHA384
OK:TLSv1_2,#ECDHE-RSA-AES128-GCM-SHA256
OK:TLSv1_2,#ECDHE-RSA-AES128-SHA256
4

となりました。 これで、今晩のscanmyserverのscanでSWEET32は改善されるはず。 ちなみにlinuxのdistributionは、gentooです。apacheのmod_sslで対応しているcipher等はhttps://httpd.apache.org/docs/2.4/mod/mod_ssl.html#table2で見つかる。

opensslは、ip addressベースでチェックだと思う。 なので、ip addressでアクセスされたときのSSLCipherSuite設定も行っておく必要ありかな。

外資系会社で働いて思うこと…

15年以上会社勤めしてますが、そのうち35%ぐらいは外資系会社です。 こてこての内資→外資→外資。 そんな中外資でもいろいろあるんだなと感じてます。

  1. 純日本企業 - マネージメントも社員も日本人。
  2. マネージメントが日本人の外資系 - 外資ですが日本人がカントリーマネージャーだったりする。
  3. マネージメントも外国人の外資系 - ボスが外国人。 直属上司も外国人みたいな会社。

2と3では、仕事への取り組み方が全く違います。 マネージメントが日本人だといちいち日本の商習慣とか説明しなくてもわかってもらえますが、3だと日本の常識から説明する必要があります。 日本で当たり前のことを粘り強く説明し続けるということが仕事の一つになっていますが、これが理解できていないと3の環境で働くのはかなり苦しいと思う。

我去工作

I go to my work. really? 我去上班 is better?

今天 is today. 明天 is tomorrow. What is yesterday? 昨天?

Windows 10 Creators Updateにしてからタスクバーが反応しなくなった

そんなに頻度は高くないが固まる。 基本的にCtrl-Alt-Delで再起動しか復旧させる方法がない。

sfc /scannow

とか

dism /online /cleanup-image /restorehealth

とかやっても直らない。はてどうしたものかと悩んでいる。

動かないulogdとiptablelog analyzer

簡単なスクリプトは書いたが、まともなユーティリティーがないかと探してみた。 ulogdとiptablelog analyzerという物があった。 四苦八苦してconfigファイルを設定したが、mysqlのsyntaxにエラーがありますと、まともに動かない。 mysqlは5.5-r6 on gentoo.  ulogdのdocに入っているsqlファイルだとエラーにならないので、iptablelog analyzerがobsolete。mysqlにログを取ってもそれをparseするuiがないので、とりあえずお蔵入り。 そもそも5年近くメンテされてないので、obsolete感がある。 とりあえず放置。 元々のlogファイルに戻る。

ちなみにiptablelog analyzerのsql scriptには、LOCAL.soをベースにした、local.hostenameがmysqlのtableに作られるが、ulogdのgentoo distributionではLOCAL.soをcompileされないのでsql scriptから削除が必要。

参考になったページ

[修正]iptablesのログのip addressをdomain nameではき出すscript

*** PHPのWarningやら文字列のIndex値が違っていたので修正。 だらだらと流れるiptablesのlogを見ているのは暇つぶし。

ざっくりこんな感じ。

<?php

//for dubugging set this to true.
//$debug = true; //to enable debugging info.
$debug = false;
//colour code for echo
$colour_red = "\e[31m";
$colour_yellow = "\e[33m";
$colour_reset = "\e[m";

if (!$debug) { error_reporting(0); }

while (false !== ($line = fgets(STDIN))) {
 //echo $line;
 $log_pieces = explode(" ", $line);
 $rule = $log_pieces[6];
 if($debug) { echo "Rule is " . $rule . "\n"; }
 if ($rule == "OUTPUT]") {
 if($debug) { echo "Rule is " . $rule . "\n"; }
 $src_idx = 9;
 $dst_idx = 10;
 } else {
 $src_idx = 10;
 $dst_idx = 11;
 }
 $src_ip = substr($log_pieces[$src_idx],4);
 $dst_ip = substr($log_pieces[$dst_idx],4);

$src_hostname = gethostbyaddr($src_ip);
 if ($src_hostname == $src_ip) {
 $src_hostname = $colour_red . $src_hostname . $colour_reset;
 } else {
 $src_hostname = $colour_yellow . $src_hostname . $colour_reset;
 }

$dst_hostname = gethostbyaddr($dst_ip);
 if ($dst_hostname == $dst_ip) {
 $dst_hostname = $colour_red . $dst_hostname . $colour_reset;
 } else {
 $dst_hostname = $colour_yellow . $dst_hostname . $colour_reset;
 }

if ($debug) {
 echo "$log_pieces[$src_idx] $src_ip $src_hostname\n";
 echo "$log_pieces[$dst_idx] $dst_ip $dst_hostname\n";
 echo " \n";
 }

$log_pieces[$src_idx] = "SRC=" . $src_hostname . " ";
 $log_pieces[$dst_idx] = "DST=" . $dst_hostname . " ";
 $rebuilt_log = implode(" ", $log_pieces);
 echo "$rebuilt_log";
}

?>

ログ自体は、こんな感じ。

Aug 9 22:03:36 hostname kernel: [iptables OUTPUT] IN= OUT=lo SRC=x.x.x.x DST=x.x.x.x LEN=88 TOS=0x00 PREC=0xC0 TTL=64 ID=45378 PROTO=ICMP TYPE=3 CODE=1 [SRC=x.x.x.x DST=x.x.x.x LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=47596 DF PROTO=TCP SPT=46141 DPT=10050 WINDOW=29200 RES=0x00 SYN URGP=0 ]

 

参考になったページは、

#> tail -f myiptable.log | php thisscipt.sh で実行。

 

なかなか修正出来ないSWEET32問題

なおらない…

SSLCipherSuite "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA !RC4 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS !DH !DES !SSLv2 !SSLv3"

を設定しても、scanmyserver.comのscanでSWEET32問題があると検出されます。 どうやら、www.channelx.bizとchannelx.bizの結果がちがうみたい。

まずは、channelx.bizがwww.channelx.bizのaliasとして動作するように設定して、様子見。

好好学习,天天向上

hao3 hao xue2 xi2, tian1 tian xiang4 shang4.

Chinese I learnt last night

饺子很好吃 – I like to eat Chinese dumplings a lot. 很 very 好 like 吃 eat. 麻婆豆腐很好吃。

我喜欢吃麻婆豆腐 – I like to eat 麻婆豆腐. 我喜欢吃饺子.我喜欢喝青岛啤酒.

我不是吃辣的. – I can’t eat something hot.

more to come.

 

Vulnerability Scanner Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
You are accessing channelx.biz via ipv4 (107.22.52.86).