Linuxの最近のブログ記事

今まで、LaTeX 仕事だと、Linux 環境じゃないと今一つ不便 だった。 このため、Windows,Mac で作業をするときは、 Windows,Mac,Linux で Dropbox を起動して共有させて、 terminal 経由で実際は Linux 上で作業をしていた。

LaTeX 仕事なら、emacs anthy anthy-el texlive-lang-cjk texlive-binaries tgif があれば、 ひとまず問題なし。

でも、Windows で、Windows 10 Creaters Update の Bash on Windows でも terminal がまともに使えるから、emacs も自然に動く。 実質 debian だし、aptitude install texlive-lang-cjk で、 LaTeX 環境も悩まずに入る。

同じく、Mac でも、MacPorts で LaTeX 環境が動くので、 Linux で作業する必要がほぼ無くなってきた。

でということで、Dropbox をほぼ使わなくなっているので、 「Dropbox、今までありがとうございました」

出先での無線LAN利用のために、mineo をキャリアとして WiFiルーターを使っているけど、出先でルータを切り忘れてしまい、 自宅でそのWiFiルータに接続してしまうことがある。 そうなると、パケット代の浪費になるし、自宅でWiFiルータが 入っているか確認したくなる。

そこで、自宅のサーバにWiFiのUSBドングルつけて、 WiFiルータのアクセスポイントのESSIDを見つけたら、 icinga で警告メールを投げることを試してみた。

ELECOM WDC-150SU2M

 ((ドライバのインストール))
 $ git clone https://github.com/lwfinger/rtl8188eu
 $ cd rtl8188eu
 $ make all
 $ sudo make install

アクセスポイントの一覧

 $ iwlist wlan0 scan
     ESSID:"<アクセスポイント名>"
      :

これで、WiFiルータのESSID名を見つけたら、exit(2) するような Perl スクリプトを書いて icinga に渡せばいい。

NetworkManager の負荷

これで OK と思っていたけど、munin を見てみたら、USB WiFi ドングルを付けたころから、異常負荷がでている。 top で観察すると、NetworkManager が何度もプロセスを起動している。

しかたがないので、NetworkManager が WiFi の設定をしないように

 (( /etc/NetworkManager/NetworkManager.conf ))
 :
 [keyfile]
 unmanaged-devices=interface-name:wlan0
 :

を設定してみたが、今度はデバイスが初期化されていないから、 "iwlist wlan0 scan" をしても、アクセスポイントを見つけない。

うーむ、どうしたらいいんだろ。

Debianのパッケージを更新していたら、 icingaが、"(Service check did not exit properly)" といった、 エラーを表示して、うまく動いていない。

原因としては、icinga(nagios)では、Perl によるモジュールを 実行するときに、専用の組込み perl interpreter を 使っているけど、nagios のモジュール(今回は check_mailq) が、これに 適合していないために、ダメらしい。

探した資料では、Perl script の先頭 10 行までの所に、 "# nagios: -epn" というのを入れておくと、組込み Perl を使わない。

ということで、以下のように script の先頭付近に1行を加えた。

 (( /usr/lib/nagios/plugins/check_mailq ))
   #!/usr/bin/perl -w
 + # nagios: -epn
   # check_mailq - check to see....

EdgeRouter-X が届く前は、linux サーバ側で VPN gateway への ping を チェックして、接続時に管理者にメールが届くようにしていたけど、 新しいルータでも同様のことをやりたい。

パスワードもそれなりに長い桁にしているし、L2TP の PSK 方式で、 事前共有キーとパスワードが合わせて漏れなければ、VPN に接続できないので、 十分安全....。 とはいえ、もし破られたら...のことを考え、L2TP の利用の際に自分宛の メールが来るようにしてあれば、見覚えのない接続=侵入された...で発見できる。

EdgeRouter-X でメールを出すって、かなりいじらないとダメかとおもったけど、 ssmtp というソフトが入っていたので、意外と簡単。

(( /etc/ssmtp/ssmtp.conf ))
root=postmaster
mailhub=自宅のメールサーバ
rewriteDomain=自宅のドメイン名
hostname=ルータのホスト名

まずは、メールサーバにメッセージを送れるように、ssmtp の設定。

(( /etc/ppp/ip-up.d/l2tpd ))
#!/bin/sh

# $1 Interface name  ppp0
# $2 The tty         ttyS1
# $3 The link speed  38400
# $4 Local IP number 12.34.56.78
# $5 Peer  IP number 12.34.56.99
# $6 Optional ``ipparam'' value  foo

SSMTP="/usr/sbin/ssmtp"
IFACE=$1

test -x $SSMTP || exit 0
case "$IFACE" in
  l2tp* )
    echo -e "From: root@tsaitoh.net\n
            Subject: [ERX] interface $IFACE is UP.\n\n
            IP address: $4 <=> $5\nOption: $6\n" \
    | $SSMTP foo@example.com
    ;;
esac

最初、/etc/network/if-up.d/l2tp で処理を書いたけど、ダメでちょいと悩んだ。

check_dig が ADDITIONAL SECTION

自宅サーバを運用するなか、 自宅ドメインを外部でも使えるように、 mydns.jp で公開するが、 Dynamic DNS だからこそ、 自宅ドメインのアドレスが引けない時がある。

そこで、icinga を使って、外部で自宅ドメインのアドレスが引けるか 確認をしている。ただ、この中で、

DNS WARNING - 0.017 seconds response time
    (Server not found in ANSWER SECTION)

