2011年1月5日水曜日

nmapを使う

新年明けましておめでとうございます。
本年もよろしくお願いします(`・ω・´)

今日はnmapの使い方めもめもです。
このツール、すごく便利でかつ怖いですね。使う際は慎重に!

まずはTCPスキャン。
# nmap -sT localhost

Starting nmap 3.70 ( http://www.insecure.org/nmap/ ) at 2011-01-05 16:28 JST
Interesting ports on localhost.localdomain (127.0.0.1):
(The 1655 ports scanned but not shown below are in state: closed)
PORT STATE SERVICE
21/tcp open ftp
22/tcp open ssh
80/tcp open http
873/tcp open rsync
3306/tcp open mysql

Nmap run completed -- 1 IP address (1 host up) scanned in 0.285 seconds
これは自サーバ内でのポートスキャン結果です。
ポートを絞って行う場合は
# nmap -sT localhost -p 80-3306

Starting nmap 3.70 ( http://www.insecure.org/nmap/ ) at 2011-01-05 16:31 JST
Interesting ports on localhost.localdomain (127.0.0.1):
(The 3224 ports scanned but not shown below are in state: closed)
PORT STATE SERVICE
80/tcp open http
873/tcp open rsync
3306/tcp open mysql

Nmap run completed -- 1 IP address (1 host up) scanned in 0.243 seconds
80番ポートから3306番ポートまででTCPパケットを送り、どのサービスが動作しているか確認できます。

次にローカルネットワーク内(192.168.60.0/24)でPINGスキャンしてみます。
# nmap -sP 192.168.60.0/24

Starting nmap 3.70 ( http://www.insecure.org/nmap/ ) at 2011-01-05 16:37 JST
Host 192.168.60.0 seems to be a subnet broadcast address (returned 8 extra pings).
Host 192.168.60.1 appears to be up.
MAC Address: 00:06:5B:24:A2:A0 (Dell Computer)
Host 192.168.60.2 appears to be up.
MAC Address: 00:07:40:97:9A:C7 (Melco)
Host 192.168.60.10 appears to be up.
MAC Address: 78:CA:39:F9:6A:D3 (Unknown)
Host 192.168.60.11 appears to be up.
.
.
.
(中略)
MAC Address: 00:80:F0:33:42:47 (Panasonic Communications Co.)
Host 192.168.60.255 seems to be a subnet broadcast address (returned 14 extra pings).
Nmap run completed -- 256 IP addresses (46 hosts up) scanned in 3.250 seconds
ネットワーク内でどのホストが生きている/死んでるを確認するとき便利ですね。

UPDパケットで確認するときは(snmpd/udpデーモンの確認など)
# nmap -sU localhost

Starting nmap 3.70 ( http://www.insecure.org/nmap/ ) at 2011-01-05 16:39 JST
Interesting ports on localhost.localdomain (127.0.0.1):
(The 1477 ports scanned but not shown below are in state: closed)
PORT STATE SERVICE
123/udp open|filtered ntp

Nmap run completed -- 1 IP address (1 host up) scanned in 1.475 seconds
で確認できます。

実際にどのようなサービスが起動しているか確認するには
# nmap -sS -sV 192.168.60.214 -p 21-80,110,3306,5432

Starting nmap 3.70 ( http://www.insecure.org/nmap/ ) at 2011-01-05 16:43 JST
Interesting ports on 192.168.60.214:
(The 58 ports scanned but not shown below are in state: closed)
PORT STATE SERVICE VERSION
21/tcp open ftp ProFTPD 1.3.0
22/tcp open ssh OpenSSH 3.1p1 (protocol 1.99)
23/tcp open telnet Linux telnetd
25/tcp open smtp Postfix smtpd
80/tcp open http Apache httpd 2.2.13 ((Unix) PHP/5.3.3)
MAC Address: 0A:00:00:00:00:0D (Unknown)

Nmap run completed -- 1 IP address (1 host up) scanned in 5.353 seconds
あらら、丸分かり。
-sSはステルススキャン。TCP接続をフルで行わないので早い?のかな。half-openスキャニングと言うらしい。対象のサーバにログを残さなない場合は多い。※root権限
-sVはサービスを確認する。が付けなくてもrootで動かせばサービス確認できると思います。


以上どぇぇぇす。

2010年12月9日木曜日

mailコマンドでメールを読む

どうも、俺@仕事中です。

今日はmailコマンドでメールを読む時のtipsをめもめも。
いつも忘れちゃうので。

まず受信メールを確認/表示させる
$ mail
Mail version 8.1 6/6/93. Type ? for help.
"/var/spool/mail/username": 742 messages 742 unread
>U 1 root@localhost.local Tue Nov 11 03:29 75/2378 "LogWatch for localhost.localdomain"
U 2 root@localhost.local Wed Nov 12 03:29 84/2936 "LogWatch for localhost.localdomain"
U 3 root@localhost.local Thu Nov 13 03:29 81/2666 "LogWatch for localhost.localdomain"
U 4 root@localhost.local Fri Nov 14 03:29 93/2763 "LogWatch for localhost.localdomain"
U 5 root@localhost.local Sat Nov 15 03:29 94/2985 "LogWatch for localhost.localdomain"
.
.
.


「>」が付いているものが現在選択中のメールです。
それぞれ頭文字の意味は
U...未読
N...新着
R...既読
S...保存済み
で数字はメール番号です。

番号を入力しEnterでその番号のメールを読みます。
& 2 Enter
Message 2:
From root@localhost.localdomain Wed Nov 12 03:29:02 2008
Date: Wed, 12 Nov 2008 03:29:02 +0900
From: root
To: root@localhost.localdomain
Subject: LogWatch for localhost.localdomain

// 以下メール本文表示


「q」でそのメールを閉じます。
「n」で次のメール、「-」で前のメールへ移動します。

mailコマンド実行中の「&」のあとに打つサブコマンドは
メール番号...その番号のメールを表示
n...次のメール表示
-...前のメール表示
p...選択中のメール表示
h...メール一覧を表示
r...選択中のメールに返信
d (メール番号)...選択中のメールを削除。番号を入力した場合はそのメールを削除
u...メール削除の取り消し
q...変更保存し、mailコマンド終了
x...変更を保存せずにmailコマンド終了



以下のサイトのマルコピですw
Linuxで自宅サーバ構築(新森からの雑記) - mailコマンドの使い方


以上でぇぇえぇっぇぇぇす。

postfixでpermission(権限)に関するっぽいエラーが出る

どうも、俺@寝る前です。

なので超適当ですが、postfixを起動させた時や、エラーにパーミッション(権限)に関するっぽいようなエラーが出る場合は
# postfix stop
# postfix check // ここでエラー内容確認
# postfix set-permissions // 権限修正
# postfix start

で直ることもありますよ。


おやすみなさいぃぃぃぃぃ。

2010年11月26日金曜日

apacheのrewriteでドメイン変更に対応する

どうも、俺@仕事中です。

今日はタイトルの通り、apacheのmod_rewriteを使ってサイトのドメイン変更に対応する方法についてメモめも。
さらにそのサイトは「*(ワイルドカード)」によるサブドメイン設定がされておりその対応もしなければなりません。

ドメインは
old.jp → new.jp に変更するものとします。
DNSゾーン設定は以下のような感じで
1.2.3.4は仮のサーバIPのつもり
@ IN A 1.2.3.4
* IN A 1.2.3.4


つまり
old.jpでアクセスのあったものはnew.jpにリライトし
foo.old.jpでアクセスのあったものはfoo.new.jpにリライトしたいのです。

apacheのRewriteモジュールはインストールしておいてね。


では設定方法について
# vim /usr/local/apache2/conf/httpd.conf
--------------------------------------------
1 RewriteEngine On
2 Rewrite Cond %{HTTP_HOST} ^(.*)old\.jp [NC]
3 RewriteRule ^(.*)$ http://%1new.jp$1 [R=301,L]
これでapache再起動でOKです。
正規表現はかなり適当なので実運用する場合はも少し丁寧に書いたほうが良いと思います。

ポイントは3行目の
^(.*)$ http://%1new.jp$1
の部分です。
「%1」は2行目のRewriteCondeで設定した正規表現の文字グループを後方参照する場合に使えます。
もちろん複数ある場合は %2,%3..とつづきます。

これで完成ーばんざあぁぁぁぁぁあぃ!

2010年11月11日木曜日

manコマンドで文字化け回避

どうも、俺@仕事中です。

今日はmanページを日本語環境で表示させた場合に文字化けしてしまう場合の対処法めもです。
たぶんmanページが文字化けする以外のシチュエーションでも使えそうな気がします。

例えば
$ locale
LANG=C
LC_CTYPE="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_COLLATE="C"
LC_MONETARY="C"
LC_MESSAGES="C"
LC_PAPER="C"
LC_NAME="C"
LC_ADDRESS="C"
LC_TELEPHONE="C"
LC_MEASUREMENT="C"
LC_IDENTIFICATION="C"
LC_ALL=
のような環境で
$ man less
LESS(1)

NAME
less - opposite of more

SYNOPSIS
less -?
less --help
less -V
less --version
less [-[+]aBcCdeEfFgGiIJLmMnNqQrRsSuUVwWX~]
[-b space] [-h lines] [-j line] [-k keyfile]
--- 以下略 ---
のようにまず問題なく表示されます。
ところが
$ locale
LANG=ja_JP.utf8
LC_CTYPE="ja_JP.utf8"
LC_NUMERIC="ja_JP.utf8"
LC_TIME="ja_JP.utf8"
LC_COLLATE="ja_JP.utf8"
LC_MONETARY="ja_JP.utf8"
LC_MESSAGES="ja_JP.utf8"
LC_PAPER="ja_JP.utf8"
LC_NAME="ja_JP.utf8"
LC_ADDRESS="ja_JP.utf8"
LC_TELEPHONE="ja_JP.utf8"
LC_MEASUREMENT="ja_JP.utf8"
LC_IDENTIFICATION="ja_JP.utf8"
LC_ALL=
のような場合にmanを見ると
$ man less
LESS(1)

<E5><ux><8D><E5><89><8D>
less - more <E3><81><AE><E5><8F><8D><E5><AF><BE> (more <E3><81><AE><E3><82><88><E3><81><86><E3><81><AA><E3><83><9A><E3><83><BC><E3><82><B8><E3><83><A3><E3><83><BC>)

<E6><9B><B8><E5><BC><8F>
less -?
less --help
less -V
less --version
--- 以下略 ---
のようになる場合があります。

こんな時は
$ export PAGER="less -irs"
とするかログインシェルの .xxrcファイルに設定しておけば万事解決です!


以上どえぇぇっぇぇす。