Domů » Novinky » WordPress hardening
 

WordPress hardening

V současné době zvýšených útoků a po několika zbořených instalací webů na WordPressu jsem se intenzivně věnoval nastavení tohoto redakčního systému tak, aby byl odolný alepoň základním útokům. Zde je několik kroků a nastavení ověřených praxí, rozdělených do obecných doporučení, nastavení bez znalosti kódování a rozšířená nastavení pro správce.

Obecná doporučení

Používat SSL (https), certifikáty lze snadno pořídit na LetsEncrypt. Používat šablony a pluginy z oficiální repository, odinstalovat nepoužívané šablony a pluginy, ke zvážení je nasazení dvoufaktorové autentizace, instalace aplikačního firewallu, nastavení silných hesel viz níže.

Zabezpečení WordPress v jednoduchých krocích (bez kódování)

Aktualizace

WordPress je open source software, který je pravidelně udržován a aktualizován. Ve výchozím nastavení WordPress automaticky instaluje drobné aktualizace. U hlavních verzí musíte aktualizaci spustit ručně. WordPress také obsahuje tisíce pluginů a motivů, které si můžete nainstalovat na svůj web. Tyto pluginy a motivy jsou spravovány vývojáři třetích stran, kteří také pravidelně vydávají aktualizace. Tyto aktualizace WordPress jsou klíčové pro bezpečnost a stabilitu vašeho webu WordPress. Doporučení je pravidelná kontrola aktualizací jak ručně tak speciálními pluginy, např. Wordfence, viz níže. Také je doporučeno zapnutí automatické aktualizace jádra WordPressu, pluginů a motivů.

Nastavení uživatelských, admin práv a hesel

Nejběžnější pokusy o hackování WordPress používají ukradená hesla. Můžete to ztížit používáním silnějších hesel, která jsou pro váš web jedinečná. Nejen pro oblast správy WordPress, ale také pro účty FTP, databázi, hostingový účet WordPress a vaše vlastní e-mailové adresy, které používají název domény vašeho webu. Mnoho začátečníků nerado používá silná hesla, protože je těžké si je zapamatovat. V tom případě je možné použít správce hesel (Google, aplikace např. Keepass apod.). Dalším způsobem, jak snížit riziko, je neposkytnout nikomu přístup k vašemu účtu správce WordPress, pokud to nezbytně nemusíte. Pokud máte velký tým nebo hostující autory, ujistěte se, že rozumíte uživatelským rolím a možnostem ve WordPressu, než na svůj web WordPress přidáte nové uživatelské účty a autory.

Nastavení hostingu

Vaše hostingová služba na WordPress hraje nejdůležitější roli v zabezpečení vašeho webu WordPress. Dobrý poskytovatel sdíleného hostingu, přijímá další opatření k ochraně svých serverů před běžnými hrozbami. Zde je návod, jak dobrá webhostingová společnost pracuje na pozadí, aby chránila vaše webové stránky a data. Nepřetržitě monitorují svou síť, zda nevykazuje podezřelou aktivitu. Všechny dobré hostingové společnosti mají k dispozici nástroje, které zabrání rozsáhlým útokům DDOS Udržují svůj serverový software, verze php a hardware aktuální, aby zabránili hackerům ve zneužití známé bezpečnostní chyby ve staré verzi. Mají připraveny nasadit plány obnovy po havárii a havárie, které jim umožňují chránit vaše data v případě závažné havárie. Na sdíleném hostingovém plánu sdílíte serverové prostředky s mnoha dalšími zákazníky. To otevírá riziko kontaminace mezi weby, kdy hacker může použít sousední web k útoku na váš web. Používání spravované hostingové služby na WordPress poskytuje bezpečnější platformu pro váš web. Spravované hostingové společnosti pro WordPress nabízejí automatické zálohování, automatické aktualizace WordPress a pokročilejší konfigurace zabezpečení pro ochranu vašeho webu.

Zálohování vašeho webu

