Crearea unui profil apparmor pentru nginx în ubuntu

Plasarea serverelor în centre de date fiabile din Europa. Deschideți serverul VPS / VDS bazat pe cloud pe SSD-uri rapide în 1 minut!

Cel mai bun Gazduire:
- protejează datele de accesul nedorit într-un centru de date european protejat






- va accepta plata cel puțin în taxe.
- vă va permite să vă distribuiți distribuția

- protecția împotriva atacurilor DDos
- copie de rezervă gratuită
- Uptime 99.9999%
- Centrul de date - TIER III
- furnizor - TIER I

Sprijinim în limba rusă 24/7/365 Lucrăm cu persoane juridice și persoane fizice. Acum aveți nevoie de 24 nuclee și 72 GB de memorie RAM. Vă rog!

Tarifele noastre avantajoase vor dovedi că nu ați știut încă ieftinul de găzduire!

Minute: selectați configurația, plătiți și CMS de pe VPS este gata.
Banii înapoi - 30 de zile!

Carduri bancare, e-valută, prin intermediul terminalelor Qiwi, Webmoney, PayPal, Novoplat etc.

Puneți o întrebare la sprijinul 24/7/365

Găsiți răspunsuri în baza noastră de date și cunoașteți recomandările

Atunci când administrați serverul, trebuie să monitorizați în mod constant apariția noilor vulnerabilități.

Din păcate, chiar și cele mai recente patch-uri de securitate pentru aplicații și sistemul de operare nu pot oferi protecție de 100%, iar serverul poate fi expus la atacuri de zi zero.

Notă: atacurile zilei zero sau zero - acestea sunt vulnerabilități necunoscute și programe malware, din care nu există mecanisme de apărare.

AppArmor este un modul de bază Linux folosit ca sistem de control al accesului care protejează serverul de astfel de atacuri. Acest modul este disponibil în mod implicit în sistemele Ubuntu de la lansarea Ubuntu 8.04.

Când aplicația AppArmor este activată pentru orice aplicație, sistemul de operare permite accesarea numai a acelor fișiere și foldere specificate în profilul său de securitate. Astfel, un profil de securitate bine conceput poate preveni un atac sau poate minimiza deteriorarea acestuia.

Acest ghid vă va ajuta să creați un profil AppArmor simplu pentru serverul web Nginx.

Pentru a demonstra exemplele, Nginx va servi fișiere statice din directoarele / data / www / safe and / data / www / unsafe. AppArmor va configura Nginx pentru a servi doar / data / www / safe.

Astfel, atunci când AppArmor este dezactivat, un utilizator extern poate accesa fișiere din ambele directoare. Cu modulul AppArmor activat, va fi disponibil numai conținutul directorului / data / www / safe.

cerinţe

1: Instalarea Nginx

Puteți instala Nginx utilizând managerul de pachete standard apt-get.

sudo apt-get update
sudo apt-get instala nginx

În mod implicit, serverul Nginx ascultă pe portul 80. Pentru a verifica acest lucru, deschideți serverul de domeniu sau IP în browser și specificați portul:

Se afișează pagina de întâmpinare Nginx:

Bine ați venit la nginx!
Dacă vedeți această pagină, serverul web nginx este instalat și funcționează cu succes. ...

2: Configurarea Nginx pentru a menține fișierele statice

Creați următoarele directoare de fișiere statice:

sudo mkdir -p / date / www / seif
sudo mkdir -p / data / www / nesigure

Adăugați fișierul în directorul sigur:

sudo nano /data/www/safe/index.html

Introduceți codul următor:


Buna ziua! Accesarea acestui fișier este permisă.

Apoi adăugați fișierul numit index.html în directorul / data / www / unsafe și puneți în el următorul cod:


Buna ziua! Accesarea acestui fișier nu este permisă.

Fișierul de configurare Nginx este localizat în /etc/nginx/nginx.conf. Editați acest fișier, configurați ascultarea potului 8080 și suportați directorul / data / www.

datele de utilizator ale utilizatorului;
worker_processes 4;
pid /run/nginx.pid;
evenimente worker_connections 768;
>
http sendfile pe;
tcp_nopush pe;
tcp_nodelay pe;






