{"id":584,"date":"2014-03-03T08:38:21","date_gmt":"2014-03-03T07:38:21","guid":{"rendered":"http:\/\/vm.piszki.pl\/migracja-do-cloudflare-i-inne-aspekty-bezpiecze%c5%84stwa-wordpressa"},"modified":"2014-04-15T08:21:06","modified_gmt":"2014-04-15T06:21:06","slug":"migracja-do-cloudflare-i-inne-aspekty-bezpiecze%c5%84stwa-wordpressa","status":"publish","type":"post","link":"https:\/\/vm.piszki.pl\/?p=584","title":{"rendered":"Migracja do CloudFlare i inne aspekty bezpiecze\u0144stwa WordPressa"},"content":{"rendered":"<p align=\"justify\">Po <a href=\"http:\/\/www.dobreprogramy.pl\/lukasamd\/CloudFlare-przyspieszamy-witryne-chmura,30555.html\">przeczytaniu<\/a> kilku <a href=\"http:\/\/o12.pl\/hosting\/dodatki\/cloudflare\">artyku\u0142\u00f3w<\/a>, i zgodnie z rad\u0105 <a href=\"https:\/\/vm.piszki.pl\/prowadzenie-blogu-czesc-1-strona-techniczna\/#comment-20\">Wojcieha<\/a>, postanowi\u0142em migrowa\u0107 mojego <a href=\"https:\/\/vm.piszki.pl\/prowadzenie-blogu-czesc-1-strona-techniczna\/\">WordPressa<\/a> do CloudFlare. Czemu u\u017cywam sformu\u0142owania \u201cmigracja\u201d? Czym tak naprawd\u0119 jest <a href=\"http:\/\/blog.performancemedia.pl\/seo\/google-wymaga-szybkosci-%E2%80%93-czy-potrzebujesz-cdn-content-delivery-network\">Content Delivery Network<\/a>? CDN jest czym\u015b w rodzaju globalnego proxy, dodatkowo rozproszonego po \u015bwiecie. Synchronizuj\u0105c nasz\u0105 wtyczk\u0119 W3 Total Cache z CloudFlare (CDN), tak naprawd\u0119 przygotowujemy statyczne strony kt\u00f3re s\u0105 przekazywane na serwery CloudFlare i stamt\u0105d serwowane ko\u0144cowym u\u017cytkownikom bloga. St\u0105d s\u0142owo \u201cmigracja\u201d, chod\u017a oczywi\u015bcie jest to sformu\u0142owanie na wyrost, obowi\u0105zuje ci\u0105gle czas wygasania strony tymczasowej, zgodny z ustawieniami w naszym WordPressie. Zalet\u0105 tego rozwi\u0105zania jest przy\u015bpieszenie \u0142adowania strony www jako takiej i odci\u0105\u017cenie serwera g\u0142\u00f3wnego (co dla mojego NASa ma gigantyczne znaczenie). Dodatkowo CloudFlare zapewnia (w darmowej wersji) pewien minimalny poziom bezpiecze\u0144stwa. Dodaj\u0105 oni automatycznie kody captcha do strony gdy pobieraj\u0105cy j\u0105 adres znajduje si\u0119 na li\u015bcie znanych botnet\u00f3w, spamer\u00f3w, etc.<\/p>\n<p align=\"justify\">A jak wygl\u0105da konfiguracja ca\u0142o\u015bci? Nale\u017cy by\u0107 przygotowanym na pe\u0142n\u0105 rekonfiguracj\u0119 swojego serwera DNS. CloudFlare obs\u0142u\u017cy tylko domeny wy\u017cszego rz\u0119du (*.*) i wymaga przeniesienia rekord\u00f3w na w\u0142asne serwery DNS. W trakcie konfiguracji rekord\u00f3w wybieramy kt\u00f3re adresy id\u0105 \u201cprzez\u201d CloudFlare a kt\u00f3re \u201cpomimo\u201d. Mo\u017cna to te\u017c w ka\u017cdej chwili zmieni\u0107, czyli w\u0142\u0105czy\u0107 lub wy\u0142\u0105czy\u0107 dost\u0119p do naszej strony poprzez CDN!<\/p>\n<p align=\"center\"><a href=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2014\/03\/cloudflare1.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"cloudflare1\" alt=\"cloudflare1\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2014\/03\/cloudflare1_thumb.png\" width=\"616\" height=\"80\" border=\"0\" \/><!--more--><\/a><\/p>\n<p align=\"justify\">Konfiguracja wtyczki W3 Total Cache jest bardzo prosta, sprowadza si\u0119 do podania loginu i przydzielonego nam API Key. Wa\u017cn\u0105 informacj\u0105 jest te\u017c to, \u017ce CloudFlare integruje si\u0119 z Google Analitics i Google Webmaster Tools. Dzi\u0119ki czemu nadal b\u0119dzie naliczana pe\u0142na statystyka odwiedzin naszej strony a samo Google b\u0119dzie traktowa\u0142o nasz\u0105 stron\u0119 i cache w CDN jako jedno. Mo\u017cna te\u017c w\u0142\u0105czy\u0107 \u201cintegracj\u0119\u201d naszej us\u0142ugi ze stron\u0105 <a href=\"https:\/\/www.blitz.io\">blitz.io<\/a> (o kt\u00f3rej wspomina\u0142em w <a href=\"https:\/\/vm.piszki.pl\/prowadzenie-blogu-czesc-1-strona-techniczna\/\">pierwszej<\/a> cz\u0119\u015bci cyklu), co de facto, daje nam nowe konto z mo\u017cliwo\u015bci\u0105 wykonania kolejnych 10 darmowych test\u00f3w. I teraz pytanie, czy to rzeczywi\u015bcie dzia\u0142a?<\/p>\n<p align=\"left\"><a href=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2014\/03\/cr1.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;\" title=\"cr1\" alt=\"cr1\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2014\/03\/cr1_thumb.png\" width=\"500\" height=\"121\" border=\"0\" \/><\/a><\/p>\n<p align=\"justify\">Jak wida\u0107 dzia\u0142a ca\u0142kiem dobrze, dodatkowo mamy wgl\u0105d w ciekaw\u0105 statystyk\u0119, widzimy ile procent ruchu to aktywno\u015b\u0107 bot\u00f3w wyszukiwarek. Takiej statystyki nie wyci\u0105gniemy z webmaster tools, wyszukiwarek w kt\u00f3rych si\u0119 zarejestrowali\u015bmy!<\/p>\n<p align=\"justify\"><a href=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2014\/03\/cr2.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;\" title=\"cr2\" alt=\"cr2\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2014\/03\/cr2_thumb.png\" width=\"462\" height=\"104\" border=\"0\" \/><\/a><\/p>\n<p align=\"justify\">A teraz kwestie bezpiecze\u0144stwa. Ostatnio ze zdziwieniem zauwa\u017cy\u0142em pr\u00f3by ataku typu brute force na stron\u0119 wp-login. Jako \u017ce strona ta nie idzie z cache, jej ka\u017cdorazowe odczytanie powoduje spore obci\u0105\u017cenie <a href=\"https:\/\/vm.piszki.pl\/serwer-w-domu-czyli-czemu-jednak-nas\/\">DS213J<\/a>. Je\u015bli chcemy uchroni\u0107 si\u0119 przed takimi atakami (za darmo), mo\u017cemy zainstalowa\u0107 dwa pluginy do WordPressa. Jeden to <a href=\"http:\/\/wordpress.org\/plugins\/bruteprotect\/\">BruteProtect<\/a> a drugi to <a href=\"http:\/\/wordpress.org\/plugins\/limit-login-attempts\/\">Limit Login Attempts<\/a>. <a href=\"http:\/\/bruteprotect.com\/\">BruteProtect<\/a> to jedna z wielu sieci zbieraj\u0105ca i integruj\u0105ca informacje na temat znanych adres\u00f3w IP z kt\u00f3rych nast\u0119puj\u0105 ataki. Takie adresy s\u0105 automatycznie blokowane. Limit Login Attempts to proste rozwi\u0105zanie kt\u00f3re wrzuca do lokalnej black listy adresy IP z kt\u00f3rych nast\u0105pi\u0142y pr\u00f3by logowania. Ilo\u015b\u0107 pr\u00f3b, czasy przebywania na black li\u015bcie s\u0105 w pe\u0142ni konfigurowalne. Ma te\u017c jedn\u0105 wa\u017cn\u0105 cech\u0119, potrafi powiadomi\u0107 administratora serwisu, \u017ce co\u015b si\u0119 dzieje!<\/p>\n<p align=\"justify\"><a href=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2014\/03\/bp.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;\" title=\"bp\" alt=\"bp\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2014\/03\/bp_thumb.png\" width=\"388\" height=\"157\" border=\"0\" \/><\/a><\/p>\n<p align=\"justify\">Je\u015bli mimo to m\u0119cz\u0105 nas ataki, a jeste\u015bmy np. jedynym u\u017cytkownikiem serwisu i nie przewidujemy rejestrowania si\u0119 nowych u\u017cytkownik\u00f3w, mo\u017cemy zastosowa\u0107 blokad\u0119 ostateczn\u0105. Do definicji wirtualnego serwera Apache2 (je\u015bli u\u017cywacie Ngixa to zajrzyjcie <a href=\"http:\/\/codex.wordpress.org\/Brute_Force_Attacks\">tu<\/a>) dodajemy nast\u0119puj\u0105ce wpisy (\/usr\/syno\/etc\/httpd-vhost.conf-user):<\/p>\n<p>&lt;Files wp-login.php&gt;<br \/>\nAuthUserFile \/usr\/syno\/apache\/passwd\/pass<br \/>\nAuthName AB<br \/>\nAuthType Basic<br \/>\nrequire user ppisz<br \/>\n&lt;\/Files&gt;<\/p>\n<p>Nast\u0119pnie zak\u0142adamy pliczek \/usr\/syno\/apache\/passwd\/pass (Synology rekomenduje przechowywanie pliku poza katalogiem g\u0142\u00f3wnym strony www), zawieraj\u0105cy login i hash has\u0142a. Wej\u015bcie na tak zabezpieczon\u0105 stron\u0119 spowoduje wy\u015bwietlenie stosownego komunikatu:<\/p>\n<p><a href=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2014\/03\/ar.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;\" title=\"ar\" alt=\"ar\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2014\/03\/ar_thumb.png\" width=\"337\" height=\"122\" border=\"0\" \/><\/a><\/p>\n<p>Co wa\u017cne, parser PHP nie bierze w tym udzia\u0142u, dzi\u0119ki czemu nie powoduje spadku wydajno\u015bci ca\u0142ej maszyny. Nale\u017cy tylko pami\u0119ta\u0107, \u017ce plik httpd-vhost.conf-user jest w Synology generowany automatycznie, wszelkie zmiany z poziomu interfejsu w wirtualnych hostach spowoduj\u0105 jego nadpisanie. I to w zasadzie tyle w tym momencie, je\u015bli co\u015b wiecie wi\u0119cej to ch\u0119tnie wys\u0142ucham ka\u017cdej rady! <img decoding=\"async\" class=\"wlEmoticon wlEmoticon-smile\" style=\"border-style: none;\" alt=\"U\u015bmiech\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2014\/03\/wlEmoticon-smile.png\" \/><\/p>\n<p>Edit 2014.04.15:<\/p>\n<p>Kolejnym problemem kt\u00f3ry napotka\u0142em, to masowe zak\u0142adanie kont na blogu (mimo w\u0142\u0105czonej captchy) przez spam-user\u00f3w. Wstaj\u0119 sobie rano i widz\u0119 emaila, \u017ce na blogu za\u0142o\u017cono dwa nowe konta, polecia\u0142y komentarze. Na szcz\u0119\u015bcie wspania\u0142a wtyczka, <a href=\"http:\/\/akismet.com\">Akismet<\/a>, czuwa i blokuje spam. Ale jak pozby\u0107 si\u0119 spam user\u00f3w? Odpowiedzi\u0105 na to okaza\u0142a si\u0119 kolejna wtyczka: <a href=\"https:\/\/wordpress.org\/plugins\/sabre\/\">SABRE<\/a>. Cudowne narz\u0119dzie, wprowadza kolejne restrykcje przy zak\u0142adaniu konta, bardziej inteligentna captcha oraz sprawdzanie czy dany IP nie jest na li\u015bcie znanych boot-net\u00f3w. Od jej uruchomienia nie pojawi\u0142 si\u0119 ani jeden nowy spam-user i mog\u0142em w\u0142\u0105czy\u0107 komentowanie wpis\u00f3w dla nie zalogowanych u\u017cytkownik\u00f3w! Super :)<\/p>\n<p>I kolejny mini problem kt\u00f3ry nazywa si\u0119 semalt.com, mam pod opiek\u0105 tak\u0105 ma\u0142\u0105 <a href=\"http:\/\/rzeczoznawca.ostroda.olsztyn.pl\">wizyt\u00f3wk\u0119<\/a> lokalnej firmy, gro wej\u015b\u0107 to &#8222;miejscowi&#8221;. Plust gigantyczny ruch ze strony (podono analitycznej) semalt.com. Na szcz\u0119\u015bcie mo\u017cna si\u0119 z semalt.com wypisa\u0107 na <a href=\"http:\/\/semalt.com\/project_crawler.php\">dwa<\/a> <a href=\"http:\/\/logorrhoea.net\/2014\/01\/how-to-block-semalt-com-referrer-traffic-using-htaccess\/\">sposoby<\/a> :)<\/p>\n<div style='text-align:left' class='yasr-auto-insert-visitor'><\/div>","protected":false},"excerpt":{"rendered":"<p>Po przeczytaniu kilku artyku\u0142\u00f3w, i zgodnie z rad\u0105 Wojcieha, postanowi\u0142em migrowa\u0107 mojego WordPressa do CloudFlare. Czemu u\u017cywam sformu\u0142owania \u201cmigracja\u201d? Czym tak naprawd\u0119 jest Content Delivery Network? CDN jest czym\u015b w rodzaju globalnego proxy, dodatkowo rozproszonego po \u015bwiecie. Synchronizuj\u0105c nasz\u0105 wtyczk\u0119 &hellip; <a href=\"https:\/\/vm.piszki.pl\/?p=584\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":1538,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"yasr_overall_rating":0,"yasr_post_is_review":"","yasr_auto_insert_disabled":"","yasr_review_type":"","footnotes":""},"categories":[1],"tags":[37,40,7],"class_list":["post-584","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ogolne","tag-blog","tag-cloudflare","tag-nas"],"yasr_visitor_votes":{"stars_attributes":{"read_only":false,"span_bottom":false},"number_of_votes":2,"sum_votes":10},"_links":{"self":[{"href":"https:\/\/vm.piszki.pl\/index.php?rest_route=\/wp\/v2\/posts\/584"}],"collection":[{"href":"https:\/\/vm.piszki.pl\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vm.piszki.pl\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vm.piszki.pl\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/vm.piszki.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=584"}],"version-history":[{"count":7,"href":"https:\/\/vm.piszki.pl\/index.php?rest_route=\/wp\/v2\/posts\/584\/revisions"}],"predecessor-version":[{"id":889,"href":"https:\/\/vm.piszki.pl\/index.php?rest_route=\/wp\/v2\/posts\/584\/revisions\/889"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/vm.piszki.pl\/index.php?rest_route=\/wp\/v2\/media\/1538"}],"wp:attachment":[{"href":"https:\/\/vm.piszki.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=584"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vm.piszki.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=584"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vm.piszki.pl\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=584"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}