Etape recomandate pentru servere FreeBSD 10.1

Blog: OS
La configurarea unui nou server FreeBSD, exista o serie de masuri optionale pe care le puteti lua pentru ca server-ul dvs. sa ajunga intr-o stare de functionare mai prietenoasa. in acest ghid vom acoperi unele dintre cele mai comune exemple.

Introducere

La configurarea unui nou server FreeBSD, exista o serie de masuri optionale pe care le puteti lua pentru ca server-ul dvs. sa ajunga intr-o stare de functionare mai prietenoasa. in acest ghid vom acoperi unele dintre cele mai comune exemple.

Vom trece peste modul in care sa cream un simplu si usor de configurat firewall care refuza majoritatea traficului. Ne vom asigura de asemenea ca fusul orar al server-ului dvs. este configurat corect. O sa configuram alegerea NTP in ordine cu scopul de a pastra timpul server-ului precis si in cele din urma vom demonstra cum sa adaugati extra spatiu swap pe server.

Inainte de a incepe acest ghid trebuie sa va autentificati si sa configurati mediul de protectie dupa cum doriti.

Cum sa Configuram un Simplu IPFW Firewall

Prima sarcina pe care o vom aborda este crearea unui firewall simplu pentru a securiza server-ul nostru.

FreeBSD suporta si include trei firewall-uri separate, fiecare cu propria rezistenta si slabiciune. Acestea sunt numite pf, ipfw, si ipfilter. in acest ghid vom folosi ipfw pentru ca putem cu usurinta pune la punct un firewall stateful.

Configurarea Firewall-ului de baza

Aproape toata configurarea va avea loc in fisierul /etc/rc.conf. Deschideti acest fisier cu drepturi sudo in editorul dvs.

sudo vi /etc/rc.conf

In interior ca trebui sa adaugam un numar de linii diferite care sa permita si sa controleze cum firewall-ul ipfw va functiona. Sa incepem cu regulile esentiale. Adaugati acestea in partea de jos a fisierului:

firewall_enable="YES"
firewall_quiet="YES"

Asa cum probabil va asteptati, prima linie permite firewall-ul ipfw, pornindu-l automat la boot si permitându-i ca la pornire sa aiba comenzile  service obisnuite.

Cea de-a doua comanda spune ipfw, sa nu permita nici o iesire standard când efectueaza anumite actiuni. Acest lucru ar putea fi privit ca pe o chestiune de preferinta, dar influenteaza defapt functionalitatea firewall-ului.

Doi factori se combina pentru a face ca aceasta sa fie o optiune importanta. Primul este acela ca script-ul de configurare al firewall-ului este executat intr-un mediu de protectie curent, nu ca sarcina de fond. Al doilea factor este când comanda ipfw citeste un script de configurare fara steagul “quiet”, citeste si scoate fiecare linie, la rândul sau, la standardul cerut. Când afiseaza o linie, executa imediat actiunea asociata.

Cele mai multe fisiere de configurare firewall trec peste normele actule de la inceputul script-ului pentru a o lua de la inceput. Daca firewall-ul ipfw vine peste o linie fara quite flag, va incalca imediat toate regulile si se va intoarce la politica implicita, care de obicei respinge toate conexiunile. Daca configurati firewall-ul peste SSH, acest lucru ar scadea  conexiunea, ar inchide sesiunea curenta de protectie si nici una dintre regulile care urmeaza nu ar fi prelucrate, inchizând efectiv accesul la server. Practic quite flag-ul permite firewall-ului sa proceseze regulile ca pe un set in loc sa le implementeze individual pe fiecare.

Dupa aceste doua linii putem incepe configurarea firewall-ului:

 

firewall_type="workstation"
firewall_myservices="22 80"
firewall_allowservices="any"
firewall_logdeny="YES"

Pentru inceput selectam "workstation" ca tip de firewall pe care il vom configura. Acesta este un firewall stateful cu un comportament implicit bun. De asemenea ne permite sa modificam cu usurinta serviciile pe care vrem sa le acceseze clientii folosind optiunile firewall_myservices si firewall_allowservices. La final, vom configura ipfw pentru autentificarea si conexiunile care sunt respinse prin regulile configurate.

Optiunea firewall_myservices trebuie stabilita pentru o lista de servicii sau porturi TCP, separate prin spatii, care ar trebui sa fie accesibile pe server. Puteti folosi porturile, asa cum avem aici (am configurat port-ul 22 pentru conexiunea SSH si port-ul 80 pentru server  web conventional HTTP). Ati putea folosi si servicii de nume. Serviciile pe care FreeBSD le cunoaste dupa nume sunt listate in fisierul /etc/services. De exemplu, putem schimba cele de mai sus cu ceva de genul:

firewall_myservices="ssh http"

Acesta va avea aceleasi rezultate. Daca folositi SSH pe server-ul dvs. web asigurati-va ca adaugati fie portul 443 fie serviciul https in lista.

