LoginSignup
9
10

More than 1 year has passed since last update.

OpenVAS 等からのポートスキャン攻撃をひとまず拒否する方法 (Apache & nginx)

Last updated at Posted at 2017-03-08

最近、管理しているサイトに、ポートスキャンをしてくるユーザーが多くなってきました。

自分で意図した脆弱性スキャンをしているのなら良いのですが、関係のない人がスキャン攻撃をしてきます。サーバーの負荷を増大させ、迷惑極まりない。

なので、普段は OpenVAS などのOSSツールは、アクセス拒否をするように設定してみました。

(ちなみに、OpenVAS のソフト自体には罪はないですよ。使っている人が悪いです。)

お断り: 実は。Nessus や Nikto のユーザーエージェントは知らないので、どなたか知っている人、間違っていたらご指摘&編集リクエスト願います。また、このユーザーエージェント良いよという方、編集リクエストをお願いします!

Apache の .htaccess 設定例

.htaccess
# AccessControl UserAgent
SetEnvIfNoCase User-Agent "OpenVAS" ua_key=on
SetEnvIfNoCase User-Agent "Nessus" ua_key=on
SetEnvIfNoCase User-Agent "Nikto" ua_key=on

order allow,deny
allow from all
deny from env=ua_key
deny from 127.0.0.1 #おまけで IP アドレスブロックしたい場合

.htaccess は設置したらすぐに有効になるので、これでOK。

nginx のnginx.conf 設定例

nginx.conf
server {
    server_name www.example.com;
    
    #......
    # いろいろな設定は省略
    #......
    
    set $deny_f 0;
    if ( $http_user_agent ~* 'OpenVAS' ){
        set $deny_f 1;
    }
    if ( $http_user_agent ~* 'Nessus' ){
        set $deny_f 1;
    }
    if ( $http_user_agent ~* 'Nikto' ){
        set $deny_f 1;
    }
    # おまけで IP アドレスを拒否したい場合
    if ( $remote_addr = '127.0.0.1'  ){
        set $deny_f 1;
    }
    if ( $deny_f = 1) {
        return 403;
    }
}

※複数のドメインなどを管理している場合、別の conf ファイル(例: /etc/nginx/conf/deny_spambot.conf)として保存してinclude /etc/nginx/conf/deny_spambot.conf;で指定してやると良いかもです。

nginx の場合はサーバーの再起動が必要です。
設定のチェックを行って、再起動しましょう。

sudo nginx -t

以下のどれかで再起動

sudo nginx -s reload
sudo systemctl restart nginx
sudo service ngins restart

参考記事
https://macareux.co.jp/blog/apachenginx
http://server-setting.info/centos/apache-nginx-5-setting-deny403.html

アプリ「POSTMAN」を使って動作テスト

きちんと、アクセス拒否できるか、確認するのも必須。
下記のアプリはおすすめです。

POSTMAN
https://www.getpostman.com/

手順

  • 方式を GET にしてパラメーターをいれる
  • Headers タブをクリック
    • User-Agent を選択し Mozilla/5.0 [en] (X11, U; OpenVAS 9.0.0) を入力
  • "Send"ボタンを押して、Body の HTML の結果が 403 になっているか確認

以上

9
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
10