Mikä on käänteinen välityspalvelin? Turvallisuusarkkitehtuurin keskeiset osat
Käänteisiä välityspalvelimia käytetään välittäjänä toimivina verkkokomponentteina julkisten verkkopalvelujen palvelimien suojaamiseksi. Ne vastaanottavat palvelimille osoitetut pyynnöt palvelimien puolesta ja välittävät ne eteenpäin käyttäjille.
Miten käänteinen välityspalvelin toimii?
Pohjimmiltaan välityspalvelin toimii verkossa viestinnän välittäjänä, joka vastaanottaa pyyntöjä ja välittää ne asiakkaan puolesta kohdepalvelimelle. Käänteinen välityspalvelin sijaitsee asiakkaiden (esim. verkkoselaimet) ja taustapalvelimien (esim. verkkopalvelimet, tietokantapalvelimet tai sovellukset) välissä. Se aktivoituu, kun asiakas tekee pyynnön, ja päättää, ohjataanko pyyntö sisäiselle palvelinkomponentille ja mihin. Prosessi etenee seuraavien neljän perusvaiheen mukaisesti:
- Asiakaspyynnön vastaanottaminen: Käänteinen välityspalvelin hyväksyy HTTP-, HTTPS- tai muita pyyntöjä, kuten FTP- tai WebSocket-pyyntöjä.
- Pyynnön analysointi: Välityspalvelin tarkistaa, onko pyyntö kelvollinen, aiheuttaako se turvallisuusriskejä ja onko siitä saatavilla välimuistissa olevaa versiota.
- Välittäminen sopivalle palvelimelle: Jos pyyntöön ei voida vastata välimuistista, käänteinen välityspalvelin lähettää pyynnön jollekin sisäisistä palvelimista.
- Vastaus asiakkaalle: Käänteinen välityspalvelin vastaanottaa vastauksen taustapalvelimelta, käsittelee sitä tarvittaessa edelleen (esim. salaus) ja lähettää sen takaisin pyynnön esittäneelle asiakkaalle.

Mitä eroa on eteenpäin välittäviin välityspalvelimiin verrattuna?
Kuten aiemmin mainittiin, käänteiset välityspalvelimet sijoitetaan asiakkaiden ja taustapalvelimien väliin, kun taas eteenpäin välittävät välityspalvelimet sijoitetaan asiakkaiden ja internetin väliin. Eteenpäin välittävä välityspalvelin kanavoi kaikki asiakaspyynnöt ja välittää ne omalla lähettäjän osoitteellaan internetissä sijaitseville kohdepalvelimille. Myös palvelinten vastaukset saapuvat ensin välityspalvelimeen, ennen kuin ne jaetaan vastaaville asiakaskoneille. Nämä pysyvät nimettöminä – ellei kyseessä ole läpinäkyvä välityspalvelin. Kun eteenpäin välittävä välityspalvelin suojaa sisäverkon asiakkaita ulkoisilta uhilta, käänteinen välityspalvelin suojaa julkisen verkon palvelimia ja optimoi niiden saavutettavuuden.
Vaikka käänteisvälityspalvelimet tarjoavat palvelinrakenteille selkeitä etuja esimerkiksi kuormituksen tasapainottamisen ja erilaisten tietoturvatoimintojen ansiosta, eteenpäinvälityspalvelimien vahvuudet liittyvät asiakkaiden suojaamiseen.

