Здравейте и добре дошли в #root.bg!
Тук може да намерите статии и уроци за linux, мрежи и тяхната защита, игри и забавление, както и хобита – ролери, дронове и много други.
Тук може да намерите статии и уроци за linux, мрежи и тяхната защита, игри и забавление, както и хобита – ролери, дронове и много други.
Николай Николов Работа google, spdy, ssl, ssl certificate, startssl.com 0
Онлайн пазаруването се развива стремглаво нагоре, и поради това, сигурността и бързината на уеб сайтовете е много важна за всеки един уеб администратор. От както google пуснаха на пазара своя протокол наречен SPDY, аз започнах да експериментирам със SSL техники на блога си, защото освен че съм голям фен на така нареченият „performance“, обичам и сигурността.
Поради тази причина искам да споделя сайта http://www.startssl.com/ който предлага безплатен SSL сертификат за един или повече домейни + 1 суб домейн. Хубавото в случая е, че сертификатите на startssl се разпознават безпроблемно от почти всеки браузър, което значи че ще избягваме досадните съобщения за self signed certificate. Разбира се това не е вариянт за големите компании и за страници на големи онлайн магазини които искат най-голямата възможна надежност предоставена от SSL сертификатите, но е добро начало, и идеално за блогове като моя 🙂
Обаче стигнах до заключение, че изцяло изването на този сертификат (тоест пълен 301 редирект от http към https) ще ни навреди за SEO позициите на сайта. Причината е че един прост curl -I не вижда сертификата като валиден. Също така се вижда невалиден и за ботовете и популярните SEO тулчета. Поради тази причина не съм направил 301 редирект все още, въпреки че много ме блазни отново да пусна SPDY.
Сигурно има и други сайтове които предлагат безплатни сертификати, и съм обеден че не откривам топлата вода със startssl (за което искам да се извиня предварително) , но ще се радвам ако някой сподели друг по-добър сайт за да мога да продължавам да тествам 🙂 Благодаря!
Николай Николов Работа, Howto ios, iphone, openvpn 0
Тъй като след обновяване на версията на iOS, настройките за OpenVPN приложението не се запазват, реших да драсна в блога набързо как лесно става настройката, за да ми е лесно за напред.
Сега и подробностите.
Това е конфигурационният файл + сертификатите ( разбира се съм сложил невалидни такива )
Отваряме iTunes и избираме „apps“
Николай Николов Работа, Howto curl, Facebook, nginx, remove header, server 0
Често съм се питал как facebook.com си скриват Server header-а, тоест :
web2:~# curl -I https://www.facebook.com HTTP/1.1 200 OK Pragma: no-cache X-Frame-Options: DENY Cache-Control: private, no-cache, no-store, must-revalidate Expires: Sat, 01 Jan 2000 00:00:00 GMT X-XSS-Protection: 0 X-Content-Type-Options: nosniff P3P: CP="Facebook does not have a P3P policy. Learn why here: http://fb.me/p3p" Set-Cookie: reg_fb_gate=https%3A%2F%2Fwww.facebook.com%2F; path=/; domain=.facebook.com Set-Cookie: reg_fb_ref=https%3A%2F%2Fwww.facebook.com%2F; path=/; domain=.facebook.com Set-Cookie: reg_ext_ref=deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT; path=/; domain=.facebook.com Set-Cookie: datr=redUU4C5xfriseY9srwt472n; expires=Wed, 20-Apr-2016 09:41:01 GMT; path=/; domain=.facebook.com; httponly Content-Type: text/html; charset=utf-8 X-FB-Debug: vLVadCnq65jFMIPA4W/cXrElVE09UTk61wyH+iB5WHU= Date: Mon, 21 Apr 2014 09:41:01 GMT Connection: keep-alive Content-Length: 51718
Не виждаме никакъв Server отговор.
Открих начин как да го постигна с един модул за nginx, наречен headers-more-nginx-module. Готиното тук е, че освен скриването на Server, можем да променяме и името на Server. Опцията може да се слага освен в http, server и в location, тоест можем да променяме името на всеки един от виртуалните ни хостове. Инсталирането е елементарно, и е описано как става тук.
Опцията е:
more_set_headers 'Server: my-server';
А резултата е:
web2:~# curl -I http://friendbg.net HTTP/1.1 200 OK Date: Mon, 21 Apr 2014 09:48:54 GMT Content-Type: text/html; charset=UTF-8 Connection: keep-alive Vary: Accept-Encoding X-Powered-By: PHP/5.5.11-1~dotdeb.1 X-Pingback: http://friendbg.net/xmlrpc.php Server: my-server X-Friendbg-Cache: HIT'n'RUN X-Content-Type-Options: nosniff P3P: Can I help you? Contact me via http://friendbg.net/contacts/, CP=CAO ADMa DEVa IND PHY ONL UNI COM LOC
Скриването на Server става със слагането на more_clear_headers в nginx.conf:
more_clear_headers Server;
Повече за HttpHeadersModule може да се намери в wiki-то на nginx.org.
Николай Николов Работа, Howto cloudflare, haproxy, nginx, real-ip, spdy, ssl 0
Привет, днес пуснах отново блога да върви през cloudflare. Бях го спрял защото 1 година използвах SSL сертификат от GoDaddy заради SPDY но серфитиката изтече, а и цената му вече беше доста по-висока от когато го бях закупил. И така реших отново да пусна трафика да минава през cloudflare защото в крайна сметка използвам само 80 порт.
Тъй като от поста ми за SPDY писан през септември 2012-та година много вода е изтекла, и промените по инфраструктурата на сървърите ми са доста – а именно вече използвам HAProxy за load balancer + още много много благинки. Тук идва и проблема на който знаех че ще се натъкна след като включа cloudflare – а именно грешните айпи адреси в логовете. Проблема е че в конфигурационния файл на HAProxy съм добавил опцията :
option forwardfor
Тя позволява реалните айпи адреси на посетителите на сайта да бъдат препращани към уеб сървъра (nginx) в който съответно също са добавени опциите:
set_real_ip_from 192.168.1.1; # това е вътрешното айпи на HAProxy сървъра real_ip_header X-Forwarded-For;
Но след като съм включил cloudflare, е небходимо да заменя „real_ip_header X-Forwarded-For;“ със „real_ip_header CF-Connecting-IP;“ и да добавя айпи адресите на CloudFlare от https://www.cloudflare.com/ips-v4
Всичко хубаво, но не се получи желаният от мен резултат. 🙂
В крайна сметка реших проблема , след като добавих опцията :
option httpclose
в haproxy.cfg за даденият backend.
Така конфигурационният файл за backend-a на блога вече изглежда така:
backend friendbg.net cookie SERVERID insert indirect balance roundrobin option httpclose server web1 192.168.1.31:80 cookie web1 check inter 2000 rise 2 fall 5 server web2 192.168.1.32:80 cookie web2 check inter 2000 rise 2 fall 5 server web3 192.168.1.33:80 cookie web3 check inter 2000 rise 2 fall 5
И nginx конфига на friendbg.net изглежда така:
#cloudflare set_real_ip_from 199.27.128.0/21; set_real_ip_from 173.245.48.0/20; set_real_ip_from 103.21.244.0/22; set_real_ip_from 103.22.200.0/22; set_real_ip_from 103.31.4.0/22; set_real_ip_from 141.101.64.0/18; set_real_ip_from 108.162.192.0/18; set_real_ip_from 190.93.240.0/20; set_real_ip_from 188.114.96.0/20; set_real_ip_from 197.234.240.0/22; set_real_ip_from 198.41.128.0/17; set_real_ip_from 162.158.0.0/15; set_real_ip_from 104.16.0.0/12; set_real_ip_from 192.168.1.1; real_ip_header CF-Connecting-IP;
Така вече всичко работи както исках, вече виждам реалните айпи адреси на посетителите на блога + трафика на сайта минава през cloudflare. Това е..