「悪意のあるURL」データベースからIPアドレスリストとホスト名を抽出
URLhausが提供する「悪意のあるURL」データベースではマルウエアのあるページ(等)の迷惑ウェブページのURLを提供している。
PhishTankが提供するデータベースではフィッシングサイト(等)の迷惑ウェブページのURLを提供している。
おそらく提供されているデータ・ファイルをSnort/SuricataなどのIDSやSquidのようなプロクシサーバで利用すれば家庭や職場のLAN内のユーザーを悪意のあるページから守ることができるのだろうが、IDSやProxyは使いたくないという場合もあるかと思われる。ファイルは毎日1:30頃と13:30頃に更新されます。
提供するIPアドレスは1行に1アドレスが書かれただけのシンプルなリスト。OpenBSDやFreeBSDのファイアウォールpfではこのファイルをテーブルとして読み込んでBanの対象としてそのテーブル名を指定するだけで簡単に利用できる。他のファイアウォールではリストをコマンドに埋め込むなど編集して使用する。その他のファイアウォールではリストを加工して使用する必要があるでしょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | ext_if = "fxp0"
table <malware> persist file "/etc/warui_malware_ipv4.txt"
table <phishing> persist file "/etc/warui_phish_hosts.txt"
priv_nets = "{ 127.0.0.0/8, 192.168.0.0/16, 172.16.0.0/12, 10.0.0.0/8 }"
Icmp_types = "icmp-type { echoreq, unreach }"
TcpState ="flags S/SA keep state"
UdpState ="keep state"
set block-policy drop
set loginterface $ext_if
set skip on lo0
scrub in all
#pfでNATをやるならなら以下1行 (その場合は事前にint_net = "{ 192.168.0.0/24 }"のように指定)
nat on $ext_if from $int_net to any -> ($ext_if)
block all
block in quick on $ext_if from $priv_nets to any
block out quick on $ext_if from any to $priv_nets
#warui,hogeテーブルをIn/Out共にブロック
block in quick on $ext_if from { <malware>, <phishing> } to ($ext_if)
block out quick on $ext_if from ($ext_if) to { <malware>, <phishing> }
#Inbound TCP/UDP
pass in on $ext_if inet proto tcp from any to ($ext_if) port $tcp_services $TcpState
pass in on $ext_if inet proto udp from any to ($ext_if) port $udp_services $UdpState
#Outbound TCP/UDP
pass out on $ext_if inet proto tcp $TcpState
pass out on $ext_if inet proto udp $UdpState
#ICMP
pass on $ext_if inet proto icmp all $icmp_types keep state
|
# service pf reload #設定再読み込み
使い方についてはがとらぼの記事をご参照下さい。
提供するホストファイルはUnboundでインクルードすることでそのまま利用可能。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | server:
verbosity: 0
interface: ::1 #IPv6
interface: ::0 #IPv6
interface: 127.0.0.1 #IPv4
interface: 0.0.0.0 #IPv4
#アクセスコントロール
access-control: 0.0.0.0/0 refuse #IPv4全拒否
access-control: ::0/0 refuse #IPv6全拒否
access-control: 127.0.0.0/8 allow #許可(以下4行)
access-control: ::1 allow
access-control: 192.168.0.0/24 allow #LAN (自分のLANアドレスに書き換え)
access-control: 2001:xxxx:xxxx:xxxx/64 allow # IPv6 LAN (自分のLANアドレスに書き換え)
#インクルードするファイル指定 (server:の中でインクルードする場合)
include: /usr/local/etc/unbound/warui_malware_hosts_unbound.txt
include: /usr/local/etc/unbound/warui_phish_hosts_unbound.txt
forward-zone:
name: "."
forward-addr: 2001:4860:4860::8888 #or ISPのDNSサーバなど(IPv6)
forward-addr: 2001:4860:4860::8844 #or ISPのDNSサーバなど(IPv6)
forward-addr: 8.8.8.8 #or ISPのDNSサーバなど(IPv4)
forward-addr: 8.8.4.4 #or ISPのDNSサーバなど(IPv4)
|
# service unbound reload #設定再読み込み
使い方についてはがとらぼの記事をご参照下さい。
WindowsでUnboundを利用する場合はWindowsでUnboundの記事をご参照下さい。
2019年2月7日 (公開)
URLhausとPhishTankのIPアドレスとホスト名を抽出してpfとUnbound用の2種類を提供開始。