تصویر شاخص آموزش شبکه
اگر کار ما فقط وصل کردن چند کابل و نوشتن چند دستور روی روتر بود، شاید یاد گرفتن پایتون برای مهندس شبکه اولویت بالایی نداشت. اما شبکههای امروز پر از تجهیزات، API، لاگ، مانیتورینگ، تغییرات تکراری و خطاهای انسانی هستند. در چنین محیطی، پایتون یک زبان برنامهنویسی تزئینی نیست؛ یک ابزار عملی برای کم کردن کار دستی و دقیقتر کردن عملیات شبکه و امنیت است.
منظور از یاد گرفتن پایتون این نیست که مهندس شبکه تبدیل به برنامهنویس نرمافزار شود. هدف این است که بتوانیم کارهای تکراری، بررسی کانفیگها، جمعآوری اطلاعات، گزارشگیری و حتی بخشی از تحلیلهای امنیتی را بهتر و سریعتر انجام دهیم.
در کار روزمره شبکه، خیلی وقتها با کارهایی روبهرو میشویم که سادهاند اما وقتگیر و پرخطا هستند؛ مثلاً گرفتن خروجی از چندین سوئیچ، بررسی یک تنظیم امنیتی روی دهها روتر، مقایسه کانفیگ قبل و بعد از تغییر، یا پیدا کردن اینکه کدام اینترفیسها وضعیت غیرعادی دارند. پایتون برای همین جنس کارها عالی است.
یک سوءبرداشت رایج این است که اتوماسیون یعنی همه چیز را به اسکریپت بسپاریم. در شبکه و امنیت چنین کاری خطرناک است. تصمیم فنی هنوز باید دست مهندس باشد. پایتون فقط کمک میکند کارهایی که بارها و بارها تکرار میشوند با دقت بیشتری انجام شوند.
مثلاً اگر قرار است روی چند شعبه وضعیت NTP، SNMP، SSH، AAA یا تنظیمات لاگ بررسی شود، انجام دستی آن هم زمانبر است و هم احتمال خطا دارد. یک اسکریپت ساده میتواند خروجیها را بگیرد، موارد مشکلدار را جدا کند و گزارش بدهد؛ اما تصمیم نهایی برای اصلاح همچنان با مهندس است.
یکی از اولین استفادههای خوب پایتون در شبکه، گرفتن Backup دورهای از کانفیگ تجهیزات است. این کار مخصوصاً زمانی ارزش دارد که تعداد تجهیزات زیاد باشد یا تغییرات زیاد انجام شود. داشتن نسخه منظم از کانفیگ، موقع خرابی یا اشتباه انسانی واقعاً نجاتدهنده است.
میتوان با یک اسکریپت ساده بررسی کرد که مثلاً Telnet روی تجهیزات فعال نباشد، SSH استفاده شود، لاگ به Syslog ارسال شود، رمزهای ضعیف در کانفیگ دیده نشود، یا دسترسی مدیریتی فقط از شبکههای مشخص مجاز باشد. این کار جای Audit کامل را نمیگیرد، اما برای کنترلهای دورهای بسیار مفید است.
در پروژههای مهاجرت، پایتون میتواند برای تبدیل ساختارهای تکراری یا حداقل استخراج بخشهای مهم کانفیگ کمک کند. نمونهاش تبدیل Ruleها، Objectها یا Address Groupها بین برندهای مختلف فایروال است. این کار همیشه نیاز به بازبینی انسانی دارد، اما حجم کار دستی را کم میکند.
لاگ خام معمولاً زیاد و خستهکننده است. با پایتون میتوان الگوهای پرتکرار، IPهای مشکوک، خطاهای تکراری یا تغییرات غیرعادی را سریعتر پیدا کرد. برای تیم امنیت، همین چند دقیقه صرفهجویی گاهی در زمان Incident خیلی مهم میشود.
برای شروع لازم نیست سراغ پروژههای بزرگ بروید. بهتر است با یک مسئله کوچک از محیط واقعی خودتان شروع کنید؛ مثلاً اتصال SSH به یک سوئیچ آزمایشی، گرفتن خروجی show version یا show ip interface brief و ذخیره آن در فایل. بعد کمکم سراغ پردازش خروجی، گزارش CSV و اجرای کار روی چند دستگاه بروید.
مسیر پیشنهادی برای شروع:
netmiko یا paramiko برای اتصال به تجهیزاتنمونه زیر فقط برای نشان دادن ایده است؛ در محیط واقعی باید مدیریت خطا، امنیت رمزها و لاگگیری هم جدی گرفته شود.
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 را جدا کرد و گزارش ساخت.
پایتون برای مهندس شبکه و امنیت یک مهارت جانبی لوکس نیست؛ یک ابزار کاربردی برای بهتر کار کردن است. قرار نیست جای دانش Routing، Switching، Firewall یا Security را بگیرد. اما وقتی آن دانش را دارید، پایتون کمک میکند سریعتر بررسی کنید، کمتر اشتباه کنید و کارهای تکراری را با کیفیت بهتری انجام دهید.
اگر تازه شروع میکنید، از یک کار کوچک واقعی شروع کنید. یک اسکریپت ساده که امروز ده دقیقه وقت شما را ذخیره کند، از یک پروژه بزرگ نیمهکاره ارزشمندتر است.
مطالب مرتبط: پشتیبانگیری خودکار از تنظیمات سیسکو، تبدیل کانفیگ FortiGate به Juniper با Python، آموزش و خدمات شبکه سیسکو و آموزش شبکه.
وقتی F5 BIG-IP را فقط به چشم یک لودبالانسر ساده ببینیم، معمولاً طراحی در همان…
در امنیت شبکه معمولاً همه حواسها میرود سمت سرورها، آنتیویروس، کاربران، ایمیل و حملات فیشینگ.…
معرفی ابزار پایتونی FortigateToJuniper برای تبدیل اولیه policyها، objectها و address groupهای FortiGate به دستورهای…
وقتی میخواهیم فایروال، IPS یا یک تجهیز امنیتی لبه شبکه بخریم، معمولاً اولین چیزی که…
CentOS 7 سالها یکی از انتخابهای رایج برای سرورهای لینوکسی بود؛ مخصوصاً در محیطهایی که…
هاردنینگ یعنی کم کردن سطح حمله. نه با یک دستور جادویی، نه با نصب یک…