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?



  • 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>
    


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



  • 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.



  • thank for you help.


  • Moderator

    @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.



  • 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



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



  • @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



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


  • Moderator

    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/



  • @BBcan177 Still the same behavior.


  • Moderator

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



  • @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.


  • Moderator

    @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.



  • @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.)


Log in to reply