четвртак, 25 априла, 2024
Хардвер

Биглбон Блек Рев Ц (7. део) – Биглбон Блек у служби веб-сервера

Vodič od prvog dana (7. deo)

Аутор: Ненад марјановић

У прошлости већина корисника била је сконцентрисана на коришћење веб-сервера Апачи (Apache) иако се још тада знало да је тешко одржати ресурсно захтеван сервис на машинама које су све више биле виртуализоване коришћењем програма као што је ВМвер (VMware). Прва верзија веб-сервера Хијавата (Hiawatha) објављена је 2002. године и до данас се овај програм води идеологијом отвореног кода. Да иза успешног пројекта може стајати само један човек, доказао је и њен аутор Хуго Лесник. Хијавата је креирана на јединственом концепту и идеји, а то је сигурност. Овај пројекат данас поред господина Хуга, пре сваке измене кода, проверава и компанија коју сачињавају експерти из домена програмирања, чиме је аутор доказао да не жели одустајати од свог концепта и мотива – сигурност на првом месту. Што се тиче ресурса, сам сервер користи око 160MB (у нашем радном окружењу) меморије, али зато заузврат добијемо што ни један од конкурената данас нема, а то су интегрисана антихакерска решења. Да ли су ова решења савршена? Нису. Међутим, ово је једини пројекат који је извршио интеграцију функционалности које очигледно другима никад нису биле на листи приоритета, или су додаване у виду модула који би само још више успорили актуелно коришћење система. Инсталација за кориснике Дебијана може се извршити употребом Дебијан пакета, додавањем извора у /etc/apt/sources.list или компајлирањем изворног кода. Ми ћемо описати стандардну инсталацију коришћењем .deb пакета. Прво преузимамо потребан пакет.

wget https://files.tuxhelp.org/hiawatha/hiawatha_9.13_amd64.deb

Након овога инсталирамо пакете од којих Хијавата зависи.

apt-get install libxslt1.1

Процес завршавамо инсталацијом .deb пакета.

dpkg -i hiawatha_*

Уколико желимо да уклонимо инсталацију у било ком тренутку, користимо dpkg команду.

dpkg -P hiawatha*

Конфигурациони фајл након инсталације можемо наћи на следећој локацији:

/etc/hiawatha/hiawatha.conf

Покретање и заустављање сервера вршимо командама:

service hiawatha start
service hiawatha stop

Да бисмо тестирали инсталациони процес, отварамо интернетски претраживач који користимо – Фајерфокс, Кроум или неки други. http://localhost Резултат који добијамо је следећи:

Подешавања сајта започињемо интеграцијом vhost параметра у конфигурационом фајлу (/etc/hiawatha/hiawatha.conf), по принципу осталих веб-сервера.

VirtualHost {
	Hostname = www.my-domain.com
	WebsiteRoot = /var/www/my-domain/public
	StartFile = index.php
	AccessLogfile = /var/www/my-domain/log/access.log
	ErrorLogfile = /var/www/my-domain/log/error.log
	TimeForCGI = 20
	UseFastCGI = PHP5
	UseToolkit = banshee
}

Hostname представља домен који желимо користити, али у случају да радимо тестирање, можемо користити и Ај-пи (IP) адресу нашег сервера. WebsiteRoot је путања, односно локација на нашем серверу из које се покрећу ХТМЛ или ПХП фајлови. StartFile можемо дефинисати по потреби. Користимо ХТМЛ за статички садржај, index.html, а у случају да желимо динамички интерфејс и функционалности, користимо ПХП, index.php. Хијавата подржава и друга језичка решења као што су Руби и Пајтон. AccessLogfile је локација за чување података о приступу сајту.

ErrorLogfile нам олакшава анализу грешака са којима се суочавамо при тестирању кода. UseToolkit је низ правила за дефинисање учитавања линкова на сајту по стандардима који спадају у SEO. Ова правила су дефинисана у функцији UrlToolkit. За разлику од Апачија и Енџиникса (nginx), доста преконфигурисаних правила можемо наћи на званичном Хијаватином веб сајту. Уколико желимо користити ПХП за покретање сајта, потребно је инсталирати пакет ПХП и неколико модула који нису интегрисани.

apt-get install php5 php-pear php5-curl php5-mysql php5-fpm

Сигурност на првом месту

Интегрисана решења нам могу помоћи да се заштитимо од неколико најпопуларнијих напада на веб апликације. Ако узмемо за пример XSS (Cross-site scripting) нападе, додавањем правила у vhost подешавања можемо блокирати већину познатих шаблона (патерна) за овај тип напада.

PreventXSS = yes|no
Primer: PreventXSS = yes

Једноставност интеграције не значи комплетну заштиту сервера. Напротив, коришћењем рањивих апликација и даље се излажемо ризику од напада. Заштита од напада SQL injection интегрише се линијом кода.

PreventSQLi = yes|no
Cross-site Request Forgery (CSRF)
PreventCSRF = yes|no

За оне који желе отићи корак даље, постоји опција за креирање hash (хеш) заштитног фајла. То значи да коришћењем wigwam (вигвам) алата који је интегрисан у Хијавату, преузимамо SHA256 вредности фајлова у фолдеру у коме се налази наш сајт (нпр. /var/www/nassajt) и након креирања hash.txt фајла остављамо га на серверу на заштићеној локацији. У случају да неко проба (па чак и ми сами) да измени фајлове (енг. Site deface), уместо уређене стране добиће страницу 404, грешку (error).

wigwam -s hash.txt | mv hash.txt /var/www/hashfajl/ | chmod 600 /var/www/hashfajl/hash.txt

У vhost подешавања додати:

FileHashes = /var/www/hashfajl/hash.txt

Више информација о wigwam опцијама можете наћи на следећој локацији:

https://www.hiawatha-webserver.org/manpages/wigwam

Ово може бити превише сигурности уколико свакодневно објављујемо нови садржај, па је због тога потребно изменити фајл hiawatha.conf сваки пут пре додавања новог чланка и осталог садржаја. Такође, обавезно је поновно покретање веб-сервера.

На крају можемо закључити да је Хијавата стабилно и сигурносно решење које може понудити опције које не можемо наћи код других веб-сервер апликација. Остаје нам да се посветимо даљем читању детаљних упутства на сајту аутора и уживање у сигурности која је данас потребна сваком озбиљном пројекту. У наредном броју ћемо писати како једноставно подесити ОпенВПН сервер на нашем Биглбон уређају.