9 nov. 2017

Dezactivarea headerului X-Powered-By in Plesk

Atunci cand instalezi Plesk (in cazul meu Plesk Onyx 17.5.3 Update #21) pe un server Linux, in configuratia originala exista un header adaugat (X-Powered-By) la fiecare cerere HTTP sau HTTPS, indiferent ca rulezi cu Apache sau Apache + Nginx.

Ce castigi prin scoaterea headerului:
* nu oferi potentialilor atacatori informatii despre site-ul tau
* site-ul tau are o linie in minus in headere la fiecare cerere, asadar banda consumata este mai mica (desi nu este semnificativ, exista un mic aport)

In cazul meu, adaugarea unei linii de cod in htaccess pentru a scoate headerul X-Powered-By nu a functionat. Cod:
<IfModule mod_headers.c>
 Header unset X-Powered-By
</IfModule>


Asadar, am facut urmatoarele modificari:

1. Am creat un template custom


dir /usr/local/psa/admin/conf/templates/custom/domain -p
cp /usr/local/psa/admin/conf/templates/default/server.php /usr/local/psa/admin/conf/templates/custom/
cp /usr/local/psa/admin/conf/templates/default/domain/nginxDomainVirtualHost.php /usr/local/psa/admin/conf/templates/custom/domain/

2. Am modificat template-ul custom


nano /usr/local/psa/admin/conf/templates/custom/server.php
la linia 70, am sters
<?php if (!$VAR->server->webserver->proxyActive): ?>
<IfModule mod_headers.c>
 Header add X-Powered-By PleskLin
</IfModule>
<?php endif ?>


nano /usr/local/psa/admin/conf/templates/custom/domain/nginxDomainVirtualHost.php
la linia 163, am sters
add_header X-Powered-By PleskLin;

3. Am refacut configurarile plesk


/usr/local/psa/admin/bin/httpdmng --reconfigure-all
Nota finala: desi in tutorialul de pe Oli's blog sugera restartul serverelor de apache si nginx, la mine a functionat fara restart.


Referinte: Oli's blog (in germana)

7 nov. 2017

Instalarea mediului de programare Go

Cei de la Google au pus la dispozitie pachete bin la download pentru mediul de programare Go. Asadar, va trebui doar sa downloadam arhiva, sa o despachetam, sa adaugam calea pentru userul nostru si sintem gata sa programam in Go.

Comenzile executate mai jos au fost rulate pe un server Red Hat. Insa tot la fel de bine pot rula si sub alta distributie de Linux cu mici modificari, precum Ubuntu. Pe Ubuntu fisierul .bash_profile este de fapt .profile.

1. downloadam Go de pe site-ul oficial


wget https://redirector.gvt1.com/edgedl/go/go1.9.2.linux-amd64.tar.gz

* link site oficial
* asigurati-va ca luati ultima versiune

2. despachetam pachetul


tar -C /usr/local -xzf go1.9.2.linux-amd64.tar.gz

va pune fisierele despachetate in /usr/local

rm go1.9.2.linux-amd64.tar.gz

sterge arhiva

/usr/local/go/bin/go version
va afisa versiunea programului go

exemplu:
go version go1.9.2 linux/amd64


3. adaugam programul instalat in calea userului curent


acest pas este necesar daca doriti sa scrieti direct comanda go in linie de comanda fara scrierea caii complete

nano ~/.bash_profile

adaugam inainte de linia export PATH urmatorul cod

PATH=$PATH:/usr/local/go/bin

si apoi rulam

source ~/.bash_profile

ca sa aplice modificarea instant pentru PATH (altfel va trebui sa iesim - logout - si sa reintram in sesiunea liniei de comanda)

4. rulam un program de test


cream un director si un fisier sursa

mkdir -p ./go-test
cd ./go-test
nano hello.go

dam copy/paste la urmatorul cod de test

package main

import "fmt"

func main() {
    fmt.Printf("hello, world\n")
}

facem un fisier binar
go build
rulam fisierul binar
./hello
si output-ul in linie de comanda va fi
hello, world


Referinte: instalare golang, tutorial golang digitalocean, instalare Go pe Ubuntu 16.04