Hostt verschidde VHosts mat verschiddene Benotzer an Nginx

Déi normal Saach op der Welt wann Dir e Server hutt, ass iwwer Sécherheet a méi Sécherheet ze denken, Dir kënnt ni paranoid genuch sinn

Eng e bëssen üblech Praxis an NÄISCHT recommandéiert ass dee selwechte Benotzer fir all Datenbanken ze benotzen, méi schlëmm wann Root benotzt gëtt, wat sou onheemlech wéi et schéngt, et sinn déiwéinst Wanderung oder Ignoranz) maach dat, ech hu scho geschwat firwat Dir NET esou handele sollt am en anere PostenElo ass et Zäit ze erklären wéi a firwat et besser ass d'Veraarbechtung vum Webserver a verschiddene Benotzer ze trennen, dës Kéier wäert et benotzen Nginx.

DedicatedServer_SubImage

Wat ass dat vu Benotzer a Webserver?

Fir et op eng kuerz an einfach Manéier z'erklären, muss de Webserver (Apache, nginx, egal wéi) Prozesser am System opmaachen, Prozesser déi sinn déi déi Dateie vun der HDD (Biller, etc.) huelen a se maachen verfügbar fir de Browser vum Client. De Webserver kann d'Fichieren net einfach huelen an se manipuléieren als keen, dat heescht, e brauch e Benotzer deen deen ass deen alles am Ende wäert maachen, an dee Benotzer ass deen ech schwätzen, verstitt Dir?

Wat ass dat vu verschiddene Benotzer ze trennen?

Stellt Iech vir datt mir op eisem Server 2 Websäiten hunn, eis déi e perséinleche Projet ass, an eng aner (loosst eis virstellen datt et eis Frëndin oder Brudder ass). Och wa mir getrennte Datenbanken a verschidde Benotzer benotze fir se z'erreechen, am Endeffekt ginn d'Dateie vu béide Websäiten vum selwechte Benotzer manipuléiert, gëtt d'PHP Veraarbechtung vum selwechte Benotzer fir all Site verwalt (normalerweis www-data). Dëst ass eng net recommandéiert Praxis, et ass besser alles gutt getrennt ze hunn, wéi en ale Sproch seet, et ass besser sécher ze sinn wéi sorry.

Ok ech verstinn, wéi maachen ech et mat Nginx

2000px-Nginx_logo.svg

Déi éischt Saach ze beuechten ass datt Nginx keen eegene Modul huet deen PHP Veraarbechtung behandelt wéi Apache mécht, fir Nginx musse mir PHP-CGI oder PHP-FPM benotzen, wat genau sou gutt (oder besser) funktionnéiert wéi Apache. Also fir PHP Veraarbechtung vu verschiddene Benotzer ze trennen, musse mir Zeilen an PHP Konfiguratiounsdateien (CGI oder FPM) änneren, net Nginx selwer.

Ugeholl Dir benotzt PHP-FPM, mir kreéieren eng Konfiguratiounsdatei vun Schwämm Fir e spezifesche Site, dat heescht e Pool ass de Wee fir PHP Veraarbechtung vu PHP-FPM ze trennen, awer mir ginn an Deeler.

1. Als éischt musse mir wëssen wéi ee Benotzer vum System mir benotze wäert, ech ginn dovun aus datt mir nach ëmmer kee geschafen hunn a gutt, loosst eis et erstellen:

All déi folgend Befehle MUSS mat administrativen Privilegien ausgefouert ginn, entweder mat direkter Root oder mat Sudo

adduser blog

Mir starten den normale Prozess fir e Benotzer ze kreéieren, gitt de Passwuert, etc.

Ech bloggen de Benotzer just fir d'Beispill ze verfollegen, datt den éischte Site dee mir hosten e Blog ass, gutt dat ... fir all Benotzer ze wëssen mat wéi engem Site bezunn ass

1. Éischt loosst eis op /etc/php5/fpm/pool.d/:

cd /etc/php5/fpm/pool.d/

2. Elo erstellen mir eng Datei mam Numm blog.conf:

touch blog.conf

3. Elo setzen mir d'Konfiguratioun vum Pool dee mir fir de VHost Blog benotzen:

Ännert d'Blog.conf Datei mat Nano ... zum Beispill: Sudo Nano Blog.conf
[Blog] Benotzer = Blog
Grupp = Blog
lauschtert = / var / run / php5-fpm-Blog.sock lauschteren.besëtzer = Blog
lauschteren.Grupp = Blog
pm = ondemand pm.max_children = 96 chdir = /

Note: Wat ech se rout markéieren ass wat se musse änneren jee no dem Benotzer dee se virdru gemaach hunn. Zum Beispill wa se en anere VHost mat engem anere Benotzer kreéieren (Forum zum Beispill) dann amplaz vum Blog einfach Forum an all eenzel vun den Zeilen ze setzen, ass et verstan?

