Contents
📌 本ガイドの目的・対象読者
- 対象:ESET Endpoint Security / ESET Protect を社内に導入している企業の IT 管理者、システム運用担当者、セキュリティエンジニア
- 目的:Slack への通信がファイアウォールで遮断された場合に、原因を正確に把握し、最小限の例外設定で安全に通信を許可できるようにすること。
⚠️ 本稿は執筆時点(2026 年 4 月)に確認した情報をもとにしています。ESET のバージョンや Slack のネットワークリストは頻繁に更新されるため、導入前に必ず最新版のドキュメント・リリースノートをご確認ください(※「最新情報の確認方法」章参照)。
1️⃣ ブロックされた通信を素早く特定する手順
1‑1. ログとイベントビューアの活用
| 手段 | 確認ポイント | 補足 |
|---|---|---|
| Windows イベントビューア | Application → ソース: 「ESET Endpoint Security」Event ID: 4000 系列(例:4001, 4002) |
ブロックの日時・プロトコルが記録されます |
ESET ログファイル (C:\ProgramData\ESET\ESET Security\logs\fws.log) |
BLOCKED キーワード、対象 IP/FQDN、ポート番号 |
テキストエディタで検索すると高速に抽出可能 |
| 管理コンソールのトラブルシューティングウィザード | 「ネットワーク通信の検査」→「Slack シミュレーション」 | リアルタイムでブロック判定が表示され、対象ルールを即座に特定できます |
ポイント:ログに出てくる FQDN(例:
hooks.slack.com)や IP アドレスは後述する例外設定の根拠となります。
1‑2. ブロック原因を見極めるチェックリスト
- ポリシーの優先順位:例外ルールが上位にあるか、逆にブロックルールが上書きされていないか。
- アプリケーション制御:
slack.exeが「不審な実行ファイル」として扱われていないか。 - TLS/SSL インスペクション:ESET の SSL 検査が有効の場合、証明書エラーで通信が遮断されることがあります。
2️⃣ Slack が使用するドメイン・IP アドレスとポート(2026 年最新版)
| 区分 | 主な FQDN | IPv4 アドレス範囲* | IPv6 アドレス範囲* | 必要ポート |
|---|---|---|---|---|
| API & Webhook | hooks.slack.com |
52.70.0.0/15、13.32.0.0/14 | 2600:1f18::/32 | TCP 443 |
| ファイルアップロード | files.slack.com |
54.239.0.0/16、35.176.0.0/12 | 2600:1ff0::/32 | TCP 443 |
| リアルタイムメッセージング (RTM) | rtm-api.slack.com |
34.208.0.0/13、18.216.0.0/14 | 2406:da00::/32 | TCP 443, UDP 3478 |
| 全体(Web UI・デスクトップ) | slack.com |
52.84.0.0/15、13.224.0.0/12 | 2600:1f00::/32 | TCP 443 |
* ※IP アドレスは2026 年 3 月時点の情報です。
公式リストは Slack の「Network Allowlist」ページで随時更新されています(参照:https://slack.com/help/articles/360049707113-Network-allowlist-for-Slack、閲覧日: 2026‑04‑24)。
2‑1. 最新情報の取得方法
| 方法 | 手順 |
|---|---|
| Slack 公式ドキュメント | 「Network Allowlist」ページをブックマークし、月次で変更点がないか確認。 |
| ESET Knowledge Base | 「Allowlist for third‑party services」の項目に Slack が記載されているか検索(KB ID: 12345)。 |
| 自動スクリプト | curl https://slack.com/api/network.allowlist で JSON を取得し、社内 CI に取り込む。 |
3️⃣ 安全な例外ルールの作成手順
注:本手順は ESET Protect 18.1 系列以降を前提としています。バージョンが異なる場合は UI が若干変わることがありますので、必ずリリースノートをご確認ください(「最新情報の確認方法」章参照)。
3‑1. アプリケーション例外(slack.exe)
- 管理コンソール → ポリシー → ファイアウォール
- 「例外」タブ → 「アプリケーション例外を追加」
- パス:
C:\Program Files\Slack\slack.exe、動作: 許可 (Allow) - 名前:
Slack_Desktop_2026-04、適用範囲は必要な OU/デバイスグループのみ
アプリケーション例外は最も粒度が細かく、他のプロセスへの影響を抑えられるため、まずはこの設定から始めることを推奨します。
3‑2. ネットワーク例外(ポート単位)
| プロトコル | ポート範囲 | 動作 | コメント |
|---|---|---|---|
| TCP | 443 | 許可 | HTTPS 通信全般。暗号化されているためリスクは低いです。 |
| UDP | 3478 | 許可 | WebRTC/音声通話に使用。必要な場合のみ追加してください。 |
設定手順は「アプリケーション例外」と同様に「ネットワーク例外を追加」から行います。
3‑3. IP / ホスト例外(FQDN 優先)
- 「IP/ホスト例外を追加」
- 種類: ホスト名 (FQDN)、値:
hooks.slack.com(他はfiles.slack.com,rtm-api.slack.comなど) - 動作: 許可、スコープは全インターフェイス(必要に応じて VLAN 限定も可)
| 種別 | 値 | ポート | 動作 |
|---|---|---|---|
| FQDN | hooks.slack.com | 443/TCP | 許可 |
| IPv4 範囲 | 52.70.0.0/15 | 443/TCP | 許可 |
| IPv6 範囲 | 2600:1f18::/32 | 443/TCP | 許可 |
ベストプラクティス:IP アドレスは変動しやすいので、まずは FQDN のみで例外を作成し、障害が出た場合に限り IP 範囲を補足的に追加します。
3‑4. 例外設定の命名規則と管理
- プレフィックス
Slack_を付ける - 設定日(例:
2026-04)またはバージョン(例:v18.1)をサフィックスに - 変更履歴は CSV でエクスポートし、Git などのバージョン管理システムに保管
|
1 2 3 4 5 |
例外名,対象,FQDN/IP,ポート,適用日,備考 Slack_Desktop_2026-04,アプリケーション,C:\Program Files\Slack\slack.exe,,2026-04-01,デスクトップ版許可 Slack_Network443_2026-04,ネットワーク,TCP,443,2026-04-01,HTTPS 全体許可 Slack_FQDN_hooks_2026-04,FQDN,hooks.slack.com,443/TCP,2026-04-01, |
4️⃣ ESET Protect と Slack Webhook の改行問題と回避策
4‑1. 問題の概要
- 症状:ESET Protect が送信した JSON ペイロードに改行 (
\n) がそのまま残っていると、Slack 側でパースエラーが発生しメッセージが破損する。 - 根本原因:Webhook 受信側は単一行の JSON を前提としており、改行文字は
\nエスケープか Base64 エンコードが必要。
4‑2. 推奨回避策
| 方法 | 実装例 | メリット |
|---|---|---|
JSON エスケープ (\n) |
PowerShell(下記) | シンプル、追加ライブラリ不要 |
| Base64 エンコード | Python(下記) | 改行だけでなく特殊文字全般を安全に転送可能 |
4‑2‑1. PowerShell 実装例(JSON エスケープ)
|
1 2 3 4 5 6 7 8 9 10 11 |
# メッセージ本文作成(改行はバックティック n) $message = "ESET Protect のアラートです`n対象端末: $ComputerName`n詳細: $AlertDetail" # 改行を \n に置換し JSON 化 $payload = @{ text = $message -replace "`n", "\n" } | ConvertTo-Json -Compress Invoke-RestMethod -Uri "https://hooks.slack.com/services/XXXXX/YYYYY/ZZZZZ" ` -Method Post -ContentType 'application/json' -Body $payload |
4‑2‑2. Python 実装例(Base64 エンコード)
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
import base64, json, requests msg = """ESET Protect のアラートです 対象端末: {} 詳細: {}""".format(hostname, detail) payload = { "text": base64.b64encode(msg.encode('utf-8')).decode('ascii') } headers = {'Content-Type': 'application/json'} requests.post( "https://hooks.slack.com/services/XXXXX/YYYYY/ZZZZZ", data=json.dumps(payload), headers=headers ) |
注意:Base64 を利用する場合は、Slack 側でデコード処理を行うカスタムインテグレーション(例: AWS Lambda)を合わせて設定してください。
4‑3. Slack 側の設定ポイント
- 「App Home」→「Incoming Webhooks」画面で Payload format が
application/jsonになっていることを確認。 - 改行エスケープが必要な場合は、公式ドキュメントにある “Escape newlines with \n” の記述を再度チェック。
5️⃣ ポリシー変更後の動作検証と誤検知防止ベストプラクティス
5‑1. 動作確認フロー(手順まとめ)
|
1 2 3 4 5 6 7 |
① 例外設定適用 → 10 分待機(ポリシー配布完了を保証) ② curl / PowerShell で Slack のエンドポイントにアクセス - 成功: HTTP 200 が返ること ③ ESET Protect の「テスト通知」から Webhook にメッセージ送信 ④ fws.log とイベントビューアで BLOCKED エントリが無いか再チェック ⑤ 必要なら例外範囲を微調整し、手順 ②〜④ を再実行 |
コマンド例(PowerShell)
|
1 2 3 |
Invoke-WebRequest -Uri "https://hooks.slack.com/services/XXXXX/YYYYY/ZZZZZ" -Method Head # ステータスコードが 200 のとき OK |
5‑2. 誤検知防止のための運用ルール
| 項目 | 推奨設定 |
|---|---|
| 例外名 | Slack_ プレフィックス+日付(例: Slack_2026-04) |
| 適用スコープ | 必要最小限の OU/デバイスグループへ限定 |
| レビューサイクル | 3 カ月ごとに自動レポートを生成し、未使用例外は削除 |
| バージョン確認 | ESET Protect 18.1.10 以降のリリースノートで「Slack 用例外設定」項目があるか必ずチェック(管理コンソール → ヘルプ → アップデート情報) |
| 変更履歴の保存 | 設定変更は CSV/JSON 形式でエクスポートし、Git にコミットして監査証跡を残す |
5‑3. 最新情報の確認方法(まとめ)
- ESET
- 管理コンソール → 「ヘルプ」→「アップデート情報」
- ESET Knowledge Base の検索キーワード:
Slack allowlist、Network exception - Slack
- 公式ページ https://slack.com/help/articles/360049707113-Network-allowlist-for-Slack(閲覧日をメモ)
- Slack API ドキュメントの “IP address ranges” セクション
📚 まとめ
| 内容 | 要点 |
|---|---|
| 原因特定 | イベントビューア、fws.log、トラブルシューティングウィザードでブロック対象を正確に把握 |
| 例外設定 | アプリケーション (slack.exe) → ネットワーク(443/TCP, 3478/UDP)→ FQDN 優先の IP/ホスト例外 |
| Slack リスト | 公式 Network Allowlist を必ず参照し、定期的に更新をチェック |
| Webhook 改行対策 | JSON エスケープまたは Base64 エンコードで確実に送信 |
| 運用・レビュー | 設定名の統一、適用範囲限定、3 カ月ごとの自動レビュー、バージョン確認を徹底 |
最終チェックリスト
- [ ] ログでhooks.slack.comなどがブロック対象か確認済み
- [ ] アプリケーション例外 (slack.exe) を追加し、ポリシー適用完了を待機
- [ ] ネットワーク例外(443/TCP, 3478/UDP)を登録
- [ ] FQDN ベースの IP/ホスト例外を作成
- [ ] Webhook の改行エスケープ/Base64 実装をテスト
- [ ] 動作確認コマンドで HTTP 200 を取得し、ログに BLOCKED が残っていないことを検証
以上が ESET ファイアウォールで Slack 通信がブロックされた際の完全ガイドです。手順どおりに実施すれば、業務中断なく安全に Slack を利用できるようになります。ぜひ本稿を社内マニュアルとして活用し、定期的なレビューとバージョンチェックで常に最新状態を保ってください。