Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    Customizing Error Page

    Scheduled Pinned Locked Moved pfBlockerNG
    22 Posts 7 Posters 4.0k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • G
      Grunt0307
      last edited by

      Managed to get the styling about the way I want it, centered on the page and displays properly on mobile browser.
      b1800a7f-b245-491b-bfe7-3fc61b53d36d-image.png

      It's probably not the prettiest code but it works well enough

      <!DOCTYPE html>
      <html lang="en">
      <head>
              <meta name="viewport" content="width=device-width, initial-scale=1">
              <title>Page Blocked</title>
      </head>
      <style type="text/css">
              .content {
                      position: absolute;
                      top: 50%;
                      left: 50%;
                      transform: translate(-50%,-50%);
                      width: 90%;
                      padding-right: 20px;
              }
              .img {
                      display: block;
                      text-align: center;
              }
              .p {
                      text-align: center;
                      margin-block-start: initial;
                      margin-block-end: initial;
                      padding-bottom: 20px;
              }
              body {
                      font: 14px/20px Roboto, "Lucida Grande", Tahoma, Verdana, sans-serif;
                      color: #ECECEC;
                      background: #000000;
                      display: table-cell;
                      transform: translate(0%,50%);
                      text-align: center;
              }
              html {
                      display: table;
                      margin: auto;
              }
              table {
                      border-collapse: collapse;
                      border-spacing: 0;
                      background: #DEE9FF;
                      color: #000000;
                      border-color: black;
              }
              th, td {
                      padding: 5px;
                      text-align: left;
              }
              th {
                      background-color: #FF0000;
                      color: #FFFFFF;
              }
              a {
                      color: #FFFFFF;
                      font-size: 75%;
              }
      </style>
      
      <body class="content">
              <div class="img">
      <img src=" data:image/png;base64,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"/></div>
      	<div>
                      <p class="p"><strong><u><?=$ptype['HTTP_HOST']?></u></strong> has been blocked by pfSense</p>
                      <div>
                              <table>
                                      <thead>
                                              <tr id="pfb_header">
                                                      <th>Referer</th>
                                                      <th>Client</th>
                                                      <th>User Agent</th>
                                              </tr>
                                      </thead>
                                      <tbody>
                                              <tr>
                                                      <td><?=$ptype['HTTP_REFERER'];?></td>
                                                      <td><?=$ptype['REMOTE_ADDR'];?></td>
                                                      <td><?=$ptype['HTTP_USER_AGENT'];?></td>
                                              </tr>
                                      </tbody>
                              </table>
                      </div>
              </div>
      </body>
      </html>
      
      R 1 Reply Last reply Reply Quote 2
      • R
        rickygm @Grunt0307
        last edited by

        @Grunt0307 Hi, I'm not an expert, but where would the modification or what path and file would I have to add?

        1 Reply Last reply Reply Quote 0
        • G
          Grunt0307
          last edited by

          If you want to duplicate what is in the screenshot above, SSH into your pfsense box and enter the below command to create a new error page, then paste my above code into it.

          vi /usr/local/www/pfblockerng/www/dnsbl_custom.php

          After you've done all that, go to the admin guiI>Firewall>pfBlockerNG>DNSBL. Under the DNSBL Configuration section, you should see a list, dnsbl_default.php and your new file, dnsbl_custom.php. Select dnsbl_custom.php and then save, the change is immediate.

          1 Reply Last reply Reply Quote 0
          • R
            rickygm
            last edited by

            thank for you help.

            1 Reply Last reply Reply Quote 0
            • BBcan177B
              BBcan177 Moderator @Grunt0307
              last edited by BBcan177

              @Grunt0307 said in Customizing Error Page:

              I am running pfSense 2.4.4 with pfBlockerNG-devel 2.2.5_23. I created and slightly altered the CSS styling of the block page. What i want to do is change the information in the table that appears from referrer, client, user agent to client, feed or client, category. I see where that information is pulled by index.php in what I think is an array variable, but I am unsure of what other values exist in that array. Is what I'm asking for possible, does anyone know where I can find out what additional values can be used?

              Check out the latest Block Page... Still a bit of work to go before I release it, so test it out and send back any feedback!
              Thanks!

              Desktop/Mobile views:
              03db28bd-1af4-4cf0-895f-1130d53dbe44-image.png

              b4d639ca-8e2f-4ecf-bafe-b3ab008ffa99-image.png

              Instructions:

              From a pfSense shell or from pfSense Diagnostics > Command Prompt > Execute Shell Command:

              fetch -o /usr/local/www/pfblockerng/www/index.php "https://gist.githubusercontent.com/BBcan177/1c4c9a1dfece234a14caf2407629153c/raw"
              
              fetch -o /usr/local/www/pfblockerng/www/dnsbl_new.php "https://gist.githubusercontent.com/BBcan177/aa72e472db2b251ed188a51e1166c1d1/raw"
              

              Then in the DNSBL Tab > Blocked Webpage: select the "dnsbl_new.php" webpage and Save.

              "Experience is something you don't get until just after you need it."

              Website: http://pfBlockerNG.com
              Twitter: @BBcan177  #pfBlockerNG
              Reddit: https://www.reddit.com/r/pfBlockerNG/new/

              1 Reply Last reply Reply Quote 4
              • G
                Grunt0307
                last edited by

                Cool, however, it doesn't look like something is working quite right. Do I need to restart pfblocker?

                53f33ac9-ff59-45e2-b281-3a21b4c57ce3-image.png

                T 1 Reply Last reply Reply Quote 0
                • T
                  turker
                  last edited by turker

                  5d969a98-0f37-49f4-918f-fe5a831b0c7d-image.png 👍

                  1 Reply Last reply Reply Quote 0
                  • T
                    turker @Grunt0307
                    last edited by turker

                    @Grunt0307 said in Customizing Error Page:

                    Cool, however, it doesn't look like something is working quite right. Do I need to restart pfblocker?

                    53f33ac9-ff59-45e2-b281-3a21b4c57ce3-image.png

                    Same problem. Refresh a page. Then it works

                    1 Reply Last reply Reply Quote 0
                    • G
                      Grunt0307
                      last edited by

                      Oh ya, that's strange...I'm not nearly savvy enough to understand why that's happening though.

                      1 Reply Last reply Reply Quote 0
                      • BBcan177B
                        BBcan177 Moderator
                        last edited by

                        There was a change to the code yesterday. So not sure when you downloaded those files? Please re-run those two commands to get the latest revision:

                        https://www.reddit.com/r/pfBlockerNG/comments/c008j5/provide_feedback_on_new_dnsbl_block_page/

                        "Experience is something you don't get until just after you need it."

                        Website: http://pfBlockerNG.com
                        Twitter: @BBcan177  #pfBlockerNG
                        Reddit: https://www.reddit.com/r/pfBlockerNG/new/

                        G 1 Reply Last reply Reply Quote 0
                        • G
                          Grunt0307 @BBcan177
                          last edited by

                          @BBcan177 Still the same behavior.

                          BBcan177B 1 Reply Last reply Reply Quote 0
                          • BBcan177B
                            BBcan177 Moderator @Grunt0307
                            last edited by

                            @Grunt0307
                            Re-select the default block page, save, then select the new test webpage and save.

                            "Experience is something you don't get until just after you need it."

                            Website: http://pfBlockerNG.com
                            Twitter: @BBcan177  #pfBlockerNG
                            Reddit: https://www.reddit.com/r/pfBlockerNG/new/

                            G 1 Reply Last reply Reply Quote 0
                            • G
                              Grunt0307 @BBcan177
                              last edited by

                              @BBcan177

                              Yup, that's the first thing I did. Ran the two commands to pull down the new files, then went into the gui, selected the default page and saved it, then selected the new page and saved it. Still getting nothing in some of the fields on first load but refreshing the page fills in the info.

                              BBcan177B 1 Reply Last reply Reply Quote 0
                              • BBcan177B
                                BBcan177 Moderator @Grunt0307
                                last edited by BBcan177

                                @Grunt0307

                                A new revision has been made to add a small timeout to the code... Thanks for @Grunt0307 for testing it out! Appreciate the Feeback and Support!

                                For anyone having the same issue, please re-download the index.php file as per my previous command.

                                "Experience is something you don't get until just after you need it."

                                Website: http://pfBlockerNG.com
                                Twitter: @BBcan177  #pfBlockerNG
                                Reddit: https://www.reddit.com/r/pfBlockerNG/new/

                                1 Reply Last reply Reply Quote 0
                                • T
                                  turker
                                  last edited by

                                  @BBcan177 said in Customizing Error Page:

                                  please re-download the index.ph

                                  I changed index.php. I ran these two commands again. same behavior
                                  (win1064 chrome, firefox,edge. android. ipad safari.)

                                  1 Reply Last reply Reply Quote 0
                                  • R
                                    rickygm
                                    last edited by

                                    not work for me.

                                    1 Reply Last reply Reply Quote 0
                                    • A
                                      arian_0098
                                      last edited by arian_0098

                                      @BBcan177

                                      S***y design, but same issue ... should refresh the page to view other infos.

                                      Grabbed files yesterday and did exactly like you said.

                                      BBcan177B 1 Reply Last reply Reply Quote 0
                                      • BBcan177B
                                        BBcan177 Moderator @arian_0098
                                        last edited by

                                        New version posted today - re-download.

                                        "Experience is something you don't get until just after you need it."

                                        Website: http://pfBlockerNG.com
                                        Twitter: @BBcan177  #pfBlockerNG
                                        Reddit: https://www.reddit.com/r/pfBlockerNG/new/

                                        A M 2 Replies Last reply Reply Quote 1
                                        • A
                                          arian_0098 @BBcan177
                                          last edited by

                                          @BBcan177 said in Customizing Error Page:

                                          New version posted today - re-download.

                                          Fixed ... it refreshes the page immediately ... but curious to know why this issue wasn't present in last template.

                                          1 Reply Last reply Reply Quote 0
                                          • M
                                            mikekoke @BBcan177
                                            last edited by mikekoke

                                            @BBcan177
                                            Hi, I'm trying the new block page, it works on all mobile and desktop devices that I have, the only problem I noticed is that after the first restart of pfsense the block page no longer shows the referer.
                                            Is there any solution for this problem?
                                            Thanks for all the work you do.

                                            EDIT: Loading the blocked site with Chrome desktop and mobile the referer works the first time the page is loaded but if you reload the page other times the referer is not shown. With microsoft edge and firefox the referer is not shown even the first time you load the page.

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post
                                            Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.