綾小路龍之介の素人思考

[iptables] ログからIPアドレスとMACアドレスに基づくdrop

ssh攻撃があったので、iptablesを使ってフィルタリング。

例えば、以下のようにiptablesを使ってSSH攻撃と思われるアクセスのログをとっているとする。

$IPTABLES -A INPUT -p tcp --syn --dport 22 -m recent --name sshattack --rcheck --seconds 600 --hitcount 5 -j LOG --log-prefix 'SSH attack: '

/var/log/messageには以下のようなログが現れる。ログの中に現れるMACは最初の12桁があて先MACアドレス、続く12桁がソースMACアドレス、続く4桁がIPデータグラム。ただしソースMACアドレスは攻撃元(SRC=**.***.**.***)のMACアドレスではなく、同じネットワークにいるどの機器からIPパケットが送られてきたかを示す。

Feb 20 06:47:03 ********* kernel: [**************] SSH attack: IN=eth0 OUT= MAC=DD:DD:DD:DD:DD:DD:SS:SS:SS:SS:SS:SS:08:00 SRC=**.***.**.*** DST=**.***.**.*** LEN=60 TOS=0x00 PREC=0x00 TTL=49 ID=15275 DF PROTO=TCP SPT=50724 DPT=22 WINDOW=5840 RES=0x00 SYN URGP=0

ログの中からMACアドレスとソースIPアドレスだけを抜き出して、統計を取ると以下のようになる。同じmacアドレスで複数のIPアドレスから、同じIPアドレスで複数のmacアドレスから攻撃されていることがわかる。

# zgrep " SSH attack: " /var/log/messages* | cut -d " " -f 11-12 | sort | uniq -c | sort -k1,1n | tail -n 30
      9 MAC=DD:DD:DD:DD:DD:DD:S1:S1:S1:S1:S1:S1:08:00 SRC=212.87.227.15
      9 MAC=DD:DD:DD:DD:DD:DD:S0:S0:S0:S0:S0:S0:08:00 SRC=93.122.146.211
     12 MAC=DD:DD:DD:DD:DD:DD:S1:S1:S1:S1:S1:S1:08:00 SRC=59.106.178.248
     12 MAC=DD:DD:DD:DD:DD:DD:S0:S0:S0:S0:S0:S0:08:00 SRC=59.106.178.248
     15 MAC=DD:DD:DD:DD:DD:DD:S1:S1:S1:S1:S1:S1:08:00 SRC=222.124.173.245
     26 MAC=DD:DD:DD:DD:DD:DD:S0:S0:S0:S0:S0:S0:08:00 SRC=184.106.178.12
     36 MAC=DD:DD:DD:DD:DD:DD:S1:S1:S1:S1:S1:S1:08:00 SRC=184.106.178.12
     47 MAC=DD:DD:DD:DD:DD:DD:S0:S0:S0:S0:S0:S0:08:00 SRC=190.54.23.158
     52 IN=eth0 OUT=
     56 MAC=DD:DD:DD:DD:DD:DD:S1:S1:S1:S1:S1:S1:08:00 SRC=190.54.23.158
     61 MAC=DD:DD:DD:DD:DD:DD:S1:S1:S1:S1:S1:S1:08:00 SRC=190.223.250.168
     61 MAC=DD:DD:DD:DD:DD:DD:S0:S0:S0:S0:S0:S0:08:00 SRC=190.223.250.168
     66 MAC=DD:DD:DD:DD:DD:DD:S1:S1:S1:S1:S1:S1:08:00 SRC=203.172.129.147
     80 MAC=DD:DD:DD:DD:DD:DD:S0:S0:S0:S0:S0:S0:08:00 SRC=203.172.129.147
     90 MAC=DD:DD:DD:DD:DD:DD:S1:S1:S1:S1:S1:S1:08:00 SRC=116.213.93.37
    114 MAC=DD:DD:DD:DD:DD:DD:S0:S0:S0:S0:S0:S0:08:00 SRC=116.213.93.37
    126 MAC=DD:DD:DD:DD:DD:DD:S0:S0:S0:S0:S0:S0:08:00 SRC=84.52.98.201
    128 MAC=DD:DD:DD:DD:DD:DD:S1:S1:S1:S1:S1:S1:08:00 SRC=84.52.98.201
    690 MAC=DD:DD:DD:DD:DD:DD:S1:S1:S1:S1:S1:S1:08:00 SRC=66.135.63.194
    834 MAC=DD:DD:DD:DD:DD:DD:S0:S0:S0:S0:S0:S0:08:00 SRC=66.135.63.194
    886 MAC=DD:DD:DD:DD:DD:DD:S1:S1:S1:S1:S1:S1:08:00 SRC=49.212.122.215
    922 MAC=DD:DD:DD:DD:DD:DD:S0:S0:S0:S0:S0:S0:08:00 SRC=49.212.122.215
   2417 MAC=DD:DD:DD:DD:DD:DD:S1:S1:S1:S1:S1:S1:08:00 SRC=201.83.222.127
   2566 MAC=DD:DD:DD:DD:DD:DD:S0:S0:S0:S0:S0:S0:08:00 SRC=201.83.222.127
   2640 MAC=DD:DD:DD:DD:DD:DD:S0:S0:S0:S0:S0:S0:08:00 SRC=89.140.99.27
   2811 MAC=DD:DD:DD:DD:DD:DD:S1:S1:S1:S1:S1:S1:08:00 SRC=89.140.99.27
   4915 OUT= MAC=DD:DD:DD:DD:DD:DD:S0:S0:S0:S0:S0:S0:08:00
   5058 OUT= MAC=DD:DD:DD:DD:DD:DD:S1:S1:S1:S1:S1:S1:08:00
   8435 MAC=DD:DD:DD:DD:DD:DD:S1:S1:S1:S1:S1:S1:08:00 SRC=49.212.91.160
   8545 MAC=DD:DD:DD:DD:DD:DD:S0:S0:S0:S0:S0:S0:08:00 SRC=49.212.91.160

上の結果から攻撃元と思われるIPアドレスを手作業で追加。

# IP address based block
$IPTABLES -A INPUT -s 49.212.91.160 -j DROP
$IPTABLES -A INPUT -s 89.140.99.27 -j DROP
$IPTABLES -A INPUT -s 201.83.222.127 -j DROP

例えば以下のようにしてMACアドレスベースのルールを追加できる。今回はMACアドレスを追加しない。MACアドレスを追加する場合は注意。外のネットワークからのパケットがこのMACアドレスを持つ機器を通じてサーバに到着する場合、外からのアクセスを全て遮断することになる。

# MAC address based block
#$IPTABLES -A INPUT -m mac --mac-source S1:S1:S1:S1:S1:S1 -j DROP
#$IPTABLES -A INPUT -m mac --mac-source S0:S0:S0:S0:S0:S0 -j DROP

リファレンス

  1. iptables log mac src - Google 検索
  2. Logging with iptables and syslogd « xorl %eax, %eax
  3. MAC Destination and Source MAC addresses iptables log - Google 検索
  4. How would i log the source MAC address w/ iptables?
  5. IP dgram over ethernet "80:00" - Google 検索
  6. VPN: PPP Tunneled Over SSH Overhead Discussion
  7. 困った時に!:MACアドレスからベンダー名が分かるサイト : ライフハッカー[日本版]

ソーシャルブックマーク

  1. はてなブックマーク
  2. Google Bookmarks
  3. del.icio.us

ChangeLog

  1. Posted: 2010-04-21T08:10:12+09:00
  2. Modified: 2010-04-21T08:10:12+09:00
  3. Generated: 2017-06-18T23:09:19+09:00