Country Block
-
Have you ever thought about joining Countryblock and IPblocklist?
I've looked ipblocklist and both look very similar.
I do want to change some GUI components before we replace 2.4.
Feel free to change gui options, but keep in mind that's not so easy to customize xml options while using pfsense framework.
The reason is countryipblocks.net was getting way to much traffic from my pfsense users
Is there a problem on doing it only during install?
I have thought about joining Countryblock and IPblocklist. This idea was brought up to me not that long ago. I still consider them two separate entities but I will think about it. If we did combine the two, the IPBlocklist app would be CIDR only. We would need a new name for the packages if combined, perhaps the forums users can help us name it. I can tell you that I have plans on using your code to update IPblocklist if we don't combine them.
With countryipblocks.net, the way you're doing it shouldn't be a problem, now that I'm thinking about it. In an older version of countryblock I had it so that it would download the country list every time it was applied which is where the problems started. Downloading the lists on install is perfect.
What are your thoughts on pfsense 1.2.3 as far as these packages go? Should the older versions stay with 1.2.3 or should we work on updating them as well?
-
1.2.3 does not has Url table alias, so we can leave current version of countryblock and ipblocklist just for this release and release a new package for 2.0
My suggestion for package name is pf-blocker and on package description we say that its countryblock + ipblocklist.
-
My suggestion for package name is pf-blocker and on package description we say that its countryblock + ipblocklist.
My suggestion for package name is just "blocker" …
-
1.2.3 does not has Url table alias, so we can leave current version of countryblock and ipblocklist just for this release and release a new package for 2.0
My suggestion for package name is pf-blocker and on package description we say that its countryblock + ipblocklist.
pf-blocker. I'm sold.
Description: Block countries and IP ranges. Replaces Countryblock and IPblocklistI'm liking how that sounds. Great work marcelloc! :)
-
1.2.3 does not has Url table alias, so we can leave current version of countryblock and ipblocklist just for this release and release a new package for 2.0
My suggestion for package name is pf-blocker and on package description we say that its countryblock + ipblocklist.
pf-blocker. I'm sold.
Description: Block countries and IP ranges. Replaces Countryblock and IPblocklistI'm liking how that sounds. Great work marcelloc! :)
I like it as well.
And thanks, both. -
looking good!!
I did noticed their is still a table for countryblock and countryblockW. Not sure if that is left overs from my uninstall of countryblock.
-
;DpfBlocker 0.1.1 is out with: ;D
-
Countryblock features
-
Ipblocklist features
-
network block to CIDR internal feature to maintain compatibility with I-Blocklist free lists
-
many new options to choose what you want to block in and block out
This new package is awesome in my opinion!
TODO list:
-
code 'Update frequency' option together with cron package to stay away from file hacks
-
create a new tab for stats on what is blocked(maybe)
-
wait fixed pkg_edit.php in pfsense 2.0.1 or 2.1 to do not need a checkbox for rowhelper description
-
-
We also need a dashboard widget. We can query how many IP ranges in a pf table to display stats.
-
How countryblock widget works?
-
in /usr/local/www/widgets/widgets
Basically you get the number if entries in the table to get the IP ranges
pfctl -T show -t countryblock |grep -v -c Z
Here is my working widget for version 2.4 and IPblocklist.
@require_once("guiconfig.inc"); @require_once("pfsense-utils.inc"); @require_once("functions.inc"); $ipblocklist_file = "/usr/local/www/packages/ipblocklist/ipblocklist.php"; $countryblock_file = "/usr/local/www/packages/countryblock/countryblock.php"; echo "echo" "; if (file_exists($ipblocklist_file)) { echo " "; } if (file_exists($countryblock_file)) { echo " "; } echo" "; echo" "; if (file_exists($ipblocklist_file)) { echo " "; } if (file_exists($countryblock_file)) { echo " "; } echo" "; echo" "; if (file_exists($ipblocklist_file)) { ob_start(); $resultsIP = exec("tail -r /usr/local/www/packages/ipblocklist/errorOUT.txt"); ob_end_clean(); if ($resultsIP == "") { echo " "; } else { echo " "; } } if (file_exists($countryblock_file)) { ob_start(); $resultsCB = exec("tail -r /usr/local/www/packages/countryblock/errorOUT.txt"); ob_end_clean(); if ($resultsCB == "") { echo " "; } else { echo " "; } } echo" "; //echo" "; //if (file_exists($ipblocklist_file)) echo " "; //if (file_exists($countryblock_file)) echo " "; //echo" "; echo" | IP-Blocklist"; ob_start(); $results = exec("/sbin/pfctl -s rules | grep -c ipblocklist"); ob_end_clean(); if ($results > '2') echo "![](/themes/{$g[)"; else echo "![](/themes/{$g[)"; echo " | Countryblock"; ob_start(); $results = exec("/sbin/pfctl -s rules | grep -c countryblock"); ob_end_clean(); if ($results > '0') echo "![](/themes/{$g[)"; else echo "![](/themes/{$g[)"; echo " | | "; ob_start(); $resultsIP = exec("/sbin/pfctl -T show -t ipblocklist |grep -v -c Z"); ob_end_clean(); echo $resultsIP; echo " Networks"; echo " | "; ob_start(); $resultsCB = exec("pfctl -T show -t countryblock |grep -v -c Z"); ob_end_clean(); echo $resultsCB; echo " Networks"; echo " | | | "; echo " "; echo $resultsIP; echo ""; echo " | | "; echo " "; echo $resultsCB; echo ""; echo " | | | | ";
It's very basic.
-
Cool,
I'll take a look.
Maybe widget will be better then stats gui.
-
Errors:
topspammers Tab -> /usr/local/pkg/pfblocker_topspammers.xml does not exists on line 175I think top pfblocker_topspammers.xml was left out of pfblocker.xml
<additional_files_needed>http://www.pfsense.org/packages/config/pf-blocker/pfblocker_topspammers.xml <prefix>/usr/local/pkg/</prefix> <chmod>0755</chmod></additional_files_needed>
Also do we want to limit the ipblocklist functionality to CIDR lists only? I took a poll on the package forums asking users if they wanted CIDR only or to have the normal PG2 lists. If we use CIDR only then we can eliminate future problems.
I was talking a look at your pfblocker_Range2CIDR function and it looks good but it's a long process for very large files like Level1 and Level2 lists.
-
Almost all free lists from ip-blocked are p2p, so I think we can suggest CIDR but keep p2p feature.
I will fix missing file and test rpc sync.
-
topspammers call fixed.
Can you test how many time does rules apply takes when you do not change urls?
-
iblocklist.com lets your download all lists in p2p, dat, and CIDR now. I talked with fakhir not that long ago about the ip-blocklist package and moving to CIDR.
-
when I choose cidr format, all lists become 'subscription'.
-
Copy the list URL and manually change the fileformat to "cidr". It works for all links.
If we can figure out how to get fetch to follow links then our users won't have to input the direct URL anymore. -
But there are other compatible lists, and custom lists can be done too.
I understand that CIDR is better.
I've tested level1 file and both(p2p and CIDR) gets errors while appying to pfsense.
The block2CIDR works very fine, the extra time you see is downloading time. I did a lot of tests before including it to pfBlocker.
-
I didn't think about that. You're right.
I'll see if I can figure out why large lists are failing. -
The large lists take up the default memory space. I was able to overcome this in IPblocklist version 3.5 by adding:
set limit table-entries 900000
I put this at the top of rules.debug. You can enter any amount that you think will be big enough but 900000 should cover all scenarios.
Hopefully there is a smooth way to add this option to the rules.debug file.