logo
 2003年   2004年   2005年   2006年   2007年   2008年   2009年   2010年   2011年   2012年   2013年   2014年   2015年 
 9月 
 10月 
 11月 
 12月 
 1月 7月 
 2月 8月 
 3月 9月 
 4月 10月 
 5月 11月 
 6月 12月 
 1月 7月 
 2月 8月 
 3月 9月 
 4月 10月 
 5月 11月 
 6月 12月 
 1月 7月 
 2月 8月 
 3月 9月 
 4月 10月 
 5月 11月 
 6月 12月 
 1月 7月 
 2月 8月 
 3月 9月 
 4月 10月 
 5月 11月 
 6月 12月 
 1月 7月 
 2月 8月 
 3月 9月 
 4月 10月 
 5月 11月 
 6月 12月 
 1月 7月 
 2月 8月 
 3月 9月 
 4月 10月 
 5月 11月 
 6月 12月 
 1月 7月 
 2月 8月 
 3月 9月 
 4月 10月 
 5月 11月 
 6月 12月 
 1月 7月 
 2月 8月 
 3月 9月 
 4月 10月 
 5月 11月 
 6月 12月 
 1月 7月 
 2月 8月 
 3月 9月 
 4月 10月 
 5月 11月 
 6月 12月 
 1月 7月 
 2月 8月 
 3月 9月 
 4月 10月 
 5月 11月 
 6月 12月 
 1月 7月 
 2月 8月 
 3月 9月 
 4月 10月 
 5月 11月 
 6月 12月 
 1月 7月 
 2月 8月 
 3月 9月 
 4月 10月 
 5月 11月 
 6月
アイコンの説明
code:Haemophilus influenzae
ここに書かれていることは無保証です。同じことを行って問題が発生しても、龍義は責任をとりません。


12/1 WWW ブラウザを使っていると、位置情報を要求されることがある。Firefox の場合。 Firefox の位置情報要求 Opera の場合。 Opera の位置情報要求 これって、html レベルでどうやって実現しているのか調べてみた。HTML 5 で 規定された Geolocation API を使っていて、javascript から呼び出すみたい。 さっそく簡単な html を書いてやってみた。こんな感じ。
<html><head>
<script language="javascript" type="text/javascript">
<!--
  navigator.geolocation.getCurrentPosition(dummy);
  function dummy(){}