Zálohy jsou vaší první obranou proti jakémukoli útoku WordPress. Pamatujte, že nic není 100% bezpečné. Pokud mohou být hacknuty vládní webové stránky, pak mohou být hacknuty i vaše. Zálohy vám umožňují rychle obnovit váš web WordPress v případě, že by se stalo něco špatného. Existuje mnoho bezplatných a placených zálohovacích pluginů WordPress, které můžete použít. Nejdůležitější věc, kterou potřebujete vědět, pokud jde o zálohování, je, že musíte pravidelně ukládat zálohy celé lokality na vzdálené místo (nikoli na váš hostingový účet). Doporučujeme jej uložit do cloudové služby, jako je Amazon, Dropbox, Google drive. Podle toho, jak často svůj web aktualizujete, může být ideální nastavení buď jednou denně, nebo zálohování v reálném čase. Naštěstí to lze snadno provést pomocí pluginů jako UpdraftPlus nebo BlogVault. Oba jsou spolehlivé a hlavně snadno použitelné (není potřeba žádné kódování).

Instalace bezpečnostních pluginů a aplikačního firewallu

Po zálohování je další věcí, kterou musíme udělat, nastavit systém auditu a monitorování, který sleduje vše, co se děje na vašem webu. To zahrnuje monitorování integrity souborů, neúspěšné pokusy o přihlášení, skenování malwaru atd. Dobré zkušenosti mám s pluginem WordFence, jak ve free tak v placené verzi. Instalaci zvládne i začátečník a nastavení pluginu lze provést průvodcem. Po dokončení průvodce jsou spuštěny funkce protokolování auditu, kontrolu integrity, e-mailová upozornění a další důležité funkce. Součástí pluginu je i firewall webových aplikací (WF) který kontroluje provoz na vstupu do vašeho WordPressu.

Zabezpečení WordPress pro správce (vyžaduje znalosti)

Pokud uděláte vše, co jsme doposud zmínili, pak jste v docela dobré formě. Ale jako vždy je toho víc, co můžete udělat pro posílení zabezpečení WordPressu. Některé z těchto kroků mohou vyžadovat znalost kódování.

Změna protokolu na SSL/HTTPS

SSL (Secure Sockets Layer) je protokol, který šifruje přenos dat mezi vaším webem a prohlížečem uživatele. Toto šifrování znesnadňuje někomu čichat a ukrást informace. Jakmile povolíte SSL, váš web bude používat HTTPS místo HTTP, vedle adresy vašeho webu v prohlížeči také uvidíte znak visacího zámku. Certifikáty SSL byly obvykle vydávány certifikačními autoritami a jejich ceny začínají každý rok od 80 dolarů do stovek dolarů. Kvůli zvýšeným nákladům se většina majitelů webových stránek rozhodla nadále používat nezabezpečený protokol. Aby to napravila, rozhodla se nezisková organizace s názvem Let’s Encrypt nabídnout majitelům webových stránek bezplatné certifikáty SSL. Jejich projekt podporuje Google Chrome, Facebook, Mozilla a mnoho dalších společností. Nyní je snazší než kdy jindy začít používat SSL pro všechny vaše weby WordPress. Mnoho hostingových společností nyní nabízí bezplatný certifikát SSL pro váš web WordPress.

Změna výchozího “admin” uživatelského jména

Za starých časů bylo výchozí uživatelské jméno správce WordPress „admin“. Protože uživatelská jména tvoří polovinu přihlašovacích údajů, hackerům to usnadnilo útoky hrubou silou. Naštěstí to WordPress od té doby změnil a nyní vyžaduje, abyste si při instalaci WordPressu vybrali vlastní uživatelské jméno. Někteří instalátoři WordPress na jedno kliknutí však stále nastavují výchozí uživatelské jméno správce na „admin“. Pokud si všimnete, že tomu tak je, pak je pravděpodobně dobrý nápad změnit váš webhosting. Protože WordPress ve výchozím nastavení neumožňuje měnit uživatelská jména, existují tři způsoby, jak změnit uživatelské jméno. Vytvořte nové uživatelské jméno správce a smažte to staré nebo použijte plugin Username Changer nebo aktualizujte uživatelské jméno z phpMyAdmin. Poznámka: Hovoříme o uživatelském jménu s názvem „admin“, nikoli o roli správce.

Zakázat editování souborů

WordPress je dodáván s vestavěným editorem kódu, který vám umožňuje upravovat soubory motivů a pluginů přímo z vaší administrativní oblasti WordPress. V nesprávných rukou může tato funkce představovat bezpečnostní riziko, a proto ji doporučujeme vypnout.

Můžete to snadno provést přidáním následujícího kódu do souboru wp-config.php.


// Disallow file edit
define( 'DISALLOW_FILE_EDIT', true );
error_reporting(0);
@ini_set(‘display_errors’, 0);

