Претходни чланак „ЛЕМП“ о Арцх Линук -у покривао је само основне ствари, од инсталирања мрежних услуга (Нгинк, МиСКЛ база података и ПхпМиАдмин) и конфигурише минималну сигурност потребну за МиСКЛ сервер и ПхпМиадмин.
Ова тема је стриктно повезана са претходном инсталацијом ЛЕМП -а на Арцх Линук -у и водиће вас кроз постављање сложенијих конфигурација за ЛЕМП стек, посебно Нгинк конфигурације веб сервера, попут стварања Виртуелни домаћини, употреба Именици заштићени лозинком, креирајте и конфигуришите Слој ХТТП сигурних утичница, ХТТП несигурно преусмерава на ХТТПС а такође ће вам представити и неке корисне Басх скрипте које ће вам олакшати активацију и генерисање виртуелних хостова ССЛ сертификат и кључеви.
Инсталирајте ЛЕМП са МариаДБ базом података у Арцх Линук -у
Један од најједноставнијих начина за омогућавање Виртуелни домаћини је користећи укључују изјаве о главној Нгинк конфигурацијској датотеци, што поједностављује посао даљих конфигурација и ефикасан јер можете креирати једноставне датотеке за сваки нови хост и задржати главну конфигурацијску датотеку чистач.
Овај приступ функционише на исти начин Апацхе веб сервер, прва ствар коју треба да урадите је да наведете нову УРИ путања на којој Нгинк треба да чита директиве датотека.
1. Дакле, отвори нгинк.цонф главна датотека која се налази на /etc/nginx/ системска путања и на дну, пре последње увијене заграде “}”Додајте путању на којој ће се налазити будуће конфигурацијске датотеке Виртуал Хост.
$ судо нано /етц/нгинк/нгинк.цонф
На дну додајте следећу изјаву.
инцлуде /етц/нгинк/ситес-енаблед/*.цонф;
Ова директива говори Нгинк -у да треба прочитати све датотеке које се налазе у /etc/nginx/sites-enabled/ који се завршава са а .цонф продужетак.
2. Следећи корак је стварање омогућене веб локације именик и још један, тзв сајтови-доступни, где складиштите све датотеке за конфигурацију Виртуал Хостс.
$ судо мкдир/етц/нгинк/ситес-аваилабле/етц/нгинк/ситес-енаблед
3. Сада је време за креирање новог виртуелног домаћина. Овај пример ће користити ИП адресу система као име виртуелног хоста, па креирајте нову датотеку под називом наме-ип.цонф.
судо нано /етц/нгинк/ситес-аваилабле/наме-ип.цонф
Додајте следећи садржај.
## Садржај датотеке ##сервер {слушај 80; сервер_наме 192.168.1.33; аццесс_лог /вар/лог/нгинк/192.168.1.33.аццесс.лог; еррор_лог /вар/лог/нгинк/192.168.1.33.еррор.лог; роот /срв /хттп; локација / {индек индек.хтмл индек.хтм индек.пхп; аутоиндек он; аутоиндек_екацт_сизе офф; аутоиндек_лоцалтиме он; } лоцатион /пхпмиадмин {реврите ^ /* /пхпМиАдмин ласт; } локација ~ \ .пхп $ {#фастцги_пасс 127.0.0.1:9000; (у зависности од конфигурације утичнице пхп-фпм) фастцги_пасс уник: /рун/пхп-фпм/пхп-фпм.соцк; фастцги_индек индек.пхп; инцлуде фастцги.цонф; } }
Директива која активира Виртуал Хост је сервер_наме изјава испод порта за слушање. Такође, овде постоји још једна важна директива корен изјава која упућује Нгинк Виртуал Хост да послужује садржај датотеке /srv/http/ системска путања.
4. Последњи корак је стварање /srv/http/ именик и направити наме-ип.цонф конфигурација датотеке доступна за читање Нгинк -а (помоћу симболичке везе), затим поново покрените демон да би нове конфигурације биле видљиве.
$ судо мкдир/срв/хттп/ $ судо лн -с /етц/нгинк/ситес-аваилабле/наме-ип.цонф/етц/нгинк/ситес-енаблед/ $ судо системцтл поново покрените нгинк
5. Да бисте то потврдили, усмерите прегледач на ИП системску адресу Арцх система и требало би да видите да се веб садржај разликује од http://localhost. Овде сам додао малу пхп скрипту која такође проверава ФастЦГИ ПХП конфигурације као на слици испод.
$ судо нано /срв/хттп/инфо.пхп
## Садржај датотеке ##пхп. пхпинфо ();
6. Још један метод који сам сам развио за омогућавање или онемогућавање виртуелних хостова на Нгинк -у је елегантнији и инспирисан је Апацхе -ом а2енисте скрипта.
Да бисте користили овај метод, отворите уређивач датотека и креирајте нову датотеку, тзв н2енсите, На твојој $ ХОМЕ пут са доњим садржајем, учините га извршним, покрените га са привилегијама роот -а и проследите као опцију свом новом имену виртуелног хоста без .цонф завршетак (попуните га да бисте га изменили према својим потребама).
$ судо нано н2енсите
## Садржај датотеке ###!/бин/басх. ако је тест -д/етц/нгинк/ситес -аваилабле && тест -д/етц/нгинк/ситес -енаблед; онда. одјек "" елсе. мкдир/етц/нгинк/ситес-аваилабле. мкдир/етц/нгинк/ситес-енаблед. фи аваил =/етц/нгинк/ситес-аваилабле/$ 1.цонф. омогућено =/етц/нгинк/ситес-енаблед/ сите = `лс/етц/нгинк/ситес-аваилабле/` иф ["$#"! = "1"]; затим ецхо "Усе сцрипт: н2енсите виртуал_сите" ецхо -е "\ нДоступни виртуелни домаћини: \ н $ сите" екит 0. елсе иф тест -е $ аваил; онда. судо лн -с $ аваил $ омогућено. елсе. ецхо -е "Виртуелни хост $ аваил не постоји! Направите један! \ Н $ сајт " излаз 0. фи. ако је тест -е $ омогућен/$ 1.цонф; онда. ецхо "Успех!! Сада поново покрените нгинк сервер: судо системцтл поново покрените нгинк " елсе. ецхо -е "Виртуелни хост $ аваил не постоји! \ нПогледајте доступне виртуелне хостове: \ н $ сите" излаз 0. фи. фи
Учините га извршним и покрените као схов.
$ судо цхмод +к н2енсите. $ судо ./н2енсите иоур_виртуал_хост
7. Да бисте онемогућили виртуелне хостове, направите нову н2диссите датотеку са следећим садржајем и примените исте поставке као горе.
$ судо нано н2диссите
## Садржај датотеке ###!/бин/басх. аваил =/етц/нгинк/ситес-енаблед/$ 1.цонф. омогућено =/етц/нгинк/ситес-енаблед. сите = `лс/етц/нгинк/ситес-енаблед/` иф ["$#"! = "1"]; затим ецхо "Усе сцрипт: н2диссите виртуал_сите" ецхо -е "\ нДоступни виртуелни домаћини: \ н $ сите" екит 0. елсе. ако је тест -е $ на располагању; онда. судо рм $ аваил. елсе. ецхо -е "Виртуелни хост $ аваил не постоји! Излаз! " излаз 0. фи. ако је тест -е $ омогућен/$ 1.цонф; онда. ецхо "Грешка!! Уклањање виртуелног хоста $ аваил није успело! " елсе. ецхо -е "Успело! $ аваил је уклоњен! \ нПоново покрените Нгинк: судо системцтл поново покрените нгинк " излаз 0. фи. фи
8. Сада можете да користите ове две скрипте за омогућавање или онемогућавање било ког виртуелног хоста, али ако желите да га примените као системске команде, само копирајте обе скрипте у /usr/local/bin/ а затим га можете користити без навођења путање.
$ судо цп н2енсите н2диссите/уср/лоцал/бин/
ССЛ (Слој сигурних утичница) је протокол дизајниран за шифровање ХТТП веза преко мрежа или Интернета, што омогућава проток података преносе се преко заштићеног канала помоћу симетричних/асиметричних криптографских кључева, а у Арцх Линук -у га обезбеђује ОпенССЛ пакет.
$ судо пацман -С опенссл
9. Да бисте омогућили ХТТПС везе са Нгинк -ом, прво што морате да урадите је да генеришете кључеве Виртуал Хостс. Такође, да поједноставим ствари, развио сам мале скрипте које аутоматски генеришу криптографске кључеве на /etc/nginx/ssl путању директоријума, користећи име виртуелног хоста као имена кључева.
Направите датотеку под називом нгинк_ген_ссл и додајте следећи садржај.
$ судо нано нгинк_ген_ссл
## Садржај датотеке ###!/бин/басх. мкдир/етц/нгинк/ссл. цд/етц/нгинк/ссл ецхо -е "Унесите ФКДН вашег виртуелног хоста: \ нОво ће генерисати подразумевано име за Нгинк ССЛ сертификат!" реад церт опенссл генпкеи -алгоритам РСА -пкеиопт рса_кеиген_битс: 2048 -оут $ церт.кеи. цхмод 600 $ церт.кеи. опенссл рек -нов -кључ $ церт.кеи -оут $ церт.цср. опенссл к509 -рек -даис 365 -ин $ церт.цср -сигнкеи $ церт.кеи -оут $ церт.црт ецхо -е "Цертификат $ церт је генерисан! \ нМолимо вас да га повежете са нгинк ссл доступном веб локацијом!" лс -алл/етц/нгинк/ссл. излаз 0
10. Након што је скрипта креирана, додајте дозволе за извршење, покрените је и понудите опције сертификата, од којих је најважнија Уобичајено име поље (овде додајте службени назив домена) и оставите поља Лозинка и Опционално предузеће празна.
$ судо цхмод +к нгинк_ген_ссл. $ судо ./нгинк_ген_ссл
На крају задатка генерисања кључева, приказаће се листа са свим доступним кључевима у директоријуму Нгинк ссл.
Такође, ако желите да се ова скрипта користи као системска команда, копирајте је или преместите у /usr/local/bin/.
$ судо мв нгинк_ген_ссл/уср/лоцал/бин
11. Након што смо генерисали кључеве неопходне за Нгинк ССЛ Виртуал Хост, време је да заправо направимо конфигурацијску датотеку ССЛ Виртуал Хост. Користите исту системску ИП адресу за Виртуал Хост као горе сервер_наме директиву, али мало промените назив датотеке Виртуал Хост додавањем ссл -а раније .цонф, да вас подсетимо да ова датотека значи наме-ип ССЛ виртуелни домаћин.
$ судо нано /етц/нгинк/ситес-аваилабе/наме-ип-ссл.цонф
На овој датотеци се промени слушај порт статемент то 443 ссл и обезбеди путање датотека ССЛ -а и кључева сертификата са онима креираним раније да изгледају као у одломку испод.
## Садржај датотеке ##сервер {слушај 443 ссл; сервер_наме 192.168.1.33; ссл_цертифицате /етц/нгинк/ссл/192.168.1.33.црт; ссл_цертифицате_кеи /етц/нгинк/ссл/192.168.1.33.кеи; ссл_сессион_цацхе дељено: ССЛ: 1м; ссл_сессион_тимеоут 5м; ссл_ципхерс ХИГХ:! аНУЛЛ:! МД5; ссл_префер_сервер_ципхерс он; аццесс_лог /вар/лог/нгинк/192.168.1.33-ссл.аццесс.лог; еррор_лог /вар/лог/нгинк/192.168.1.33-ссл.еррор.лог; роот /срв /хттп; локација / {индек индек.хтмл индек.хтм индек.пхп; аутоиндек он; аутоиндек_екацт_сизе офф; аутоиндек_лоцалтиме он; } лоцатион /пхпмиадмин {реврите ^ /* /пхпМиАдмин ласт; } локација ~ \ .пхп $ {#фастцги_пасс 127.0.0.1:9000; (у зависности од конфигурације утичнице пхп-фпм) фастцги_пасс уник: /рун/пхп-фпм/пхп-фпм.соцк; фастцги_индек индек.пхп; инцлуде фастцги.цонф; } }
12. Након креирања датотеке користите н2енсите скрипта или лн командна линија да бисте је активирали (ствара симболичну везу до датотеке у омогућене веб локације директоријум), а затим поново покрените Нгинк демон да бисте применили поставке.
$ судо ./н2енсите наме-ип-ссл. ИЛИ. $ судо лн -с /етц/нгинк/ситес-аваилабле/наме-ип-ссл.цонф/етц/нгинк/ситес-енаблед/ $ судо системцтл поново покрените нгинк
13. Поново усмерите прегледач на Арцх ИП УРЛ али овај пут користећи ХТТПС протокол - https://192.168.1.33 на мом систему- и а Веза није поуздана требало би да се појави безбедносна грешка ( Додајте и потврдите изузетак безбедности да идете даље на страници).
Као што сада видите, ваш Нгинк Виртуал Хост служи истом садржају као и претходни наме-ип хоста, али овај пут користећи ХТТП сигурну везу.
Ако је Виртуал Хост омогућен на Нгинк -у, више немамо приступ http://localhost садржај путање (лоцалхост обично служи садржају користећи лоопбацк ИП адресу или системску ИП адресу ако није другачије конфигурисано) јер смо користили Арцх системске ИП као сервер_наме па се наш садржајни пут променио.
14. Најједноставнији начин за приступ ПхпМиАдмин путем веба је да створи симболичку везу између /usr/share/webapps/phpMyAdmin/ пут и нашу нову дефинисану путању виртуелног домаћина (/srv/http).
$ судо лн -с/уср/схаре/вебаппс/пхпМиАдмин//срв/хттп/
15. Након што извршите горњу команду, освежите страницу и видећете да се појављује нова фасцикла пхпМиАдмин, ако аутоиндек изјава је омогућена на Нгинк Виртуал Хосту или усмерите УРЛ директно у фасциклу ПхпМиАдмин https://arch_IP/phpMyAdmin.
16. Ако желите да дезинфикујете стринг пхпМиАдмин у прегледачу, уредите датотеке Виртуал Хостс и додајте следећи садржај у блок сервера.
лоцатион /пхпмиадмин {реврите ^ /* /пхпМиАдмин ласт; }
За разлику од Апацхе -а, Нгинк користи ХттпАутхБасиц модул за омогућавање Именици заштићени лозинком али не пружа никакве алате за креирање шифрованог .хтпассвд филе.
17. Да бисте постигли заштиту лозинком директоријума помоћу Нгинк -а на Арцх Линук -у, инсталирајте Апацхе веб сервер и користите његове алате за генерисање шифрованог .хтаццесс филе.
$ судо пацман -С апацхе
18. Након што инсталирате Апацхе, направите нови директоријум под /etc/nginx/ именован интуитивно пассвд где .хтпассвд датотека ће бити сачувана и употребљена хтпассвд командује са –Ц укључите првог доданог корисника за генерисање датотеке, а затим ако желите да додате још корисника користите хтпассвд без –Ц прекидач.
$ судо мкдир/етц/нгинк/пассвд $ судо хтпассвд -ц /етц/нгинк/пассвд/.хтпассвд фирст_усер. $ судо хтпассвд /етц/нгинк/пассвд/.хтпассвд сецонд_усер. $ судо хтпассвд /етц/нгинк/пассвд/.хтпассвд тхирд_усер
19. У циљу заштите наме-ип-ссл Виртуал Хост роот /srv/http/ послужена путања са свим потфасциклама и датотекама испод ње, додајте следећа упутства унутар блока сервера виртуелног хоста под директивом роот и усмерите га на апсолутно .хтпассвд путања датотеке.
аутх_басиц "Ограничена веб локација"; аутх_басиц_усер_филе /етц/нгинк/пассвд/.хтпассвд;
20. Након што поново покренете Нгинк услугу, освежите страницу и Провера идентитета потребна попуп би требало да изгледа захтевно за ваше акредитиве.
Сада сте успешно омогућили Нгинк Именици заштићени лозинком али имајте на уму да је у исто време када је Апацхе веб сервер инсталиран у вашем систему, пазите да остане онемогућен и никако га немојте покретати јер то може довести до сукоба портова са Нгинк -ом.
21. Ако желите да прегледачи аутоматски преусмеравају све несигурне ХТТП захтеве на ХТТПС протокол, отворите га и уредите нон-ссл Виртуелни домаћин и додајте следеће упутство под сервер_наме директивом.
преписати ^ https://$server_name$request_uri? стални;
Сва подешавања представљена у овом чланку су направљена под Арцх Линук систем који делује као сервер, али већина њих, посебно они који се тичу датотека конфигурација Нгинк -а, доступни су на већини Линук система са незнатним разликама.