شبکه

چرا مهندس شبکه و امنیت باید پایتون یاد بگیرد؟

اگر کار ما فقط وصل کردن چند کابل و نوشتن چند دستور روی روتر بود، شاید یاد گرفتن پایتون برای مهندس شبکه اولویت بالایی نداشت. اما شبکه‌های امروز پر از تجهیزات، API، لاگ، مانیتورینگ، تغییرات تکراری و خطاهای انسانی هستند. در چنین محیطی، پایتون یک زبان برنامه‌نویسی تزئینی نیست؛ یک ابزار عملی برای کم کردن کار دستی و دقیق‌تر کردن عملیات شبکه و امنیت است.

منظور از یاد گرفتن پایتون این نیست که مهندس شبکه تبدیل به برنامه‌نویس نرم‌افزار شود. هدف این است که بتوانیم کارهای تکراری، بررسی کانفیگ‌ها، جمع‌آوری اطلاعات، گزارش‌گیری و حتی بخشی از تحلیل‌های امنیتی را بهتر و سریع‌تر انجام دهیم.

پایتون دقیقاً کجای کار مهندس شبکه به درد می‌خورد؟

در کار روزمره شبکه، خیلی وقت‌ها با کارهایی روبه‌رو می‌شویم که ساده‌اند اما وقت‌گیر و پرخطا هستند؛ مثلاً گرفتن خروجی از چندین سوئیچ، بررسی یک تنظیم امنیتی روی ده‌ها روتر، مقایسه کانفیگ قبل و بعد از تغییر، یا پیدا کردن این‌که کدام اینترفیس‌ها وضعیت غیرعادی دارند. پایتون برای همین جنس کارها عالی است.

  • گرفتن خروجی از تجهیزات Cisco، Juniper، FortiGate و سایر تجهیزات از طریق SSH یا API
  • بررسی خودکار کانفیگ‌ها و پیدا کردن تنظیمات ناامن یا جاافتاده
  • تولید گزارش از وضعیت اینترفیس‌ها، VLANها، Routeها یا Policyها
  • مقایسه Backup کانفیگ‌ها و تشخیص تغییرات مهم
  • کمک به Incident Response با پردازش لاگ‌ها و خروجی ابزارهای امنیتی

اتوماسیون یعنی حذف فکر؟ نه؛ حذف کار تکراری

یک سوءبرداشت رایج این است که اتوماسیون یعنی همه چیز را به اسکریپت بسپاریم. در شبکه و امنیت چنین کاری خطرناک است. تصمیم فنی هنوز باید دست مهندس باشد. پایتون فقط کمک می‌کند کارهایی که بارها و بارها تکرار می‌شوند با دقت بیشتری انجام شوند.

مثلاً اگر قرار است روی چند شعبه وضعیت NTP، SNMP، SSH، AAA یا تنظیمات لاگ بررسی شود، انجام دستی آن هم زمان‌بر است و هم احتمال خطا دارد. یک اسکریپت ساده می‌تواند خروجی‌ها را بگیرد، موارد مشکل‌دار را جدا کند و گزارش بدهد؛ اما تصمیم نهایی برای اصلاح همچنان با مهندس است.

چند مثال واقعی از کاربرد پایتون در شبکه

۱. گرفتن Backup از کانفیگ تجهیزات

یکی از اولین استفاده‌های خوب پایتون در شبکه، گرفتن Backup دوره‌ای از کانفیگ تجهیزات است. این کار مخصوصاً زمانی ارزش دارد که تعداد تجهیزات زیاد باشد یا تغییرات زیاد انجام شود. داشتن نسخه منظم از کانفیگ، موقع خرابی یا اشتباه انسانی واقعاً نجات‌دهنده است.

۲. بررسی تنظیمات امنیتی پایه

می‌توان با یک اسکریپت ساده بررسی کرد که مثلاً Telnet روی تجهیزات فعال نباشد، SSH استفاده شود، لاگ به Syslog ارسال شود، رمزهای ضعیف در کانفیگ دیده نشود، یا دسترسی مدیریتی فقط از شبکه‌های مشخص مجاز باشد. این کار جای Audit کامل را نمی‌گیرد، اما برای کنترل‌های دوره‌ای بسیار مفید است.

۳. تبدیل یا مقایسه کانفیگ‌ها

در پروژه‌های مهاجرت، پایتون می‌تواند برای تبدیل ساختارهای تکراری یا حداقل استخراج بخش‌های مهم کانفیگ کمک کند. نمونه‌اش تبدیل Ruleها، Objectها یا Address Groupها بین برندهای مختلف فایروال است. این کار همیشه نیاز به بازبینی انسانی دارد، اما حجم کار دستی را کم می‌کند.

۴. تحلیل لاگ و خروجی ابزارها

لاگ خام معمولاً زیاد و خسته‌کننده است. با پایتون می‌توان الگوهای پرتکرار، IPهای مشکوک، خطاهای تکراری یا تغییرات غیرعادی را سریع‌تر پیدا کرد. برای تیم امنیت، همین چند دقیقه صرفه‌جویی گاهی در زمان Incident خیلی مهم می‌شود.

از کجا شروع کنیم؟

