Posts

سناریوی کاملا عملی برای پیاده سازی URL Filtering در روترهای سیسکو

در قسمت قبلی مقاله با URL Filtering و مفاهیم آن آشنا شدیم و همانطور که قول داده بودیم در این قسمت می خواهیم یک سناریو را به صورت عملی پیاده سازی می کنیم تا با مفاهیم آن بیشتر آشنا شویم :
با توجه به شکل زیر ، می خواهیم PC نتواند سایت های tosinso.com و msn.com را باز کند ولی بتواند تمام سایت های دیگر را باز کند.

Image

در ابتدا به اینترفیس ها IP اختصاص می دهیم و NAT را روی روتر فعال می کنیم و از یک Static Route برای ارسال ترافیک به سمت اینترنت استفاده می کنیم :

Router(config)#interface FastEthernet0/0
Router(config-if)#description to LAN
Router(config-if)#ip address 192.168.1.1 255.255.255.0
Router(config-if)#ip nat inside
Router(config)#interface FastEthernet0/1
Router(config-if)#description to internet
Router(config-if)#ip address 5.5.5.1 255.255.255.0
Router(config-if)#ip nat outside
Router(config)#access-list 1 permit 192.168.1.0 0.0.0.255
Router(config)#ip nat pool home 5.5.5.1 5.5.5.1 prefix-length 24
Router(config)#ip nat inside source list 1 pool home overload
Router(config)#ip route 0.0.0.0 0.0.0.0 fastethernet 0/1

در حال حاضر PC به تمام سایت های دسترسی دارد. مرحله بعدی اجرای Zone Based layer 3/4 firewall است که قبلا توضیح داده شده است برای آشنایی با عملکرد آن پیشنهاد می شود که آن مبحث را مطالعه فرمائید. دستورات اجرای Zone Based layer 3/4 firewall به صورت زیر است :

Router(config)#class-map type inspect match-any httpc
Router(config-cmap)#match protocol http
Router(config)#class-map type inspect match-any dnsc
Router(config-cmap)#match protocol icmp
Router(config-cmap)#match protocol dns
Router(config-cmap)#match protocol https
Router(config)#policy-map type inspect in-out
Router(config-pmap)#class type inspect httpc
Router(config-pmap-c)#inspect
Router(config-pmap)#class type inspect dnsc
Router(config-pmap-c)#inspect
Router(config-pmap)#class class-default
Router(config-pmap-c)#drop
Router(config)#zone security inside
Router(config)#zone security outside
Router(config)#zone-pair security inside-outside source inside destination outside
Router(config-sec-zone-pair)#service-policy type inspect in-out
Router(config)#interface FastEthernet0/0
Router(config-if)#zone-member security inside
Router(config)#interface FastEthernet0/1
Router(config-if)#zone-member security outside

حالا باید تنظیمات مربوط به URL Filtering را انجام دهیم :
در ابتدا URL Filter Policy Parameter map را تعریف می کنیم و در آنرا Alert را فعال می کنیم و پیغام Access Denied را جهت نمایش به کاربر تعیین می کنیم :

Router(config)#parameter-map type urlfpolicy local lupm
Router(config-profile)#alert on
Router(config-profile)#block-page message “Access Denied”

سپس URL Filter – GLOB Parameter map را تعریف می کنیم و در آن چند الگو برای سایت های tosinso.com و msn.com تعریف کنیم :

Router(config)#parameter-map type urlf-glob http-w
Router(config-profile)#pattern tosinso.com
Router(config-profile)#pattern msn.com
Router(config-profile)#pattern *msn.com

بعد یک URL Filter – GLOB Parameter map دیگر تعریف می کنیم و در آن یک الگو تعریف می کنیم که با تمام سایت ها مطابقت پیدا کند :

Router(config)#parameter-map type urlf-glob all
Router(config-profile)#pattern *

حالا یک Class map تعریف می کنیم که ترافیک را با parameter map که با نام http-w در بالا تعریف کردیم مقایسه کند :

Router(config)#class-map type urlfilter match-any ucm
Router(config-cmap)#match  server-domain urlf-glob http-w

یک Class map دیگر هم تعریف می کنیم که ترافیک را با parameter map که با نام all در بالا تعریف کردیم مقایسه کند :

Router(config)#class-map type urlfilter match-any ucm2
Router(config-cmap)#match  server-domain urlf-glob all

سپس یک Policy map تعریف می کنیم و در آن واکنشی که نسبت به دو Class map که در بالا تعریف کردیم را مشخص می کنیم و همچنین URL Filter Policy Parameter map را به آن اختصاص می دهیم :

Router(config)#policy-map type inspect urlfilter upm
Router(config-pmap)#parameter type urlfpolicy local lupm
Router(config-pmap)#class type urlfilter ucm
Router(config-pmap-c)#log
Router(config-pmap-c)#reset
Router(config-pmap)#class type urlfilter ucm2
Router(config-pmap-c)#log
Router(config-pmap-c)#allow

