Aktualizacja WordPress’a

Aktualizacja WordPress’a

Czy i po jaką cholerę mam to w ogóle robić ???

Wielokrotnie już zadawano mi to pytanie, po co te wszystkie aktualizacje – odpowiedź jedna z wielu prawidłowych – dla bezpieczeństwa.

No tak, dobra, ale czyjego bezpieczeństwa? Mojego, Twojego, strony???

Tak całkiem serio, to w pierwszej kolejności dla bezpieczeństwa samej strony (witryny, domeny) i od razu za tym idącego – bezpieczeństwa jej właściciela.
Nie mam pojęcia z jakiego powodu czytasz treść tego artykułu, ale mam nadzieję, że nie w przypadku, kiedy Twoja witryna padła ofiarą ataku hakerskiego i teraz zamiast pięknej i dopieszczonej obrazkami, zakupionymi fontami i innymi eleganckimi elementami, Google wyświetla dość kontrowersyjny komunikat:

Ta witryna mogła paść ofiarą ataku hakerów

I co teraz?

Żeby coś takiego nie pojawiło się, trzeba dbać o aktualność kodu, który przetwarza nasze treści i zawartość na stronie.
To ważne, aby ten cały „backend” był na tyle aktualny, żeby podobne rzeczy nie przytrafiały się. Absolutnie nikomu tego nie życzę, stąd właśnie taki wpis – zadbaj o to, aby mieć aktualnego WordPressa.

Szczerze, to nie tylko kwestia bezpieczeństwa. Są jeszcze zupełnie inne aspekty, kiedy ważne jest aktualne oprogramowanie naszej strony.

Nie wiem, na ile masz pojęcie co takiego dzieje się po kliknięciu przez czytelnika naszego bloga, strony firmowej, czy jakiejkolwiek innej strony. W dzisiejszych czasach, zdecydowana większość stron oparta jest na kodzie PHP. W szczególności witryny, w których my jako użytkownicy mamy możliwość umieszczania samemu treści. Ogólnie rzecz ujmując, takie witryny ukrywają się pod nazwą CMS – Content Management System, a po polsku System Zarządzania Treścią. 

Jest to szereg reguł, zbiór różnych bibliotek, setki, lub nawet tysiące linii kodu, który cały czas jest rozwijany, aby dać nam więcej – możliwości, elastyczności, responsywności, szybkości, itd… 
Z tą szybkością to już różnie bywa, ale nie będę się tutaj rozpisywał na ten temat, bowiem nic nie zastąpi prostego języka HTML, a dla wyglądu zoscylowanego za pomocą CSS’a… Tylko jeden mały problem – my Kowalscy nie znamy HTML’a  i najczęściej nie chce się nam go uczyć, a jeszcze częściej – nie mamy na to czasu.

No dobra, wróćmy do meritum sprawy – więc jak to jest z tymi aktualizacjami ?

Powiem krótko – są cholernie ważne. W miarę możliwości, jeśli masz możliwość – po prostu utrzymuj aktualność oprogramowania na najwyższym poziomie.
Zobrazuję Ci to w dość prosty sposób – jak idziesz spać, to wyobraź sobie, że na drugiej półkuli naszej planety, inni ludzie właśnie się budzą
Niektórzy z nich właśnie się ćwiczą w sposobach wstrzyknięcia dodatkowego kodu na strony, które mają znane luki bezpieczeństwa. Kod może być niezbyt groźny i tylko wrzuci „pierdyliard” linków do Viagry i innych tego typu śmieci na Twoją stronę. Niestety bywają inne rodzaje, które na przykład mogą być na tyle skomplikowane, że pozostają w ukryciu przez dłuższy czas, ale ciągle wysyłają dodatkowy ruch z serwera, na którym umieszczona jest Twoja strona na inne bardziej znane strony tworząc w ten sposób sieć botów.

Oczywiście scenariusz można sobie dowolnie napisać, aż szkoda mi się rozpisywać… Niektórzy by mnie jeszcze o jakieś herezje posądzili…

Jak przyspieszyć komputer

Jak przyspieszyć komputer

ZACZYNAMY

Na pewno więcej niż raz zastanawiasz się – co tak zamula mój komputer, przecież nie jest taki stary…

Podstawowe zasady nie zmieniają się od lat. Komputer, to nadal urządzenie, w którym kluczowe podzespoły podczas pracy wydzielają ciepło, a odpowiednie elementy odpowiedzialne za chłodzenie z czasem tracą swoje parametry. Dlaczego…?

Odpowiedź jest dość prosta – trzeba zadbać o czystość! Tak czystość samego układu chłodzenia jak i czystość w systemie operacyjnym.

 

W tym artykule skupiam się na czystości samego systemu operacyjnego, a w kolejnym na czystości fizycznej – głównie układu chłodzenia, co również ma bardzo duże znaczenie dla działania komputera.

