Protejăm libertatea de la invazia vandalilor și neamurilor)

Protejați FreeBSD (fundaș +1)


Ca și în cazul oricărui alt sistem FreeBSD, trebuie, de asemenea, să vă protejați împotriva inculpărilor. ea
nu atât de protejat, cât de mulți oameni se gândesc la el și poate fi, de asemenea, spart și grunted,
la fel ca același Windows, pur și simplu FreeBSD nu este distribuit pe scară largă și există puțini specialiști care
funcționează și chiar mai mult cine o cunoaște în perfecțiune, astfel încât mai mulți specialiști
este rupt mai multe găuri și rootkits vor fi deschise și utilizate.

Împărțim apărarea în două tipuri:
I) Protecția împotriva atacurilor externe
II) Protecția împotriva atacurilor interne

Acum definim frontul de protecție:

I) Atac din exterior:
1.1) Apache - http.conf + mod_security
1.2) PHP - php.ini + mod_security + dezactivați funcțiile periculoase + Limitarea resurselor
1.3) FTP - privilegii Split + chroot + cote + HDD separat
1.4) Firewall - paravan de protecție configurat corect
1,5) Схроот

II) Atac în interior:
2.1) Limitări ale resurselor - /etc/login.conf + /etc/sysctl.conf
2.2) Separarea privilegiilor - /etc/sysctl.conf + chmod + structura folderului
2.3) Logcheck
2.4) sus / ps

III) Măsuri generale
3.1) parsarea fstab
3.2) Accesul la server
3.3) DNS - chroot + noroot

Acum vom trece prin puncte (unele puncte vor fi descrise pe scurt de la principiul general
protecția se intersectează cu alte puncte) cum și ce poate fi protejat și limitat:

I) Acoperirea găurilor exterioare.

1.1) Apache + gazde virtuale + mod_security
Vom acoperi găurile acestui serviciu pentru început, trebuie să stabilim restricții
în config pentru fiecare intrare. Adăugați următorii parametri:

După cum știți, apare o mare parte a hacking-ului (SQL Injection, XSS attack, inclusion)
de fapt, printr-o cerere HTTP dificilă. Este logic să presupunem că aceleași lucruri
ar fi bine să filtrați cererile. Soluția problemei există sub forma unui modul
Apache, și se numește mod_security. Am pus:

După instalare - mergem la configurare. Deschidem orice configurație a gazdei virtuale,
de exemplu, 001.admin.hosting.ru, pe care am experimentat deja. Toate valorile
trebuie să fie introduse între etichete și .

Pentru și pentru apache 1.x în httpd.conf, vă rugăm să rețineți:

Acest modul are o configurație implicită neobișnuit de succes. Pentru ea nu este suficient, că este posibil
adăugați, deoarece majoritatea setărilor sunt specifice. Principiul general al compilării
regulile pe care le-am revizuit, iar restul pot fi adăugate la discreția dvs.

1.2) PHP
În plus, a se vedea punctul 2.1
Luați în considerare locul cel mai vulnerabil al sistemului de găzduire - fișiere executabile, în special,
Script-uri PHP. Deschideți config PHP:

Schimbați următorii parametri:

Dezactivarea acestor funcții este foarte importantă. Deși nu sunt disponibile cu modul de siguranță activat,
utilizatorul poate face cu ușurință un atac de succes prin specificarea în fișierul .htaccess:
php_flag safe_mode dezactivat

1,5) Chroot
Chroot - sandbox, desigur, pe de o parte este bun cu celălalt - pierderea
performanță, pentru unele programe extra extra
modul + configurați-l. Cred că chmod-ul cu litere grele dă același rezultat. dar fără
probleme și pierderi de resurse. Practic, chrootul este folosit atunci când este necesar să se securizeze
un serviciu care nu este complet sigur, cum ar fi BIND (vezi mai jos).
Jail - nu vom considera că axa din interiorul axei este destul de zamorocheno și rău
documentat, și dacă toate vhosts trebuie să fie condus în închisoare, atunci nu va fi mult.
Eu încă nu consider închisoare :)

II) Configurați măsurile interne de protecție spate.