آخرین مرحله فعال کردن URL Filtering است در اینجا Policy map که برای URL Filtering با نام upm تعریف کردیم را به Policy map مربوط به Zone Based layer 3/4 firewall که با نام in-out تعریف کرده ایم اختصاص می دهیم :

Router(config)#policy-map type inspect in-out
Router(config-pmap)#class type inspect httpc
Router(config-pmap-c)#inspect
Router(config-pmap-c)#service-policy urlfilter upm

تنظیمات کامل شده است و از این لحظه همانطور که در تصویر می بینید امکان دسترسی به سایت های ذکر شده وجود ندارد.

Image

امیدوارم که این مقاله مفید واقع شده باشد.

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

روترهای سیسکو می توانند به عنوان یک فایروال لایه 7 عمل کنند. این قابلیت به روتر این اجازه را می دهد که ترافیک را براساس پارامترهای لایه 5 تا 7 کنترل کند. اجرای این فایروال بر پایه Zone-Based layer 3/4 Firewall انجام می گیرد.
برخی از پروتکل ها که توسط (Application Inspection and Control (AIC پشتیبانی می شوند به شرح زیر است :

  • America Online (AOL) Instant Messenger
  • eDonkey P2P protocol
  • FastTrack traffic P2P protocol
  • Gnutella Version 2 traffic P2P protocol
  • H.323 VoIP Protocol version 4
  • (Hypertext Transfer Protocol (HTTP) (URL filtering and HTTP inspection
  • (Internet Message Access Protocol (IMAP
  • I Seek You (ICQ) IM protocol
  • Kazaa Version 2 P2P protocol
  • MSN Messenger IM protocol
  • (Post Office Protocol version 3 (POP3
  • (Session Initiation Protocol (SIP
  • (Simple Mail Transfer Protocol (SMTP
  • (Sun RPC (SUNRPC
  • Windows Messenger IM protocol
  • Yahoo IM protocol

در این مقاله می خواهیم URL filter را مورد بحث قرار می دهیم

URL Filter :


URL Filter این قابلیت را به ما می دهد که که ترافیک مربوط به URL خاص را Drop ، Pass یا log گیری کنیم. این قابلیت قدرتمند می تواند شامل مطابقت با یک آدرس ساده مثل یک آدرس دامینی مانند www.tosinso.com باشد یا به صورت پیچیده براساس مطابقت با یک گروه خاص از سایت ها مانند سایت های Game باشد. برای استفاده از حالت های پیچیده مثل تشخیص براساس گروه های خاص از یک سرور خارجی مانند Websense که دارای یک دیتابیس در این زمینه است استفاده می شود. برخلاف Zone-Based layer 3/4 Firewall که در مقاله قبلی توضیح داده شد در URL Filtering نیاز به استفاده از Parameter map داریم. Parameter Map برای مشخص کردن پارامترهای خاص که توسط Class map و Policy map اشاره خواهد شد مورد استفاده قرار می گیرد.
Parameter Map Configuration :
دو نوع Parameter map برای URL Filter قابل استفاده و تنظیم است :

  • URL Filter Policy Parameter map : تنظیم پارامترهای مختلف مثل پیغامی که در زمان فیلتر شدن URL نمایش داده می شود.
  • URL Filter – GLOB Parameter map : در این حالت لیستی از دامین ها ، URLها یا کلمات خاص در URL تهیه می شود و از آن به عنوان whitelist یا blacklist استفاده می شود.

گزینه های موجود برای URL Filter Policy Parameter map بسته به نوع URL Filtering که می خواهیم استفاده کنیم می تواند Local ، N2H2 یا Websense باشد. با استفاده از N2H2 و Websense می توانیم از دیتابیس آنها که دارای دسته بندی های مختلف است برای URL Filtering استفاده کنیم.
نمونه دستورات برای URL Filter Policy Parameter map به صورت زیر است:

Router(config)# parameter-map type urlfpolicy local local-urlf-parameter-map 
Router(config-profile)# alert on 
Router(config-profile)# block-page message “Access Denied”

URL Filter – GLOB Parameter map برای تهیه لیست از دامین ها یا کلمات کلیدی که قرار است به عنوان الگو با URLها مقایسه شوند به کار می رود. این الگوها بسیار انعصاف پذیر هستند. به صورت مثال به صورت ساده برای یک دامین مثل سایت tosinso.com یا با استفاده از کارکترهای خاص برای مشخص کردن حالت های خاصی از آدرس های دامینی و یا پیدا کردن یک کلمه در یک URL ، قابل انجام است. در جدول زیر کاراکترهای که برای مشخص کردن الگو می توانند به ما کمک کنند نمایش داده شده است :

Image

شرح کاراکترهای جدول فوق به شرح زیر است :

  • کاراکتر ستاره : این کاراکتر به معنی مطابقت با هر چیزی است به طور مثال الگوی * pattern با همه دامین ها مطابقت پیدا می کند.
  • [abc] : در این الگو هر یک از سه کارکتر a و b و c وجود داشته باشد با آنها مطابقت پیدا می کند به طور مثال الگوی [abc]100.com با هر سه دامین a100.com و b100.com و c100.com مطابقت پیدا می کند.
  • [a-c] : در این الگو هر یک از کارکترهای a تا c وجود داشته باشد با آنها مطابقت پیدا می کند به طور مثال الگوی [a-c]100.com با هر سه دامین a100.com و b100.com و c100.com مطابقت پیدا می کند.
  • [0-9] : در این الگو هر یک از اعداد 0 تا 9 وجود داشته باشد با آنها مطابقت پیدا می کند به طور مثال الگوی itpro[1-3].ir با هر سه دامین itpro1.ir و itpro2.ir و itpro3.ir مطابقت پیدا می کند.

استفاده از این کارکترها به ما در فیلتر کردن سایت ها کمک زیادی می کند.
نمونه دستورات URL Filter – GLOB Parameter map به صورت زیر است :

Router(config)# parameter-map type urlf-glob glob_server_parameter_map 
Router(config-profile)# pattern testing-[1-3].com 
Router(config)# parameter-map type urlf-glob glob_keyword_parameter_map 
Router(config-profile)# pattern test 
Router(config-profile)# pattern example

 

Class Map Configuration :


از Class map برای شناسایی ترافیک مشابه با الگویی که در قسمت قبلی توسط URL Filter – GLOB Parameter map تعریف کرده ایم استفاده می شود. Class map که تعریف می کنیم از نوع urlfilter است و اگر از نوع local باشد برای این class map دو گزینه وجود دارد که به شرح زیر است :

  • server domain : برای شناسایی نام دامین مورد استفاده قرار می گیرد.
  • URL keyword : برای شناسایی یک کلمه در URL مورد استفاده قرار می گیرد.

نکته : در صورت استفاده از سرورهای خارجی مثل websense برای شناسایی ترافیک یک گزینه تحت عنوان server response داریم.
نمونه دستورات Class map برای شناسایی ترافیک به صورت زیر است :

Router(config)# class-map type urlfilter url_class_map 
Router(config-cmap)# match server-domain urlf-glob glob_server_parameter_map 
Router(config-cmap)# match url-keyword urlf-glob glob_keyword_parameter_map

 

Policy Map Configuriation :


از policy map برای تعیین واکنش که نسبت به ترافیکی که توسط class map شناسایی شده است استفاده می شود. برای ترافیک شناسایی شده می توان واکنش هایی را در نظر گرفت که آنها را تشریح می کنیم :

  • Log : باعث تولید log می شود.
  • Reset : اجازه عبور ترافیک شناسایی شده را نمی دهد.
  • Allow : اجازه عبور ترافیک شناسایی شده را می دهد.

نمونه دستورات Policy map برای تعیین واکنش نسبت به ترافیک شناسایی شده به صورت زیر است :

Router(config)# policy-map type inspect urlfilter url_policy_map 
Router(config-pmap)# parameter type urlfilter local local-urlf-parametermap 
Router(config-pmap)# class type urlfilter url_class_map 
Router(config-pmap-c)# log
Router(config-pmap-c)# reset

 

فعال کردن URL Filtering :


اعمال کردن URL Filtering مقداری پیچیده است چون URL Filtering را نمی توان به صورت مستقیم به یک Zone pair اختصاص داد و باید در Class map مربوط به Zone Based layer 3/4 firewall ترافیک مربوط به http را بازرسی کرد و در Policy map مربوط به Zone Based layer 3/4 firewall باید URL Filtering را با استفاده از دستور service-policy اعمال کنیم. در ادامه یک مثال عملی را با هم اجرا می کنیم تا بهتر آنرا درک کنیم.
نمونه دستورات برای فعال کردن URL Filtering به صورت زیر است :

Router(config)# policy-map type inspect http_policy_map 
Router(config-pmap)# class http_class_map 
Router(config-pmap-c)# inspect 
Router(config-pmap-c)# service-policy urlfilter url_policy_map

 

Troubleshoot :


برای بررسی و خطایابی از دستورات زیر می توانید استفاده کنید :

Router#show class-map type urlfilter
Router#show ip trm config
Router#show ip trm subscription status
Router#show parameter-map type trend-global
Router#show parameter-map type urlf-glob
Router#show parameter-map type urlfpolicy
Router#show policy-map type inspect urlfilter
Router#show policy-map type inspect zone-pair
Router#show policy-map type inspect zone-pair urlfilter

در قسمت بعدی مقاله جهت آشنایی کامل و بهتر یک سناریو را به صورت عملی پیاده سازی می کنیم.