NA POCZĄTEK

Zainstaluj na swoim komputerze 3 podstawowe i darmowe programy:

  1. cCleaner (firmy Priform) do  pobrania ze strony producenta
  2. AdwCleaner (Malwarebytes) do pobrania tutaj
  3. Defrag (dostępny w systemie Windows) lub alternatywny Defragler (ten sam producent co cCleaner)

One w zupełności na początek wystarczą!

ZAŁOŻENIA:

1. Zakładam, że masz system Windows – nie jest aż tak istotne, czy to XP, Vista (już nie wspierane i stare systemy Microsoft’u), 7, 8 czy 10, oraz czy to wersja domowa, czy profesionalna, a nawet inne wersje, jak 32 lub 64 bity. Nie będę tutaj wymieniać różnic, nie to jest tematem tego wpisu.

2. Istotne jest, że Twój komputer wyposażony jest w absolutne minimum 3 GB pamięci operacyjnej (RAM) i posiada zwykły, magnetyczny dysk twardy (HDD) i nie za szybki dwurdzeniowy procesor.

To dość istotne założenia, bowiem ta porada będzie przydatna również dla takiego typu sprzętu a może nawet głównie. Na dzisiejsze standardy lepiej mieć minimum 4 Giga Bajty pamięci RAM lub nawet więcej i szybki i wydajny procesor o wielu rdzeniach i wątkach.

3. Kolejnym założeniem, jest to, że masz aktualny system operacyjny (włączone aktualizacje systemu) i posiadasz aktualny program antywirusowy. Jaki konkretnie, to w tym momencie nie jest aż tak istotne.

Jeśli masz komputer zgodny z tymi założeniami poniżej znajdziesz informacje, co trzeba zrobić, aby zacząć zajmować się przyspieszaniem komputera.

DZIAŁAMY

Zaczynamy od oczyszczenia systemu ze śmieci i starego „keszu” w przeglądarkach. Zainstaluj program cCleaner, a w trakcie instalacji możesz dopasować co dokładnie i jak zainstalować.

Po zainstalowaniu, uruchom cCleaner (jak go jeszcze nie zainstalowałeś, to zrób to) i w pierwszych krokach skonfiguruj go trochę – dopasuj do tego co potrzebujesz. Ustaw sobie język polski (chyba że, wolisz po angielsku lub innym), to zmieniamy w ustawieniach / opcjach.

Ustawienia cCleanera

Jeśli samodzielnie będziesz dbać o stan twojego systemu, to wyłącz aktywny monitoring:

cd ustawień cCleanera

Jeśli jednak nie będziesz o tym pamiętać, zostaw włączone – ale to ma skutki, bowiem zajmie część pamięci RAM, bo będzie rezydentnym w pamięci.

Następnie przechodzimy do zaznaczenia kilku dodatkowych, dość kluczowych ustawień czyszczenia ze zbędnych plików. Zaznacz następujące opcje:

cd ustawień cCleanera

Jeśli masz przeglądarki internetowe dodatkowe, typu Chrome, Firefox, Opera, jak również program pocztowy Thunderbird koniecznie w zakładce Programy zaznacz opcję „Kompresuj Bazy Danych”.

cd ustawień cCleanera

Z takimi ustawieniami klikamy „Analiza”. To może chwilę trwać – jeśli jest sporo „śmieci” na dysku twardym – czyli w systemie plików

Kiedy analiza się zakończy, wyświetli się podsumowanie (jeszcze nie skasowało „tych śmieci”), kliknij w przycisk „Uruchom Cleaner”.

Znów „chwila”, aż zobaczysz napis *** plików usunięto.

Czyszczenie zakończone…

Super, teraz przechodzimy do zakładki „Rejestr”

Analogicznie, jak w systemie plików, klikamy „Skanuj aby znaleźć problemy”, po czym „Napraw…”. Powtarzamy tą czynność do momentu, kiedy wyniki skanowania nie pokazują już żadnych „problemów”.

cd ustawień cCleanera

Ok, na tym etapie mamy system wstępnie wyczyszczony ze zbędnych plików i wpisów w rejestrze, których naprawdę nie potrzebowaliśmy w naszej maszynie

Podstawowe oczyszczenie systemu ze zbędnych śmieci mamy załatwione.

Kolejnym punktem mamy AdwCleaner -> program, który usunie nam niemalże wszystkie niechciane programy typu AdWare, Malware, Riskware, itd…

Tego programu nie instaluje się, jest gotowy do działania od razu po pobraniu. Zatem uruchom go i kliknij „skanuj”

cd ustawień cCleanera

Na początek program pobierze świeżą bazę danych o szkodliwym „sofcie”, po czym chwilę mieli naszym dyskiem szukając takiego.

