1. WordPress runterladen und auf euren FTP hochladen ( zB. FileZilla )
Englisch ( http://wordpress.org/download/ )
Deutsch ( http://de.wordpress.org/ )
2. Config.php konfigurieren
Schreibt in die Config.php eure Datenbank Informationen rein, sollte so aussehen :
define(‘DB_NAME’, ‘Datenbankname’);
define(‘DB_USER’, ‘Datenbankbenutzer’);
define(‘DB_PASSWORD’, ‘Datenbankpasswort’);
define(‘DB_HOST’, ‘localhost’);
define(‘DB_CHARSET’, ‘utf8′);
define(‘DB_COLLATE’, ”);
Außerdem ist es empfehlenswert einen anderen Präfix als wp_ zu benutzen
$table_prefix = ‘myblog123_’;
Disallow File Edit solltet ihr erst verbieten wenn ihr alle Einstellungen beendet habt.
define(‘DISALLOW_FILE_EDIT’, true);
Damit keine Fehlermeldungen auf eurer Webseite angezeigt werden und ggf. sonstiges angezeigt wird was besser nicht angezeigt werden sollte, muss der Debug Modus ausgestellt werden
define(‘WP_DEBUG’, false);
Lasst euch Schlüssel generieren und fügt diese ebenfalls hinzu https://api.wordpress.org/secret-key/1.1/
zum Beispiel : ohne “// ” … Bitte generiert euch “eigene”
// define(‘AUTH_KEY’, ‘Y5x@O^>N#A(Oa__aNW3-[2Z%3(4A> _OHx,3So%N=AzZ[O+1w&gBQ v$@pAn/7|[');
// define('SECURE_AUTH_KEY', '2WG|>])]7.vT$O$u|?hh| D0Q8|nH%QL=9bS,6@uw_5^d$pr-1n5(/+^|y.R;U’);
// define(‘LOGGED_IN_KEY’, ‘M`ZfZZ}5UqIDT8{_Oqa x$)XK{S)dQq L=B*-!]3B-i`K}W9NT52fJ68G?QZ$E2N’);
// define(‘NONCE_KEY’, ‘,OgC~-2U/kcq[7s_OqRM]469V5In{/xo]|mI`fOSoO_ 3c|s(na7ScJeixx/Fxul’);
3. WordPress installieren
Achtet dadrauf, dass ihr bei der Installation von WordPress nach möglichkeit nicht “admin” als Benutzeraccount benutzt. Benutzt einfach irgendwas außergewöhnliches was ihr euch aber merken könnt. Den Anzeigenamen in den Artikel lässt sich nachträglich im Profil (wp-admin/profile.php) ändern. Ein sicheres Passwort sollte ebenfalls benutzt werden, ich empfehle hierzu folgenden Generator : http://www.gaijin.at/olspwgen.php. Ein Beispiel Passwort, welches so schnell nicht crackbar ist, könnte zB so aussehen : sN@KMqhKxlWV2oqubl]Esö0&8uYq@!vbgI!QDHJFpj5yb@>Z
4. Ordner/Datei Rechte richtig einstellen
Um die Berechtigungen für ein Verzeichniss einzusellen, macht Ihr Rechtsklick auf den Ordner und klickt auf “Dateiberechtigungen”, anschließend gebt ihr dort die “Zahl” ein,
welche im Bild bei “Needed Chmod” steht.
Dieconfig.php sollte bestenfalls 440 oder 400 haben, falls diese Einstellungen nicht gehen benutze 644
4. Plugins installieren
Anti-Vorratsdatenspeicherung 2.0 ( speichert IPs als MD5 ) von daher besser zu V 1.x greifen, Ips werden als 127.0.0.1 gespeichert, User-Agents und Email Adressen werden nicht gespeichert.
http://wordpress.org/extend/plugins/remove-ip/ Emails und User Agent werden gespeichert / IP’s werden ebenfalls als 127.0.0.1 gespeichert
Askimet würde ich durch AntiSpam Bee ersetzen. Wie der Name schon zu vermuten lässt versucht AntiSpam Bee Spam in Kommentaren, Pingbacks etc herauszufiltern und zu blockieren.
Jetpack wird hauptsächlich für Statistiken benutzt. Hierfür ist ein WordPress.com Account notwendig.
block-bad-queries/ protect WordPress Against Malicious URL Requests
WordPress File Monitor http://wordpress.org/extend/plugins/wordpress-file-monitor
WordPress Firewall 2 http://wordpress.org/extend/plugins/wordpress-firewall-2/
Secure WordPress by WebsiteDefender http://www.websitedefender.com/secure-wordpress-plugin/
nähere Informationen zu den letzten 3 Plugins : http://blog.yakuza112.org/?p=6352
4.1 Error, FTP Zugangsdaten werden benötigt ?!
Falls das Installieren der Plugins deshalb fehlschlägt, habt ihr 2 Möglichkeiten.
1. Ihr bearbeitet eure Config.php wie folgt :
define(‘FS_METHOD’, ‘ftpext’); // forces the filesystem method: “direct”, “ssh”, “ftpext”, or “ftpsockets”
define(‘FTP_BASE’, ‘/puplic_html/blog/’); // absolute path to root installation directory
define(‘FTP_CONTENT_DIR’, ‘/puplic_html/blog/wp-content/’); // absolute path to “wp-content” directory
define(‘FTP_PLUGIN_DIR ‘, ‘/puplic_html/blog/wp-content/plugins/’); // absolute path to “wp-plugins” directory
define(‘FTP_PUBKEY’, ‘/home/username/.ssh/id_rsa.pub’); // absolute path to your SSH public key
define(‘FTP_PRIVKEY’, ‘/home/username/.ssh/id_rsa’); // absolute path to your SSH private key
define(‘FTP_USER’, ‘username’); // either your FTP or SSH username
define(‘FTP_PASS’, ‘password’); // password for FTP_USER username
define(‘FTP_HOST’, ‘ftp.domain.de:21′); // hostname:port combo for your SSH/FTP server
2. Ihr gebt eure Zugangsdaten in der Form ein, was mir sicherer erscheint.
5. WordPress und Plugins aktuell halten
Prüft in regelmäßigen Abständen ob neue Plugin bzw WordPress Updates verfügbar sind (/wp-admin/update-core.php)
Wenn ihr lieber informiert werden wollt, benutzt einfach das Plugin von https://websitedefender.com.
6. Entfernt die WordPress Version / ( Error Messages )
Sucht in eurem Theme Order nach der Datei functions.php und fügt folgende Zeilen ein
Entfernen der WP Version
function no_generator() { return ”; }
add_filter( ‘the_generator’, ‘no_generator’ );
Entfernen der WP – Login / Error Messages
function explain_less_login_issues(){ return ‘ERROR: Entered credentials are incorrect.’;}
add_filter( ‘login_errors’, ‘explain_less_login_issues’ );
7. Entfernt unsichere Dateien
readme.html
/wp-admin/install.php
8. Index.php hinzufügen
Zum Schluss solltet ihr in Ordner wie zB “uploads“, “themes“, usw eine leere index.php Datei einfügen, damit man diese Ordner nicht direkt anbrowsen kann.
edit : wp-admin / htacess sollte noch rein / wahlweise mit AUTH oder halt auch nicht
Update 1
htaccess Datei :
RewriteEngine On
RewriteBase /
################################################## ##############################?####
#Disable Directory Listing
Options -Indexes
################################################## ##############################?####
# www2nowww
RewriteCond %{HTTP_HOST} ^([^.]+)\.blog.yakuza112\.org$ [NC]
RewriteRule ^(.*)$ http://blog.yakuza112.org/$1 [R=301,L]
################################################## ##############################?####
# Hinzufuegn von Slash
RewriteCond %{REQUEST_URI} ^/[^\.]+[^/]$
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
################################################## ##############################?####
# Schutz der wp-config.php
Order deny,allow
deny from all
################################################## ##############################?####
php_flag display_errors off
php_flag log_errors off
php_flag register_globals off
php_flag session.use_trans_sid off
################################################## ##############################?####
# Datei zum Regeln von IP-Bereichen
Order deny,allow
Allow from all
# Sperre folgende IPs
################################################## ##############################?################
order allow,deny
allow from all
################################################## ##############################?####
################################################## ##############################?####
################################################## ##############################?####
################################################## ##############################?####
################################################## ##############################?####
### PERISHABLE PRESS 4G BLACKLIST ###
# ESSENTIALS
RewriteEngine on
ServerSignature Off
Options All -Indexes
Options +FollowSymLinks
################################################## ##############################?####
# FILTER REQUEST METHODS
RewriteCond %{REQUEST_METHOD} ^(TRACE|DELETE|TRACK) [NC]
RewriteRule ^(.*)$ – [F,L]
################################################## ##############################?####
# BLACKLIST CANDIDATES
Order Allow,Deny
Allow from all
Deny from 75.126.85.215 “# blacklist candidate 2008-01-02 = admin-ajax.php attack “
Deny from 128.111.48.138 “# blacklist candidate 2008-02-10 = cryptic character strings “
Deny from 87.248.163.54 “# blacklist candidate 2008-03-09 = block administrative attacks “
Deny from 84.122.143.99 “# blacklist candidate 2008-04-27 = block clam store loser “
Deny from 210.210.119.145 “# blacklist candidate 2008-05-31 = block _vpi.xml attacks “
Deny from 66.74.199.125 “# blacklist candidate 2008-10-19 = block mindless spider running “
Deny from 203.55.231.100 “# 1048 attacks in 60 minutes”
Deny from 24.19.202.10 “# 1629 attacks in 90 minutes”
################################################## ##############################?####
# QUERY STRING EXPLOITS
RewriteCond %{QUERY_STRING} ../ [NC,OR]
RewriteCond %{QUERY_STRING} boot.ini [NC,OR]
RewriteCond %{QUERY_STRING} tag= [NC,OR]
RewriteCond %{QUERY_STRING} ftp: [NC,OR]
RewriteCond %{QUERY_STRING} http: [NC,OR]
RewriteCond %{QUERY_STRING} https: [NC,OR]
RewriteCond %{QUERY_STRING} mosConfig [NC,OR]
# RewriteCond %{QUERY_STRING} ^.*([|]|(|)||’|”|;|?|*).* [NC,OR]
# RewriteCond %{QUERY_STRING} ^.*(%22|%27|%3C|%3E|%5C|%7B|%7C).* [NC,OR]
RewriteCond %{QUERY_STRING} ^.*(%0|%A|%B|%C|%D|%E|%F|127.0).* [NC,OR]
RewriteCond %{QUERY_STRING} ^.*(globals|encode|localhost|loopback).* [NC,OR]
RewriteCond %{QUERY_STRING} ^.*(request|select|insert|union|declare|drop).* [NC]
RewriteRule ^(.*)$ – [F,L]
Ich hoffe ich habe nix vergessen, falls doch hinterlasst mir doch einen Kommentar
© 2008 – 2012 ¥akuza112 Inc. http://blog.yakuza112.org/?p=6397