Zakažte spouštění souborů PHP v určitých adresářích WordPress

Dalším způsobem, jak posílit zabezpečení WordPressu, je zakázání spouštění souborů PHP v adresářích, kde to není potřeba, jako je /wp-content/uploads/. Můžete to udělat otevřením textového editoru, jako je Poznámkový blok, a vložením tohoto kódu:

<Files *.php>
deny from all
</Files>

Dále musíte tento soubor uložit jako .htaccess a nahrát jej do složek /wp-content/uploads/ na vašem webu pomocí FTP klienta.

Další úpravy souboru .htaccess

Vložte následující do /.htaccess v rootu webu WP

# Block IPs for login (přihlášení z určité IP adresy nebo rozsahu adres)
#<files wp-login.php>
#order deny,allow
#allow from 192.168.0.0/24 
#deny from all
#</files>
<files wp-config.php>
order allow,deny
deny from all
</files>  
# Block WordPress xmlrpc.php requests
<Files xmlrpc.php>
order deny,allow
 deny from all
 allow from 000.00.000.000
</Files>
RewriteRule ^wp-admin/includes/ - [F,L]
RewriteRule !^wp-includes/ - [S=3]
RewriteRule ^wp-includes/[^/]+\.php$ - [F,L]
RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L]
RewriteRule ^wp-includes/theme-compat/ - [F,L]

Nastavení vlastnictví a přístupových práv souborů v rootu WP webu

Změna vlastníka souborů, rekurzivně pro uživatele a skupinu www-data (uživatel pod kterým běží webserver, např apache2), rekurzivně změna práv k adresářům 775 a souborům 644 a k wp-config.php 444.

chown -R www-data:www-data /var/www/webfolder/
for dirs
find /var/www/webfolder/ -type d -exec chmod 755 {} \;
for files
find /var/www/webfolder/ -type f -exec chmod 644 {} \;
chmod 444 /var/www/webfolder/wp-config.php

Omezit pokusy o přihlášení – plugin Wordfence

Instalací pluginu Wordfence získáte nejen nástroj pro omezení počtu neúspěšných pokusů přihlášení, ale současně obsahuje obsahuje firewall pro koncové body a skener malwaru se signaturami a škodlivými IP adresami, které potřebuje k udržení vašeho webu v bezpečí. Jedná se o komplexní řešení pro zabezpečení WordPressu.

Wordfence obsahuje následující funkce. Web Application Firewall identifikuje a blokuje škodlivý provoz. Aktualizace pravidel brány firewall a signatur malwaru v reálném čase prostřednictvím kanálu Threat Defense Feed v premium verzi (bezplatná verze je zpožděna o 30 dní). Seznam blokovaných IP adres v reálném čase blokuje všechny požadavky z nejškodlivějších IP, chrání váš web a zároveň snižuje zatížení. Chrání váš web v koncovém bodě a umožňuje hlubokou integraci s WordPress. Integrovaný skener malwaru blokuje požadavky, které obsahují škodlivý kód nebo obsah. Ochrana před útoky hrubou silou omezením pokusů o přihlášení. Porovná vaše základní soubory, motivy a pluginy s tím, co je v úložišti WordPress.org, zkontroluje jejich integritu a nahlásí vám jakékoli změny. Zkontroluje, zda na vašem webu nejsou známá slabá místa zabezpečení a upozorní vás na případné problémy. Také vás upozorní na potenciální bezpečnostní problémy, když byl plugin uzavřen nebo opuštěn. Kontroluje bezpečnost vašeho obsahu skenováním obsahu souborů, příspěvků a komentářů na nebezpečné adresy URL a podezřelý obsah. Zkontroluje, zda vaše stránky nebo IP nebyly blokovány kvůli škodlivé činnosti, generování spamu nebo jinému bezpečnostnímu problému.

Dvoufaktorová autentizace (2FA), jedna z nejbezpečnějších forem autentizace vzdáleného systému, která je k dispozici prostřednictvím jakékoli autentizační aplikace nebo služby založené na TOTP. Přihlašovací stránka CAPTCHA brání robotům v přihlášení. Zakázat nebo přidat 2FA do XML-RPC. Blokujte přihlášení pro administrátory pomocí známých prolomených hesel.

