Support

Admin Tools

#32072 My reply to ticket # 32061

Posted in ‘Admin Tools for Joomla! 4 & 5’
This is a public ticket

Everybody will be able to see its contents. Do not include usernames, passwords or any other sensitive information.

Environment Information

Joomla! version
n/a
PHP version
n/a
Admin Tools version
n/a

Latest post by nicholas on Wednesday, 04 December 2019 01:06 CST

grisha
Hello!

Just to reply to you about my previous ticket that you closed without letting me explain myself.

First of all, I never insulted you. I didn't say anything personal about you. You on the other hand, personally attacked my intelligence. Saying that you're selling a good, but a raw product is not a personal insult. But telling someone to use their brain is. Whatever... But you've completely missed my point.

1) I pay you, not otherwise. I've been your customer for well over a decade, so I think that alone is enough for you to respect me, though it doesn't seem like it.

2) If I considered your products not well enough, I wouldn't have used them. Let alone paying for them a sum that for me is not very small.

3) I haven't changed a thing prior to that lockup. I don't use proxy, CDN or anything else. Why would I? Things happen for a reason. And there was no reason for that lockup, except that Admin Tools mistakenly banned me for no good reason. Why do you assume that my server is misconfigured. How do you know that?

4) You said that in your opinion the IP that had been banned wasn't my public one, but 127.0.0.1 But why on Earth Admin Tools would ban a localhost? What for?

5) I didn't claim that Fail2ban and Admin Tools were the same technically. I just said that that free tool never mistakenly triggers IP ban whereas Admin Tools does.

6) Okay, let's say that for whatever reason I was banned by Admin Tools. But why then deleting the whole public html folder and the database and using a back-up to restore the site to its previous state doesn't lift a lockup?
That can only mean one simple thing. That Admin Tools screwed something up in the system somehow. And if my server was wrongly setup as you said, then why after rolling back in time with a Clonezilla image magically makes everything work as a Swiss clock? How do you explain that? Again, in my servers' settings I didn't change anything pretty much.

nicholas
Akeeba Staff
Manager
1) I pay you, not otherwise. I've been your customer for well over a decade, so I think that alone is enough for you to respect me, though it doesn't seem like it.


Respect is a two way street. You accused us of being useless when we replied to your MISLEADING original information with a follow up question which would prove what we suspected, that HTTPS had nothing to do with your issue. When trying to extract relevant information not volunteered is met with sneer and derision we cannot possibly hold an intelligent conversation. Despite that, I gave you my professional opinion which you rebuke in your new ticket, despite also providing hard evidence of its veracity!

In his "Apology" Socrates said to his accusers that he considers himself a wise man because "I know what I know and what I know I don't think I know it either". This quote has been my motto throughout my professional life. When I speak of something with conviction I do so based on my knowledge and experience. When I am not sure I say so. When I am wrong I will be the first to apologize for my mistake.

I understand that you have a lot of confidence in your ability to configure a server. Unfortunately, for someone like me who has a deeper understanding of how servers work, it's pretty clear that this confidence is unwarranted. You reach arbitrary conclusions based on partial knowledge.

If you'd like to understand why you are mistaken please read on. I will give my best effort to ignore your arbitrary conclusions and rude remarks and educate you on the knowledge you are missing. This is important, basic knowledge that you MUST possess if you want to manage your own server. Doing otherwise is irresponsible. It's like setting off to drive in heavy snowfall without understanding the physics of tyre grip and differentials; you'll end up in a ditch (and I think this is something that you've seen so many times on the streets of your country).

4) You said that in your opinion the IP that had been banned wasn't my public one, but 127.0.0.1 But why on Earth Admin Tools would ban a localhost? What for?


This actually proves my point from the previous ticket and disproves item #3 on this ticket. This is also the basic knowledge of how servers work that you are missing.

Admin Tools, Joomla and any PHP script will read the remote client's IP address from the REMOTE_ADDR environment variable set by Apache. This normally contains the IP address of the person making the request. This, however, will NOT be the case if there is something else between your remote user and Apache including the following (by no means a complete list): a proxy such as NginX in reverse proxy mode; a caching proxy such as Varnish; an SSL termination proxy such as HAProxy; a third party web application firewall which effectively acts as a proxy; a CDN. They are collectively called "proxies" because they all proxy the request, i.e. the intervene between the remote client and your actual web server. Depending on where these proxies are located the REMOTE_ADDR in Apache will be your localhost (if they run on the same box and environment as your web server), an IPv4/IPv6 private network address (if they run in a VM on the same or different box; or running on other infrastructure inside the hosting network, e.g. isolated from the Internet behind a proxy/firewall/other router hardware), or an Internet address other than your remote client's (when they run on a different data centre as is the case with CDNs and SaaS web application firewalls).

If the proxy is set up correctly it will be passing along the IP address of the remote client in the HTTP header X-Forwarded-For which is a de facto standard. As explained in our documentation, there's an option in Admin Tools to use that header (or the equivalent headers set by CloudFlare and Sucuri which do not follow the de facto standard for some very sound security reasons). I already told you that you can go to Admin Tools, Web Application Firewall, Configure WAF and set Enable IP Workarounds to Yes.

