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



  • not work for me.



  • @BBcan177

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

    Grabbed files yesterday and did exactly like you said.


  • Moderator

    New version posted today - re-download.



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



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



  • Pleasant logo...added it to pfSense 2.5/pfBlockerNG-dev!

    Screen Shot 2020-01-30 at 12.26.58 PM.png


Log in to reply