Fórum podpory

Zabezpečení WordPressu doporučení 2v1 2016-06-11 21:44
Linux

Zabezpečení WordPressu I,základ + II,pokročilejší

dobrý den, občas zapomeneme v zápalu tvoření na samotný základ,zabezpečení WP.Zde uvedu pár tipů,jelikož sem tam WP také používám,případné rady nebo doplnění pište rádi uvítáme nové nápady.

I. Základ :

1, pravidlné aktualizace
2, odstranit soubory readme.html a license.txt, které zobrazují nainstalovanou verzi WordPressu (aby jen tak snadno někdo nezjistil, jakých bezpečnostních děr může využít)

3,pluginy pomáhající s bezpečností :https://wordpress.org/plugins/login-lockdown/
https://wordpress.org/plugins/better-wp-security/
https://wordpress.org/plugins/wordfence/

4,Nastavení souboru .htaccess
(před provedením změn v souboru .htaccess ho nezapomeňte zálohovat! Nesprávné změny v .htaccess mohou způsobit nefunkčnost celého webu.)

A) Ochrana wp-config.php

kód, který vložíte do .htaccess:

# zabezpečení wp-config.php

order allow,deny
deny from all


Tímto zamezíte komukoliv v přístupu k souboru wp-config.php.

B) Přístup do administrace pouze z vaší IP adresy

Pomocí .htaccess lze snadno omezit přístup do adresáře s administrací, musíte ale vytvořit nový .htaccess soubor ve složce wp-admin na vašem serveru. Do nového souboru v administrační složce vložte tento kód:

order deny,allow
allow from 192.712.221.244
deny from all
– nezapomeňte upravit IP adresu na tu svoji

/Tímto zamezíte přístupu do administrace komukoliv s jinou IP adresou než je ta vaše. Pozor ale na dynamické IP adresy – pokud se vaše adresa často mění, budete ji muset měnit i v .htaccess. Jestliže přistupujete do administrace z více míst, musíte přidat nový řádek s IP adresou jiného počítače./

C)Zákaz vstupu do wp-content

(wp-content obsahuje obrázky, šablony, pluginy a celkově hraje velmi důležitou roli pro funkci WordPressu, proto by se k němu běžný návštěvník neměl dostat. Opět stačí vytvořit nový .htaccess soubor přímo v daném adresáři (wp-content). Uživatelům povolíme načítání pouze těch souborů, které nenaruší bezpečnost. Tímto krokem ochráníme důležité .php soubory)

Kód:

Order deny,allow
Deny from all

Allow from all


D) Ochrana jednotlivých souborů

Přes .htaccess je možné chránit i jednotlivé soubory, například .htaccess samotný. Opět použijeme oblíbenou formulaci „order allow,deny“:


order allow,deny
deny from all


Název souboru můžete samozřejmě nahradit jakýmkoliv jiným.


E)Zabezpečení .htaccess

Na webu se často nachází několik .htaccess souborů a nejlepším řešením je chránit všechny zároveň pomocí jednoho příkazu. Pomůžeme si regulárním výrazem:


order allow,deny
deny from all
satisfy all


Tento kód zabrání komukoliv prohlížet všechny soubory, které začínají na „hta“.



II-Pokročilejší metoda


1. Nepoužívejte uživatelské jméno admin

Nejčastěji atakované uživatelské jména jsou: admin, test, user, administrator, a další viz statistiky z DDOS útoku na WordPress tak ty rozhodně nepoužívejte. Pokud již máte admin uživatelské jméno je třeba ho zrušit zřízením nového uživatele, přidáním admin práv (+ super admin v případě WPMU), odlogovat, přihlásit jako nový admin a smazat původní účet. Při smazání přesuňte všechny články a nového admina. Nejdříve zálohujte databázi.
2. Použijte silné heslo

