CTC 教育サービス
[IT研修]注目キーワード Python Power Platform 最新技術動向 生成AI Docker Kubernetes
みなさん、こんにちは。
前回は、ネットワーク構成のバージョン管理とExcelを活用したインベントリ管理の自動化について解説しました。これらは、大規模なネットワーク環境においても、設定ミスやトラブルを防ぎながら、一貫性のある管理を実現するために欠かせないアプローチです。
今回は、さらにネットワーク管理の自動化を進めるために、ネットワーク構成のコンプライアンスチェックやセキュリティ対策をどのように自動化できるかを紹介します。適切なコンプライアンス管理を行うことで、ネットワーク機器の設定が組織のポリシーや業界基準に沿っているかを継続的に確認でき、セキュリティリスクを最小限に抑えることができます。
ネットワーク機器の設定が適切に管理されているかを自動でチェックし、ポリシー違反を検出する。
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’に保存しました”)
機器の設定をスキャンし、セキュリティリスクがないか自動的にチェックする。
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’に保存しました”)
なお、以下のような観点のチェック項目を追加していくと、ネットワークセキュリティの監査精度が高くなります。
今回は、ネットワーク管理におけるコンプライアンスチェックとセキュリティ対策の自動化について紹介しました。コンプライアンスチェックを行うことで、組織のポリシーに沿った設定を維持し、ネットワークの安定運用を実現できます。また、セキュリティ監査の自動化により、潜在的なリスクを検出し、設定ミスを未然に防ぐことが可能になります。これらを活用することで、手作業の負担を軽減しながら、より安全かつ効率的なネットワーク運用を実現できます。
次回もPythonを使ったネットワーク自動化について解説します。どうぞお楽しみに。
[IT研修]注目キーワード Python Power Platform 最新技術動向 生成AI Docker Kubernetes