The reason this option is NOT selected by default is that most of the sites of our clients ARE NOT behind a proxy OR they are behind a proxy but are set up in a way that Apache's REMOTE_ADDR is correctly set. In this most common case respecting the X-Forwarded-For header (which can be set by the remote client) is a massive security issue as it allows an attacker to spoof their IP address. Respecting that header is only safe when your web server is behind a proxy in which case the inbound X-Forwarded-For HTTP header is either dropped at the entry (Internet-facing) node OR amended with the real IP address of the remote user.

And that's why you're paying us good money. Not only we understand why REMOTE_ADDR may lie but we also have the good sense to not enable by default a dangerous option which could result in IP spoofing that opens your site to security issues. You're welcome.

 5) I didn't claim that Fail2ban and Admin Tools were the same technically. I just said that that free tool never mistakenly triggers IP ban whereas Admin Tools does. 


I would like to point out once again that comparing Fail2Ban to Admin Tools, even in the context of which IP address is banned, is disingenuous.

Fail2Ban works ex post facto, analyzing your logs. If I recall correctly (this is something I am not certain about), it will ignore IPv4 / IPv6 reserved internal network addresses. Basically, in your setup, it does nothing at all. Unless, of course, you've set it up to analyze the logs of whatever proxy you have in front of Apache, in which case it will in fact block the correct address. But that's if and only if you've configured it correctly.

Admin Tools, on the other hand, runs inside Joomla which runs inside PHP which runs inside Apache. Its view of the requests is tainted by what Apache, PHP and Joomla have done to the request before it executes.

Comparing two pieces of software that run at entirely different levels of your stack is what makes the comparison disingenuous and insulting. Of course they will not ban the same IP addresses. They have a different view of the request and they are looking for different things. The discrepancy is tautological!

6) Okay, let's say that for whatever reason I was banned by Admin Tools. But why then deleting the whole public html folder and the database and using a back-up to restore the site to its previous state doesn't lift a lockup?


No. No, it doesn't.

It doesn't because what you did is keep your entire server to the last known bad configuration state. Therefore any security exception triggered by Admin Tools, either by yours or someone else's requests, will lead to 127.0.0.1 being banned. This is not an Admin Tools failure. It's the failure of the configuration of the server machine.

That can only mean one simple thing. That Admin Tools screwed something up in the system somehow. And if my server was wrongly setup as you said, then why after rolling back in time with a Clonezilla image magically makes everything work as a Swiss clock? How do you explain that? Again, in my servers' settings I didn't change anything pretty much.


No, this is an arbitrary conclusion based on wishful thinking, not facts. In fact, the facts say the exact opposite!

If you restore the entire server machine to a different configuration state and everything works it proves that your server configuration is at fault.

Moreover, the fact that Admin Tools CAN NOT misconfigure your server machine is tautological, owning to the very fact that not only Admin Tools lacks any code to configure your server machine, it also runs under an unprivileged user which cannot possibly modify your server configuration or restart system services. This means that your actions were at fault.

I do not have enough information to tell you within any degree of certainty exactly what you did wrong. The fact that you refuse having made any change to your server -- something I know is not true, but I'll come to that -- is not conducive to acquiring more information from you.

However, I can speculate. You said that once you enabled HTTPS on your server things started going wrong. This tells me that you didn't just install an SSL certificate on Apache. My educated guess is that you read a tutorial about enabling HTTPS on Apache written at least two to three years ago (or regurgitating material from years past). Back then, the only way to enable HTTP/2 or SPDY on Apache was to either proxy the requests through NginX or use an SSL termination proxy such as HAProxy. In other words, you'd have unwittingly enabled a proxy in front of Apache without fully realizing the implications. I know for a fact that if you just put NginX in front of Apache you'll end up with the exact problem you described. Hosts that know what they're doing (like SiteGround, our host for this site) also use a third party Apache module such as mod_rpaf to have Apache "see" the IP address in the X-Forwarded-For header and pass it along to REMOTE_ADDR. That's why using Admin Tools on SiteGround, which uses NginX as a reverse proxy in front of Apache for SSL termination and caching, works out of the box but in some other hosts or self-managed servers it requires using the Enable IP Workarounds setting. I also know for a fact that merely enabling SSL in Apache itself does not cause this problem since there's no proxying involved. In fact, that's the very same setup I use on my main development machine.

So, please, think hard about what changes you made to your site when you "just enabled HTTPS".

Please do not dispute these objective facts. I've configured and troubleshot far more servers than you have and I really know why things get wonky. I know what I know. You should stop thinking that you know what you don't know. That's not a swipe at you, it's a friendly advice that will primarily help you manage your servers more efficiently and stay out of harm's way. And for God's sake, stop throwing accusations around. It's tiresome, distracting, irritating and I'm under no obligation to take them in stride per our Terms of Service. Thank you for helping me help you.