W zależności od tego, jak chroni nas przed takim oprogramowaniem nasz Antywirus, oraz jak jesteśmy uważni podczas czysto teoretycznie „przeglądania” Internetu, AdwCleaner znajdzie lub nie niechciane / złośliwe rzeczy.

Jeśli coś znajdzie, konieczne będzie ponowne uruchomienie komputera.

cd ustawień cCleanera

Jeśli będzie coś poważniejszego, pojawią się stosowne komunikaty.

Ostatnim (z tych podstawowych, o których tutaj mowa) punktem naszego „odmulenia kompa” pozostało nam zdefragmentować pliki na dysku (nie dotyczy dysków SSD). Ta operacja będzie trwała dłuższą chwilę, przy której nie trzeba siedzieć przed monitorem komputera – są lepsze metody spędzania czasu

Uruchamiamy nasz systemowy defragmentator dysku (dla Windows 7 ->Menu Start -> Wszystkie Programy -> Akcesoria -> Narzędzia systemowe -> Defragmentator dysków)

cd ustawień cCleanera

Wybieramy Uruchom

Jeśli zainstalowaliśmy defragler’a, analogicznie -> start, programy, defragler. Wybieramy defragmentuj (jest również dostępne “szybko defragmentuj”)

To może trwać nawet kilka godzin.

Po tych zabiegach, na pewno będzie lepiej – odczujesz różnicę w prędkości pracy komputera.

Gratuluję Ci, jeżeli dobrnołeś do końca artykułu! Teraz do dzieła!

A może już zrobiłeś? Pochwal się w komentarzu! Będzie mi miło dowiedzieć się czy ci pomogło. Czy coś się pojawiło, co wymaga rozszerzenia tematu? Pisz!

 

 

 

Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi. Maecenas tempus, tellus eget condimentum rhoncus, sem quam semper libero, sit amet adipiscing sem neque sed ipsum. Nam quam nunc, blandit vel, luctus pulvinar, hendrerit id, lorem. Maecenas nec odio et ante tincidunt tempus. Donec vitae sapien ut libero venenatis faucibus. Nullam quis ante. Etiam sit amet orci eget eros faucibus tincidunt. Duis leo. Sed fringilla mauris sit amet nibh. Donec sodales sagittis magna. Sed consequat, leo eget bibendum sodales, augue velit cursus nunc,

Tani serwer z używanego sprzętu

Tani serwer z używanego sprzętu

Tani serwer z używanego sprzętu – tak, to możliwe

Na zdjęciach poniżej możesz zobaczyć, jak można zrobić całkiem wydajny serwer www za kilkaset złotych. Niemalże coś, z niczego

Jak ze zwykłej taniej płyty głównej desktopowej, trochę lepszego, ale już leciwego i5-2500K + 16GB ramu i jakiegoś „twardziela”, możliwe jest stworzenie całkiem przyzwoitej platformy do umieszczenia kilku stron internetowych w wirtualnym świecie Internetu. Stockowy cooler procesora nie za bardzo ogarniał wychłodzenie tego „potwora”, bo już w trakcie przetwarzania baz danych i kopiowania plików, temperatura procka oscylowała w okolicach 45-55 stopni, a w obudowie zaczynało się robić naprawdę gorąco. Szybka myśl – wydajniejszy radiator -> zakupy i pierwszy kłopot – nie mieści się w obudowie

Wśród zdjęć zobaczysz, że czasem warto zachować trochę „śmieci”, ale takich lepszych. Docelowo wykorzystałem inny, całkiem pokaźny cooler, który pozwolił utrzymywać temperaturę proca na poziomie 27-30 stopni. Faktem jest, że troszkę trzeba było się namęczyć z mocowaniem, ale efekt jest naprawdę zadowalający i działał w ten sposób ponad 2 lata !!!

Najważniejszymi wytycznymi tego sprzętu było to, aby nie żarło za dużo prądu, było dość szybkie, ciche i tanie. Udało się w 100%

No, ale to już stary temat… Firma się rozwija, domen z witrynami przybywa, więc ten tymczasowy serwer nie radził sobie za bardzo z aktualnymi standardami. Przyszedł więc czas na zmiany, ale o tym w kolejnym artykule…

fail2ban repeatoffender

fail2ban repeatoffender

Fail2Ban repeatoffender – sztuka banowania w dłuższej perspektywie czasu

Jak już wcześniej opisałem podstawową konfigurację tego jakże praktycznego zabezpieczenia jakim jest Fail2Ban, czas przyszedł na dodatkowy gadżet, którym jest tryb „Repeat Offender”, co można śmiało określić, jako banowanie hostów, które często powtarzają próby dostania się do naszych zasobów. Sposób działania tej funkcji jest naprawdę prosty, bowiem zmieniamy parametry logowania i przechowywania logów z demona fail2ban. Oj biada węzłom tora

Po raz kolejny odsyłam do źródeł:

