ホーム » コンピュータ

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

サーバ⚙

アーカイブ

カテゴリー

ネットワークが繋がらない filter-aaaa-on-v4

最近、職場や自宅にて時々ネットワークが繋がらないときがある。

ネットワークの設定などは自前サーバを配置しているとはいえ、ちゃんと設定してあるはず。

繋がらないという状態でも、異なるサイトなら問題なくつながるので、プロバイダーや自宅ネットワークが落ちているということはない。でも、ふと IPv6 アドレスが問題になっているのかと反省。

自宅内は閉じているとはいえ、IPv6が使える状態。もしかして、上流接続はIPv4しか使えないけど、たまにIPv6アドレスを引いてしまうとかであろうか。

filter-aaaa-on-v4

そこで、色々調べ、IPv4 アドレスからの問い合わせは、IPv6 を使わせないための設定をしてみた。

((( /etc/bind/named.conf.options )))
options {
    :
    listen-on-v6       { any; } ;
    filter-aaaa-on-v4  yes ;
}

動作確認

$ nslookup localhost 
Name:    localhost
Address: 127.0.0.1

$ nslookup localhost ::1
Name:    localhost
Address: 127.0.0.1
Name:    localhost
Address: ::1

気のせいかもしれないけど、職場の環境も filter-aaaa-on-v4 つけたけど、IPv4 fallback がなくなったのかな。応答が速くなったように感じる。

iOS13のオートメーション

iOS13のショートカット・アプリには、オートメーション機能が加わった。

iOS13のオートメーション機能で行き先表示板の変更

今回、パーソナルオートメーションにて、職場からの帰宅時に、 部屋の行先表示板の内容を「帰宅」に書き換えて、 自宅に「今から帰る」というメールを送るようにしてみた。
行先掲示板は、小型のLEDメッセンジャーで、 元々簡単なメッセージを Web API で書き換えられるようにしてあった。
ちなみに、自宅に送るメールも、メールタイトルをLEDメッセンジャーで 表示できるようにしてある。

帰宅イベントは、職場のGPS中央から指定半径離れたことで起動させる。

帰宅時に実行する処理で、スクリプティングの中の x-callback 機能を使った。

ただし、元々のLEDメッセンジャーに表示する CGI では、呼び出された後にブラウザが起動状態のままで停止してしまう。このため、詳細表示にして「X-Success URL」をチェック。
X-Success URL とは、iOS が Web アプリと連動するための機能で、表示処理をした後に CGI のヘッダ出力にて、”Location: shortcuts://callback\n” を出力すればいい。今回は、元々の CGI をちょいと書き換えた。メールを送る機能も、単純にメールを送る…では、メールアプリの送信画面で止まってしまう。同じく要塞表示にして、「作成シートを表示」を off にする。

x-callback は HTTPSが必須

これらの機能は、ショートカットアプリのテスト実行機能ではうまくいった。
ただ、事前の実験で、ショートカットの試運転機能ではうまく動いたが、実際に仕事場から帰る時に、オートメーション機能は起動したが、X-CallBack の URL が http で指定したのが原因なのか、URL を開けない。まあ、HTTPSが使えないような怪しいサイトから callback の URL をもらっても、信用できないよな。
ただ、職場のLEDメッセンジャーは公開鍵の登録が手続き的に煩雑なので、http のみ。
# さて、どうしようかな。

iOS 13 とトヨタ・ナビ接続のトラブル

iOS 13 を早々に入れたけど、車のナビから iPhone のテザリングが上手くいかない。探してみるとトヨタのナビで発生している様子

WiFiを選んでパスワード入力すれば使えるのだけど、次回にパスワードが保存されない。優先ネットワークの選択の画面では、接続の度に別なWiFi登録として扱われている様子。

ナビに登録されているWiFi登録の詳細を見ると、MACアドレスと接続チャンネルが違っている。最近はMACアドレスを使ったユーザトレースが問題視されているので、MACアドレス違いで別扱いしていると想像している。ただ、ナビが自宅WiFiに繋がった情報も複数残っていた。もしかすると接続チャンネルの問題かなぁ…。どちらにしろ、早く治ってほしいな。テザリングが使い物にならない。

追記: WiFiの登録で、SSID,Password,通信方式を手作業登録て行えば、繋がるとの報告で無事繋がるようになったかな。

Apple Watch series 5

Apple Watch 5 GPS を購入。

アプリの起動がSeries2と比べたら、キビキビしていて惚れたのもあり、買ってしまった。

最初の感想は画面が大きい。38mm →40mm なので大したことないはずなんだけど、画面端の丸みの部分も表示範囲になったため、それ以上に大きくなった感じ。便利便利。

まだ設定が不完全なので、LINEの表示が今一つ。慣れるにはもう少しかかりそうだな。

Watch OS 6でメールのURLがリンク表示されタップするとイメージや簡単なWebテキストなら表示できる。
{CAPTION}

