Local-in Policy در FortiGate: طراحی امن و مدیریت سرویسهای داخلی
این مقاله مفهوم Local-in Policy در FortiOS 7.6 را توضیح میدهد و نشان میدهد چطور میتوان دسترسی به سرویسهای FortiGate مانند HTTPS، SSH و VPN را از طریق GUI و CLI و با Logging به شیوهای امن مدیریت کرد و اصول Best Practice را تشریح مینماید.
خلاصه تخصصی مقاله
این مقاله مفهوم Local-in Policy در FortiOS 7.6 را توضیح میدهد و نشان میدهد چطور میتوان دسترسی به سرویسهای FortiGate مانند HTTPS، SSH و VPN را از طریق GUI و CLI و با Logging به شیوهای امن مدیریت کرد و اصول Best Practice را تشریح مینماید.
موضوعات اصلی: پشتیبانی شبکه، Local-in، Policy، Set، FortiGate، Access
Local-in Policy در FortiGate: طراحی امن و مدیریت سرویسهای داخلی
در FortiOS 7.6، Local-in Policy برای کنترل ترافیکی استفاده میشود که به Interfaceهای FortiGate میرسد؛ مانند HTTPS، SSH، PING، SNMP، IKE، SSL VPN و سایر سرویسهایی که روی FortiGate پاسخ میدهند. بنابراین اگر FortiGate شما در مرز شبکه قرار دارد یا Administrative Access روی Interfaceها فعال است، طراحی صحیح Local-in Policy یکی از ستونهای Hardening به حساب میآید.
1. Local-in Traffic چیست؟
Local-in Traffic به ترافیک گفته میشود که مقصد آن خود FortiGate است، نه شبکه پشت FortiGate. برای مثال وقتی از خارج به IP یکی از Interfaceهای FortiGate با HTTPS وصل میشود، این ترافیک به FortiGate میرسد. وقتی یک سیستم به Interface فایروال Ping میزند، یا وقتی FortiGate را مانیتور میکند، یا وقتی یک مذاکره IKE برای IPsec VPN انجام میشود، همه اینها نمونههایی از Local-in Traffic هستند.
نکتهSecurity Profileها مانند IPS، Antivirus و Web Filter برای ترافیکی هستند که از FortiGate عبور میکند. اما Local-in Policy برای ترافیکهایی است که به Interfaceهای FortiGate میرسد و قرار نیست از فایروال عبور کند.
2. تفاوت Local-in Policy با Firewall Policy معمولی
Firewall Policy معمولی برای کنترل ترافیک Transit استفاده میشود؛ یعنی ترافیکی که از یک Interface وارد میشود و از Interface دیگری خارج میشود. اما Local-in Policy برای کنترل ترافیکی است که Destination آن FortiGate Interface است. همین تفاوت باعث میشود که نوشتن یک Firewall Policy معمولی برای Block کردن دسترسی به GUI یا SSH خود FortiGate کافی نباشد.
| مورد | Firewall Policy | Local-in Policy |
|---|---|---|
| نوع ترافیک | ترافیک عبوری از FortiGate | ترافیک ورودی به FortiGate |
| مثال | کاربر داخلی به اینترنت | اتصال SSH به IP Interface فایروال |
| کاربرد اصلی | کنترل ارتباط بین شبکهها | محافظت از سرویسهای خود FortiGate |
| Security Profile | قابل اعمال است | استفاده نمیشود مانند معمول |
| اهمیت امنیتی | محافظت از شبکهها و سرویسها | محافظت از Management Plane و سرویسهای فایروال |
3. چه سرویسهایی با Local-in Policy کنترل میشوند؟
هر سرویسی که روی FortiGate پاسخ میدهد میتواند در Local-in Policy گنجانده شود. بسته به سناریو، این خدمات میتواند مدیریتی، مانیتورینگ یا VPN باشد.
| سرویس | کاربرد | ریسک در صورت باز بودن روی Interface عمومی |
|---|---|---|
| HTTPS | دسترسی به GUI مدیریتی | افزایش سطح حمله روی صفحه ورود و Management Plane |
| SSH | مدیریت CLI | Brute Force، اسکن، تلاش برای Exploit |
| PING | تست Reachability | شناسایی IP فعال و کمک به Reconnaissance |
| SNMP | مانیتورینگ | نشت اطلاعات مدیریتی یا استفاده از رشته/Community اشتباه |
| IKE/IPsec | راهاندازی VPN | اسکن، مذاکره ناخواسته و حمله به VPN Gateway |
| SSL VPN | دسترسی Remote کاربران | Brute Force، Credential Stuffing و آسیبپذیریها |
4. Local-in Policy، Interface Administrative Access و Trusted Host چه فرقی دارند؟
برای حفاظت از دسترسی به FortiGate، سه لایه اصلی وجود دارد: Administrative Access روی Interface، Trusted Host برای مدیران و Local-in Policy. این سه مکمل یکدیگرند و بهطور کامل جایگزین نیستند.
| مکانیزم | محل تنظیم | نقش | محدودیت |
|---|---|---|---|
| Administrative Access | تنظیمات Interface | مشخص میکند FortiGate روی آن Interface به چه سرویسهایی پاسخ دهد | برای کنترل دقیق Source، Service و ترتیب Rule کافی نیست |
| Trusted Host | Administrator Account | مشخص میکند از چه Sourceهایی ورود به سیستم مجاز است | برای همه مدلهای احراز هویت مانند SSO بهطور مستقیم قابل اعمال نیست و قبل از ورود به صفحه لاگین، تمام Local-in Traffic را پوشش نمیدهد |
| Local-in Policy | Policy & Objects | کنترل دقیق Source، Destination، Interface، Service، Schedule و Action برای ترافیک ورودی به FortiGate | اگر Ruleها بهدرستی مرتب نشوند یا Deny نهایی نوشته نشود، ممکن است دسترسی ناخواسته باقی بماند |
هشدار: اگر روی Interface بیرونی FortiGate دسترسی HTTPS یا SSH فعال است، به Firewall Policy معمولی تکیه نکنید. ترافیک به خود IP فایروال باید با Interface Administrative Access، Trusted Host و Local-in Policy کنترل شود.
5. قابلیتهای مهم FortiOS 7.6 برای Local-in Policy
در FortiOS 7.6، Fortinet چند قابلیت مهم را برای Local-in Policy برجسته کرده است تا طراحی امنتر و عیبیابی دقیقتری فراهم شود.
5.1 پشتیبانی GUI برای ساخت Local-in Policy
در FortiOS 7.6 امکان ساخت و ویرایش Local-in Policy از طریق GUI وجود دارد. در GUI میتوان بین Local-In Policy برای IPv4 و Local-In Policy برای IPv6 تفکیک قائل شد و Ruleهای مربوط به هرکدام را جدا ساخت.
Policy & Objects > Local-In Policy
5.2 Default Local-in Policy برای منابع مخرب
در FortiOS 7.6.1، یک Default Local-in Policy برای افزایش امنیت اضافه شده است که از ISDB برای منابعی مانند Malicious-Malicious.Server، Tor-Exit.Node و Tor-Relay.Node استفاده میکند. هدف این Rule جلوگیری از دسترسی منابع شناختهشده مخرب به Interfaceهای FortiGate روی هر سرویس و پورت است.
نکتهاین Rule برای کارخانه یا VDOM جدید اضافه میشود. برای FortiOSهایی که ISDB را بهعنوان Source در Local-in Policy پشتیبانی میکنند، میتوان این Rule را بهصورت دستی اضافه کرد.
5.3 Logging بهصورت Per Policy
در FortiOS 7.6، میتوان Logging مربوط به Local-in Traffic را دقیقتر و بهصورت Per Policy فعال کرد. این قابلیت برای عیبیابی و مستندسازی تلاشهای دسترسی غیرمجاز و حملات به Management Plane بسیار کاربردی است.
5.4 Virtual Patching روی Local-in Management Interface
در Local-in Policy میتوان از Virtual Patching برای کاهش ریسک آسیبپذیریهایی که خود FortiGate را هدف میگیرند استفاده کرد. در این حالت Ruleهای Vulnerability روی Local-in Traffic برای یک Interface مشخص بررسی میشوند و ترافیک Match شده Dropped میشود.
5.5 استفاده از Internet Service بهعنوان Source
یکی از قابلیتهای مهم، امکان استفاده از Internet Service بهعنوان Source در Local-in Policy است. این موضوع برای سناریوهایی مانند بلاک کردن منابع Tor، منابع Malicious یا سرویسهای مشخصشده در ISDB کاربرد دارد.
6. روش طراحی امن Local-in Policy
طراحی Local-in Policy با دید Management Plane Protection انجام میشود. هدف صرفاً نوشتن یک Rule نیست، بلکه مشخص کردن دقیق اینکه چه کسی، از کدام Interface، به کدام سرویس FortiGate دسترسی پیدا کند است.
اصل اول: اول Allowهای محدود، بعد Denyهای عمومی
برای سرویسهایی مانند HTTPS، SSH، SNMP و PING بهتر است ابتدا Sourceهای مجاز را Allow کنید و سپس یک Rule عمومی برای Deny کردن Sourceهای دیگر اضافه کنید. داشتن فقط Allow بهتنهایی ممکن است بسته به وضعیت Administrative Access و Ruleهای موجود، منجر به دسترسی ناخواسته شود.
اصل دوم: برای هر Interface جدا فکر کنید
ریسکهای Interface داخلی و Interface اینترنتی یکسان نیستند. روی WAN دسترسی مدیریتی باز نکرده یا محدود به منابع معتبر باشد. روی Interfaceهای مدیریتی داخلی هم بهتر است تنها Subnet ادمینها یا سامانههای مانیتورینگ مجاز باشند.
اصل سوم: سرویسها را جدا کنید
برای HTTPS، SSH، PING، SNMP و VPN، Ruleهای جداگانه ایجاد کنید تا Logها واضحتر باشند و Troubleshooting سادهتر شود و از باز یا بسته شدن ناخواسته سرویسها جلوگیری شود.
اصل چهارم: Local-in Policy جایگزین Hardening نیست
Local-in Policy باید همزمان با اقداماتی مانند غیرفعالسازی سرویسهای غیرضروری روی Interface، تغییر پورتهای مدیریتی در صورت نیاز، استفاده از Trusted Host، فعالسازی MFA برای ادمینها و بهروزرسانی FortiOS استفاده شود.
7. سناریوهای کاربردی
سناریو 1: محدود کردن GUI و SSH فقط به شبکه ادمینها
FortiGate روی Interface مدیریتی یا داخلی به HTTPS و SSH پاسخ میدهد، اما تنها Subnet ادمینها مجاز است به آن وصل شود و سایر Sourceها Deny شوند.
- Source مجاز: Subnet ادمین یا Jump Server
- Serviceهای مجاز: HTTPS و SSH
- Action برای Source مجاز: Accept
- Action برای سایر Sourceها: Deny
- Logging: برای Deny حتما فعال شود
سناریو 2: جلوگیری از Ping به Interface اینترنتی
اگر Ping روی Interface اینترنتی فعال باشد، FortiGate برای اسکنرها و مهاجمان قابل شناساییتر خواهد بود. میتوان Ping را برای همه Sourceها Deny کرد یا فقط برای Sourceهای مانیتورینگ مجاز نگه داشت.
سناریو 3: محدود کردن SNMP فقط به سرور مانیتورینگ
SNMP معمولاً برای مانیتورینگ وضعیت FortiGate استفاده میشود، اما باز بودن SNMP برای همه Sourceها میتواند منجر به افشای اطلاعات مدیریتی شود. بهتر است فقط IP سرور مانیتورینگ دسترسی داشته باشد.
سناریو 4: محدود کردن IKE/IPsec به Peerهای مشخص
اگر FortiGate نقش VPN Gateway دارد، ترافیک مذاکره VPN باید فقط از IP Peerهای معتبر مجاز باشد تا تلاشهای ناخواسته کاهش یابد.
سناریو 5: استفاده از ISDB برای بلاک منابع مخرب
برای منابع شناختهشده مخرب مانند Tor Exit Node یا Malicious Serverها، میتوان از ISDB در Local-in Policy استفاده کرد تا قبل از رسیدن به سرویسهای FortiGate، ترافیک آنها Drop شود.
8. مراحل GUI در FortiOS 7.6
برای ساخت Local-in Policy در FortiOS 7.6 از مسیر زیر استفاده کنید
Policy & Objects > Local-In Policy
مراحل کلی به شکل زیر است
- ابتدا Address Object مربوط به Source مجاز را بسازید.
- وارد بخش Local-In Policy شوید.
- برای IPv4 از تب Local-In Policy و برای IPv6 از تب IPv6 Local-In Policy استفاده کنید.
- Interface موردنظر را انتخاب کنید.
- Source، Destination، Schedule و Service را مشخص کنید.
- Action را روی Accept یا Deny بگذارید.
- برای Ruleهای حساس، Logging را فعال کنید.
نکته مهمقبل از اعمال Ruleهای Deny روی دسترسی مدیریتی، حتماً یک Session مدیریتی جایگزین یا دسترسی کنسول داشته باشید. اشتباه در Local-in Policy میتواند باعث قطع دسترسی ادمین به FortiGate شود.
9. نمونه CLIهای کاربردی
9.1 ساخت Address Object برای شبکه ادمینها
در این مثال، شبکه ادمینها برابر با 10.10.10.0/24 در نظر گرفته شده است.
config firewall address edit "ADMINS_10.10.10.0_24" set subnet 10.10.10.0/24 next end
9.2 Allow کردن HTTPS و SSH فقط از شبکه ادمینها
این Rule اجازه میدهد فقط شبکه ادمینها روی Interface مشخصشده به HTTPS و SSH خود FortiGate وصل شوند.
config firewall local-in-policy edit 10 set intf "port1" set srcaddr "ADMINS_10.10.10.0_24" set dstaddr "all" set action accept set service "HTTPS" "SSH" set schedule "always" set logtraffic enable set comments "Allow admin access from trusted admin subnet" next end
9.3 Deny کردن HTTPS و SSH برای سایر Sourceها
بعد از Rule مجاز، یک Rule عمومی برای Deny کردن سایر Sourceها قرار میگیرد. این Rule باید بعد از Allow Rule قرار داشته باشد.
config firewall local-in-policy edit 20 set intf "port1" set srcaddr "all" set dstaddr "all" set action deny set service "HTTPS" "SSH" set schedule "always" set logtraffic enable set comments "Deny admin access from untrusted sources" next end
9.4 اجازه Ping فقط از سرور مانیتورینگ
در این مثال فقط یک IP مانیتورینگ اجازه Ping دارد و سایر Sourceها برای PING Deny میشوند.
config firewall address edit "MONITORING_10.20.20.10" set subnet 10.20.20.10/32 next end
config firewall local-in-policy edit 30 set intf "port1" set srcaddr "MONITORING_10.20.20.10" set dstaddr "all" set action accept set service "PING" set schedule "always" set logtraffic enable set comments "Allow ping from monitoring server" next edit 31 set intf "port1" set srcaddr "all" set dstaddr "all" set action deny set service "PING" set schedule "always" set logtraffic enable set comments "Deny ping from other sources" next end
9.5 اضافه کردن Default Local-in Policy برای منابع مخرب ISDB
اگر در سناریوی شما ISDB بهعنوان Source پشتیبانی میشود، میتوانید مشابه زیر اضافه کنید
config firewall local-in-policy edit 1 set intf "any" set dstaddr "all" set internet-service-src enable set internet-service-src-name "Malicious-Malicious.Server" "Tor-Exit.Node" "Tor-Relay.Node" set service "ALL" set schedule "always" set action deny set logtraffic enable set comments "Block known malicious sources to FortiGate local services" next end
9.6 فعال کردن Logging بهصورت Per Policy
میتوان Logging را بهطور Per Policy فعال کرد و یا به شکل Global تنظیم نمود. برای فعالسازی Per Policy از این دستورات استفاده کنید
config log setting set local-in-policy-log enable end
config firewall local-in-policy edit 20 set logtraffic enable next end
9.7 بررسی Ruleها در CLI
config show firewall local-in-policy
config firewall local-in-policy6
10. Logging و عیبیابی Local-in Policy
یکی از اشتباهات رایج عدم وجود Logging کافی است. در FortiOS 7.6 میتوان Local Traffic Logging را به صورت Global یا Per Policy فعال کرد. برای امنیت، Per Policy معمولاً روشنتر است.
Log & Report > Log Settings > Global Settings > Local traffic logging > Per policy
در CLI میتوان از دستور زیر استفاده کرد
config log setting set local-in-policy-log enable end
عیبیابی با Debug Flow
اگر ترافیکی که باید Block شود عبور میکند یا ترافیک مجاز به درستی Allow نمیشود، از Debug Flow استفاده کنید. در خروجی، Dropped شدن معمولاً با عبارتی مشابه زیر نمایش داده میشود
diagnose debug reset diagnose debug flow filter addr 10.10.10.12 diagnose debug flow filter proto 1 diagnose debug enable diagnose debug flow trace start 10
نمونه خروجی ممکن است مشابه
fw_local_in_handler line=545 msg="iprope_in_check() check failed on policy 3, drop"
11. Best Practice برای Local-in Policy
- روی Interfaceهای اینترنتی تا حد امکان Administrative Access مانند HTTPS و SSH را بسته یا محدود کنید.
- در صورت نیاز، Source را با Local-in Policy و Trusted Host محدود کنید.
- برای HTTPS، SSH، SNMP، PING و VPN Ruleهای جدا بنویسید.
- Allowهای محدود را بالاتر و Denyهای عمومی را پایینتر قرار دهید.
- برای سرویسهای حساس، لاگ Deny فعال باشد.
- SNMP را فقط از IPهای سرورهای مانیتورینگ مجاز کنید.
- IPsec VPN فقط با Peerهای معتبر مجاز باشد، در صورت امکان.
- ISDB را برای منابع مخرب بررسی کنید.
- بعد از تغییرات، از یک مسیر مدیریتی جایگزین یا کنسول مطمئن باشید.
- بعد از Upgrade FortiOS، Local-in Policyها، Logging و دسترسیهای Interface را دوباره بررسی کنید.
12. چکلیست پیادهسازی Local-in Policy
| مورد | وضعیت مطلوب |
|---|---|
| Interfaceهای اینترنتی | HTTPS و SSH روی WAN غیرفعال باشد یا فقط از Sourceهای مشخص مجاز باشد |
| Admin Access | Sourceهای مجاز با Address Object مشخص شده باشند |
| Trusted Host | برای ادمینهای Local و REST API تنظیم شده باشد |
| Local-in Policy | Allowهای محدود و Denyهای عمومی برای سرویسهای مدیریتی وجود داشته باشد |
| SNMP | فقط از IP سرورهای مانیتورینگ مجاز باشد |
| PING | روی WAN غیرفعال یا محدود به مانیتورینگ باشد |
| VPN | در صورت امکان فقط Peerها یا Sourceهای معتبر مجاز باشند |
| ISDB | منابع Malicious و Tor برای Local-in بررسی شده باشد |
| Logging | Local-in Policy Logging بهصورت Per Policy یا Global فعال باشد |
| تست بعد از تغییر | با Source مجاز و غیرمجاز تست شده و نتیجه در Log بررسی شده باشد |
برای ارزیابی پایداری، امنیت و نگهداری این زیرساخت، راهنمایپشتیبانی شبکهرا نیز مطالعه کنید.