https://wireflare.com/blog/permanently-ban-repeat-offenders-with-fail2ban/

Opisuję tutaj co trzeba zrobić, aby ta funkcja zechciała nam działać.

Zaczynamy od modyfikacji ustawień domyślnych „F2B Defaults”, czyli otwieramy w edytorze plik konfiguracyjny:

nano /etc/fail2ban/fail2ban.conf

Gdzieś w okolicach linii 24 tego pliku powinniśmy znaleźć wpis:

loglevel = 3

Z kolei koło linii 34 powinno być:

logtarget = /var/log/fail2ban.log

Dobrze, tak ma być. Jeśli mamy inaczej, to poprawiamy na powyższe wartości.

Następnym krokiem zmieniamy rotację logów:

nano /etc/logrotate.d/fail2ban

W tym pliku zmieniamy wszystko, na:

var/log/fail2ban.log {
missingok
notifempty
monthly
rotate 13
create 0600 root root
postrotate
/usr/bin/fail2ban-client set logtarget /var/log/fail2ban.log 2> /dev/null || true
endscript
}

Oczywiście trzeba będzie zrestartować usługę rsyslog, stosownym poleceniem:

service rsyslog restart

Wpisem, który mamy powyżej (znaczy ponad restartem sysloga), ustalamy rotację logów, raz na miesiąc i magazynowanie ich, po czym, 13-go miesiąca (czytaj po upływie roku) dopiero następuje kasowanie staroci. Ustawiamy to po to, aby zbierać namiary na naszych „hakerów” przez cały rok. Na dłużej chyba nie ma potrzeby. Z resztą, kto by to wszystko chciał przeglądać…

Dodajmy Jail dla funkcji Repeat Offender

nano /etc/fail2ban/jail.local

Na samym końcu pliku dorzucamy kilka linijek kodu:

[repeatoffender]

enabled = true
filter = repeatoffender
action = repeatoffender[name=repeatoffender]
sendmail-whois[name=Repeat-Offender, dest=email@twojadomena.pl, sender=fail2ban@twojadomena.pl]
logpath = /var/log/fail2ban*
maxretry = 10
findtime = 31536000
bantime = -1

Teraz ustawiliśmy filtr, dzięki któremu monitorujemy wcześniejszy krok. Ten filtr ma do wykonania pewną akcję. Ustawiliśmy (maxretry=10), ale oczywiście możemy więcej. Czas „findtime” zdefiniowany jako 31536000 daje nam rok liczony w sekundach. I znów, możesz zmienić sobie tą liczbę na każdą inną, ale jeśli ustawisz więcej, trzeba odpowiednio ustawić rotację logów na czas dostosowany do tego. Można również podać wartość „-1”, co będzie oznaczać na zawsze Funkcję wysyłania maila możemy wyłączyć, ale myślę, że może być ona przydatna.

Następnie tworzymy filtr dla demona F2B:

nano /etc/fail2ban/filter.d/repeatoffender.conf

Poniższa treść musi znaleźć się w tym pliku:

#Fail2Ban configuration file
#
# Author: WireFlare
#
# Ten plik filtra monitoruje plik logu fail2ban, i permanentnie
# banuje adresy ip namolnych atakujących.
#
# Ta wersja działa tylko z iptables.
#

[Definition]
_jailname = repeatoffender
failregex = fail2ban.actions:\s+WARNING\s+\[(?:.*)\]\s+Ban\s+
ignoreregex = fail2ban.actions:\s+WARNING\s+\[%(_jailname)s\]\s+Ban\s+

Powyższy wpis definiuje regułę „wyłapywania” funkcji „repeat offender’a”.

Krokiem następnym trzeba utworzyć akcję – Fail2Ban Action

nano /etc/fail2ban/action.d/repeatoffender.conf

W tym pliku mamy taką treść:

# Fail2Ban configuration file
#
# Author: WireFlare
#

[INCLUDES]

before = iptables-blocktype.conf

[Definition]

# Option: actionstart
# Notes.: command executed once at the start of Fail2Ban.
# Values: CMD
#
actionstart = iptables -N fail2ban-
iptables -A fail2ban- -j RETURN
iptables -I -p -j fail2ban-
# Establish chain and blocks for saved IPs
iptables -N fail2ban-ip-blocklist
iptables -A fail2ban-ip-blocklist -j RETURN
iptables -I -p -j fail2ban-ip-blocklist
cat /etc/fail2ban/ip.blocklist. |grep -v ^\s*#|awk ‚{print $1}’ | while read IP; do iptables -I fail2ban-ip-blocklist 1 -s $IP -j REJECT –reject-with icmp-port-unreachable; done