Nicholas K. Dionysopoulos

Lead Developer and Director

πŸ‡¬πŸ‡·Greek: native πŸ‡¬πŸ‡§English: excellent πŸ‡«πŸ‡·French: basic β€’ πŸ• My time zone is Europe / Athens
Please keep in mind my timezone and cultural differences when reading my replies. Thank you!

grisha
Hello!

Saying hi to your customer is also beyond your TOS? :-)

BTW, the very fact that you voluntarily turned this ticket from public to private shows that you know that others who might read it won't buy your story here. But whatever... my goal is not to damage your business reputation, but to get a technical support from you. As they say it in Russian, one that doesn't make a mistake, does nothing. Meaning that it's impossible to do something without ever making an error. Every piece of software once in a while makes a wrong decision or something else not the way it's supposed to be. And it's NORMAL. I sometimes (rarely though) make mistakes when I teach English as EFL here in Moscow. Anyhow...

1) You didn't asnwer the most important question. Why it all happened in the first place? Why did Admin Tools ban me?

2) Show me anywhere an information that Apache bans localhost because WAF bans it. Why my webserver would care whether inside Joomla some application decided to ban me? What, Apache changes its configuration according to Admin Tools decisions? I doubt it... Moreover... EVEN if you're right. And that it's Apache that was banning me on a localhost. Why the ban message in the browser was from Admin Tools. I'm sure that Apache has its own!

3) I've got a whole bunch of servers in my system and they all work fine. Not just fail2ban, also Postfix/Dovecot, Open VPN, BIND9, the whole LAMP stack. The only thing that is misconfigured is MUA (Thunderbird Mail etc.) I simple use a webmail (Roundcube), so I don't want to spend time to configure it.

4) You're missing another important point here in this discussion. I'm NOT a programmer or any highly qualified Sys Admin. I teach languages for a living. And I pay money to buy your product. And when the product that I bought doesn't work the way it should, it's AUTOMATICALLY your fault and not mine. Regardless of my knowledge of servers etc. It's YOUR software that banned me and NOT APACHE, remember? :-)

nicholas
Akeeba Staff
Manager
I didn't want to embarrass you by making this ticket public. But you know what? I will make it public and out your real name on it. Grigoriy Kotkowski, the person who does not know how servers work, won't try to learn how servers work and who's willing to insult those who do because he's a bully.

To the point.

The answer to question 1 was my last, long reply (all requests appear to come from 127.0.0.1 because your server is misconfigured).

The answer to question 2 is not only a corollary to #1 but also shows that you have no idea what is going on. I never said that Apache banned you. I said that Apache reports the IP address through the REMOTE_ADDR environment variable. This is picked up by PHP which runs inside Apache (and made available in the $_SERVER superglobal). Joomla uses the $_SERVER['REMOTE_ADDR'] superglobal too. Joomla runs in PHP. Joomla loads Admin Tools, therefore Admin Tools runs inside Joomla which runs inside PHP which runs inside Apache. Therefore Admin Tools sees the IP address in REMOTE_ADDR UNLESS YOU CHANGE A CONFIGURATION OPTION as I painfully explained in minute details already twice.

Regarding question 3, it is also a corollary of my previous reply. You know what's common among all these software? They have ABSOLUTELY NOTHING AT ALL to do with your site's Apache configuration. Clearly you know nothing about how servers work.

Finally, regarding #4. You are absolutely incompetent as a sysadmin. However, you insist on managing your servers. The way you screwed up your server makes our software work erratically.

DESPITE THAT I ALREADY GAVE YOU A SOLUTION. I TOLD YOU EXPLICITLY TO SET ENABLE IP WORKAROUND IN OUR SOFTWARE TO YES. YOU DECIDED TO IGNORE ME TIME AND AGAIN, FLAUNT YOUR IGNORANCE AND INCOMPETENCE TO DISPUTE MY KNOWLEDGE ON SUBJECTS YOU ARE CLUELESS ABOUT AND KEEP ON INSULTING ME ON MY ABILITY TO WRITE SOFTWARE THAT WORKS.

You are a bully. Your account is henceforth terminated without refund. And the ticket will forever remain public with your real name attached to it because you requested it to be so.

Good bye.

Nicholas K. Dionysopoulos

Lead Developer and Director

πŸ‡¬πŸ‡·Greek: native πŸ‡¬πŸ‡§English: excellent πŸ‡«πŸ‡·French: basic β€’ πŸ• My time zone is Europe / Athens
Please keep in mind my timezone and cultural differences when reading my replies. Thank you!

Support Information

Working hours: We are open Monday to Friday, 9am to 7pm Cyprus timezone (EET / EEST). Support is provided by the same developers writing the software, all of which live in Europe. You can still file tickets outside of our working hours, but we cannot respond to them until we're back at the office.

Support policy: We would like to kindly inform you that when using our support you have already agreed to the Support Policy which is part of our Terms of Service. Thank you for your understanding and for helping us help you!