ARPのやりとり

さらに続いて wireshark でのサンプルでの解析実験です
今回は ARPについて
ARP は
Address Resolution Protocol の略
イーサーネットで通信するには
相手のMACアドレスを知らないとダメ
この流れが No10 と No11 に載っています
ちなみに、no10 の
Source(送信元)が
CadmusCo_46:2c::20
No11 は
Source(送信元)が
Sumitomo_f6:85:f3
となっているけど、これは
Wiresharkが自動的に MACアドレスの
ベンダーID前半6桁をベンダー名に変換しているためです
全部数字にしたいなら
View > Name Resolution で
Enable for MC layer のチェックを外して
Ctrl + r
で再度読み込みします
Info にかかれている
Who has 192.168.77.1 ? tell 192.168.77.27

そのままの意味で
192.168.77.17 を持っていたら
192.168.77.27 へ教えて
と言う意味です
これに対して
192.168.77.1 is at 00:0b:a2:f6:85:f3
という答えが帰っています
意味は
192.168.77.1 は 00:0b:a2:f6:85:f3
という意味です
英語ができるようになると、そのまま理解できるようになりそうです
ほとんどのメッセージは英語だし
英語を使うと基本的にwebページの文字化けはしませんので
ちなみに、ARPスプーフィングという手法があり
これを使うことで、無理やり押し付けてしまう手法も存在します

プロトコルから探るには

引き続き、サンプルを元にした解析の実践です
参考書籍として Hacker Japan (ハッカー ジャパン) 2012年 05月号
を使います

Source (送信元)の
192.168.77.27 はPC本体なので気にもしないのですが
No3 から見ていくと
Destination(送信先)が
IGMP で224.0.0.22
NDMS で224.0.0.251
へ送信しています
これについてですが
224.0.0.x は
マルチキャストアドレスで
複数のノードグループに対して一斉送信するときに使うもの
そして、このときに使っている IGMP は
Internet Group Management Protocol の略で
MDNSは
Multicast DNS の略
MDNSは Apple のBonjour や
Linux の Avahi などのネットワーククライアントで
使われるので、こういった情報から使用しているOSを探ることもできます
ちなみに、今回のサンプルにはなかったのですが
LLMNR
NBNS
というプロトコルがあると
Windows7 以降のOSの可能性が高いようです

サンプルを使ってパケット解析の勉強

今回も wireshark を使っての解析の実践となります
今回の参考書籍はHacker Japan (ハッカー ジャパン) 2012年 05月号

サンプルがダウンロードできますので、これを使います
リンクはこちら
ダウンロードしたファイルを解凍し
wireshark で読み込みます
読み込むのは
022.pcap
です
本だけだとちょっとわかりにくいので、
頭の整理をかねてメモです
アウトプッとすると、結構まとめられます
No1 をみると
Source は 0.0.0.0
Destination は 255。255。255。255
つまり、ブロードキャスト
Protocol は DHCP
DHCPを使う場合
クライアントは最初はIPを持っていないから、0.0.0.0
になります
書籍の解説部分を全体画面でみると、こんなかんじ
wireshark.png
ちなみに、分かる人には
No1 と No2 のパケット解析の結果から
ネットワークのサブネット 192.168.77.0/24
gateway と DNS server が 192.168.77.1
ということがわかるようです
おそらくNo2 の結果から
Source 192.168.77.1
Destination 192.168.77.27
であることから
IPは 192.168.77.0 ~ 192.168.77.255
のどれかになりますし
ルーターが
192.168.77.1
となっているので、この場合デフォルトゲートウェイが
192.168.77.1
DNSは大抵は同じ番号になるので
これも
192.168.77.1
となると思われます

IPヘッダーについて

引き続き Wireshark 関連になります
IP、つまり Internet Protocol に燗するものなので
Internet Protocol version4
の行を選びます
+を押せばより詳細な情報を得られます
ちなみに、私の環境だと、こんなかんじ
packet.png
IPヘッダーでもっとも重要なのは
送信元(Source のところ)

発信先(Destination のところ)
のIPアドレス
1つ下の階層のイーサネットフレームヘッダーでは
送信先と送信元は
MACアドレスでした
つまり、実際にパケットを目的地に送るにはIPアドレスを
MACアドレスに変換する必要があるようです

パケットリストペイン

Wireshark そのもののインストールは難しくはないのですが
問題は、通常は使わないようなツールなので、理解しにくいということです
しかし、使えるようになると、いろいろとできます
まず、wireshark は1行が1つのパケットを示していて
色分けされています
色の意味は
view > coloring rules
で見ることができます
一番つかわれているHTTPは緑です
項目を解説すると
一番左から
No
パケット番号
Time
開始から何秒後にキャプチャしたかという経過時間
Source
パケットの発信元
Destination
パケットの送信先
Protocol
プロトコルの名前(たいていはTCP)
Lenght
パケットの長さ
Info
その他の情報
Noは、TIme に近いところに表示されるので少し見にくいかもしれません
今回は、ダウンロードしたファイルから
解析をしてみました
パケットをクリックすると
詳細情報が別のダイアログで表示されます
どのパケットでも上2行は同じ文句から始まります
Frame で始まる行は
イーサネットフレームについての情報を示します
パケットは
厳密に言うと
イーサネットを流れるデータの塊がフレーム
その中にあるIPが扱う塊がデータグラム
さらにその中にあるTCPやUDPの塊がセグメントとなります
ちなみに、+ボタンを押すと
より詳しい情報がみれます
Frame なら
送受信の時間
前のパケットとの時間差
パケット番号や長さが見れます
このFrame の行は
パケットリストペインの詳しいバージョンで
ここは Wireshark がパケットについて記録している部分になります
続いて
Internet II の行です
これはイーサネットフレームヘッダーの情報になります
そして3行目の
Internet Protocol Version 4
のところはIPデータグラムになります
User Datagram Protocol は
UDPセグメント
その下はアプリケーションのプロトコルになります
今回なら
Bootstanp Protocolで送られてきた内容になります

