Rozjíždím WordPress

Tak je to tady, už jsem taky pojídač koláčků a místo používání vlastního blogovacího software jsem přešel na WordPress. Protože jsem slyšel hrůzyplné historky na téma nebezpečnosti tohoto redakčního systému, první kroky vedly k jeho zabezpečení. Neberte prosím předchozí větu jako výzvu k útoku 🙂 Podělím se s vámi o pár zkušeností, které jsem získal.

Mám svůj virtuální stroj u AdminIT, ale nechtěl jsem kluky otravovat a tak jsem se pokusil instalovat vše svépomocí, přestože nejsem admin. První návod mi pomohl rozjet základní instalaci WP. Pro zabezpečení, aby administrace byla přístupná jen přes zabezpečený SSL protokol a vyžadovala klientský certifikát, jsem vygoogloval další návod.

Chtěl jsem použít kvalifikovaný certifikát od PostSignum. Musel jsem stáhnout certifikáty autority v PEM formátu a sloučit je do jediného souboru (cat postsignum_qca2_root.pem  postsignum_qca2_sub.pem >> postsignum_CA.pem). Další problém byl ve specifikaci klientského certifikátu, nepodařilo se mi definovat požadavky na Issuera a nakonec jsem se spokojil jen s podmínkou na organization unit mého certifikátu. Ještě jsem musel nastavit velikost SSL bufferu, protože jinak padal upload souboru na chybu Request Entity Too Large. Dále pro textová URL jsem musel předefinovat volbu AllowOverride z None na All. Pro zajímavost následují ukázky z konfigurace Apache.

/etc/apache2/sites-available/wordpress

<Directory /var/www/wordpress>
 Options Indexes FollowSymLinks MultiViews
 AllowOverride All
 Order allow,deny
 allow from all
</Directory>
RewriteEngine On
 RewriteRule ^(/wp-admin/.*) https://www.literak.cz$1 [L,R=permanent]
 RewriteRule ^(/wp-login.php.*) https://www.literak.cz$1 [L,R=permanent]

/etc/apache2/sites-available/wordpress-ssl

<Location /wp-admin>
 SSLCACertificateFile    /etc/apache2/ssl/postsignum_CA.pem
 SSLVerifyClient require
 SSLVerifyDepth  3
 SSLRequire %{SSL_CLIENT_S_DN_OU} eq "PXXXXX"
 SSLRenegBufferSize 10486000
</Location>