ホーム » コンピュータ (ページ 85)
「コンピュータ」カテゴリーアーカイブ
ssh+ajaxtermでトンネル
職場仕事を自宅でやるために、時々sshのトンネルにお世話になっている。 といっても、職場は FireWall の内側。このため、 職場のWebサーバにて、ajaxterm なるブラウザ上からターミナルを起動するソフトで、 自宅に向けて ssh のトンネルを掘ることになる。 んで、ssh やら ajaxterm やらのバージョンを上げていたら、 最近は数分でセッションを自動的に切られるようになってしまい、 肝心の作業中に…といったことになる。
そこで、ssh のセッションで定期的に ping を動かし、セッションが切れないように するのが定番なんだけど、その技を改めて確認。 探すと、想定した技をそのまんま書いてくれているページ発見。
ということで、改めて職場より自宅にssh内でトンネルを掘るためのテクニック。 shスクリプトにしておこう。
#!/bin/bash REMOTE=ひみつ HOST=tsaitoh.net /usr/bin/ssh -R $REMOTE:localhost:22 $HOST ping -i 60 localhost
BluerayDisc初めて使った
今日、初めてBluerayDiscを使った。
バックアップメディアとしては、FD,MO,CD,DVDと使ってきたけど、 DVDまでは、その技術が出てきた頃に合わせてそのメディアを使っていた。 しかし、2008年の1年間で取る写真の総合計が10GBを超えたあたりで、 まだBluerayメディアがまだメジャーじゃなかったから、 BluerayDiscを飛び越して、HDDに直接全部保存になった。
でも、改めてHDD故障に備え3次バックアップとして、改めて年毎に メディアに保存しようということで、お初のBlueray購入。
# 自分のパソコンがBluerayに対応してたのも知らんかったし…(^_^;
サーバのX関係の設定が改善
自宅サーバの出力はVGAとHDMIが付いていたけど、VGAは解像度が上がらず、HDMIはサブディスプレイ設定しかできず、あまり活用できていなかった。サーバだしそれでも良かったけどね。
でも改めて設定を見直しにチャレンジ。今までは、Xは/etc/X11/xorg.conf無しの自動設定で立ち上げていた。しかしサブディスプレイの設定を見直すにあたり、Xorg -config で xorg.conf を生成させた。すると今までサブディスプレイのミラー設定などで解像度が上げられない問題も解決。HDMIが1920×1080で使え、地デジテレビでサーバ画面が見れるようにできた。
さらにこの効果なのか、リモートデスクトップのxrdpが上手く立ち上がらないトラブルも、特に設定を変えていないのに解消。
これで、windowsパソコンが子どもに取られても、サーバ触れる。
カバンの中身
ショルダーバッグの仕切に愛用してるもの。なかなか便利。
ショルダーバッグの常備品
- 10徳ナイフ
- ミニ懐中電灯
- Lightning USBケーブル
- mini USBケーブル / micro USBケーブル
- EarPods
- 30pin iPhone充電ケーブル
- 写真以外に,Mobile Booster , WiFi Walker DATA08W
iPhone5+エラー防止シートx2+Edyで成功
iPhone5になり、Felica非搭載で不便になって、Edyカードを 張り付けて使おうとして失敗し、iPhone4用のエラー防止 シートを挟むようにして、SonyのPaSoRiでは読み書きに失敗していた。
今回、発売元が、iPhone5用の発売にあたりキャンペーンで iPhone5用を無償で送付してくれた。 そこで、今回、2枚挟みにして遮蔽効果をたかめたら、 使えないかと試したら、ばっちりPaSoRiでも使えるようになった。
使ったのは、自分で買ったiPhone4用と、今回送付してくれたiPhone5 を重ね張りしてから、iPhone5に張り付け。 エラー防止シートが、携帯本来の電波を遮蔽してはまずいので、 アンテナがあるという上部(カメラレンズのある方)から離して貼った。 そして、iPhone5-2枚のエラー防止シート-Edyカードで重ね、 Edyで読ませたところ、ちゃんと反応する。 PaSoRiと2mm~3mm程度の間が空いても、十分反応してくれた。
ちなみに、iPhone5+5用シート1枚ばりだけでは、相変わらずPaSoRiは 反応せず。2枚張りでなければ、ダメ。 問題は、ソフトケースに入れてるんだけど、 シート2枚とEdyカードの厚さで、ケースがパンパン。 あと少しでも厚いと、ケースがうまく収まらなさそう。
ipsetを使って国別のFireWall設定
Web記事を探していたら、国別のFireWallでのブロックで ipset というものが使える との情報から、試してみた。 ipsetを使った理由は、iptables に、別物管理したい国別ルールを入れたくなかったため。
ちなみに、ipdeny から取得した CIDR なIPv4なアドレスブロック数は、以下のようになった。 ロシアが多いのは納得だけど、インターネットの普及のイメージとして中国≒インド≒韓国 ぐらいの感じを抱いていたけど、中国のアドレスブロックの数はインド・韓国の3倍。 人口の影響かな?後発出遅れで細切れアドレスになったのかな….
$ wc -l *.zone 2635 cn.zone 602 id.zone 706 in.zone 659 kr.zone 6520 ru.zone 388 tw.zone 11510 合計
また、mergecidr.pl によって、隣接CIDRをマージさせてみたけど、 元々の11510件が、併合で9255件に減らすことができた(20%減)。
mergecidr.pl
#!/usr/bin/perl
my %net = () ;
while( <> ) {
if ( /^(\d+)\.(\d+)\.(\d+)\.(\d+)\/(\d+)$/ ) {
my $ip,$bt;
($ip,$bt) = ( ($1 << 24) + ($2 << 16)
+ ($3 << 8) + $4 , $5 ) ;
$net{$ip} = $bt ;
# printf( "# %08x/%02d\n" , $ip , $bt ) ;
}
}
my $count = 1 ;
while( $count > 0 ) {
my $lip = 0 ;
my $lbt = 0 ;
$count = 0 ;
foreach my $ip ( sort { $a <=> $b } keys %net ) {
my $bt = $net{$ip} ;
if ( $bt > 0 ) {
if ( $lbt == $bt && $bt > 1 ) {
# printf( "%08x/%02d\n" , $ip , $bt ) ;
my $dbt = $bt - 1 ;
my $mask = (((1 << $dbt) - 1)
<< (32 - $dbt)) ;
if ( ($ip & $mask) == ($lip & $mask) ) {
$count++ ;
undef $net{$lip} ;
undef $net{$ip} ;
$net{$ip & $mask} = $dbt ;
#printf( "%08x/%08x/%02d\n" ,
# ($ip & $mask) , $mask , $dbt ) ;
}
}
$lip = $ip ;
$lbt = $bt ;
}
}
}
foreach my $ip ( sort {$a <=> $b } keys %net ) {
my $bt = $net{$ip} ;
if ( $bt > 0 ) {
printf( "%d.%d.%d.%d/%d\n" ,
(($ip >> 24) & 0xff) ,
(($ip >> 16) & 0xff) ,
(($ip >> 8) & 0xff) ,
( $ip & 0xff) ,
$bt ) ;
}
}
geoipdeny.sh
参考サイトのスクリプトをほぼ、そのまま借用。
DIR="/usr/local/etc/geoipdeny" ZONEURL="http://www.ipdeny.com/ipblocks/data/countries" # download zonefile for GEO in cn.zone kr.zone ru.zone tw.zone id.zone in.zone do /usr/bin/wget -q -O - "$ZONEURL/$GEO" \ | /bin/grep -v "^#|^$" > $DIR/$GEO done /usr/sbin/ipset destroy GEOIPDENY > /dev/null 2>&1 /usr/sbin/ipset create GEOIPDENY hash:net for IP in ` $DIR/mergecidr.pl $DIR/*.zone ` do /usr/sbin/ipset add GEOIPDENY $IP done /usr/sbin/ipset save GEOIPDENY > $DIR/geoipdeny.store /usr/sbin/ipset destroy GEOIPDENY
fermの設定に登録
自宅のFirewallの設定には、iptablesな設定を、ブロック的にまとめて記載できる、 ferm というのを使っているので、その設定の中に、上記でできた ipset を参照させる。
(( 設定ファイルの先頭に )) @hook post "/usr/sbin/ipset destroy GEOIPDENY" ; @hook pre "/bin/cat /usr/local/etc/geoipdeny/geoipdeny.store | /usr/sbin/ipset restore" ; @hook flush "/usr/sbin/ipset destroy GEOIPDENY" ; (( Firewallのブラックリストな設定部分に )) mod set set GEOIPDENY ( src dst ) REJECT ;
次は動作確認。
# geoiplookup www.baidu.cn GeoIP Country Edition: CN, China # ipset test GEOIPDENY www.baidu.cn 220.181.111.147 is in set GEOIPDENY. # w3m http://www.baidu.ch これがなぜか接続成功するんだよな....
ということで、まだなにかオカシイ?
# export http_proxy=http://中国のOpenProxy:xxxx # w3m http://tsaitoh.net/ Connection Refused...
おお、ちゃんと拒否られるな….
自宅からだと、間に透過PROXYでも入っているのかな…
iPad+bluetoothキーボードを試す
最近は、参加する会議は、MacBook持込みで、 Evernoteで議事録をその場で書いて、 会議終了時に学科に配布….を通している。 しかし、カバンの中がiPad,Macbookで重い。
んで、最近子どもに買っていた、ポケモンDSタイピング だけどキーボードがBluetoothキーボードということで、 ゲームに飽きたら、パパの物とする予定でいた。
そして、子どももタイピングソフトを使っていないので、 iPadの入力に使うことを試してみた。
やっぱり議事録はMacBookだな
今日は、卒研中間発表で感想&メモをTwitterでツダって、 その後の会議の議事録で、本格的に iPad+bluetoothキーボードを 使ってみた。
DSキーボードは、JISキーボードの癖に iPad は、USキーボード 認識しかしないけど、キーボードに記号キーのシールを張ったし、 日本語中心の記録だから、JIS/USキーの違いは少ない状態。
しかしながら、本格的に使ってみて、やっぱりMacBookの 方がマシという結論。理由は、漢字変換&補完の不気味さ。
例えば、「かんそうを…」と入力し、変換したとして、 「かんそう」を漢字変換する時に、事前に「感想が」を学習して いたとする。 すると、事前学習の助詞・副詞付きを補完した「感想が」を 第一候補に出してくるため、雑に確定していると「感想がを…」 みたいになってしまう。
iPadやスマホのソフトウェアキーボードだと、 入力の高速化のために、助詞副詞付きの候補をだしてくれるのは ありがたい機能。 だけど、ハードウェアキーボードで長文を一括変換しているときに、 助詞副詞を補完してくれるのは、余計なお世話。



