Apache HTTP сервер – инсталација и основна конфигурација

Apache HTTP сервер је тренутно најпопуларнији и најкоришћенији HTTP сервер на свету. Овај производ тренутно опслужује око 60% активних веб страница на интернету. Оваква популарност је и основни разлог што је Apache прва асоцијација када се у разговору помене „Web Server“, и први линк ка конкретном производу којег Google избаци када исте речи унесете у поље за претрагу.

Најчешће коришћена платформа на којој се инсталира је Линукс, мада су произвођачи овог неспорно квалитетног софтвера, прилагодили свој производ сvim значајним платформама: Линукс, Виндовс, Unix, Mac OSX, FreeBSD, Novell NetWare… У оквиру овог текста, покушаћемо да престаvimо процес инсталације и остновног подешавања Apache httpd сервера на ЦентОС-у 6.2 (РедХет Линукс).

Напомињемо да је приказ инсталације и конфигурисања урађен у LAN окружењу, без јавно видљивог домена који је иначе потребан да би сајт био присутан на интернету. Списак потребних елемената за фунционисање Apache http сервер окружења у тест услоvimа је следећи:

  • DNS сервер (ЦентОС сервер са инсталираним DNS сервисом)
  • Apache сервер (ЦентОС сервер на ком ћемо инсталирати сам Apache сервер)
  • Клијентски рачунар са инсталираним веб браузером (за проверу функционисања система)

Подешавање DNS сервера и параметара

Први предуслов за инсталацију је функционалани DNS сервер чија је улога да разрешава имена у мрежи (више података можете наћи у тексту: DNS инсталација и конфигурација на ЦентОС-у 6.2). За ове потребе, у нашем окружењу, на једном рачунару морамо подићи DNS сервер. Други рачунар, онај на којег ћемо инстлирати Apache HTTP сервер, мора бити на истом мрежном LAN сегменту са DNS сервером.

Потребно је подесити IP адресе будућег Apache сервера (IP, subnet и DNS) и доделити име рачунару (hostname), на пример webserver.localhost.loc . У овом случају, domain name је localhost.loc а име рачунара је webserver. Следећи корак је придруживање ове машине DNS серверу:

Детаљније упутство можете видети у поменутом тексту о DNS серверу, све што је потребно јесте да у главној и реверзној зони DNS-а додамо записе нове машине. Главна зона мора да садржи А запис у следећем формату:

webserver.localhost.loc.  IN  A  192.168.180.141 .

У реверзној зони додајете следећу линију:

141   IN   PTR  webserver.localhost.loc.

Укратко, реверзна зона мора да садржи PTR запис рачунара а број 141 на почетку линије, показује да је то рачунар 141 у мрежи 192.168.180.0 (податак извучен из IP адресе вебсервера).

Када смо придружили будући Apache сервер мрежи, можемо да кренемо са инсталацијом.

Инсталација и едитовање httpd.conf фајла

У терминалу ЦентОС рачунара на ком вршимо инсталацију потребно је укуцати:yum -y install httpd ЦентОС ће повући са интернета инсталацију која траје пар минута, а завршетак ће бити означен поруком „Complete“. По инсталацији, потребно је ући у Apache конфигурациони фајл и подесити неколико веома битних ставки.

Команда: vim /etc/httpd/conf/httpd.conf ће омогућити увид у поменута подешавања која садрже преко 700 линија. За потребе основне инсталације одвојили смо одређен број линија које је потребно конфигурисати како би сервер функционисао без проблема. Помоћу тастера „i“ улазите у INSERT мод, мод за унос података. Едитор у доњем десном углу показује у којој се линији тренутно налазите.

Линије за ServerTokens и Signature би требало да изгледају овако:

ServerTokens Prod
ServerSignature Оff

ServerTokens и ServerSignature спадају у security опције. Ове две линије су везане за инфо и error странице које генерише Apache сервер.