Apple Trade In で Apple Watch Series 2を下取り

今回の購入にあたって、古い Apple Watch 2 は、Apple 公式の下取り(Apple Trade In)を使った。購入時に下取りのためにシリアル番号など入れて機種確認のうえ、送られてくる返送用の箱に入れて送るだけ。

下取りにあたって、古い箱やUSBケーブルとか探したけど、いざ送ろうとしたら本体だけ。時計のベルトさえ不要。そんなんなら、もう少し違うデザインのベルトで買ってもいいと思った。

ちょうど、別の Amazon の買い物が、返送用の宅配業者(佐川急便)と同じで明日届く予定なので、事前に連絡を入れて下取りの集荷も頼んでおいた。

Buffaloのファームウェア更新情報のRSS生成

我が家のネットワークは、Buffalo 製品で統一しているけど、ファームウェアの更新は自動取得にしている。

ファームウェア更新の情報を確認したいので、Buffalo の firmware ダウンロードページを自宅の機器に厳選してクローリングし RSS 情報に変換するスクリプトを書いてみた。

Capture The Flags 講座のアフターケア

子供が Capture The Flags の講座に参加したけど、簡単な説明後いきなりミニCTF大会だったので、さっぱり分からないだろうから、少し解き方の説明。

ドメインの秘密

ドメイン名とは、IPアドレスは覚えられないのでコンピュータにつけた名前。そのドメイン名とIPアドレスのデータベースがDNS。通常は、コンピュータ名からIPアドレスを調べる時に使う。unix や windows で DNS 情報を調べるコマンドが、nslookup

最新の unix 環境では、nslookup ではなく、dig しか入っていないかもしれない。

その場合は、

$ sudo apt-get install dnsutils
((( 基本的使い方 )))
$ nslookup [オプション] ドメイン名 [DNSサーバ]
((( 問い合わせ例 )))
$ nslookup tsaitoh.net 8.8.8.8 # GoogleのDNSサーバに問い合わせる例(正引き)
$ nslookup 64.33.3.150 8.8.8.8 # (逆引き=IPアドレスからドメイン名を調べる)
$ nslookup -query=A    tsaitoh.net         # IPv4アドレスを調べる
$ nslookup -query=AAAA www.yahoo.com       # IPv6アドレスを調べる
$ nslookup -query=MX   tsaitoh.net 8.8.8.8 # メールサーバ情報を調べる
$ nslookup -query=TXT  tsaitoh.net 8.8.8.8 # SPF1というメールサーバの信頼性情報

我が家では、自宅専用のDNSサーバが動いている特殊な事例。インターネットのグローバルアドレス空間でどう見えているかを知りたい場合は、DNSサーバに 8.8.8.8 を使う。Google が、記憶しやすいIPアドレスで誰もが使っていい高速のDNSサーバを提供してくれている。

Webページを見つけろ

サーバとの通信では、IPアドレスで相手のコンピュータを見つけるけど、1台のコンピュータ内で複数のネットワークプログラムが動いていた時、どのプログラムと通信するのか区別する必要がある。そのための情報がポート番号IPアドレスを電話番号に例えるなら、ポート番号は内線電話番号みたいなもの。

このポート番号は、プログラムによって番号は◯◯を使うべき…という値が決まっている(よく知られたポート番号)Webサーバ(HTTP)は80番、Webサーバ暗号版(HTTPS)は443番、メールサーバ(SMTP)は25番….。

ポート番号で接続するサービスが決まるけど、学内だけで外に見せたくないWebサーバなどがある場合は、ファイアウォールで特定のポート番号を流通させないようにする場合もある。そういう場合には、通常のポート番号以外を使って通信することがある。

Webサーバに接続する時には、80番を使いたくない場合には、http://コンピュータ名:ポート番号/ と URL にポート番号付きで指定することもできる。

ポートスキャン

このポート番号が解らない時は、ポートスキャンというツールがある。ポート1番で通信してみる、ダメなら2番…という繰り返しをしてくれるツール。一番有名なツールが、nmap。ウィルスなどが仕掛けられて、外部からのネットワーク接続を受ける状態(バックドアが仕掛けられた状態)になったのを見つけるのが本来の使い方。

nmap は通常インストールされない(こんな危ないツール普通はシロートに使わせるものではない)。使いたい場合は、

$ sudo apt-get install nmap
((( 基本的使い方 )))
$ nmap [オプション] 接続先
$ sudo nmap tsaitoh.net     # サーバ tsaitoh.net を調べる
$ sudo nmap -A tsaitoh.net  # ソフトの種類も調べてくれる。

ポート番号が解って、そのサーバソフトに接続してみる場合、telnet がよく使われる。
本来は、ネットワークの先のコンピュータを操作するためのソフト(リモート接続23番ポート)だけど、通信を暗号化しないため、セキュリティ的には危険なので、リモート接続用途で使うことは少ない。