Podívejte se na nejpoužívanější hesla při DDOS útoku na WordPress a ty si určitě nedávejte: admin, 123456, password, 12345678, 666666, 111111, 1234567, qwerty, 23321, 12345, 123123 a další viz odkaz statistiky výše. Kromě silného hesla by jste měli heslo čas od času změnit. Pokud máte hesel více můžete využít nástroj na správu hesel, je jich více já používám LastPass.
3. Omezení práv souborů a složek

Nastavením složek je preventivní a doporučuji nastavit níže uvedené hodnoty. Dejte pozor na některé konkrétní pluginy které mohou vyžadovat něco jiného!

CHMOD hodnota pro složky 755 nebo 750
CHMOD hodnota pro soubory 644 or 640
wp-config.php by měl mít práva 600
.htaccess nastavte 440 nebo 444 – Pozor nikdo pak nebude mít možnost upravovat soubor dokud přes ftp zvýšit práva na 644.

4. Zálohujte

Záloha má dvě části jedna je záloha databáze a druhá záloha souborů na FTP. Záloha je třeba udělat je jiný disk (a jiný server). Takže ideálně zálohy ukládejte někam jinam přes FTP, úložiště typu Dropbox a podobně.

Záloha databáze – pamatujte si, že snapshotem disku (např. VPS) se DB může zálohovat chybně. Vetšinou je na to potřeba nějaký softwarový agent, který udělá export DB
Záloha souborů – soubory je třeba zálohovat jsou: .htacces, wp-config.php, uploads, šablona a nějaké jiné soubory, kde jste dělali ručně změnu

Pluginy pro backup

Better WP Security – umí poslat DB emailem, vhodné pro menší weby
Snapshot (placený) – odsypává zálohy DB a souborů na dropbox, FTP atd.
BackupBuddy (placený) doporučení z ebooku viz zdroje
VaultPress (placený) celkem dost lidí ho doporučuje

5. Změnte prefixu databáze

WordPress při instalaci umožňuje změnit prefix z wp_ na cokoli jiného například gta_ . Některé pluginy tu umožňují udělat i zpětně. Zde doporučuji zálohovat databázi. Tato změna pomáhá předcházet SQL injection útokům.
6. Zabezpečení přihlašovací stránky

Nastavte max množství chybných přihlášení v určitém časovém úseku. Takže například v rámci 5 minut dovolíte max 5 krát se špatně přihlásit. Pokud se někdo zadá pošesté špatné heslo pak dostane ban na IP adresu na 15 minut se nejde přihlásit z dané IP adresy. Tohle je opravdu důležité, neuvěřili byste kolik robotů projíždí WordPress weby a zkouší se prolomit dovnitř pomocí odhadnutí přihlašovacího jména a hesla. Zde jsou tipy na pluginy:

Better WP Security – je to jedna z více funkcí
Limit login attemps – často doporučovaný, jednoúčelový plugin

7. Aktivujte SSL (https) pro přihlášení do administrace

Nastavte SSL šifrování tedy https pro přihlášení do administrace. Pokud máte kvalitní hosting tak ten Vám umožní použít jejich SLL certifikát pokud to budete využívat jen pro přihlášení do administrace. Toto lze nastavit pomocí pluginu nebo jednodušeji vložením následujícího kódu do wp-config.php

define(‘FORCE_SSL_LOGIN’, true);
define(‘FORCE_SSL_ADMIN’, true);

8. Zamkněte WordPress administraci /wp-admin/ na konkrétní IP adresy

Díky jednoduchému zápisu do .htaccess v /wp-admin/ složce máte možnost omezit přístup pouze na konkrétní IP adresu. Vytvořte .htaccess ve složce /wp-admin/ a vložte do něj kód viz níže. Editujte IP adresu na tu Vaší, případně si jich dejte více.

#zakáže přístup do wp-admin a povolí jen konkrétní IP adresy
Order Deny,Allow
Deny from all
#IP address to Whitelist
allow from 123.123.123.123