Díky výkonným šablonám je konfigurace Wordfence hračkou. Vysoce konfigurovatelné výstrahy lze doručovat prostřednictvím e-mailu, SMS nebo Slacku. Zlepšete poměr signálu k šumu využitím možností úrovně závažnosti a možností denního přehledu. Sledujte a upozorňujte na důležité bezpečnostní události, včetně přihlášení správce, použití prolomených hesel a nárůstu aktivity útoku. Zdarma k použití pro neomezené weby. Pomocí Live Traffic můžete v reálném čase sledovat návštěvy a pokusy o hackování, které se nezobrazují v jiných analytických balíčcích; včetně původu, jejich IP adresy, denní doby a času stráveného na vašem webu. Blokujte útočníky pomocí IP nebo vytvořte pokročilá pravidla založená na rozsahu IP, názvu hostitele, uživatelském agentovi a referreru. Blokování zemí dostupné s Wordfence Premium.

Změna WordPress databázového prefixu

Ve výchozím nastavení používá WordPress wp_ jako předponu pro všechny tabulky ve vaší databázi WordPress. Pokud váš web WordPress používá výchozí předponu databáze, pak je pro hackery snazší uhodnout, jaký je název vaší tabulky. Proto jej doporučujeme změnit. Předponu databáze můžete změnit např. v PhpMyAdmin nebo pluginem k tomu určeným, abyste zlepšili zabezpečení. Poznámka: Pokud to není provedeno správně, může to poškodit váš web. Pokračujte pouze tehdy, pokud jste si jisti tím co děláte.

Zakázání prohlížení a indexování adresářů

Procházení adresářů mohou hackeři využít ke zjištění, zda nemáte nějaké soubory se známými zranitelnostmi, aby mohli tyto soubory využít k získání přístupu. Procházení adresářů mohou využít i ostatní lidé k prohlížení vašich souborů, kopírování obrázků, zjištění vaší adresářové struktury a dalších informací. Proto se důrazně doporučuje vypnout indexování adresářů a procházení. Ke svému webu se musíte připojit pomocí FTP nebo správce souborů cPanel. Dále vyhledejte soubor .htaccess v kořenovém adresáři vašeho webu. Pokud jej tam nevidíte, podívejte se do našeho průvodce, proč nevidíte soubor .htaccess ve WordPressu. Poté musíte na konec souboru .htaccess přidat následující řádek: Možnosti – Indexy Nezapomeňte uložit a nahrát soubor .htaccess zpět na svůj web. Další informace o tomto tématu najdete v našem článku o tom, jak zakázat procházení adresářů ve WordPressu.

Při připojování k serveru byste měli používat šifrování SFTP, pokud to váš webový hostitel poskytuje. Pokud si nejste jisti, zda váš webový hostitel poskytuje SFTP nebo ne, zeptejte se ho. Používání SFTP je stejné jako FTP, s tím rozdílem, že vaše heslo a další data jsou při přenosu mezi vaším počítačem a vaším webem šifrována. To znamená, že vaše heslo není nikdy odesláno srozumitelně a nemůže být zachyceno útočníkem. nebo ftp vůbec

Zakázat XML-RPC ve WordPress

XML-RPC bylo ve výchozím nastavení ve WordPress 3.5 povoleno, protože pomáhá propojit váš web WordPress s webovými a mobilními aplikacemi. Vzhledem ke své silné povaze může XML-RPC výrazně zesílit útoky hrubou silou. Pokud by například hacker chtěl na vašem webu tradičně vyzkoušet 500 různých hesel, musel by provést 500 samostatných pokusů o přihlášení, které budou zachyceny a zablokovány pluginem pro uzamčení přihlášení. Ale s XML-RPC může hacker použít funkci system.multicall a vyzkoušet tisíce hesel s řekněme 20 nebo 50 požadavky. To je důvod, proč pokud nepoužíváte XML-RPC, doporučujeme jej zakázat. Existují 3 způsoby, jak deaktivovat XML-RPC ve WordPress, a my jsme je všechny pokryli v našem návodu krok za krokem, jak deaktivovat XML-RPC ve WordPressu. Tip: Metoda .htaccess je nejlepší, protože je nejméně náročná na zdroje. Pokud používáte dříve zmíněný firewall webových aplikací, může se o to postarat firewall.

Automatické odhlášení uživatele při nečinnosti

