Сред многото пакети, съставляващи операционната система Ubuntu, е уеб сървърът Apache. Всъщност мащабируемостта и устойчивостта на Ubuntu го правят идеална платформа за хостване дори на най-силно трафикираните уеб сайтове.
В тази глава ще обясним как да конфигурирате Ubuntu система, използваща Apache, за да действа като уеб сървър, включително защитени (HTTPS) и несигурни (HTTP) конфигурации.
За да настроите свой собствен уеб сайт, имате нужда от компютър (или екземпляр на облачен сървър), операционна система, уеб сървър, име на домейн, име сървър и IP адрес.
По отношение на операционна система, разбира се ще приемем, че използвате Ubuntu. Както бе споменато по-горе, Ubuntu поддържа уеб сървъра Apache, който може лесно да бъде инсталиран, след като операционната система е стартирана и работи. Името на домейн може да бъде регистрирано с всяка услуга за регистрация на имена на домейни.
Ако използвате Ubuntu на облачен екземпляр, IP адресът, зададен от доставчика, ще бъде посочен в информацията за общ преглед на сървъра. Ако хоствате свой собствен сървър и вашият доставчик на интернет услуги (ISP) е задал статичен IP адрес, тогава ще трябва да свържете своя домейн с този адрес. Това се постига с помощта на сървър за имена и всички услуги за регистрация на домейни ще предоставят тази услуга за вас.
Ако нямате статичен IP адрес (т.е. вашият интернет доставчик ви предоставя динамичен адрес, който се променя често), тогава можете да използвате една от множеството безплатни услуги за динамичен DNS (DDNS или DynDNS за кратко), които картографират вашия динамичен IP адрес към името на вашия домейн.
След като конфигурирате името на вашия домейн и вашия сървър за имена, следващата стъпка е да инсталирате и конфигурирате вашия уеб сървър.
Текущата версия на Ubuntu обикновено не инсталира уеб сървъра на Apache по подразбиране. За да проверите дали сървърът вече е инсталиран, изпълнете следната команда:
Ако apt генерира изход, подобен на следния, сървърът apache вече е инсталиран:
Ако изходът на apt не изброява пакета или не включва състоянието [инсталиран], изпълнете следната команда в командния ред, за да извършите инсталацията на Apache:
Преди да стартирате и тествате уеб сървъра на Apache, защитната стена ще трябва да бъде модифицирана, за да позволи на уеб сървъра да комуникира с външния свят. По подразбиране HTTP и HTTPS протоколите използват съответно портове 80 и 443, така че, в зависимост от това кои протоколи се използват, единият или и двата порта ще трябва да бъдат отворени. Ако вашата Ubuntu система е защитена от Uncomplicated Firewall, следната команда може да се използва за активиране само на незащитен уеб трафик (HTTP):
За да активирате само защитен (HTTPS) трафик:
Алтернативно, активирайте защитен и несигурен уеб трафик, както следва:
Ако използвате firewalld, следните команди могат да се използват за отваряне на HTTP и HTTPS портовете. Когато отваряте портовете, уверете се, че сте посочили зоната на защитната стена, която се прилага за мрежовата връзка към интернет:
След като отворите необходимите портове, не забравяйте да презаредите настройките на защитната стена:
На сървъри, хоствани в облак, може също да е необходимо да активирате подходящия порт за екземпляра на сървъра в облачната конзола. Проверете документацията за доставчика на облак за стъпки как да направите това.
Ако системата Ubuntu, хостваща уеб сървъра, се намира в мрежа, защитена от защитна стена (или друг компютър, работещ със защитна стена, или рутер или безжична базова станция, съдържаща вградена защитна стена ) ще трябва да конфигурирате защитната стена да препраща порт 80 и/или порт 443 към вашата уеб сървърна система. Механизмът за извършване на това се различава между защитните стени и устройствата, така че проверете документацията си, за да разберете как да конфигурирате пренасочване на портове.
След като сървърът на Apache е инсталиран и защитната стена е конфигурирана, следващата стъпка е да проверите дали сървърът работи и да го стартирате, ако е необходимо.
За да проверите състоянието на услугата Apache от командния ред, въведете следното в командния ред:
Ако горната команда показва, че httpd услугата не работи, тя може да бъде стартирана от командния ред, както следва:
Ако искате httpd услугата на Apache да стартира автоматично при зареждане на системата, изпълнете следната команда:
След като инсталацията приключи, следващата стъпка е да проверите дали уеб сървърът работи и работи.
Ако имате достъп (локално или отдалечено) до средата на работния плот на сървъра, просто стартирайте уеб браузър и въведете http://127.0.0.1 в адресната лента (127.0.0.1 е мрежата с обратна връзка адрес, който казва на системата да се свърже с локалната машина). Ако всичко е настроено правилно, браузърът трябва да зареди страницата, показана на Фигура 32-1:
Фигура 32-1
Ако работната среда не е налична, свържете се или от друга система в същата локална мрежа като сървъра, или като използвате външния IP адрес, присвоен на системата, ако тя се хоства отдалечено.
Следващата стъпка в настройването на вашия уеб сървър е да го конфигурирате за името на вашия домейн. За да конфигурирате уеб сървъра, започнете, като промените директорията на /etc/apache2, която от своя страна съдържа редица файлове и поддиректории. Основният конфигурационен файл се нарича apache2.conf и служи като централна точка за организиране на модулните конфигурационни файлове, разположени в поддиректориите. Например файлът apache2.conf включва ред за импортиране на конфигурационните настройки, декларирани във файловете, разположени в папката с активирани сайтове:
По подобен начин файлът apache2.conf импортира файла ports.conf, който дефинира портовете, на които Apache сървърът слуша за мрежов трафик.
За да конфигурирате домейн на уеб сайт в Ubuntu, започнете, като промените директорията на /etc/apache2. В тази директория ще намерите две поддиректории, sites-available и sites-enabled. Променете директорията в достъпни сайтове. В тази директория ще намерите файл по подразбиране, който може да се използва като шаблон за вашия собствен сайт.
Копирайте файла по подразбиране в нов файл с име, което съвпада с името на вашия домейн. Например:
Редактирайте вашия файл myexample.com, като използвате любимия си редактор, където ще се появи, както следва:
Директивата ServerAdmin дефинира административен имейл адрес за хората, които желаят да се свържат с уеб администратора на вашия сайт. Променете това на подходящ имейл адрес, на който можем да се свържем с вас:
След това директивата ServerName трябва да бъде декоментирана (с други думи премахнете префикса на знака „#“) и дефинирана, така че уеб сървърът да знае към кой виртуален хост се отнася този конфигурационен файл:
В следващия етап трябва да дефинираме къде ще бъдат разположени файловете на уеб сайта с помощта на директивата DocumentRoot. Традицията е да се използва /var/www/domain-name:
След като завършихме промените, сега трябва да активираме сайта, както следва:
Тази команда създава символна връзка от файла myexample.conf в директорията sites-available към папката sites-enabled.
Когато сайтът е активиран, изпълнете следната команда, за да деактивирате тестовия сайт по подразбиране:
След това създайте директорията /var/www/myexample.com и поставете файл index.html в нея. Например:
С тези промени изпълнете командата apache2ctl, за да проверите конфигурационните файлове за грешки:
Ако не се съобщават грешки, презаредете уеб сървъра на Apache, за да се уверите, че приема новите ни настройки:
Накрая проверете дали конфигурацията на сървъра работи, като отворите прозорец на браузъра и навигирате до сайта, като използвате името на домейна вместо IP адреса. Уеб страницата, която се зарежда, трябва да е тази, дефинирана във файла index.html, създаден по-горе.
Уеб сървърът и уеб сайтът, създадени досега в тази глава, използват HTTP протокола на порт 80 и като такъв се считат за несигурни. Проблемът е, че трафикът между уеб сървъра и клиента (обикновено уеб браузъра на потребителя) се предава в чист текст. С други думи данните са некриптирани и податливи на прихващане. Въпреки че не е проблем за общото сърфиране в мрежата, това е сериозна слабост при изпълнение на задачи като влизане в уеб сайтове или прехвърляне на чувствителна информация като данни за самоличност или кредитна карта.
В наши дни се очаква уеб сайтовете да използват HTTPS, който използва или Secure Socket Layer (SSL), или Transport Layer Security (TLS) за установяване на защитена, криптирана комуникация между уеб сървър и клиент. Тази сигурност се установява чрез използването на публично, частно и сесийно криптиране заедно със сертификати.
За да поддържа HTTPS, уеб сайтът трябва да има сертификат, издаден от доверен орган, известен като Сертифициращ орган (CA). Когато браузър се свърже със защитен уеб сайт, уеб сървърът изпраща обратно копие от SSL сертификата на уеб сайта, който съдържа и копие от публичния ключ на сайта. След това браузърът проверява автентичността на сертификата с надеждни сертифициращи органи.
Ако се установи, че сертификатът е валиден, браузърът използва публичния ключ, изпратен от сървъра, за да шифрова сесиен ключ и го предава на сървъра. Сървърът дешифрира ключа на сесията с помощта на частния ключ и го използва, за да изпрати криптирано потвърждение на браузъра. След като този процес приключи, браузърът и сървърът използват ключа на сесията, за да криптират всички последващи предавания на данни, докато сесията приключи.
По подразбиране сървърът на Apache не включва необходимия модул за внедряване на защитен HTTPS уеб сайт. Следователно първата стъпка е да активирате модула Apache mod_ssl на сървърната система, както следва:
Рестартирайте httpd, след като инсталацията приключи, за да заредите новия модул в сървъра на Apache:
Проверете дали модулът е зареден в сървъра, като използвате следната команда:
След като ssl модулът бъде инсталиран, повторете стъпките от предишния раздел на тази глава, за да създадете конфигурационен файл за уебсайта, като този път използвате файла sites-available/default-ssl.conf като шаблон за конфигурацията на сайта файл.
Ако приемем, че модулът е инсталиран, следващата стъпка е да генерирате SSL сертификат за уеб сайта.
Сертификатът за уеб сайт трябва да бъде получен от сертифициращ орган. Предлагат се редица опции на различни цени. Най-добрият вариант обаче е да получите безплатен сертификат от Let’s Encrypt на следния URL адрес:
https://letsencrypt.org/
Процесът на получаване на сертификат от Let’s Encrypt просто включва инсталиране и стартиране на инструмента Certbot. Този инструмент ще сканира конфигурационните файлове на Apache на сървъра и предоставя опцията за генериране на сертификати за всички виртуални хостове, конфигурирани в системата. След това ще генерира сертификата и ще добави записи за виртуален хост към конфигурацията на Apache специално за съответните уеб сайтове.
Използвайте следните стъпки, за да инсталирате инструмента certbot на вашата Ubuntu система:
След като certbot е инсталиран, стартирайте го по следния начин:
След като поиска имейл адрес и поиска приемане на условията за обслужване, Certbot ще изброи домейните, намерени в папката за достъпни сайтове, и ще предостави опцията за избор на един или повече от тези сайтове, за които трябва да се инсталира сертификат. След това Certbot ще извърши някои проверки, преди да получи и инсталира сертификата в системата:
Certbot също така ще създаде нов файл с име myexample-le-ssl.conf в директорията /etc/apache2/sitesavailable, съдържащ запис за защитен виртуален хост за всяко име на домейн, за което е генериран сертификат, и активира сайта, така че че е направена връзка към файла в директорията /etc/ apache2/sites-enabled. Тези записи ще бъдат подобни на следното:
Накрая Certbot ще попита дали бъдещите HTTP уеб заявки трябва да бъдат пренасочвани от сървъра към HTTPS. С други думи, ако потребител се опита да получи достъп до http://www.myexample.com, уеб сървърът ще пренасочи потребителя към https://www.myexample.com:
Ако в момента тествате HTTPS конфигурацията и искате да запазите HTTP версията активна до по-късно, изберете опцията Без пренасочване. В противен случай обикновено се препоръчва пренасочване към HTTPS.
След като сертификатът бъде инсталиран, тествайте го в браузър на следния URL адрес (като замените myexample.com със собственото си име на домейн):
Ако конфигурацията на сертификата е била успешна, докладът на SSL Labs ще предостави висока оценка, както е показано на Фигура 32-2:
Фигура 32-2
Като последен тест, отворете прозорец на браузъра и отидете до вашия домейн, като използвате префикса https://. Страницата трябва да се зареди както преди и браузърът трябва да показва, че връзката между браузъра и сървъра е защитена (обикновено се обозначава с икона на катинар в адресната лента, върху която може да се щракне за допълнителна информация):
Фигура 32-3
Система Ubuntu може да се използва за хостване на уеб сайтове чрез инсталиране на уеб сървъра Apache. Както несигурните (HTTP), така и защитените (HTTPS) уеб сайтове могат да бъдат разположени на Ubuntu. Защитените уеб сайтове използват Secure Socket Layer (SSL) или Transport Layer Security (TLS), за да установят криптирана комуникация между уеб сървъра и клиента чрез използване на публично, частно и сесийно криптиране заедно със сертификат, издаден от доверен сертифициращ орган.
PREV: Как да изтрия сървър на Discord – готово
NEXT: Как да заобиколите и заобиколите бан в Discord - Alphr