|
| ||||||||||||||||||||||||||||||||||||||||
| code:Haemophilus influenzae | |||||||||||||||||||||||||||||||||||||||||
|
ここに書かれていることは無保証です。同じことを行って問題が発生しても、龍義は責任をとりません。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
■ 1/12
SONY の PaSoRi RC-S320 を手に入れたので、Windows 8.1 で使えるのかやって
みる。USB ポートに繋いでみた。ドライバを探し出し始める。
しかし、ドライバは見つからなかったようで、デバイスマネージャーで確認すると
不明なデバイスになってしまった。
そもそも Windows 8.1 のドライバがあるのか不安だったが、探してみると対応
しているのを見つけた。
NFCポートソフトウェア Ver.5.3.6.7
Windows 10 のドライバはないので、アップデートしたら考えないといけないな。
ダウンロードしたファイルは NFCPortWithDriver.exe で、容量が 20MB もある。
中を見ようと分解できないかやってみたが、駄目だった。おとなしくインストール
する。
問題なくインストールできた。デバイスマネージャーで確認してみたら、ちゃんと
FeliCa Port/PaSoRi が出た。
カード読み込みソフトを使って確認したいので、NFC ネットインストーラーを
インストールしようとしたが、対応が(RC-S380、RC-S370、RC-S330)なので、
動くかどうか。
NFC ネットインストーラー
SFCard Viewer を起動してみる。RC-S320 の上に SUICA を置いたら、あっさり
読み込んでくれた。
バスだけじゃどこのバスに乗ったかわからないな。せめてバスの会社名だけでも
良いので、出てくれると助かるのに。
■ 1/13
昨日の続き。この RC-S320 用ライブラリを先人達が作ってくれていて、Linux
向けの libpasori や windows 向けの felicalib なんかがある。この felicalib
を使ってみることにした。この中に、カードの中をダンプしてくれる FelicaDump
があるので、実行してみた。
D:\tmp>FelicaDump.exe
Polling card failed.
なんかエラーが出た。FelicaDump のソースを眺めると、ライブラリのおかげか
かなり行数が少ない。で、このエラーはいきなり出していることに気が付いて、
カードリーダーに SUICA を置いてから実行したらちゃんと動いた。そんな単純な
理由だったとは。同様にライブラリの中に入っていた suica.exe を実行した。
D:\tmp>suica.exe
IDm: 011003109b0b****
端末種:車載端末 処理:バス 11/09/12 入:c6b/0 残高:968 連番:111
端末種:清算機 処理:清算 11/09/12 入:1/18 出:0/0 残高:1188 連番:110
端末種:物販 処理:物販 11/09/12 18:33 入:3c/71 残高:1728 連番:109
端末種:自販機 処理:物販 11/09/12 11:45 入:43/6a 残高:3178 連番:108
端末種:改札機 処理:運賃支払 11/09/11 入:3e/83 出:2/73 残高:4578 連番:107
端末種:改札機 処理:運賃支払 11/09/11 入:2/73 出:3e/83 残高:4808 連番:105
端末種:??? 処理:運賃支払 11/09/11 入:1/18 出:1/b 残高:5038 連番:103
端末種:改札機 処理:運賃支払 10/12/03 入:1d/e 出:1/18 残高:5578 連番:101
端末種:改札機 処理:運賃支払 10/12/03 入:1/18 出:1d/e 残高:5868 連番:99
端末種:改札機 処理:運賃支払 10/09/03 入:1/12 出:1/18 残高:6158 連番:97
端末種:改札機 処理:運賃支払 10/09/03 入:1/18 出:1/12 残高:6448 連番:95
端末種:改札機 処理:運賃支払 10/08/02 入:1/3 出:1/18 残高:6738 連番:93
端末種:改札機 処理:運賃支払 10/08/02 入:e3/3b 出:e3/37 残高:7428 連番:91
端末種:改札機 処理:運賃支払 10/08/02 入:e3/37 出:e3/3b 残高:7588 連番:89
端末種:改札機 処理:運賃支払 10/08/02 入:1/18 出:1/3 残高:7748 連番:87
端末種:改札機 処理:運賃支払 10/02/05 入:1/3 出:1/18 残高:8438 連番:85
端末種:改札機 処理:運賃支払 10/02/05 入:e3/3b 出:e3/37 残高:9128 連番:83
端末種:改札機 処理:運賃支払 10/02/05 入:e3/37 出:e3/3b 残高:9288 連番:81
端末種:改札機 処理:運賃支払 10/02/05 入:1/18 出:1/3 残高:9448 連番:79
端末種:券売機 処理:チャージ 10/02/04 入:1/18 出:0/0 残高:10138 連番:77
駅名のデータベースは入っていないので、出てこないみたい。これでしばらく
遊べるかなと思ったけど、使っているカードで felica のものは SUICA 以外に
持っていない。SUICA の中を見るだけで終わりそう。
■ 1/14
家の中を探索して、RC-S320 で読めそうなカードを集めてみた。SUICA は良いと
して、メルボルンの myki と、香港の OCTOPUS と、ソウルの地下鉄のと、写真に
写ってないけど、シンガポールの MRT カード。この MRT カードは分解したもの。
FelicaDump を使って SUICA 以外で読めたのは、OCTOPUS カードのみ。ダンプ
した感じを。
D:\tmp>FelicaDump.exe
# IDm: 01 01 07 01 69 13 ** **
# PMm: 01 20 22 04 27 67 4E FF
# System code: 8008
# Number of area = 2
# Area: 0000 - FFFE
# Area: 0800 - 0F3F
# Number of service code = 20
# Serivce code = 0110 : Purse (Direct) (Protected)
0110:0000 00 E0 FD 7F C3 3B 40 00 FC FE 18 00 0D 00 00 00
0110:0001 00 E0 FD 7F C3 3B 40 00 FC FE 18 00 0D 00 00 00
以下省略
この IDm とか PMm の情報が SONY のページにあったけど、簡単な文書すぎて
載っていない。
FeliCa技術方式の各種コードについて
データを眺めてみたけど、利用履歴が入ってそうな感じはないな。SUICA は SONY
の SFCard Viewer なんかのソフトで見られるけど、OCTOPUS は見られるのか調べて
みたら、octopus のページから出来そうな感じ。やってみたら java を起動しようと
しているが、java は無効にしているので実験できず。
やっぱり nfc 対応のカードリーダーが欲しい。
■ 1/15
Google の検索結果で、英語のページだけ欲しい。検索ツールでは、「日本語の
ページを検索」が出てくるが、これを「英語のページを検索」にできないかと。
ブラウザが投げる Accept-Language の変更してみることにした。英語の優先度を
あげてみた。
表示は変わらず。ブラウザが送信している Accept-Language を確認するため、
キャプチャをしてみたら。
Accept-Language: en,ja;q=0.8,en-US;q=0.6
ちゃんと変更されていた。じゃ、優先する言語から日本語を削除してみたら、
表示するのじゃないかとやってみた。やっぱり結果は変わらず。このとき送信
されていた Accept-Language は。
Accept-Language: en,en-US;q=0.8
大丈夫そう。解決は Google での設定にあるのではないかと、歯車をクリック
してみると、言語が出てきた。
ここで Google サービスで使用する言語が日本語になっているのを変更すれば
良いのかなと思ったが、「もっと見る」をクリックしてみた。
すると、「現在の検索結果の表示言語」の項目が出てきた。どうやら、この設定の
ようなので、日本語以外に English もチェックを入れてみた。
これで、「英語のページを検索」が出てくると思ったが、出てきたのは予想外の
「英語と日本語のページを検索」だった。いやいやいや、どちらかと言うと、
日本語を排除したい感じなのに。
結局、色々調べて検索結果のアドレスに hl=en を追加して英語の結果だけが表示
されるようになった。何ともお粗末な感じだ。
■ 1/16
Photoshop を起動すると、Firefox が落ちたり Photoshop が落ちたり。そんな
状況がなんとかならないかと。起動前の状態で、リソースモニターを確認すると
物理メモリは空いているのだけど。
これで Photoshop を起動したら、コミットチャージが上がってくる。それが問題
みたいな感じ。
リソースモニターの部分。最初の上昇が Photoshop を起動したとき。次の上昇が
20MB ぐらいの psd ファイルを開いたとき。
このコミットチャージはなんとかならないかと、色々調べたのだけど、うまい
解決策が見つからない。仮想メモリの値をいじってみる。システムのプロパティ
から、詳細設定タブのパフォーマンスをクリックし、詳細設定のタブを出して
みた。
ここから仮想メモリの変更をしてみた。自動的に管理するオプションを外して
最大サイズを 8192MB にしてみた。
これで様子を見てみようかと。素直に毎日再起動すれば良いのだろうけど。
■ 1/17
20160130 から始まるファイル名を 20160120 に変更したい。ファイルの一覧は
こんな感じ。
$ ls -l
合計 2984
-rwxr-xr-x 1 toyota なし 53350 11月 3 16:37 2016013000.jpg
-rwxr-xr-x 1 toyota なし 66071 1月 15 17:00 2016013001.jpg
-rwxr-xr-x 1 toyota なし 136637 1月 15 17:03 2016013002.jpg
-rwxr-xr-x 1 toyota なし 53391 1月 15 17:32 2016013003.jpg
-rwxr-xr-x 1 toyota なし 18695 1月 15 19:42 2016013004.jpg
-rwxr-xr-x 1 toyota なし 40299 1月 15 20:58 2016013005.jpg
-rwxr-xr-x 1 toyota なし 69856 1月 15 21:05 2016013006.jpg
-rwxr-xr-x 1 toyota なし 97282 1月 16 01:05 2016013007.png
-rwxr-xr-x 1 toyota なし 426614 1月 17 10:08 2016013008.jpg
-rwxr-xr-x 1 toyota なし 21782 1月 14 10:46 2016013028.png
-rwxr-xr-x 1 toyota なし 45742 1月 16 13:54 2016013029.jpg
-rwxr-xr-x 1 toyota なし 63140 1月 14 01:11 2016013030.jpg
-rwxr-xr-x 1 toyota なし 57945 1月 14 01:12 2016013031.jpg
-rwxr-xr-x 1 toyota なし 65275 1月 14 01:13 2016013032.jpg
-rwxr-xr-x 1 toyota なし 63184 1月 14 01:13 2016013033.jpg
-rwxr-xr-x 1 toyota なし 74525 1月 14 23:54 2016013034.jpg
-rwxr-xr-x 1 toyota なし 67583 1月 14 23:59 2016013035.jpg
-rwxr-xr-x 1 toyota なし 73865 1月 15 00:20 2016013036.jpg
-rwxr-xr-x 1 toyota なし 70455 1月 15 00:40 2016013037.jpg
-rwxr-xr-x 1 toyota なし 75941 1月 15 00:51 2016013038.jpg
-rwxr-xr-x 1 toyota なし 76435 1月 15 00:56 2016013039.jpg
-rwxr-xr-x 1 toyota なし 62998 1月 15 01:02 2016013040.jpg
-rwxr-xr-x 1 toyota なし 68187 1月 15 01:04 2016013041.jpg
-rwxr-xr-x 1 toyota なし 63755 1月 15 01:17 2016013042.jpg
-rwxr-xr-x 1 toyota なし 71097 1月 15 01:26 2016013043.jpg
-rwxr-xr-x 1 toyota なし 63380 1月 15 01:31 2016013044.jpg
-rwxr-xr-x 1 toyota なし 67871 1月 17 10:44 2016013045.jpg
-rwxr-xr-x 1 toyota なし 64065 1月 17 16:59 2016013046.jpg
-rwxr-xr-x 1 toyota なし 39092 1月 13 16:08 2016013080.jpg
-rwxr-xr-x 1 toyota なし 45715 1月 13 16:09 2016013081.jpg
-rwxr-xr-x 1 toyota なし 46258 1月 13 16:09 2016013082.jpg
-rwxr-xr-x 1 toyota なし 39887 1月 13 16:10 2016013083.jpg
-rwxr-xr-x 1 toyota なし 42918 1月 13 16:20 2016013084.jpg
-rwxr-xr-x 1 toyota なし 34133 1月 13 22:09 2016013085.jpg
-rwxr-xr-x 1 toyota なし 39784 1月 17 11:53 2016013086.jpg
-rwxr-xr-x 1 toyota なし 54866 1月 17 15:58 2016013087.jpg
-rwxr-xr-x 1 toyota なし 55183 1月 17 18:42 2016013088.jpg
-rwxr-xr-x 1 toyota なし 32189 1月 16 12:38 2016013090.jpg
-rwxr-xr-x 1 toyota なし 35993 1月 16 12:38 2016013091.jpg
-rwxr-xr-x 1 toyota なし 37430 1月 16 12:38 2016013092.jpg
-rwxr-xr-x 1 toyota なし 35962 1月 16 12:38 2016013093.jpg
-rwxr-xr-x 1 toyota なし 36118 1月 16 12:38 2016013094.jpg
-rwxr-xr-x 1 toyota なし 30143 1月 16 12:56 2016013095.jpg
-rwxr-xr-x 1 toyota なし 26093 1月 16 21:13 2016013096.jpg
-rwxr-xr-x 1 toyota なし 24194 1月 16 13:26 2016013097.jpg
-rwxr-xr-x 1 toyota なし 86611 1月 17 11:35 2016013098.jpg
-rwxr-xr-x 1 toyota なし 21652 1月 17 18:08 ybr125.html
頭を少しひねり、これを cygwin 上でこんな感じで一気に変換して、mv コマンドを
実行した。
$ ls -l | cut -c50- | grep ^2 | sed -e 's/^20160130\(.*\)/20160130\1 20160120\1
/' | xargs -n2 mv
これで実現できたけど、ふと気が付いた。cygwin で変更するのではなくコマンド
プロンプト上でワイルドカードを使えばあっさり終わってしまうのか。
C:\cygwin\tmp>ren 20160130*.* 20160120*.*
コマンドプロンプトも使いようだな。
■ 1/18
Liva の簡易 UPS がなかなか手を付けられてないので、サーバとして設置できて
いない。一旦、UPS なしで設置してしまおうかと考えて、今動いている LAN-iCN2
の uptime を表示してみた。
> uptime
uptime: Command not found.
コマンドが入っていない。仕方ない、/proc から拾ってくる。
> cat /proc/uptime
23343701.23 21628852.04
これを casio の ke!san にあった日時計算で何度か値を入れて、起動したのは
2015年4月23日というのがわかった。このページの4月23日を見ると、何も書かれて
いないし、その前のような気がしてならない。この /proc/uptime の値は 32bit
なので、オーバーフローした可能性がある。32bit の最大値は 4294967295 だけど
小数点第二位まで使っているので、42949672.95 が最大値。42949673秒で計算
すると、497日2時間27分53秒になる。2015年4月23日の497日前の日付を出さないと
いけない。手作業でやることではないので、javascript で計算するものを書いて
みた。
この html に uptime を入れて計算させた。uptime の値は。
> cat /proc/uptime
23347684.05 21632612.20
この 23347684.05 を使って出た結果は。
と出た。2011年3月24日あたり、地震後の計画停電のときかと思ったけど、この
ページを検索してみたら、2011年9月21日に台風の影響で停電している。なので、
その後になる。2012年8月2日はロシアに行ってた気がしたけど、行っていたのは
2013年8月だったので、可能性はある。2012年8月2日と2013年12月12日のここの
ページを確認したり、当日の天気を確認してみたけど、結局わからなかった。
どちらにしても、最近はほとんど停電がおきてないので、Liva の先設置をしても
良い気がしてきた。
■ 1/19
昨日の続き。数字を入力するときに、form の中で
<input type="number">
という type が HTML5 で使えるということで、使ってみたのだけど、どうも使い
勝手が悪い。e が入力できたり、-が入力できたり。5-e..4 とか入力できちゃう
ので、結局チェックが必要になってくるし、ブラウザによってかもしれないけど、
ペーストもできてしまう。どっちにしても入力できてしまうので、type="text"
にして作成した。
それともう1つ。/proc/uptime の値ってハードウェアクロックベースのような
気がしてきた。そして、ハードウェアクロックに狂いがなくても、昨日作成した
プログラムではうるう秒のことは考えられてないので、秒単位でずれてしまう。
そもそも、この web サーバのハードウェアクロックは1日で9秒もずれるので、
それが溜まりに溜まって、結果はかなりずれていることになる。10日で90秒、
100日で900秒なので15分、1000日で9000秒なので2時間半か。このずれまで考慮
して uptime を計算しないといけなさそう。
そこまではできないけど、昨日作った javascript に21世紀のうるう秒の情報と、
少しアルゴリズムを変更して作り直した。
■ 1/20
16日の続き。仮想メモリの容量を変更して、4日経った。今日 Photoshop を起動
したら、Firefox が落ちた。コミットチャージを見ると。
やっぱり上がってる。物理メモリは余裕があるのに。おとなしく 4GB のメモリ
でも買った方が楽そうな気がしてきた。
■ 1/21
そう言えば、VPS な環境があったのを思い出した。容量に余裕があるので、先月
やった squid の環境を入れてみようかと。で、OpenSSH でポートフォワード接続
をしてみる。squid は一般ユーザで動かすので、コンパイルから。
[toyota@vjun ~]$ cd src
[toyota@vjun src]$ mkdir squid
[toyota@vjun src]$ cd squid/
[toyota@vjun squid]$ wget -q http://www.squid-cache.org/Versions/v3/3.5/squid-3
.5.13.tar.gz
[toyota@vjun squid]$ tar xfz squid-3.5.13.tar.gz
[toyota@vjun squid]$ cd squid-3.5.13
[toyota@vjun squid]$ ./configure --help
適当にオプションを付けて、make までやってみる。
[toyota@vjun squid]$ ./configure --disable-icmp --disable-snmp --disable-eui \
--disable-htcp --disable-auth --disable-win32-service --disable-ipv6 \
--disable-zph-qos --disable-translation --prefix=/home/toyota/squid
(省略)
[toyota@vjun squid-3.5.13]$ make
(省略)
[toyota@vjun squid-3.5.13]$ mkdir /home/toyota/squid
[toyota@vjun squid-3.5.13]$ make install
(省略)
あっさり make が通って、インストールまでできた。でも、Liva でコンパイルする
より時間がかかった。設定ファイルの編集をする。一般ユーザーなので、ポート
番号の変更をしたり。
[toyota@vjun squid-3.5.13]$ cd ~/squid/etc
[toyota@vjun etc]$ vi squid.conf
[toyota@vjun etc]$ diff squid.conf.default squid.conf
8,12c8
< acl localnet src 10.0.0.0/8 # RFC1918 possible internal network
< acl localnet src 172.16.0.0/12 # RFC1918 possible internal network
< acl localnet src 192.168.0.0/16 # RFC1918 possible internal network
< acl localnet src fc00::/7 # RFC 4193 local private network range
< acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged) mach
ines
---
> acl localnet src 127.0.0.0/24
59c55
< http_port 3128
---
> http_port 13128
簡単な実験なので、2行だけの変更なんだけど。これで squid の起動をしてみる。
動くかどうか。
[toyota@vjun etc]$ ../sbin
[toyota@vjun sbin]$ ./squid
2016/01/21 20:37:28| WARNING: BCP 177 violation. IPv6 transport forced OFF by b
uild parameters.
2016/01/21 20:37:28| WARNING: Could not determine this machines public hostname
. Please configure one or set 'visible_hostname'.
2016/01/21 20:37:28| WARNING: Could not determine this machines public hostname
. Please configure one or set 'visible_hostname'.
2016/01/21 20:37:28| WARNING: Could not determine this machines public hostname
. Please configure one or set 'visible_hostname'.
[toyota@vjun sbin]$ pgrep squid
プロセスは動いていない。フォアグランドで実行するオプション -N を付けて
動かしてみた。
[toyota@vjun sbin]$ ./squid -N
2016/01/21 20:38:23| WARNING: BCP 177 violation. IPv6 transport forced OFF by b
uild parameters.
2016/01/21 20:38:23| WARNING: Could not determine this machines public hostname
. Please configure one or set 'visible_hostname'.
2016/01/21 20:38:23| WARNING: Could not determine this machines public hostname
. Please configure one or set 'visible_hostname'.
2016/01/21 20:38:23| WARNING: Could not determine this machines public hostname
. Please configure one or set 'visible_hostname'.
hostname の問題なのかな。違っている気がするけど、WARNING を消すことに。
root になって /etc/hosts の編集。
[toyota@vjun sbin]$ su
[root@vjun sbin]# vi /etc/hosts
[root@vjun sbin]# exit
[toyota@vjun sbin]$ cat /etc/hosts
127.0.0.1 localhost.localdomain localhost vjun
ping vjun で応答するので hostname の問題は大丈夫でしょう。これで実行して
みる。
[toyota@vjun sbin]$ ./squid -N
2016/01/21 20:38:23| WARNING: BCP 177 violation. IPv6 transport forced OFF by b
uild parameters.
やっぱり落ちる。原因が出てないので、-X オプションを付けて、フルデバッグに
してみた。
[toyota@vjun sbin]$ ./squid -N -X
(省略)
出力が多すぎて、逆にわからない。-d オプションで 1 を指定して実行してみる。
何かわかると良いのだけど。
[toyota@vjun sbin]$ ./squid -N -d 1
2016/01/21 20:41:27| WARNING: BCP 177 violation. IPv6 transport forced OFF by b
uild parameters.
2016/01/21 20:41:27| storeDirWriteCleanLogs: Starting...
2016/01/21 20:41:27| Finished. Wrote 0 entries.
2016/01/21 20:41:27| Took 0.00 seconds ( 0.00 entries/sec).
FATAL: Ipc::Mem::Segment::create failed to shm_open(/squid-cf__metadata.shm): (
13) Permission denied
出てきた。shm_open でこけてる。共有メモリか。root じゃないから問題なのか、
切り分けるために root で実行してみる。しかし同じように落ちた。man shm_open
を見ると、
Programs using these functions must specify the -lrt flag to cc in order to
link against the required ("realtime") library.
Permission denied だから関係ないと思うけど、一応ソースの中を確認すると、
このオプションは付いていた。man の続きを読むと、
The POSIX shared memory object implementation on Linux 2.4 makes use of a
dedicated file system, which is normally mounted under /dev/shm.
とある。/dev/shm のパーミッションの確認。
[toyota@vjun sbin]$ ls -ld /dev/shm
drwxr-xr-x 2 root root 40 Sep 11 2014 /dev/shm
一般ユーザに書き込み権限がないな。root なら書けそうだけど、root でも同じ
エラーが起きたし。ちょっとソースを眺めてみる。
[toyota@vjun sbin]$ cd ~/src/squid/squid-3.5.13
[toyota@vjun sbin]$ vi src/ipc/mem/Segment.cc
HAVE_SHM を無効にしたら、shm_open を使わずに済みそうな感じ。HAVE_SHM を
無効にしてみる。
[toyota@vjun sbin]$ less configure
[toyota@vjun sbin]$ cp -p include/autoconf.h include/autoconf.h_
[toyota@vjun sbin]$ vi include/autoconf.h
[toyota@vjun squid-3.5.13]$ diff include/autoconf.h_ include/autoconf.h
836c836
< #define HAVE_SHM 1
---
> /* #undef HAVE_SHM */
これで無効になったので再度 make して、出来上がったものを sbin にコピー
する。
[toyota@vjun squid-3.5.13]$ make
(省略)
[toyota@vjun squid-3.5.13]$ cp src/squid ~/squid/sbin/squid_noshm
make に時間がかかった。できあがったファイルを実行してみる。
[toyota@vjun squid-3.5.13]$ cd ~/squid/sbin
[toyota@vjun sbin]$ ./squid_noshm -d 1 -N
2016/01/21 20:32:27| WARNING: BCP 177 violation. IPv6 transport forced OFF by b
uild parameters.
2016/01/21 20:32:27| Set Current Directory to /home/toyota/squid/var/cache/squi
d
2016/01/21 20:32:27| Starting Squid Cache version 3.5.13 for i686-pc-linux-gnu.
..
2016/01/21 20:32:27| Service Name: squid
2016/01/21 20:32:27| Process ID 17622
2016/01/21 20:32:27| Process Roles: master worker
2016/01/21 20:32:27| With 1024 file descriptors available
2016/01/21 20:32:27| Initializing IP Cache...
2016/01/21 20:32:27| DNS Socket created at 0.0.0.0, FD 5
2016/01/21 20:32:27| Adding nameserver 202.216.**.*** from /etc/resolv.conf
2016/01/21 20:32:27| Logfile: opening log daemon:/home/toyota/squid/var/logs/ac
cess.log
2016/01/21 20:32:27| Logfile Daemon: opening log /home/toyota/squid/var/logs/ac
cess.log
2016/01/21 20:32:27| WARNING: no_suid: setuid(0): (1) Operation not permitted
2016/01/21 20:32:27| Store logging disabled
2016/01/21 20:32:27| Swap maxSize 0 + 262144 KB, estimated 20164 objects
2016/01/21 20:32:27| Target number of buckets: 1008
2016/01/21 20:32:27| Using 8192 Store buckets
2016/01/21 20:32:27| Max Mem size: 262144 KB
2016/01/21 20:32:27| Max Swap size: 0 KB
2016/01/21 20:32:27| Using Least Load store dir selection
2016/01/21 20:32:27| Set Current Directory to /home/toyota/squid/var/cache/squi
d
2016/01/21 20:32:27| Finished loading MIME types and icons.
2016/01/21 20:32:27| Squid plugin modules loaded: 0
2016/01/21 20:32:27| Adaptation support is off.
2016/01/21 20:32:27| Accepting HTTP Socket connections at local=0.0.0.0:13128 r
emote=[::] FD 8 flags=9
2016/01/21 20:32:28| storeLateRelease: released 0 objects
動いたっぽい。別のターミナルから中に入って接続してみる。
[toyota@vjun ~]$ telnet localhost 13128
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
GET http://www.tatsuyoshi.net/ HTTP/1.0
Host: www.tatsuyoshi.net
HTTP/1.1 200 OK
(略)
やっと動いた。外からはアクセス制限がかかっていて接続できないことを確認
したので、続きは後日。
■ 1/22
昨日の続き。昨日、OS 書くの忘れてた。環境はこんな感じ。
[toyota@vjun ~]$ uname -a
Linux vjun 2.6.32-042stab092.2 #1 SMP Tue Jul 8 10:35:55 MSK 2014 i686 i686 i38
6 GNU/Linux
[toyota@vjun ~]$ cat /etc/redhat-release
CentOS release 5.11 (Final)
まず、この VPS のサーバに直接ログインできない。オペレーションするときは
実家のサーバ経由で入っている。直接ログインできない理由は、わざとそうした
のか、家の IP アドレスが変わってしまったためか、どちらか。どちらにしても
直接ログインできるように変更する。
OS が CentOS 5 なので iptables の設定を確認する。
[root@vjun toyota]# /sbin/iptables --list
Chain INPUT (policy DROP)
(省略)
どうも設定が古い IP アドレスのままだったので、編集して iptables を再起動
する。
[root@vjun toyota]# vi /etc/sysconfig/iptables
[root@vjun toyota]# /etc/init.d/iptables restart
これで家から直接接続できるようになった。次は OpenSSH でトンネルを作る。
いつも使っている Poderosa には、ポートフォワードの設定があるようなので、
利用してみようかと。
ポートフォワーディングツールというのを起動してみた。Poderosa にこんな機能が
付いていたなんて知らなかった。
新規プロファイルの作成をしてみる。これ、人が作った環境だったら感覚的に
わからないな。
入力して接続してみた。IE で実験してみる。なんだか、IE というか OS の設定を
変えると Chrome とか Opera にも影響与えるようで。実験してみたら、Poderosa
の方でエラーが起きて接続が切れた。
何でだろうと調べてみたら、squid を起動してなかった。squid を起動したら
あっさりつながった。接続したときの環境変数を見てみた。
SCRIPT_FILENAME=/home/toyota/www/cgi-bin/env.cgi
SERVER_NAME=www.tatsuyoshi.net
HTTP_CONNECTION=keep-alive
HTTP_CACHE_CONTROL=max-age=259200
HTTP_DNT=1
REMOTE_ADDR=183.181.*.**
HTTP_X_FORWARDED_FOR=127.0.0.1
REQUEST_URI=/toyota/cgi-bin/env.cgi
TERM=dumb
HTTP_COOKIE=(長いので省略)
HOSTTYPE=i386
PATH=/usr/bin:/bin:/usr/sbin:/sbin
HTTP_HOST=www.tatsuyoshi.net
REMOTE_PORT=56402
REQUEST_METHOD=GET
SHELL=/bin/false
GATEWAY_INTERFACE=CGI/1.1
QUERY_STRING=
SERVER_ADDR=192.168.6.19
SERVER_SOFTWARE=Apache/1.3.29 (Unix)
HTTP_VIA=1.1 vjun (squid/3.5.13)
SERVER_PROTOCOL=HTTP/1.1
REMOTE_HOST=vjun
SERVER_PORT=80
DOCUMENT_ROOT=/usr/local/apache/html
OSTYPE=Linux
HTTP_USER_AGENT=Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; ASU2JS; rv:11.
0) like Gecko
HTTP_ACCEPT=text/html, application/xhtml+xml, */*
SCRIPT_NAME=/toyota/cgi-bin/env.cgi
SHLVL=1
SERVER_ADMIN=toyota@example.net
HTTP_ACCEPT_ENCODING=gzip, deflate
_=/usr/bin/env
HTTP_X_FORWARDED_FOR と HTTP_VIA が出てるのでプロキシ丸出しな感じだな。
HTTP_X_FORWARDED_FOR は 127.0.0.1 だから元 IP が出ていなくて、そんなに
悪くはないけど、squid の設定を変更してみる。squid.conf に
forwarded_for off
を追加して、やってみた。結果の差異は。
[toyota@mygeeto tmp]$ diff resp00 resp01
6c6
< HTTP_X_FORWARDED_FOR=127.0.0.1
---
> HTTP_X_FORWARDED_FOR=unknown
14c14
< REMOTE_PORT=56402
---
> REMOTE_PORT=53657
こんな感じになった。unknown になっただけだな。もう少し調べてみて、設定に
request_header_access を付けることで削除できるみたい。やってみた。
request_header_access X_FORWARDED_FOR deny all
request_header_access VIA deny all
これを入れたら、HTTP_VIA は消えたけど、HTTP_X_FORWARDED_FOR は unknown の
まま。調べてみたら、_ は - に変えて設定するみたいなので、
request_header_access X-FORWARDED-FOR deny all
に変更したら HTTP_X_FORWARDED_FOR が消えた。これで完成。
■ 1/23
昨日の続きで。一度やってみたかった、ssh のポートフォワードを2回してみよう
かと。
PC - PC内 - サーバ1 - サーバ2 - サーバ2 proxy - 外
PC のブラウザ的には、localhost のポートに接続しているけど、サーバ2つ経由
して、外の web サーバに繋がっている感じ。で、トイレに入っているときに色々
考えていたら、サーバ1の実家サーバだと BB ルータでポートフォワードをして
いるので、もう1つ別なポートを開けないといけない。どうしたものかと少し
考えながら布団に入ったが、ポート 22 で既に中のネットワークに入っている
ので、関係ないかと気が付いた。
ということで、さっそくやってみる。まずは、サーバ1である実家サーバに入って
トンネル2の作成。
> ssh -L 9999:vjun.tatsuyoshi.net:13128 -p 919 -l toyota vjun.tatsuyoshi.net
これでパスワードを入力したらログインした形になったけど、これで合っている
のかな。次は、Poderosa でトンネル1の作成。
ブラウザでプロキシの設定をしたら、繋がったけれども squid でエラーが出て
いる。少なくとも ssh のポートフォワード2回というのは達成できているので
問題ないと言えば問題ないのだけど。
squid の access.log を見てみたら、外側の IP アドレスから接続に来ていた。
少し考えて、トンネル2の作成を変更。
> ssh -L 9999:localhost:13128 -p 919 -l toyota vjun.tatsuyoshi.net
これで接続できるようになった。しばらくしたら、Poderosa の Portforwarding
が落ちた。
少し調べたけど原因不明。今日は実験なので気にしないことにした。
■ 1/24
Android 端末でネットワークの内容をキャプチャできないものかと調べると、
root 権限無しでも動く tPacketCapture というものがあった。面白そうなので
使ってみる。
VPN 接続を使うことで、root 無しでもトラフィックをキャプチャできるように
なっているみたい。
キャプチャを開始して、適当なアプリで接続してみた。停止しようとしたら、
停止はアプリで行うのではなく通知バーから行うことに2分後気が付いた。少し
わかり辛い、というかちゃんと読んでないだけか。このアプリ自体はキャプチャ
したデータを見ることができないようで、tcpdump なり Wireshark なんかに読み
込ませてデータを見る必要がある。Windows に投げて Wireshark で見てみたら、
ちゃんと取れてた。これは便利なので、覚えておこう。
■ 1/25
ファイルをダウンロードしたら、json というファイルだった。テキストファイル
なので中を見ると、CSV の進化した感じというか。少し調べてみると、json は
JavaScript Object Notation の略で、名前にある通り JavaScript で扱うことが
できるものみたい。CSV を構造的にしたいけど、xml を使うほどでもない、という
ことを実現したような印象。ブラウザの JavaScript で扱えるのはありがたいけど
xml じゃ駄目だったの?と感じてならない。
■ 1/26
別なことを調べていたらダウンロードするのに PHP を使っている web サイトを
見つけた。目的のもの以外もダウンロードできそうで、ダウンロードする PHP
ファイル自体をダウンロードしてきた。少し省いたけど、こんな感じ。
$name = basename($filename);
header("Cache-Control: ");
header("Pragma: ");
header("Content-Type: application/octet-stream");
header("Content-Length: " .(string)(filesize($filename)));
header('Content-Disposition: attachment; filename="'.$name.'"');
header("Content-Transfer-Encoding: binary\n");
if($fp = fopen($filename, 'rb'))
{
while( (!feof($fp)) && (connection_status()==0)) {
print(fread($fp, 8192));
flush();
}
fclose($fp);
}
/etc/passwd とか /etc/hosts は見られなかったけど、イントラネット用の認証
周りの PHP とか見える。CEO は何を操作できるとか、そのぐらいわかったけど、
肝心の PHP は IP アドレスの制限があるし、データは DB に格納しているので
引っ張れないし。そこの会社に報告するには、インパクトないな。
PHP の fopen 関数をを見ていたら、ディレクトリ指定もできるとあったので、
ちょっとやってみた。ダウンロードしようとするものの一向に容量が増えない。
fread 辺りで止まっているのかな。さらに、
filename が "スキーム://..." の形式である場合、 それは URL とみなされ、
PHP はそのプロトコルのハンドラ (ラッパーともいいます) を探します。
と書いてあったので、サポートするプロトコル/ラッパーのページを見てみたら、
glob:// パターンにマッチするパス名の検索というものがあった。これを fopen
に投げたら、ちゃんと返ってくるのかなということでやってみた。エラーが返って
きた。コードを見たら、省略した部分に file_exists でチェックしていたので、
そこでエラーが出たみたい。file_exists がない PHP もあったため、そっちで
やってみた。応答が返ってきたので、ファイルの中を見てみたら。
Warning: filesize() [function.filesize]: stat failed for glob://(省略)
Warning: fopen(glob://(省略) [function.fopen]: failed to open stream: No error
in (省略)
などのエラーが入っていた。ただ、エラーのおかげで Windows で動いていて、
D ドライブの配下にファイル群があるのがわかった。今さらながら、サーバの
ヘッダを見てみると。
Server: Microsoft-IIS/7.5
X-Powered-By: PHP/5.2.6
X-Powered-By: ASP.NET
やっぱり Windows で。そりゃ /etc/passwd なんかないな。商用の IIS で PHP
を動かしているのを初めて見たかも。
■ 1/27
昨日の続き。ファイル指定のパラメタに C:\WINDOWS\system32\drivers\etc\hosts
を指定してみたら、あっさりとファイルが読み込めてしまった。大した内容も
入っていないので /etc/passwd ほどのインパクトはないな。ls というか dir
できれば、ファイル名がわかってもう少しできるのだけど。
C:\Windows\Inf\usb.inf は取得できた、
C:\Users\Administrator\ntuser.ini は Permission denied で駄目、あとは何の
ファイルを見られるのか考えたけど、決め打ち状態だと限界かな。ログイン後の
流れの PHP を取得していったらセッションや IP アドレスのチェックをしてない
ものがあったので、アクセスしてみた。そんなこんなで、やってみたらいくつも
アクセスできて、売り上げ情報とか小売店への販売価格とか、見ちゃいけない
だろうものにアクセスできた。
ということで、その元ページにあった管理者らしきメールアドレスにその内容を
送って、日本法人にも送っておいた。さて、どうなることだろう。
■ 1/28
Windows でプログラミングをしようと、Vusual Studio を久しぶりに起動して、
Window フォームを作ろうとしたが、C++ だとリソースの配置とか面倒になって
きた。仕方なく、C# も入れるかとインストールして、ついでに update を確認
した。
Service Pack 1 があったので、インストールしてみた。500MB 以上あるみたい
なので、しばらく放置していたらエラーが発生していた。コード 13EC だって。
「このエラーに関するヘルプの取得」をクリックしてみたが、000013EC の結果は
見つからないとか。
仕方なく、Microsoft のページなんかを調べたら community のページで同じエラー
コードのものを見つけた。
trying to install the Service Pack 1 for Visual Studio 2010 and I get a Code
13EC
.NET Framework 4.0 component をアンインストールしてから再実行するのだと
あるけど、アンインストールしてもエラーが出ている人もいて。SP1 installer
を使うと解決したとあったので、ダウンロードしてくる。容量が 1.5G もある
ので、ダウンロードが終わるのは明日の朝だな。
■ 1/29
昨日の ISO ファイルは無事ダウンロードできて、Service Pack も問題なく適用
することができた。ということで、早速プログラミング。
C# でファイルをダウンロードして、解析するプログラムを作る。最初 webBrowser
を使ってやってみたけど、ファイルの保存するウィンドウが出てきたり、Cookie
の設定が勝手に行われて嫌な感じなので、WebClient を使うことにした。しかし、
実際に使ってみたら。
サーバーによってプロトコル違反が発生しました. Section=ResponseHeader Detail=CR
の後には LF を指定しなければなりません。
と出た。Wireshark で通信を見てみたら、全て CR + LF を送っているようには
見えるけど、HTTP ヘッダの1つにスペースで始まっているものがあった。Wireshark
でもそのヘッダは表示できていないし、原因はこれかな。サーバ側の問題で、
こちらでは対処できないものなので、MSDN のページを参考にして、app.config
ファイルを作成して、以下を追加。
<system.net>
<settings>
<httpWebRequest useUnsafeHeaderParsing="true" />
</settings>
</system.net>
これでエラーは起きずデータを取得することができた。データを解析しないと
いけないし、先はまだまだ長い。
■ 1/30
東京 MX テレビが見たいなということで、テレビのチャンネルを合わせてみたが、
ノイズしか映らず。出力が低いから無理だろうけど、周波数と出力と、TVTest の
感度を出してみた。
■ 1/31
あるファイルがロックされているようで、消せないし読み込みさえもできない。
どうしたものかと考え、せっかく今プログラムを書いているので、プログラムで
ファイルを読み込みさせ、try ~ catch で拾って Exception の内容を表示して
みた。
メモ帳と変わらず、アクセスの拒否ということで。このファイルを誰がロックして
いるのか調べたい。web を検索すると、openfiles というコマンドを使えば、
誰がロックしているかわかるみたい。で、使ってみようとしたら、このコマンドを
使うには、一度設定した後に OS を再起動する必要があるのだと。多分、再起動
したらロックも解除されるだろうから意味がないな、なんて考えて他を探す。
Sysinternals の Handle コマンドを使えば見られるということで、ダウンロード
して実行してみた。が、使っているプログラムは見つからず。
このファイルが使えないと困るんだよな、という状況だったので、少し考えて、
名前の変更はできるかやってみた。あっさりできた。別名に変えた後に同じ内容で
同じ名前のファイルを用意して、今日のところは解決した。
|
|
|
by Tatsuyoshi since 2003 |