この文書は、NessusのオフィシャルページにあるFAQ(http://www.nessus.org/doc/faq.html) を和訳したものです。ただし、新しく追加されたものが欠けている、和訳その ものに誤りが存在する可能性もあります。
1.1 Nessusプロジェクトって何ですか?
'Nessus'プロジェクトは1998年初頭に始まり、1998年4月に初めてリリースさ れた。当時、完全にフリーなセキュリティスキャナーは、もはや時 代遅れとなっていたSATANであり、いくつかの商用のものが出現したが、それ は高すぎるものだった。
Nessusセキュリティスキャナーは、もう1つの(yet another)セキュリティ監査 ツールというだけではない。 それは、私がそうあるべきだと考えるセキュリティ監査である- (デーモンが 返す)バージョンナンバーを信用せず、与えられたサービスが一般的なポート で行われていることを信用しない(web serverはすべて、port 80 でリスニングしているだろうか?)。
Nessusセキュリティスキャナはフリー、オープンソースであり、簡単に使える と希望している。
1.2 誰が資金を出していますか?
誰もNessusプロジェクトに資金を提供していない。作者たちが、その自由な時 間を、これを作るためにあてている。Jordan Hrycajは暗号層を書くためにそ の自由な時間を割いてくれた。私は、自分の自由な時間をセキュリティテスト のアップデートにあてている。ユーザはバグレポートや拡張の提案に彼等の自 由な時間をあてている。
1.3 なぜNessusプロジェクトと呼ばれるのですか?
特段の理由はない。始めたときに名前が必要だった。"My project" とか "Security scanner" とかいった名前はあいまいすぎて、普通すぎた。
1.4 私はどうすればこのプロジェクトに寄与できますか?
お金、ソフトウェア、ハードウェアをこのプロジェクトに寄贈することができ る。加えて、新しいリリースをテストしたり、コードを寄贈することもできる。 さらなる詳細は http://www.nessus.org/を見なさい。
2.1 どうしたらコンパイルオプションを利用できますか?
全てのコンパイルオプションは、nessus-librariesパッケージの
configureスクリプトに渡される。もし暗号層を有効にしたいなら、こ
うするべきである:
cd nessus-libraries |
./configure --enable-cipher |
2.2 なぜリンク時に 'undefined reference to yylex' というエラー がでるのですか?
nessus-librariesのコンパイルには、yaccとlexではなく、bisonと flexが必要である。よって、bisonとflexをインストールし、その後最初から nessus-librariesを再度コンパイルし、もう一度試してほしい。
2.3 nessusライブラリをインストールしたのに、どうしてlibnasl はそれを見付けてくれないのですか?
デフォルトでは、nessus-librariesはプログラムを ${prefix}/bin (特に異な
る指定をしないならたいてい /usr/local/bin)にインストールする。このディ
レクトリがpathに入っていることを確認しなさい。たいてい、単に
PATH=$PATH:/usr/local/bin |
export PATH |
2.4 Nessusを実行するのに、X11とGTKをインストールしたくないの ですが、どうしたらそれらを利用しないNessusをコンパイルできますか?
つまり、あなたが望んでいるのはコマンドライン版のクライアントだ。 nessus-coreで ./configure --disable-gtk としなさい。
2.5 どうしたら SuSE Linus上でNessusをコンパイルできますか?
SuSE linux上でNessusをコンパイルするには、まず以下のパッケージがインス
トールされていることを確認しなければならない:
2.6 SolarisでNessusをコンパイルするにはどうしたらいいですか?
良い解説が http://www.sunhelpdesk.com/users/john/nessus.htmで見つかる (Solaris 7のために書かれたものだが、絶対に見る価値はある)。
2.7 最新版のビルドを自動化できますか?
出来る。サンプルのスクリプトは以下の通り。(開発版を利用して
いて、CVSサーバから直接アップデートすることを仮定している)。
#!/bin/sh NESSUSROOT=/usr/local/src NESSUSLIBOPS="--disable-cipher" NESSUSCOREOPS="--disable-cipher \ --enable-save-kb \ --enable-save-sessions \ --enable-gtk \ --enable-syslog" if [ -f /usr/bin/sudo ]; then SUDO="/usr/bin/sudo" fi cd $NESSUSROOT # Get the Latest CVS code # Use checkout instead of update on your first run! export CVSROOT=":pserver:anonymous@cvs.nessus.org:/usr/local/cvs" cvs login # Password is "anon"! cvs -z3 update nessus-libraries cvs -z3 update libnasl cvs -z3 update nessus-core cvs -z3 update nessus-plugins # Kill running versions! $SUDO killall nessusd $SUDO killall nessus # CLEANUP old stuff! cd $NESSUSROOT/nessus-libraries uninstall-nessus make distclean cd $NESSUSROOT/libnasl make distclean cd $NESSUSROOT/nessus-core make distclean cd $NESSUSROOT/nessus-plugins make distclean # Now it's time to rock and roll. cd $NESSUSROOT/nessus-libraries ./configure $NESSUSLIBOPS 2>&1|tee config.log make 2>&1|tee make.log $SUDO make install 2>&1|tee make-install.log $SUDO ldconfig cd $NESSUSROOT/libnasl ./configure 2>&1|tee config.log make 2>&1|tee make.log $SUDO make install 2>&1|tee make-install.log $SUDO ldconfig cd $NESSUSROOT/nessus-core ./configure $NESSUSCOREOPS 2>&1|tee config.log make 2>&1|tee make.log $SUDO make install 2>&1|tee make-install.log cd $NESSUSROOT/nessus-plugins ./configure 2>&1|tee config.log make 2>&1|tee make.log make install 2>&1|tee make-install.log # This is optional but usefull if you killed off everything # or is it is your first run of the script. # Adjust as needed! $SUDO nessus-mkrand $SUDO nessus-mkcert $SUDO nessus-adduser |
3.1 どうしてログインできないのですか?
Nessusはそれ自身でユーザデータベースを持つ。 nessus-adduserを使ってアカウントを作らなければならない。
3.2 コマンドラインからnessusクライアントを実行するには、どう したらいいですか?
一般的な構文は、
nessus --output-type=html --config-file=nessusrc --batch-mode <host> <port> <login> <password> <target file> <results file>
3.3 私独自のテストのために、どうやってnessusrcファイルを作っ たらいいですか?
以下のステップを試しなさい。
3.4 クライアントをロードしたあと、サーバへ log-in/connectを 試したのですが、"Could not open a connection to the remote host (this is the message that Win Nessus reports, other client platforms may differ)"というメッセージを受け取ったのですが、なぜですか?
サーバデーモンが動いているかどうか確認しなさい。ps -A | grep "nessusd" とタイプすれば良いです。
もし"nessusd"が存在しないならば、次のコマンドによりnessusのデーモンを 起動しなさい: nessusd -D ("nessusd"はあなたのPATH中に存在し、かつ "nessusd"を動かすに十分な権限を持っていると仮定している)。
もし"nessusd"が存在するなら、使用中のポート番号を確認しなさい。ここで、 netstat -naというコマンドが有用である。歴史的なポート番号は3001である。 IANAがアサインしたポートは1241である。
3.5 どうしてnessusは libnasl.so.1 (dynamic) ライブラリを発見 できないのですか?
新しいダイナミックライブラリをインストールした後、システムがそれを見つ けられるようにしなければならない。 Linuxシステムの場合、ダイナミックライブラリをインストールしたディレク トリが/etc/ld.so.confに存在しなければならず、また、その後にldconfigを 実行しなればならないということである。 Solarisシステムでは、環境変数LD_LIBRARY_PATH にそのディレクトリを追加 しなければならない。これは、nessusバイナリを利用しようとするのに先立っ てなされてなければならない。Solaris 8では crle -u -l lib_directory と するのがより良い方法に思える(これは/var/ld/ld.configファイルをアップデー トする)。
3.6 どうしたら naslスクリプトをコマンドラインから実行できますか?
nasl -t IP script_name とタイプすることでnaslのインタプリタを呼び出す ことができる。例えば、nasl -t 10.10.10.9 ISN.nasl で、IPアドレスが 10.10.10.9のマシンが、特定の脆弱性のためのスクリプト ISN.nasl を用いて テストされる。
4.1 どうして接続中、CRCエラーになるのですか?
暗号層の働きの何かが変わった。${share}share/nessus/nessns*keys* とあな たの ~/.nessus.keys を削除し、再度試してほしい。
4.2 どうして "Spoof alert: public key of sender has changed"というエラーになるのですか?
Nessusでは、鍵を認証に用いている。クライアントのIPアドレスもまた、この 鍵に含まれる。よって、もしあなたがステーションXからユーザAで利用し、そ の後ステーションYからユーザAで利用すると、nessusdは異なる鍵を受けとり、 アラームを鳴らすだろう。これはまた、あなたが新しいユーザ鍵を生成したと きにも起きる。
すべき最善のことは、ステーションごとに異なるユーザを使うことである。 鍵をとりのぞくには、/usr/local/etc/nessusd.keysを消すか、少なくともこ のファイルからその鍵を無効にしなければならない。(あなたが/etc/nessusを pathとして利用するRPMパッケージを利用しているのでなければ)。
より最近のnessusクライアントでは、"User"へ行き、あなたを受けいれないホ ストを選択することができる。しかる後そのホストを削除し、再度試しなさい。
4.3 どうして "Wrong pass phrase(s) given for key activation - aborting." というエラーになるのですか?
~/.nessus.keysを消すべきように思える。
4.4 CVSバージョンをSSLなしでコンパイルするには、どうしたらいいですか?
nessus-librariesをコンパイルするとき、./configure --disable-cipher オ プションを試しなさい。
5.1 どうしてプラグインウィンドウがからっぽなのですか?
まずnessusdサーバに接続しなければならない。もし既にnessusdサーバに接続 済みだとしたら、タブを描画するときの嫌なバグを直した版であるNessus 0.98.4以降を使っていることを確認しなさい。
5.2 どうしてスキャンがこんなに遅いのですか?
0.99.4からは、セキュリティチェックでrecv() のコールをどれだけ待
つのかをユーザが制御する方法がある。より古い版(0.99.4より前)では、タイ
ムアウトが5秒に設定されており、それは高速リンクを経由するネットワーク
をスキャンするときには十分だが、そうでない場合には不十分であり、よって
デフォルトは15秒に設定されている。もし高速ネットワーク経由でnessusを使
うつもりなら、nessusd.confを以下のように書きかえるとよい:
checks_read_timeout = 5
これは、Linux以外のシステムでの実行時に、より必要性が高い。
5.3 どうして nessus-update-plugins スクリプトがないのですか?
nessusをコンパイルするとき、lynxもwgetもインストールされていなかったと いうのが、最もありそうである。簡単な解法は、いずれか(または両方)をイン ストールし、nessusを再度ビルドすることである。
5.4 どうして nessusd はルートのアクセスが必要なのですか?
以下の理由からである:
R系ツール(rlogin, rsh)とlpdは、セッションが特権ポート(< 1023)から始ま ることを期待している。だから、良い監査ではこれをまねすることが必要であ るので、同様に特権ポートから起動しなければ、そのテストは全く 役立たずになってしまう。
実は、nessusdを一般ユーザで起動することも可能だが、上に記した問題を見 落すことになるだろう。
5.5 Nessusを動かすには、どのような穴をファイアウォールにあけなければなりませんか?
正直に言って、もしnessusサーバ上や、nessusサーバとテストしようとしてい るホストとの間に、いかなる種類であれファイアウォールを置いたなら、あや まった結果を受けとることになるだろう。あなたのスキャンから、信頼に足 る結果を得ることができないであろう。
nessusサーバをセキュアにするためにnessusサーバ上にファイアウォールを置 くのは、過ったアプローチである(少なくとも、完全でないアプローチであ る)。代わりにサーバを強固にしなさい。
もしテストしようとしているホストとnessusサーバの間にファイアウォールが あるなら、ホストを直接テストしたのと異なる結果を得るだろう。これは、 望ましい結果かもしれない。もしもあなたが100%の確実を望むのなら、ホスト を強固にし、その前にあるファイアウォールを信頼すべきでない。
一般に、この問題は熱く討論されてきており、これについて全員が同じ視点を 持っているわけではない。
提案されたファイアウォールのルールセットは、次のようなトラフィックを許
すものであろう:
これをファイアウォールと呼べるかどうかは定かではない :-)
5.6 NessusがWindowsベースのシステムに移植される予定はありますか?
そうする予定はない。Renaud Deraison や Michel Arboi がそうしようとする とは思えない。しかし、もしあなたそういう気分にかりたてられるなら、これを自由 に配布することができる。
NessusWXと呼ばれるWindows GUIがあり、それは http://www.securityprojects.org/nessuswxで見付けられるだろう。
5.7 Nessusは、どのようにしてこれらすべてのテストを実行しますか?
Nessusは、IPを通じてターゲットと接続したり、多くのアプリケーションプロ トコルをシミュレートしたりしてセキュリティ問題を発見しようとする。 例えば、webサーバの問題をテストしている時、Nessusはwebブラウザを装う (httpをしゃべる)。Windowsのファイルサーバをテストするときは、Nessusは Windowsのクライアントを装う(SMBをしゃべる)。
これらのテストの殆どはNASLスクリプトによってなされる。めいめいのスクリ プトは、1つの特定のタスクのために作られている。
5.8 他に有用なリンクはありますか?
以下を試しなさい:
http://www.certcc.or.kr/tools/Nessus.html (Korean CERT) が、nessusコンポーネントを説明する素敵な絵を持っている。
5.9 どうして私の質問がFAQにないのですか?
以下のいずれかの理由だろう:
私は、この答えが好きではない。(The use of profane language and such will definitly be a reason to dislike the message and in such event it will not make it to the FAQ.)
しかし、もしFAQに寄贈したいなら、明確な質問と、その答を私に送ることは ご自由に。そのために時間がれば、次の版にそれを入れるかもしれない。もし 現存する質問に情報を付加したいなら、番号は私にとって不適切であり、質問 の全文を引用しなければならない。ソースドキュメントに番号はまったく振ら れていない! (これはコンパイル時に自動的に付加される)
答えなしで質問を送るのはやめてほしい。代わりに、メーリングリストに行き なさい。
より好まれる方法は、SGMLソースのコピーを作り、必要な変更をし、SGMLソー スの差分(diff -uri)を送ることである。もしこれが出来ないのなら、私は特 にメールボックス中のHTMLを嫌うので、プレインテキストを用いてほしい。
FAQエントリは、まったく私にのみ送るべきであり、メーリングリストの1つに 送ったり、メーリングリストの1つにコピーが含まれたりするべきではない。 そういったメールは私のメールソフトが異なるように扱うため、そのような場 合、私が見落すことがありそうだ。
ここにある「私」とは Hugo van der Kooijのことであ り、美森勇気ではない。そちらにメールする際には、日本語ではなく英語にす る必要があるだろう。