سیستم هاردنینگ فورتی گیت
System Hardening باعث کاهش ریسک امنیتی از طریق حذف بردارهای احتمالی حمله و کاهش سطح حمله سیستم میشود. برخی از بهترین شیوههایی که پیشتر در این سند توضیح داده شدهاند، به سختسازی FortiGate کمک میکنند.
کنترل دسترسی مدیریتی (Administrative Access Control)
برای جلوگیری از دسترسی غیرمجاز به رابطهای مدیریتی FortiGate، مجموعهای از اقدامات ضروری توصیه میشود:
- محدودسازی IP با Trusted Hosts: فقط به IPهای مشخص اجازه دسترسی به سرویسهای مدیریتی مانند HTTPS، SSH یا SNMP داده شود.
مثال CLI:
config system admin
edit "admin"
set trusthost1 192.168.1.10 255.255.255.255
set trusthost2 192.168.1.11 255.255.255.255
end
- غیرفعالسازی دسترسی مدیریتی از طریق WAN: دسترسی مدیریتی فقط از طریق اینترفیسهای داخلی یا MGMT انجام شود، نه از طریق WAN.
مثال CLI:
config system interface
edit "wan1"
set allowaccess ping
end
- تغییر پورتهای پیشفرض مدیریتی: برای کاهش احتمال شناسایی توسط مهاجم، پورتهای SSH و HTTPS را به پورتهای غیرمعمول مانند 2222 یا 8443 تغییر دهید.
- فعالسازی MFA برای مدیران: استفاده از احراز هویت چندمرحلهای (MFA) برای تمام حسابهای مدیریتی الزامی شود.
- تعیین Idle Timeout برای نشستها: برای بستن خودکار نشستهای مدیریتی پس از مدتزمان بیکاری.
- استفاده از local-in-policy: برای محدودسازی دسترسی به رابط مدیریتی براساس IP، زمان یا سرویس خاص.
- استفاده از کلید SSH: برای ورود امن به CLI بهجای رمز عبور.
- فعالسازی قفل خودکار حساب: حسابهایی که چند بار ورود ناموفق داشتهاند، بهصورت خودکار قفل شوند.
استفاده از پورتهای غیر پیشفرض برای سرویسها
برای کاهش شانس اسکن و حمله، پورت SSH و HTTPS را به پورتهای دیگر تغییر دهید (مثلاً 2222 برای SSH).
- فعالسازی MFA برای مدیران: احراز هویت دومرحلهای برای دسترسی به رابطهای مدیریتی الزامی شود (Token-Based یا SMS).
- فعالسازی Idle Timeout: برای نشستهای مدیریتی، زمان بیکاری (idle) کوتاه تعریف شود تا نشستها بهسرعت بسته شوند.
- کنترل دقیق با local-in-policies: با استفاده از local-in-policy میتوان دسترسی به سرویسهای مدیریتی را فقط از IPهای خاص و حتی در زمانهای خاص محدود کرد.
- استفاده از کلید SSH بهجای پسورد: برای امنیت CLI، از کلیدهای عمومی/خصوصی SSH استفاده شود و قابلیت ورود با رمز غیرفعال شود.
- قفل خودکار حساب پس از تلاشهای ناموفق: امنیت بیشتر با فعال کردن Lockout برای اکانتهایی که چندبار ورود ناموفق داشتند.
مدیریت زمان سیستم (System Time Management)
- اتصال به سرور NTP معتبر: FortiGate باید به یک سرور NTP داخلی یا خارجی معتبر مانند time.cloudflare.com یا time.google.com متصل شود.
- فعالسازی احراز هویت NTP: برای جلوگیری از حملات NTP Spoofing در شبکههای حساس، از کلیدهای رمزنگاریشده برای تأیید پاسخها استفاده شود.
مثال CLI:
config system ntp
set authentication enable
set key <ntp-key>
set key-id 1
end
- هماهنگی زمان در HA: تمام گرههای HA باید به یک NTP Server واحد متصل باشند. عدم همزمانی باعث اختلال در لاگها و عملکرد سیستم میشود.
- ثبت زمان دقیق در لاگها و گواهیها: صحت زمان برای تحلیل رویدادها، همگامسازی گواهیها و انطباق با SIEM اهمیت زیادی دارد.
استفاده از سیاستهای local-in
سیاستهای local-in به نوع خاصی از ترافیک اشاره دارند که مقصد آن خود دستگاه FortiGate است، مانند SSH، HTTPS، SNMP یا VPN که بهمنظور مدیریت یا دسترسی مستقیم به دستگاه استفاده میشوند.
- محدودسازی دقیق دسترسی: فقط آدرسهای IP مشخصشده اجازه استفاده از سرویسهای مدیریتی را داشته باشند. این کار با استفاده از فیلتر در local-in-policy انجام میشود.
- غیرفعالسازی سرویسهای غیرضروری: سرویسهایی مانند Ping یا SNMP در صورت عدم نیاز باید غیرفعال شوند تا سطح حمله کاهش یابد.
- اعمال محدودیت بر اینترفیسها: اطمینان حاصل شود که سرویسهای مدیریتی فقط از طریق اینترفیسهای داخلی یا اختصاصی فعال باشند و از WAN در دسترس نباشند.
- استفاده از Virtual Patching: در شرایطی که اعمال فوری patch ممکن نیست، میتوان با استفاده از local-in-policy بهصورت موقتی دسترسی به برخی سرویسها یا الگوهای حمله (مثلاً CVEهای شناختهشده) را مسدود کرد.
پایگاههای داده FortiGuard
- بهروزرسانی منظم: پایگاههای دادهی امنیتی مانند آنتیویروس (AV)، IPS، Web Filtering و Application Control باید بهطور منظم آپدیت شوند تا FortiGate در برابر تهدیدات روز محافظت شود.
- سناریوی آفلاین: در محیطهایی که دسترسی به اینترنت محدود است، میتوان بعد از دریافت فایلهای امنیتی با FTP یا TFTP آپدیت کرد و یا از نرم افزار سیبتا استفاده کنید.
- بررسی دورهای نسخه دیتابیسها: تطابق نسخه فعلی دیتابیس با آخرین نسخه رسمی بهصورت زمانبندیشده انجام شود تا از عقبافتادگی جلوگیری شود.
- تقویت سیاستهای امنیتی: میتوان از وضعیت دیتابیسها برای تقویت حساسیت IPS یا بلاک کردن دستههای خاصی از ترافیک استفاده کرد.
تست نفوذ (Penetration Testing)
- تست داخلی و خارجی: تست امنیتی باید هم از بیرون شبکه و هم از درون انجام شود تا آسیبپذیریها و پیکربندیهای نادرست شناسایی شوند.
- استفاده از ابزارهای حرفهای: ابزارهایی مانند Nessus، OpenVAS، Burp Suite و Metasploit برای تستهای خودکار و دستی استفاده شوند.
- بازبینی و اصلاح سیاستها: نتایج تست باید بهصورت مستند بررسی و برای بهبود سیاستهای امنیتی بهکار گرفته شود.
- محدود کردن بازه زمانی تست: تستهای نفوذ باید در بازه زمانی مشخص، با هماهنگی قبلی، و با کنترل دقیق انجام شوند تا به عملکرد شبکه آسیب نزنند.
- تکرار دورهای: تستها باید پس از تغییرات مهم در زیرساخت و بهصورت دورهای اجرا شوند تا سطح امنیتی سیستم بهروز باقی بماند.
پشتیبانگیری از پیکربندی (Configuration Backup)
- پشتیبانگیری منظم: تنظیم زمانبندی خودکار برای تهیه نسخه پشتیبان از فایل پیکربندی FortiGate ضروری است تا در مواقع بحران یا تغییرات اشتباه قابل بازیابی باشد. (نرم افزار سیبتا به شما امکان نوشتن تسک و گرفتن Backup دستگاه به صورت منظم را میدهد.)
- رمزنگاری فایل پشتیبان: در زمان export، گزینه رمزنگاری فعال شود تا از افشای اطلاعات حساس جلوگیری گردد.
- نگهداری ایمن فایل: فایلهای پشتیبان باید در محلهایی مانند سرور داخلی ایمن یا رسانههای رمزنگاریشده (USB/External HDD) ذخیره شوند.
- کنترل دسترسی: فقط افراد مجاز باید امکان دسترسی به فایلهای Backup را داشته باشند. دسترسیها نیز باید لاگ شوند.
- تست دورهای بازیابی: بهطور منظم بازیابی از فایلهای پشتیبان تست شود تا از عملکرد درست و کامل بودن آنها اطمینان حاصل گردد.
- توجه به سازگاری کلید رمزنگاری: در FortiOS 7.6.1 به بعد، اگر private-data-encryption فعال باشد، فایل Backup فقط روی دستگاههایی با کلید رمز مشابه قابل بازیابی است.
امنیت فیزیکی
- مکان نصب ایمن: FortiGate باید در محیط فیزیکی کنترلشده مثل رک قفلدار یا اتاق مجهز به سیستم دسترسی نصب شود.
- نظارت تصویری: نصب دوربین مدار بسته (CCTV) و سیستم هشدار نفوذ برای مانیتورینگ فیزیکی الزامی است.
- غیرفعالسازی USB Auto-Install: برای جلوگیری از بارگذاری پیکربندی یا firmware از طریق USB، این قابلیت باید غیرفعال باشد.
CLI نمونه:
set auto-install-config disable
set auto-install-image disable
end
- فعالسازی 802.1x: برای جلوگیری از اتصال غیرمجاز تجهیزات به پورتهای شبکه، احراز هویت پورت فعال گردد.
پایش آسیبپذیریها – PSIRT
- رصد اطلاعیهها: تیم PSIRT شرکت Fortinet آسیبپذیریهای مربوط به محصولات را در سایت FortiGuard منتشر میکند.
لینک رسمی و یا چنل تلگرام پارتیان برای مطلع شدن آنی از آسیب پذیریها
- مقایسه CVEها با سیستم: CVEهای منتشرشده باید با نسخههای موجود FortiGate تطبیق داده شوند و در صورت تطابق، فوراً اقدامات اصلاحی انجام شود.
- مدیریت داخلی آسیبپذیریها: ساخت دیتابیس داخلی برای ردیابی وضعیت وصلهها، آسیبپذیریهای رفعنشده و اولویتبندی رفع آنها توصیه میشود.
سیستمعامل (Firmware)
- استفاده از جدیدترین Patch: همیشه آخرین نسخه منتشرشده firmware نصب شود تا آخرین باگها و حفرههای امنیتی پوشش داده شوند.
- بررسی Release Notes قبل از ارتقاء: آشنایی با تغییرات نسخه و مشکلات شناختهشده قبل از ارتقاء ضروری است.
- اجتناب از نسخههای EOS: نسخههایی که پشتیبانیشان به پایان رسیده (End of Support) بهشدت ناامن هستند.
- رعایت Upgrade Path: مسیر ارتقاء پیشنهادی Fortinet باید رعایت شود تا از مشکلات احتمالی جلوگیری شود.
- ارتقاء متمرکز در سازمانهای بزرگ: استفاده از Federated Upgrade یا FortiManager برای بهروزرسانی گسترده و هماهنگ توصیه میشود.
- تهیه Backup قبل از ارتقاء: قبل از هر ارتقاء، Backup کامل از تنظیمات و وضعیت فعلی دستگاه تهیه شود.
- استفاده از Patch مجازی در شرایط اضطراری: اگر ارتقاء فوری ممکن نیست، میتوان با local-in-policy آسیبپذیریهای شناختهشده را موقتاً مسدود کرد.
پروتکلهای رمزنگاریشده (Encrypted Protocols)
برای محافظت از دادههای حساس در حین انتقال، استفاده از پروتکلهای رمزنگاریشده استاندارد امری ضروری است:
- بهجای LDAP از LDAPS استفاده کنید.
- برای RADIUS، از نسخه رمزنگاریشده آن یعنی RADSEC (با TLS) بهره ببرید.
- SNMPv3 را جایگزین SNMP قدیمی کنید.
- برای ارتباط CLI، SSH را جایگزین Telnet نمایید.
- برای احراز هویت OSPF، از MD5 Authentication استفاده شود.
- بهجای FTP یا TFTP از SCP استفاده کنید.
- احراز هویت NTP فعال شود.
- لاگها نیز باید با استفاده از Syslog over TLS یا IPsec رمزنگاری شوند.
نکته مهم: هنگام اتصال به Active Directory از طریق LDAP، نام کاربری و رمز عبور ادمین به سیستم ارسال میشود، بنابراین توصیه میشود ارتباط حتماً از طریق LDAPS برقرار گردد.
ذخیرهسازی امن گذرواژهها (Secure Password Storage)
- گذرواژهها و کلیدهای خصوصی در FortiGate بهصورت رمزنگاریشده نگهداری میشوند.
- از نسخه FortiOS 7.6.1 به بعد، الگوریتم هش PBKDF2 جایگزین SHA-256 شده که مقاومت بالاتری در برابر حملات brute-force دارد.
- فایل پیکربندی رمزنگاریشده فقط در صورت وجود همان کلید رمزنگاری قابل بازیابی است. این نکته در محیطهای HA یا هنگام جابجایی دستگاه اهمیت ویژه دارد.
- دستگاههایی که به Trusted Platform Module (TPM) مجهزند، میتوانند کلید رمزنگاری را بهصورت ایمن در TPM ذخیره کنند.
- استفاده از کلید رمزنگاری خصوصی اختصاصی نیز توصیه میشود تا کنترل کامل در دست ادمین سازمان باشد.
نکات مربوط به RMA
در صورتی که private-data-encryption فعال باشد و سختافزار FortiGate دچار خرابی شود:
- ابتدا باید رمزنگاری داده غیرفعال شود.
- سپس Backup گرفته و روی دستگاه جایگزین بازیابی گردد.
- اگر خرابی بهگونهای باشد که نتوان رمزنگاری را غیرفعال کرد، امکان بازیابی تنظیمات وجود نخواهد داشت.
توصیه: پیش از فعالسازی private-data-encryption، سناریوی RMA و روش بازیابی اطلاعات را در صورت خرابی سختافزار حتماً از پیش تعیین کنید.
استفاده از احراز هویت دو مرحلهای (2FA) برای کاربران و مدیران
افزودن احراز هویت چندعاملی یکی از مؤثرترین روشها برای جلوگیری از نفوذ از طریق سرقت اعتبارنامهها است.
- سیبتا (SIBTA): سامانه OTP، با پشتیبانی از ارسال رمز یکبار مصرف از طریق ایمیل و پیامک (با استفاده از ۳ درگاه پیامکی مختلف)، قابل استفاده برای احراز هویت کاربران در FortiGate.
- توکن سختافزاری (FortiToken): دستگاههای فیزیکی تولید OTP برای کاربرانی که نیاز به احراز هویت آفلاین یا امنیت حداکثری دارند.
- آموزش کاربران: به کاربران و مدیران باید نحوه استفاده از 2FA و اهمیت آن آموزش داده شود.
- اجباریسازی 2FA: برای دسترسی به رابط مدیریتی، حسابهای کاربری حساس یا دسترسی VPN، 2FA باید الزامی گردد.
پیکربندی مناسب سیاستهای فایروال (Firewall Policy Configuration)
تنظیم دقیق و اصولی قوانین فایروال برای محدود کردن سطح حمله و جلوگیری از ترافیک غیرمجاز بسیار حیاتی است:
- اصل کمترین دسترسی (Least Privilege): فقط ترافیک مجاز مشخصشده در سیاستها اجازه عبور داشته باشد. هر ترافیک غیرتعریفشده باید Drop شود.
- تعیین دقیق مبدا، مقصد، پروتکل و پورت: قوانین باید فقط برای IPها، پورتها و سرویسهایی تعریف شوند که واقعاً مورد نیاز هستند.
- مستندسازی سیاستها: تمامی قوانین باید ثبت و مستندسازی شوند تا در بازبینیها و تحلیلها قابل پیگیری باشند.
- بازبینی دورهای: قوانین قدیمی یا غیرضروری باید بهطور منظم شناسایی و حذف یا اصلاح شوند.
نظارت و تحلیل مداوم لاگها (Log Monitoring & Analysis)
تحلیل فعال لاگها به شناسایی تهدیدات احتمالی و عکسالعمل سریع در برابر آنها کمک میکند:
- متمرکزسازی لاگها: تمام لاگها از منابع مختلف در یک سامانه مرکزی مانند FortiAnalyzer یا سیستم SIEM جمعآوری شوند. (برای راهنمایی بیشتر تماس بگیرید.)
- تحلیل بلادرنگ با SIEM: با استفاده از ابزارهایی مانند Splunk، Wazuh، یا FortiSIEM، رفتارهای غیرعادی بهسرعت شناسایی شوند.
- تعریف هشدارهای خودکار: رویدادهای مشکوک مانند تلاش ورود ناموفق، تغییرات تنظیمات یا فعالیت غیرمعمول در شبکه باید هشدار تولید کنند.
مدیریت لاگها (Logging Management)
زیرساخت لاگبرداری باید حرفهای، امن و قابل تحلیل باشد:
- فعالسازی لاگ برای همه سیاستها: لاگبرداری برای قوانین فایروال، VPN، آنتیویروس، IPS و سایر ویژگیها فعال شود.
- ارسال امن به تحلیلگر مرکزی: لاگها از طریق TLS یا IPsec به FortiAnalyzer یا Syslog Server ارسال شوند.
- رمزنگاری لاگها در مسیر: از Syslog over TLS یا IPsec Tunnel برای جلوگیری از شنود دادهها استفاده شود.
مثال تنظیم CLI برای Syslog رمزنگاریشده:
config log syslogd setting
set reliable enable
set mode reliable
set enc-algorithm high
end
جداسازی انواع لاگها: لاگهای مدیریتی، رویدادهای امنیتی و ترافیک باید در مسیرها و فایلهای جداگانه ذخیره شوند.
- سیاست نگهداری لاگها: مدت نگهداری بر اساس سطح حساسیت تعریف شود (مثلاً ۱ سال برای رویدادهای امنیتی، ۶ ماه برای ترافیک عادی).
سیاستهای رمزنگاری و حفاظت از دادهها (Encryption & Data Protection Policies)
این سیاستها باید هم برای دادههای در حال انتقال و هم دادههای ذخیرهشده اعمال شوند:
رمزنگاری در حال انتقال (Data-in-Transit):
- استفاده فقط از SSH، HTTPS، LDAPS، RADSEC، SNMPv3، SCP.
- فعالسازی NTP Authentication و Syslog over TLS/IPsec.
رمزنگاری لاگها:
- ارسال امن به تحلیلگر با TLS/IPsec و فعالسازی قابلیت رمزنگاری CLI.
رمزنگاری در حالت ذخیره (Data-at-Rest):
- رمزنگاری فایل پیکربندی با private-data-encryption.
- هش گذرواژهها با SHA-256 یا PBKDF2.
- ذخیره کلید در TPM در صورت پشتیبانی سختافزاری.
استفاده از SSH Key:
- بهجای رمز عبور، ورود به CLI با کلید SSH انجام شود.
رمزنگاری قوی (Strong Crypto):
- فعالسازی strong-crypto، غیرفعالسازی ssl-static-key-ciphers و استفاده از DH 8192.
مثال CLI:
config system global
set strong-crypto enable
set ssl-static-key-ciphers disable
set dh-params 8192
end
کاهش سطح حمله و کنترل ترافیک (Attack Surface Reduction & Traffic Control)
برای کاهش احتمال موفقیت حملات، باید سطح حمله سیستم به حداقل برسد و ترافیک بهصورت دقیق کنترل شود:
غیرفعالسازی سرویسها و پورتهای غیرضروری:
- سرویسهایی مانند Telnet، HTTP، FTP، TFTP، SNMPv1/2 باید غیرفعال شوند.
- فقط سرویسهایی مانند HTTPS، SSH و VPN که موردنیاز واقعی هستند فعال بمانند.
- با ابزارهایی مانند netstat یا diag sys top، سرویسهای فعال را شناسایی و بررسی کنید.
محدودسازی دقیق با فایروال و Policyها:
- فقط ترافیک کاملاً مشخص (IP، پورت، پروتکل، زمان) مجاز باشد و باقی Drop شود.
- از اصل least privilege در تعریف policyها استفاده شود.
- تمام قوانین مستندسازی و بهصورت دورهای بازبینی شوند.
استفاده از Security Zones:
- شبکه را به مناطق امن مجزا مانند LAN، WAN، DMZ و INTERNAL تقسیم کنید.
- بین این Zoneها، قوانین محدودکننده و خاص اعمال گردد.
- استفاده از Virtual Wire Pair برای جلوگیری از دور زدن فایروال توصیه میشود.
فعالسازی ویژگیهای امنیتی پیشرفته:
- IPS، Application Control، DNS Filtering و Web Filtering فعال شوند.
- SSL Inspection و Deep Packet Inspection برای ترافیک رمزنگاریشده فعال گردد.
کنترل دسترسی کاربران:
- کاربران به منابع مشخص و در بازههای زمانی مجاز دسترسی داشته باشند.
- از احراز هویت دو مرحلهای برای کاربران VPN و مدیران استفاده شود.
محافظت در برابر حملات انکار سرویس (DoS Protection)
حملات DoS منابع سیستم را اشباع میکنند و باعث قطع دسترسی میشوند. FortiGate با سیاستهای DoS میتواند این حملات را شناسایی و دفع کند.
ایجاد DoS Policy روی اینترفیسهای حساس:
- سیاستها را روی WAN یا پورتهای عمومی ایجاد کنید.
- ابتدا در حالت monitor اجرا و پس از بررسی ترافیک، به حالت block تغییر وضعیت داده شود.
نمونه CLI:
config firewall DoS-policy
edit 1
set interface "wan1"
set srcaddr "all"
set dstaddr "all"
set service "ALL"
config anomaly
edit "tcp_syn_flood"
set status enable
set action block
set log enable
set threshold 1000
next
edit "udp_flood"
set status enable
set action block
set threshold 800
next
edit "icmp_flood"
set status enable
set action block
set threshold 300
next
end
end
مقادیر پیشنهادی Threshold (قابل تنظیم بر اساس شبکه):
- TCP SYN Flood: 1000 در ثانیه
- UDP Flood: 800 در ثانیه
- ICMP Flood: 300 در ثانیه
- TCP Port Scan: 50 در ثانیه
استفاده از قابلیت شتابدهی سختافزاری ASIC (NP6/NP7):
- در مدلهای دارای NP، پردازش DoS offload میشود و کارایی افزایش مییابد.
- قابلیت Host Protection Engine (HPE) نیز برای محافظت در برابر حملات به خود FortiGate فعال شود.