# Option: actionstop
# Notes.: command executed once at the end of Fail2Ban
# Values: CMD
#
actionstop = iptables -D -p -j fail2ban-
iptables -F fail2ban-
iptables -X fail2ban-
# Remove chain and blocks for saved IPs to prevent duplicates on service restart
iptables -D -p -j fail2ban-ip-blocklist
iptables -F fail2ban-ip-blocklist
iptables -X fail2ban-ip-blocklist

# Option: actioncheck
# Notes.: command executed once before each actionban command
# Values: CMD
#
actioncheck = iptables -n -L | grep -q ‚fail2ban-[ \t]’

# Option: actionban
# Notes.: command executed when banning an IP. Take care that the
# command is executed with Fail2Ban user rights.
# Tags: See jail.conf(5) man page
# Values: CMD
#
actionban = VERIFY=”*”
ADD=” # fail2ban/$( date ‚+%%Y-%%m-%%d %%T’ ): Perma-Banned”
FILE=/etc/fail2ban/ip.blocklist.
grep -q „$VERIFY” „$FILE” || iptables -I fail2ban- 1 -s -j DROP
grep -q „$VERIFY” „$FILE” || echo „$ADD” >> „$FILE”

# Option: actionunban
# Notes.: command executed when unbanning an IP. Take care that the
# command is executed with Fail2Ban user rights.
# Tags: See jail.conf(5) man page
# Values: CMD
#
actionunban = # Do nothing becasuse their IP is in the blocklist file

# To manually unban from the ip blocklist file run this command:
# Be warned that if the ip is in log rotated files it must be whitelisted
#
# sed -i ‚/^/d’ /etc/fail2ban/ip.blocklist.repeatoffender
#

[Init]

# Default name of the chain
#
name = default

# Option: protocol
# Notes.: internally used by config reader for interpolations.
# Values: [ tcp | udp | icmp | all ] Default: tcp
#
protocol = tcp

# Option: chain
# Notes specifies the iptables chain to which the fail2ban rules should be
# added
# Values: STRING Default: INPUT
chain = INPUT

Teraz krótko, co tym wpisem tutaj zrobiliśmy.

A funkcji „actionstart” tworzy się dodatkowy łańcuch iptables. Właściwie to dwa. Jeden dodaje do listy „niedawno zablokowanych” a drugi to lista już wcześniej zablokowanych IP’ków. Mamy również polecenia odczytu z listy zablokowanych adresów IP i stosujemy te wpisy iptables do łańcucha ip-blocklist.

W „actionstop” dodaliśmy łańcuch IP-blocklist do oryginalnego łańcucha, aby usunąć łańcuch z iptables w razie wznowienia demona fail2ban. Wszystko tak, aby nie dostać duplikatów tych adresów.

W „actionban” ustaliliśmy zmienne do weryfikacji, czy dany adres IP jest już na liście zbanowanych, czy nie. Na blogu autorów, napisano bardzo ciekawe pytanie – skoro dany adres IP ma być banowany na stałe, to po co skrypt ma sprawdzać, czy jest już ten IP, czy nie? Odpowiedź okazuje się być banalnie prosta. Jeśli załóżmy uruchomimy ponownie serwer, lub samą usługę, fail2ban będzie miał skąd „odczytać” listę już zbanowanych. Oczywiście proces ten jest bardziej złożony, ale dociekliwych zachęcam do przeczytania bloga autorów. Link u góry strony.

W „actionunban” w zasadzie nie robi się nic, ponieważ blokujemy delikwentów definitywnie na „amen”

Jeszcze kilka dodatków

Załóżmy, że chcemy odblokować któregoś IP’ka, więc przydatne będzie jakieś proste w obsłudze polecenie pozwalające to zrobić. Chłopaki z Wireflare pomyśleli również i o tym.

Moglibyśmy wpisać dość skomplikowaną komendę typu:

sed -i '/^<ip>/d' /etc/fail2ban/ip.blocklist.repeatoffender

W tym poleceniu zamiast literek „ip” podajemy stosowny adres. Ale, zróbmy sobie odpowiedni pliczek wykonywalny. Niezbędna zatem będzie taka czynność:

nano removeoffender.sh

Do tego pliku wklejamy taką zawartość:

#!/bin/bash

sed -i "\|$1|d" /etc/fail2ban/ip.blocklist.repeatoffender
echo "$1 removed from Repeat Offender Blocklist"

sed -i "\|$1|d" /var/log/fail2ban.log
echo "$1 removed from Current Fail2Ban Log"

sed -i "\|$1|d" /var/log/fail2ban.log-*
echo "$1 removed from Rotated Fail2Ban Logs"

Zachowujemy ten wpis, dodajemy prawa wykonywalności poleceniem:

chmod +x removeoffender.sh

Więc jeśli chcemy odblokować konkretny adres (pojedynczy lub całego segmentu sieci) wydajemy polecenie:

./removeoffender.sh 192.168.0.0

To już niemal wszystko. Pozostało tylko przeładowanie usługi:

service fail2ban reload
service fail2ban restart

