
{"id":6931,"date":"2022-03-03T22:52:20","date_gmt":"2022-03-03T22:52:20","guid":{"rendered":"https:\/\/rax-stg-wp-aws.com\/blogs\/url-firewall-for-external-node-dmz\/"},"modified":"2026-11-03T19:27:17","modified_gmt":"2026-11-03T19:27:17","slug":"url-firewall-for-external-node-dmz","status":"publish","type":"blogs","link":"https:\/\/www.rackspace.com\/en-gb\/blogs\/url-firewall-for-external-node-dmz\/","title":{"rendered":"URL FIREWALL for External Node\/DMZ"},"content":{"rendered":"<p>When configuring Oracle E-Business Suite in a DMZ configuration, you can deploy firewalls at different levels to restrict access to only the web pages required for the business.<\/p>\n<p>The URL Firewall blocks access to unnecessary web pages in modules that are not installed, configured, or licensed.<\/p>\n<h3>Business Impact<\/h3>\n<p>The external DMZ environment within the Oracle EBS architecture allows access to over 15,000 web pages when very less web pages are required. An attacker may be able to exploit security vulnerabilities present in any of these 15,000 web pages to access the core EBS application and the modules that support the business.<\/p>\n<p>Following steps help enable firewall in a DMZ setup.<\/p>\n<p><em>Rule 1<\/em>&nbsp;says when the user type \/ after the hostname, d<\/p>\n<p>omain name and<\/p>\n<p>#Include URLs for product IBE (iStore) with CZ<\/p>\n<p>Enabled all the pages mentioned inside the IBE product section.<\/p>\n<p>port number and then \/; this will redirect user to the \/OA_HTML\/ AppsLocalLogin.jsp and will stop applying any rewrite rule.<\/p>\n<p><em>Rule 2<\/em>&nbsp;Display same url as mentioned on the left, \/OA_HTML\/jsp\/fnd\/AOLDataStreaming.jsp<\/p>\n<p>[R,L] at the end R- Means Rewrite L- Last rewrite rule (No more rule to apply after this)<\/p>\n<p><em>Rule 1<\/em>&nbsp;says when the user type \/ after the hostname, domain name and port number and then \/; this will redirect user to the \/OA_HTML\/ AppsLocalLogin.jsp and will stop applying any rewrite rule.<\/p>\n<p><em>Rule 2<\/em>&nbsp;Display same url as mentioned on the left, \/OA_HTML\/jsp\/fnd\/AOLDataStreaming.jsp<\/p>\n<p>[R,L] at the end R- Means Rewrite L- Last rewrite rule (No more rule to apply after this)<\/p>\n<p><em>Rule 1<\/em>&nbsp;says when the user type \/ after the hostname, domain name and port number and then \/; this will redirect user to the \/OA_HTML\/ AppsLocalLogin.jsp and will stop applying any rewrite rule.<\/p>\n<p><em>Rule 2<\/em>&nbsp;Display same url as mentioned on the left, \/OA_HTML\/jsp\/fnd\/AOLDataStreaming.jsp<\/p>\n<p>[R,L] at the end R- Means Rewrite L- Last rewrite rule (No more rule to apply after this)<\/p>\n<p>&nbsp;<strong>For more understanding of the concept.<\/strong><\/p>\n<p>. (dot) means matches any characters<\/p>\n<p>[] specifies a class<\/p>\n<p>[a-z] matches any lowercase characters from a to z<\/p>\n<p>[a-zA-Z0-9] matches any character upper or lower case from a to z and numeric 0 to 9<\/p>\n<p>[abc$] matches a or b or c or $<\/p>\n<p>[^0-9] matches anything except digit 0 to 9. Here ^ is negation<\/p>\n<p>Meta Characters in Regular Expressions<\/p>\n<p>^ \u2013 Matches Start of a line<\/p>\n<p>$ \u2013 Matches End of line<\/p>\n<p><em>Quantifiers for Characters<\/em><\/p>\n<p>? matches zero or one instance of character<\/p>\n<p><code>+<\/code>&nbsp;matches one or more instance of character<\/p>\n<p><code>*<\/code>&nbsp;matches zero or more instance of character<\/p>\n<h4 id=\"2-modify-file-ora_config_home1013apacheapacheconfurl_fwconf-commentdisable-the-required-jsps-in-the-firewall\">2) MODIFY FILE $ORA_CONFIG_HOME\/10.1.3\/APACHE\/APACHE\/CONF\/URL_FW.CONF COMMENT\/DISABLE THE REQUIRED JSPS IN THE FIREWALL<\/h4>\n<p>Allowing the following jsp pages by UN-comment them from the url_fw.conf file:<\/p>\n<p>Under section \u2013 #Include URLS for login method: LOCAL<\/p>\n<p>Before: RewriteRule ^\/$ https:\/\/&lt;ISTORE_URL&gt;:\/OA_HTML\/AppsLogin [R,L]<\/p>\n<p>#RewriteRule ^\/OA_HTML\/OA.jsp$ &#8211; [L]<\/p>\n<p>#RewriteRule ^\/OA_HTML\/RF.jsp$ &#8211; [L]<\/p>\n<p>#RewriteRule ^\/OA_HTML\/AppsLocalLogin.jsp$ &#8211; [L]<\/p>\n<p>#RewriteRule ^\/OA_HTML\/AppsLocalLogout.jsp$ &#8211; [L]<\/p>\n<p>RewriteRule ^\/OA_HTML\/OALogout.jsp$ &#8211; [L]<\/p>\n<p>RewriteRule ^\/OA_HTML\/OAErrorPage.jsp$ &#8211; [L]<\/p>\n<p>RewriteRule ^\/OA_HTML\/OAErrorDetailPage.jsp$ &#8211; [L]<\/p>\n<p>#RewriteRule ^\/OA_HTML\/OAExport.jsp$ &#8211; [L]<\/p>\n<p>#RewriteRule ^\/OA_HTML\/OADownload.jsp$ &#8211; [L]<\/p>\n<p>#RewriteRule ^\/OA_HTML\/fndvald.jsp$ &#8211; [L]<\/p>\n<p>#RewriteRule ^\/OA_HTML\/AppsLogin$ &#8211; [L]<\/p>\n<p>RewriteRule ^\/OA_HTML\/AppsLogout$ &#8211; [L]<\/p>\n<p><strong>After:<\/strong><\/p>\n<p>RewriteRule ^\/$ https:\/\/&lt;ISTORE_URL&gt;:\/OA_HTML\/AppsLogin [R,L]<\/p>\n<p>RewriteRule ^\/OA_HTML\/OA.jsp$ &#8211; [L]<\/p>\n<p>RewriteRule ^\/OA_HTML\/RF.jsp$ &#8211; [L]<\/p>\n<p>RewriteRule ^\/OA_HTML\/AppsLocalLogin.jsp$ &#8211; [L]<\/p>\n<p>RewriteRule ^\/OA_HTML\/AppsLocalLogout.jsp$ &#8211; [L]<\/p>\n<p>RewriteRule ^\/OA_HTML\/OALogout.jsp$ &#8211; [L]<\/p>\n<p>RewriteRule ^\/OA_HTML\/OAErrorPage.jsp$ &#8211; [L]<\/p>\n<p>RewriteRule ^\/OA_HTML\/OAErrorDetailPage.jsp$ &#8211; [L]<\/p>\n<p>RewriteRule ^\/OA_HTML\/OAExport.jsp$ &#8211; [L]<\/p>\n<p>RewriteRule ^\/OA_HTML\/OADownload.jsp$ &#8211; [L]<\/p>\n<p>#RewriteRule ^\/OA_HTML\/fndvald.jsp$ &#8211; [L]<\/p>\n<p>RewriteRule ^\/OA_HTML\/AppsLogin$ &#8211; [L]<\/p>\n<p>RewriteRule ^\/OA_HTML\/AppsLogout$ &#8211; [L]<\/p>\n<p><strong>We can keep everything enabled inside the following mentioned sections<\/strong><\/p>\n<p>Please note, since we are using product IBE, we have enabled all the pages.<\/p>\n<p>In this section, and along with the same we have enabled common pages (not related to product) as well.<\/p>\n<p><drupal-entity data-align=\"center\" data-embed-button=\"media_entity_embed\" data-entity-embed-display=\"view_mode:media.full\" data-entity-type=\"media\" data-entity-uuid=\"2acfca18-1b9b-4fff-873a-1545783753dc\" data-langcode=\"en\"><\/drupal-entity><\/p>\n<p>#Include URLs for product IBE (iStore) with CZ<\/p>\n<p>Enable all the pages mentioned inside the IBE product section.<\/p>\n<p><strong>Enabled this entry to get pass the HTTP 400 Bad Request error and add to cart started working fine.<\/strong><\/p>\n<p>RewriteRule ^\/OA_HTML\/JavaScriptServlet* &#8211; [L]<\/p>\n<p>RewriteRule ^\/OA_HTML\/ibe*.js$ &#8211; [L]<\/p>\n<h4 id=\"in-case-you-need-to-disable-the-firewall-for-the-cz-product-complete-the-following-steps\">IN CASE YOU NEED TO DISABLE THE FIREWALL FOR THE CZ PRODUCT, COMPLETE THE FOLLOWING STEPS:<\/h4>\n<p>#Include URLs for product IBE (iStore) with CZ<\/p>\n<p>Enable all the pages mentioned inside.<\/p>\n<h4 id=\"3-network-team-to-change-the-heartbeat-for-the-load-balancer-so-they-do-it-using-the-indexhtml\">3) NETWORK TEAM IS REQUIRED TO CHANGE THE HEARTBEAT FOR THE LOAD BALANCER SO THEY DO IT USING THE INDEX.HTML<\/h4>\n<p>After the firewall was enabled on the&nbsp;iStore backend server, the LB marked the service as \u201cDown\u201d. It seems the firewall change produced a redirect and changed the response code from a 200 to a 302. The index.html page was permitted and the&nbsp;monitor was successfully reconfigured to check \u201c\/index.html\u201d.<\/p>\n<p><em>Before index.html was used<\/em><\/p>\n<p><drupal-entity data-align=\"center\" data-embed-button=\"media_entity_embed\" data-entity-embed-display=\"view_mode:media.full\" data-entity-type=\"media\" data-entity-uuid=\"43ef42c4-2e85-4107-8577-2681085612b6\" data-langcode=\"en\"><\/drupal-entity><\/p>\n<p>HTTP\/1.1 302 Found<\/p>\n<p>Date: Mon, 20 Jul 2020 20:55:50 GMT<\/p>\n<p>Location : https:\/\/&lt;URL.HOSTNAME&gt;:\/OA_HTML\/AppsLogin<\/p>\n<p>Content-Type: text\/html; charset=iso-8859-1<\/p>\n<p><em>After index.html was used<\/em><\/p>\n<p>curl -Ik https:\/\/&lt;IP_ADDRESS&gt;:\/index.html<\/p>\n<p>HTTP\/1.1 200 OK<\/p>\n<p>Date: Mon, 20 Jul 2020 21:10:27 GMT<\/p>\n<p>X-Content-Type-Options: nosniff<\/p>\n<p>Last-Modified: Mon, 20 Jul 2020 20:40:39 GMT<\/p>\n<p>ETag: \u201chd4503-7wd-5f98747\u201d<\/p>\n<p>Accept-Ranges: bytes<\/p>\n<p>Content-Length: 1275<\/p>\n<p>Content-Type: text\/html<\/p>\n<h4 id=\"4-troubleshooting-tips-in-case-any-specific-page-is-not-working-custom-page-or-the-seed-page\">4) TROUBLESHOOTING TIPS IN CASE ANY SPECIFIC PAGE IS NOT WORKING, CUSTOM PAGE OR THE SEED PAGE.<\/h4>\n<p>Open IE and navigate to the page having issue in the istore.<\/p>\n<p>Press F12 -&gt; Navigate to the Network tab to find out the exact page in question this can be any page like JavaScriptServlet* , ibe* or *.jsp<\/p>\n<p>Once the exact page with issues is identified, you need to add the page as shown in the following snapshot.<\/p>\n<p>$ORA_CONFIG_HOME\/10.1.3\/Apache\/Apache\/conf\/url_fw.conf file, bounce the services to make sure now the page is working fine.<\/p>\n<p><drupal-entity data-align=\"center\" data-embed-button=\"media_entity_embed\" data-entity-embed-display=\"view_mode:media.full\" data-entity-type=\"media\" data-entity-uuid=\"f25d5f1c-7df2-4b21-9016-e9d4cd38359f\" data-langcode=\"en\"><\/drupal-entity><\/p>\n<p>&nbsp;Example of entries include.<\/p>\n<p>RewriteRule ^\/OA_HTML\/JavaScriptServlet* &#8211; [L]<\/p>\n<p>RewriteRule ^\/OA_HTML\/ibe*.js$ &#8211; [L]<\/p>\n<p>RewriteRule ^\/OA_HTML\/&lt;custom_pagename&gt;.*.jsp$ &#8211; [L]<\/p>\n<p><strong>Please note<\/strong>&nbsp;&#8211; These entries need to be added in the appropriate place in the url_fw.conf file.&nbsp;<strong>Once all the settings are complete and verified and the pages are working fine, you can make the changes in the template file url_fw_conf_1013.tmp<\/strong>&nbsp;($FND_TOP\/admin\/template\/url_fw_conf_1013.tmp ) and copy the file to custom folder ($FND_TOP\/admin\/template\/custom\/url_fw_conf_1013.tmp ) and run&nbsp;<strong>autoconfig.<\/strong><\/p>\n<h3 id=\"conclusion\">Conclusion<\/h3>\n<p>Firewall controls access between the internet and internal network or intranet (within the organization). Firewall dictates which external communications will be permitted into the organization network, and which will be blocked. A well-designed firewall can prevent numerous common internet-based security attacks.<\/p>\n<p>By following and completing the above mentioned steps, one can systematically enable the firewall in a DMZ setup and debug the issue.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>URL FIREWALL for External Node\/DMZ<\/p>\n","protected":false},"author":2,"featured_media":6933,"menu_order":0,"comment_status":"open","ping_status":"open","template":"","format":"standard","meta":{"content-type":"","nid":"25724","content_type":"blog","created_by":"10130","authored_on":"2023-07-11T21:52:20+00:00","field_article_industries":"","tag_category":"Technical","field_blog_author_text":"by Rackspace Technology Staff","seo_description":"Enhance Oracle E-Business Suite security in a DMZ setup with a URL Firewall. Block access to unnecessary web pages for added security.\r\n","field_featured_image":"","insights_image":"\/wp-content\/uploads\/2026\/blog_technical_images\/25724-insights_image-oracle-technical-blog-1-insights.jpg","field_partners":"","rxt_platforms":"Oracle","product":"","publisheddate":"2022-03-03T22:52:20","rxt_solutions":"Databases, Security","opengraph_tag":"","x_tag":"","teaser_flag":"Technical Blog","seo_titile":"Oracle E-Business Suite with FIREWALL in DMZ Configurations","field_topics":"","field_slug":"url-firewall-for-external-node-dmz","footnotes":""},"categories":[178],"tags":[204],"class_list":["post-6931","blogs","type-blogs","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","tag-technical"],"_links":{"self":[{"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/blogs\/6931","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/blogs"}],"about":[{"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/types\/blogs"}],"author":[{"embeddable":true,"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/comments?post=6931"}],"version-history":[{"count":1,"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/blogs\/6931\/revisions"}],"predecessor-version":[{"id":6932,"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/blogs\/6931\/revisions\/6932"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/media\/6933"}],"wp:attachment":[{"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/media?parent=6931"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/categories?post=6931"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/tags?post=6931"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}