Futó cgi-scriptek apache segítségével suexec ubuntu szerver

Miután szerver biztonságos adatközpontok Európában. Nyílt felhő VPS / VDS szerver egy gyors SSD 1 perc alatt!

A legjobb Web Hosting:
- megvédi az illetéktelen hozzáférés egy biztonságos európai adatközpont
- fizet legalább Bitcoin.
- Akkor tegye meg a disztribúciós

- védelmet DDOS támadások
- ingyenes biztonsági mentés
- Üzemidő 99,9999%
- DPC - TIER III
- ISP - TIER I

Támogatás az orosz 24/7/365 dolgozni a jogi és fizikai személyek. Most kell 24 mag és 72 Gb RAM. Kérlek!

A versenyképes áron bizonyítani, hogy a legolcsóbb hosting, ha nem tudja!

A percek alatt, válassza ki a konfiguráció, a fizetés és a CMS egy VPS kész.
Pénzvisszafizetési - 30 nap alatt!

Bankkártyák, elektronikus valuta révén Qiwi terminálok, WebMoney, PayPal, Novoplat és mások.

Tegye fel kérdését támogatás 24/7/365

Megtalálja a választ az adatbázisunkban, és megfelel az ajánlásokat a

Apache - a legnépszerűbb webszerver a világon. Ezt szolgálja a statikus és a dinamikus tartalom oldalak különféle helyzetekben.

Az egyik leggyakoribb módja, hogy létrehoz dinamikus tartalom - az, hogy az interfész CGI (Common Gateway Interface, Common Gateway Interface), amely lehetővé teszi, hogy létrehoz webtartalom írt szkriptek különböző programozási nyelvek.

Azonban a dob minden végrehajtható kód az tárterület mindig együtt jár egy bizonyos kockázata.

Ez az útmutató segít futtatni a CGI-script segítségével suexec modul, amely lehetővé teszi a parancsfájlok nélkül növekvő felhasználói jogosultságokat, ha feltétlenül szükséges.

követelmények

CGI támogatás

Az Ubuntu Apache webkiszolgáló állítja egy külön könyvtárat a CGI-scriptek, amely alapértelmezés szerint üres.

Általában CGI-szkript - bármilyen program, amely képes visszatérni a HTML és egyéb tárgyakat, illetve formátumban lehet láthatóvá tenni a böngészőben.

kevesebb /etc/apache2/mods-enabled/cgi.load
LoadModule cgi_module /usr/lib/apache2/modules/mod_cgi.so

Ez a fájl tartalmazza az irányelv, amely tartalmazza a CGI modult.

A modul már be van töltve, de eddig ez nem szolgálja a szkriptek; erre szükség van többek között egy adott környezetben.

Nyisson meg egy szabványos fájl a virtuális host:

sudo nano / etc / apache2 / sites-enabled / 000-default

Először is meg kell határozni a ServerName:

Ez valamivel alacsonyabb a szakasz fájl, amely felelős a script támogatja a CGI:

ScriptAlias ​​/ cgi-bin / / usr / lib / cgi-bin /

AllowOverride Semmi
Options + ExecCGI -MultiViews + SymLinksIfOwnerMatch
Order allow, deny
Hagyjuk az összes

Nézzük meg részletesebben.

ScriptAlias ​​direktíva meghatározza azt a könyvtárat, ahonnan az Apache futtatható szkripteket. Ebben az esetben a / usr / lib / cgi-bin. A második érv az utat, hogy a forgatókönyvet, és az első (/ cgi-bin /) - Ez az URL.

Ez azt jelenti, hogy a szkript, script.pl, amely tárolja az / usr / lib / cgi-bin fog futni a következő linken:

Arra a következtetésre jut vissza fog térni a böngésző, és fognak megjelenni az oldalon.

Directory rész tartalmazza a szabályokat a / usr / lib / cgi-bin. Kérjük, vegye figyelembe:

Ez a lehetőség nem is szükséges, mert az összes beállítás a scripts könyvtárban CGI, meghatározott ScriptAlias. Azonban ez nem károsítja a konfiguráció, mert hagyhat.

Ahhoz, hogy helyezze a CGI-scriptek kívül ScriptAlias ​​könyvtár, hogy adjunk a Directory szakasz a következő lehetőségek közül:

Options + ExecCGI
AddHandler cgi-script .pl .rb [kiterjesztés kell kezelni, mint a CGI programok]

Mentse és zárja be a fájlt. Ha tették minden módosítást, indítsa újra a webszervert:

sudo service apache2 restart

Test CGI-script

Most megpróbál létrehozni egy teszt CGI-szkript.

Ahogy beállítva, akkor a CGI tárolási külön / usr / lib / cgi-bin. A felhasználók rendszergazdai jog nélkül nem jogosultak bejegyzést ebben a könyvtárban, mert meg kell megnyitni a fájlt sudo:

sudo nano /usr/lib/cgi-bin/test.pl

A fájl kiterjesztése .pl, mert ez egy Perl-szkript; Apache fut az összes fájl ebben a könyvtárban, és átadják a megfelelő programokat.

Mutass rá, hogy ezt a fájlt kell tenni a Perl, hozzátéve, az elején a script:

