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

وب سرور تمامی درخواست ها را با IP فورتی وب می شناسد.

در هنگام انجام عملیات IP فورتی وب را دارد و آی پی اصلی کلاینت را ندارد. با استفاده از قابلیت X-Forwarded-For آی پی اصلی کاربر را نیز ارسال می کنیم

به طور مثال برای بحث لاگ گیری این عملیات مهم است. به وسیله X-Forwarded-For می توانیم IP اصلی کلاینت را به همراه این فیلد ارسال کنیم.

به طور مثال آی پی اصلی کلاینت ۱۹۲.۱۶۸.۱.۲۰ می باشد.

یک دستگاه وب پروکسی بین مسیر وجود دارد که IP را تغییر می دهد سورس این دستگاه هست: ۱۰.۰.۰.۱

آی پی اصلی کلاینت در X-Forwarded-For  قرار می گیرد.

ترافیک به سمت فورتی وب ارسال می شود

فورتی وب سورس آی پی را تغییر می دهد ۱۷۲.۱۶.۱.۱

و مقدار ۱۰.۰.۰.۱ نیز به X-Forwarded-For اضافه می کند.

بررسی نحوه ارسال ترافیک و IP با X-forwarder

قابلیت X-Forwarded-For را چگونه پیاده سازی کنیم؟

قبل از پیاده سازی این قابلیت، بهتر است یک بسته را در شرایط عادی فعال کنیم و تست بگیریم.

در بخش System قسمت  Network گزینه Packet Capture را می زنیم.

Create New را بزنید.

ایجاد یک بسته برای تست

سپس در صفحه ای که باز می شود روی پورت ۲ که پورت خروجی هست یک Packet Capture تعریف می کنیم.

تعریف یک Packet Capture

برای شروع تست را بزنید.

شروع تست از Packet Capture

سپس در مرور گر آدرس وب سرور را وارد می کنیم تا به وسیله WIRESHARK بتوانیم بسته های ارسالی را مشاهده نماییم.

درخواست کلاینت

در بررسی با WIRESHARK مشاهده می کند که سرور فقط آدرس فورتی وب را به عنوان درخواست کننده می بیند.

بررسی با wireshark

مشابه این کار را در آموزش تنظیمات بخش شبکه در FortiWeb انجام دادیم. می توانید این بخش از آموزش را به طور کامل در این قسمت ببینید.

اکنون X-Forwarded-For را تعریف می کنیم تا ببینیم چه تغییری در آی پی خواهیم داشت.

پیاده سازی قابلیت X-Forwarded-For

در بخش Server Object گزینه X-Forwarded-For را مشاهده می کنید.

گزینه Create New را بزنید و یک نام مناسب در نظر بگیرید.

پیاده سازی قابلیت X-Forwarded-For

در این قسمت، گزینه های زیر را مشاهده می کنید که درباره آنها توضیح می دهیم:

  • Add X-Forwarded-For
  • Add X-Real-IP
  • Add X-Forwarded-Proto
  • Use X-Header to Identify Original Client’s IP

Add X-Forwarded-For 

این گزینه IP اصلی بسته ها را به سرور می دهد، این IP ها  در یک آرایه ارسال می شود. به این صورت که اگر پیش از فورتی وب، دستگاه دیگری قرار داشته باشد IP آن نیز ارسال می شود.

Add X-Real-IP

با فعال کردن این گزینه نیز IP اصلی را دریافت خواهیم کرد با این تفاوت که تنها IP کلاینت را خواهیم داشت.

Add X-Forwarded-Proto

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

Use X-Header to Identify Original Client’s IP

ممکن است قبل از فورتی وب یک دستگاه دیگر این کار را انجام داده باشد، مثل دستگاه load balancer که به حالت پروکسی عمل می کند و همه درخواست ها توسط IP این دستگاه ارسال می شود.

در این حاالت اگر حمله ای رخ دهد IP که متعلق به load balancer است بلاک می شود و کل ترافیک درخواستی از سمت سایر کلاینت ها نیز بلاک خواهد شد.

فرض کنید یک کاربر خطایی انجام دهد در این صورت سورس load balancer  که برابر با ۱۰.۰.۰.۱ هست، بلاک می شود.

در این صورت کل کلاینت هایی که با استفاده از این دستگاه درخواست می فرستند بلاک می شوند.

با استفاده از فعال کردن گزینه Use X-Header to Identify Original Client’s IP برای فورتی وب مشخص می کنیم که IP اصلی دستگاه را از X-Forwarded-For بخوان و بر اساس IP اصلی  بلاک را انجام بده.

گزینه Left و Right به این منظور است که مشخص کنیم از سمت راست یا چپ اولین IP را بخواند.

بررسی گزینه های X-Forwarded-For

بعد از زدن OK گزینه Create New فعال می شود

Create New را زده و IP دستگاهی که کار X-Forwarded-For را انجام می دهد را وارد کنید (این کار را برای امنیت بیشتر انجام می دهیم)

فعال شدن گزینه OK
وارد کردن IP دستگاه

تنظیم X-Forwarded-For  در Web Protection Profile

بعد از کانفیگ X-Forwarded-For به قسمت Web Protection Profile رفته و گزینه X-Forwardeder را پیدا کرده و از لیست X-Forwarded مورد نظر را انتخاب می کنیم. در انتها OK می زنیم.

.

Web Protection Profile
تنظیم X-Forwarded-For در Web Protection Profile

تست مشاهده IP کلاینت در X-Forwarded-For

مجددا به قسمت Capture رفته و بار دیگر از بسته ای که ساخته بودیم تست می گیریم.

گرفتن تست از Packet Capture

اکنون در مرور گر آدرس وب سرور را یک بار دیگر رفرش می کنیم.

حال می توانید در WIRESHARK  IP ها را مشاهده کنید.

همانطور که می بیند Source و Destination فرقی نکرده است ولی در داخل محتوا می توانید X-Forwarded-For را مشاهده کنید.

مشاهده X-Forwarded-For در wireshark

امکان x-forwarded-for در فورتی وب به منظور اینکه IP کلاینت ها را در قالب این متغیر به اطلاع سرور برسانیم می باشد.

با انجام این کار دیگر همه  ریکوئست های کاربران با سورس آی پی فورتی وب به سرور نمی رسد (هر کلاینت با IP خودش شناخته خواهد شد) و سرور می تواند تمایزی بین کاربران را تشخیص دهد.