仮想化・ホストサーバー

不正利用 VPS の特定と停止:KVM・Proxmox ホストノードでの外向き攻撃・スパム・ポートスキャン対策

6 ステップ 10 分で読めます 60 回閲覧 0
目次

ホストノードでは、1 人の顧客の VPS が事業全体を危険にさらすことがあります。インターネットをスキャンしたり、スパムを送信したり、DDoS 攻撃に加担したりする VPS は abuse 報告(不正利用の苦情)を招き、IP が Spamhaus などのブラックリストに登録され、IP ブロック全体がフィルタリングされる事態にもつながります。この記事では、KVM ホスト(Proxmox VE または任意の Linux ブリッジ構成)で原因の VPS をすばやく特定し、不正利用の種類を見分け、他の顧客に影響を与えずに止め、よくあるケースを未然に防ぐ方法を解説します。

迅速に対処しつつ、証拠は必ず残してください。VPS を停止する前に、コマンドの出力(トラフィックカウンター、tcpdump のサンプル、接続一覧)を保存します。abuse 報告への回答、顧客への説明、そして必要に応じて利用規約に基づく利用停止の根拠として必要になります。

よくある兆候

  • プロバイダーやブラックリスト運営者から、自社の IP を名指しした abuse 報告が届く。
  • ホストの送信トラフィックや毎秒パケット数が通常より大幅に多く、特に小さなパケットが大量に出ている。
  • ホストの conntrack テーブルが埋まる、または CPU を多く使っている VPS がないのにホストが遅くなる。
  • 自社の IP からのメールが拒否される、または IP が RBL に登録されている(IP ブラックリストの確認を参照)。

ステップ1:トラフィックを送信している VPS を特定

KVM の VPS には、それぞれホスト上に専用の tap インターフェースがあります(Proxmox VE では、VM 101 なら tap101i0)。tap インターフェースのカウンターはホスト側から見た値なので、rx が VPS から送信された量、tx が VPS が受信した量になります。

# Packets and bytes each VPS sent in the last 10 seconds (rx on the tap = outbound from the VPS)
for t in /sys/class/net/tap*; do n=$(basename $t); echo "$n $(cat $t/statistics/rx_packets) $(cat $t/statistics/rx_bytes)"; done > /tmp/a
sleep 10
for t in /sys/class/net/tap*; do n=$(basename $t); echo "$n $(cat $t/statistics/rx_packets) $(cat $t/statistics/rx_bytes)"; done > /tmp/b
join /tmp/a /tmp/b | awk '{printf "%-12s %8d pps %8.1f Mbps\n", $1, ($4-$2)/10, ($5-$3)*8/10/1000000}' | sort -k2 -nr | head

# Live view of who talks to whom on the bridge
iftop -i vmbr0 -nNP

Mbps はそれほど高くないのに毎秒数万パケットを送信している VPS は、たいていフラッド攻撃かスキャンを行っています。ポート 25 への接続が絶え間なく続いている場合は、たいていスパムです。

ステップ2:不正利用の種類を特定

# Sample the traffic of one VPS (replace tap101i0)
tcpdump -ni tap101i0 -c 300 -w /root/evidence-vps101-$(date +%F-%H%M).pcap
tcpdump -nr /root/evidence-vps101-*.pcap | head -50

# Outgoing SMTP connections (spam)
tcpdump -ni tap101i0 'tcp dst port 25 and tcp[tcpflags] & tcp-syn != 0' -c 50

# Connections tracked for the VPS's IP (apt install conntrack)
conntrack -L -s 203.0.113.11 2>/dev/null | wc -l
conntrack -L -s 203.0.113.11 2>/dev/null | awk '{print $5}' | sort | uniq -c | sort -nr | head
観察される状況考えられる原因
多数の異なる IP の同じポート(22、23、3389、80)への SYN パケットポートスキャンまたはブルートフォース(多くは侵害された VPS から)
さまざまなメールサーバーのポート 25 への多数の接続スパム、またはハッキングされたメール送信スクリプト
1 つまたは少数の宛先への非常に高い UDP・SYN パケットレートDDoS への加担
3333 や 4444 などのポートへの継続的な接続暗号資産のマイニング(通信量としては通常問題ないが、利用規約に違反する場合がある)

