映画『マトリクス』のクラッキング(ハッキング)にも使われたNmap
Nmapってなんだろう?
サーバーのポートがどうなっているかを探索するポートスキャンツールです。
本来は自身のサーバのポート状況を知るためのセキュリティツールですが
どこから侵入しようか考える為の経路の下見として
クラッカーの攻撃の初手に悪用されています。
有名な映画『マトリクス』でトリニティがNmapを使ったシーン。
タイトルのPortsentryってなんなのか
今回ご紹介するPortsentryは
Nmapでクラッキングの下見に来た無礼な輩を遮断するツールです。
一般の人は他の人のサーバーに対してnmapなんてしないし
ポートスキャンが攻撃と見られてもしようがない事は暗黙の了解なので
気にすることはありません。
心のままにBAN(アクセス禁止)してしまいましょう。
もしトリニティがクラッキングしようしたサーバーにPortsentryが入っていたら・・・
クラッキング出来ずネオは死に物語も大きく変わっていたのかもしれません。
※また、トリニティが使ったsshnukeは架空のクラッキングツールです。
ですが実在するSSHの脆弱性を突きrootパスワードを書き換えて、それを利用してログインしています。
portsentryインストールします
[bash] # yum -y install rpm-build[/bash]
ダウンロードする時のお約束の場所に移動します。
[bash] # cd /usr/local/src/[/bash]
ダウンロードします。
[bash] # wget http://ftp.riken.go.jp/Linux/freshrpms/redhat/9/portsentry/portsentry-1.1-fr8.src.rpm`portsentry-1.1-fr8.src.rpm’ へ保存完了
[/bash]
[bash] # rpmbuild –rebuild portsentry-1.1-fr8.src.rpm
[/bash] [bash] rm -f portsentry-1.1-fr8.src.rpm
[/bash] [bash] # rpm -ivh /root/rpmbuild/RPMS/*/portsentry*.rpm
準備中… ########################################### [100%] 1:portsentry-debuginfo ########################################### [ 50%] 2:portsentry ########################################### [100%] [/bash]
[bash] # vi /etc/portsentry/portsentry.conf
#KILL_HOSTS_DENY=”ALL: $TARGET$”
↓変更して有効化させます。
KILL_HOSTS_DENY=”ALL: $TARGET$”
[/bash]
[bash]
# service portsentry restart
Stopping portsentry: [失敗]
Starting portsentry -atcp: [ OK ]
Starting portsentry -audp: [ OK ]
[/bash]
[bash] # chkconfig portsentry on
# chkconfig portsentry –list
portsentry 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[/bash]
ホワイトリスト設定
ホワイトリスト設定を行います。
このIPならnmapをうってきてもBANしませんという設定です。
# If you don’t supply a netmask it is assumed to be 32 bits.
#
#
127.0.0.1/32
0.0.0.0
122.xxx.yyy.zzz←除外されるIPを追加します。(会社のIPを追加しました。)
122.aaa.bbb.179←某群馬支社のIPを追加しました。
#########################################
# Do NOT edit below this line, if you #
[/bash]
[bash] # service portsentry restart
Stopping portsentry: [ OK ] Starting portsentry -atcp: [ OK ] Starting portsentry -audp: [ OK ] [/bash]
起動してるか確認します。
# ps ax | grep port
16092 ? Ss 0:00 /usr/sbin/portsentry -atcp
16094 ? Ss 0:00 /usr/sbin/portsentry -audp
16113 pts/0 S+ 0:00 grep port
元気に動いていますね。
NmapでさくらVPSにポートスキャンを行いBANされてみます
いくつかログイン出来るようにホワイトリスト(命綱)を設定しておこう。
もし命綱なしでログインが出来なくなったらネットカフェにでも駆け込みましょう。
○ホワイトリストの解除を行います。
# vi /etc/portsentry/portsentry.ignore
# If you don’t supply a netmask it is assumed to be 32 bits.
#
#
127.0.0.1/32
0.0.0.0
#122.xxx.yyy.zzz←会社のIPをホワイトリスト無効にしました。
122.aaa.bbb.179
#########################################
# Do NOT edit below this line, if you #
[/bash]
再起動で読み込ませます。
[bash] # service portsentry restartStopping portsentry: [ OK ] Starting portsentry -atcp: [ OK ] Starting portsentry -audp: [ OK ] [/bash]
Kali Linuxを使ってNmapポートスキャンを行います。
■ 結果
portsentryを入れたサーバにはポートスキャンできません
SSHの接続も断絶されました。
復旧方法
今回はさくらVPSのコンソールからログインして
Tcp Wrapperを編集します。
[bash] # vi /etc/hosts.deny[/bash]
BANリストに会社のグローバルIPが追加されてしまっているので消します。
これで再起動を行うと解除されます。
[bash] # reboot now[/bash]