このブログを検索

2008/12/22

lhaで圧縮するのやめようぜ、もう・・・

さて・・・

MS Office 2000
Teraterm
Dynamips
IOSHunter
Lhaplus
Cygwin

などをインストールする。

lhaで圧縮するのやめようぜ、もう・・・。

SendToの場所

\Users\[ユーザー名]\AppData\Roaming\Microsoft\Windows\SendTo

2008/12/21

IPsecをやってみる (Dynamips)

Dynamipsは Vista64でも動いた。
ただし、フォルダが読み取り専用になっていたのでそれを直すのと、 telnetはデフォルトで無効になっている(クライアントも)ので有効にする必要がある。 IPsecをやってみます。

  192.168.1.0/24    10.10.10.0/24    192.168.2.0/24
+----+        +----+             +----+        +----+
| R3 +--------+ R1 +-------------+ R2 +--------+ R4 |
+----+.2    .1+----+.1         .2+----+.1    .2+----+

R1


R1#sho running-config
Building configuration...

Current configuration : 1695 bytes
!
version 12.4
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname R1
!
boot-start-marker
boot-end-marker
!
no aaa new-model
ip cef
!
crypto isakmp policy 1
encr 3des
hash md5
authentication pre-share
lifetime 28800
crypto isakmp key cisco address 10.10.10.2 255.255.255.0
crypto isakmp keepalive 100
!
crypto ipsec transform-set IPSEC esp-3des esp-md5-hmac
!
crypto map MAP1 1 ipsec-isakmp
set peer 10.10.10.2
set transform-set IPSEC
match address 101
interface FastEthernet0/0
ip address 192.168.1.1 255.255.255.0
duplex half
speed auto
!
interface FastEthernet0/1
no ip address
shutdown
duplex auto
speed auto
!
interface Serial1/0
ip address 10.10.10.1 255.255.255.0
serial restart-delay 0
crypto map MAP1
!
interface Serial1/1
no ip address
shutdown
serial restart-delay 0
!
interface Serial1/2
no ip address
shutdown
serial restart-delay 0
!
interface Serial1/3
no ip address
shutdown
serial restart-delay 0
!
interface Serial1/4
no ip address
shutdown
serial restart-delay 0
!
interface Serial1/5
no ip address
shutdown
serial restart-delay 0
!
interface Serial1/6
no ip address
shutdown
serial restart-delay 0
!
interface Serial1/7
no ip address
shutdown
serial restart-delay 0
!
ip route 192.168.1.0 255.255.255.0 10.10.10.2
ip route 192.168.2.0 255.255.255.0 10.10.10.2
!
no ip http server
no ip http secure-server
!
access-list 101 permit ip 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255
!
control-plane
!
gatekeeper
shutdown
!
line con 0
stopbits 1
line aux 0
stopbits 1
line vty 0 4
login
!
end


R2

R2#sho running-config
Building configuration...

Current configuration : 1710 bytes
!
version 12.4
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname R2
!
boot-start-marker
boot-end-marker
!
no aaa new-model
!
ip cef
!
crypto isakmp policy 1
encr 3des
hash md5
authentication pre-share
lifetime 28800
crypto isakmp key cisco address 10.10.10.1 255.255.255.0
crypto isakmp keepalive 100
!
crypto ipsec transform-set IPSEC esp-3des esp-md5-hmac
!
crypto map MAP1 1 ipsec-isakmp
set peer 10.10.10.1
set transform-set IPSEC
match address 101
!
interface FastEthernet0/0
ip address 192.168.2.1 255.255.255.0
duplex half
speed auto
!
interface FastEthernet0/1
no ip address
shutdown
duplex auto
speed auto
!
interface Serial1/0
ip address 10.10.10.2 255.255.255.0
serial restart-delay 0
no fair-queue
crypto map MAP1
!
interface Serial1/1
no ip address
shutdown
serial restart-delay 0
!
interface Serial1/2
no ip address
shutdown
serial restart-delay 0
!
interface Serial1/3
no ip address
shutdown
serial restart-delay 0
!
interface Serial1/4
no ip address
shutdown
serial restart-delay 0
!
interface Serial1/5
no ip address
shutdown
serial restart-delay 0
!
interface Serial1/6
no ip address
shutdown
serial restart-delay 0
!
interface Serial1/7
no ip address
shutdown
serial restart-delay 0
!
ip route 192.168.1.0 255.255.255.0 10.10.10.1
ip route 192.168.2.0 255.255.255.0 10.10.10.1
!
no ip http server
no ip http secure-server
!
access-list 101 permit ip 192.168.2.0 0.0.0.255 192.168.1.0 0.0.0.255
!
control-plane
!
gatekeeper
shutdown
line con 0
stopbits 1
line aux 0
stopbits 1
line vty 0 4
login
end


