WordPress turvamine
!NB Kõik õpetused on tehtud kasutades Ubuntu Server 11.04
WordPressi paigaldamine
Varnishi lisamine wordpressile
SuperCache kasutamine
DoS rünnaku tõrjumine mod_evasive mooduliga
Wordpressi paigaldus ja konfigureerimine
Antud toimingud tuleks teha root õigustes.
Mine root-iks:
sudo -i
Tee update kohalike pakettide cache
aptitude update
Tee upgrade pakettidele:
aptitude full-upgrade
Paigalda acpid daemon
aptitude install acpid
Installi apache2 veebi server,mysql andmebaasi server, openssh server, php5 skriptimis keel ning apache2-utils(Apache benchmark tool)
aptitude install apache2 mysql-server ssh php5 php5-mysql apache2-utils
Tõmba alla kõige hilisem .tar fail wordpress.org-ist:
wget http://wordpress.org/latest.tar.gz
Paki lahti wordpressi failid /var/www kausta:
sudo tar zxvf latest.tar.gz --directory=/var/www/
Logi mysql-i sisse:
mysql -u root -p
Loo andmebaas student_wordpress:
create database student_wordpress;
Loo kasutaja student:
create user student;
Anna kõik õigused student kasutajale:
GRANT ALL PRIVILEGES ON student_wordpress.* TO student@localhost IDENTIFIED BY ‘student’;
Välju mysql-ist:
quit;
Loo uus default veebi saidil põhinev veebi sait:
cp /etc/apache2/sites-available/default /etc/apache2/sites-available/wp
Muuda ära DocumentRoot /etc/apache2/sites-avalible/wp failis:
nano /etc/apache2/sites-avalible/wp
Lisa DocumentRoot /var/www rea lõppu DocumentRoot /var/www/wordpress
DocumentRoot /var/www/wordpress
Keela ära tavaline default veebi sait(seda ei ole vaja antud paigalduses):
a2dissite default
Luba wordpress-i veebisait
a2ensite wp
Tee apache-ile restart
service apache2 restart
Muuda wordpress konfiguratsiooni faili:
nano /var/www/wordpress/wp-config-sample.php
Muuda DB_NAME, DB_USER, DB_PASSWORD vastavalt näitele:
define('DB_NAME', 'student_wordpress');
/** MySQL database username */
define('DB_USER', 'student');
/** MySQL database password */
define('DB_PASSWORD', 'student');
Kopeeri uus konfiguratsiooni fail wordpressi konfiguratsiooni failiks:
cp /var/www/wordpress/wp-config-sample.php /var/www/wordpress/wp-config.php
Tee apache2 service-ile reload
service apache2 reload
Mine wordpressi saidile kasutades host-i IP aadressi(antud näites:192.168.56.102);
http://192.168.56.102
Vali saidi nimi, kasutajanimi, salasõna ning meili aadress.
Vali install
Installi lõppedes tee kindlaks,et kõik toimib(log sisse, vaata wp verisooni ilmselt midagi sellist: You are using WordPress 3.2.1.)
mod_evasive paigaldus ja konfigureerimine
Sissejuhatus
Mod_evasive on lisamoodul Apache'i veebiserveri jaoks, mille abil on võimalik vähendada või täielikult tõrjuda HTTP DoS, DDos või brute force rünnakute mõju. Ühtlasi saab seda kasutada ka monitooringu teostamiseks, kuna moodulit on lihtne panna suhtlema erinevate tulemüüride ja ruuteritega.
Monitooring baseerub dünaamilisel IP aadressitest ja URI-dest koosneval räsitabelil, kust siis keelatakse IP aadressid, mis:
- küsivad ühte lehte rohkem kui paar korda sekundis
- teevad rohkem kui 50 üheaegset requesti sama laps-protsessi vastu
- üritavad teha ükskõik millist requesti samal ajal kui nad on mustas nimekirjas
Paigaldus
Paigaldamine Ubuntu 11.04 serverile on küllaltki lihtne
apt-get install libapache2-mod-evasive
Konfigureerimine
Kõigepealt on viisakas luua koht, kuhu antud moodul oma logi saaks salvestada (kuigi logimine praegu ei tööta)
mkdir /var/log/apache2/mod_evasive chown www-data:www-data /var/log/apache2/mod_evasive
Nüüd jääb üle lisada vastavad read oma virtuaalsesse hosti (N:~/apache2/sites-enabled/wordpress lõppu)
<ifmodule mod_evasive20.c> DOSHashTableSize 3097 DOSPageCount 2 DOSSiteCount 50 DOSPageInterval 1 DOSSiteInterval 1 DOSBlockingPeriod 10 DOSLogDir /var/log/apache2/mod_evasive DOSEmailNotify root@localhost DOSWhitelist 127.0.0.1 </ifmodule>
Antud väärtusi tuleks kohandada vastavalt vajadustele
Parameetrite kirjeldused:
- DOSHashTableSize: Räsitabeli suurus, kus IP aadresseid hoitakse.
- DOSPageCount: Lehekülgede arv DOSPageInterval sekundis.
- DOSPageInterval: Aeg sekundites, mida kasutab DOSPageCount.
- DOSSiteCount: Objektide arv DOSSiteInterval sekundites.
- DOSSiteInterval: Aeg sekundites, mida kasutab DOSSiteCount.
- DOSBlockingPeriod: Aeg sekundites, kui kaua IP on bannitud. Kui IP üritab serverile selle aja see ligi pääseda, siis algab loendus ueusti nullist.
- DOSLogDir: Valikuline. Kataloogitee, kuhu logi salvestatakse. Kui pole määratud kasutatakse /tmp.
- DOSEmailNotify: Valikuline. Mail where notifications will be sent.
- DOSSystemCommand: Optional. Command to execute if an IP is blocked. For example:
- DOSSystemCommand "/sbin/iptables -I INPUT -p tcp --dport 80 -s %s -j DROP"
- DOSWhitelist: Optional. List of IPs which won't be blocked.
Super Cache
Eeldused: Permalinksi toimimine
Permalinksi jaoks on vaja,et setting ei oleks default vaid custom "p=?/%post_id%/"