Käänteisten välityspalvelinten käyttökohteet
Asiakaspyyntöjen yhdistämisen avulla käänteisvälityspalvelimet voivat hallita saapuvaa liikennettä tarkasti. Tämä mahdollistaa muun muassa useiden palvelimien tarjoamisen saman URL-osoitteen alla, pyyntöjen tasaisen jakautumisen eri palvelimille sekä tiedonhakun nopeuttamisen välimuistin avulla. Alla on lueteltu käänteisvälityspalvelimen tärkeimmät käyttökohteet.
Kuormituksen tasapainottaminen
Etupuolelle sijoitettu käänteinen välityspalvelin mahdollistaa URL-osoitteen yhdistämisen yksityisverkossa sijaitseviin eri palvelimiin. Tämä jakaa saapuvat pyynnöt useiden palvelimien kesken. Tällainen kuormituksen tasapainottaminen estää yksittäisten järjestelmien ylikuormittumisen ja kompensoi vikatilanteita. Jos palvelimeen ei saada yhteyttä laitteisto- tai ohjelmistovirheiden vuoksi, välityspalvelimen kuormituksen tasapainottamismoduuli ohjaa saapuvat pyynnöt jäljellä oleville palvelimille. Tämä varmistaa palvelinpalveluiden saatavuuden myös vikatilanteissa.
Välimuisti
Palvelinpalveluiden nopeuttamiseksi käänteisvälityspalvelimet voivat tarjota ominaisuuden, jonka avulla usein pyydetty sisältö voidaan tallentaa välimuistiin. Tämän välimuistitoiminnon ansiosta välityspalvelin voi vastata toistuviin pyyntöihin joko osittain tai kokonaan itse. Staattinen sisältö, kuten kuvat tai CSS-tyylitiedostot, tallennetaan välityspalvelimen välimuistiin. Tämän seurauksena taustapalvelimelta ei tarvitse hakea juuri lainkaan dataa, mikä nopeuttaa merkittävästi verkkopalvelujen käyttöä. Koska nopeasti muuttuva sisältö ei kuitenkaan aina takaa, että välityspalvelimen välimuistissa on ajantasainen versio, on olemassa riski, että pyynnön esittäneille asiakkaille toimitetaan vanhentunutta tietoa.
Suojaus- ja turvallisuustoimenpiteet
Käänteinen välityspalvelin toimii eräänlaisena suojana taustapalvelimille ja voi tässä roolissa tarjota erilaisia turvallisuustoimintoja:
- DDoS-suojaus: Käänteisvälityspalvelimet pystyvät havaitsemaan ja estämään epäilyttävän tai epätavallisen suuren liikenteen DDoS- hyökkäysten aikana, ennen kuin se ehtii saavuttaa taustapalvelimet.
- Web-sovellusten palomuuri (WAF): Monissa käänteisvälityspalvelimissa on WAF, joka voi suodattaa haitallisia pyyntöjä, kuten SQL-injektioita tai sivustojen välistä skriptiä (XSS).
- IP-sallittujen ja kiellettyjen luettelot: Käänteinen välityspalvelin voi estää tiettyjä IP-osoitteita tai sallia yhteydet vain tietyistä verkoista tarvittaessa.
- Taustapalvelinten piilottaminen: Käänteinen välityspalvelin estää taustapalvelinten sisäisten IP-osoitteiden näkyvyyden julkisesti, mikä vaikeuttaa hyökkäyksiä.
Salaus
Takapalvelimien kuormituksen vähentämiseksi salauksessa voidaan käyttää myös käänteisvälityspalvelimia. Tällöin se purkaa asiakkaan SSL/TLS-pyynnön (esim. HTTPS-yhteyden), välittää puretun datan takapalvelimille ja lähettää vastaavan vastauksen takaisin asiakkaalle uudelleen salattuna. Sisäinen tiedonsiirto voi tapahtua joko salattuna tai salaamattomana.
Anonymisointi
Käänteistä välityspalvelinta voidaan käyttää myös liikenteen anonymisointiin peittämällä asiakkaiden alkuperäiset IP-osoitteet tai korvaamalla ne omilla IP-osoitteillaan. Tämä auttaa suojaamaan asiakkaiden yksityisyyttä, sillä todelliset IP-osoitteet eivät näy lokitiedoissa. Lisäksi tämä mahdollistaa maantieteellisen kuormituksen tasapainottamisen: pyynnöt voidaan ohjata lähimmälle palvelimelle käyttäjän maantieteellisen sijainnin perusteella.
Pakkaaminen
Oikean ohjelmiston avulla käänteistä välityspalvelinta voidaan käyttää saapuvan ja lähtevän datan pakkaamiseen. Suosittu ohjelma verkkosivustojen pakkaamiseen on gzip, jota käytetään usein yhdessä Apache- tai NGINX-verkkopalvelimien kanssa.