R3

R3#sho running-config
Building configuration...

Current configuration : 621 bytes
!
version 12.4
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname R3
!
boot-start-marker
boot-end-marker
!
no aaa new-model
!
ip cef
!
interface FastEthernet0/0
ip address 192.168.1.2 255.255.255.0
duplex auto
speed auto
!
interface FastEthernet0/1
no ip address
shutdown
duplex auto
speed auto
!
ip route 0.0.0.0 0.0.0.0 192.168.1.1
!
no ip http server
no ip http secure-server
!
control-plane
!
gatekeeper
shutdown
!
line con 0
stopbits 1
line aux 0
line vty 0 4
!
end


R4

R4#sho running-config
Building configuration...

Current configuration : 621 bytes
!
version 12.4
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname R4
!
boot-start-marker
boot-end-marker
!
no aaa new-model
!
ip cef
!
interface FastEthernet0/0
ip address 192.168.2.2 255.255.255.0
duplex auto
speed auto
!
interface FastEthernet0/1
no ip address
shutdown
duplex auto
speed auto
!
ip route 0.0.0.0 0.0.0.0 192.168.2.1
!
no ip http server
no ip http secure-server
!
control-plane
!
gatekeeper
shutdown
!
line con 0
stopbits 1
line aux 0
line vty 0 4
!
end

設定しただけではIPsec SAは確立しません。
この設定だと、192.168.0/24 <---> 192.168.2.0/24 の通信が発生したときのみ、IPsec 通信が行われます。


R3#ping 192.168.2.2

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.2.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 220/260/356 ms
R3#


R1#show crypto isakmp sa
dst src state conn-id slot status
10.10.10.2 10.10.10.1 QM_IDLE 1 0 ACTIVE

R1#
R1#sho crypto isakmp peers
Peer: 10.10.10.2 Port: 500 Local: 10.10.10.1
Phase1 id: 10.10.10.2
R1#
R1#sho crypto isakmp policy

Global IKE policy
Protection suite of priority 1
encryption algorithm: Three key triple DES
hash algorithm: Message Digest 5
authentication method: Pre-Shared Key
Diffie-Hellman group: #1 (768 bit)
lifetime: 28800 seconds, no volume limit
Default protection suite
encryption algorithm: DES - Data Encryption Standard (56 bit keys).
hash algorithm: Secure Hash Standard
authentication method: Rivest-Shamir-Adleman Signature
Diffie-Hellman group: #1 (768 bit)
lifetime: 86400 seconds, no volume limit
R1#

08/12/22(Mon) 08:36
R1#sho cry ipsec sa

interface: Serial1/0
Crypto map tag: MAP1, local addr 10.10.10.1

protected vrf: (none)
local ident (addr/mask/prot/port): (192.168.1.0/255.255.255.0/0/0)
remote ident (addr/mask/prot/port): (192.168.2.0/255.255.255.0/0/0)
current_peer 10.10.10.2 port 500
PERMIT, flags={origin_is_acl,}
#pkts encaps: 18, #pkts encrypt: 18, #pkts digest: 18
#pkts decaps: 17, #pkts decrypt: 17, #pkts verify: 17
#pkts compressed: 0, #pkts decompressed: 0
#pkts not compressed: 0, #pkts compr. failed: 0
#pkts not decompressed: 0, #pkts decompress failed: 0
#send errors 2, #recv errors 0