パケット解析の勉強

とりあえずインストールはできたので、次は実行環境です
とはいっても、今回は hacker japan でデータを提供してくれているので
これを使わせていただきます
ダウンロード先は
Hacker Japan Online
ここからダウンロードした
hj2012-05-pcap.zip を解凍し
その中にある
022.pcap
を使用します

Wireshark でネットワーク解析

最近では、セキュリティに気をつけることが多くなりました
そこで、今回は Wireshark でネットワーク解析を行ってみようと思います
参考書籍は
Hacker Japan 2012 5月号です
インストールする Wireshark はすでに付録に入っているので
これを使います
ちなみに、ubuntu でも使いたいなら
sudo apt-get -y install wireshark
でOKです
インストールするときに、一緒にWinPcap がインストールできます
設定はデフォルトのままで問題ありません
ここまでは問題ありませんが
一番の問題は
どうやってパケットをキャプチャするかということです
これについては次回その環境構築実験がすんでから
行ってみようと思います

vmware player コピーでエラー

仮想環境で構築したサーバーをバックアップし
別のマシンで起動したところ、IPアドレスが違っているので、
vim /etc/sysconfig/network-scripts/ifcfg-eth0

ファイルを開いて編集後
service network restart
を実行したところ、エラーが発生しました
エラー内容は
インターフェース eth0 を活性化中
エラー:適切なデバイスが見つかりません
接続 ‘System eth0用のデバイスが見つかりません
という内容でした
このため、対応策を検索
参考サイトは
VMware Player – 仮想マシンのコピー!
です
ifconfig -a
で確認してみると、確かにありません
次に、
vim /etc/udev/rules.d/70-persistent-net.rules
で設定ファイルを開き
eth0 とかかれている行の先頭に#をつけてコメントアウト
NAME=”eth1″ と記述されている箇所を NAME=”eth0″ に変更します
また、同じ行にある ATTR(address)の値をコピーします
これをもとに
vim /etc/sysconfig/network-scripts/ifcfg-eth0
で設定を開き、macアドレスの値を修正し
service network restart
でエラーがなくなりました

ローカルメールサーバー(ubuntu 11.10)構築メモ その4

ローカルメールサーバー(ubuntu 11.10)構築メモ その3
では postfix の設定を行いました
続いて
Dovecot インストールと設定をします
まずは、管理者権限になるので
su –
次に、必要なパッケージをインストールします
apt-get install dovecot-common
apt-get install dovecot-pop3d
apt-get install dovecot-imapd
しかし、この後、問題が発生しました
vim /etc/dovecot/dovecot.conf
を開いても、設定する項目が見当たりません
現在、原因を探しています
もしかしたら、サーバータイプとデスクトップタイプで違うのかもしれません…
とりあえず、サーバータイプをインストールしなおして
再設定をしてみます

ローカルメールサーバー(ubuntu 11.10)構築メモ その3

ローカルメールサーバー(ubuntu 11.10)構築メモ その2
でCGIが使えるようになったので、ここでローカルメールサーバー構築します
sudo apt-get install postfix
sudo apt-get install sasl2-bin
なぜか、postfix-tls はインストールできなかったので後回し
postfix をインストールするときに、ウィンドウがでるので、今回は
一番上の設定なし(もしくは No Configuration) を選択します
毎回 sudo を入れるのは面倒なので、
su –
で管理者権限で行動します
次に、設定ファイルをコピー
cp /usr/lib/postfix/main.cf /etc/postfix/main.cf
次に、ホスト名を
hostname コマンドを実行し調べます
hostname
だけで表示されます
以下は設定ファイルの変更です

sed -i "59s/^#//" /etc/postfix/main.cf
sed -i "76s/^#//" /etc/postfix/main.cf
sed -i "76s/virtual.domain.tld/mail.snowpool-virtual-machine/" /etc/postfix/main.cf
sed -i "83s/^#//" /etc/postfix/main.cf
sed -i "83s/domain.tld/snowpool-virtual-machine/" /etc/postfix/main.cf
sed -i "104s/^#//" /etc/postfix/main.cf
sed -i "118s/^#//" /etc/postfix/main.cf
sed -i "166s/^#//" /etc/postfix/main.cf
sed -i "209s/^#//" /etc/postfix/main.cf
sed -i "388s/^#//" /etc/postfix/main.cf
sed -i "399s/^#//" /etc/postfix/main.cf
sed -i "421s/^#//" /etc/postfix/main.cf
sed -i "526s/^#//" /etc/postfix/main.cf
sed -i "526a body_checks = regexp:/etc/postfix/body_checks" /etc/postfix/main.cf
sed -i "553s/^/#/" /etc/postfix/main.cf
sed -i "553a smtpd_banner = \$myhostname ESMTP" /etc/postfix/main.cf
sed -i "628s/\$/\ \/usr\/sbin\/postfix/" /etc/postfix/main.cf
sed -i "633s/\$/\ \/usr\/bin\/newaliases/" /etc/postfix/main.cf
sed -i "638s/\$/\ \/usr\/bin\/mailq/" /etc/postfix/main.cf
sed -i "644s/\$/\ postdrop/" /etc/postfix/main.cf
sed -i "648s/^/#/" /etc/postfix/main.cf
sed -i "652s/^/#/" /etc/postfix/main.cf
sed -i "657s/^/#/" /etc/postfix/main.cf
sed -i "661s/^/#/" /etc/postfix/main.cf

ここまででpostfix の設定が完了です
ちょっと省いていますので、簡易メールサーバーになっています