IT・技術研修ならCTC教育サービス

サイト内検索 企業情報 サイトマップ

研修コース検索

コラム

Pythonでネットワーク自動化をしよう

CTC 教育サービス

 [IT研修]注目キーワード   Python  Power Platform  最新技術動向  生成AI  Docker  Kubernetes 

第31回 ネットワーク自動化実践レシピ(3) (小澤昌樹) 2025年3月

はじめに

みなさん、こんにちは。

前回は、ネットワーク構成のバージョン管理とExcelを活用したインベントリ管理の自動化について解説しました。これらは、大規模なネットワーク環境においても、設定ミスやトラブルを防ぎながら、一貫性のある管理を実現するために欠かせないアプローチです。

今回は、さらにネットワーク管理の自動化を進めるために、ネットワーク構成のコンプライアンスチェックやセキュリティ対策をどのように自動化できるかを紹介します。適切なコンプライアンス管理を行うことで、ネットワーク機器の設定が組織のポリシーや業界基準に沿っているかを継続的に確認でき、セキュリティリスクを最小限に抑えることができます。

ネットワーク構成のコンプライアンスチェック
1. シナリオ

ネットワーク機器の設定が適切に管理されているかを自動でチェックし、ポリシー違反を検出する。

2. 目的
  • 設定の一貫性を維持し、ネットワークの安定性を確保する
  • 手動での監査の負担を軽減し、定期的なチェックを自動化する
  • セキュリティリスクを早期に発見し、問題を未然に防ぐ
3. ライブラリ
  • NAPALM:ネットワーク機器の設定情報を取得
  • OpenPyXL:コンプライアンスチェックの結果をExcelに記録
4. コード例

import openpyxl
from napalm import get_network_driver

# 監視対象のデバイス情報 devices = [ {’hostname’: ’192.168.1.1’, ’username’: ’admin’, ’password’: ’admin123’, ’platform’: ’ios’} ]
# 期待されるポリシー(例:バナー設定の確認) compliance_rules = { ’banner_motd’: ’Authorized Access Only’ }
# Excelレポート作成 wb = openpyxl.Workbook() sheet = wb.active sheet.title = ’コンプライアンスレポート’ sheet.append([’Hostname’, ’Rule’, ’Compliance’, ’Details’])
for device_info in devices: driver = get_network_driver(device_info[’platform’]) device = driver(device_info[’hostname’], device_info[’username’], device_info[’password’]) device.open() config = device.get_config() running_config = config[’running’]
# コンプライアンスチェック for rule, expected_value in compliance_rules.items(): if rule == ’banner_motd’: compliance = ’Compliant’ if expected_value in running_config else ’Non-Compliant’ details = ’’ if compliance == ’Compliant’ else ’Banner message is incorrect or missing.’ sheet.append([device_info[’hostname’], rule, compliance, details])
device.close()
wb.save(’compliance_report.xlsx’) print(”’compliance_report.xlsx’に保存しました”)
5. 解説
  • get_config() を使用してネットワーク機器の設定を取得。
  • 設定内容を compliance_rules に定義された基準と比較し、違反がある場合は Non-Compliant として記録。
  • 結果をExcelレポートに保存し、定期的な監査を自動化。
ネットワークのセキュリティ対策
1. シナリオ

機器の設定をスキャンし、セキュリティリスクがないか自動的にチェックする。

2. 目的
  • 不適切な設定がないかを自動的に検出
  • セキュリティポリシーの遵守を強化
  • 人的ミスによる設定漏れを防ぐ
3. ライブラリ
  • Netmiko:SSHを利用して機器へコマンドを送信
  • OpenPyXL:監査結果をExcelに記録
4. コード例

import openpyxl
from netmiko import ConnectHandler
# 監視対象のデバイス情報
devices = [
    {’device_type’: ’cisco_ios’, ’host’: ’192.168.1.1’, ’username’: ’admin’, ’password’: ’admin123’}
]

# Excelレポート作成 wb = openpyxl.Workbook() sheet = wb.active sheet.title = ’セキュリティ監査レポート’ sheet.append([’Hostname’, ’Check’, ’Status’, ’Details’])
for device_info in devices: try: net_connect = ConnectHandler(**device_info) # 不要なアカウントが存在しないか確認 users = net_connect.send_command(”show users”) if ”unauthorized_user” in users: sheet.append([device_info[’host’], ”Unauthorized User”, ”Warning”, ”Unauthorized user found”]) else: sheet.append([device_info[’host’], ”Unauthorized User”, ”OK”, ”No unauthorized users found”]) # Telnetが有効になっていないか確認 config = net_connect.send_command(”show running-config”) if ”transport input telnet” in config: sheet.append([device_info[’host’], ”Telnet Disabled”, ”Warning”, ”Telnet access is enabled”]) else: sheet.append([device_info[’host’], ”Telnet Disabled”, ”OK”, ”Telnet is disabled”])
net_connect.disconnect() except Exception as e: sheet.append([device_info[’host’], ”Error”, ”Failed”, str(e)])
wb.save(’security_audit.xlsx’) print(”’security_audit.xlsx’に保存しました”)
5. 解説
  • show users を実行し、不正なアカウントが存在しないかを確認。
  • show running-config を使用し、Telnetが有効になっていないかをチェック。
  • 結果を security_audit.xlsx に記録し、セキュリティ監査を自動化。

なお、以下のような観点のチェック項目を追加していくと、ネットワークセキュリティの監査精度が高くなります。

  • show ip interface brief を使用し、不要なインターフェースが有効になっていないかを確認。
  • show version を実行し、OSのバージョンが最新であり、脆弱性のあるバージョンではないかをチェック。
  • show logging を活用し、不審なアクセス試行やエラーメッセージが記録されていないかを確認。
  • show clock を用いてNTPの設定をチェックし、ログの時刻が正確であることを担保。
まとめ

今回は、ネットワーク管理におけるコンプライアンスチェックとセキュリティ対策の自動化について紹介しました。コンプライアンスチェックを行うことで、組織のポリシーに沿った設定を維持し、ネットワークの安定運用を実現できます。また、セキュリティ監査の自動化により、潜在的なリスクを検出し、設定ミスを未然に防ぐことが可能になります。これらを活用することで、手作業の負担を軽減しながら、より安全かつ効率的なネットワーク運用を実現できます。

次回もPythonを使ったネットワーク自動化について解説します。どうぞお楽しみに。

 

 [IT研修]注目キーワード   Python  Power Platform  最新技術動向  生成AI  Docker  Kubernetes