local crypto endpt.: 10.10.10.1, remote crypto endpt.: 10.10.10.2
path mtu 1500, ip mtu 1500, ip mtu idb Serial1/0
current outbound spi: 0x193624A0(422978720)

inbound esp sas:
spi: 0xC5E6FB2A(3320249130)
transform: esp-3des esp-md5-hmac ,
in use settings ={Tunnel, }
conn id: 2001, flow_id: SW:1, crypto map: MAP1
sa timing: remaining key lifetime (k/sec): (4482477/2342)
IV size: 8 bytes
replay detection support: Y
Status: ACTIVE

inbound ah sas:

inbound pcp sas:

outbound esp sas:
spi: 0x193624A0(422978720)
transform: esp-3des esp-md5-hmac ,
in use settings ={Tunnel, }
conn id: 2002, flow_id: SW:2, crypto map: MAP1
sa timing: remaining key lifetime (k/sec): (4482477/2341)
IV size: 8 bytes
replay detection support: Y
Status: ACTIVE

outbound ah sas:

outbound pcp sas:
R1#
R1#sho cry ipsec transform-set
Transform set IPSEC: { esp-3des esp-md5-hmac }
will negotiate = { Tunnel, },


R1#sho cry ipsec ?
policy Show IPSEC client policies
profile Show ipsec profile information
sa IPSEC SA table
security-association Show parameters for IPSec security associations
transform-set Crypto transform sets

R1#sho cry ipsec se
R1#sho cry ipsec security-association
Security association lifetime: 4608000 kilobytes/3600 seconds

R1の S1/0をキャプチャしてみると、ISAKMP Identity Protectionが3往復、ISAKMP Quick Modeが1往復半した後に、ESPパケットの通信が開始されている。

 これは vista ultimate 64bitバージョンで、Dynamipsを使って4台の7200をエミュレートしたものである。 

このとき、teratermのログを保存したのだが、そのファイルが見つからなくなった。 しかし、teratermでログを保存するメニューを出すと、ちゃんとファイルが表示される。 と、エクスプローラのメニューに「互換性ファイル」という文字が。 そこをクリックすると表示された。しかし今度は他のファイルが見えなくなる。 エクスプローラをいったん閉じて、再び開くと、またログファイル以外が見える。 この「互換性ファイル」問題は、bitcometを使ったときに出くわしたのだが、 いまだに意味がよくわからない。 まあ、スレ違いの話題なので、これについてはまたの機会に。

2008/12/10

SEって何?

SE(システムエンジニア)という職業は、日本特有のものらしい。
そして、私はいくつかの会社を転々として、SEにたいする認識の違いに驚いた。
ある職場では「コンピュータについて何でも知っている人」、ある職場では「ソフトウェアしか知らない人」、ある職場では「ハードウェアのことを知らない人」、ある職場では「何にも知らない人(バカ)」、ある職場では「エンドユーザーのこと」というように。
そして今書いた順序は私が転々としてきた順序でもあり、おもしろいことにどんどんSEの権威が落ちている。それは、ソフトハウス(これも死語か)から電機メーカーという風に徐々にハードよりの仕事になったせいもあるだろうし、時の流れにつれてSEという仕事の内容も変わってきたせいもあるだろう。

ただし、この業界では(ほかでも同じかもしれないが)、分担しているそれぞれの職務をバカにする傾向がある。SEというのは設計をしてプログラマはコーディングをする。
SEは、「自分の仕事は上流工程であり、プログラマーは自分の設計を実装させているだけだ」と思っているし、プログラマは「SEはユーザの要望をプログラマに伝えているだけであり、実際にシステムを作り上げているのはプログラマだ」と思っている。お互いを馬鹿にして、憎みあっている。
ソフトウェアとハードウェアのエンジニアの間にも似たような現象が見られる。営業とエンジニアでもそう。
そして、それらのお互いへの蔑視と憎悪は、100%偏見であり根拠のないものであると言い切れる。
とても恥ずかしいことで、それが強いプロジェクトほどろくなものができない。

