URL Table not working correctly
-
-
Heh, "right now"…
-
I'm not having any issues with swap space, however I've also not enabled any firewall rules to use the new URL Table…I had when I first implemented this, but only for a few minutes while testing how things were working after enabling. I didn't see any HW or OS issues....just the two anomalies I've mentioned, so rules were enabled for 5-10 mins, without performance issues.
Any help/feedback on my actual issues/original questions?
So for some background, the reason I started using this was because I was originally using a Network aliases, but when I starting adding more IP's, I received an error stating something about reaching a limit of 1000 and to change something in php.ini, I was about to do that, but that's when I learned about the URL Tables. However in my original IP aliases list I only have about 320 IP's (not 1000). Since I was making some changes I decided to use my large block list I've been gathering, thus the reason for the 200k entries....but originally it was only 320 or so on a Network Alias.
So if I can't have 250k entries, how do I solve this, is there a way to have large numbers of entries without breaking anything (but again, the OS and HW performance were fine for the 5-10 mins)? Why is it showing numbers that I don't even have in my URL table?
Thanks,
-
Any help/feedback on my actual issues/original questions?
See this: https://forum.pfsense.org/index.php?topic=98698.msg549855#msg549855
-
That link takes me to your comment that I've pasted below…how does that help? You want me to try Diagnostics -Tables to see if it loads?
BTW, @OP:
You can see what's in the tables when you go to Diagnostics - Tables and select the one you need from the dropdown. (The javascript fancy popup is not usable anyway for 200K+ or what entries... cannot search in that at all.)
-
No. I want you to compare what you see there with what you SHOULD see there, i.e. whether or not it matches the file downloaded. The popup is something that just cannot be worked with on 250K IPs, I'd figure it's very obvious?
-
No. I want you to compare what you see there with what you SHOULD see there, i.e. whether or not it matches the file downloaded. The popup is something that just cannot be worked with on 250K IPs, I'd figure it's very obvious?
It shows the same thing as in the first screen shot, IP's that are not in my text file. I've included a screen shot of it.
![8-28-2015 12-15-21 pm.png](/public/imported_attachments/1/8-28-2015 12-15-21 pm.png)
![8-28-2015 12-15-21 pm.png_thumb](/public/imported_attachments/1/8-28-2015 12-15-21 pm.png_thumb) -
Afraid that unless you make your blocklist available here, this won't get anywhere.
-
Why don't you try to use pfBlockerNG to load these text files… It will also have the option of de-duplicating the Lists (if there are any dups...)
A small note... from the 2nd screen shot... You don't need to :
cat filename | wc -lYou can just use:
wc -l filenameThe following is actually faster if your counting ms :)
grep -c ^ filename -
Afraid that unless you make your blocklist available here, this won't get anywhere.
I'm not sure the whole list is needed, but I've searched for the IP's showing up in the table in my file, but to no avail.
[root@]# grep "1\.0\.209\.0" blocklist.txt [root@]# grep "1\.0\.155\.0" blocklist.txt [root@]# grep "1\.0\.167\.0" blocklist.txt [root@]# head blocklist.txt 120.203.159.14/24 118.244.254.17/24 117.26.227.207/24 27.153.210.22/24 183.232.55.193/24 211.119.86.147/24 175.44.29.77/24 125.77.142.168/24 122.96.59.106/24 190.216.229.68/24
Here's to show grep is working… (selected an IP from the head command above):
[root@]# grep "27\.153\.210\.22" blocklist.txt 27.153.210.22/24
-
Why don't you try to use pfBlockerNG to load these text files… It will also have the option of de-duplicating the Lists (if there are any dups...)
A small note... from the 2nd screen shot... You don't need to :
cat filename | wc -lYou can just use:
wc -l filenameThe following is actually faster if your counting ms :)
grep -c ^ filenameI'm currently using pfBlockerNG (by selecting specific locations), but 1) wasn't aware I could load custom files, 2) need some automation, the URL Table's appear to offer the scheduled importing I need.
And thanks for the wc tip, I didn't know that!
-
Shouldn't the last octet be a "0" when using a /24 ?
I don't think those IPs will load into a packet fence table..
-
I'm currently using pfBlockerNG (by selecting specific locations), but 1) wasn't aware I could load custom files, 2) need some automation, the URL Table's appear to offer the scheduled importing I need.
I am the Dev of pfBNG … So I can confirm that it can use localfiles.. :)
In the IPv4/6 Tab, enter the localfile path/filename in the URL field....
-
Shouldn't the last octet by "0" when using a /24 ?
I don't think those IPs will load into a packet fence table..
I've used them successfully in small alias tables and URL Tables, and from testing, appear to work correctly.
-
I'm currently using pfBlockerNG (by selecting specific locations), but 1) wasn't aware I could load custom files, 2) need some automation, the URL Table's appear to offer the scheduled importing I need.
I am the Dev of pfBNG … So I can confirm that it can use localfiles.. :)
In the IPv4/6 Tab, enter the localfile path/filename in the URL field....
Cool! And I see I can set the update frequency! Will this handle the 250k+ records? If so, is there a limit, if not was is the limit?
-
The first post that Dok posted was about some issues with the pf Tables… I don't personally have a single table over 200,000IPs, but I do have over 200,000 IPs in total table size.
I tried to add that IP and it doesn't get added to the pf table… The last octet in a /24 needs to be "0" for it to load into the table... I assume that this is the issue you are having..
I would suggest taking this list and splitting it down into two files.. I assume you are collecting these IPs from a mail server/honey pot etc... Just start with a new 3rd file to keep the size down.
grep -c '/24' filename will show how many lines are /24.
As a test : (Change the pfB_PRI1 to any existing pf Table)
pfctl -t pfB_PRI1 -T add 20.203.159.14/24
0/1 addresses added.But if I add the IP with a "0" in the last octet
pfctl -t pfB_PRI1 -T show | grep "20.203.159."
20.203.159.0
20.203.159.0/24 -
Pretty much as noted above, those blocklists are just wrong. Use /32 (or just nothing) for individual IPs. Those subnets you have are not valid.
-
I tried to add that IP and it doesn't get added to the pf table… The last octet in a /24 needs to be "0" for it to load into the table... I assume that this is the issue you are having..
I'm starting to think the same thing….however....I have a much smaller list, it's setup the exact same way...the difference is the size...this one has about 300 ip's, that's it...and it auto set the last octect to 0....
[root@]# head manualblocklist.txt 178.120.172.209/24 186.82.25.216/24 77.44.161.22/24 181.118.75.200/24 188.209.49.117/24 119.94.47.83/24 81.92.120.13/24 118.98.115.16/24 180.191.104.244/24 81.213.208.9/24
![8-28-2015 1-05-55 pm.png](/public/imported_attachments/1/8-28-2015 1-05-55 pm.png)
![8-28-2015 1-05-55 pm.png_thumb](/public/imported_attachments/1/8-28-2015 1-05-55 pm.png_thumb) -
I would suggest taking this list and splitting it down into two files.. I assume you are collecting these IPs from a mail server/honey pot etc… Just start with a new 3rd file to keep the size down.
I was thinking the same thing, thus my reason for asking what limits there were. Thanks.
-
How does it set the last octet?!? The list does not match in the least what you posted in the screenshot.
1/ Stop feeding invalid crap to aliases.
2/ Load this to pfBlockerNG and use some reputation features there to make the whole thing smaller. Like this: -
Pretty much as noted above, those blocklists are just wrong. Use /32 (or just nothing) for individual IPs. Those subnets you have are not valid.
Ah, this may be the issue….using my smaller url table I just checked, and the /24 are imported but not the single IP's listed as /32. So perhaps removing these from my lists will solve the issue? I'll try it and repost.
As a side note, I tried using pfbng to import and use the list and it semi working, the file was imported and did find dups, but it's not blocking anything (nothing shown in pfbng status widget) and when I try to view the table (via diag -> tables, nothing shows)...so I assume it may be the same issue.
-
How does it set the last octet?!? The list does not match in the least what you posted in the screenshot.
1/ Stop feeding invalid crap to aliases.
2/ Load this to pfBlockerNG and use some reputation features there to make the whole thing smaller.That's exactly the issue…when I look at the files, it shows legit info, but that's not what's being loaded into the aliases, thus the reason I posted here. I'm going to remove the /32's and see if that doesn't help.
-
I think you are just very confused? You have no /32 anywhere. You have /24 there.
-
I think you are just very confused? You have no /32 anywhere. You have /24 there.
Sorry, perhaps I'm not being clear, but I do have /32's listed, just not a lot of them:
[root@]# grep '\/32' manualblocklist.txt 70.49.52.23/32 69.46.128.29/32 66.51.128.42/32 109.169.22.220/32 162.250.189.125/32 198.23.140.98/32 104.206.96.58/32
And to clarify…I've tested and the /24 are imported and auto changed to .0/24, but the /32's are not imported, so I'm wondering if they're causing issues.
-
I take it back, they are being imported….screenshot one is my text file and screen shot two is from diag -> tables. So I'm back to square one. Any other ideas?
![8-28-2015 1-28-35 pm.png](/public/imported_attachments/1/8-28-2015 1-28-35 pm.png)
![8-28-2015 1-27-57 pm.png](/public/imported_attachments/1/8-28-2015 1-27-57 pm.png) -
I tried using pfbng to no avail…file imports correctly, but lists shows as blank and status shows no blocks:
UPDATE PROCESS START [ 08/28/15 13:31:55 ] [ pfB_Europe_v4 ] exists, Reloading File [ pfB_Top_v4 ] exists, Reloading File [ cbl ] Downloading New File ---------------------------------------------------------- Original Masterfile Outfile [ Post Duplication count ] ---------------------------------------------------------- 225549 213102 213102 [ Passed ] ---------------------------------------------------------- ===[ Aliastables / Rules ]================================ Firewall Rule Changes Found, Applying Filter Reload ===[ FINAL Processing ]===================================== [ Original count ] [ 242994 ] [ Processed Count ] [ 230547 ] ===[ Deny List IP Counts ]=========================== 230547 total 213102 /var/db/pfblockerng/deny/cbl.txt
-
According to that screenshot, it collected 213102 IPs… The others are probably duplicates...
I think your going to have strange results until you convert the file which has /24 to its proper format. ("0" in the last octet"... Don't worry about the /32 it will work with or without the /32.
Here is a small script that will convert the /24's. (Change the /tmp/filename)
#!/bin/sh data=$(grep '/24' /tmp/filename) for ip in $data; do i="$(echo $ip | cut -d '.' -f 1-3)" echo $i".0/24" done exit
To collect all other IPs in the file and exclude the /24's
grep -v '/24' filenameIf you want to sort that file…
sort -t . -k 1,1n -k 2,2n -k 3,3n -k 4,4n filename -
According to that screenshot, it collected 213102 IPs… The others are probably duplicates...
I think your going to have strange results until you convert the file which has /24 to its proper format. ("0" in the last octet"... Don't worry about the /32 it will work with or without the /32.
Here is a small script that will convert the /24's. (Change the /tmp/filename)
#!/bin/sh data=$(grep '/24' /tmp/filename) for ip in $data; do i="$(echo $ip | cut -d '.' -f 1-3)" echo $i".0/24" done exit
To collect all other IPs in the file and exclude the /24's
grep -v '/24' filenameIf you want to sort that file…
sort -t . -k 1,1n -k 2,2n -k 3,3n -k 4,4n filenameThanks, I'll try it.
-
I converted all the IP's from x.x.x.x/24 to x.x.x.0/24, and imported it via pfbng, it imported successfully (just as it did previously), but in the pfbng dashboard widget the status is not displaying (shows the new line, but no stats), and when I click on the alias in the rule, 0 IP's are displayed (i.e. for other aliases when you put the mouse over the alias it shows x IP's and then lists the IP's).
Any other ideas?
-
Send a screenshot of the Widget and of the Rule for this Alias.
-
As a side note regarding this, I'm also noting that the is_subnet*() functions in /etc/inc/util.inc are very useless, they don't verify a valid subnet at all.
-
In this case, the limit seems to be linked to dirty a data type restriction, because out of these problems is easy,Casesam but there is no problem to check my previous post codes can only be regarded as a conjecture at this stage, but I suspect there may be a reason for exchange limits.Samsung Galaxy S6 edge cover
-
I converted all the IP's from x.x.x.x/24 to x.x.x.0/24, and imported it via pfbng, it imported successfully (just as it did previously), but in the pfbng dashboard widget the status is not displaying (shows the new line, but no stats), and when I click on the alias in the rule, 0 IP's are displayed (i.e. for other aliases when you put the mouse over the alias it shows x IP's and then lists the IP's).
Any other ideas?
If you see the widget showing blank status and the mouseover of the Alias is blank, that means that there is some incorrect IPs in the list…
pfBNG v1.09 uses a Regex function to match IPs including CIDRs. The regex is not 100% and there are some corner cases where it can allow an incorrect CIDR value... The next release v2.0 uses all string functions to process and validate each IP which will avoid these corner cases...
There has to be some malformed IPs of some sort in this file of yours. Try to split the file into smaller segments, then load each into pfBNG to see which segment is of issue. Then narrow it down again until you find the issue. You can also post the whole file in pastebin/dropbox etc and PM me a link to the file and I can help figure it out for you.
-
So…thanks for all the help, I got it working! I cleaned up all the records, replacing x.x.x.x/24 with x.x.x.0/24 and replacing /32 with just the IP. After cleaning up, I was able to get it to work both as a URL Table and in pfBNG. In fact, in pfBNG, it found 120k dups, so half of the IP's listed were dups...so my list is now down to 165k'ish.
One anomaly I noticed with pfBNG (I only mention it here instead of in a new post, since it was suggested/referenced here)...is that changing the state to OFF had no affect. I would change it to off, then save, then force update (Update Custom List was set to Update Custom List), and it would still block and show up in the dashboard widget. While it was still set to off, I went into Firewall -> Rules and deleted the rules associated with the pfBNG alias, and when I forced update, the rules recreated themselves. The only way I found to disabled the rules and blocking, was to delete them from pfBNG -> IPv4.
Other than that, it's working perfectly now! Thanks again for all the suggestions, help and code snippets!
-
replacing /32 with just the IP
/32 shouldn't cause an issue with/without
is that changing the state to OFF had no affect. I would change it to off, then save, then force update (Update Custom List was set to Update Custom List)
Are you using the Custom List box for these IPs? or are you saving the IPs to a file in the pfSense box and adding it to the URL / local file entry?
The "state" is only for the URL / Local file entry. The Custom list needs to be empty or it will create a Firewall rule automatically.
-
Are you using the Custom List box for these IPs? or are you saving the IPs to a file in the pfSense box and adding it to the URL / local file entry?
The "state" is only for the URL / Local file entry. The Custom list needs to be empty or it will create a Firewall rule automatically.
I'm using a URL (not local) and the file is not empty. So there's no way to "disable" without deleting the entry?