ホーム » コンピュータ (ページ 61)
「コンピュータ」カテゴリーアーカイブ
自宅ルータ、管理画面HTTPとVPNだけ不調
今日は、職場の宿直。 でも自宅サーバで、ルータが変。
ルータの死活検出で、ping と管理画面のHTTP通信を使っているけど、 ping では生きているけど、HTTPが通らない。 そのくせ、ルータ機能は動いている。んで、VPN接続は動かない。
こういう時は、どんどん悪化する可能性もあるし、 LINE で奥さんに、電源リセットを頼んで無事復帰。
ルータの故障の前兆かもしれないし、ひとまずblogにメモ。
ネットワークトラブル
自警消防隊のネタで早起きしているけど、 自宅がインターネットに接続されていない。
[2016/07/08]追記
先日のネットワーク接続トラブルは、光のルータ電源リセットで復帰したけど、 我が家だけの問題かな…と思っていた。 だけど、ルータのネットワークトラヒック観察の出力を見ていると、 特に使っていない状態でもトラヒックがあったりで何か変….と思っていたけど、 ルータリセット後は、そのトラヒックが激減。 この雰囲気からすると、症状の発症した時間が00:00だったのもあるし、 ケーブルテレビ側で、ファームウェアリセットを遠隔実行したんだろうな。
リモート接続の環境のパスワードリセット
リモート接続に使っているサービスが、数日前から使えなく なっていて、なんかやらかしてしまったか…と思っていたら、 サービスのセキュリティ強化でパスワードリセットがかけられていた。
自分のパスワードはそれなりに、長くややこしいものを使っているが、 「特殊文字を含むように…」だってさ。 それなりにややこしいパスワードを使っているユーザも 強制リセットするってことは、パスワード漏えいとか 大量辞書攻撃をくらったのかと、心配になる。
他のシステムとは異なるパスワードを使っているので、 さほど実害は無いと思うけど、パスワードリセットするほどの 危機を感じるネタがあるのなら、公開してほしいな。
debianでletsencrypt.shを使ってみた
無料で、SSL鍵を利用できる let's encrypt というソフトが Debian でも使えるようなので、 試してみました。まずは、必要なソフトのインストール。
# aptitude install letsencrypt.sh letsencrypt.sh-apache2
基本は /etc/letsencrypt.sh/config.sh を修正してもいいが、 /etc/letsencrypt.sh/conf.d の中に *.sh の拡張子で設定を保存すると 書いてあるので、 連絡用のメールアドレスなどの登録情報は、この中に保存。
(( /etc/letsencrypt.sh/conf.d/contact_mail.sh )) CONTACT_EMAIL=連絡用メールアドレス
letsencrypt.sh のデータは、/var/lib/letsencrypt.sh/ に保存され、 取得するドメインは、以下のファイルに記載しておく。
(( /var/lib/letsencrypt.sh/domains.txt )) ドメイン
# mkdir /var/lib/letsencrypt.sh/certs # /usr/bin/letsencrypt.sh -c
(出力) # INFO: Using main config file /etc/letsencrypt.sh/config.sh # INFO: Using additional config file /etc/letsencrypt.sh/conf.d/contact_mail.sh + Generating account key... + Registering account key with letsencrypt... Processing ドメイン + Signing domains... + Creating new directory /var/lib/letsencrypt.sh/certs/ドメイン ... + Generating private key... + Generating signing request... :
できあがった、SSL の情報を Apache に設定する。
(( /etc/apache2/sites-available/default-ssl.conf )) SSLCertificateFile /var/lib/letsencrypt.sh/certs/ドメイン/cert.pem SSLCertificateKeyFile /var/lib/letsencrypt.sh/certs/ドメイン/privkey.pem SSLCertificateChainFile /var/lib/letsencrypt.sh/certs/ドメイン/chain.pem # /etc/init.d/apache2 restart
あとは定期的に更新
SSL鍵は、流石に無償だし、有効期限が短い。 定期的に更新が必要。今回は一ヶ月毎に更新。
(( /etc/cron.d/update-letsencrypt )) #m h D M W user command 0 3 1 * * root test -x /usr/bin/letsencrypt.sh && /usr/bin/letsencrypt.sh -c
CASIO WATCH+アプリ更新
腕時計をスマホの通知連携できるSTB-1000 を使っているけど、アプリの更新で再接続がうまくいかなくなっていた。携帯から離れて接続が切れると、CASIO WATCH+を起動して、再接続操作が必要だから、最近は接続が切れたまま。通知に気づかないことが無いように買ったのに…。
でも、今日CASIO WATCH+のアプリの更新がかかったら、再接続がうまくいくようになった。これで通知に気づかないのも減るかな。
接続できなくなる?
iPhoneと離れ、改めて近づいた後の再接続が安定したと思っていたら、 今度は接続できなくなる。 STB-1000の中央ボタンで再接続をさせようとするが、iPhone側は接続したと認識しているのに、 STB-1000側が接続が完了したと認識しない状態となる。 電池が弱っているかと思い、ボタン電池を入れ替えるが、再接続せず。 アプリのヘルプを見ると、ダメならiPhoneの電源再起動と書いてあったので、 試したら無事接続できた。うーむ….。
movabletype-opensourceのCGI制限
自宅のBLOGは、movabletype-opensourceを使っているけど、 一応、サポート切れとなっているため、脆弱性攻撃を受ける可能性もある。 ただ、攻撃といっても、CGI の呼び出し経由だし、コメントやトラックバックも SPAMが多くて使っていないので、記事編集は自宅内のみと割り切って、 アクセス制限を加えてみる。
Alias /mt-static /usr/share/movabletype/static <Directory /usr/lib/cgi-bin/movabletype> # 初期設定の時だけ <Files mt-wizard.cgi> <IfVersion >= 2.3> Require all denied </IfVersion> <IfVersion < 2.3> Deny from all </IfVersion> </Files> # コメントトラックバック <FilesMatch "mt-(comments|tb)\.cgi$"> Require ip 127.0.0.1 192.168.0.0/16 </FilesMatch> # データ連携 <FilesMatch "mt-(data-api|feed|xmlrpc|atom)\.cgi$"> Require ip 127.0.0.1 192.168.0.0/16 </FilesMatch> # 検索機能は制限せず #<FilesMatch "mt-(ftsearch|search)\.cgi$"> # ### Require ip 127.0.0.1 192.168.0.0/16 #</FilesMatch> # その他 <FilesMatch "mt-(check|testbg|upgrade)\.cgi$"> Require ip 127.0.0.1 192.168.0.0/16 </FilesMatch> # 基本機能 <FilesMatch "mt\.cgi$"> Require ip 127.0.0.1 192.168.0.0/16 </FilesMatch> </Directory>
Windows10のVPN接続
Surface 端末で、自宅の Buffalo WZR-1166DHP2 にVPN接続 をしようと設定したけど、 どうも繋がらない。
調べてみると、VPNのセキュリティの設定で、 「データーの暗号化(D)」を「暗号化が必要(サーバーが拒否する場合は切断します)」 に変更する必要があるみたい。
G-240W-B の Munin プラグイン
自宅の光通信化により、新しいルータが入ったが、パケット流量測定の ための Munin プラグインを作成してみた。
ルータのデータ取得のため、ルータの「LAN状態」のページのHTMLを観察しながら、 Cookieによるセッションを扱いながらパケット流量のデータを取るPerlスクリプトを記述。 Perl でのセッションをまたがったデータ取得プログラムのいい練習になったかな。