Rozpisałem się tutaj całkiem sporo, ale temat wart jest tego trudu. Jeśli wszystko dobrze zrobisz, będziesz się cieszyć całkiem sprawnym mechanizmem blokującym dostęp nachalnym „baranom” do zasobów naszego serwera.

Jak zwykle w przypadku tego typu artykułu, proszę o komentarze czy gdzieś nie popełniłem jakiegoś błędu, lub coś przypadkiem pominąłem, bądź popełniłem literówkę lub błąd merytoryczny. Starałem się opisać to w miarę prostym językiem, choć nie jest to zawsze proste.

fail2ban – sposób na hakera

fail2ban – sposób na hakera

Fail2ban od Wireflare to genialne narzędzie, aby zbanować potencjalnych „hakierów” na własnym serwerze.

Sam używam WordPressa (co chyba widać) i nieraz zastanawiałem się jakiej tu wtyczki użyć, żeby tych „baranów” jakoś ukrócić. No ale przecież instalacja dodatkowej wtyczki, blokująca dostęp takiemu atakującemu, to też jest skrypt, który musi być przetworzony przez nasz serwer. Zużyje część zasobów, pamięci, czasu procesora, itd…

Aby skutecznie zabezpieczyć się przed atakami do zaplecza naszego bloga, witryny czy jakkolwiek nazwiemy naszą stronę, wystarczy doinstalować naprawdę banalnie malutką wtyczkę o nazwie „fail2ban” firmy Wireflare.

Wtyczkę znajdziemy w repozytoriach WP, a dla dociekliwych podaję oficjalnego linka do tego zasobu:

https://pl.wordpress.org/plugins/wp-fail2ban/

Fail2ban jest narzędziem działającym kompleksowo, więc zabezpieczy nie tylko samego WordPressa, ale i wiele usług zainstalowanych na naszym serwerze. Jest na tyle popularny, że jego implementacje znajdziemy dla wielu popularnych CMS’ów, jak Joomla, Drupal i innych.

Dobra, ale jedna bardzo ważna sprawa, fail2ban zadziała tylko na samodzielnie stojących serwerach. Jeśli masz wykupiony hosting u szanujących się firm tego typu, to nie musisz się tym przejmować, bo Oni martwią się za Ciebie (a właściwie to o siebie samych).

Opisuję tutaj konfigurację dla serwera Ubuntu / Debian (choć inne distro wiele się chyba nie będą różniły pod kontem konfiguracji), a do napisania go skłoniła mnie przymuszona nieco aktualizacja z Ubuntu 14,04 na 16.04, po której demon fail2ban odmówił mi posłuszeństwa… To jednak zmotywowało mnie do modernizacji sprzętu i konfiguracji.

Ale przejdźmy może jednak do konfiguracji.

Dla tych, co chcą sobie poczytać u źródeł, odeślę was do stron, z których skorzystałem:

Mając swój własny serwer (na czas pisania tego artykułu był to jeszcze „Ubuntu 16.04.1 LTS”, a nowy Debian 8.6 Jessie już czekał na podmianę na nowszych bebechach), trzeba by było zacząć od zainstalowania paczki:

apt-get install fail2ban

Następny krok: konfiguracja.

Na początek proponuję gdzieś na boku zrobić sobie kopię tych standardowych plików konfiguracyjnych. Będzie przynajmniej do czego wrócić, jeśli spierniczymy configi i usługa nie będzie się nam podnosić…

Plik /etc/fail2ban/jail.local odpowiedzialny jest za kilka parametrów. Z ważniejszych są:

  • ignoreip – tutaj podajemy adresy IP, których nie będziemy / nie chcemy banować.
  • bantime – określamy czas bana w sekundach! (domyślnie jest to 10 minut).
  • maxretry – tutaj określamy ilość prób, zanim ban zostanie nałożony na adres IP (domyślne są 3).
  • destemail – adres e-mail, gdzie będą przychodzić powiadomienia (dla mnie zbędne, i tak mam dużo takiego „spamu”)
  • logpath – ważny parametr każdej monitorowanej usługi, czyli ścieżka do pliku logów !!!musi być prawidłowa!!!

Zatem jeśli chcemy zmienić ustawienia, którejś z monitorowanych usług, to zmieniamy (tu przykład z SSH):

[ssh] -> nazwa jaila
enabled = true -> włączony, jeśli wyłączony to disabled = false
port = ssh -> port usługi - przyjmuje wartość numeryczną lub nazwę portu, listę portów znajdziesz w pliku /etc/services
filter  = sshd -> pierwszy człon nazwy filtra logów: /etc/fail2ban/filter.d/sshd.conf
logpath  = /var/log/auth.log -> ścieżka monitorowanych logów - tylko jedna wartość, ale dopuszczalna jest * czyli wszystkie
maxretry = 15 -> maksymalna ilość nieudanych prób autoryzacji