برای شروع لازم نیست سراغ پروژه‌های بزرگ بروید. بهتر است با یک مسئله کوچک از محیط واقعی خودتان شروع کنید؛ مثلاً اتصال SSH به یک سوئیچ آزمایشی، گرفتن خروجی show version یا show ip interface brief و ذخیره آن در فایل. بعد کم‌کم سراغ پردازش خروجی، گزارش CSV و اجرای کار روی چند دستگاه بروید.

مسیر پیشنهادی برای شروع:

  1. یادگیری مقدمات Python: متغیر، شرط، حلقه، لیست، دیکشنری و کار با فایل
  2. کار با کتابخانه‌هایی مثل netmiko یا paramiko برای اتصال به تجهیزات
  3. یادگیری پردازش متن و خروجی Commandها
  4. کار با API و JSON برای تجهیزاتی مثل FortiGate، Cisco Firepower یا ابزارهای مانیتورینگ
  5. نوشتن اسکریپت‌های کوچک و قابل کنترل، نه پروژه‌های پیچیده از روز اول

یک نمونه خیلی ساده

نمونه زیر فقط برای نشان دادن ایده است؛ در محیط واقعی باید مدیریت خطا، امنیت رمزها و لاگ‌گیری هم جدی گرفته شود.

from netmiko import ConnectHandler

device = {
    "device_type": "cisco_ios",
    "host": "192.0.2.10",
    "username": "admin",
    "password": "your-password",
}

with ConnectHandler(**device) as conn:
    output = conn.send_command("show ip interface brief")
    print(output)

همین چند خط می‌تواند نقطه شروع باشد. بعداً می‌توان لیست دستگاه‌ها را از فایل خواند، خروجی‌ها را ذخیره کرد، موارد Down را جدا کرد و گزارش ساخت.

چند نکته امنیتی مهم

  • رمز عبور را داخل اسکریپت رها نکنید؛ از متغیر محیطی، Vault یا حداقل فایل محافظت‌شده استفاده کنید.
  • قبل از اجرای اسکریپت روی تجهیزات عملیاتی، آن را روی Lab یا یک دستگاه کم‌ریسک تست کنید.
  • برای اسکریپت‌ها سطح دسترسی حداقلی تعریف کنید؛ همه چیز نیاز به دسترسی Admin کامل ندارد.
  • خروجی اسکریپت‌ها را نگه دارید تا بعداً بتوانید تغییرات و خطاها را بررسی کنید.

جمع‌بندی

پایتون برای مهندس شبکه و امنیت یک مهارت جانبی لوکس نیست؛ یک ابزار کاربردی برای بهتر کار کردن است. قرار نیست جای دانش Routing، Switching، Firewall یا Security را بگیرد. اما وقتی آن دانش را دارید، پایتون کمک می‌کند سریع‌تر بررسی کنید، کمتر اشتباه کنید و کارهای تکراری را با کیفیت بهتری انجام دهید.

اگر تازه شروع می‌کنید، از یک کار کوچک واقعی شروع کنید. یک اسکریپت ساده که امروز ده دقیقه وقت شما را ذخیره کند، از یک پروژه بزرگ نیمه‌کاره ارزشمندتر است.

مطالب مرتبط: پشتیبان‌گیری خودکار از تنظیمات سیسکو، تبدیل کانفیگ FortiGate به Juniper با Python، آموزش و خدمات شبکه سیسکو و آموزش شبکه.

علیرضا عربیان

متخصص شبکه و امنیت شبکه، مدرس امنیت شبکه و نویسنده وبلاگ arabiyan.ir

Share
Published by
علیرضا عربیان

Recent Posts

طراحی درست Health Monitor و Persistence در F5 BIG-IP

وقتی F5 BIG-IP را فقط به چشم یک لودبالانسر ساده ببینیم، معمولاً طراحی در همان…

18 ساعت ago

وقتی روتر و فایروال تبدیل به نقطه نفوذ می‌شوند

در امنیت شبکه معمولاً همه حواس‌ها می‌رود سمت سرورها، آنتی‌ویروس، کاربران، ایمیل و حملات فیشینگ.…

7 روز ago

تبدیل کانفیگ FortiGate به Juniper با Python؛ تجربه یک مهاجرت واقعی فایروال

معرفی ابزار پایتونی FortigateToJuniper برای تبدیل اولیه policyها، objectها و address groupهای FortiGate به دستورهای…

1 هفته ago

راهنمای خواندن دیتاشیت فایروال؛ چرا اعداد کارایی همیشه واقعی نیستند؟

وقتی میخواهیم فایروال، IPS یا یک تجهیز امنیتی لبه شبکه بخریم، معمولاً اولین چیزی که…

4 سال ago

امن‌سازی CentOS 7 با CIS؛ نکات مهم بعد از پایان عمر

CentOS 7 سال‌ها یکی از انتخاب‌های رایج برای سرورهای لینوکسی بود؛ مخصوصاً در محیط‌هایی که…

7 سال ago

هاردنینگ چیست و چرا باید امن‌سازی سیستم‌ها را جدی بگیریم؟

هاردنینگ یعنی کم کردن سطح حمله. نه با یک دستور جادویی، نه با نصب یک…

7 سال ago