ルータからは、Packets* と Bytes* が取得できるけど、 Bytes だと、Muninの測定周期5分で、簡単に 2^32 を超えちゃうようで、 使い物にならないみたい。BPS が直感的だから、Bytes…に変更したけど、 すぐに元に戻す。
#!/usr/bin/perl
#%# family=auto
#%# capabilities=autoconf
use LWP::UserAgent ;
use HTTP::Cookies ;
# ルータ情報
my $router = "http://192.168.1.254" ;
my $auth = [ 'name' => "userAdmin" ,
'pswd' => "xxxxxxxxxxxx"
] ;
# Munin のグラフ情報の設定用処理
if ( defined($ARGV[0]) and $ARGV[0] eq "config" ) {
# グラフの基本情報
print "graph_title FTTH GPON network statics\n" ;
print "graph_category network\n" ;
print "graph_vlabel packet/sec (-)send / (+)recv\n" ;
print "graph_args --base 1024\n" ;
print "graph_printf %4.1lf\n" ;
# LAN1..LAN4
for( my $i = 1 ; $i <= 4 ; $i++ ) {
foreach my $sr ( "Sent" , "Received" ) {
print "LAN$i$sr.label LAN$i pkt\n" ;
print "LAN$i$sr.type COUNTER\n" ;
if ( $sr eq "Sent" ) {
print "LAN$i$sr.graph no\n" ;
} else {
print "LAN$i$sr.draw LINE2\n" ;
print "LAN$i$sr.negative LAN${i}Sent\n" ;
}
print "LAN$i$sr.max 1000000\n" ;
}
}
exit 0 ;
}
# ルータに login
my $ua = LWP::UserAgent->new ;
my $cookie = new HTTP::Cookies() ;
$ua->cookie_jar( $cookie ) ;
my $res = $ua->post( "$router/login.cgi" , $auth ) ;
if ( $res->is_redirect ) {
# LAN情報を取得
$res = $ua->get( "$router/lan_status.cgi?lan" ) ;
my $flag = 0 ;
my $lan_id = 0 ;
foreach my $line( split( /\n/ , $res->content ) ) {
if ( $line =~ /^\s+var\s+lan_ether=/ ) {
# "var lan_ether="を探す
$flag = 1 ;
} elsif ( $flag && $line =~ /^(|,)(\d+):\{/ ) {
# LAN番号を取得
$lan_id = $2 ;
} elsif ( $flag && $line =~ /^Packets(Sent|Received):(\d+),$/ ) {
# PacketsSent / PacketsReceived
print "LAN$lan_id$1.value $2\n" ;
} elsif ( $flag && $line =~ /^;$/ ) {
last ;
}
}
}