4. Wann d'Konfiguratioun vum neie Pool (d'Blog.conf Datei déi mir just erstallt a geännert hunn), et ass den Tour fir dem Nginx VHost ze soen en anere Strëmp fir dee VHost ze benotzen, fir dëse Site. De Strëmp deen benotzt gëtt ass deen dee mir virdru deklaréiert hunn (/var/run/php5-fpm-blog.sock). Loosst eis den Nginx VHost änneren an am PHP Veraarbechtung Deel, mir weisen datt Dir dës Socken benotzt. Zum Beispill:

Location ~ \ .php $ {if (! -f $ request_filename) {zréck 404; }
fastcgi_pass unix: / var / run / php5-fpm-Blog.Sock;
enthalen fastcgi_params; fastcgi_param SCRIPT_FILENAME $ document_root $ fastcgi_script_name; fastcgi_read_timeout 300; }

Wéi Dir gesitt, weisen ech datt d'PHP Veraarbechtung vun deem VHost (dës Zeilen sinn zum Beispill bannent / etc / nginx / sites-enabled / vhost-blog) maacht et mat de Socken déi an /var/run/php5-fpm-blog.sock fonnt goufen ... déi ass déi déi mir virdrun erstallt hunn beim Editéieren /etc/php5/fpm/pool.d/blog.conf ... ass et verstan net?

5. Wann dëst fäerdeg ass, starten mir béid Servicer (php5-fpm an nginx) a voila nei, mir wäerte gesinn datt d'Veraarbechtung vun dësem Site (vhost) NET vu www-data oder root oder engem ähnleche gemaach gëtt, awer vum Benotzer datt mir virdrun definéiert.

Hei weisen ech Iech d'Ausgab vun engem ps aux | grep fpm op engem vun de Servere vu mengem Knued:

ps aux | grep fpm ebook 586 0.0 0.0 349360 1204? S Mar30 0:00 php-fpm: Pool ebook ebook 589 0.0 0.0 349360 1204? S Mar30 0:00 php-fpm: Pool ebook www 608 0.0 0.2 350084 5008? S Mar30 0:00 php-fpm: Pool www www 609 0.0 0.2 350600 5048 30? S Mar0 00:3 php-fpm: Pool www tv611 0.0 0.0 349360 1204 30? S Mar0 00:3 php-fpm: Pool tv3 tv615 0.0 0.0 349360 1204 30? S Mar0 00:3 php-fpm: pool tv1818 magazine 1.7 1.7 437576 36396 09? S 55:0 46:2264 php-fpm: Poolmagazin 1.9 1.7 437332 35884 10? S 15:0 26:2338 php-fpm: Poolmagazin Schüler 4.3 1.0 428992 22196 10? S 18:0 53:2413 php-fpm: Pool Pupilles Magazin 1.8 1.7 437764 36152 10? S 22:0 18:2754 php-fpm: Pool Gutl Magazin 3.5 1.3 356724 27164 10? S 38:0 00:5624 php-fpm: Pool gutl cgr 0.0 1.0 365168 22696 28? S Apr0 16:7900 php-fpm: Pool cgr Schüler 0.3 2.5 457052 52444 25? S Apr20 23:11021 php-fpm: Pool Schüler Schüler 0.4 2.5 458316 52864 28? S Apr5 57:11254 php-fpm: Pool Schüler cgr 0.0 1.0 363152 21708 28? S Apr0 12:13184 php-fpm: Pool cgr cgr 0.0 1.0 362872 21360 28? S Apr0 08:XNUMX php-fpm: Pool cgr

Wéi Dir kënnt gesinn ... d'Trennung vun der PHP Veraarbechtung vu Benotzer mat Nginx + PHP-FPM ass wierklech einfach, do gesitt Dir datt et verschidde Poole sinn, well et e puer Benotzer sinn.

CONCLUSIONS

Wann et ëm Servere geet, sidd Dir ni paranoid genuch ... Sécherheet ass net eppes mat ze spillen, wat mir ëmmer méi probéieren d'Sécherheet vun eise Serveren an hir Servicer ze verbesseren, wat mir manner wahrscheinlech vun engem (erfollegräichen) Angscht hunn Hack Versuch oder eppes ähnlecht 😉


Den Inhalt vum Artikel hält sech un eis Prinzipie vun redaktionnell Ethik. Fir e Feeler ze mellen klickt hei.

9 Kommentaren, loosst ären

Gitt Äre Kommentar

Är Email Adress gëtt net publizéiert ginn. Néideg Felder sinn markéiert mat *

*

