• Дигитални аксесоари
  • сървър
  • Дигитален живот
  • Политика за поверителност
  • Свържете се с нас
  1. Home
  2. Article
  3. Настройване на Ubuntu 20.04 уеб сървър – Answertopia

Настройване на Ubuntu 20.04 уеб сървър – Answertopia

Rsdaa 23/12/2021 1612

Сред многото пакети, съставляващи операционната система Ubuntu, е уеб сървърът Apache. Всъщност мащабируемостта и устойчивостта на Ubuntu го правят идеална платформа за хостване дори на най-силно трафикираните уеб сайтове.

В тази глава ще обясним как да конфигурирате Ubuntu система, използваща Apache, за да действа като уеб сървър, включително защитени (HTTPS) и несигурни (HTTP) конфигурации.

1.1 Изисквания за конфигуриране на уеб сървър на Ubuntu

За да настроите свой собствен уеб сайт, имате нужда от компютър (или екземпляр на облачен сървър), операционна система, уеб сървър, име на домейн, име сървър и IP адрес.

По отношение на операционна система, разбира се ще приемем, че използвате Ubuntu. Както бе споменато по-горе, Ubuntu поддържа уеб сървъра Apache, който може лесно да бъде инсталиран, след като операционната система е стартирана и работи. Името на домейн може да бъде регистрирано с всяка услуга за регистрация на имена на домейни.

Ако използвате Ubuntu на облачен екземпляр, IP адресът, зададен от доставчика, ще бъде посочен в информацията за общ преглед на сървъра. Ако хоствате свой собствен сървър и вашият доставчик на интернет услуги (ISP) е задал статичен IP адрес, тогава ще трябва да свържете своя домейн с този адрес. Това се постига с помощта на сървър за имена и всички услуги за регистрация на домейни ще предоставят тази услуга за вас.

Ако нямате статичен IP адрес (т.е. вашият интернет доставчик ви предоставя динамичен адрес, който се променя често), тогава можете да използвате една от множеството безплатни услуги за динамичен DNS (DDNS или DynDNS за кратко), които картографират вашия динамичен IP адрес към името на вашия домейн.

След като конфигурирате името на вашия домейн и вашия сървър за имена, следващата стъпка е да инсталирате и конфигурирате вашия уеб сървър.

1.2Инсталиране на пакетите за уеб сървър на Apache

Текущата версия на Ubuntu обикновено не инсталира уеб сървъра на Apache по подразбиране. За да проверите дали сървърът вече е инсталиран, изпълнете следната команда:

Ако apt генерира изход, подобен на следния, сървърът apache вече е инсталиран:

apache2/bionic-updates,bionic-security,сега 2.4.29-1ubuntu4.13 amd64 [инсталиран]

Ако изходът на apt не изброява пакета или не включва състоянието [инсталиран], изпълнете следната команда в командния ред, за да извършите инсталацията на Apache:

1.3 Конфигуриране на защитната стена

Преди да стартирате и тествате уеб сървъра на Apache, защитната стена ще трябва да бъде модифицирана, за да позволи на уеб сървъра да комуникира с външния свят. По подразбиране HTTP и HTTPS протоколите използват съответно портове 80 и 443, така че, в зависимост от това кои протоколи се използват, единият или и двата порта ще трябва да бъдат отворени. Ако вашата Ubuntu система е защитена от Uncomplicated Firewall, следната команда може да се използва за активиране само на незащитен уеб трафик (HTTP):

За да активирате само защитен (HTTPS) трафик:

# ufw позволяват „Apache Secure“

Алтернативно, активирайте защитен и несигурен уеб трафик, както следва:

# ufw позволяват „Apache Full“

Ако използвате firewalld, следните команди могат да се използват за отваряне на HTTP и HTTPS портовете. Когато отваряте портовете, уверете се, че сте посочили зоната на защитната стена, която се прилага за мрежовата връзка към интернет:

# firewall-cmd --permanent --zone= --add-port=80/tcp# firewall-cmd --permanent --zone= --add-port=443/tcp

След като отворите необходимите портове, не забравяйте да презаредите настройките на защитната стена:

На сървъри, хоствани в облак, може също да е необходимо да активирате подходящия порт за екземпляра на сървъра в облачната конзола. Проверете документацията за доставчика на облак за стъпки как да направите това.

1.4Пренасочване на порт

Ако системата Ubuntu, хостваща уеб сървъра, се намира в мрежа, защитена от защитна стена (или друг компютър, работещ със защитна стена, или рутер или безжична базова станция, съдържаща вградена защитна стена ) ще трябва да конфигурирате защитната стена да препраща порт 80 и/или порт 443 към вашата уеб сървърна система. Механизмът за извършване на това се различава между защитните стени и устройствата, така че проверете документацията си, за да разберете как да конфигурирате пренасочване на портове.

