Apache http (hyper text transfare protocol) – verze : 0.9 ---\ 1.0 ---? textový formát 1.1 ---/ MIME(převádí bin soubory) 2.0 ?binární data Systémy: - WIN : o IIS - LINUX : o APACHE2 o NGINX Šifrování: - SSL je starší méně bezpečnou variantou, existuje ve verzích SSL1.0, SSL2.0, SSL3.0. V současné době není SSL protokol považován za bezpečný, je doporučeno ho na serveru vypnout. Náhradu tvoří bezpečnější TLS. - TLS je novější protokol poskytující lepší zabezpečení dat, existuje ve verzích TLS1.0, TLS1.1, v současné době používaný TLS1.2. V přípravě je verze TLS1.3. URL (Uniform Resource Locator) / URI (Uniform Resource Identifier) Tvoří základ pro adresování zdrojů na webu (klasická webová adresa), skládá se z několika částí: http: // www.spsmb.cz : 8080 /index.php ? parametr=hodnota (protokol) (host – adresa) (port) (dokument) (parametry querystring oddělené znakem &) Metody: - GET – požadavek na zaslání dat (dokumentu) ze serveru - HEAD – jako GET, ale pouze metadata bez samotného dokumentu - POST – odeslání dat na server (formuláře), jako součást požadavku. Jde použít i GET, který data předává v URL. informací z klienta na server) - PUT – nahrání souboru na server, potřeba oprávnění - DELETE – smazání objektu na serveru, potřeba oprávnění - TRACE – kopie požadavku zpět klientovi - OPTIONS – dotaz na metody podporované serverem - CONNECT – konverze spojení na TCP/IP tunel pro použití zabezpečené (SSL) komunikace přes nezabezpečený HTTP Proxy HTTP stavové kódy (nesouvisí se stavem spojení) Vrací se v záhlaví odpovědi od serveru, upřesňují stav vyřízení požadavku. Jsou identifikovány trojmístným číslem, reprezentují pět kategorií: 1xx – informační 2xx – úspěšně vyřízený HTTP požadavek (standardně 200) 3xx – HTTP požadavky týkající se přesměrování 4xx – chyby na straně klienta (klasicky 404 – Not Found) 5xx – chyby na straně serveru (většinou 500 – Internal Server Error) Apache Jeden z nejpoužívanějších webových serveru na Linuxu i na vlastním Internetu, v současné době ve verzi 2.4. Instalace apt-get install apache2 libapache2-mod-php5 (podpora PHP módu) Části apache serveru: /etc/apache2 – konfigurační soubory /var/www – kořenový adresář webové služby /usr/share – adresáře doc/apache* - dokumentace Konfigurace /etc/apache2/apache2.conf – hlavní konfigurace serveru /etc/apache2/envvars – nastavení základních proměnných Apache /etc/apache2/magic /etc/apache2/ports-conf /etc/apache2/ssl – certifikáty pro SSL (TLS) /etc/apache2/conf-available – dílčí konfigurace /etc/apache2/mods-available – použitelné moduly (sada funkcí serveru) /etc/apache2/sites-available – konfigurace www stránek, které jsou k dispozici (viz. virtuální adresář) Poslední tři adresáře mají ještě podružný adresář s koncovkou -enabled, který obsahuje všechny věci, které jsou na serveru povolené. Zakázání nepotřebných modulů Některé moduly nejsou potřeba (seznam dole), z bezpečnostních důvodů je vypneme příkazem a2dismod název_modulu, mohly by představovat bezpečnostní riziko. Povolení můžeme provést pomocí a2enmod název_modulu. mod_imap, mod_include, mod_info, mod_userdir, mod_status, mod_cgi, mod_autoindex Upravíme konfigurační soubory /etc/apache2/apache2.conf, /etc/apache2/conf-available a /etc/apache2/sites-available dle vzoru a do /etc/apache2/apache2.conf přidáme tyto řádky (kontrola proti zneužití cookies a iframe, zákaz zobrazení ETag): Header edit Set-Cookie ^(.*)$ $1;HttpOnly;Secure Header always append X-Frame-Options SAMEORIGIN FileETag None V souboru /etc/apache2/conf-available/security.conf nastavíme: - ServerSignature Off - ServerTokens Prod - TraceEnable Off Aktivujeme konfiguraci a WWW stránky a2enconf konfigurační soubor (pomocí a2disconf ji můžeme deaktivovat) a2ensite konfigurační soubor (pomocí a2dissite ji můžeme deaktivovat)