Pokud však používáte CloudFlare, nebude Vám výše uvedený způsob zamknutí složky /wp-admin/ fungovat. Je třeba vložit upravený kód dle rady http://blog.ergatides.com

# add the following lines to /wordpress/wp-admin/.htaccess
SetEnvIf X-FORWARDED-FOR 123.123.123.123 allowedip
order deny,allow
deny from all
allow from env=allowedip

9. Zamknutí přihlášení wp-login.php na konkrétní IP adresy

Pokud budete zamykat složku /wp-admin/ na konkrétní IP adresy, zamkněte určitě také soubor wp-login.php. Stačí opět zápis do .htaccess ale v hlavní složce /WWW/. Použijte tento kód:

# add the following lines to /wordpress/.htaccess

order deny,allow
deny from all
allow from 123.123.123.123


Pokud však používáte CloudFlare, nebude Vám výše uvedený způsob zamknutí složky fungovat stejně jako výše. Je třeba vložit upravený kód:

# add the following lines to /wordpress/wp-admin/.htaccess
SetEnvIf X-FORWARDED-FOR 123.123.123.123 allowedip
order deny,allow
deny from all
allow from env=allowedip

10. Přesuňte wp-config.php o úroveň výšewp-config_ouroven_vyse

WordPress umožňuje přesunout wp-config.php u úroveň výše – do hlavního adresáře FTP který je nad www nebo public_html a není z internetu dostupný. Podívejte se na obrázek, takto mě to na Wedosu funguje.
11. Vypněte editaci šablon a pluginů z administrace

Vypnutí editace souborů z administrace WordPressu je celkem jednoduchá věc. Místo toho editujte přes SFTP. Stačí pouze tento zápis do wp-config.php:

define('DISALLOW_FILE_EDIT', true);

12. Ochrana adresáře wp-includes

Do .htaccesu vložte následující kód: (nevyzkoušeno)

# Block the include-only files.
RewriteEngine On
RewriteBase /
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]

# BEGIN WordPress

Toto nebude moc dobře fungonat na multisite a navíc RewriteRule ^wp-includes/[^/]+.php$ – [F,L] bude blokovat ms-files.php generování obrázků. Netestováno.
13. Scanujte soubory a databázi na podezřelé typy kódu

Tohle je trocho pro pokročilé, nicméně tyto pluginy Vám proscanuje stránky a databázi a umáže podezřelé kódy jako base64 encode a podobně.

Exploit Scanner – scanuje všechny soubory na škodlivý kód
Další doporučovaný je Sucuri Scanner – nevím jestli je podmínkou placený účet na jejich webu
Scanujte šablony pomocí TAC pluginu

14. Další zabezpečení v .htaccess

#Zakáže přímý přístup přes prohlížeč k souborům htaccess a htpasswd, a
#všem s příponou ini,txt,phps,fla,psd,log,sh,bak,backup,back,set a hlavně sql

Order Allow,Deny
Deny from all

Order Allow,Deny
Deny from all


#Ochrání důležitý soubor wp-config.php - alternativa k bodu 9.

order allow,deny
deny from all


15. All-in-one bezpečnostní pluginy

Dost práce za Vás mohou udělat bezpečnostní pluginy. Výběr je na Vás, zde jsou dva zajímavé

Better WP Security – tenhle používám, nutno si s nastavením pohrát a otestovat to
BulletProof Security – neznám ale doporučují ho

16. Automatické aktualizace

Počínaje verzí 3.7 začal WordPress používat automatické aktualizace samotného jádra WordPressu pro významné nové verze. Tím je myšleno 3.7, 3.8, 3.9 a podobně. Automatické aktualizace se netýkají pluginů, šablon a drobných bezpečnostních záplat. Drobné bezpečnostní aktualizace se označují 3.9.1, 3.9.2, 3.9.3 a podobně. Automatické akualizace ssebou nesou riziko, že pokud nebude nějaký používaný plugin nebo šablona delší dobu aktualizovaná jeho tvůrcem, může Vám to udělat na webu nejakou chybu. Vždy je třeba projít stránky jestli dobře fungují. Nicméně automatické aktualizace se dají nastavit v wp-config.php