1.5 Стартиране на уеб сървъра на Apache

След като сървърът на Apache е инсталиран и защитната стена е конфигурирана, следващата стъпка е да проверите дали сървърът работи и да го стартирате, ако е необходимо.

За да проверите състоянието на услугата Apache от командния ред, въведете следното в командния ред:

# systemctl status apache2

Ако горната команда показва, че httpd услугата не работи, тя може да бъде стартирана от командния ред, както следва:

# systemctl стартиране на apache2

Ако искате httpd услугата на Apache да стартира автоматично при зареждане на системата, изпълнете следната команда:

# systemctl активиране на apache2

1.6 Тестване на уеб сървъра

След като инсталацията приключи, следващата стъпка е да проверите дали уеб сървърът работи и работи.

Ако имате достъп (локално или отдалечено) до средата на работния плот на сървъра, просто стартирайте уеб браузър и въведете http://127.0.0.1 в адресната лента (127.0.0.1 е мрежата с обратна връзка адрес, който казва на системата да се свърже с локалната машина). Ако всичко е настроено правилно, браузърът трябва да зареди страницата, показана на Фигура 32-1:

Фигура 32-1

Ако работната среда не е налична, свържете се или от друга система в същата локална мрежа като сървъра, или като използвате външния IP адрес, присвоен на системата, ако тя се хоства отдалечено.

1.7 Конфигуриране на уеб сървъра Apache за вашия домейн

Следващата стъпка в настройването на вашия уеб сървър е да го конфигурирате за името на вашия домейн. За да конфигурирате уеб сървъра, започнете, като промените директорията на /etc/apache2, която от своя страна съдържа редица файлове и поддиректории. Основният конфигурационен файл се нарича apache2.conf и служи като централна точка за организиране на модулните конфигурационни файлове, разположени в поддиректориите. Например файлът apache2.conf включва ред за импортиране на конфигурационните настройки, декларирани във файловете, разположени в папката с активирани сайтове:

# Включете конфигурациите на виртуалния хост:IncludeOptional sites-enabled/*.conf

По подобен начин файлът apache2.conf импортира файла ports.conf, който дефинира портовете, на които Apache сървърът слуша за мрежов трафик.

За да конфигурирате домейн на уеб сайт в Ubuntu, започнете, като промените директорията на /etc/apache2. В тази директория ще намерите две поддиректории, sites-available и sites-enabled. Променете директорията в достъпни сайтове. В тази директория ще намерите файл по подразбиране, който може да се използва като шаблон за вашия собствен сайт.

Копирайте файла по подразбиране в нов файл с име, което съвпада с името на вашия домейн. Например:

# cp 000-default.conf myexample.conf

Редактирайте вашия файл myexample.com, като използвате любимия си редактор, където ще се появи, както следва:

# Директивата ServerName задава схемата на заявката, името на хоста и порта, # които сървърът използва, за да се идентифицира. Това се използва при създаване на URL адреси за пренасочване. В контекста на виртуалните хостове ServerName# указва какво име на хост трябва да се появи в Host: заглавката на заявката, за да# съответства на този виртуален хост. За виртуалния хост по подразбиране (този файл) тази# стойност не е решаваща, тъй като независимо от това се използва като хост за последна инстанция.# Въпреки това, трябва изрично да я зададете за всеки друг виртуален хост.#ServerName www.example.comServerAdmin [email protected ]DocumentRoot /var/www/html# Налични нива на журнал: trace8, ..., trace1, debug, info, notice, warn,# error, crit, alert, emerg.# Също така е възможно да се конфигурира нивото на loglev за конкретни# модули , напр.#LogLevel info ssl:warnErrorLog ${APACHE_LOG_DIR}/error.logCustomLog ${APACHE_LOG_DIR}/access.log комбинирано# За повечето конфигурационни файлове от conf-available/, които са# активирани или деактивирани на глобално ниво, е възможно to# включва ред само за един конкретен виртуален хост. Например # следващият ред активира CGI конфигурацията само за този хост# след като е бил глобално деактивиран с "a2disconf".#Include conf-available/serve-cgi-bin.conf

Директивата ServerAdmin дефинира административен имейл адрес за хората, които желаят да се свържат с уеб администратора на вашия сайт. Променете това на подходящ имейл адрес, на който можем да се свържем с вас:

След това директивата ServerName трябва да бъде декоментирана (с други думи премахнете префикса на знака „#“) и дефинирана, така че уеб сървърът да знае към кой виртуален хост се отнася този конфигурационен файл:

В следващия етап трябва да дефинираме къде ще бъдат разположени файловете на уеб сайта с помощта на директивата DocumentRoot. Традицията е да се използва /var/www/domain-name:

DocumentRoot /var/www/myexample.com

След като завършихме промените, сега трябва да активираме сайта, както следва:

# a2ensite myexample.conf

Тази команда създава символна връзка от файла myexample.conf в директорията sites-available към папката sites-enabled.

Когато сайтът е активиран, изпълнете следната команда, за да деактивирате тестовия сайт по подразбиране:

# a2dissite 000-default.conf

След това създайте директорията /var/www/myexample.com и поставете файл index.html в нея. Например:

Примерна уеб страница Добре дошли в MyExample.com

С тези промени изпълнете командата apache2ctl, за да проверите конфигурационните файлове за грешки:

# apache2ctl configtestСинтаксис ОК

Ако не се съобщават грешки, презаредете уеб сървъра на Apache, за да се уверите, че приема новите ни настройки:

# systemctl презареди apache2

Накрая проверете дали конфигурацията на сървъра работи, като отворите прозорец на браузъра и навигирате до сайта, като използвате името на домейна вместо IP адреса. Уеб страницата, която се зарежда, трябва да е тази, дефинирана във файла index.html, създаден по-горе.

1.8 Основите на защитения уеб сайт

Уеб сървърът и уеб сайтът, създадени досега в тази глава, използват HTTP протокола на порт 80 и като такъв се считат за несигурни. Проблемът е, че трафикът между уеб сървъра и клиента (обикновено уеб браузъра на потребителя) се предава в чист текст. С други думи данните са некриптирани и податливи на прихващане. Въпреки че не е проблем за общото сърфиране в мрежата, това е сериозна слабост при изпълнение на задачи като влизане в уеб сайтове или прехвърляне на чувствителна информация като данни за самоличност или кредитна карта.

В наши дни се очаква уеб сайтовете да използват HTTPS, който използва или Secure Socket Layer (SSL), или Transport Layer Security (TLS) за установяване на защитена, криптирана комуникация между уеб сървър и клиент. Тази сигурност се установява чрез използването на публично, частно и сесийно криптиране заедно със сертификати.

За да поддържа HTTPS, уеб сайтът трябва да има сертификат, издаден от доверен орган, известен като Сертифициращ орган (CA). Когато браузър се свърже със защитен уеб сайт, уеб сървърът изпраща обратно копие от SSL сертификата на уеб сайта, който съдържа и копие от публичния ключ на сайта. След това браузърът проверява автентичността на сертификата с надеждни сертифициращи органи.

Ако се установи, че сертификатът е валиден, браузърът използва публичния ключ, изпратен от сървъра, за да шифрова сесиен ключ и го предава на сървъра. Сървърът дешифрира ключа на сесията с помощта на частния ключ и го използва, за да изпрати криптирано потвърждение на браузъра. След като този процес приключи, браузърът и сървърът използват ключа на сесията, за да криптират всички последващи предавания на данни, докато сесията приключи.

1.9 Конфигуриране на Apache за HTTPS

По подразбиране сървърът на Apache не включва необходимия модул за внедряване на защитен HTTPS уеб сайт. Следователно първата стъпка е да активирате модула Apache mod_ssl на сървърната система, както следва:

Рестартирайте httpd, след като инсталацията приключи, за да заредите новия модул в сървъра на Apache:

# systemctl рестартирайте apache2

Проверете дали модулът е зареден в сървъра, като използвате следната команда:

# apache2ctl -M | grep ssl_module ssl_module (споделено)

След като ssl модулът бъде инсталиран, повторете стъпките от предишния раздел на тази глава, за да създадете конфигурационен файл за уебсайта, като този път използвате файла sites-available/default-ssl.conf като шаблон за конфигурацията на сайта файл.

Ако приемем, че модулът е инсталиран, следващата стъпка е да генерирате SSL сертификат за уеб сайта.

1.10 Получаване на SSL сертификат

Сертификатът за уеб сайт трябва да бъде получен от сертифициращ орган. Предлагат се редица опции на различни цени. Най-добрият вариант обаче е да получите безплатен сертификат от Let’s Encrypt на следния URL адрес:

https://letsencrypt.org/

Процесът на получаване на сертификат от Let’s Encrypt просто включва инсталиране и стартиране на инструмента Certbot. Този инструмент ще сканира конфигурационните файлове на Apache на сървъра и предоставя опцията за генериране на сертификати за всички виртуални хостове, конфигурирани в системата. След това ще генерира сертификата и ще добави записи за виртуален хост към конфигурацията на Apache специално за съответните уеб сайтове.

Използвайте следните стъпки, за да инсталирате инструмента certbot на вашата Ubuntu система:

# apt update# apt install software-properties-common# add-apt-repository universe# add-apt-repository ppa:certbot/certbot# apt install certbot python-certbot-apache

След като certbot е инсталиран, стартирайте го по следния начин:

След като поиска имейл адрес и поиска приемане на условията за обслужване, Certbot ще изброи домейните, намерени в папката за достъпни сайтове, и ще предостави опцията за избор на един или повече от тези сайтове, за които трябва да се инсталира сертификат. След това Certbot ще извърши някои проверки, преди да получи и инсталира сертификата в системата:

За кои имена искате да активирате HTTPS?- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -1: myexample.com- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Изберете подходящи числа, разделени със запетаи и/или интервали, или оставете въвеждане празно, за да изберете всички показани опции (въведете 'c' за отмяна): 1Получаване на нов сертификат Изпълнение на следните предизвикателства:http-01 предизвикателство за ebooktricity.comАктивиран модул за пренаписване на Apache Изчакване на проверка.. .Почистване на предизвикателства Създаден SSL vhost в /etc/apache2/sites-available/myexample-le-ssl.conf Разполагане на сертификат към VirtualHost /etc/apache2/sites-available/myexample-le-ssl.confРазрешаване на достъпен сайт: /etc/apache2 /sites-available/myexample-le-ssl.conf

Certbot също така ще създаде нов файл с име myexample-le-ssl.conf в директорията /etc/apache2/sitesavailable, съдържащ запис за защитен виртуален хост за всяко име на домейн, за което е генериран сертификат, и активира сайта, така че че е направена връзка към файла в директорията /etc/ apache2/sites-enabled. Тези записи ще бъдат подобни на следното:

..ServerName myexample.comServerAdmin [имейл защитен]DocumentRoot /var/www/myexample.com..ErrorLog ${APACHE_LOG_DIR}/error.logCustomLog ${APACHE_LOG_DIR}/access.log комбинирано..SSLCertificateFile /etc/letsencrypt/ live/myexample.com/fullchain.pemSSLCertificateKeyFile /etc/letsencrypt/live/myexample.com/privkey.pemInclude /etc/letsencrypt/options-ssl-apache.conf

Накрая Certbot ще попита дали бъдещите HTTP уеб заявки трябва да бъдат пренасочвани от сървъра към HTTPS. С други думи, ако потребител се опита да получи достъп до http://www.myexample.com, уеб сървърът ще пренасочи потребителя към https://www.myexample.com:

Моля, изберете дали да пренасочите или не HTTP трафика към HTTPS, като премахнете HTTP достъпа.- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -1: Без пренасочване - Не правете повече промени в конфигурацията на уеб сървъра. 2: Пренасочване - Направете всички заявки пренасочени към защитен HTTPS достъп. Изберете това за нови сайтове или ако сте сигурни, че вашият сайт работи на HTTPS. Можете да отмените тази промяна, като редактирате конфигурацията на вашия уеб сървър.- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Изберете подходящото число [1-2] и след това [въведете] (натиснете 'c' за отмяна): 2

Ако в момента тествате HTTPS конфигурацията и искате да запазите HTTP версията активна до по-късно, изберете опцията Без пренасочване. В противен случай обикновено се препоръчва пренасочване към HTTPS.

След като сертификатът бъде инсталиран, тествайте го в браузър на следния URL адрес (като замените myexample.com със собственото си име на домейн):

https://www.ssllabs.com/ssltest/analyze.html?d=www.myexample.com

Ако конфигурацията на сертификата е била успешна, докладът на SSL Labs ще предостави висока оценка, както е показано на Фигура 32-2:

Фигура 32-2

Като последен тест, отворете прозорец на браузъра и отидете до вашия домейн, като използвате префикса https://. Страницата трябва да се зареди както преди и браузърът трябва да показва, че връзката между браузъра и сървъра е защитена (обикновено се обозначава с икона на катинар в адресната лента, върху която може да се щракне за допълнителна информация):

Фигура 32-3

1.11 Резюме

Система Ubuntu може да се използва за хостване на уеб сайтове чрез инсталиране на уеб сървъра Apache. Както несигурните (HTTP), така и защитените (HTTPS) уеб сайтове могат да бъдат разположени на Ubuntu. Защитените уеб сайтове използват Secure Socket Layer (SSL) или Transport Layer Security (TLS), за да установят криптирана комуникация между уеб сървъра и клиента чрез използване на публично, частно и сесийно криптиране заедно със сертификат, издаден от доверен сертифициращ орган.


PREV: Как да изтрия сървър на Discord – готово

NEXT: Как да заобиколите и заобиколите бан в Discord - Alphr

Popular Articles

Hot Articles

Navigation Lists

Back to Top