私はソフトウェア寄りなので、ハードウェアを馬鹿にする傾向がある。「コンピュータなんてただの計算機だ」と、最初に勤めた会社で1年契約社員で働いたあと正社員になるときの面接で言って、あやうく落とされそうになった。
今でも、ソフトウェアあってのコンピュータだ、ハードウェアのことを意識しないとプログラミングができないような言語やOSはダメだ、という意識がある。
だから、Windowsはすばらしいと思っている。IEとOutlookExpressを使っている。
Linuxなどは仕事などでどうしても必要な時にしぶしぶ使うだけである。

多分、SEという業務は外国ではコンサルタントのことではないだろうか?
実際、日本でもSEのようなことをする、つまりソフトウェア開発をする人がいるらしい。
私もSEの端くれをしていて思っていたのは、SEとはコンピュータやソフトウェアのエンジニアではなく、究極はある会社の業務をどうやって効率化し自動化するかを考える人、つまりコンサルタントではないか、と思った。ITはその道具に過ぎないと。
それは、ある面接の場で実際に口にしたこともある。「ゆくゆくはコンサルタント的な仕事をしたい」と。
その時は「コンサルタント」がどういう仕事なのかよく知らなかったのだが、日本で「コンサルタント」というと、超高学歴の人がやる超多忙超高収入の仕事であることを知って、自分がコンサルタントをしたいなどと30すぎて職にもあぶれている立場で言うことではなかったのだと恥ずかしくなった。

SEには過度な期待をしていたのだが、実情はとても「エンジニア」などと呼べるような技術職ではないとすぐに幻滅した。コンピュータサイエンスもアーキテクチャも知る必要はない、数学も必要ない、16進数や2進数もほとんどいらない、こんなの誰でもできる、「開発」なんてシロモノじゃない・・・

「SEは文系の仕事だと思いますよ」
これはもうSEを辞めかけているときに、先輩に言った言葉である。
実際、そのときしていたSEには、プログラミング技術とかハードウェアの知識よりも簿記会計の知識のほうが必要だと常々感じていた。

しかし、それをコンサルタントと呼ぶかSEと呼ぶかプロジェクトマネージャーと呼ぶかバカとよぶかはともかく、必要であることは間違いなくて、どうやら現在そういう人が不足しているようだ。CとかJavaとかのプログラマーはそこそこいるが、プロジェクト全体を仕切るような人材がいないらしい。まあ、最初からそんな事ができるやつなんかいるわけないが。

私の時代にはプログラマがえらくなってSEになる、という順序だったのだが、
今はプログラミングは勉強だけして、業務ではコーディングはしないというSEが増えているらしい。

そして、現場の実情を知らない学歴だけある高慢なSEやコンサルタントと、プログラマ達の誤解と憎みあいは、どの職場にもあるようである。

しかし、私はSE的な仕事は、経験はないが高学歴な人がやるしかないと思う。高慢なくらいでないと勤まらないだろう。それくらい理不尽で不合理な仕事だ。

ある工程に特化したエンジニアの言うことは確かにスジが通っていて、SEの無理難題に反発するのももっともに見える。しかし、エンジニアがそれぞれの工程に専念しているだけでは何も生まれない。逆に言うと、全体を統括して仕切る人がいるから、エンジニアたちは他の工程を気にせずに「スジの通った」事だけを気持ちよく鼻歌交じりにやっていられるのである。

私はそういう「不平不満を言う職人達」とそれをなだめすかして動かす人たちの板ばさみを経験している。
一般的に「スジの通ったことしかしない専門職」はブルーカラーなどと呼ばれて待遇が悪く、学歴も低いひとがやる傾向にある。
だから彼らは「学歴があってもこんなことも知らない」とか「大学の勉強ができたって仕事ができるとは限らない」などとグチるのである。

