Bobcares

How to use Fail2ban for Magento security

by | Dec 24, 2018

Magento is so popular and that’s why it is a juicy target of cyber attackers.

Does that mean using Magento for my website is a risk ?

No.

Luckily, Magento offers too many security features to avoid attacks on your shop. And, Fail2ban largely helps to block these brute-force hack attempts.

At Bobcares, we help website owners to ensure security of Magento stores as part of our Support Services for web hosts.

Today, we’ll see how we configure Fail2ban to make Magento secure.

Why to use Fail2ban to protect Magento?

Magento shop has standard file and folder location in all websites. That is, the admin panel is available at /admin folder, downloads at /downloads and so on. As a result, hackers find  it easy to initiate attack to your Magento store.

One of the method used by hackers is to launch brute-force attacks against your shop. Here, they randomly tries different password combinations and finally breaks into the admin panel.

Even if the store uses a strong password, these incorrect login attempts can slow down the server. Therefore, it is really necessary to block these type of intrusion attempts.

Fortunately, Fail2ban is one of the effective solution to avoid these hack attempts. Fail2ban uses the site’s access logs to check for login failed attempts. Then, it will block these IP addresses on the server.

 

How to setup Fail2ban to protect Magento?

Now, let’s see how we can set up Fail2ban to protect Magento website.

This can be done in 2 steps.

1. Create a jail for Magento

Firstly, we need to create a Fail2ban jail for Magento. For this, we need to create a file /etc/fail2ban/jail.d/magento.conf.

Then add the contents in it.

[magento]
enabled = true
port = http,https
filter = magento
logpath = /magentofolder/var/log/system.log

bantime = 14400
maxretry = 5
findtime = 600

Here, we tell Fail2ban to search for failed login attempts in Magento system.log file. When there are 5 failed attempts within 10 minutes or 600 seconds, it will result in the ban of IP for 4 hours.

2. Create a filter for Magento

Now, we have to create a filter for Magento. For this, we add a file /etc/fail2ban/filter.d/magento.conf

To protect the admin panel from attack, we can add the following contents in it.

[Definition]
failregex = ^<HOST> -.*POST \/index.php\/admin\/.*
ignoreregex =

 

Common fail-points in Magento Fail2ban setup

Although, Fail2ban set up for Magento is rather simple, often it can fail too.

We’ll now take a looks at these failure reasons.

1. IP not banned by Fail2ban

Often, when testing the Fail2ban rules, we can overpass the maxretry limit to enter wrong password and no IP banning happens.

In such cases, our Support Engineers first check the server firewall. And, make sure that the IP is NOT whitelisted. Additionally, we see that only valid IP addresses are white-listed on the server.

2. Bad filter rules

Similarly, often bad filter rules can cause problems with proper working of Fail2ban.

To fix, we analyze and correct the configuration rules. This ensures that the malicious IP addresses are blocked on the server.

 

Conclusion

Fail2ban proves to be an effective method to prevent brute-force attacks in Magento websites. Today, we’ve seen how our Support Engineers set up Fail2ban for Magento and resolve common issues.

 

 

 

PREVENT YOUR SERVER FROM CRASHING!

Never again lose customers to poor server speed! Let us help you.

Our server experts will monitor & maintain your server 24/7 so that it remains lightning fast and secure.

SEE SERVER ADMIN PLANS

var google_conversion_label = "owonCMyG5nEQ0aD71QM";

0 Comments

Submit a Comment

Your email address will not be published. Required fields are marked *

Never again lose customers to poor
server speed! Let us help you.

Privacy Preference Center

Necessary

Necessary cookies help make a website usable by enabling basic functions like page navigation and access to secure areas of the website. The website cannot function properly without these cookies.

PHPSESSID - Preserves user session state across page requests.

gdpr[consent_types] - Used to store user consents.

gdpr[allowed_cookies] - Used to store user allowed cookies.

PHPSESSID, gdpr[consent_types], gdpr[allowed_cookies]
PHPSESSID
WHMCSpKDlPzh2chML

Statistics

Statistic cookies help website owners to understand how visitors interact with websites by collecting and reporting information anonymously.

_ga - Preserves user session state across page requests.

_gat - Used by Google Analytics to throttle request rate

_gid - Registers a unique ID that is used to generate statistical data on how you use the website.

smartlookCookie - Used to collect user device and location information of the site visitors to improve the websites User Experience.

_ga, _gat, _gid
_ga, _gat, _gid
smartlookCookie
_clck, _clsk, CLID, ANONCHK, MR, MUID, SM

Marketing

Marketing cookies are used to track visitors across websites. The intention is to display ads that are relevant and engaging for the individual user and thereby more valuable for publishers and third party advertisers.

IDE - Used by Google DoubleClick to register and report the website user's actions after viewing or clicking one of the advertiser's ads with the purpose of measuring the efficacy of an ad and to present targeted ads to the user.

test_cookie - Used to check if the user's browser supports cookies.

1P_JAR - Google cookie. These cookies are used to collect website statistics and track conversion rates.

NID - Registers a unique ID that identifies a returning user's device. The ID is used for serving ads that are most relevant to the user.

DV - Google ad personalisation

_reb2bgeo - The visitor's geographical location

_reb2bloaded - Whether or not the script loaded for the visitor

_reb2bref - The referring URL for the visit

_reb2bsessionID - The visitor's RB2B session ID

_reb2buid - The visitor's RB2B user ID

IDE, test_cookie, 1P_JAR, NID, DV, NID
IDE, test_cookie
1P_JAR, NID, DV
NID
hblid
_reb2bgeo, _reb2bloaded, _reb2bref, _reb2bsessionID, _reb2buid

Security

These are essential site cookies, used by the google reCAPTCHA. These cookies use an unique identifier to verify if a visitor is human or a bot.

SID, APISID, HSID, NID, PREF
SID, APISID, HSID, NID, PREF