Уколико покушате да приступите веб страници путем IP адресе или тачне веб адресе а да при томе садржај сајта није постављен на Apache серверу (нема ничега у www фолдеру где се иначе смешта сајт), браузер ће приказати Welcome Apache page на којој је видљива верзија httpd сервера, инсталираних додатака, верзије PHP-а, Perl-а, итд.

Ово је наравно, веома непожељно из разлога што се олакшава посао потенцијалном нападачу који види верзију софтвера и може, тим лакше да „пробије“ сервер знајући специфичности софтвера. Када нападач не зна тип и верзију софтвера, требаће му много више времена да пробије у њега, ако уопште и успе у томе.

Баш из разлога потенцијалних напада, поменуте две ствари морају бити забрањене! На следећој слици можете видети изглед Apache Welcome Page:

Apache Welcome Page на ЦентОС-у

Уколико не подесите две поменуте опције (ServerTokens Prod и ServerSignature Оff), и покушате преко браузера да приступите httpd серверу, добићете следећу поруку на екрану:

Порука грешке везано за пермисије коју генерише Apache са подацима о конфигурацији сервера.

Подаци који су овде видљиви, довољни су сваком искуснијем хакеру да направи велике проблем вашем серверу. Неподешен httpd сервер лако открива своју верзију, оперативни систем на коме је инсталиран као и адресу сервера, па немојте заборавити да промените горе наведене линије.

Што се тиче Apache Welcome странице, ни она нам није потребна, па ћемо је уклонити са сервера.

Уклањање index.html и Apache Welcome странице са сервера

На слици изнад можете видети да се welcome страница налази на следећој путањи:/etc/httpd/conf.d/ па је наредбом rm (ремове) можете обрисати:rm /etc/httpd/conf.d/welcome.conf .

Readme фајл који се налази у истом директоријуму, conf.d, такође нема никакву улогу, па и њега можете обрисати. Уколико неке промене у конфигурацији Apache-а не буду прихваћене одмах, потребно је рестартовати сервис а то чините командом: service httpd restart.

Линија број 76, на њој је потребно укључити опцију KeepАlive: KeepАlive On – ово подешавање односи се на континуалне конекције клијената ка серверу.

По структури, http протокол је предвиђен да ради без сесија. То отприлике значи:конектујем се-захтевам-захтев одобрен-конекција се затвара.

При обради већег броја захтева у кратком временском року, протокол ће сваки захтев урадити на поменути начин: конектовати-дисконектовати. Ова процедура успорава саобраћај ка серверу као и сам сервер (свака конекција прави латенцију-чекање за захтев и оптерећује процесор). Да би се решио овај проблем, реализована је идеја да се неке ствари са веб страница повуку „у једном цугу“. То би значило да ће сесија бити отворена неко време и да клијент кроз ту сесију мозе да повуче више ствари пре него сто се она затвори. KeepАlive управо омогућује такву конекцију а самим тим и лакши и растерећенији рад сервер. Укључивање ове опције сервер такође излаже потенцијалним ризицима али њено омогућавање даје више позитивних него негативних резултата.

Линија 262 је адреса администратор сервера. Ово подешавање можете и не морате да одрадите. Уколико у опцији ServerAdmin поставите имејл адресу, добијаћете грешеке и обавештења у вези са радом веб сервера. На вама је да одлучите. Препоручујемо да унесете имејл адресу и останете у току са дешавањима на серверу.

Линија 276 је веома важна. ServerName је управо адреса помоћу које ћете приступати веб страници. Када би имали плаћен домен, овде би стајала адреса вашег сајта у следећем формату: www.mojastranica.rs:80.

Број 80 показује да се ваша страница налази на порту 80. Подсећамо да радимо у LAN окружењу и да практично симулирамо интернет. Уместо адресе сајта, укуцаћемо IP адресу нашег веб сервера на коме ће се налазити страница.

Подешавање линије ServerName:ServerName 192.168.180.141:80

Остало је још 6 линија које је потребно изменити и то урадите следећим редоследом:

Options FollowSymLinks ExecCGI (односи се на акције које су дозвољене или забрањене унутар неке путање у оквиру www/root директоријума:

ExecCGI – извршавање CGI скрипти, FollowSymLinks – праћење симболичких линкова, промена путање унутар URL-а на сајту)

AllowOverride All Односи се на могућност постављања директива које се могу извршити изван www/foldera (локације на којој се налази сајт), а које могу да измене статус постављен у оквиру „Options“ поставки. Најчешће се овакве директиве постављају у .htaccess фајлу.

DirectoryIndex index.html index.cgi index.php (дозвола читања иницијалног фајла у www директоријуму, односи се на први фајл који се ишчитава при захтеву клијента, у конкретном случају на серверу може да буде постављен било који фајл од ова три који су наведени)

Овај ред је потребно искоментарисати (пребацити у форму коментара) знаком „#“ на почетку реда(#AddDefaultCharset UTF-8)

Избришите знак за коментар „#“ на почетку линије:(AddHandler cgi-script .cgi .pl).

Активирањем ове опције, омогућује се коришћење, тј. извршавање CGI скрипти на сајту.

CGI скрипте су присутне на сваком динамичком сајту у савременом веб простору, и на интернету готово да нема веб портала који у свом коду нема поменуте извршне скрипте. CGI је акроним за Common Gateway Interface и ради се о динамичким скриптама. Уколико на сајту имате неку html форму попут форума, искуцате жељени текст а онда кликнете дугме POST како би сте га објавили на сајту, CGI скрипта има задатак да тај ваш текст обради и објави на жељеној страници. С обзиром да већина сајтова захтева CGI подршку, потребно је дозволити ову опцију на серверу.

Тестирање и постављање веб странице

Измене које смо урадили у конфигурационом фајлу су отприлике све што је потребно за основни рад нашег сервера.

Преостало је да се укуца команда: /etc/rc.d/init.d/httpd start

и уколико је повратна порука [OK], httpd сервер је успештно стартован. Као финални поступак, потребно је још поставити да се httpd стартује заједно са системом, а то радимо наредбом: chkconfig httpd on

Сада је све спремно за постављање прве веб странице.

Apache је формирао своје директоријуме, а дифолтна локација за постављање веб садржаја се налази на следећој путањи: /var/www/html/

Направићемо једну html страницу. У терминалу на Web серверу куцајте: echo „Test Stranica“ >> /var/www/html/index.html

Потребан нам је и трећи рачунар који ће бити клијент и обавити проверу функционалности веб сервера. На њему је неопходно подесити IP адресу и адресу заједничког DNS сервер, па затим проверити да ли пингује оба сервера. Клијентски рачунар може бити Линукс или Виндовс машина (или било која друга машина са функционалним веб претраживачем).

Као што смо урадили код веб сервера, потребно је убацити записе за клијентски рачунар у DNS зонама на DNS серверу. Примарна зона добија А запис са именом клијента (у нашем случају client.localhost.loc) а реверсе зона добија PTR запис истог са одговарајућом IP адресом.

По отварању веб браузера на клијенту, у адресном бару куцајте IP адресу или назив хоста Apache httpd сервера. Ако браузер нема проблем да прикаже тест страницу коју смо поставили на веб сервер, цео посао је успешно обављен.

Закључак

Намена овог текста је била да прикаже основну конфигурацију Apache httpd сервера и постављање веб странице. Треба напоменути да httpd сервер садржи прегршт опција и подешавања која су изузетно корисна. Apache подржава многе програмске језике попут Perl-а, Python-a, Tcl-а и PHP-а. Такође подржава разне аутентификационе шеме. Виртуални хостинг дозвољава овом httpd серверу да са једном инсталацијом опслужује више сајтова истовремено. Уколико желите да искористите све могућности, потребно је извршити додатно конфигурисање

Текст је преузет са угашеног блога ИТ модул и оригинални аутор овог текста је Радош Николић. Компјутераш ИТ блог објављује текстове са тог блога како ризница знања са те локације не би отишла у заборав.