スポンサーサイト
脆弱性診断ツール - Nessusのインストール
OS:Fedora 11
インストールするツール:Nessus 4.2.1
脆弱性診断ツールは、コンピュータ上の脆弱性を自動で調査します。
今回は脆弱性診断ツール、Nessusのインストール手順を紹介します。
※Fedora 11へのインストール手順を記載しています。
まず、NessusホームページよりNessusをダウンロードします。
http://www.nessus.org/download/
今回はFedora 11へインストールするので、Nessus-4.2.1-fc11.i586.rpmを利用します。
ダウンロード後、rpmコマンドでインストールします。
インストールが完了したら、Nessusユーザの追加を行います。
nessus-adduserコマンドを実行します。
ユーザの作成が完了しました。
続いてはプラグインダウンロード用のアクティベーションコードを入手します。
※登録のためメールアドレスが必要になります。
以下URLから、HomeFeed > I Acceptと進みメールアドレスを入力した後、
Registerを選択します。
http://www.tenablesecurity.com/plugins/index.php?view=register-info
数分後、メールが届きます。
届いたメール本文内のLinux and Solaris Users :以下のコマンドをサーバ上で実行し、
アクティベーションコードをサーバ上へ登録します。
最新のプラグインがダウンロードされます。
Nessusサービスを起動させます。
※起動すると https://サーバIPアドレス:8834/からアクセス可能になりますが、
サービスを起動させてから実際にアクセス可能になるまで、数分〜十数分程、時間が掛かる場合があります。
https://サーバIPアドレス:8834/へアクセスし、先ほど作成したユーザでログインします。

まずは脆弱性スキャンを実施する上で、ポリシー※を設定する必要があります。Policies、Addの順に選択します。
※ポリシーは、例えばどのプラグインを利用するか、タイムアウト値をいくつに設定するか、などを定義します。

以下の画面が表示されますので、Basic内のNameにポリシー名を入力します。
Visibilityには、ポリシーを他のユーザと共有するかどうかを設定します。
Shared : 他のユーザと共有
Private : ポリシー作成したユーザのみ

とりあえず今回は、その他の項目はデフォルトのままで先ほどのポリシー画面に戻るまでNextをクリックします。
※診断対象のサーバへの負荷を軽減させたい場合は、Max Checks Per Hostの値を減らしたり、
Max Simultaneous TCP Sessions Per HostにホストへのTCPセッションの最大数を制限する等してください。
ポリシーが作成されました。

次に、スキャン対象のサーバを設定します。Scansを選択します。

Addを選択します。

Name : スキャン名を入力します。スキャン対象のホスト名など入力しておくと後でわかりやすいと思います。
Policy : 先ほど作成したポリシーを選択します。
Scan Targets : スキャン対象のサーバを入力します。
右下のLaunch Scanを選択すると、スキャンが実行されます。

ダブルクリックすると、スキャン状況をリアルタイムで確認することが出来ます。

スキャンが終了すると、Reportへ追加されます。
ダブルクリックするとスキャン結果を確認出来ます。

ホストをクリックすると、以下の画像の様に検出されたポート一覧と、
発見された脆弱性等が一覧表示されます。
以下の画面から、ポート番号をクリックしていくと発見された脆弱性を確認出来ます。