Přihlášení uživatelé se někdy mohou vzdálit od obrazovky, což představuje bezpečnostní riziko. Někdo může unést jejich relaci, změnit hesla nebo provést změny ve svém účtu. To je důvod, proč mnoho bankovních a finančních stránek automaticky odhlásí neaktivního uživatele. Podobnou funkci můžete implementovat i na svůj web WordPress. Budete si muset nainstalovat a aktivovat plugin Inactive Logout. Po aktivaci přejděte na stránku Nastavení » Neaktivní odhlášení a nakonfigurujte nastavení pluginu. Jednoduše nastavte dobu trvání a přidejte zprávu pro odhlášení. Nezapomeňte kliknout na tlačítko uložit změny, abyste svá nastavení uložili.

Přidání bezpečnostní otázky v přihlašovacím dialogu

Přidáním bezpečnostní otázky na přihlašovací obrazovku WordPress je pro někoho ještě těžší získat neoprávněný přístup. Bezpečnostní otázky můžete přidat instalací pluginu WP Security Questions. Po aktivaci musíte navštívit stránku Nastavení » Bezpečnostní otázky a nakonfigurovat nastavení pluginu. Podrobnější pokyny najdete v našem návodu, jak přidat bezpečnostní otázky na přihlašovací obrazovku WordPress.

Restrikce v právech pro databázového uživatele

Pro běžné operace WordPress, jako je zveřejňování příspěvků na blogu, nahrávání mediálních souborů, zveřejňování komentářů, vytváření nových uživatelů WordPress a instalace pluginů WordPress, potřebuje uživatel databáze MySQL pouze oprávnění pro čtení a zápis dat do databáze MySQL; VYBRAT, INSERT, AKTUALIZOVAT a DELETE.

Proto mohou být odebrána jakákoli další databázová struktura a administrátorská oprávnění, jako je DROP, ALTER a GRANT. Odebráním takových oprávnění také zlepšujete zásady omezení.

Poznámka: Některé pluginy, motivy a hlavní aktualizace WordPress mohou vyžadovat provedení změn struktury databáze, jako je přidání nových tabulek nebo změna schématu. V takovém případě budete muset před instalací pluginu nebo aktualizací softwaru dočasně povolit uživateli databáze požadovaná oprávnění.

VAROVÁNÍ: Pokus o aktualizaci bez těchto oprávnění může způsobit problémy, když dojde ke změnám schématu databáze. Nedoporučuje se tedy tato oprávnění odebírat. Pokud z bezpečnostních důvodů cítíte potřebu to udělat, ujistěte se prosím, že máte nejprve připravený solidní plán zálohování s pravidelnými zálohami celé databáze, které jste otestovali, jsou platné a které lze snadno obnovit. Neúspěšný upgrade databáze lze obvykle vyřešit obnovením databáze zpět na starou verzi, udělením patřičných oprávnění a poté nechat WordPress zkusit aktualizaci databáze znovu. Obnovení databáze ji vrátí zpět na starou verzi a administrační obrazovky WordPressu pak detekují starou verzi a umožní vám na ní spouštět potřebné SQL příkazy. Většina upgradů WordPress schéma nezmění, ale některé ano. Schéma změní pouze hlavní aktualizace bodů (například 3.7 až 3.8). Menší upgrady (3.8 až 3.8.1) obecně nebudou. Přesto mějte pravidelnou zálohu.

Změna WordPress URL přihlašovací stránky

Ve výchozím nastavení je přihlašovací URL vašeho webu WordPress domain.com/wp-admin. Jedním z problémů je, že to vědí také všichni boti, hackeři a skripty. Změnou adresy URL se můžete stát méně cílem a lépe se chránit před útoky hrubou silou. Toto není univerzální řešení, je to jen jeden malý trik, který vás může určitě pomoci ochránit. Pro změnu přihlašovací URL pro WordPress doporučujeme použít bezplatný přihlašovací plugin WPS Hide nebo prémiový plugin Perfmatters. Oba pluginy mají jednoduché vstupní pole. Nezapomeňte si vybrat něco jedinečného, co ještě nebude na seznamu, který by se mohl pokusit prohledat robot nebo skript.

Oprava hacknutého WordPress webu

Mnoho uživatelů WordPress si neuvědomuje důležitost zálohování a zabezpečení webu, dokud jejich web není napaden. Čištění webu WordPress může být velmi obtížné a časově náročné. Naší první radou by bylo nechat to, aby se o to postaral profesionál. Hackeři instalují zadní vrátka na postižené stránky, a pokud tato zadní vrátka nejsou správně opravena, bude váš web pravděpodobně znovu napaden. Obnovu ze zálohy přenechejte odborníkovi.