Zakázaní automatických aktualizací

# Disable all core updates:
define( 'WP_AUTO_UPDATE_CORE', false );

Povolení všech automatických aktualizací jádra WP včetně drobných

# Enable all core updates, including minor and major:
define( 'WP_AUTO_UPDATE_CORE', true );

Nastavení automatické aktualizace pluginů

# zapne automaticke aktualizace pluginu
add_filter( 'auto_update_plugin', '__return_true' );

Nastavení automatické aktualizace šablon

# zapne automaticke aktualizace sablon
add_filter( 'auto_update_theme', '__return_true' );

Upozorňuji, že šablony musí podporovat automatické aktualizace!

17. Vypněte hlášení PHP chyb na stránkách

Jestliže plugin nebo šablona způsobí chybu, tak chyba se pak může ukázat na stránkách pokud to nemá hostingová firma vypnuté globálně. Takové chybové hlášení může usnadnit práci pirátům. Chybové hlášení vypnete zápise následujícího kódu do wp-config.php:

# disable error reporting
error_reporting(0);
@ini_set(‘display_errors’, 0);



18. Vypněte XML-RPC Pingback

Od verze WordPressu 3.5 byl XML-RPC zapnut již v základu. Tato funkce umožňuje vzdáleně připojit WordPress na blogovací klienty. Je také používán na trackbacky a pingbacky. Bohužel hackeři využívají tento soubor a utočí na něj DDOS útokem. Podívejte se na plugin Disable XML-RPC Pingback. Zatím jsem vypnutí XML-RPC Pingback netestoval, budu rád pokud se podělíte o své zkušenosti.
iThemes Security nově umí zabezpečit i XML-RPC. Můžete nastavit tři stavy:

Off = funkce XMLRPC je zapnuto
Only Disable Trackbacks/Pingbacks = vypne trackback/pingback, ale ostatní funkce budou fungovat. Některé jsou potřeba pro služby jako Jetpack nebo WordPress Mobile aplikaci.
Completely Disable XMLRPC – kompletně vypne XMLRPC

19. Dvoufázové přihlašování

dvoufazove_overeni_prihlaseniJedno z nejlepších zabezpečení. Přihlášení je klasicky uživatelské jméno a heslo. U dvoufázového přihlášení musíte ještě zadat vygenerovaný aplikací z mobilního telefonu. Normálně znáte z internetového bankovnictví zasílání kódu pomocí SMS zde se využívá mobilní aplikace.

Aktivace dvoufázového ověření při přihlášení:

Instalujte plugin SZ – Google
Aktivujte plugin
Deaktivujte Google+ modul a aktivujte Google Authenticator modul
Instalujte aplikaci Google Authenticator v Android telefonu
Běžte do vašeho profilu ve WordPressu „uživatelé – profil“ a v řádku Secret klikněte na „Create new code“
Vytvořte profil v aplikaci (například název webu) a opište kód do aplikace v telefonu nebo pokud máte čtečku QR codů ho scanujte do aplikace (aplikace v telefonu umožňuje nascenovat QR kód ale chce externí čtečku kódu). Poté uložte
Naposledy zaškrtněte ve WordPressu v části Google Authenticator Active a uložte
Poté se odhlaste z WordPressu a přihlašte se

Zajímavá alternativa pro registraci uživatelů do WordPressu je kontrolní otázka například „Napište tisíc v číslech:“, používám plugin Signup Code.

20. Zamezení zjištění uživatelského jména pomocí ?author=1

Divili jste se někdy jak mohl robot zjistit Vaše uživatelské jméno a už jen tipuje hesla? Stačí napsat domena.cz/?author=1 poté se přesměruje na domena.cz/author/jmeno/. Zkuste si to na Vašem WordPressu. Díky za tip Vladimírovi Smitkovi a jeho prezentace z 3.Wordpress konference.