※左のDownload Reportボタンを選択することで、レポートをHTML形式等で保存することが出来ます。
インストールするツール:Nessus 4.2.1
脆弱性診断ツールは、コンピュータ上の脆弱性を自動で調査します。
今回は脆弱性診断ツール、Nessusのインストール手順を紹介します。
※Fedora 11へのインストール手順を記載しています。
まず、NessusホームページよりNessusをダウンロードします。
http://www.nessus.org/download/
今回はFedora 11へインストールするので、Nessus-4.2.1-fc11.i586.rpmを利用します。
ダウンロード後、rpmコマンドでインストールします。
[root@localhost src]# ls
Nessus-4.2.1-fc11.i586.rpm
[root@localhost src]#
[root@localhost src]# rpm -ivh Nessus-4.2.1-fc11.i586.rpm
準備中... ########################################### [100%]
1:Nessus ########################################### [100%]
nessusd (Nessus) 4.2.1 [build K9119] for Linux
(C) 1998 - 2010 Tenable Network Security, Inc.
- Please run /opt/nessus//sbin/nessus-adduser to add a user
- Register your Nessus scanner at http://www.nessus.org/register/ to obtain
all the newest plugins
- You can start nessusd by typing /sbin/service nessusd start
[root@localhost src]#
Nessus-4.2.1-fc11.i586.rpm
[root@localhost src]#
[root@localhost src]# rpm -ivh Nessus-4.2.1-fc11.i586.rpm
準備中... ########################################### [100%]
1:Nessus ########################################### [100%]
nessusd (Nessus) 4.2.1 [build K9119] for Linux
(C) 1998 - 2010 Tenable Network Security, Inc.
- Please run /opt/nessus//sbin/nessus-adduser to add a user
- Register your Nessus scanner at http://www.nessus.org/register/ to obtain
all the newest plugins
- You can start nessusd by typing /sbin/service nessusd start
[root@localhost src]#
インストールが完了したら、Nessusユーザの追加を行います。
nessus-adduserコマンドを実行します。
[root@localhost src]# /opt/nessus//sbin/nessus-adduser
Login : nessususer ←※ユーザ名とパスワードを入力します。
Login password :
Login password (again) :
Do you want this user to be a Nessus 'admin' user ? (can upload plugins, etc...) (y/n) [n]: y
User rules ↑作成したユーザをadminユーザとする場合はyを選択します。
----------
nessusd has a rules system which allows you to restrict the hosts
that nessususer has the right to test. For instance, you may want
him to be able to scan his own host only.
Please see the nessus-adduser manual for the rules syntax
Enter the rules for this user, and enter a BLANK LINE once you are done :
(the user can have an empty rules set)
↑ユーザのルールを入力する場所ですが、今回はとりあえず何も入力せずエンターキーを押します。
Login : nessususer
Password : ***********
This user will have 'admin' privileges within the Nessus server
Rules :
Is that ok ? (y/n) [y] y
User added
[root@localhost src]#
Login : nessususer ←※ユーザ名とパスワードを入力します。
Login password :
Login password (again) :
Do you want this user to be a Nessus 'admin' user ? (can upload plugins, etc...) (y/n) [n]: y
User rules ↑作成したユーザをadminユーザとする場合はyを選択します。
----------
nessusd has a rules system which allows you to restrict the hosts
that nessususer has the right to test. For instance, you may want
him to be able to scan his own host only.
Please see the nessus-adduser manual for the rules syntax
Enter the rules for this user, and enter a BLANK LINE once you are done :
(the user can have an empty rules set)
↑ユーザのルールを入力する場所ですが、今回はとりあえず何も入力せずエンターキーを押します。
Login : nessususer
Password : ***********
This user will have 'admin' privileges within the Nessus server
Rules :
Is that ok ? (y/n) [y] y
User added
[root@localhost src]#
ユーザの作成が完了しました。
続いてはプラグインダウンロード用のアクティベーションコードを入手します。
※登録のためメールアドレスが必要になります。
以下URLから、HomeFeed > I Acceptと進みメールアドレスを入力した後、
Registerを選択します。
http://www.tenablesecurity.com/plugins/index.php?view=register-info
数分後、メールが届きます。
届いたメール本文内のLinux and Solaris Users :以下のコマンドをサーバ上で実行し、
アクティベーションコードをサーバ上へ登録します。
最新のプラグインがダウンロードされます。
[root@localhost src]# /opt/nessus/bin/nessus-fetch --register XXXX-XXXX-XXXX-XXXX-XXXX
Your activation code has been registered properly - thank you.
Now fetching the newest plugin set from plugins.nessus.org...
Your Nessus installation is now up-to-date.
If auto_update is set to 'yes' in nessusd.conf, Nessus will
update the plugins by itself.
[root@localhost src]#
Your activation code has been registered properly - thank you.
Now fetching the newest plugin set from plugins.nessus.org...
Your Nessus installation is now up-to-date.
If auto_update is set to 'yes' in nessusd.conf, Nessus will
update the plugins by itself.
[root@localhost src]#
Nessusサービスを起動させます。
[root@localhost src]# /etc/init.d/nessusd start
Nessus サービスを起動中:
[root@localhost src]#
Nessus サービスを起動中:
[root@localhost src]#
※起動すると https://サーバIPアドレス:8834/からアクセス可能になりますが、
サービスを起動させてから実際にアクセス可能になるまで、数分〜十数分程、時間が掛かる場合があります。
https://サーバIPアドレス:8834/へアクセスし、先ほど作成したユーザでログインします。