Ale teraz, myślę że dopiero zaczyna się zabawa.

Nie wystarczy tylko to zainstalować i jakoś tam skonfigurować. Fail2ban oferuje duuużo więcej. Zatem czas na tjuning

Od razu jeszcze na samym początku zalecam (wręcz nalegam) aby zmienić domyślnego demona od logów systemowych. W tym celu proponuję instalację „rsyslog„, który zastępuje podstawowy system logowania. W Debianie i opartych na nim dystrybucjach (np. Ubuntu) instalujemy go poleceniem:

apt-get install rsyslog

Żeby zabezpieczyć naszego WordPressa, dorzucamy kilka dodatkowych sekcji. Po pierwsze nie chcemy, żeby wszystkie próby logowania do panelu administracyjnego były wrzucane do ogólnego „syslog” (czy tam auth.log). Szkoda czasu procka i szukania igły w stogu siana. Oczywiście mogliśmy użyć auth.log lub innych wiadomości dziennika, ale analizowanie tych dzienników (jak już napisałem) wymagałoby większego użycia mocy obliczeniowej procesora, a przecież chcemy, aby ten nasz demon nie przeszkadzał, jak to tylko możliwe. Konfigurujemy zatem nasz plik „rsyslog.conf” (zazwyczaj w katalogu /etc), i na jego końcu dopisujemy następujące linie:

# Zachowuje błędne próby logowania do WP do loga dla Fail2Ban
local1.*  /var/log/wp_f2b.log

Mamy teraz stworzoną regułę dla prób logowania, która wyrzuci je nam do osobnego pliku loga.

touch /var/log/wp_f2b.log

Restartujemy syslog:

service rsyslog restart

Na tym etapie warto sprawdzić, czy próby błędnego logowania są logowane do tego pliku. Zatem zaloguj się nieprawdziwym loginem lub hasłem na swojego WordPressa i w tym nowo utworzonym pliku powinno się coś pojawić.

Teraz czas na stworzenie filtra w fail2ban. .

nano /etc/fail2ban/jail.local

dodajemy:

[wordpress]

enabled = true
filter = wordpress
action = %(action_)s
#action = iptables-multiport[name=WordPress, port="http,https"]
logpath = /var/log/wp_f2b.log
maxretry = 5
findtime = 750
bantime = 72000

Dostosuj sobie odpowiednio parametry „maxretry”, „findtime” oraz „bantime”. Drugim artykułem opisałem efekt końcowy wraz z banowaniem „długodystansowym” (dla upierdliwych hostów), ale o tym napisałem w osobnym artykule: Fail2Ban – RepeatOffender

Teraz filtr dla WordPressa:

nano /etc/fail2ban/filter.d/wordpress.conf

z zawartością:

# Fail2Ban configuration file
#
# Author: WireFlare
#
[INCLUDES]
before = common.conf
[Definition]
_daemon = wordpress
failregex = ^%(__prefix_line)sWordpress authentication failure for .* from <HOST>$
ignoreregex =

Przeładowujemy i restartujemy usługę fail2ban:

service fail2ban reload
service fail2ban restart

Tak, tak, wystarczyło by tylko „restart”, ale spotkałem się z pewnymi przeciwnościami, więc użycie obu poleceń nie zaszkodzi. Czy wszystko działa, możemy sprawdzić za pomocą polecenia:

fail2ban-regex /var/log/wp_f2b.log /etc/fail2ban/filter.d/wordpress.conf

Ostatnią rzeczą, nad którą warto się zastanowić, to wielkość logów, które te świństwa nam wygenerują, więc warto ustawić logrotate, co czynimy edytując plik:

nano /etc/logrotate.conf

i na końcu pliku dopisujemy:

/var/log/wp_f2b.log {
    size 30k
    create 0600 root root
    rotate 5
}

Od teraz bezpieczeństwem naszego WordPressa zajmuje się Fail2Ban

Wszelkie komentarze poprawiające moje niedociągnięcia, bądź błędy merytoryczne, naprawdę są mile widziane. Wszystko po to, abym mógł poprawić własne wypociny i jednocześnie abym nie wprowadzał nikogo w błąd.

POP3 czy IMAP

POP3 czy IMAP

POP3 czy IMAP oto jest pytanie

Wielokrotnie zadawano mi je, na pozór bardzo proste. Odpowiedź często wcale nie jest taka oczywista jak mogło by się wydawać na pierwszy rzut oka. Ten temat powstał w 100% z życia, kiedy klient zadał mi takie pytanie:

Dlaczego na żadnej ze skrzynek na serwerze nie ma wiadomości starszych niż 2 tygodnie?

Nie każdy rozróżnia sposobów działania serwerów pocztowych, więc wytłumaczę najprościej jak potrafię.