2.1) Limitări ale resurselor
Se întâmplă că, în plus față de acțiunea principală a scriptului PHP, funcția N este looped, în trecere
calcularea unor acțiuni complicate. Ca urmare, utilizarea CPU este mare.
Aceasta este o situație foarte tipică pentru găzduire. Pentru a preveni astfel de neintenționate
(și intenționate), trebuie să limitați utilizatorul în termeni de resurse. * BSD pentru
Există un sistem de profiluri de utilizator pentru astfel de scopuri. Asta înseamnă că putem
este ușor să limitați resursele fiecărui utilizator individual.
Deschideți /etc/login.conf și adăugați:

Aici am indicat numai parametrii de bază.
O listă a tuturor parametrilor și descrierea acestora poate fi găsită în Manual.
Acum, să continuăm cu configurarea sistemului de operare. Deschideți /etc/sysctl.conf și scrieți acolo
Următoarele:

3.1) HDD
Să facem câteva modificări în fstab pentru a preveni acțiunile necorespunzătoare.
Să specificăm unde și ce puteți și nu puteți face sistemul.

noexec - această opțiune clarifică faptul că nu este permisă această rubrică în această secțiune
sau chiar drepturile la fișierul chmod 777 (știu că unele servere protejate au rupt
a fost prin / tmp :) in urma administratorilor sfatuiti sa acopere aceasta gaura.
Și este de neuitat că in / tmp poate scrie aproape orice serviciu în sistem)

nosuid - cu această valoare sistemul ignoră suid-biți. Utilizatorul nu poate face
#su și mergeți până la rădăcină, chiar dacă își cunoaște parola de root și se află într-un grup
(dar este necesar să înțelegeți ce este necesar pentru fișierele care au nevoie de directorul #su home
va fi / usr, iar cei care au nevoie să restricționeze directorul vor fi / usr / home)

nodev - interzicem crearea existenței unor dispozitive speciale în această secțiune.

3.2) Accesul
Accesul la server ar trebui să fie limitat. Ie Eliminați serverele la inaccesibile prin simple
oameni muritori și închideți cheia. În plus, nu uitați să eliminați din ele toate motivele
monitorizează mouse-ul și mouse-ul etc. De ce ar trebui să fie clar, de exemplu, dacă văd
public / fizic serverul FreeBSD, imediat după curiozitate vreau să intru în el
și sapă mai adânc în ea. Dar veți spune, dar despre parola root etc. apoi ascultă mai departe,
dacă ați uitat parola de altcineva :) dar se întâmplă așa:

A) Începeți în modul pentru un singur utilizator. pentru aceasta în invitația de încărcare
tip boot-uri
B) Montați partiția mount -u / root în modul citire-scriere.
Apoi, folosind mount -a, vom monta tot ceea ce este (adică, doar menționat
în fstab fără opțiunea noauto)
B) Schimbați acum parola de root. )

Pentru a împiedica accesul utilizatorilor fără o parolă de root în modul pentru un singur utilizator, procedăm astfel:

Schimbați linia consolei pentru a vă asigura de nesiguranță. Dacă faceți acest lucru,
FreeBSD va solicita parola de root chiar si atunci cand boot-ul este in modul single-user.
Aveți grijă atunci când modificați această valoare la nesiguranță. Dacă vă uitați parola
rădăcină, încărcarea în modul pentru un singur utilizator este mult mai complicată.
Acest lucru este încă posibil, dar ceva mai complicat.


3.3) DNS
Puneți DNS în cutia de nisip

-u este valoarea UID atribuită procesului numit
-t indică directorul rădăcină pentru daemon
De neuitat, directorul rădăcină nu este necesar, trebuie să fie gol, trebuie să conțină toate fișierele
necesare funcționării normale a daemonului. Dacă numele este compilat astfel încât
bibliotecile au fost legate între ele în mod static și nu era nevoie să se creadă că are nevoie de mai mult în rădăcină
puneți-o să înceapă :) De asemenea, unii sfătuiesc în configurația DNS să elimine linia
Despre versiunea demonului spun că poate ajuta atacatorul, etc. Nu cred că este critică
ea poate cere și administratorul însuși.