まずは脆弱性スキャンを実施する上で、ポリシー※を設定する必要があります。Policies、Addの順に選択します。
※ポリシーは、例えばどのプラグインを利用するか、タイムアウト値をいくつに設定するか、などを定義します。

以下の画面が表示されますので、Basic内のNameにポリシー名を入力します。
Visibilityには、ポリシーを他のユーザと共有するかどうかを設定します。
Shared : 他のユーザと共有
Private : ポリシー作成したユーザのみ

とりあえず今回は、その他の項目はデフォルトのままで先ほどのポリシー画面に戻るまでNextをクリックします。
※診断対象のサーバへの負荷を軽減させたい場合は、Max Checks Per Hostの値を減らしたり、
Max Simultaneous TCP Sessions Per HostにホストへのTCPセッションの最大数を制限する等してください。
ポリシーが作成されました。

次に、スキャン対象のサーバを設定します。Scansを選択します。

Addを選択します。

Name : スキャン名を入力します。スキャン対象のホスト名など入力しておくと後でわかりやすいと思います。
Policy : 先ほど作成したポリシーを選択します。
Scan Targets : スキャン対象のサーバを入力します。
右下のLaunch Scanを選択すると、スキャンが実行されます。

ダブルクリックすると、スキャン状況をリアルタイムで確認することが出来ます。

スキャンが終了すると、Reportへ追加されます。
ダブルクリックするとスキャン結果を確認出来ます。

ホストをクリックすると、以下の画像の様に検出されたポート一覧と、
発見された脆弱性等が一覧表示されます。
以下の画面から、ポート番号をクリックしていくと発見された脆弱性を確認出来ます。

※左のDownload Reportボタンを選択することで、レポートをHTML形式等で保存することが出来ます。
HTTP - Traceメソッドを無効にする (Apache)
検証環境:Apache 2.2.6-3
設定変更前はTRACEメソッドが許可されています。
送信したリクエストヘッダがそのまま返ってきます。
TRACEメソッドを無効にするためhttpd.confへ下記の行を追記します。
設定追記後リスタート
送信したリクエストヘッダが返ってきません。
TRACEメソッドが無効化されていることを確認できました。
関連情報
設定変更前はTRACEメソッドが許可されています。
送信したリクエストヘッダがそのまま返ってきます。
[root@localhost ~]# telnet 192.168.1.2 80
TRACE / HTTP/1.0
HOST: 192.168.1.2
HTTP/1.1 200 OK
Date: Wed, 23 Sep 2009 12:06:41 GMT
Server: Apache
Connection: close
Content-Type: message/http
TRACE / HTTP/1.0
HOST: 192.168.1.2
TRACE / HTTP/1.0
HOST: 192.168.1.2
HTTP/1.1 200 OK
Date: Wed, 23 Sep 2009 12:06:41 GMT
Server: Apache
Connection: close
Content-Type: message/http
TRACE / HTTP/1.0
HOST: 192.168.1.2
TRACEメソッドを無効にするためhttpd.confへ下記の行を追記します。
TraceEnable Off
設定追記後リスタート
[root@localhost html]# /etc/init.d/httpd restart
httpd を停止中: [ OK ]
httpd を起動中: [ OK ]
[root@localhost html]#
httpd を停止中: [ OK ]
httpd を起動中: [ OK ]
[root@localhost html]#
送信したリクエストヘッダが返ってきません。
TRACEメソッドが無効化されていることを確認できました。
[root@localhost ~]# telnet 192.168.1.2 80
TRACE / HTTP/1.0
HOST: 192.168.1.2
HTTP/1.1 403 Forbidden
Date: Wed, 23 Sep 2009 12:15:37 GMT
Server: Apache
Content-Length: 202
Connection: close
Content-Type: text/html; charset=iso-8859-1
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>403 Forbidden</title>
</head><body>
<h1>Forbidden</h1>
<p>You don't have permission to access /
on this server.</p>
</body></html>
[root@localhost ~]#
TRACE / HTTP/1.0
HOST: 192.168.1.2
HTTP/1.1 403 Forbidden
Date: Wed, 23 Sep 2009 12:15:37 GMT
Server: Apache
Content-Length: 202
Connection: close
Content-Type: text/html; charset=iso-8859-1
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>403 Forbidden</title>
</head><body>
<h1>Forbidden</h1>
<p>You don't have permission to access /
on this server.</p>
</body></html>
[root@localhost ~]#
関連情報
ネットワークIDS Snortの導入
SnortはIDS(Intrusion Detection System)で、IDSとは侵入検知システムの事です。
IDSは不正な通信を検知することができます。
監視対象のネットワークから収集したパケットをSnortが所持しているルール(シグネチャ)と比較し、そのパケットが不正な通信(アタック)かどうか判別し、アタックと判断したものは、ログとして保持します。
※今回はsyslogとして保存していく方法を記載しています。
Snortをインストールする前に下記を事前にインストールしておきます。
・PCRE
・libpcap
・libpcap-devel
PCREのインストール
Snortをsnort.orgよりダウンロードし、インストールします。
※以下の例ではsnort-2.8.4.1.tar.gzを使用しています。
http://www.snort.org/
Snort設定ファイル用ディレクトリ、ルール用ディレクトリ、ログ用ディレクトリを作成します。
Snort設定ファイルを/etc/snortへコピーします。
Snortユーザを作成します。
Snortの出力をSyslogへ保存する為、/etc/snort/snort.confを編集します。
下記の行を追記します。任意のファシリティを指定します。
Snortのルールセットをダウンロードします。
※ユーザ登録が必要です。
ユーザ登録はこちらから
https://www.snort.org/signup
ダウンロードはこちらから
http://www.snort.org/snort-rules
設定ファイル(snort.conf)を環境に合わせて書き換えます。
下記の行を環境に応じて変更します。
var HOME_NET any は内部ネットワークを指定する設定です。
内部ネットワークが192.168.1.0/24であれば、
anyを192.168.1.0/24に書き換えます。
var EXTERNAL_NET anyは外部ネットワークを指定します。
any設定のままで問題無いと思われます。
var RULE_PATHにはRuleファイルを保存しているパスを指定します(先ほど作成した/etc/snort/rules)。
snortを実行します。
オプション
-d : アプリケーションレイヤのデータをログとして保存する
-D : Snortをバックグラウンド(デーモン)モードで起動する
-e : レイヤ2ヘッダを表示する
-c : ルールファイルを使用する
-i : パケット監視で使用するインタフェースを指定する
-u : 起動するユーザを指定する
-g : 起動するグループを指定する
-l : ログを保存するディレクトリを指定する
これで、何かしらのアタックを検知すれば、ログが/var/log/snort/配下に保存されていくはずです。
実際にSnortで監視できているか確認するには、
内部のWEBサーバへcmd.exeをURLに追加して(http://WEBサーバIPアドレス/cmd.exe)アクセスすれば、
ログが記録されるはずです。
IDSは不正な通信を検知することができます。
監視対象のネットワークから収集したパケットをSnortが所持しているルール(シグネチャ)と比較し、そのパケットが不正な通信(アタック)かどうか判別し、アタックと判断したものは、ログとして保持します。
※今回はsyslogとして保存していく方法を記載しています。
Snortをインストールする前に下記を事前にインストールしておきます。
・PCRE
・libpcap
・libpcap-devel
PCREのインストール
[fedora@localhost src]$ wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-7.9.tar.gz
[fedora@localhost src]$ tar xzf pcre-7.9.tar.gz
[fedora@localhost src]$ cd pcre-7.9
[fedora@localhost pcre-7.9]# ./configure
[fedora@localhost pcre-7.9]# make
[fedora@localhost pcre-7.9]# su
Password:
[root@localhost pcre-7.9]# make install
[root@localhost pcre-7.9]#
[fedora@localhost src]$ tar xzf pcre-7.9.tar.gz
[fedora@localhost src]$ cd pcre-7.9
[fedora@localhost pcre-7.9]# ./configure
[fedora@localhost pcre-7.9]# make
[fedora@localhost pcre-7.9]# su
Password:
[root@localhost pcre-7.9]# make install
[root@localhost pcre-7.9]#
Snortをsnort.orgよりダウンロードし、インストールします。
※以下の例ではsnort-2.8.4.1.tar.gzを使用しています。
http://www.snort.org/
[fedora@localhost src]$ tar xzf snort-2.8.4.1.tar.gz
[fedora@localhost src]$ cd snort-2.8.4.1
[fedora@localhost snort-2.8.4.1]$
[fedora@localhost snort-2.8.4.1]$ ./configure
[fedora@localhost snort-2.8.4.1]$ make
[fedora@localhost snort-2.8.4.1]$ su
Password:
[root@localhost snort-2.8.4.1]# make install
[fedora@localhost src]$ cd snort-2.8.4.1
[fedora@localhost snort-2.8.4.1]$
[fedora@localhost snort-2.8.4.1]$ ./configure
[fedora@localhost snort-2.8.4.1]$ make
[fedora@localhost snort-2.8.4.1]$ su
Password:
[root@localhost snort-2.8.4.1]# make install
Snort設定ファイル用ディレクトリ、ルール用ディレクトリ、ログ用ディレクトリを作成します。
[root@localhost snort-2.8.4.1]# mkdir /etc/snort
[root@localhost snort-2.8.4.1]# mkdir /etc/snort/rules
[root@localhost snort-2.8.4.1]# mkdir /var/log/snort
[root@localhost snort-2.8.4.1]# mkdir /etc/snort/rules
[root@localhost snort-2.8.4.1]# mkdir /var/log/snort
Snort設定ファイルを/etc/snortへコピーします。
[root@localhost snort-2.8.4.1]# cp etc/* /etc/snort/
Snortユーザを作成します。
[root@localhost snort-2.8.4.1]# useradd snort -d /var/log/snort -s /bin/false
[root@localhost snort-2.8.4.1]# chown -R snort:snort /var/log/snort/
[root@localhost snort-2.8.4.1]# chown -R snort:snort /var/log/snort/
Snortの出力をSyslogへ保存する為、/etc/snort/snort.confを編集します。
下記の行を追記します。任意のファシリティを指定します。
output alert_syslog:LOG_LOCAL4 LOG_ALERT
Snortのルールセットをダウンロードします。
※ユーザ登録が必要です。
ユーザ登録はこちらから
https://www.snort.org/signup
ダウンロードはこちらから
http://www.snort.org/snort-rules
[root@localhost snortrules]# tar xzf snortrules-snapshot-CURRENT.tar.gz
[root@localhost snortrules]# cp rules/*.rules /etc/snort/rules
[root@localhost snortrules]# cp rules/*.rules /etc/snort/rules
設定ファイル(snort.conf)を環境に合わせて書き換えます。
下記の行を環境に応じて変更します。
var HOME_NET any は内部ネットワークを指定する設定です。
内部ネットワークが192.168.1.0/24であれば、
anyを192.168.1.0/24に書き換えます。
var EXTERNAL_NET anyは外部ネットワークを指定します。
any設定のままで問題無いと思われます。
# var HOME_NET [10.1.1.0/24,192.168.1.0/24]
#
# MAKE SURE YOU DON'T PLACE ANY SPACES IN YOUR LIST!
#
# or you can specify the variable to be any IP address
# like this:
var HOME_NET 192.168.1.0/24
# Set up the external network addresses as well. A good start may be "any"
var EXTERNAL_NET any
#
# MAKE SURE YOU DON'T PLACE ANY SPACES IN YOUR LIST!
#
# or you can specify the variable to be any IP address
# like this:
var HOME_NET 192.168.1.0/24
# Set up the external network addresses as well. A good start may be "any"
var EXTERNAL_NET any
var RULE_PATHにはRuleファイルを保存しているパスを指定します(先ほど作成した/etc/snort/rules)。
var RULE_PATH ../rules
↓
var RULE_PATH /etc/snort/rules
↓
var RULE_PATH /etc/snort/rules
snortを実行します。
[root@localhost ~]# snort -d -D -e -c /etc/snort/snort.conf -i eth0 -u snort -g snort -l /var/log/snort
オプション
-d : アプリケーションレイヤのデータをログとして保存する
-D : Snortをバックグラウンド(デーモン)モードで起動する
-e : レイヤ2ヘッダを表示する
-c : ルールファイルを使用する
-i : パケット監視で使用するインタフェースを指定する
-u : 起動するユーザを指定する
-g : 起動するグループを指定する
-l : ログを保存するディレクトリを指定する
これで、何かしらのアタックを検知すれば、ログが/var/log/snort/配下に保存されていくはずです。
実際にSnortで監視できているか確認するには、
内部のWEBサーバへcmd.exeをURLに追加して(http://WEBサーバIPアドレス/cmd.exe)アクセスすれば、
ログが記録されるはずです。
IPP - IPPポートを閉じる
IPP(Internet Printing Protocol)はポート631を利用する、リモートでプリンタの制御を行う為のプロトコルです。
特に利用する予定が無い場合は、ポートを閉じておきます。
OS:Fedora
まずポートが空いていることをNmapかnetstatで確認します。
CUPS(Common Unix Printing System)は、IPPを利用する印刷システムです。
CUPSを停止することで631ポートは閉じられます。
ポートが閉じたことをNmapかnetstatで確認します。
起動時にサービスが開始されるようになっている場合は、
chkconfigで起動時にサービスが起動しないよう設定します。
有効になっていたのでoffにし、確認します。
特に利用する予定が無い場合は、ポートを閉じておきます。
OS:Fedora
まずポートが空いていることをNmapかnetstatで確認します。
[root@localhost ~]# nmap localhost
Starting Nmap 4.20 ( http://insecure.org ) at 2009-07-22 20:00 JST
Interesting ports on localhost (127.0.0.1):
Not shown: 1695 closed ports
PORT STATE SERVICE
22/tcp open ssh
631/tcp open ipp
Nmap finished: 1 IP address (1 host up) scanned in 0.251 seconds
[root@localhost ~]#
[root@localhost ~]# netstat -nl | grep 631
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN
Starting Nmap 4.20 ( http://insecure.org ) at 2009-07-22 20:00 JST
Interesting ports on localhost (127.0.0.1):
Not shown: 1695 closed ports
PORT STATE SERVICE
22/tcp open ssh
631/tcp open ipp
Nmap finished: 1 IP address (1 host up) scanned in 0.251 seconds
[root@localhost ~]#
[root@localhost ~]# netstat -nl | grep 631
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN
CUPS(Common Unix Printing System)は、IPPを利用する印刷システムです。
CUPSを停止することで631ポートは閉じられます。
[root@localhost ~]# /etc/init.d/cups stop
cups を停止中: [ OK ]
cups を停止中: [ OK ]
ポートが閉じたことをNmapかnetstatで確認します。
[root@localhost ~]# nmap localhost
Starting Nmap 4.20 ( http://insecure.org ) at 2009-07-22 20:02 JST
Interesting ports on localhost (127.0.0.1):
Not shown: 1696 closed ports
PORT STATE SERVICE
22/tcp open ssh
Nmap finished: 1 IP address (1 host up) scanned in 0.251 seconds
[root@localhost ~]#
[root@localhost ~]# netstat -nl | grep 631
[root@localhost ~]#
Starting Nmap 4.20 ( http://insecure.org ) at 2009-07-22 20:02 JST
Interesting ports on localhost (127.0.0.1):
Not shown: 1696 closed ports
PORT STATE SERVICE
22/tcp open ssh
Nmap finished: 1 IP address (1 host up) scanned in 0.251 seconds
[root@localhost ~]#
[root@localhost ~]# netstat -nl | grep 631
[root@localhost ~]#
起動時にサービスが開始されるようになっている場合は、
chkconfigで起動時にサービスが起動しないよう設定します。
[root@localhost ~]# chkconfig --list cups
cups 0:off 1:off 2:on 3:on 4:on 5:on 6:off
cups 0:off 1:off 2:on 3:on 4:on 5:on 6:off
有効になっていたのでoffにし、確認します。
[root@localhost ~]# chkconfig cups off
[root@localhost ~]#
[root@localhost ~]# chkconfig --list cups
cups 0:off 1:off 2:off 3:off 4:off 5:off 6:off
[root@localhost ~]#
[root@localhost ~]# chkconfig --list cups
cups 0:off 1:off 2:off 3:off 4:off 5:off 6:off
Firewall Bypass - 送信元ポート番号指定によるFirewall Bypass
特定の値へ送信元ポート番号を変更することでバイパスが可能なファイアウォールが発見された場合、その配下のサーバへ、ファイアウォール バイパスして通信を行う為にクライアント側の送信元ポート番号を特定の値に変更する必要があります。
使用するクライアント側のアプリケーションによっては、送信元ポート番号の指定が出来ないので、
Fpipeというツールを使用し、送信元ポートを指定します。
※Fpipeはサーバとして動作します。
Fpipeサーバ宛のパケットは、送信元ポートが指定のポート番号へ変更され、対象サーバへ送信されます。
FPipeはFoundstoneよりダウンロードします。
Free Tools & Resources > Fpipe > Download this Tool Now
<http://www.foundstone.com/us/index.asp>
fpipeのオプションは下記の通りです。
fpipe -l 161 -s 53 -r 161 -u 192.168.1.1
-l "fpipeでリスニングするポート"
-s "対象へ送信する際の送信元ポート"
-r "対象ホストへのポート番号"
-u : UDPモードでの動作
fpipeを起動すると、下記の様に指定したポートでリスニング状態となります。
下記の例では、"ポート161宛てのUDPパケットの送信元ポートを53に変更して、192.168.1.1へ送信する"という意味です。
まずは、送信元ポートを変更していない状態でSNMPリクエストがファイアウォールを通過できない事を確認します。

次に、送信元ポート番号をfpipeで変更させてファイアウォールバイパスが可能なことを確認します。
Host nameにループバックアドレスを指定し、Startを選択します。

すると、fpipeがパケットを受け、送信元ポートを53へ変更し指定したホスト192.168.1.1へ送信します。
ファイアウォールバイパスが成功し、対象ホスト(192.168.1.1)からMIB情報を取得することができました。

使用するクライアント側のアプリケーションによっては、送信元ポート番号の指定が出来ないので、
Fpipeというツールを使用し、送信元ポートを指定します。
※Fpipeはサーバとして動作します。
Fpipeサーバ宛のパケットは、送信元ポートが指定のポート番号へ変更され、対象サーバへ送信されます。
FPipeはFoundstoneよりダウンロードします。
Free Tools & Resources > Fpipe > Download this Tool Now
<http://www.foundstone.com/us/index.asp>
fpipeのオプションは下記の通りです。
fpipe -l 161 -s 53 -r 161 -u 192.168.1.1
-l "fpipeでリスニングするポート"
-s "対象へ送信する際の送信元ポート"
-r "対象ホストへのポート番号"
-u : UDPモードでの動作
fpipeを起動すると、下記の様に指定したポートでリスニング状態となります。
下記の例では、"ポート161宛てのUDPパケットの送信元ポートを53に変更して、192.168.1.1へ送信する"という意味です。
C:\fpipe2_1>fpipe -l 161 -s 53 -r 161 -u 192.168.1.1
FPipe v2.1 - TCP/UDP port redirector.
Copyright 2000 (c) by Foundstone, Inc.
http://www.foundstone.com
FPipe v2.1 - TCP/UDP port redirector.
Copyright 2000 (c) by Foundstone, Inc.
http://www.foundstone.com
まずは、送信元ポートを変更していない状態でSNMPリクエストがファイアウォールを通過できない事を確認します。

次に、送信元ポート番号をfpipeで変更させてファイアウォールバイパスが可能なことを確認します。
Host nameにループバックアドレスを指定し、Startを選択します。

C:\fpipe2_1>fpipe -l 161 -s 53 -r 161 -u -v 192.168.1.1
FPipe v2.1 - TCP/UDP port redirector.
Copyright 2000 (c) by Foundstone, Inc.
http://www.foundstone.com
Listening for UDP data on 0.0.0.0 port 161
161 bytes received from inbound UDP connection
Setting last UDP source address to 127.0.0.1 port 1062
308 bytes received from outbound UDP connection
FPipe v2.1 - TCP/UDP port redirector.
Copyright 2000 (c) by Foundstone, Inc.
http://www.foundstone.com
Listening for UDP data on 0.0.0.0 port 161
161 bytes received from inbound UDP connection
Setting last UDP source address to 127.0.0.1 port 1062
308 bytes received from outbound UDP connection
すると、fpipeがパケットを受け、送信元ポートを53へ変更し指定したホスト192.168.1.1へ送信します。
ファイアウォールバイパスが成功し、対象ホスト(192.168.1.1)からMIB情報を取得することができました。