*

  1. Responsabel fir d'Daten: Miguel Ángel Gatón
  2. Zweck vun den Donnéeën: Kontroll SPAM, Kommentarmanagement.
  3. Legitimatioun: Är Zoustëmmung
  4. Kommunikatioun vun den Donnéeën: D'Donnéeë ginn net un Drëttubidder matgedeelt ausser duerch legal Verpflichtung.
  5. Datenspeicher: Datebank gehost vun Occentus Networks (EU)
  6. Rechter: Zu all Moment kënnt Dir Är Informatioun limitéieren, recuperéieren an läschen.

  1.   dhunter sot

    Gaara, an aktueller Zäit dës Saache solle sou vill wéi méiglech automatiséiert ginn, ech recommandéieren Iech Ansible ze probéieren. Ouni Agent brauch Dir nëmmen Python um Remote Host, ganz einfach ze konfiguréieren, yaml Dateien, Jinja Templates.

    https://github.com/ansible/ansible-examples/tree/master/wordpress-nginx

    1.    KZKG ^ Gaara sot

      Mol kucken, dat ass net ëmmer nëmme fir WordPress Säiten, an ... haha ​​vläicht klickt Ansible op volao, awer ech léiwer genau wëssen wéi alles um Server funktionnéiert, och wann ech 1 Minutt laang nei Socken an eng neien VHost 😀

      1.    dhunter sot

        Mat Ansible automatiséiert Dir alles, Dir maacht praktesch wat Dir wëllt, de Virdeel vun dëser Method ass datt Dir d'Praxis ëmkapselt an dann op Wonsch ausféiert, stellt Iech vir datt Dir eng staark belaascht Säit hutt an Dir wëllt Laaschtbalancéiere maachen tëscht Applikatiounsserveren, dës musse genau d'selwecht konfiguréiert sinn Dir kënnt kee Schrëtt iwwersprangen oder anescht an engem vun hinne maachen, kënnt Dir Iech virstellen d'Prozedur Schrëtt fir Schrëtt 4 Mol ze maachen? Mat Ansible ass et sou einfach wéi den Hostnumm der Inventar Datei a Voilá bäizefügen !!

        http://www.ansible.com/how-ansible-works

      2.    dhunter sot

        Entschëllegt iwwer den Ansible Kult, awer et ass eng vun dësen Technologien déi Dir entdeckt an Dir wëllt datt jiddereen et elo benotzt well et sou cool a praktesch ass, et ass wéi wann Dir NGINX entdeckt an Dir wëllt datt all Är Frënn Apache direkt verloossen.

        https://speakerdeck.com/slok/ansible-all-the-things

  2.   Mstaaravin sot
  3.   Rotsch 87 sot

    Ech sinn (oder studéiere fir ze sinn) en Entwéckler a mat NGIX hat ech vill Probleemer beim Konfiguréiere vun nginx + php-fpm. Ech weess datt den Archlinux Distro net dee beschten ass fir en als Server ze maachen, awer all Kéier wann ech eng Versioun vun ngix oder php aktualiséiert hunn ass alles ëmmer gekrasch, also hunn ech de Versuch opginn lol ... Fir haut sinn ech beim Klassiker Apache + PHP bliwwen awer Ech kucken ob ech nach eng Kéier ronderëm den NGIX ginn ... vläicht op enger virtueller Maschinn

    1.    dhunter sot

      D'Mentalitéit ännert e bëssen, nginx servéiert de stateschen Inhalt an déngt als Reverse Proxy fir de php-fpm dat ass deen deen echte PHP leeft, Dir musst an Deeler ufänken an den Deplacement Schrëtt fir Schrëtt erreechen, Sich no engem Guide fir z'installéieren de Kader mat deem Dir schafft, jiddereen huet säin Detail mat den Nimm vun der Ëffentlechkeet, statesch, Ressourcen, asw ...

  4.   anonym sot

    Maacht der Gemeinschaft déi grouss Faveur vum Wuert "Hostear" ze verloossen, wat et net gëtt. Vu Gott, ass et sou schwéier "Host" ze soen?

  5.   Wil sot

    Gréiss, no Ärem Beispill géif ech gär wëssen ob e Pool nëmme fir de WordPress Backen gemaach ka ginn, dat ass, fir de wp-admin en neie Socket fir erakomm Verbindunge mam Backend ze maachen

    Location / wp-admin {
    root /var/www/yoursite.com/wp-admin;
    Index index.php index.html index.htm;
    Location ~ ^ / wp-admin /(.+. php) $ {
    try_files $ uri = 404;
    root /var/www/yoursite.com/wp-admin;
    enthalen / etc / nginx / fastcgi_params;

    fastcgi_pass server unix:/run/php5-fpm2.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_buffer_size 128k;
    fastcgi_buffers 256 4k;
    fastcgi_busy_buffers_size 256k;
    fastcgi_temp_file_write_size 256k;
    fastcgi_read_timeout 1240;
    }
    location ~* ^/wp-admin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
    root /var/www/tusitio.com/wp-admin/;
    }
    }