Powiedzmy sobie dość prosto, że z grubsza mamy 2 tryby obsługi poczty. Jest ich oczywiście więcej, ale zazwyczaj większość z nas użytkowników wykorzystuje tylko te 2 rodzaje dostępu, które nazywają się:

IMAP – to coś jakby widok na żywo zawartości konta pocztowego z serwera na „urządzeniu”.

POP3 – ściąga kopie wiadomości do lokalnego magazynu na „urządzeniu”, tam je przechowuje i przetwarza.

Dla zobrazowania takiej sytuacji, załóżmy sobie taki scenariusz jaki występował u mojego klienta:

Mamy jedno konto pocztowe, które skonfigurowaliśmy sobie, ktoś nam ustawił, lub tak już było że w telefonie i na komputerze ściąga nam naszą pocztę e-mail. W smartfonie mamy skrzynkę w trybie IMAP, a na komputerze w trybie POP3.

Teraz, być może nie do końca świadomi korzystamy ze skrzynki w telefonie tak po prostu, sprzątamy ze śmieci, reklam i innych tego typu spamów. Bardzo nam to pasuje, bowiem przecież już tutaj kasujemy od razu i później nie ściągamy wszystkiego na komputer. Aż tu nagle, zupełnie przypadkiem wycinamy ważną dla nas korespondencję, kasując wiadomość na swoim urządzeniu. Oczywiście, ta jednocześnie usuwana jest na serwerze, no bo tak było ustawione. Ktoś od razu powie, „ale można cofnąć i będzie ok”. Ale tu przykładowo właściciel skrzynki nie zauważył co skasował… Oprócz tego przez ponad miesiąc nie uruchamiał komputera, który pobierał całą pocztę.

Jeśli przed tym skasowaniem nie otwierałaś/eś programu pocztowego na komputerze, który skonfigurowany jest w trybie POP3, to nie masz już czego ściągnąć z serwera, bo wiadomość została przecież skasowana wcześniej bezpośrednim dostępem jakim jest IMAP.

Przez zdefiniowany przez administratora serwera czas (zazwyczaj ok. 1 dnia) taka skasowana wiadomość przechowywana jest w koszu skrzynki (do skasowania definitywnego z konta). Jeśli w ciągu tego czasu zorientujesz się o tym co zrobiłeś/aś, to jeszcze nic straconego, bo wystarczy zalogować się do skrzynki pocztowej przez stronę WWW i za pomocą kilku kliknięć przywracamy ważną wiadomość z kosza do skrzynki odbiorczej. Ta pięknie pojawia się w naszym telefonie i możemy ją pobrać na komputer. Sprawa załatwiona.

Oczywiście kwestia ustawień, bo można jeszcze ustawić, aby za pomocą protokołu POP3 również pobierać „kosz” z serwera. Są też inne ustawienia, ale o tym będzie osobny artykuł.

Kiedy to wszystko wytłumaczyłem, dostałem odpowiedź:

To słabo, bo straciłam wiadomości ze skrzynki. Skonfigurowałam jako IMAP i ściągnęło tylko to co na serwerze. Nie wiedziałam ze się kasują… Inaczej do tej pory pracowałam.

Wytłumacz mi jeszcze, jeżeli jest to IMAP, to znaczy że wiadomości starsze niż 2 tyg będą kasowały się również na Outlooku? Czy tylko na serwerze?

W odpowiedzi napisałem:

Program pocztowy skonfigurowałem w taki sposób, aby automatycznie kasował z serwera wiadomości starsze niż 14 dni i/lub po usunięciu z kosza.

Wady i zalety:

Każdy ze sposobów obsługi skrzynki pocztowej ma swoje wady i zalety. Można mieć kilka „urządzeń” czytających pocztę, ale niestety obsługa całości wymaga rozwagi i umiejętnego wykorzystania. Jeśli skasowałaś/eś sobie przypadkiem jakiegoś maila, to jedyne gdzie możesz go szukać, to folder „kosz” i/lub „trash” na serwerze.

Przechowywanie większej ilości maili jest możliwe tylko na komputerze ze skonfigurowanym programem Outlook/Thunderbird/itp., który pozostawia kopie maili lokalnie na dysku twardym. Program pocztowy na komputerze skonfigurowany w trybie POP3, pobiera wiadomość po wiadomości do siebie na dysk twardy pozostawiając kopie na serwerze. We właściwościach konta ustawiłem opcję, aby po 14 dniach od pobrania, usuwa go z serwera pozostawiając wolne miejsce na serwerze dla następnej nowej wiadomości, która dopiero przyjdzie. W ten sposób zadbałem o miejsce na serwerze i ilość synchronizowanych danych za pomocą protokołu IMAP.

Mam nadzieeję, że taki w sumie prosty i prozaiczny przykład rozjaśnił ci czytelniku, na czym tak naprawdę polega obsługa kont pocztowych.