Windowsでは、telnetは初期状態でインストールされない。unix で telnet を使いたい場合は、

$ sudo apt-get install telnet
((( 基本的使い方 )))
$ telnet コンピュータ名 [ポート番号]
$ telnet tsaitoh.net 80       # 80番ポート(HTTP)に接続
GET /                         # トップページのHTMLが帰ってくる。
$ telnet tsaitoh.net 25       # 25番ポート(SMTP)に接続
QUIT                          # 接続を切る

隠れたデータ

ウィルスなどにコンピュータに感染させる場合、ファイル名などを偽っってあったりするので、ファイルの種別を調べたり、その中の命令を分析する必要がある。その場合によく用いる基本コマンド。

((( 基本的使い方 )))
$ file ファイル名     # 指定したファイルが何か簡単に調べてくれる。
$ file a.out        # a.out の中身を調べる

$ strings ファイル名  # ファイルの中身の文字として表示できるものを表示する。
$ strings a.out     # a.out の中の文字情報を抽出

$ nm ファイル名       # オブジェクトファイルのシンボル(関数名や変数名)を表示
$ nm a.out          # stripされたa.outでは抽出できない。

逆アセンブル

実行プログラムがどのような処理をしているのか内容を見たい場合は、逆アセンブル(機械語をアセンブリ言語に変換)する。ただし、一般的な実行プログラムでは、関数番地や変数名番地の情報が消されているので、OS の仕組みの知識が必要。

簡単に解析をするのであれば、objdump などを使うことが多い。ここでは、gdb を紹介する。
gdb(GNU Debugger)は、Cコンパイラ(gcc = GNU C Compiler)のためのデバッガ。linux だとプログラムが異常終了すると、coredump(実行時のメモリ内容を出力する機能) するので、この情報でプログラムの異常処理を探す時に使う。

デバッガは通常はインストールされないよな。

$ sudo apt-get install gdb
((( 基本的使い方 )))
   a.out は、何らかのC言語のソースで事前に作っておくこと。
   | // helloworld.c
   | #include <stdio.h>
   | int main() {
   |    printf( "Hello World¥n" ) ;
   |    return 0 ;
   | }
   $ gcc helloworld.c

$ gdb a.out
(gdb) break main      # main にブレークポイントを設置
(gdb) run             # プログラムを実行
(gdb) step 10         # 10行分処理を実行
(gdb) disas main      # main 以降を逆アセンブル
(gdb) quit

((( 異常処理とその場所を見つける )))
   異常終了するプログラムの例
   | // segv.c
   | #include <stdio.h>
   | int main() {
   |    *((int*)NULL) = 123 ;  # 0番地にデータを書き込む
   |    return 0 ;
   | }
$ gcc -g segv.c        # コンパイル時に名前情報を実行プログラムに埋め込む。
$ ulimit -c unlimited  # coredump 機能を有効にする
$ ./a.out
Segmentation fault (コアダンプ)
$ gdb a.out core       # 異常終了した行が表示される

PWなしWiFiとVPNの利用

夏休みの家族旅行でホテル。ただ、最近は減ってるけど、ホテルのWiFiがパスワードなし。こういうWiFiは、通信データが盗聴される可能性がある(参考「ホテルのWiFiの危険性は高い?)」ので、最近は使用を避けたい。

でも、家では以前から VPN サーバを使えるようにしているので、この際、家族にも使い方を説明して積極的に使ってもらおう。サーバ,ユーザID,PW,事前共有キーは、別途メールするとして、設定方法は他の人の解説記事をみてもらおう。

VPN接続だと、セキュリティが安心というのもあるけど、自宅だけに制限している機能(WordPressへの記事の投稿とか、自宅ネットワーク状況の表示など)も使える。

ZenFone Max Pro(M2)の導入

子供のスマホ ZenFone3 だけど、カメラのフォーカスが合わなくなって故障。修理する手もあるけど、2年半経ってるし、機種変でもしかたがない。

iPhone も勧めたけど、今まで通りの android で画面が大きいものが希望ということで、最終的に ZenFone Max Pro(M2) がいいということで、キャリアとしている mineo から購入。

台風通過の気圧変化

去年と今年の台風時の自宅の気圧変化。移動の速い台風の気圧変化と比べると、今回の台風がじわじわ落ちてるのが特徴的。

MapOnDemand2 for TOYOTA

車のナビ NSZT-W66T の地図更新は、スマホ経由で 地図更新を随時行っていたけど、更新時の画面を よく見ると、全国の高速道路情報と、走っている地域の周囲 を更新と書いてある。
2017年度版みたいなので、地図 SD カードを抜いて、 専用の MapOnDemand2 for TOYOTA のパソコンアプリで 更新をかける。
せっかくだし、全国のデータを更新させると、201.8MByte の ダウンロードと出てきたけど、思ったよりダウンロード遅っ。

検索 🔎

  My Google     Yahoo

便利サイト