Lista de obiecte firewall_allowservices  sunt clientii carora li se permite accesul la serviciile oferite. Cuvântul "any" inseamna ca orice client poate accesa aceste servicii. Daca dorim sa limitam clientii care se pot conecta la serviciile noastre putem face acest lucru de aici.

Optiunea firewall_logdeny transmite ipfw sa autentifice toate incercarile de conexiune care sunt respinse intr-un fisier localizat /var/log/security.

Toate impreuna, /etc/rc.conf aceasta portiune din fisierul ar trebui sa arate cam asa:

 

firewall_enable="YES"
firewall_quiet="YES"
firewall_type="workstation"
firewall_myservices="22 80"
firewall_allowservices="any"
firewall_logdeny="YES"

Amintiti-va sa ajustati optiunea firewall_myservices care se refera la serviciul pe care il prezentati clientilor. Când ati terminat salvati si inchideti fisierul.

Permiterea Conexiunilor UDP

Porturile si serviciile listate in optiunea firewall_myservices  din fisierul /etc/rc.conf permite accesul conexiunilor TCP. Daca aveti servicii pe care doriti sa le expuneti si care folosesc UDP, trebuie sa editati fisierul /etc/rc.firewall:

sudo vi /etc/rc.firewall

Am configurat firewall-ul pentru a folosi tipul firewall "workstation", asa ca uitati-va dupa o sectiune care arata ca aceasta:

Este o sectiune in interiorul acestui bloc care este dedicata procesarii valorilor firewall_allowservices si firewall_myservices pe care le-am configurat. Va arata ca acesta:

for i in ${firewall_allowservices} ; do
  for j in ${firewall_myservices} ; do
    ${fwcmd} add pass tcp from $i to me $j
  done
done

Dupa aceasta sectiune putem adauga servicii sau porturi care ar trebui sa accepte pachete UDP prin adaugarea unei linii ca aceasta:

${fwcmd} add pass udp from any to me port_num

In exemplul de mai sus, puteti lasa cuvântul “any” daca conexiunea ar fi permisa pentru toti clientii sau o puteti schimba cu  o adresa IP specifica sau cu o gama de retea. Comanda port_num de mai sus ar trebui inlocuita cu un numar de port sau un nume de serviciu pentru care doriti accesul UDP. De exemplu, daca rulati un DNS server, v-ati dori sa aveti o linie care arata in felul urmator:

for i in ${firewall_allowservices} ; do
  for j in ${firewall_myservices} ; do
    ${fwcmd} add pass tcp from $i to me $j
  done
done

${fwcmd} add pass udp from 192.168.2.0/24 to me 53

Aceasta ar trebui sa permita oricarui client din intervalul 192.168.2.0/24  sa acceseze server-ul DNS care opereaza cu portul standard 53. De remarcat ca in acest exemplu veti dori sa deschideti acest port pentru conexiuni TCP ca si cum ar fi folosit de server-ul DNS pentru raspunsuri mai lungi.

Salvati si inchideti fisierul când ati terminat.

Pornirea Firewall-ului

Când ati terminat de configurat, puteti porni firewall-ul tastând:

sudo service ipfw start

Firewall-ul ar trebui sa ruleze corect, blocând traficul nedorit in timp ce adera la serviciile si porturile permise. Acest firewall porneste automat la fiecare boot.

De asemenea, dorim sa configuram o limita a cât de multe refuzuri de autentificare pot avea adresele IP. Acest lucru va preveni umplerea jurnalelor noastre cu un singur utilizator persistent. Puteti face acest lucru in fisierul /etc/sysctl.conf:

sudo vi /etc/sysctl.conf

La inceputul fisierului putem limita autentificarile la “5” adaugând:

net.inet.ip.fw.verbose_limit=5 

Salvati si inchideti fisierul când ati terminat. Acesta va configura aceasta setare la urmatoarea pornire.

Pentru a pune in aplicare acelasi comportament pentru sesiunea activa putem folosi comanda sysctl in sine, ca mai jos:

sudo sysctl net.inet.ip.fw.verbose_limit=5

Aceasta ar trebui sa implementeze imediat limita pentru acest boot.

Cum se Seteaza Fusul Orar pentru un Server

Este o idee buna sa configurati corect fusul orar pentru server-ul dvs. Acesta este un pas important pentru cand veti configura sincronizarea NTP (Network Time Protocol) din sectiunea urmatoare.

FreeBSD vine cu un meniu de baza numit tzsetup pentru configurarea fusului orar. Pentru a configura fusul orar pentru serverul dvs. apelati la aceasta comanda cu privilegii sudo:

sudo tzsetup

Va va aparea o caseta de dialog, in care veti fi intrebat daca ceasul echipamentului dvs. este setat la ora locala sau la UTC.

FreeBSD UTC or local time

Selectati „No”. Mai departe veti fi intrebat care este regiunea in care server-ul dvs. este localizat.

FreeBSD region of the world

In continuare va trebui să alegeti o regiune sau o tara.

FreeBSD country