Ezután meg kell adnia, hogy milyen típusú generált tartalom. Ez biztosítja, hogy a böngésző tudja, hogyan kell megjeleníteni a kapott kimenetet. Például a szkript kiírja a tartalmat HTML (text / html) a szokásos Perl függvény.

print "Content-type: text / html \ n \ n";

Hozzá az első két sor a következő sor kötelező elemeket. Az eredmény a következő script:

#! / Usr / bin / perl
print "Content-type: text / html \ n \ n";
print "Üdvözöllek.
print "„
print "



print "

Ez valamilyen rendszeres szöveget.


print "

A lehetőségek nagyok.


print "„

Mentse és zárja be a fájlt.

Futtathatóvá kell tenni:

sudo chmod 755 /usr/lib/cgi-bin/test.pl

Ha most megnyitja a böngészőt, és a domain könyvtár CGI, majd adja hozzá a nevét, a forgatókönyvet, látni fogja a kimenő e szkript.

your_domain.com/cgi-bin/test.pl
Helló, világ.
Ez valamilyen rendszeres szöveget.
A lehetőségek nagyok.

Mint látható, ez az egyszerű oldal jelenik meg.

Üdvözöllek.


Ez valamilyen rendszeres szöveget.


A lehetőségek nagyok.

Engedélyezése mod_suEXEC modul

Létrehozása egy script, ami lehet futtatni bármely felhasználó, akkor ki néhány szerver biztonsági kockázatot jelent. Ideális esetben a jogot arra, hogy a forgatókönyvet kell csak egy felhasználó van zárva. Erre, és célja egy modult suexec.

Telepítse a módosított változata a suexec modul, amely lehetővé teszi, hogy konfigurálja a támogatott könyvtárak (mielőtt ezt a funkciót lehet beszerezni csak újrakompilálása forráskódját a modul).

sudo apt-get install apache2-suexec-egyéni

sudo a2enmod suexec

Hozzon létre egy új felhasználónak, aki tulajdonosa minden jogot a script fájlokat. Ha a szerver szolgálja több telek, hozzon létre egy külön felhasználói mindegyikre.

sudo adduser script_user

Akkor kihagyja adatkérések (beleértve a kérelem jelszó beállításokat).

Készítsen script könyvtárat a home könyvtárába az új felhasználó:

sudo mkdir / home / script_user / script

suexec modul nagyon szigorú ellenőrzés alatt a jogot, hogy rekord a katalógusban. Jogokat biztosítanak a katalógusban felhasználó script_user és módosíthatja a hozzáférési jogokat, hogy senki sem tudott írd bele:

sudo chown script_user: script_user / home / script_user / script
sudo chmod 755 / home / script_user / script

Most hozzon létre egy script fájlt, majd másolja be a script korábban létrehozott:

sudo -u script_user nano /home/script_user/scripts/attempt.pl
#! / Usr / bin / perl
print "Content-type: text / html \ n \ n";
print "Üdvözöllek.
print "„
print "



print "

Ez valamilyen rendszeres szöveget.


print "

A lehetőségek nagyok.


print "„

Futtathatóvá teszi a fájlt. Minden jog a fájlt kell csak a felhasználó script_user; ezek segítségével konfigurálható a suexec modul:

sudo chmod 700 /home/script_user/scripts/attempt.pl

Ezután szerkessze az Apache virtuális host konfigurációs egy új felhasználót, hogy a szkript futtatásához.

sudo nano / etc / apache2 / sites-enabled / 000-default

Először állítsa be a CGI-könyvtárba; ehelyett a ScriptAlias ​​irányelv Alias ​​direktíva kombinálva lehetőség ExecCGI irányelv és SetHandler.

Fájl hozzáadása:

Alias ​​/ scripts / / home / script_user / scripts /

Options + ExecCGI
SetHandler cgi-script

Most már hozzáférhet script megy, a alkönyvtárához / script. Annak érdekében, hogy ezeket a funkciókat suexec, adjuk hozzá a következő sort a rész Directory, de a VirtualHostnak oldalunkon.

SuexecUserGroup script_user script_user

Mentse és zárja be a fájlt.

Most meg kell adnia a könyvtárakat, hogy suexec modul érvényesnek kell tekinteni (ez a funkció, ami hiányzik a standard változat a modul). Nyissa meg a konfigurációs fájl suexec.

sudo nano / etc / apache2 / suexec / www-data

Az elején a fájlt adja meg az utat, hogy a script könyvtárban.

Mentse és zárja be a fájlt.

Most indítsa újra a webszervert.

sudo service apache2 restart

A link megnyitása a böngészőben:

És a képernyő jelenik meg:

Helló, világ.
Ez valamilyen rendszeres szöveget.
A lehetőségek nagyok.

Megjegyzés: A hangolás modul suexec rendes könyvtár CGI nem működik; Ez a viselkedés célja, hogy Vezérlőszkript jogosultságokat.

következtetés

Most is létrehozhat CGI és futtatni őket egy viszonylag biztonságos módon. CGI programok nagyon hasznosak, mert lehetővé teszi, hogy gyorsan hozzá dinamikus tartalom az oldalon. És suexec modul tudja védeni ezeket a szkripteket.

Azonban legyen nagyon óvatos, ha dolgozik a modul suexec! Helytelen egység beállítása hozhat létre további biztonsági réseket. Ahhoz, hogy megtalálják a potenciális biztonsági réseket suexec, tanulmány modul konfigurációja.