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

    Customizing Error Page

    Scheduled Pinned Locked Moved pfBlockerNG
    22 Posts 7 Posters 3.8k 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

      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?

      BBcan177B 1 Reply Last reply Reply Quote 0
      • 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
                                            • First post
                                              Last post
                                            Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.