Har lige haft gang i en Lille opgraderings opgave af en HAproxy, som benyttes primært til at redirect web trafik.

Et par noter:

Haproxy stats.

Version 1.5 virkede

listen stats minipaddresse:1936
mode http
log global

maxconn 10

stats enable
stats hide-version
stats refresh 30s
stats show-node
stats auth admin:mitlangekodeord
stats uri /haproxy?stats

 

Version 1.7 skal man bruge "Bind" dvs:

listen stats
bind minipaddresse:1936

mode http
log global#

maxconn 10

stats enable
stats hide-version
stats refresh 30s
stats show-node
stats auth admin:mitlangekodeord
stats uri /haproxy?stats

Stats kan forsat findes ved at tilgå uri http://minipaddresse:1936/haproxy?stats

 

En anden til som tog mig lidt tid var brug af ssl i frontend.

Version 1.5 havde jeg hvor rappidssl mappen var lå under /etc/ssl/private

frontend ft_443_tcp
bind *:443 name https ssl crt rappidssl/

 

Version 1.7 er skal root path til /etc/ssl/private defineres med ( certifiate flyttede jeg ned i private mappen, da jeg også benytter Letsencrypt certs )

frontend ft_443_tcp
bind 172.16.222.85:443 ssl crt /etc/ssl/private
mode tcp

 

Standard http port 80 frontend er der ikke sket såmeget ved.

frontend ft_http-in
bind *:80
mode http
option httplog
# Define hosts
#redir sitemutrunSSL fra http til https
redirect scheme https code 301 if { hdr_end(host) -i sitemustrunSSL } !{ ssl_fc }

#Fanger letsencrypt challenge og smider det til standalone backend port 1080 for verification.
acl letsencrypt_check path_beg /.well-known/acme-challenge/
use_backend letsencrypt_backend if letsencrypt_check

 backend letsencrypt_backend
mode http
log global
#http-request set-header Host letsencrypt.request
server letsencript-standalone 127.0.0.1:1080

 

 

 

Har lige været rundt på et par af mine debian linux kasser :-)

En virtuel Debian box, på en hyper-v server

Debian servre

Jeg er dog sikker på at der er et par "live" migrations ind over denne oppe tid.


En anden, denne dog fysisk debian box, baseret på Intel atom

Intel atom - gateway

Denne kasse står uden ups, dvs. er afhængig af alm forsynings strøm. - blev kun genstartet da elektrikkeren skulle arbejde i huset.

Jeg har fået lidt tid til at lege med Letsencrypt og haproxy.
Letsencrypt er en projekt som gør det mulight at få "gratis" ssl certificater, dog kun med 90 dages løbetid pt, senere i projektet vil dette blive ændret til kortere tid efter hvad jeg kan læse på https://letsencrypt.org/

Foran mine web services har jeg en Haproxy kørrende, da denne kan splittet http / tcp trafik og derved er ligeglad med om en M$ service overholder http standard.

Dette betyder også at det er her mine offentlige ssl certificater termineres og det vil være her jeg skal have letsencrypt til at fungere.

Jeg vil gøre nytte af at ./letsencrypt-auto faktisk kan starte sin "egen" webserver til at gennemføre den authentikering som er nødvendig for at certificatet kan udstedes.

Denne authentikering køre over port 80 som udgangspunkt, hvor jeg har andre webserver kørrende, derfor kan jeg benytte " path_beg" funktionen i Haproxy til at fange url forspørgselser imode "/.well-known/acme-challenge/" og sikre at dette sendes videre til letencrypts egen webserver, som kun køre i forbindelse med oprettelse/fornyelse af certificater på den port der defines via "--http-01-port" parameteren af ./letsencrypt-auto scriptet.

De færdige certifivater vil være at finde under  /etc/letsencrypt/live og det PEM certificat som Haproxy skal bruge dannes via cat fullchain.pem privkey.pem > gw.mxbox.dk.pem og kopier gw.mxbox.dk.pem til /etc/ssl/private/

vi /etc/haproxy/haproxy.cfg

frontend ft_http-in bind *:80
mode http
option httplog

acl letsencrypt_check path_beg /.well-known/acme-challenge/
use_backend letsencrypt_backend if letsencrypt_check

backend letsencrypt_backend
mode http
log global
server letsencript-standalone 127.0.0.1:1080


vi /etc/letsencrypt/cli.ini

standalone-supported-challenges = http-01
authenticator = standalone
email = This email address is being protected from spambots. You need JavaScript enabled to view it.
rsa-key-size = 4096


./letsencrypt-auto certonly --renew-by-default --agree-tos  --http-01-port 1080 --domains gw.mxbox.dk

cd /etc/letsencrypt/live/gw.mxbox.dk

cat fullchain.pem privkey.pem > gw.mxbox.dk.pem

cp gw.mxbox.dk.pem /etc/ssl/private/

/etc/init.d/haproxy reload


Haproxy har jeg leget lidt med de sidste 2 år, faktisk har det undret mig at der ikke har været "gratis" versioner af "købe" loadbalancer tilrådighed på nettet, i dag har jeg læst at KEMP har gjort det muliget at hente en version af deres loadbalancer, dog med begrænsning på 20MBit fra http://freeloadbalancer.com/download/  såå måske denne løsning skulle undersøges lidt ??
alternativ er HAproxy, og de guides som kan findes på http://blog.loadbalancer.org og er man helt privat version, kan SOPHOS UTM faktisk også nogle ting og sager.

Lige et par linjer på hvordan jeg har sat phpsysinfo op på et par debian wheezy maskiner.

apt-get install nginx php5-fpm

cd /usr/src/

tar -zxvf v3.2.1.tar.gz

cd phpsysinfo-3.2.1/

mkdir /usr/share/nginx/www/phpsysinfo

cp -r ./* /usr/share/nginx/www/phpsysinfo

vi /etc/nginx/sites-available/phpsysinfo

og tilføj inden for den default "server"

server {

listen 8000;
index index.html index.htm index.php;

root /usr/share/nginx/www/phpsysinfo;

location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}

}

enable sitet med en softlink fra advailble til enabled

ln -s /etc/nginx/sites-available/phpsysinfo /etc/nginx/sites-enabled/phpsysinfo

start / restart nginx servicen

/etc/init.d/nginx start

herefter vil man kunne tilgå http://ipaddresse:8000/ og se phpsysinfo dog med en fejl at phpsysinfo.ini mangler.

cd /usr/share/nginx/www/phpsysinfo

cp phpsysinfo.ini.new phpsysinfo.ini

vi phpsysinfo.ini

jeg har lavet følgende rettelser til min ini file.

PLUGINS="false" er ændret til

PLUGINS="PS,PSStatus"

og i [psstatus] sektionen har jeg lagt navnen ind på de servicen jeg vil se "overvåget"

PROCESSES=" nginx, lxc-start, dnsmasq"

herefter vil phpsysinfo vise forskellige nyttige information om din host.