私は今、そういう曲がったことは大嫌いな職人みたいな人たちと仕事をしているのだが、
自分の考えを整理して明らかになったのであるが、そういう人たちは私がもっとも苦手とする、軽蔑するといってもいい、天敵なのである。だからつらかったのである。

2008/12/09

qwerty配列

qwerty配列が実は文字入力を遅くするための配列である、と言う話を私は最近まで信じていた。確か、坂村健の書いた、痛快!コンピュータ学とかいう本で知ったと記憶している。

しかし、それは嘘であるらしい。U先生がその話を紹介したところ、それについて研究している人がそうじゃないんだと抗議した。

私はU先生がその話を披露したときにはすでに、それは嘘だと知っていた。誰の話だかは忘れたが。読者の多いブログなのですぐに指摘はあるだろうと思ったらすぐにU先生も訂正して抗議のメールを公開していた。

だが、そのメールの文面が非常に攻撃的で「なんでデタラメな話を流布して私の研究を邪魔するのか」というようなヒステリックな内容なのがちょっと気になった。そのヒステリックさは最近何度かあった、I氏によるU先生への批判の調子に似ている。

そして、先ほどそのU先生の記事をたまたま読み返していて、再度疑問がわいた。それが嘘なら、QWERTY配列は、最善の効率を求めて作られたが結果としてそうならなかった配列なのか?それとも、とりたてて理由は無いがなんとなく並べられた配列なのか、という疑問である。

検索してみたら、同じような疑問を抱いている人がいた。もう慣れてしまったので、この配列がいいのか悪いのかはわからない。q,z,xなどが端っこにあるのは使用頻度が少ないためではないかと思う。しかし、ではホームポジションにあるf,jはそんなに頻度が高い文字だろうか?

qwerty配列はたまたま標準になったのか、優れた配置だったためになるべくして標準となったのか。

多分、前者だと思う。多分、わざと速くタイプできないようにしたとまではいかないまでも、それほど厳密に効率を求めた配列ではなかった、というところだろう。

そもそも、この配列を作った頃にはタイピストは両手でタイプなどしていなかったらしい。最初はアルファベット順に二列に並べていたらしい。それから母音のキーを移動させたりして今の配列になった。

dvorak配列は、使った人によると確かにタイプしやすいらしく、高速タイプのギネス記録保持者も使っているそうである。qwertyが普及したのはやはりたまたまであって「もっとも効率のよいキーボードだったからではない」というのはやっぱり真実なのだ。

そこそこのものでさえあればたとえ最善ではなくても、利用者が多いものが普及して標準となる。その方が重要なことであって、「わざと効率を悪くしたなどと言うのはウソだ」などというのは、そんなに必死になって、本を書いてまで、主張するようなことでもない。

・・・オトナだろ?俺。

2008/11/13

いろんなコマンド

linuxのshell scriptを、excelなどを使って作った場合、実行できない場合がある。これは改行コードがCR+LFとなっているためである。

実行できるようにするには、二つの方法がある。

まずは、ftpで転送する場合、asciiモードで送信する。テキストファイルは asciiでもbinaryでも表示には問題ないが、改行コードがwindows式のCR+LFではスクリプトとして実行できない。asciiモードで送信すると、改行コードを変換してくれる。

もし、FTPで送受信していないとかで再受信できない場合は、nkfコマンドを使う。これは改行コードや文字コードを変換してくれるコマンドである。

nkf -Lu windows.txt > linux.txt

とやると、改行コードがCR+LFからLFに変換される。nkfコマンドにはほかにもいろいろオプションがあるので確認されたし。

ヒマなのでlinuxコマンドリファレンスに載っているコマンドを片っ端から使ってみた。そして発見したこと。

scriptで記録したログの制御コードを除くには、

cat log.txt|col > log2.txt

でよい。viで %s/^M//g とかやらなくても。


diff3 というコマンドは3つのファイルを比較できる。