-->
</script>
</head><body></body></html>
ファイルをローカルに置いて実験してみると、Firefox では位置情報を確認する ウィンドウが出てきたけど、Opera では出てこない。 Firefox の位置情報要求 アドレスの左側に位置アイコンがあるので、クリックしてみるとアクセス拒否の 表示が出てきた。「この設定をクリア」のボタンをクリックしても何も起こらず。 Opera のクリア画面 web サーバに置いてやってみると、Opera でも出てきた。 Opera の位置情報要求 気になったので chrome でも実験してみたら、やっぱりローカルに置いたファイル には反応しない。サーバに置いた場合だとちゃんと出てきた。 chrome の位置情報要求 PC 自体に位置情報を取得するデバイスがないので、許可しようがしまいが情報は 取得できないため、今はどうでも良い。しかし、この Geolocation API を使った html を書く場合は、ローカルで反応するかどうかは重要になって来るので、気に なると言えば、気になるな。
12/2 Electric 台所で使っているキッチンタイマーの電池が切れた。実際には、音は出るけど、 液晶の表示が見えない状態。決められた時間を予測でセットして、音を出すことは できるけど、残り何秒とかがわからない感じ。このキッチンタイマーが使っている 電池は単四電池で、家にあった電池のストックは無線マウスの電池として使った ために残っていない。どうしたものかと考えて、 ・無線マウスで使っている電池をキッチンタイマーに入れる ・この前買ったニッケル水素電池を無線マウスで使い始める ということにした。液晶が見えなくなったキッチンタイマーに入っていた電池の 電圧を測ると 1.05V だった。11/15 から使い始めたマウスの電池は 1.21V まで 落ちていた。 これでニッケル水素電池がどのぐらいもつのか、楽しみだ。
12/3 WWW LIVA-C0-2G-64G-W たまに手元のサーバを外からアクセスしたいときがある。そんなときは ssh で 外のサーバに入って、w3m や lynx で確認をする。が、たまに javascript とか 動かしてみたいときもあるので、自分のためのプロキシを作ろうかと。 外にプロキシを置くので、オープンプロキシにならないように制限をかけないと いけないが、プロキシの認証をかけた場合、単なる basic 認証や digest 認証に なるような気がして。そうすると、ネットワーク上にパスワードのハッシュ等が 流れてしまうので、気分が良くない。 まず、プロキシの認証ってどんなやりとりになるのかを確認するために、手元の サーバに squid を入れて実験してみることに。 [toyota@mygeeto ~]$ cd /tmp [toyota@mygeeto tmp]$ wget http://www.squid-cache.org/Versions/v3/3.5/squid-3.5 .13.tar.bz2 [toyota@mygeeto tmp]$ tar xfj squid-3.5.13.tar.bz2 [toyota@mygeeto tmp]$ cd squid-3.5.13/ [toyota@mygeeto squid-3.5.13]$ ./configure --help (snip) --enable-auth Build global support for authentication. The list of schemes and helpers to be enabled is defined elsewhere --enable-auth-basic="list of helpers" Enable the basic authentication scheme, and build the specified helpers. Not providing an explicit list of helpers will attempt build of all possible helpers. Default is to do so. To disable the basic authentication scheme, use --disable-auth-basic. To enable but build no helpers, specify "none". To see available helpers, see the helpers/basic_auth directory. --enable-auth-digest="list of helpers" Enable the Digest authentication scheme, and build the specified helpers. Not providing an explicit list of helpers will attempt build of all possible helpers. Default is to do so. To disable the Digest authentication scheme, use --disable-auth-digest. To enable but build no helpers, specify "none". To see available helpers, see the helpers/digest_auth directory. --enable-auth-negotiate="list of helpers" Enable the Negotiate authentication scheme, and build the specified helpers. Not providing an explicit list of helpers will attempt build of all possible helpers. Default is to do so. To disable the Negotiate authentication scheme, use --disable-auth-negotiate. To enable but build no helpers, specify "none". To see available helpers, see the helpers/negotiate_auth directory. --enable-auth-ntlm="list of helpers" Enable the NTLM authentication scheme, and build the specified helpers. Not providing an explicit list of helpers will attempt build of all possible helpers. Default is to do so. To disable the NTLM authentication scheme, use --disable-auth-ntlm. To enable but build no helpers, specify "none". To see available helpers, see the helpers/ntlm_auth directory. (snip) あ、basic 認証とか digest 認証以外に、rfc4559 の negotiate とか NTLM も 対応しているのか。さすがに rfc5849 の OAuth は対応してないようだけど。 昨年、じゃなくて一昨年に更新された HTTP/1.1 で認証関係は rfc7235 で規定 されているようなのだけど、rfc4559 も含めたブラウザの対応ってどうなって いるのか調べたことがないな。 rfc4559 の negotiate を使う前提で、コンパイルしてみる。 [toyota@mygeeto squid-3.5.13]$ ./configure --prefix=/tmp/squid --enable-auth --disable-auth-basic --disable-auth-digest --enable-auth-negotiate --disable-auth-ntlm --disable-icmp --disable-snmp --disable-eui --disable-htcp --disable-ipv6 configure の途中で止まると思っていたけど、予想に反して完走した。make して みる。 [toyota@mygeeto squid-3.5.13]$ make Making all in compat make[1]: Entering directory `/tmp/squid-3.5.13/compat' source='assert.cc' object='assert.lo' libtool=yes \ DEPDIR=.deps depmode=none /bin/sh ../cfgaux/depcomp \ (snip) ../libtool: line 1125: g++: command not found make[1]: *** [assert.lo] Error 1 make[1]: Leaving directory `/tmp/squid-3.5.13/compat' make: *** [all-recursive] Error 1 まさかの原因だな。まさかの原因すぎて configure でチェックしてなかったの だろうか。gcc は rpm で入れた記憶があるので、確認。 [toyota@mygeeto squid-3.5.13]$ cd /tmp [toyota@mygeeto tmp]$ cat /etc/redhat-release CentOS Linux release 7.1.1503 (Core) [toyota@mygeeto tmp]$ rpm -qa | grep gcc libgcc-4.8.3-9.el7.x86_64 gcc-4.8.3-9.el7.x86_64 CentOS の web ページで確認すると、gcc-c++-4.8.5-4.el7.x86_64.rpm が最新で、 このまま入れると gcc との整合性がないので問題がおきるかもな。gcc は rpm から入れたのか、yum で入れたのか記憶がないので、自分のページを検索した。 6/8 に rpm で入れていた。まずは、gcc のアップデートから。 [toyota@mygeeto tmp]$ wget -q http://mirror.centos.org/centos/7/os/x86_64/Packa ges/gcc-4.8.5-4.el7.x86_64.rpm [toyota@mygeeto tmp]$ wget -q http://mirror.centos.org/centos/7/os/x86_64/Packa ges/libgcc-4.8.5-4.el7.x86_64.rpm [toyota@mygeeto tmp]$ wget -q http://mirror.centos.org/centos/7/os/x86_64/Packa ges/gcc-c++-4.8.5-4.el7.x86_64.rpm [toyota@mygeeto tmp]$ su [root@mygeeto tmp]# rpm -U gcc-4.8.5-4.el7.x86_64.rpm warning: gcc-4.8.5-4.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a 80eb5: NOKEY error: Failed dependencies: cpp = 4.8.5-4.el7 is needed by gcc-4.8.5-4.el7.x86_64 libgomp = 4.8.5-4.el7 is needed by gcc-4.8.5-4.el7.x86_64 ちょっと足りないみたいなので、さらに rpm をダウンロード。 [root@mygeeto tmp]# wget -q http://mirror.centos.org/centos/7/os/x86_64/Package s/libgomp-4.8.5-4.el7.x86_64.rpm [root@mygeeto tmp]# wget -q http://mirror.centos.org/centos/7/os/x86_64/Package s/cpp-4.8.5-4.el7.x86_64.rpm [root@mygeeto tmp]# rpm -U libgomp-4.8.5-4.el7.x86_64.rpm warning: libgomp-4.8.5-4.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY error: Failed dependencies: libgomp = 4.8.3-9.el7 is needed by (installed) gcc-4.8.3-9.el7.x86_64 [root@mygeeto tmp]# rpm -U cpp-4.8.5-4.el7.x86_64.rpm warning: cpp-4.8.5-4.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a 80eb5: NOKEY error: Failed dependencies: cpp = 4.8.3-9.el7 is needed by (installed) gcc-4.8.3-9.el7.x86_64 お互いが依存しているので、まとめてインストールする必要があるのかな。やって みる。 [root@mygeeto tmp]# rpm -U cpp-4.8.5-4.el7.x86_64.rpm libgomp-4.8.5-4.el7.x86_6 4.rpm gcc-4.8.5-4.el7.x86_64.rpm warning: cpp-4.8.5-4.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a 80eb5: NOKEY [root@mygeeto tmp]# rpm -U gcc-c++-4.8.5-4.el7.x86_64.rpm warning: gcc-c++-4.8.5-4.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY error: Failed dependencies: libstdc++ = 4.8.5-4.el7 is needed by gcc-c++-4.8.5-4.el7.x86_64 libstdc++-devel = 4.8.5-4.el7 is needed by gcc-c++-4.8.5-4.el7.x86_64 gcc のライブラリも必要みたいなので、入れて。 [root@mygeeto tmp]# wget -q http://mirror.centos.org/centos/7/os/x86_64/Package s/libstdc++-4.8.5-4.el7.x86_64.rpm [root@mygeeto tmp]# wget -q http://mirror.centos.org/centos/7/os/x86_64/Package s/libstdc++-devel-4.8.5-4.el7.x86_64.rpm [root@mygeeto tmp]# rpm -U libstdc++-4.8.5-4.el7.x86_64.rpm libstdc++-devel-4.8 .5-4.el7.x86_64.rpm gcc-c++-4.8.5-4.el7.x86_64.rpm warning: libstdc++-4.8.5-4.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY ようやく入ったので make する。 [toyota@mygeeto squid-3.5.13]$ make Making all in compat make[1]: Entering directory `/tmp/squid-3.5.13/compat' source='assert.cc' object='assert.lo' libtool=yes \ DEPDIR=.deps depmode=none /bin/sh ../cfgaux/depcomp \ /bin/sh ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I.. -I../ include -I../lib -I../src -I../include -I../libltdl -c -o assert.lo assert .cc libtool: compile: g++ -DHAVE_CONFIG_H -I.. -I../include -I../lib -I../src -I.. /include -I../libltdl -c assert.cc -o .libs/assert.o In file included from ../compat/compat.h:70:0, from ../include/squid.h:43, from assert.cc:9: ../compat/types.h:139:2: error: #error size_t is not 32-bit or 64-bit #error size_t is not 32-bit or 64-bit ^ In file included from ../compat/compat.h:100:0, from ../include/squid.h:43, from assert.cc:9: ../compat/compat_shared.h:105:20: error: field 'ru_stime' has incomplete type struct timeval ru_stime; ^ ../compat/compat_shared.h:106:20: error: field 'ru_utime' has incomplete type struct timeval ru_utime; ^ In file included from ../include/squid.h:12:0, from assert.cc:9: ../include/autoconf.h:1588:16: error: duplicate 'unsigned' #define size_t unsigned int ^ ../include/autoconf.h:1588:25: error: multiple types in one declaration #define size_t unsigned int ^ ../include/autoconf.h:1588:25: error: declaration does not declare anything [-f permissive] ../include/autoconf.h:1585:15: error: multiple types in one declaration #define pid_t int ^ ../include/autoconf.h:1585:15: error: declaration does not declare anything [-f permissive] ../include/autoconf.h:1594:15: error: multiple types in one declaration #define uid_t int ^ ../include/autoconf.h:1594:15: error: declaration does not declare anything [-f permissive] In file included from ../compat/compat_shared.h:231:0, from ../compat/compat.h:100, from ../include/squid.h:43, from assert.cc:9: ../compat/strtoll.h:22:14: error: 'int64_t' does not name a type SQUIDCEXTERN int64_t strtoll(const char *nptr, char **endptr, int base); ^ In file included from ../include/squid.h:12:0, from assert.cc:9: ../include/autoconf.h:1582:20: error: multiple types in one declaration #define off_t long int ^ ../include/autoconf.h:1582:20: error: declaration does not declare anything [-f permissive] ../include/autoconf.h:1591:17: error: multiple types in one declaration #define ssize_t int ^ ../include/autoconf.h:1591:17: error: declaration does not declare anything [-f permissive] assert.cc: In function 'void xassert(char*, char*, int)': assert.cc:13:74: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings] fprintf(stderr, "assertion failed: %s:%d: \"%s\"\n", file, line, expr); ^ assert.cc:14:11: error: 'abort' was not declared in this scope abort(); ^ make[1]: *** [assert.lo] Error 1 make[1]: Leaving directory `/tmp/squid-3.5.13/compat' make: *** [all-recursive] Error 1 何が悪いのだろうかと少し考える。g++ が入ったんで configure からやり直す 必要があるのかなと思って、configure を再実行してから make したらエラーが なくなった。続けて make install も問題なく。続きは明日。
12/4 WWW LIVA-C0-2G-64G-W 昨日の続き。設定ファイルを編集して、squid の起動をさせる。その前に /tmp の 容量確認。 [toyota@mygeeto squid-3.5.13]$ df -k Filesystem 1K-blocks Used Available Use% Mounted on /dev/mmcblk0p4 55526788 1564964 51141168 3% / devtmpfs 962104 0 962104 0% /dev tmpfs 969728 0 969728 0% /dev/shm tmpfs 969728 8548 961180 1% /run tmpfs 969728 0 969728 0% /sys/fs/cgroup tmpfs 969728 4836 964892 1% /var tmpfs 969728 483868 485860 50% /tmp /dev/mmcblk0p2 495844 93320 376924 20% /boot /dev/mmcblk0p1 204580 9992 194588 5% /boot/efi 50% になっているでちょっと心配。ソースファイルは使うかもしれないけど、 使う必要が出たらまた解凍すれば良いということで、ソースファイルを削除を して 7% まで減った。squid 起動のための設定ファイルの編集。 [toyota@mygeeto tmp]$ cd squid/etc [toyota@mygeeto etc]$ vi squid.conf [toyota@mygeeto etc]$ diff squid.conf squid.conf.default 59c59 < http_port 8128 --- > http_port 3128 特に変更しなくても動きそうだったので、待ち受けポートのみの変更にして、 そのままの設定で動かしてみることにした。 [toyota@mygeeto etc]$ cd ../sbin [toyota@mygeeto sbin]$ ls -l total 50072 -rwxr-xr-x 1 toyota toyota 51272232 Dec 4 19:48 squid サイズが 50MB もあるのか。でかくないか。strip されているのか確認をして みると、されてないので strip してみる。 [toyota@mygeeto sbin]$ file squid squid: ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), dynamically li nked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=0xc7cb643ed0950ae0 7427a568a8efed404621e748, not stripped [toyota@mygeeto sbin]$ strip squid [toyota@mygeeto sbin]$ ls -l total 4832 -rwxr-xr-x 1 toyota toyota 4947072 Dec 4 19:50 squid サイズが 1/10 になった。設定ファイルに問題がないかチェックをしてみる。 squid -h で確認してから。 [toyota@mygeeto sbin]$ ./squid -k parse 2015/12/04 19:52:27| Startup: Initializing Authentication Schemes ... 2015/12/04 19:52:27| Startup: Initialized Authentication Scheme 'negotiate' 2015/12/04 19:52:27| Startup: Initialized Authentication. 2015/12/04 19:52:27| Processing Configuration File: /tmp/squid/etc/squid.conf ( depth 0) 2015/12/04 19:52:27| Processing: acl localnet src 10.0.0.0/8 # RFC1918 possi ble internal network 2015/12/04 19:52:27| Processing: acl localnet src 172.16.0.0/12 # RFC1918 possi ble internal network 2015/12/04 19:52:27| Processing: acl localnet src 192.168.0.0/16 # RFC19 18 possible internal network 2015/12/04 19:52:27| Processing: acl localnet src fc00::/7 # RFC 4193 loc al private network range 2015/12/04 19:52:27| aclIpParseIpData: IPv6 has not been enabled. 2015/12/04 19:52:27| Processing: acl localnet src fe80::/10 # RFC 4291 lin k-local (directly plugged) machines 2015/12/04 19:52:27| aclIpParseIpData: IPv6 has not been enabled. 2015/12/04 19:52:27| Processing: acl SSL_ports port 443 2015/12/04 19:52:27| Processing: acl Safe_ports port 80 # http 2015/12/04 19:52:27| Processing: acl Safe_ports port 21 # ftp 2015/12/04 19:52:27| Processing: acl Safe_ports port 443 # https 2015/12/04 19:52:27| Processing: acl Safe_ports port 70 # gopher 2015/12/04 19:52:27| Processing: acl Safe_ports port 210 # wais 2015/12/04 19:52:27| Processing: acl Safe_ports port 1025-65535 # unregistered ports 2015/12/04 19:52:27| Processing: acl Safe_ports port 280 # http- mgmt 2015/12/04 19:52:27| Processing: acl Safe_ports port 488 # gss-h ttp 2015/12/04 19:52:27| Processing: acl Safe_ports port 591 # filem aker 2015/12/04 19:52:27| Processing: acl Safe_ports port 777 # multi ling http 2015/12/04 19:52:27| Processing: acl CONNECT method CONNECT 2015/12/04 19:52:27| Processing: http_access deny !Safe_ports 2015/12/04 19:52:27| Processing: http_access deny CONNECT !SSL_ports 2015/12/04 19:52:27| Processing: http_access allow localhost manager 2015/12/04 19:52:27| Processing: http_access deny manager 2015/12/04 19:52:27| Processing: http_access allow localnet 2015/12/04 19:52:27| Processing: http_access allow localhost 2015/12/04 19:52:27| Processing: http_access deny all 2015/12/04 19:52:27| Processing: http_port 8128 2015/12/04 19:52:27| Processing: coredump_dir /tmp/squid/var/cache/squid 2015/12/04 19:52:27| Processing: refresh_pattern ^ftp: 1440 20% 10080 2015/12/04 19:52:27| Processing: refresh_pattern ^gopher: 1440 0% 1440 2015/12/04 19:52:27| Processing: refresh_pattern -i (/cgi-bin/|\?) 0 0% 0 2015/12/04 19:52:27| Processing: refresh_pattern . 0 20% 4320 2015/12/04 19:52:27| WARNING: 'mygeeto.tatsuyoshi.net' rDNS test failed: (0) No error. 2015/12/04 19:52:27| WARNING: Could not determine this machines public hostname . Please configure one or set 'visible_hostname'. 2015/12/04 19:52:27| WARNING: 'mygeeto.tatsuyoshi.net' rDNS test failed: (0) No error. 2015/12/04 19:52:27| WARNING: Could not determine this machines public hostname . Please configure one or set 'visible_hostname'. 2015/12/04 19:52:27| WARNING: 'mygeeto.tatsuyoshi.net' rDNS test failed: (0) No error. 2015/12/04 19:52:27| WARNING: Could not determine this machines public hostname . Please configure one or set 'visible_hostname'. なんとか大丈夫そうなので、起動してみた。 [toyota@mygeeto sbin]$ ./squid 2015/12/04 19:54:07| WARNING: Could not determine this machines public hostname . Please configure one or set 'visible_hostname'. 2015/12/04 19:54:07| WARNING: Could not determine this machines public hostname . Please configure one or set 'visible_hostname'. 2015/12/04 19:54:07| WARNING: Could not determine this machines public hostname . Please configure one or set 'visible_hostname'. ローカルホストからアクセスしてみた。 [toyota@mygeeto sbin]$ telnet localhost 8128 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. GET http://www.tatsuyoshi.net/toyota/cgi-bin/env.cgi HTTP/1.0 Host: www.tatsuyoshi.net HTTP/1.1 200 OK Date: Fri, 04 Dec 2016 10:57:48 GMT Server: Apache/1.3.29 (Unix) version: 5 Content-Type: text/html X-Cache: MISS from localhost Via: 1.1 localhost (squid/3.5.13) Connection: close SERVER_SIGNATURE=<ADDRESS>Apache/1.3.29 Server at www.tatsuyoshi.net Port 80</A DDRESS> SCRIPT_FILENAME=/home/toyota/cgi-bin/env.cgi SERVER_NAME=www.tatsuyoshi.net HTTP_CONNECTION=keep-alive HTTP_CACHE_CONTROL=max-age=259200 REMOTE_ADDR=(省略) HTTP_X_FORWARDED_FOR=127.0.0.1 REQUEST_URI=/toyota/cgi-bin/env.cgi TERM=dumb HOSTTYPE=i386 PATH=/usr/bin:/bin:/usr/sbin:/sbin HTTP_HOST=www.tatsuyoshi.net REMOTE_PORT=46091 REQUEST_METHOD=GET SHELL=/bin/false GATEWAY_INTERFACE=CGI/1.1 QUERY_STRING= SERVER_ADDR=192.168.0.109 SERVER_SOFTWARE=Apache/1.3.29 (Unix) HTTP_VIA=1.0 localhost (squid/3.5.13) SERVER_PROTOCOL=HTTP/1.1 REMOTE_HOST=(省略).bbtec.net SERVER_PORT=80 DOCUMENT_ROOT=/usr/local/apache/html OSTYPE=Linux SCRIPT_NAME=/toyota/cgi-bin/env.cgi SHLVL=1 SERVER_ADMIN=(省略) _=/usr/bin/env Connection closed by foreign host. あっさり動いていたけど、PROXY 丸出し。別な PC から繋いでみた。 $ telnet 192.168.1.3 8128 応答が返ってこない。サーバ側の制限がかかってる気がする。続きは明日。
12/5 WWW LIVA-C0-2G-64G-W 昨日の続き。まずは、サーバの接続制限を外す。firewalld の設定をすれば良いが 現在の状況を確認。 [root@mygeeto toyota]# firewall-cmd --list-all public (default, active) interfaces: enp3s0 sources: services: dhcpv6-client http ssh ports: masquerade: no forward-ports: icmp-blocks: rich rules: サービスとして dhcpv6-client http ssh の3つが登録されている。ここに squid を追加すればよいが、dhcpv6-client って何やっているのか気になったので確認 してみる。この辺りは8月2日に少しオペレーションしたので、それを見ながら。 [root@mygeeto toyota]# cd /usr/lib/firewalld/services/ [root@mygeeto services]# cat dhcpv6-client.xml <?xml version="1.0" encoding="utf-8"?> <service> <short>DHCPv6 Client</short> <description>This option allows a DHCP for IPv6 (DHCPv6) client to obtain add resses and other IPv6 settings from DHCPv6 server.</description> <port protocol="udp" port="546"/> <destination ipv6="fe80::/64"/> <service> IPv4 にも影響があるかと思ったが、v6 専用なので設定を削除する。そもそも 今動いている kernel は IPv6 の機能全部落としたし。 [root@mygeeto tmp]# firewall-cmd --remove-service=dhcpv6-client success これで確認してみる。firewall-cmd --list-all の結果では出てこなくなったが firewall-cmd --list-all-zones だとまだ home, internal, work に残っている ので、さらに削除。 [root@mygeeto tmp]# firewall-cmd --remove-service=dhcpv6-client --zone=home success [root@mygeeto tmp]# firewall-cmd --remove-service=dhcpv6-client --zone=internal success [root@mygeeto tmp]# firewall-cmd --remove-service=dhcpv6-client --zone=work success 気になったので、他のサービスも確認。 [root@mygeeto services]# firewall-cmd --list-all-zones 結果が長くなったので、各 zone の services だけまとめると。 block services: dmz services: ssh drop services: external services: ssh home services: ipp-client mdns samba-client ssh internal services: ipp-client mdns samba-client ssh public (default, active) services: http ssh trusted services: work services: ipp-client ssh 他のゾーンは active じゃなくてデバイスも指定されてないし、IPv6 のように 完全に使えないわけでもないので、放置しておく。 目的を忘れかけたが、squid のサービスを public に追加したい。現在登録が できる services の確認。 [root@mygeeto tmp]# firewall-cmd --get-services RH-Satellite-6 amanda-client bacula bacula-client dhcp dhcpv6 dhcpv6-client dns ftp high-availability http https imaps ipp ipp-client ipsec kerberos kpasswd l dap ldaps libvirt libvirt-tls mdns mountd ms-wbt mysql nfs ntp openvpn pmcd pmp roxy pmwebapi pmwebapis pop3s postgresql proxy-dhcp radius rpc-bind samba samba -client smtp ssh telnet tftp tftp-client transmission-client vnc-server wbem-ht tps http proxy は無いので、登録せにゃならんのか。サービスを追加するときは、 /usr/lib/firewalld/services ではなく /etc/firewalld/services にファイルを 追加するみたい。/etc/firewalld の下を眺めてみたら、/etc/firewalld/zones の public.xml に dhcpv6-client が残っていた。削除するときに --permanent を 追加しないといけないみたい。やり直し。 [root@mygeeto zones]# firewall-cmd --permanent --remove-service=dhcpv6-client success [root@mygeeto zones]# firewall-cmd --permanent --remove-service=dhcpv6-client --zone=home success [root@mygeeto zones]# firewall-cmd --permanent --remove-service=dhcpv6-client --zone=internal success [root@mygeeto zones]# firewall-cmd --permanent --remove-service=dhcpv6-client --zone=work success これで再起動したときに、設定が戻ることはないと。戻って、サービスファイルの 追加を。 [root@mygeeto zones]# cd /etc/firewalld/services/ [root@mygeeto services]# cp /usr/lib/firewalld/services/http.xml squid.xml [root@mygeeto services]# vi squid.xml [root@mygeeto services]# cat squid.xml <?xml version="1.0" encoding="utf-8"?> <service> <short>PROXY (HTTP)</short> <description>HTTP proxy for squid</description> <port protocol="tcp" port="8128"/> </service> [root@mygeeto services]# firewall-cmd --add-service=squid --zone=public Error: INVALID_SERVICE: squid 見つからないと。どうしたものかと調べてみると、firewalld が新しいファイルを 認識してないみたいなので、reload すると良いとか。やってみる。 [root@mygeeto services]# firewall-cmd --reload success [root@mygeeto services]# firewall-cmd --add-service=squid --zone=public success これで完了。Windows PC でプロキシの設定を変更して接続できるようになった。 あとは、squid の設定を変更して認証を入れてみる。続きは明日。
12/6 WWW LIVA-C0-2G-64G-W squid で認証を入れるための設定をする。squid.conf.documented を確認して みると、認証の設定は以下のように書いてあった。 # === Example Configuration === # # This configuration displays the recommended authentication scheme # order from most to least secure with recommended minimum configuration # settings for each scheme: # ##auth_param negotiate program <uncomment and complete this line to activate> ##auth_param negotiate children 20 startup=0 idle=1 ##auth_param negotiate keep_alive on ## ##auth_param digest program <uncomment and complete this line to activate> ##auth_param digest children 20 startup=0 idle=1 ##auth_param digest realm Squid proxy-caching web server ##auth_param digest nonce_garbage_interval 5 minutes ##auth_param digest nonce_max_duration 30 minutes ##auth_param digest nonce_max_count 50 ## ##auth_param ntlm program <uncomment and complete this line to activate> ##auth_param ntlm children 20 startup=0 idle=1 ##auth_param ntlm keep_alive on ## ##auth_param basic program <uncomment and complete this line> ##auth_param basic children 5 startup=5 idle=1 ##auth_param basic realm Squid proxy-caching web server ##auth_param basic credentialsttl 2 hours #Default: # none negotiate での認証をしたいので、auth_param negotiate にすれば良いのだろう けど、program が必要で。調べると、negotiate では NTLM か kerberos での 認証になると。kerberos サーバを作るのか、先が長そうだな。 まず、kerberos のサーバを rpm で入れるか、一時的な実験としてソースから 入れて tmp にインストールして消すか。ソースから入れても、依存するものが 多そうだし、ディスクの容量はまだ余裕があるので、rpm で入れることにした。 [root@mygeeto tmp]# wget -q http://mirror.centos.org/centos/7/os/x86_64/Package s/krb5-server-1.13.2-10.el7.x86_64.rpm [root@mygeeto tmp]# rpm -i krb5-server-1.13.2-10.el7.x86_64.rpm warning: krb5-server-1.13.2-10.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY error: Failed dependencies: krb5-libs(x86-64) = 1.13.2-10.el7 is needed by krb5-server-1.13.2-10.el 7.x86_64 libkdb5.so.8()(64bit) is needed by krb5-server-1.13.2-10.el7.x86_64 libkdb5.so.8(kdb5_8_MIT)(64bit) is needed by krb5-server-1.13.2-10.el7. x86_64 libverto-module-base is needed by krb5-server-1.13.2-10.el7.x86_64 そんなに素直に入るとは思ってなかったけど、思ったより依存関係が少なかった。 [root@mygeeto tmp]# wget -q http://mirror.centos.org/centos/7/os/x86_64/Package s/libverto-0.2.5-4.el7.x86_64.rpm [root@mygeeto tmp]# rpm -i libverto-0.2.5-4.el7.x86_64.rpm warning: libverto-0.2.5-4.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key I D f4a80eb5: NOKEY package libverto-0.2.5-4.el7.x86_64 is already installed 既に入っているだと。 [root@mygeeto tmp]# wget -q http://mirror.centos.org/centos/7/os/x86_64/Package s/krb5-libs-1.13.2-10.el7.x86_64.rpm [root@mygeeto tmp]# rpm -i krb5-libs-1.13.2-10.el7.x86_64.rpm warning: krb5-libs-1.13.2-10.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, ke y ID f4a80eb5: NOKEY file /usr/lib64/krb5/plugins/kdb/db2.so from install of krb5-libs-1.13. 2-10.el7.x86_64 conflicts with file from package krb5-libs-1.12.2-14.el7.x86_64 file /usr/lib64/krb5/plugins/tls/k5tls.so from install of krb5-libs-1.1 3.2-10.el7.x86_64 conflicts with file from package krb5-libs-1.12.2-14.el7.x86_ 64 file /usr/lib64/libgssapi_krb5.so.2.2 from install of krb5-libs-1.13.2- 10.el7.x86_64 conflicts with file from package krb5-libs-1.12.2-14.el7.x86_64 file /usr/lib64/libgssrpc.so.4.2 from install of krb5-libs-1.13.2-10.el 7.x86_64 conflicts with file from package krb5-libs-1.12.2-14.el7.x86_64 file /usr/lib64/libk5crypto.so.3.1 from install of krb5-libs-1.13.2-10. el7.x86_64 conflicts with file from package krb5-libs-1.12.2-14.el7.x86_64 file /usr/lib64/libkadm5clnt_mit.so.8.0 from install of krb5-libs-1.13. 2-10.el7.x86_64 conflicts with file from package krb5-libs-1.12.2-14.el7.x86_64 file /usr/lib64/libkadm5srv_mit.so.9.0 from install of krb5-libs-1.13.2 -10.el7.x86_64 conflicts with file from package krb5-libs-1.12.2-14.el7.x86_64 file /usr/lib64/libkrad.so.0.0 from install of krb5-libs-1.13.2-10.el7. x86_64 conflicts with file from package krb5-libs-1.12.2-14.el7.x86_64 file /usr/lib64/libkrb5.so.3.3 from install of krb5-libs-1.13.2-10.el7. x86_64 conflicts with file from package krb5-libs-1.12.2-14.el7.x86_64 file /usr/lib64/libkrb5support.so.0.1 from install of krb5-libs-1.13.2- 10.el7.x86_64 conflicts with file from package krb5-libs-1.12.2-14.el7.x86_64 file /usr/share/man/man5/k5identity.5.gz from install of krb5-libs-1.13 .2-10.el7.x86_64 conflicts with file from package krb5-libs-1.12.2-14.el7.x86_6 4 file /usr/share/man/man5/k5login.5.gz from install of krb5-libs-1.13.2- 10.el7.x86_64 conflicts with file from package krb5-libs-1.12.2-14.el7.x86_64 file /usr/share/man/man5/krb5.conf.5.gz from install of krb5-libs-1.13. 2-10.el7.x86_64 conflicts with file from package krb5-libs-1.12.2-14.el7.x86_64 入っているので、アップデートかまさないといけないのか。 [root@mygeeto tmp]# rpm -U krb5-libs-1.13.2-10.el7.x86_64.rpm warning: krb5-libs-1.13.2-10.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, ke y ID f4a80eb5: NOKEY error: Failed dependencies: krb5-libs(x86-64) = 1.12.2-14.el7 is needed by (installed) krb5-devel-1 .12.2-14.el7.x86_64 libkdb5.so.7()(64bit) is needed by (installed) krb5-devel-1.12.2-14.el7 .x86_64 [root@mygeeto tmp]# wget -q http://mirror.centos.org/centos/7/os/x86_64/Package s/krb5-devel-1.13.2-10.el7.x86_64.rpm [root@mygeeto tmp]# rpm -i krb5-devel-1.13.2-10.el7.x86_64.rpm warning: krb5-devel-1.13.2-10.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, k ey ID f4a80eb5: NOKEY error: Failed dependencies: krb5-libs(x86-64) = 1.13.2-10.el7 is needed by krb5-devel-1.13.2-10.el7 .x86_64 libkdb5.so.8()(64bit) is needed by krb5-devel-1.13.2-10.el7.x86_64 同時にインストールする必要があるみたい。 [root@mygeeto tmp]# rpm -U krb5-devel-1.13.2-10.el7.x86_64.rpm krb5-libs-1.13.2 -10.el7.x86_64.rpm warning: krb5-devel-1.13.2-10.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, k ey ID f4a80eb5: NOKEY [root@mygeeto tmp]# rpm -U krb5-server-1.13.2-10.el7.x86_64.rpm warning: krb5-server-1.13.2-10.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY ようやく入った。 眠くなったので、続きは明日。
12/7 WWW LIVA-C0-2G-64G-W kerberos5 のサーバを起動しないといけない。使ったことがないので、前調べを してから、設定ファイルの中を確認。 [root@mygeeto tmp]# cat /etc/krb5.conf [logging] default = FILE:/var/log/krb5libs.log kdc = FILE:/var/log/krb5kdc.log admin_server = FILE:/var/log/kadmind.log [libdefaults] dns_lookup_realm = false ticket_lifetime = 24h renew_lifetime = 7d forwardable = true rdns = false # default_realm = EXAMPLE.COM default_ccache_name = KEYRING:persistent:%{uid} [realms] # EXAMPLE.COM = { # kdc = kerberos.example.com # admin_server = kerberos.example.com # } [domain_realm] # .example.com = EXAMPLE.COM # example.com = EXAMPLE.COM KDC の設定ではなく、これはクライアントと言うかその KDC を使う側の設定だな。 KDC の設定は /var/kerberos/krb5kdc にあった。とは言っても、squid で使う からには、/etc/krb5.conf の設定が必要なのかな。MIT の web ページなんかを 見ながら適当に編集。 [root@mygeeto tmp]# hostname mygeeto.tatsuyoshi.net [root@mygeeto tmp]# vit /etc/krb5.conf [root@mygeeto tmp]# cat /etc/krb5.conf [logging] default = FILE:/var/log/krb5libs.log kdc = FILE:/var/log/krb5kdc.log admin_server = FILE:/var/log/kadmind.log [libdefaults] dns_lookup_realm = false ticket_lifetime = 24h renew_lifetime = 7d forwardable = true rdns = false default_realm = TATSUYOSHI.NET default_ccache_name = KEYRING:persistent:%{uid} [realms] TATSUYOSHI.NET = { kdc = mygeeto.tatsuyoshi.net admin_server = mygeeto.tatsuyoshi.net } [domain_realm] .tatsuyoshi.net = TATSUYOSHI.NET tatsuyoshi.net = TATSUYOSHI.NET 同様に MIT の web ページを参考に、KDC の設定。 [root@mygeeto tmp]# vi /var/kerberos/krb5kdc/kadm5.acl [root@mygeeto tmp]# vi /var/kerberos/krb5kdc/kdc.conf [root@mygeeto tmp]# cat /var/kerberos/krb5kdc/kadm5.acl */admin@TATSUYOSHI.NET * [root@mygeeto tmp]# cat /var/kerberos/krb5kdc/kdc.conf [kdcdefaults] kdc_ports = 88 kdc_tcp_ports = 88 [realms] TATSUYOSHI.NET = { #master_key_type = aes256-cts acl_file = /var/kerberos/krb5kdc/kadm5.acl dict_file = /usr/share/dict/words admin_keytab = /var/kerberos/krb5kdc/kadm5.keytab supported_enctypes = aes256-cts:normal aes128-cts:normal des3-hmac-sha1:norma l arcfour-hmac:normal camellia256-cts:normal camellia128-cts:normal des-hmac-sh a1:normal des-cbc-md5:normal des-cbc-crc:normal } データベースの作成をする。 [root@mygeeto tmp]# kdb5_util create -r TATSUYOSHI.NET -s 30分待っても終わる気配がない。続きは明日。
12/8 WWW LIVA-C0-2G-64G-W 昨日の続き。朝起きたら master key の入力待ちになっていた。適当に入力を するも。 [root@mygeeto tmp]# kdb5_util create -r TATSUYOSHI.NET -s Loading random data Initializing database '/var/kerberos/krb5kdc/principal' for realm 'TATSUYOSHI.N ET', master key name 'K/M@TATSUYOSHI.NET' You will be prompted for the database Master Password. It is important that you NOT FORGET this password. Enter KDC database master key: Re-enter KDC database master key to verify: getaddrinfo(mygeeto.tatsuyoshi.net): Name or service not known getaddrinfo でこのホストがひけないと駄目みたい。状況の確認。 [root@mygeeto tmp]# ping mygeeto.tatsuyoshi.net ping: unknown host mygeeto.tatsuyoshi.net [root@mygeeto tmp]# hostname mygeeto.tatsuyoshi.net [root@mygeeto tmp]# grep hosts /etc/nsswitch.conf #hosts: db files nisplus nis dns hosts: files dns [root@mygeeto tmp]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 lookup は /etc/hosts からひくので、/etc/hosts の編集。後で使うかもしれない ので、別なサーバも入れておいた。 [root@mygeeto tmp]# vi /etc/hosts [root@mygeeto tmp]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain mygeeto mygeeto.tatsuyoshi.net 192.168.1.2 felucia felucia.tatsuyoshi.net 192.168.1.4 falleen falleen.tatsuyoshi.net 192.168.1.17 takodana takodana.tatsuyoshi.net 192.168.1.18 jakku jakku.tatsuyoshi.net 192.168.1.19 ahch-to ahch-to.tatsuyoshi.net ping の応答は返ってくるようになったので、kdb5_util の再実行。家に戻ったら master key 入力待ちになっていた。適当に入力。 [root@mygeeto tmp]# kdb5_util create -r TATSUYOSHI.NET -s Loading random data Initializing database '/var/kerberos/krb5kdc/principal' for realm 'TATSUYOSHI.N ET', master key name 'K/M@TATSUYOSHI.NET' You will be prompted for the database Master Password. It is important that you NOT FORGET this password. Enter KDC database master key: Re-enter KDC database master key to verify: kdb5_util: File exists while creating database '/var/kerberos/krb5kdc/principal ' どうやら getaddrinfo でエラーが起きたが、ファイルの作成はしていたようで、 既にあると言われる。ちょっと気持ち悪い感じなので、krb5_util で作成したと 思われるファイルを削除して、再実行することにした。 [root@mygeeto tmp]# rm -f /var/kerberos/krb5kdc/principal* [root@mygeeto tmp]# kdb5_util create -r TATSUYOSHI.NET -s Loading random data Initializing database '/var/kerberos/krb5kdc/principal' for realm 'TATSUYOSHI.N ET', master key name 'K/M@TATSUYOSHI.NET' You will be prompted for the database Master Password. It is important that you NOT FORGET this password. Enter KDC database master key: Re-enter KDC database master key to verify: 2時間弱で master key 入力になり、今回は問題なく終了した。それにしても、 何でこんなに長く待たされるのだろう。 次の手順は acl に管理者を追加するとかで。 [root@mygeeto tmp]# file /var/kerberos/krb5kdc/kadm5.acl /var/kerberos/krb5kdc/kadm5.acl: ASCII text [root@mygeeto tmp]# cat /var/kerberos/krb5kdc/kadm5.acl */admin@TATSUYOSHI.NET * 既にファイルもあるし、admin がいるので大丈夫そうだけど。問題があったら、 後から追加することにして、Kerberos データベースに管理者の追加。kadmin.logal は対話式のコマンドみたい。 [root@mygeeto tmp]# kadmin.local Authenticating as principal toyota/admin@TATSUYOSHI.NET with password. kadmin.local: addprinc admin/admin@TATSUYOSHI.NET WARNING: no policy specified for admin/admin@TATSUYOSHI.NET; defaulting to no p olicy Enter password for principal "admin/admin@TATSUYOSHI.NET": Re-enter password for principal "admin/admin@TATSUYOSHI.NET": Principal "admin/admin@TATSUYOSHI.NET" created. kadmin.local: exit これで、デーモンを起動する。 [root@mygeeto tmp]# krb5kdc [root@mygeeto tmp]# kadmind あっさり起動。kinit で動作チェック。 [root@mygeeto tmp]# kinit admin/admin@TATSUYOSHI.NET bash: kinit: command not found まさかのコマンドがないと。調べてみたら、krb5-workstation の RPM に入って いるとのことなので、インストール。 [root@mygeeto tmp]# wget -q http://mirror.centos.org/centos/7/os/x86_64/Package s/krb5-workstation-1.13.2-10.el7.x86_64.rpm [root@mygeeto tmp]# rpm -i krb5-workstation-1.13.2-10.el7.x86_64.rpm warning: krb5-workstation-1.13.2-10.el7.x86_64.rpm: Header V3 RSA/SHA256 Signat ure, key ID f4a80eb5: NOKEY kinit コマンドが入ったようなので、kinit を実行。 [root@mygeeto tmp]# kinit admin/admin@TATSUYOSHI.NET Password for admin/admin@TATSUYOSHI.NET: パスワードを入れたら何もなく終了したけど、これで良いのかな。ようやく krb5 が動作した。続きは明日。
12/9 WWW LIVA-C0-2G-64G-W 昨日の続き。squid で negotiate 認証をするテスト。squid の wiki を参考に して、keytab の作成をする。 msktutil -c -b "CN=COMPUTERS" -s HTTP/<fqdn> -h <fqdn> -k /etc/squid/HTTP.keyta b --computer-name squid-http --upn HTTP/<fqdn> --server <domain controller> --v erbose を実行するとあって、--server オプションでドメインコントローラの指定をする。 そんなもの無いし使わないし。man で確認しようとしたら、そんな man がないと。 嫌な予感。 [toyota@mygeeto tmp]$ msktutil -bash: msktutil: command not found CentOS の rpm には、msktutil が含まれているものがなさそうだし、そのため だけに Samba を入れて net コマンドを使うのも面倒だし。squid の wiki を 見ると、kadmin コマンドでもできるとある。man kadmin で確認してみるが、 keytab の作成のオプションは無さそう。困った。 目的は認証が暗号化されているかどうかなので、この際なので認証の成功とか 失敗は無視して、squid.conf の設定をすることに。kerberos 認証の際に仕様 するコマンドの確認。wiki にもあるように negotiate_kerberos_auth を使えば 良さそう。 [root@mygeeto tmp]# ls /tmp/squid/libexec/ cachemgr.cgi ext_session_acl negotiate_kerberos_auth cert_tool ext_sql_session_acl negotiate_kerberos_auth_test diskd ext_time_quota_acl negotiate_wrapper_auth ext_delayer_acl ext_unix_group_acl storeid_file_rewrite ext_edirectory_userip_acl ext_wbinfo_group_acl unlinkd ext_file_userip_acl helper-mux.pl url_fake_rewrite ext_kerberos_ldap_group_acl log_db_daemon url_fake_rewrite.sh ext_ldap_group_acl log_file_daemon [toyota@mygeeto tmp]$ cd squid/libexec/ [toyota@mygeeto libexec]$ ./negotiate_kerberos_auth_test -h Token: YIID3gYGKwYBBQUCoIID0jCCA86gCjAIBgYrBgEFAgWiggO+BIIDumCCA7YGBisGAQUCBQUB (省略) [toyota@mygeeto libexec]$ ./negotiate_kerberos_auth_test 2015/12/09 20:38:50| negotiate_kerberos_auth_test: Error: No proxy server name given [toyota@mygeeto libexec]$ ./negotiate_kerberos_auth -h ./negotiate_kerberos_auth: invalid option -- 'h' Usage: squid_kerb_auth [-d] [-i] [-s SPN] [-k keytab] [-c rcdir] [-t rctype] -d full debug -i informational messages -r remove realm from username -s service principal name -k keytab name -c replay cache directory -t replay cache type The SPN can be set to GSS_C_NO_NAME to allow any entry from keytab default SPN is HTTP/fqdn@DEFAULT_REALM negotiate_kerberos_auth_test というコマンドがあって、これでテストできるの だろうか。オプションで、proxy server の名前を指定するようなので、やって みた。 [toyota@mygeeto libexec]$ vi /tmp/squid/etc/squid.conf [toyota@mygeeto libexec]$ tail -10 /tmp/squid/etc/squid.conf # for negoyiate authentication auth_param negotiate program /tmp/squid/libexec/negotiate_kerberos_auth_test my geeto.tatsuyoshi.net auth_param negotiate children 20 startup=0 idle=1 auth_param negotiate keep_alive on acl auth proxy_auth REQUIRED http_access deny !auth http_access allow auth これで squid を起動したら、エラーも出さずに起動した。うまく動いていない 気もするけど、別の PC から wireshark で受けながらプロキシに対して接続して みた。ブラウザの方は、認証もなくあっさり表示された。wireshark で確認しても やっぱり認証がない。 wireshark squid の wiki を見てみると、Step by Step Overview のところで動作の解説が あって、まず Desktop は Active Directory にログインしている。その後 squid にアクセスして、Proxy-Authenticate: Negotiate を受け取り、さらに Desktop は service ticket を kdc からもらっている。 つまり、ログインの仕組みから必要になって、さらに squid は透過的に kerberos の kdc に認証をしてくれるわけではなく、既に認証されたかどうかを確認する だけのようで。 もう1つ書かれているのが、squid_kerb_ldap が使われる場合で、Active Directory が必要とある。 proxy の認証のやりとりを平文や hash 以外の暗号化されたもので行いたいだけ なのだけど、ちょっと kerberos サーバを作って何とかできる訳じゃなさそう。 こうなってくると、VPN の方が現実的な気がする。何か他の方法がないか、もう 少しやってみる。
12/10 Other Linux ドン・キホーテが「ワリキリPC」なるものを出したみたいで。ふーんと記事を 斜め読みしていたら、気になることが書いてあった。 ITmedia - ドンキ、1万9800円のWindows 10搭載PC「ワリキリPC」発売 13時間連続で駆動するバッテリーも内蔵と書いてある。私からしたら、UPS を 内蔵しているということなので魅力的に映る。他のスペック的には、メモリが 4GB だったら文句がないのだけど。OS 無しで良いからあと5000円ぐらい安いと 買ってしまいそう。
12/11 Other Linux 昨日の続き。ドン・キホーテには PC を作る能力がないだろうから「ワリキリPC」 はどこが作ったものだろうかと調べてみたら、サードウェーブデジノスという ところの Diginnos DG-M01IW という製品で、ドスパラで夏発売したものだった。 Diginnos DG-M01IW 色々なところでレビューもしていて、悪くはなさそう。型落ちが安く売られて いたら、値段によっては手を出そう。
12/12 Electric 車に乗ろうとしたら、リモコンでドアが開かない。嫌な予感をしながら鍵で中に 入ってエンジンをかけようとしたら、かからない。ライトのスイッチを見てみると 点けっぱなしだったみたいで、前回乗ったのはいつだったか思い出してみる。 2週間前か、1週間前か、そのぐらい。バッテリーが空になっているだろうから、 外して充電してみる。バッテリーを外して電圧を測ってみる。 電圧 まさかの 179mV で、目を疑ってしまった。何度測ってもほとんど変わらずで。 バッテリーが完全に死んだ可能性があるなと、頭の中でどこでバッテリーを入手 しようかと考えながら、充電してみるだけしてみることにした。
12/13 Electric 昨日の続き。昨日からずっと 2A ぐらいかけて定電流充電(と言っても手動)で 充電しているが、24時間以上充電しても、12.7V ぐらいにしか上がらない状態。 充電中 12V 近くまでは比較的早く上がったけど、その後がなかなか上がらず、ちょっと 出かけなければいけないので、充電の続きは後日となった。やっぱり、新しいのを 買わないと駄目かもな。 明日から3日ほど更新はありません。
12/17 Linux Other エアバス A330-300 に乗ったのだけど、前のモニタに見慣れた表示が出ていた。 何だか古そうな感じ。 モニタの表示 表示は。 RedBoot(tm) bootstrap and debug environment [RAM] (Panasonic Avionics Corporation) release, version ("560328-212" (見えず) ") - built 11:09:26, Oct 16 2009 Platform: SM-02 (I386) Copyright (C) 2000, 2001, 2002, Red Hat, Inc. RAM: 0x00000000-0x000a0000, 0x00100000-0x01000000 available Current Boot Count is 5 メモリは 16M っぽい。5秒の待ちとか起動中の Unknown symbol の連続とか、 何とかなると思うんだけど、みっともないな。
12/18 Electric 13日と17日と充電して、ようやく充電電圧を 14.8V ぐらいまで上げることができる ようになった。そろそろ大丈夫かなということで、充電器を外してバッテリーの 電圧を測ってみた。 電圧 14.03V だった。1V 以下だったことを考えると、充電できない可能性もあったが、 なんとかなるもんだ。これを車に積んでエンジンを掛けてみる。掛かるまでセル モーターが2秒ほど動作して少し回転が弱くなったとこころでエンジンがかかった。 ちょっと危なかったかも。エンジンがかかったので、少し充電がてら走ってみる。 ECU のリセットは気にならない感じ。このバッテリーいつまで持つかな。明日の 夜に乗る用事があるので、まずはそこまでもつかどうか。
12/19 WWW Windows 自動二輪車を調べたりする関係で中国語の web ページを見るときがある。その際 フォントがちぐはぐしていて、非常に見辛い。簡体字のページで書いてみるた。
<html><head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
</head><body>建设雅马哈 天剑</body></html>
これを各ブラウザで表示してみた。
FirefoxFirefox
ChromeChrome
OperaOpera
何故こんなことが起きるのか調べてみた。「天剑」で言うと UTF-8 の文字コードは 天 [E5 A4 A9] 剑 [E5 89 91] となっている。この「天」に関しては日本語と共通ということで、フォントを指定 していないときのデフォルトのフォント「MS P ゴシック」で表示される。「剑」は 日本語のフォントに含まれないので、「MS P ゴシック」が使われずに別の中国語 フォントを使う。そのため統一感が無くなってしまうみたい。これは utf-8 と 言うか unicode の功罪だな。ブラウザからしたら文字コードが utf-8 だとしたら 日本語なのか中国語なのか混在なのか知らないよ、という感じだし。 じゃ、日本語と簡体字を含むフォントがあれば、解決するかなということで PC に 入っている簡体字のフォントを出してみた。Photoshop だと言語ごとに出るので それを参考にすると。 簡体字のフォント 日本語と共通のフォントはなさそうな、見たことがないフォントばかりだな。 何か良いフォントがないか web から探してみることに。2014年7月に Adobe や Google などが日中韓のオープンソースのフォントを出したようで。 Adobe、日中韓対応のオープンソースフォント「Source Han Sans」を無償公開 この Google 版である Noto Fonts をダウンロードしようとしたら、サイズが 全部で 471MB もある。 フォントのサイズ 個別のダウンロードを見ても、えらいファイルサイズがあるな。 個別サイズ 仕方ないが「Noto Sans CJK JP」をダウンロードすることにした。時間がかかる ので、続きは明日に。
12/20 WWW Windows 昨日の続き。ダウンロードしてきたファイルの中身を確認してみた。フォントの 作成日は今年の6月みたい。 ファイルの中身 全部は大きいので、NotoSansCJKjp-Medium.otf だけ解凍してインストールして みた。 中国語の web ページを見るブラウザは主に Opera なので、Opera からフォント 変更のアドレス browser://settings/fonts で、インストールしたフォントを 選ぼうとしたが見つからない。再起動する必要があるみたい。 フォントの指定 Opera を再起動したら、フォントが出て来た。Noto Sans CJK JP Medium を指定 した。 フォントを変更 これで、昨日のページを表示させてみた。 Opera で表示 ちぐはぐな感じは無くなった。日本語のものだけをダウンロードしたので、他の 言語のものもダウンロードする必要があるかとも思ったけどいらないみたい。 普段使うにはちょっと文字が太いかな。
12/21 WWW tableタグを使って、グループをまとめたような枠が作れないかと。こんな感じで、 出来れば角を丸めて。 frame属性を使ってできないかと見てみたりしたが、できなさそう。border-left と border-right と border-bottom を使って左右と下の線を引くことはできたけど、 目的のものとはだいぶかけ離れている。
くだもの
りんご
みかん
セルごとに色々とやってみたけど、パッとしない。
くだもの 
りんご
みかん
CSS が出る前に良くやっていた、画像を用意しての表を作らないと駄目かな。 なんだか歯がゆい。
12/22 WWW 昨日の続きで。画像を使って実現してみた。作った画像は3つ。
角の画像は1つだけ作って、使うときに transform: rotate で回して使う。早速 やってみた。
くだもの
りんご
みかん
なんだか色々と美しくないな。もっと良い方法がないかと調べていたら、fieldset タグを見つけた。HTML 4.01 から使えるものらしく、すっかり存在を知らなかった。 やってみる。
くだものりんご パイナップル
角が丸くなるし、書く量は少ないし、気が付かなかったのが恥ずかしいぐらい。 横幅が目いっぱいになるので、サイズを指定しようと思ったのだけど、display プロパティを inline にすれば自動的に調整してくれるらしいので、やってみた。
くだものりんご パイナップル
背景色を付けたとき、legend がどうなるのかやってみた。
くだものりんご パイナップル
下半分に色が付く感じになった。ちょっと違和感があるけど、この辺りは legend の background-color で変更できそうなので、何とかなりそうだな。それにしても、 fieldset タグであっさりできてしまった。頭の中が HTML 2.0 で止まっている ので、色々と勉強し直さないとな。
無線マウスの電池交換をした。動作しなくなったので、マウスに入っている電池の 電圧を測ると 0.91V だった。新しい電池を入れると 1.37V で。ニッケル水素の 1000mAh では20日しか持たないみたい。この間で、3日ほど電源を切っていたので 実際は17日ぐらいかな。早速 fieldset タグを使った。

12/23 Other 昨日は冬至ということで、一番日が短いらしく。ただ、周回軌道が楕円だからか、 地軸が関係しているのか、日の出が一番遅くて日の入りが一番早いというわけ ではないようで。CASIO の ke!san サイトで出してみた。 CASIO - ke!san 日の出日の入り計算 横浜に住んでいるので、横浜市役所の場所で計算しようと思ったが、家は横浜の 南で鎌倉市役所の方が近いので、鎌倉市役所の緯度経度標高で計算してみた。 北緯 139.5467 東経 35.3192 標高 17.8m CASIO のサイトは地球の球の歪みについて、どうやって計算しているのか良く わからないけど、出て来た時間から日の出ている時間を引き算で出した。
日付日の出日の入昼の時間
12月1日6:30:2916:30:259:59:56
12月2日6:31:2316:30:179:58:54
12月3日6:32:1616:30:109:57:54
12月4日6:33:0916:30:059:56:56
12月5日6:34:0016:30:039:56:03
12月6日6:34:5116:30:029:55:11
12月7日6:35:4116:30:039:54:22
12月8日6:36:3016:30:079:53:37
12月9日6:37:1816:30:129:52:54
12月10日6:38:0516:30:199:52:14
12月11日6:38:5116:30:289:51:37
12月12日6:39:3616:30:409:51:04
12月13日6:40:2016:30:539:50:33
12月14日6:41:0216:31:089:50:06
12月15日6:41:4416:31:249:49:40
12月16日6:42:2416:31:439:49:19
12月17日6:43:0216:32:039:49:01
12月18日6:43:3916:32:269:48:47
12月19日6:44:1516:32:509:48:35
12月20日6:44:4916:33:159:48:26
12月21日6:45:2216:33:439:48:21
12月22日6:45:5316:34:129:48:19
12月23日6:46:2216:34:439:48:21
12月24日6:46:5016:35:159:48:25
12月25日6:47:1616:35:499:48:33
12月26日6:47:4016:36:259:48:45
12月27日6:48:0316:37:029:48:59
12月28日6:48:2416:37:409:49:16
12月29日6:48:4316:38:209:49:37
12月30日6:49:0116:39:029:50:01
12月31日6:49:1716:39:459:50:28
1月1日6:49:3016:40:299:50:59
1月2日6:49:4216:41:149:51:32
1月3日6:49:5316:42:019:52:08
1月4日6:50:0116:42:499:52:48
1月5日6:50:0716:43:389:53:31
1月6日6:50:1216:44:289:54:16
1月7日6:50:1416:45:199:55:05
1月8日6:50:1516:46:119:55:56
1月9日6:50:1416:47:049:56:50
1月10日6:50:1116:47:589:57:47
日の出が一番遅いのは1月5日、日の出が一番早いのは12月6日だった。どちらも 半月ぐらいずれるのか。 冬至って1年のうちで一番昼の時間が短いという定義のようだけど、色々考えて いたら、冬至とか夏至って時差があるので北半球上のすべての場所で同じ日では ないのじゃないのかと気が付いた。さっそく wikipedia の冬至のページを見て みると、中国と日本の冬至日一覧があって、1988年では1日ずれている。同様に 夏至のページでも1990年でずれている。やっぱり冬至や夏至は時差の関係で、 必ずしも地球上で同じ日というわけじゃないみたい。なんだか勉強になった。
12/24 Other 昨日は表を描いたが、そのときの様子を。まず、ke!san のページに対して投げて いるパラメタを確認し、GET にしてパラメタを投げてみたが、結果は得られな かった。 http://keisan.casio.jp/exec/system/1184726771?lang=&charset=Shift_JIS&(省略) 仕方ないので curl コマンドを使って POST で投げてみた。 $ curl -d 'var_%83%C9=139.5467' -d 'var_%83%D3=35.3192' -d 'var_H=17.8' \ -d 'var_I=9' -d 'var_Y=2015' -d 'var_M=12' -d 'var_D=1' -d 'var_rem1=0' \ http://keisan.casio.jp/exec/system/1184726771 この結果から、欲しい行だけ grep したら。 バイナリファイル (標準入力) に一致しました だと。ke!san の web サイトには英語版もあるのでアクセスしてみた。 CASIO - ke!san Sunrise and sunset times (location) Calculator 入力してみたところ、時分までの結果で、秒の単位が出ない。仕方ない、grep は -a オプションを付けることにした。cut と tr を組み合わせて。 $ curl -d 'var_%83%C9=139.5467' -d 'var_%83%D3=35.3192' -d 'var_H=17.8' \ -d 'var_I=9' -d 'var_Y=2015' -d 'var_M=12' -d 'var_D=1' -d 'var_rem1=0' \ http://keisan.casio.jp/exec/system/1184726771 | grep -a 'answaku' | \ cut -d'>' -f3 | cut -d'<' -f1 | tr '\n' ',' >> result これでスクリプトを書いて結果のファイルを見てみたら、改行が入っていない。 区切りがわからなくなっている。 $ cat result 06:30:29,11:30:34,16:30:25,06:31:23,11:30:56,16:30:17,(省略) 出力ファイルを再加工するのも面倒だし。日付も欲しかったので、実行させる スクリプトに echo を入れて凌いだ。出て来た結果をエディタで加工して表が 完成した感じ。
12/25 Windows WWW 数日前、Firefox が自動更新されたようだけど、特に理由もないので再起動を しないで放置していた。今日、Photoshop で作業をしていたら、メモリが足りない とか出たので、Firefox を一度落とすことにした。Photoshop が終わってから、 Firefox を起動し直すと、一部のアドオンが無効化されていますとか。 アドオン無効化 バージョンを確認してみたら、43.0.1 と出たが、さらに更新が入ったようで、 再起動が必要と出ている。 43.0.1 アドオンの件は後回しにして、再起動してみた。 43.0.2 ようやく最新版になった。アドオンの件は、アドオンに署名が必須になり、その 影響で出たみたい。about:config から設定を変更したら使えるようになるみたい なのだけど、その前に Firefox の 64bit 版が出たとのことなので、まずそれを 入れることにした。時間がかかりそうなので、続きは明日に。
12/26 Windows WWW 昨日の続き。64bit 版の Firefox をインストールした。バージョンを確認して みると、32bit 版と同じ 43.0.2 だった。 43.0.2 問題のアドオンの件。使っているアドオンを確認したら、普段使っているアドオン だったので、about:config から xpinstall.signatures.required を false に 変更して動作するようになった。 しばらく使っているが、問題無さそうと言うか違いがわからないぐらいなので、 32bit 版の方はアンインストールした。
12/27 Windows EeePC X101CH ちょっとネットワークの実験をしようと、旅行で使っている EeePC X101CH を 出してきた。外に繋ぐ予定はなかったけど、一度繋いで windows update をして おくことにした。それが失敗だった。ダウンロードに1時間ぐらい、さらに更新が 2時間経っても 26/42 ぐらいで、まだ終わる気配がない。 更新中 仕方ない、続きは明日だな。
12/28 Windows EeePC X101CH 昨日の続きで。朝起きたら windows の更新は終わっていた。念のためもう一度 windows update をしてみたら、昨日よりも数が増えた感じ。朝、ダウンロードを させて、夜再起動させて更新したが、やっぱり2時間経っても 29/50 ぐらい。 更新中 結局、3時間ちょっとかかった。実験は明日だな。
12/29 Windows EeePC X101CH 朝起きたら昨日の更新は終わっていたので、無事に実験も終わった。しかし、 この PC の遅さにイライラしてしまう。メモリが 1GB なので仕方ないのだけど。 タスクトレイに Windows10 にアップデートできるアイコンがあって、この PC を Windows10 にしたら早くなるのか検索してみた。メモリが 1GB でアップデート した人のページを見る限り、少し早くなる程度みたい。少しでも早くなるならと アップデートしてみた。 アップデート失敗 Intel Graphics Media Accelerator 3600 Series の問題でアップデートできない とか。この 3600 Series と Windows10 で検索してみたら、アップデートはできる ことはできるみたいだけど、解像度が変更できない等の問題があるとのことで。 アップデートは一旦お預けにした。
12/30 Windows ASUS CM6870 Windows 8.1 を使っているのだけど、たまに右から黒いメニューのようなものと 時計が出てくる。 黒いメニュー これって意図的に出したことがないけど、どうやって出すのだろうとやってみた。 マウスを画面の右上か右下にもってきて1秒ぐらいで出てくる、もしくはマウスを 右上から下に移動するか、右下から上に移動すると出てきた。そもそも、これは 何と言う名前か調べたら、「チャーム」と呼ばれるものらしい。 これまで使ったことはないし、これからも使うことはないので、表示しないように 変更してみる。コントロールパネルから「デスクトップのカスタマイズ」を選び、 さらに「ナビゲーションのプロパティ」を選ぶと画面が出てきた。この設定を する「タスクバーとナビゲーションのプロパティ」では右上を無効にすることは できるけど、右下は設定できない。 タスクバーとナビゲーションのプロパティ 右下も無効にできないか検索してみたら、「PC設定」から「PCとデバイス」を 選び、さらに「画面の操作」を選ぶと設定画面でもできるとか。やってみた。 画面の操作 やっぱり右上だけだな。右下はレジストリをいじる必要があるみたい。それほど 困ってないので、右下は良しとするか。
12/31 Other 今年も1年ありがとうございました。今日は写真の整理をしていて、今年撮った 写真の枚数を数えてみたら、8174枚だった。スマートフォンで撮ったのは除外 しているので、合わせたら8200枚ぐらいかな。写真1枚で 2MB ぐらいはあるので 単純計算で 16GB 以上もあるのか。Picasa の容量が足りなくなるわけだな。
21st projects Tatsuyoshi Networks Prompt Works
by Tatsuyoshi since 2003