Overview
MTAutoBan is a plugin for Movable Type. It maintains an Apache webserver configuration file (also known as a “.htaccess” file) that bans IP addresses in the Apache webserver. The set of banned addresses is generated from the junk objects stored in the Movable Type database. Whenever the set of junked objects changes, the Apache configuration file is updated.
The goal of this plugin is to slow down the flood of junk objects by banning the IP source addresses that generate them. This makes it easier to check the junk objects for bad filtering and makes denial of service effects from excessive amount of junk much less likely. By doing the banning at the Apache webserver level instead of in Movable Type itself, the runtime cost of the banning is minimized. With a good set of filters, even large1 groups of systems are rapidly banned with little effect on the weblog.
As a result of further experience, I added the ability to redirect requests instead of simply banning them, because it seems that many junkers notice 403 error eventually and rotate attacks over to new machines. Redirection is intended to thwart this.
Because of the large numbers of compromised computers used to generate junk, the maintenance cost of banning the associated IP addresses must be near zero. This plugin achieves that goal. No maintenance is required once installed, and the defaults are good enough that initial configuration is not even necessary.
To make the banning as automatic as possible, the configuration file is updated whenever
- An object is marked as “junk”, either explicitly or via junk filtering.
- A set of objects is marked as “not junk” explicitly.
- Whenever a junked object is deleted.
Current Version: 1.2.3
Beta Version for MT 4.0 Compatibility: 1.2.4
Requirements
MTAutoBan requires
- Apache webserver
- Movable Type 3.2 or 3.3
All other Perl modules required by MTAutoBan are also required by Movable Type.
Installation
- Get the distribution.
- Create a directory named
AutoBanunder thepluginsdirectory in your MT installation directory. - Copy all files in the distribution to the
AutoBandirectory.
Note: If you installed a version prior to 1.1.0, you should remove the no longer in use file
extlib/Transfinitum/Apache/IPAccess.pm
Usage
MTAutoBan is designed to be a “zero configuration” plugin — unless you like to fiddle with things, you should have no need of configuring MTAutoBan. If you do read through this section and there are settings that you don’t understand, simply ignore them and leave them unchanged. These settings are for control-freaks like me who have psychological problems that do not permit them to tolerate anything they do not have absolute control over. Normal, well-adjusted people can get on with their lives instead.
To configure MTAutoBan, go to the global plugins configuration page. This can be reached from the “Plugins” link on the MT main page in the “System Shortcuts” area. MTAutoBan should be listed as one of the plugins available. The plugin has several configuration options.
- Ban address if
- This sets the number of times an address must appear in the junk objects to be banned. Addresses that appear this many times (or more) are put in the set of addresses to be banned.
- Junk Comments
- If this is checked, then junk comments are considered to be junk objects.
- Junk Trackbacks
- If this is checked, then junk trackbacks are considered to be junk objects.
- Only junk objects less than #### minutes old.
- If this is checked, the set of junk objects is restricted to those less than the specified number of minutes old. One day is 1440 minutes, a week is 10,080 minutes.
- Path
- Path to the access file. If this path is relative, then it is relative to the MT installation directory. If the final character is a forward slash, then the file name ‘.htaccess’ is automatically added. MTAutoBan will mark its own ban list in the file so that an existing file can be used even if there are other Apache configuration commands in it.
- Redirection
- MTAutoBan by default denies access to banned addresses. If this setting is “None”, that is what happens. MTAutoBan can also redirect requests from those addresses. This can be done in one of two ways, determined by this setting. In both cases, only requests for files in directories controlled by the access file are affected.
- ErrorDocument — MTAutoBan inserts an
ErrorDocumentdirective in its section of the access file to override the page that would normally be used. - mod_rewrite — Use
mod_rewriteto redirect requests instead of denying them. This option has unknown performance implications and so should be used with caution (see here).
- ErrorDocument — MTAutoBan inserts an
- Ban page URL
- If the previous setting, “Redirection”, is set to be active, then the target of the redirection is this URL. Relative paths are relative to the directory where the access file is (by default the MT install directory). Absolute paths are relative to the base URL for the weblog.
- Read #### objects at a time from the database
- This is a performance tuning parameter for geeks. When MTAutoBan is generating the access file contents, it reads junk objects from the database. To avoid system limitations, it does this in chunks. This parameter specifies the number of objects per chunk.
- Write #### addresses per line in the access file
- This controls how many addresses are written per line of access file output.
In addition to these configuration options, there is also a check box labeled “Force access file update”. If checked, when the configuration is saved the access file is updated.
Tags
MTAutoBan has MT tags to display information about its operations.
| MTAutoBanBannedCount | The number of banned IP addresses. |
| MTAutoBanUniqueCount | The number of unique addresses in the junk objects. |
| MTAutoBanObjectCount | The number of junk objects checked. |
| MTAutoBanThreshold | The number of junk objects needed to ban an address. |
| MTAutoBanLastUpdated | The time and date of the last access file update. This takes a “format” attribute to format the time. It behaves identically to the “format” attribute for standard MT time / date tags. |
Known Issues
- If a junk object is changed to non-junk on the object edit page, the access file is not updated. If the object is changed to non-junk from the listing page, then the access file is updated. This is by design for performance reasons. Fixing this means updating the access file on every non-junk comment and trackback. Currently comments and trackbacks that are not marked junk avoid the cost of access file update. This can be worked around by either using the listing page to mark objects non-junk, or using the configuration panel to force an access file update, or not worrying about it and letting the next automatic update to the access file fix the problem.
- Using the time limit has some possible performance implications. Because the timestamps on comment and trackbacks are stored in weblog local time instead of UTC, it is not possible to determine how old a potential junk object is without loading the weblog to which it belongs. Therefore enabling this option will cause a load of all weblogs whenever the access file is updated. In addition, rather than doing two database queries (one for comments, one for trackbacks), the update will potentially require two database queries for every weblog. The internal logic will optimize this where possible, combining queries for weblogs that have the same timezone. If all weblogs have the same timezone, then only two queries for all comments and trackbacks are done. Whether this is noticeable in a real deployment is unknown. It shouldn’t be an issue unless you have dozens of weblogs in many different timezones.
Notes
- Don’t forget to set auto-delete for feedback if you want MTAutoBan to clean up after itself.
- MTAutoBan is careful to update the access file at most once for each invocation of the MT configuration script.
- MTAutoBan has been tested on configurations with over 32,000 junk entries and over 10,000 banned addresses.
- This plugin is not quite as useful as I had hoped, due to the large number of spam sources (over 13,000 on one weblog). It does seem to do well at holding back floods. In addition, many junkers use the same zombie net so that even new attacks that get past the filters don’t generate hundreds of junk objects. I haven’t had a new attack dump more than a dozen or so junk objects since I installed MTAutoBan, whereas it was quite common before that.
- If the ban threshold is set to a non-numeric value it will be reset to the default.
- If the path is left blank, it will be reset to the default.
Performance
The overall performance characteristics of this plugin are unknown due to lack of an installed base. It has been running on all of my MT based weblogs for a couple of years without any apparent negative performance impact, but that is not conclusive.
The theory is that while updating the access file is expensive, it is significantly less expensive than loading up the MT application itself, which is done even when junk is caught by the filters. My experience has been that while there are a number of single hit junkers, there are many who flood a single weblog with a large number of requests in a short time period. It is those that MTAutoBan is designed to frustrate.
MTAutoBan does file locking on the access file and if it fails to get the lock, it cancels its access file update on the presumption that another instance of itself is already in the middle of an update. Because all addresses are updated every time2, if an address is not added for this reason it will be on the next access file update so at most there is one more junk object than optimal. In exchange, the total server load per weblog is limited to a single update at any moment in time.
Support for mod_rewrite adds another level of complexity to performance issues. Because MTAutoBan is targeted at access files, it cannot use the RewriteMap directive, which is only available to the main Apache configuration file. Therefore, it uses stacked RewriteCond directives followed by a RewriteRule that rewrites all URLs to the redirection target. I have very little data on the performance impact of processing 100 - 200 RewriteCond directives each with 50 alternate clauses in their regular expression is. It’s a lot of data, but the regular expresions are all literals.
In practice, I used it briefly with ~7,000 addresses without an obvious performance impact, which is rather weak evidence. This weblog has ~5,000 addresses banned with mod_write redirection (you can see the exactly number on the upper right of this page). If there is an impact, it should show up while using the Movable Type interface. If it has, I have not noticed. It may be, however, that I happen to use or run on a lightly loaded webserver. I recomend caution when using this feature.
White listing
MTAutoBan has its own section of the .htaccess file and preserves content outside of its area when updating the file. This is done so that other, non MTAutoBan directives can be kept in the file. The most common expected use of this feature is white listing, i.e. allowing specific hosts / IP addresses access regardless of what AutoBan does. For example, if your ISP supplied IP addresses was 192.168.56.56, you might want to white list it to decrease the risk of losing access. To do that, you would put the following in the .htaccess file.
order deny,allow allow from 192.168.56.56
This instructs the Apache webserver to favor allow from over deny from and then to allow the IP address 192.168.56.56, achieving the desired effect. The same technique can be used to permit specific proxy addresses or domains (see here for additional information). This content will be preserved by MTAutoBan.
Bugs
Versions prior to 1.0.3 had a bug where multiple instances of could interfere and scrozzle the .htaccess file. The symptoms are that any access to MT scripts causes a 500 (internal server) error. If this occurs, simply delete the .htaccess file via FTP or your webhost’s standard file management then install a version 1.0.3 or later.
History
- Version 0.1.0 - Initial version
- Version 0.2.0
- Added check boxes for each address.
- Added “Check all” and “Uncheck all” buttons
- Suppressed buttons when no log data is present or it is all filtered.
- Version 0.3.0
- Fixed a problem with the login template.
- Fixed a bug where a missing
.htaccessfile would cause a spurious warning.
- Version 0.4.0
- The plugin automatically detects which version of MTB is in use and grubs through the appropriate log data. This means that the same install works on Movable Type 2.6X and 3.1X.
- Version 1.0.0
- Updated extensively for MT 3.2.
- Use junk objects instead of activity log.
- Use plugin configuration to set parameters.
- Completely automated, no separate operation page.
- Version 1.0.1
- Minor formatting cleanup.
- Added “Force access file update” option.
- Version 1.0.2
- Fixed documentation link problem.
- Version 1.0.3
- Fixed a potential race condition where the
.htaccessfile could get scrozzled under high loads.
- Fixed a potential race condition where the
- Version 1.1
- Added the option to time limit the potential junk objects.
- Cleaned up the distribution so that all files are in the same plugin directory.
- Moved code around to minimize plugin footprint when not invoked.
- Cleaned up some language and display in the settings to be more consistent.
- Added MT tags to display statistics.
- Version 1.1.1
- Added MTAutoBanThreshold tag.
- Cleaned up some code, added additional comments.
- Cleaned up settings display for more consistent terminology, widened some input boxes.
- Version 1.1.2
- Changed IP address sorting algorithm to be faster.
- Version 1.1.3
- Fixed
MT::PluginDatalibrary requirement for the template tags.
- Fixed
- Version 1.2.2
- Added ErrorDocument support.
- Added mod_write redirection support.
- Added performance tuning parameters to settings.
- Improved look and feel of settings display.
- Verified MT 3.31 compatibility.
- Version 1.2.3
- Fixed bug where the target URL for mod_rewrite would always be “sand-trap.php” in the access file regardless of the settings value.
- Version 1.2.4
- Fixed a minor issue with accessing the junk score constant.
- Updated settings HTML to work in both MT 3 and MT 4.
- Did minor testing with MT 4.0 to verify compatibility.
1 As of this writing, the largest observed attack was roughly 1800 distinct source addresses. These were all detected and banned with no noticeable effect on the weblog. Note that this is for posting attacks only — reading attacks are not protected against.
2 You might think that it would be more efficient to do incremental updating, but it’s not. And since it’s not, it is much more robust to do everything every time.
Trackback URL: http://blog.thought-mesh.net/solidwallofcode/mt_projects/autoban.php/ping
From JunkYardBlog: Administrative Note on Tuesday, 12 April 2005 at 07:14
From ***Dave Does the Blog: Spambastards on Tuesday, 21 March 2006 at 16:03
From Fingertoe.com: Trackbacks stink. on Thursday, 06 April 2006 at 04:30
From CrabAppleLane Blog: Tiresome subject on Saturday, 06 May 2006 at 11:46
From ***Dave Does the Blog: MT Plug-ins on Parade! on Monday, 08 January 2007 at 12:18
From ***Dave Does the Blog: Reducing server load on Wednesday, 24 January 2007 at 15:09
From CrabAppleLane Blog: Just Tuesday stuff on Tuesday, 06 February 2007 at 06:28
From オラオラ: Not Even Justice on Saturday, 03 March 2007 at 22:43
From Slobokan's Site O' Schtuff: links for 2007-04-13 on Friday, 13 April 2007 at 02:23
From Aggeman.se | Blog: Nu får det vara färdigspammat on Wednesday, 06 June 2007 at 07:43
From dustbury.com: Follow you, follow me on Tuesday, 19 June 2007 at 07:46
From ***Dave Does the Blog: Oh, the spamming outside is frightful on Wednesday, 08 August 2007 at 00:10
From walls of the city: weblog sitrep on Friday, 24 August 2007 at 17:54
From Robert Synnott: MovableType spam protection on Thursday, 13 December 2007 at 15:03
From ***Dave Does the Blog: Installing Movable Type 4 on Saturday, 05 January 2008 at 21:11
From walls of the city: automated whack-a-troll on Wednesday, 30 July 2008 at 11:46
I like this concept.
For me, I would like to add this to my arsenal to help reduce the CPU load of large floods of spam. I have many junk items, and I think it would be overkill to list all of those IPs in my .htaccess. This is the feature that I would lile to see: “Ban address if there are x number of junk items within the past y number of hours”. Essentially, the plugin would only scan the past y hours for junk items, and base the ban list on only those items within that time frame. For me, at least, this would go a long way to reduce the “same IP floods”, while at the same time keeping the ban list short. Thoughts?
Hmmm. I will think about that. The original concept was that you would tune your junk retention period to achieve that end. Based on discussions with staff at webhosting companies, I was under the impression that even thousands of entries in a .htaccess file was no big deal.
On the other hand, that shouldn’t be too hard to implement.
In terms of load, I an not an expert. However, my concern is more on the plugin side, not the .htaccess side. Every time an items gets junked, the plugin would be pulling thousands of records out of the database to recreate the .htaccess file. It is the CPU that the plugin would consume that is my concern. Again, I am not an expert when it comes to CPU load, but I know that spam floods creash my server regularly, so I am wary about something that adds more CPU load to the process. Consider one of those heavy attacks using many proxy IPs — with some many different IPs, the plugin might not slow down such an attack, but with every junked item, the plugin consumes processor power to build the list.
On a side note, I like to keep a lot of junk in system. In terms of new way to prevent spam, it can be a useful database to analyze. ;)
I haven’t noticed a problem in that area, even with as many as 12000 junk objects. As I write, one of my weblogs is under a junk flood attack (>100 / hour) with ~8000 junk objects. The server load is 0.5, which is lower than normal. On the other hand, the error log is filled with “Access Denied” messages, which if they had gone through to the trackback script, would most likely have pushed the load average much higher.
In addition, does file locking so that if one update is still running when another object gets junked, the second update is skipped. This means that the updates can’t push the load average more than about 1 higher, even under massive attack.
Looks fairly slick. I notice that a lot of my spammers are being junked because they exist in the spamlookup blacklist database. Is there any possiblity that we could modify the script to ban those guys IP address premtively??
No. Blitzed does not provide their blacklists as a matter of policy and spamlookup.net has no information at all.
Even if that data were available, downloading the list on a regular basis would either make too expensive to work, or would require a significant structural change.
Interesting on the load info. My server can easily handle over 100 per hour, I am not worries about that. My concern is when the spammers get closer to 100 per minute. This is what kills my server. When this happens, my load will quickly spike, within a 5 minute period, to over 100, caused the server to be effectively unresponsive. I have over 27,000 entries on my system, each one is target for spammers. So when it rains, it pours. Combined with this I have fairly high traffic, with over 150,000 page views per day. So when things slow down, requests start piling up, the problem cascades very, very quickly. The more I think about, I really need to add a good throttling tool, and one that uses .htaccess or iptables.
The biggest weblog I maintain has ~6000 entries. I think the highest rate I’ve seen is 10-20 / minute.
You might want to check out the MT 3.2 Patch: Trackback By Name mod and then use mod_rewrite to deny numeric based trackback requests. That would make much more difficult for the junkers to flood you, since they could no longer just guess numbers.
I will look in to putting the time limit in, although I can’t guarantee a delivery date :-).
Haha. Turns out that there is no simple DB query you can do to get the set of comments (junk or not) made within the last N minutes. This is because the timestamp on each comment is stored with the weblog timezone offset added. Therefore if you have two weblogs with different timezones, comments made at the same time will have different timestamps (differing by the difference of the timezones). What a mess — having done some timezone related work myself, I can say that anything other than storing in UTC and adjusting as needed is a Bad Idea.
However, I am working on another plugin and I actually need this functionality. Maybe. I can think of at least two possible implementations, I will have to see if it’s worth the cost (because the logic would need to load every weblog object from the DB regardless, in order to extract the TZ setting).
Perhaps a simple workaround would to opt for a “last_n” setup. Instead of using time as the limiting factor, using “the most recent ____ items” would achieve the same goals (blocking recent junk IPs, while keep the ban list short). Of course, each site is different and junk comes in fits and starts, not very predictable. But I think that setting this to “last 100 junk comments or trackbacks” would provide a strong anti-throttling tool. Being able to specify a recent timeframe would be nice, but I don’t think it is critical.
I will think about the lastn option, but I’m not sure it’s useful enough to clutter the interface with it.
In the mean time, as you can see, I have added the time limit option.
What about AOL proxy servers? Can they be excluded? It would sort of suck to make yourself invisible to 10M+ readers by banning the proxy servers they all go through.
Yes. AutoBan lets you keep other content in the .htaccess file precisely for this reason. You can whitelist specific IP addresses so that the AutoBan banning has no effect. I have added some text to be clearer about this point.
It was also a perception problem on my part. As delivered the plugin writes it’s .htaccess file to the MT directory. This blocks access to the comment, trackback, and search scripts, but not the blogs web pages.
Yes, that was another deliberate design decision. It blocks incoming junk while blocking the minimal number of other services. It occurs to me now that you could set things up so that access to mt.cgi wasn’t blocked even if your IP address was AutoBanned by putting the comment / trackback scripts and .htaccess file in a subdirectory. It’s probably easier to whitelist yourself.
Thanks for doing this and making it available! I’ve tried it for a few days and it’s working well, according to my server’s error.log. I’m impressed with the simplicity of both the idea and the implementation.
I’m trying to use the tags in a page to keep an eye on things:
MTAutoban:
Objects:< $ MTAutoBanObjectCount$>
Unique: < $ MTAutoBanUniqueCount$>
Banned: < $ MTAutoBanBannedCount$>
Last Update: < $ MTAutoBanLastUpdated$>
Threshold: < $ MTAutoBanThreshold$>
(there shouldn’t be spaces between the < and the $, but your Wiki code didn’t like it if I left them out)
I put them into the page, but when I try to rebuild it, I get: Can’t locate object method “load” via package “MT::PluginData” at /home/virtual/site51/fst/var/www/cgi-bin/mt/plugins//autoban-lib.pm line 236.
I’m not as familiar with Perl as I could be, so I’m a little lost as to what’s happening here. Any help you can provide would be appreciated.
adam
OK, that looks like a bug that’s masked on my installs by other plugins. For a quick fix, edit autoban-lib.pm, subroutine obtain_stats, around line 234. Immediately after the line
sub obtain_stats {
add the line
require MT::PluginData;
I’ll try to get a patched version out in the next day or two.
UPDATE: New version 1.1.3 with fix available 8 Jul 06.
Have you tried this with MT 3.3? Any issues?
I’m assuming it’s MT 3.3 safe…
It should be OK, but I haven’t tested it yet. I will try to do that in the near future.
is working for me using MT 3.31.
I’ve been installing and running this nice script on my 3.3x blog since this morning, with no apparent side effects so far. I’m using the tags to display a little info about comments junked and IP’s blocked on the main page, but it all needs a little tweaking.
I’m not yet certain that once blocked IP’s are also removed from the .htaccess file afterwards, but I suppose time will tell.
I think Autoban over loads CPU, as we have so many junk comments /trackbacks and constantly hit by trackback and comments. To process all this causing Autoban cpu overload ?. How to disable autoban, should i remove the autoban plugin directory or should I kill any process. Please let me know.
Thanks Prakash
To remove AutoBan, simply remove the plugin directory.
I think it unlikely that AutoBan is the cause of the CPU overload. The plugin takes care to only do one update at a time, even if multiple instances of the trackback or comment script is running (although this can cause other problems, in that multiple junk objects can arrive from the same source if they start the feedback script before the one updating process finishes updating the access file — I decided that was a lesser problem than not limiting the CPU consumption of the plugin).
I have running under FastCGI with MT version 3.35. Occasionally the .htaccess file is wiped out and I and everyone else is locked out, until I can restore the htaccess. I’m assuming this is a problem with FastCGI, perhaps a timeout error when is writing to the file? Is there anything I can do to safeguard against this?
Installed this morning trying to take care of one pesky trackback spammer (IP Address: 81.95.146.227 for those keeping score at home.) It gets past the filters and although not published, sits in the “to be approved folder” and I get the requisite email to approve a trackback.
After installing and changing the frequency to “1” I have moved this to the junk folder now up to five times and deleted. Keeps coming back for more. Same IP. Same junk pings.
Is there a log I can access to see the list of those that have been banned by AutoBann as I’d like to know if I am actually putting a dent in these spammers and the plug in is working. Especially this goof at IP Address: 81.95.146.227.
Any advice would be welcome.
Perry/Chicago
The Best Radio You Have Never Heard Podcast
www.bestradiopodcast.com
Any thoughts on making a version of this available for MT4.
Oh yes, I have thoughts about it :-).
I followed the MT4 roll-out, but frankly it doesn’t do much for me. I suppose I will eventually upgrade, but it might not be until 4.1 or 4.2, as it’s going to be a lot of work to carry all of my customizations over, which means lots of pain for little gain.
I will try to push on this, as I realize that unlike my other plugins, other people actually use this one.
OK, new version (1.2.4) which in basic testing seems to work with MT 3 and MT 4.
First off, have been using the plugin for quite a while and love it, but am having an issue with it and a new server I’m working with.
First off, I’m having perl issues with this server to the point where I had to hard-code the config path into mt.cgi and various other mt-*.cgi files, but that got everything working fine. However, AutoBan is the one plugin I can’t seem to get working still.
It is constantly writing errors like this to the activity log:
AutoBan died with: Can’t locate /plugins/AutoBan/autoban-lib.pm in @INC (@INC contains: /home/username/public_html/cgi-bin/mt/plugins/spamlookup/lib /home/username/public_html/cgi-bin/mt/plugins/Akismet/lib /extlib lib /usr/lib/perl5/5.8.8/i686-linux /usr/l
For giggles, I created a “lib” folder in the AutoBan folder and put the .pm files in there, and it slightly changed the error:
AutoBan died with: Can’t locate /plugins/AutoBan/autoban-lib.pm in @INC (@INC contains: /home/username/public_html/cgi-bin/mt/plugins/spamlookup/lib /home/username/public_html/cgi-bin/mt/plugins/Akismet/lib /home/username/public_html/cgi-bin/mt/plugins/AutoB
So I tried moving the *.pm files to the server’s main lib folder, still didn’t help.
This is CentOS 5, Perl 5.8.8, and perl wizard I’m not, but I have a near equivalent setup with Cent OS 4.5 that works fine (this is a MT 3.33 install that I’ll be upgrading to MT 3.35 shortly, tried with both Autoban 1.2.3 and 1.2.4). Is there anyway I can hard-code into autoban.pl where to look for those lib files so I can at least get it working until I figure out why Perl is being weird?
OK, that comment above got filtered a bit, deleting all “A u t o B a n” (case sensitive, w/out the spaces) references, but hopefully you get the idea.
You can tweak line 96 in autoban.pl, which should read
Change that to the absolute path, e.g.
The logic uses the MT instance to get the config path, so I suspect your AutoBan problem has the same root cause as your other issues.
P.S. I fixed your original comment. It was hosed by a Webiki bug that I need to fix. It tries to convert AutoBan in a link, but it excludes the current post from the target list (because you want it to link to other posts) so you end up with nothing and it’s effectively elided. I think I’ll change it so that if there are no matches, it leaves the word alone rather than replacing it with an empty list of links.
Thanks for this plugin. I would like to make the suggestion though that when a ban occurs, have it recorded in the activity log. That way 1) the admin can see what is occurring and 2) they can double check to make sure the ban isn’t being applied against an actual visitor.
Best regards, -drmike
Greets again. I’ve got a pair of questions. I don’t see any place to contact you or a support forum so I’ll post it here. Hope you don’t mind. Ever since I’ve installed this plugin, I’ve not been able to edit trackbacks that have been labeled as spam. (I’m pulling them up to look at IP addresses.) The error I’ve been getting is:
Undefined subroutine &MT::CMS::TrackBack::build_junk_table called at lib/MT/CMS/TrackBack.pm line 82.
I’m currently using MT4.15b4b-en. Pulling up accepted trackbacks are fine.
Also whenever I go into the System Overview -> Plugins -> 1.2.4 -> Settings, it appears to reset the listings of caught IP addresses.
I gather I’m missing something here.
Thanks, -drmike
I figured out the issue that I was having. After deleting the Marked as Spam trackbacks, the IP addresses get removed from the htaccess file. Not sure if that’s intended.
Thanks, -drmike