Hogyan lehet biztonságossá tenni a tartalomkezelő rendszert az IP-címekhez való hozzáférés korlátozásával

A tartalomkezelő rendszerek, például a Joomla, a Wordpress, a PrestaShop  adminisztrációs felületét gyakran támadják meg olyan robotok, amelyek megpróbálják rákényszeríteni a jelszót a rendszerre.

A brute force támadás (más néven brute force attack) egy olyan titkosított vagy kódolt adatok elleni támadás, amelynek során a támadó egyszerűen úgy próbál hozzáférni az adatokhoz, hogy megpróbálja a jelszavak vagy kulcsok összes lehetséges kombinációját, amíg meg nem találja a megfelelőt. Ezt a fajta támadást gyakran használják jelszavak feltörésére, ahol a támadó olyan programot használ, amely a karakterek összes lehetséges kombinációját kipróbálja, akár egymás után, akár párhuzamosan több számítógépen egyszerre.

A nem kívánt tevékenység korlátozásának ajánlott gyakorlata az, hogy csak a felsorolt IP-címek számára engedélyezze a hozzáférést a könyvtárhoz.
A .htacccess fájl használatát támogató tárhely esetén lehetőség van a fájl létrehozására vagy szerkesztésére a következő kóddal (például a Joomla biztonsága érdekében hozza létre az "administrator" könyvtárban):
RewriteEngine on 
RewriteCond %{REMOTE_ADDR} !^(81.2.196.122|81.2.196.123)$ 
RewriteRule ^(.*)$ - [F,L]
A Wordpress rendszerhez pontosabb jelölést kell használni, és a .htaccess fájlt a webhely gyökérmappájába kell helyezni. Ez a webhely www mappája és az aldomain subdoms/aldomain_neve mappa:
RewriteEngine on 
RewriteCond %{REQUEST_URI} /wp-login\.php [OR] 
RewriteCond %{REQUEST_URI} /xmlrpc\.php [OR] 
RewriteCond %{REQUEST_URI} /wp-signup\.php [OR] 
RewriteCond %{REQUEST_URI} /wp-admin 
RewriteCond %{REQUEST_URI} !/admin-ajax\.php RewriteCond %{REMOTE_ADDR} !^(81.2.196.122|81.2.196.123)$ 
RewriteRule ^(.*)$ - [F,L]
A kódban cserélje ki az IP 81.2.196.122 és 81.2.196.123 IP-címeket azokkal a címekkel, amelyekről a könyvtárhoz vagy fájlokhoz szeretne hozzáférni.
Ennek a címnek az ismerete előfeltétel. A kapcsolat nyilvános IP-címét például a https://ipcim.com/hu/ oldalon találhatja meg.

A GeoIP modul a Linux szerverre is telepítve van, ahol az utolsó sort a feltételre cserélve adott országokból engedélyezhető a hozzáférés
RewriteCond %{REMOTE_ADDR}...
A fenti sort cserélje ki a következő sorra:
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} !^(CZ|SK|HU)$
Az országkódok teljes listája itt található: https://www.geonames.org/countries/

A Windows operációs rendszeren tárolt webhelyek esetében ugyanez a hatás érhető el a web.config fájl szerkesztésével. Az alábbiakban egy példa látható a Wordpresshez használt fájlra.
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
    <rewrite>
      <rules>
        <rule name="wordpress" patternSyntax="Wildcard">
            <match url="*" />
                    <conditions>
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
                    </conditions>
            <action type="Rewrite" url="index.php" />
        </rule></rules>
    </rewrite>
       
  </system.webServer>
    <location path="xmlrpc.php">
        <system.webServer>
            <security>
                <ipSecurity allowUnlisted="false">
                    <add ipAddress="81.2.196.184" allowed="true" />
                    <add ipAddress="77.75.79.39" allowed="true" />
                </ipSecurity>
            </security>
        </system.webServer>
    </location>
    <location path="wp-login.php">
        <system.webServer>
            <security>
                <ipSecurity allowUnlisted="false">
                    <add ipAddress="81.2.196.184" allowed="true" />
                    <add ipAddress="77.75.79.39" allowed="true" />
                </ipSecurity>
            </security>
        </system.webServer>
    </location>
</configuration>