Tento zápis vložte do .htaccess

# zamezi zjisteni username pomocí ?author=1
RewriteCond %{QUERY_STRING} author=d
RewriteRule ^(.*)$ http://domena.cz? [L,R=301]

Alternatiova (ověřuje jestli fungují obě)

# zamezi zjisteni username pomocí ?author=1
RewriteCond %{REQUEST_URI} ^/$
RewriteCond %{QUERY_STRING} ^/?author=([0-9]*)
RewriteRule ^(.*)$ http://www.DOMENA.cz/? [L,R=301]

21. Zapomenutá instalace WordPressu v podadresáři

Martin v komentářích popsal zkušenost jak zapomenutá instalace WordPressu v podadresáři hakla a shodila celý webhosting. Kdy testovací instalace WordPressu zůstala zapomenutá, neaktualizovala se později byla hacknutá, rozesílala spam a napadla i hlavním instalaci WordPressu v root adresáři. Nezapomeňte takové instalace WordPressu v podadresáři webhostingu smazat.
Další bezpečnostní tipy

Nepoužívejte nejlevnější nebo free hosting
Dejte pozor odkud se přihlašujete – používejte jen svůj počítač a mobil na přihlášení do administrace. V žádném případě se nepřihlašujte v kavárně nebo u kamaráda, který hraje cracnuté hry a má možná trojského koně nebo je dokonce zombie a ani to neví
Aktualizujte, aktualizujte, aktualizujte
Smažte nepoužívané účty
Smažte nepoužívané pluginy a šablony, nechte aktivní a jednu základní např. twentyten
Dejte vždy (zákazníkovi, editorovy) co nejnižší možné práva, nedávejte jim administrátorské práva
Méně pluginů znamená více
Secret keys – zkontrolujte si jestli se Vám při instalaci vygenerovali secret keys v wp-config.php, pokud se tak nestalo zde
Použijte SFTP namísto FTP – ověřte si jestli umí Váš hosting SFTP a použijte je namísto FTP
sucuri.net/signup –
Online kontrola webu zdali jste na blacklistu přímo na nástěnce
Kontrola základních bezpečnostních prvků + jejich nastavení zaujal me tento:
do adresáře /www/wp-content/uploads vloží .htaccess s kódem


deny from all


Snad pomůže,

Michal


NABÍDKA
Re: Zabezpečení WordPressu doporučení 2v1 2016-06-12 09:11
Linux

VAROVANI:

Zálohujte databáze,zálohujte všechno před úpravami,stáhněte a uložte(pro případ čehokoliv-zálohujte raději ručně,pravidelně vím o čem mluvím..)

Prosím Vás zásahem do .htaccess riskujete nefunkčnost webu,v případě že Vám naskočí 403,404 chybová hláška a web je nedostupný,právě třeba kvůli překliku v editaci .htaccess--> Nepanikařte.

Přes FTP>do Root>a upravte na staré hodnoty nebo nahrajte zálohovaný .htaccess.

Stačí překlik a web nefunguje(stalo se mi to několikrát).Mnohem jednodušší je využití pluginů jak jsem psal víš.Jestli máte na webu spousty věcí a dost času jste trávili tvorbou vždy zálohujte.

To samé pokud vám nejde ADMIN LOGIN přes web a padáte do 404 a redirectu,máte chybičku v WP-Admin .htaccess zase oprava stejná FTP>Public>upravit WP admin.

Zdraví Michal


NABÍDKA
Poslední aktualizace
chyba 404
2017-02-19 21:59
Zyro vs Wordpress a SSL
2016-06-26 16:40
Připomínka slev 55 %!
2016-06-15 21:18

Co se děje:
Statistiky fóra
Témata: 76, Příspěvky: 149
Členové: 59, Aktivní členové: 51
Vítáme našeho nejnovějšího člena, Multi-Design