كيفية الحصول على تفاصيل تغييرات جدار الحماية عبر PowerShell
في عالم تكنولوجيا المعلومات، يعتبر جدار الحماية من العناصر الأساسية التي تحمي أنظمة التشغيل من التهديدات الخارجية. لذلك، من المهم تتبع سجل التغييرات التي تجري على إعدادات جدار الحماية، خاصة عندما يتم تثبيت برامج جديدة أو إجراء تعديلات على النظام. في هذه المقالة، سوف نستعرض كيفية الحصول على قائمة بالتغييرات الأخيرة التي تم إجراؤها على جدار الحماية باستخدام PowerShell في ويندوز.
ما هو جدار الحماية ولماذا تعقب تغييرات جدار الحماية مهم؟
جدار الحماية هو نظام أمان يراقب ويحكم حركة البيانات بين الشبكة الداخلية والخارجية. يتم استخدامه لفرض سياسات الأمان ومنع الأنشطة غير المرغوب فيها. عند تثبيت تطبيق جديد، قد يتم تعديل إعدادات جدار الحماية تلقائيًا لتمكين أو منع الوصول إلى الشبكة. لذلك، من المهم أن نتبع هذه التغييرات لضمان أمان النظام.
الحصول على سجل التغييرات باستخدام PowerShell
للحصول على قائمة بالتغييرات التي تم إجراؤها على جدار الحماية، يمكن استخدام PowerShell. تتيح لك هذه الأداة القوية الوصول إلى أحداث السجل وتصفية المعلومات بحسب الحاجة. للوصول إلى سجل التغييرات، يمكنك استخدام الأمر التالي:
Get-WinEvent -ErrorAction SilentlyContinue -FilterHashtable @{
logname="جدار حماية Microsoft-Windows-Windows مع أمان/جدار حماية متقدم";
المعرف=2097;
StartTime=(Get-Date).AddHours(-2);
EndTime=Get-Date
}
هذا الأمر يقوم بقراءة السجلات الخاصة بتغييرات جدار الحماية التي تمت في الساعتين الماضيتين. يمكن تعديل زمن البدء والنهاية حسب الحاجة. حيث أن معرف الحدث 2097 يُستخدم لتحديد السجلات الخاصة بتعديلات جدار الحماية.
تصفية البيانات للحصول على تفاصيل دقيقة
بعد الحصول على البيانات، قد تحتاج إلى استخراج معلومات معينة مثل وقت التعديل، البروتوكول، اتجاه الاتصال، اسم القاعدة، ومعلومات تطبيقات محددة. يمكن استخدام الكود التالي لتصفية البيانات وتحليلها:
$nArgs = $($args.Count)
if ($nArgs -eq 0) { $tHours = -1 } else { $tHours = -[int]$args[0] }
$selector = [System.Diagnostics.Eventing.Reader.EventLogPropertySelector]::new(
[string[]]@("الحدث/بيانات الحدث/بيانات[@Name='RuleName']",
"الحدث/بيانات الحدث/البيانات[@Name='ApplicationPath']")
)
$REX = '(?s)الاتجاه:\s*(?<dir>[^\n]+).+البروتوكول:\s*(?<prot>[^\n]+)'
Get-WinEvent -ErrorAction SilentlyContinue -FilterHashtable @{
logname="جدار حماية Microsoft-Windows-Windows مع أمان/جدار حماية متقدم";
المعرف=2097;
StartTime=(Get-Date).AddHours($tHours);
EndTime=Get-Date
} | ForEach-Object {
$RuleName, $ApplicationPath = $_.GetPropertyValues($selector)
$Direction, $Protocol = [regex]::Match($_.Message, $REX).Groups['dir', 'prot'].Value
if ($RuleName.Length -gt 47) {
$RuleName = ($RuleName[0..47] -join '') + '...'
}
[pscustomobject]@{
TimeCreated = $_.TimeCreated
Protocol = $Protocol
Direction = $Direction
RuleName = $RuleName
ApplicationPath = $ApplicationPath
}
} | Format-Table -AutoSize -Wrap
هذا الكود يقوم بإخراج جدول يحتوي على التفاصيل الضرورية، مما يسهل قراءة البيانات وفهمها.
الخلاصة
باستخدام PowerShell، يمكنك الحصول على قائمة مفصلة بالتغييرات التي تم إجراؤها على جدار الحماية. يوفر هذا الأسلوب وسيلة فعالة لتتبع التغييرات وضمان أمان النظام. إن إدارة جدار الحماية بفعالية يمكن أن تساعد في حماية بيئة العمل من التهديدات الخارجية وتضمن أن التطبيقات الجديدة لا تضر بالأمان العام للنظام.
في النهاية، تأكد دائمًا من مراجعة سجلات جدار الحماية بانتظام، وكن واعيًا لأي تغييرات تحدث للتأكد من أن النظام يعمل بالفعالية والأمان المطلوبين.