ドメインのキーワードを拾って、UFWで拒否する方法

2023/02/15に公開

ubuntu起動時ほか、netstatなどで、ドメインだけが表示されてIPが追えない場合、ドメイン名(bom0xsxx-in-fxx.x:httpsなど)のbomというワードだけを拾って、ufwのdeny(拒否)にブチ込むスクリプト⬇

#!/bin/bash

# ドメインに含まれる文字列のリスト
domains=("nrt" "bom")

# ufwの設定ファイルへのパス
ufw_config="/etc/ufw/user.rules"

# ドメインの文字列が含まれる場合、ufwにdenyルールを追加する
for domain in "${domains[@]}"; do
    # WHOIS情報からドメインに関する情報を取得
    whois_output=$(whois -h whois.internic.net "$domain")

    # ドメインが存在する場合、ufwにdenyルールを追加
    if [ $? -eq 0 ]; then
        echo "Adding deny rule for domain $domain"
        echo "-A ufw-user-input -p tcp -m tcp -d $domain -j DROP" >> "$ufw_config"
    else
        echo "Domain $domain not found"
    fi
done

# ufwの設定を再読み込み
ufw reload

ファイル名は、適当にbot.shとかでもつけて、頻度の高いドメインは、domains=("hogehoge")に追加で、ドメインごとアクセス防げる...はず。

糖質気味にbotを気にしだしたら、キリがないけど、足がつきにくいIPでアクセスしてくるbot等々はdomainnameからでもブロックできるというコード。

Discussion