diff -u で、結果をunified型式で出力できる。

cmp バイナリファイルの比較。差がなければ何も表示されない。

netstat -r は route と同じ。

grep -v word は、指定した語に一致しない行を出力

grep -i word は、指定した語の大文字小文字を区別せずに検索

lha もある。

bzip2 最近ちょくちょく見かけるが、圧縮率がgzipより高い。が、時間もかかるようだ。

ちなみに lhaはgzipよりちょっと圧縮率が高いようだ。

pushd/popd の使い方。あるディレクトリに居て、一時的にディレクトリを変更してすぐ戻りたい場合に、

pushd /home/aiueo

popd

とやると、戻ってこれる。




Makefile の書き方

TARGET = myfile

all: $(TARGET)

clean:
rm myfile

myfile:
gcc -o myfile myfile.c


myfile.cをコンパイルしてmyfileという名前の実行ファイルを作る。

users ログインユーザの一覧

w でもわかるけど余計な情報がつく

wget ミラーサイトなどを作るときにディレクトリごとコピーできる(未確認)

arping リモートホストにarp requestを送信する。

strings filename 指定したファイル内の文字列を表示する。使ったことはあったが意味を知らなかった。

pstree psの階層表示。どんなときに使うのかは知らないが。

alias コマンドやオプションに別名をつける。

lastlog って実行ファイルだった。いつもログファイルと思ってエディタで開いてしまう。

write username 指定したユーザにメッセージを送る。 write 文字列 ではない。

bmtoa/atobm ビットマップとはWindowsで使う画像のbmpファイルではなく、アイコンなどにつかういわゆる1bitの画像ファイルらしい。使い方はよくわからない。

cjpeg/djpeg/jpegtran jpegの画像変換。回転や反転もできる。

convert 画像のファイル変換、回転

2008/11/11

ウィルス

私のパソコンにはウィルス対策ソフトが入っていないし、入れたこともない。

ニュースなどで非常にうるさいので、オンラインスキャンを何度かやってみたことがあるが、一度も検出されたことがない。

ただし感染の経験はある。

一番ひどかったのは仕事で使っているパソコンで、知らない人ではあるが社員の名前が明記されていてvbscriptが添付されているものだったのだが、そのスクリプトをダブルクリックしてしまったのだ。

すぐに大量のメールが送信されたのだが、宛先不明だかなんかで自分に返ってきた。幸い、相手に送信はされなかった。あわててLANケーブルを抜いたのだが、同じように感染してしまった人がけっこういたようである。

あとは、coderedだのnimdaなどが流行っていた頃、自宅のpcにadmin.dllとかいうファイルを見つけたことがある。

それはスキャンしたのではなく、自分で見て気づいたのだ。探すまで気づかなかったくらいだから、もちろんPCに不具合はなかった。

あとインターネットにつなぎ始めたばかりで、spamなどに不慣れなころには、添付ファイルはexeだろうがなんだろうがガンガン開いていたし、リンクも平気でクリックしていた。

ただ、私は3ヶ月に一度くらい再インストールしていたのと、家庭内LANを使うためにルータを入れたことで、ほとんどウィルスの被害はなかった。

誰かにそのウィルスをうつしてたりしたかもしれないが、その人だって私と同程度の被害しかないのだから、そんなに悪かったとは思わない。

私は、ウィルスというものは実は悪意を持って作成されたのではなく、ほとんど自然発生的に生まれたのではないかと考えたことがある。もしかして、単なるバグなんじゃないか、と。

2008/11/09

複数シートの特定箇所に同じ文字列を設定するマクロ

複数シートの特定箇所に同じ文字列を設定

Sub macro1()

'すべてのシートを選択(非表示シートがあると失敗する)
Sheets.Select

'A1セルを選択
Range("A1").Select

'アクティブなセルに「はてな」をセット
ActiveCell.Value = "はてな"

'シート1を選択(シートの複数選択を解除)
Sheets(1).Select

End Sub