ステップ3:不正利用を止める

問題を止められる最も穏やかな措置を選び、続くようであれば段階的に強化します。

# Throttle the VPS immediately to about 8 Mbps (rate is in MB/s; keep the NIC's MAC from "qm config")
qm set 101 --net0 virtio=BC:24:11:AA:BB:CC,bridge=vmbr0,firewall=1,rate=1

# Block outbound SMTP for this VPS with the Proxmox firewall
cat >> /etc/pve/firewall/101.fw <<'EOF2'

[RULES]
OUT DROP -p tcp -dport 25 -log nolog
EOF2

# Pause the VPS (keeps memory state for investigation) or shut it down
qm suspend 101
qm shutdown 101

ファイルに [RULES] セクションがすでにある場合は、2 つ目のセクションを追記せず、既存のセクションにルールを追加してください。その後、確認した内容を証拠とともに顧客に伝え、何を修正すべきかを説明します。侵害された VPS は、通常 OS の再インストールとパスワードの変更が必要です(Linux でのマルウェアの発見と駆除を参照)。

ステップ4:abuse 報告に回答

報告には速やかに返信し、対象の IP、送信元を特定した時刻、実施した措置(帯域制限、ポート 25 のブロック、VPS の停止)、顧客に連絡済みであることを伝えます。迅速で明確な回答こそが、上流ネットワークやブラックリスト運営者に対して IP ブロックの信頼を保つ鍵です。

ステップ5:よくあるケースを未然に防ぐ

  • 送信ポート 25 を既定でブロックする:新規 VPS には Proxmox のセキュリティグループを適用し、申請があってメール環境を信頼できる顧客に対してのみ開放します。
  • IP フィルタリングを有効にする:VPS が自分のアドレスしか使えないようにします(Proxmox ホストノードでの VPS 販売を参照)。
  • 適切な帯域・パケット制限を設定する:プランごとに制限を設け、1 台の VPS がアップリンクを使い切れないようにします。
  • 継続的に監視する:tap インターフェースで vnStat を使うか、Netdata などのツールで VPS ごとのトラフィックを収集し、異常なパケットレートでアラートを出します。
  • 顧客を把握する:新規登録を確認し、リスクの高い注文に注意します。不正利用の大半はごく一部のアカウントによるものです。
# Datacenter-wide security group in /etc/pve/firewall/cluster.fw
[group no-smtp]
OUT DROP -p tcp -dport 25 -log nolog

# Use it in each VPS file, e.g. /etc/pve/firewall/101.fw
[RULES]
GROUP no-smtp

よくある質問

VPS の帯域使用量は多くないのに報告が届いた

スキャンやブルートフォースは、ごくわずかな帯域しか使いません。Mbps だけでなく、パケットレートと接続数(ステップ1とステップ2)を確認してください。

報告に IP しか書かれていない場合、どうやって VPS を特定しますか?

パネルまたは VM の設定を検索します。grep -r 203.0.113.11 /etc/pve/qemu-server/ /etc/pve/firewall/ を実行すると、その IP を使用している VM がわかります。

不正利用に対処しないとどうなりますか?

不正利用が繰り返されたり報告に回答しなかったりすると、IP がブラックリストに登録され、上流プロバイダーが自社ネットワークを守るために該当アドレスをフィルタリングせざるを得なくなることがあります。上記の手順で迅速に対処し、実施した内容を添えて報告に回答すれば、影響を該当の VPS だけにとどめられます。

上記の手順で解決しない場合は、サポートチケットを送信して IMIDC の 24 時間 365 日対応テクニカルサポートへご連絡ください。ホストサーバーの IP、影響を受けた IP アドレス、abuse 報告の参照番号、上記コマンドの出力を添えていただくと、より迅速に調査できます。

この回答はお役に立ちましたか?

関連チュートリアル