のエラーが1日に1回程度不規則に発生する。 DNS の応答時間の問題 かと思っていたが、 エラーが出ている時の方が、応答時間が短い。 Webで、"Server not found in ANSWER SECTION"をググると、check_dig が、 "ANSWER SECTION"の文字列を、大文字小文字区別で比較して、小文字で情報が帰ってくると アドレスが取れないという記事が見つかった。 しかし、ある程度古い記事だし、対応はとられていそう。 しかしめったに発生しない状況の時に、dig 出力が確認できて、 ようやく原因が見えてきた。 check_dig が呼び出している dig の応答が、問題みたい。

 $ dig @dns1.ttn.ne.jp tsaitoh.net
 :
 ;; ANSWER SECTION:
 tsaitoh.NET.        278     IN      A       xxx.xxx.xxx.xxx

と表示されるのが普通だけど、時々、

 $ dig @dns1.ttn.ne.jp tsaitoh.net
 :
 ;; ADDTIONAL SECTION:
 tsaitoh.NET.        278     IN      A       xxx.xxx.xxx.xxx

といったように、ADDITIONAL SECTION でアドレスが帰ってくる。 この現象は、Google DNS (@8.8.8.8) では発生しない。

webrootの変更

自宅サーバのHTMLデータの置き場所は、/var/www を使ってきたけど、 CMSの入れ替えを検討する中で、 最近のシステムの流儀の /var/www/html に変更したいので、ファイルを移動。 設定ファイルや、 様々なプログラムで、/var/www を参照するように なっていたので、チョロチョロと変更する。

Webデータの管理用 script なども、/var/www-support に入れていた けど、これも /var/www/support に移動。 でもプログラムの修正が 面倒なので、シンボリックリンクを貼っておく。

vpnserver問題解決

SoftEtherのVPNサーバをインストールしたけど、 翌日にはうまく動かなくなり、原因を探っていたのだけど、 原因は、ケーブルテレビの光接続のルータだったみたい。 ALG設定で、IPsec,L2TP,PPTPの設定を外したら、動くようになった。

vpnserverの動作確認

vpnserverが動き出したのはいいけど、ちゃんと動いているのか、VPN接続があるのかを 把握したいので、icingaでモニタリングするようにしてみた。

(( check_vpnserver ))
#!/bin/bash
VPNCMD=/usr/local/vpnserver/vpncmd
PORT=127.0.0.1:xxxx  # VPNサーバに接続するポートを登録
HUB=VPN
NAME=VPN
# 0:OK, 1:Warning, 2:Critical, 3:Unknown
if [ -x $VPNCMD ]; then
    # vpncmdで状態を読み込む
    ANS=`$VPNCMD $PORT /server /hub:$HUB /cmd:StatusGet`
    if [ "$?" -ne 0 ]; then
        # VPNサーバが動いていない
        echo "$NAME Critical - No server"
        exit 2
    else
        ANS=`echo "$ANS" | /bin/grep "セッション数 (クライアント)" | /usr/bin/cut "-d|" -f 2`
        if [ -z "$ANS" ]; then
            # 接続無し
            echo "$NAME OK - Server waiting connection"
            exit 0
        elif [ "$ANS" -gt 0 ]; then
            # 接続あり
            echo "$NAME Warning - $ANS clients"
            exit 1
        fi
    fi
else
    # vpncmd がインストールされていない
    echo "$NAME Unknown - No vpncmd"
    exit 3
fi

icingaのmap出力を派手に

nagiosからicingaに乗り換えた際に、map出力の アイコンが?だらけになっていたので、 設定を加えて、派手にしてみた。

1610042227_634x556.png

自宅サーバの警告でてたけど、 ルータのWeb設定のlogin画面が機能していない。 そのくせ、パケットは流れてる。

ルータ故障の前兆かもしれないので、メモ。

うーむ、Webハングアップが多発するな。

2016-10/02,23:13
2016-10/02,17:31
2016-10/02,06:44

症状の出始めからすると、IPv6パススルーに関係するのかな。 ということで、IPv6パススルーを切ってみる。

HomeKit互換のhomebridgeを使っていて、PS4 の動作確認で ps4-waker というソフト が便利なことがわかったので、ちょいと別応用。

サーバ監視ソフトの icinga で使えるように、nagios 用の check_ps4 を作ってみた。 "ps4-waker search" の出力の statusLine が 200(起動中)/620(スタンバイ) で動作確認ができるけど、 running-app-name も出力に入れれば、なんのゲームが動いているかも出力できる。

#!/bin/bash
PS4WAKER="/usr/local/bin/ps4-waker"
if [ -x $PS4WAKER ]; then
    ans=`$PS4WAKER search -t 50 2>/dev/null \
          | /bin/sed -n "s/^  \(statusLine\|'running-app-name'\): '\(.*\)'.*$/\2/p" \
          | /usr/bin/paste - -`
    case "$ans" in
        200* ) # Powered ON
            echo "$ans"
            exit 0
            ;;
        620* ) # Standby
            echo "$ans"
            exit 0
            ;;
        "" ) # No response
            echo "0 Powerd off"
            exit 2
            ;;
        * ) # Another status
            echo "$ans"
            exit 2
            ;;
    esac
else
    exit 1
fi

2017年6月

        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30  

ウェブページ

アーカイブ

Webデータ

このアーカイブについて

このページには、過去に書かれたブログ記事のうちLinuxカテゴリに属しているものが含まれています。

前のカテゴリはBluetoothです。

次のカテゴリはMacです。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。