La final selectati fusul orar cel mai apropiat de server-ul dvs.

FreeBSD time zone

Confirmati fusul orar care este prezentat pe baza alegerilor dvs.

In acest moment fusul orar ar trebui sa se potriveasca cu selectia facuta de dvs.

Cum sa Configuram NTP (Network Time Protocol) pentru a Mentine Timpul Exact

Acum ca aveti fusul orar configurat pe server-ul dvs. putem seta NTP - Network Time Protocol. Acesta va ajuta ca server-ul dvs. sa fie sincronizat cu serverele din intreaga lume. Acest lucru este important pentru  interactiunile client – server, dar si pentru autentificare.

Putem activa serviciul NTP pe server prin ajustarea fisierului /etc/rc.conf. Trebuie sa il deschideti cu privilegii sudo:

sudo vi /etc/rc.conf

In acest fisier trebuie sa adaugati urmatoarea linie:

ntpd_enable="YES"

De asemenea va trebui sa adaugati o a doua linie  care va sincroniza server-ul nostru cu serverele NTP la boot. Acest lucru este necesar deoarece permite server-ului sa depaseasca limita normala de drift la initiere. Server-ul dvs. va fi in afara limitei de drift la boot pentru ca fusul orar va fi aplicat prioritar pornirii NTP daemon care va compensa timpul sistemului nostru:

ntpd_enable="YES"
ntpd_sync_on_start="YES"

Daca nu am fi avut aceasta linie, NTP daemon-ul nostru ar esua atunci cand va porni, din cauza setarilor de fus orar care deviaza timpul sistemului nostru inainte procesului de boot.

Salvati si inchideti fisierul cand ati terminat.

Puteti porni serviciul ntpd tastand:

sudo service ntpd start

Acesta va mentine timpul server-ului sincronizandu-l cu serverele NTP listate in /etc/ntp.conf.

Cum sa Configuram Spatiul Suplimentar Swap

Pe serverele cu FreeBSD configurate la ............,  1 Gigabyte de spatiu swap este configurat automat, indiferent de dimensiunea server-ului. Puteti vedea acest lucru tastand:

sudo swapinfo -g

Ar trebui sa arate in felul urmator:

Device  1G-blocks     Used    Avail Capacity
/dev/gpt/swapfs 1 0 1     0%

Unii utilizatori si unele aplicatii s-ar putea sa aiba nevoie de mai mult spatiu swap decat acesta. Acest lucru este cu usurinta indeplinit adaugand un fisier swap.

Primul lucru pe care trebuie sa il facem este sa alocam o parte din sistemul de fisiere pentru fisierul pe care dorim sa il utilizam pentru swap. Vom folosi comanda truncate, care va aloca spatiu.

In acest ghid vom pune fisierul swap pe /swapfile, dar puteti utiliza orice locatie rezonabila din sistemul de fisiere. Acest fisier va oferi un spatiu swap aditional de 1 Gigabyte. Puteti ajusta acest numar modificand valoarea data cu ajutorul optiunii -s.

sudo truncate -s 1G /swapfile

Dupa ce vom aloca spatiul trebuie sa inchidem accesul la fisier. Utilizatorii obisnuiti nu trebuie sa aiba acces la acest fisier:

sudo chmod 0600 /swapfile

In continuare, asociati un pseudo dispozitiv cu fisierul si configurati-l pentru a monta la boot prin tastarea:

sudo sh -c 'echo "md99 none swap sw,file=/swapfile,late 0 0" >> /etc/fstab'

Comanda de mai sus adauga o linie care arata in felul urmator, la fisierul /etc/fstab:

md99 none swap sw,file=/swapfile,late 0 0

Dupa ce linia este adaugata la fisierul /etc/fstab, putem activa fisierul swap pentru sesiune prin tastarea:

sudo swapon -aqL

Putem verifica functionalitatea fisierului swap utilizand aceasta comanda swapinfo inca o data.

sudo swapinfo -g

Ar trebui sa vedeti dispozitivul suplimentar (/dev/md99) asociat cu fisierul swap:

Device  1G-blocks     Used    Avail Capacity
/dev/gpt/swapfs 1 0 1     0%
/dev/md99       1 0 1     0%
Total   2 0 2     0%

Acest fisier swap va fi montat automat la fiecare boot.

Concluzii

Pasii subliniati in acest ghid pot fi folositi pentru a aduce server-ul FreeBSD intr-o stare mai buna pentru productie.  Prin configurarea de  baza a unor elemente esentiale ca firewall, sincronizarea NTP, spatiu adecvat swap server-ul dvs. poate fi folosit ca o baza buna pentru instalatii si servicii viitoare.

Din aceeasi categorie

Te muti la noi?

Migrarea catre un nou furnizor de hosting poate fi extrem de complicata . Fii relaxat si lasa-i expertii nostri sa o faca! Vom muta site-ul existent în 48 de ore, fara intrerupere . Inclus GRATUIT la achizitionarea oricarui pachet de gazduire BTS Telecom.