keepalive_timeout 65;
types_hash_max_size 2048;
include /etc/nginx/mime.types;
aplicație default_type / octet-stream;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
gzip pe;
gzip_disable "msie6";
include /etc/nginx/conf.d/*.conf;
server ascult 8080;
locație / rădăcină / date / www;
>
>
>

Salvați și închideți fișierul. Reporniți Nginx pentru a actualiza setările:

sudo nginx -s reload

Pagina din directorul sigur arată astfel:

Buna ziua! Accesarea acestui fișier este permisă.

3: Verificarea profilurilor AppArmor

Ubuntu 14.04 este preîncărcat cu profile AppArmor. Puteți instala majoritatea acestora utilizând comanda:

sudo apt-get instala apparmor-profile

Lista conține destul de multe profiluri. Unele dintre ele vor fi active (mod de executare), iar altele în modul de reclamație (aceasta înseamnă că AppArmor va înregistra activitatea unei astfel de aplicații fără a le restricționa accesul).

Fișierele jurnal vor fi stocate în directorul / var / log / nginx.

AppArmor restricționează accesul numai la aplicațiile ale căror profil este în modul de aplicare.

De asemenea, veți observa că nu există niciun profil pentru Nginx în listă. Trebuie să-l creați singur.

4: Crearea unui profil AppArmor pentru Nginx

Instalați apparmor-utils, un set de utilitare pentru gestionarea AppArmor.

sudo apt-get instala apparmor-utils

Comanda aa-autodep va crea un profil gol în directorul /etc/apparmor.d.

cd /etc/apparmor.d/
sudo aa-autodep nginx

Apoi, utilizați următoarea comandă pentru a activa modul de reclamație.

sudo aa-se plâng nginx

sudo serviciu nginx repornire

Deschideți în browser:

După aceasta, în jurnalul Nginx vor fi înregistrate despre vizita acestui site.

Această comandă scanează fișierele jurnal și actualizează profilul Nginx. AppArmor va oferi să permită sau să respingă funcția de mai multe ori. Dacă în momentul în care serverul nu este vulnerabil la un atac, puteți apăsa pur și simplu tasta A asupra tuturor cererilor de program (deoarece toate funcțiile propuse sunt importante pentru munca lui Nginx). Pentru a salva modificările, apăsați S.

Deci, pentru a permite AppArmor pentru noua aplicație:

  • Creați un profil de aplicație gol.
  • Deschideți aplicația și urmați câțiva pași obișnuiți pentru a crea jurnale în jurnale.
  • Rulați utilitarul AppArmor, care va verifica jurnalele și va aproba (sau respinge) acțiunile listate ale aplicației.

5: Editarea unui profil AppArmor pentru Nginx

Profilul pentru Nginx a fost generat automat, apoi necesită editare suplimentară. Deschideți fișierul /etc/apparmor.d/usr.sbin.nginx:

sudo nano /etc/apparmor.d/usr.sbin.nginx

Modificările pe care trebuie să le faceți:

  • Adăugați o linie (neapărat cu o notație ascuțită):
  • Adăugați capacitatea setgid și capacitatea setuid.
  • În linia / data / www / safe / setați întregul director (cu simbolul *).
  • Adăugați o linie (obligatoriu cu o virgulă la sfârșit):

deny / data / www / nesigure / * r,

  • Pentru a permite Nginx să scrie în jurnalul de erori, setați w la linia /var/log/nginx/error.log.

Linia comună apache2 permite Nginx să asculte diferite porturi. Liniile de capabilități vă permit să începeți procese noi. Regula deny blochează accesul la directorul / data / www / unsafe /.

Ca rezultat, profilul va arăta astfel:

#include
/ usr / sbin / nginx #include
#include
#include
capacitatea dac_override,
capabilitate dac_read_search,
capacitatea net_bind_service,
capacitatea setgid,
capabilitate setuid,
/ date / www / sigure / * r,
deny / data / www / nesigure / * r,
/ etc / grup r,
/etc/nginx/conf.d/ r,
/etc/nginx/mime.types r,
/etc/nginx/nginx.conf r,
/etc/nsswitch.conf r,
/ etc / passwd r,
/etc/ssl/openssl.cnf r,
/run/nginx.pid rw,
/ usr / sbin / nginx mr,
/var/log/nginx/access.log w,
/var/log/nginx/error.log w,
>

Profilul dvs. poate părea puțin diferit, deoarece se bazează pe un fișier istoric. Puteți examina independent parametrii și puteți actualiza setările individuale ale profilului sau puteți să copiați acest fișier, instalându-l în mediul dvs. de server. Setările AppArmor pot bloca accesul accidental la directoarele securizate, deci fiți pregătiți pentru depanare.

Pentru a activa profilul AppArmor pentru Nginx, utilizați:

sudo aa-enforce nginx

Se recomandă să reporniți toate profilurile și Nginx pentru a actualiza setările.

sudo /etc/init.d/apparmor reload
sudo serviciu nginx repornire

Dacă apare o eroare în orice stadiu al configurației, verificați fișierul de configurare și / var / log / syslog.

Verificați starea AppArmor:

Procesul Nginx trebuie executat.

Deschideți din nou browserul dvs. și vizitați:

O pagină din directorul sigur ar trebui să apară pe ecran. Apoi vizitați:

Serverul ar trebui să returneze o eroare interzisă 403.

Remediați problemele

Dacă serverul Nginx nu pornește după activarea profilului, atunci cel mai probabil nu are drepturi suficiente. Acordați atenție:

Editați profilul pentru a remedia eroarea.

De exemplu, dacă nu adăugați linia de abstracții / apache2-comun la fișierul de profil, apare o eroare:

[apare] 3611 # 0: socket () 0.0.0.0:8080 a eșuat (13: permisiunea a fost refuzată)

Configurarea unui profil AppArmor necesită atenție.

concluzie

Profilele AppArmor sunt foarte importante în sistemele de producție deoarece blochează accesul la puncte de server vulnerabile.







Articole similare

Trimiteți-le prietenilor: