PostgreSQL er et velkendt relationelt databasestyringssystem, der kan prale af et sikkert miljø for udviklere og brugere. Men da fjernarbejde fortsat er en del af enhver virksomheds nye normalitet, står it-professionelle over for et nyt sæt udfordringer, når det kommer til at administrere sikkerheden og tilgængeligheden af deres servere.
Brug af en bastionserver til at få adgang til en PostgreSQL-database tilføjer et ekstra lag af sikkerhed. Men fordi bastionservere skal fungere som firewalls, er det nødvendigt at bruge en Secure Shell (SSH)-tunnel for at sænke niveauet af eksponeringen for det private netværk.
Mange PostgreSQL-databasestyringsværktøjer kan automatisere denne forbindelsesproces, men interaktion med skallen kræver manuel oprettelse af en SSH-tunnel. At forstå processen og forholdsreglerne kan helt sikkert hjælpe din virksomhed med at vedligeholde sikre databaser.
Fordele ved at oprette og bruge en SSH Secure Shell Tunnel
SSH-tunneling er blevet brugt i netværkskommunikation i over tredive år, og det er lige så relevant for nutidens computerbehov.
Udviklere henvender sig konsekvent til SSH Secure Shell-protokoller for at administrere databaseadgang på alle slags servere, inklusive PostgreSQL. Sikker fjernadgang er kritisk i dag, især når 50 % af enheder på arbejdspladsen er mobile (mobile enheder er blandt de mest sårbare over for cyberangreb). Dette gør det endnu vigtigere, at organisationer kan fjernadministrere enheder og brugeradgang til deres netværk.
Virksomheder, der håndterer store mængder data, skal give medarbejderne ekspresadgang til større databaser og have en proaktiv tilgang til databasesikkerhed. Brug af SSH-protokoller er nummer et i at give sikker adgang til brugere fra fjernservere. Det gør det også nemmere at autentificere automatiserede programmer. Derfor kan virksomheder udføre deres daglige opgaver mere effektivt.
Efterhånden som sikkerhedsstandarderne endelig er ved at indhente mobile enheder og fjernservere, kan vi forvente, at kryptering og godkendelsesprotokoller også forbedres. Fleksibilitet og interoperabilitet er fremtiden for IoT-sikkerhed. Alligevel vil SSH-protokoller fortsat være en standarddel i en overskuelig fremtid.
Hvordan virker SSH?
SSH-protokoller giver dig mulighed for at fjernstyre adgangen til dine servere på tværs af internettet i et sikkert miljø. Ikke alene er den indledende forbindelse meget sikret, men det samme er hele kommunikationssessionen mellem de to parter. Brugere kan logge ind på en ekstern server ved hjælp af en åben SSH Secure Shell-tunnel eller andre SSH Secure Shell-klienter.
Serveren leder efter en åben portforbindelse. Når den finder en, skal serveren godkende forbindelsen. Det afgør, om der er etableret et sikkert miljø til kommunikation og filoverførsel. Hvis forbindelsen initieres af klienten, skal klienten godkende serveren ud over at give dens legitimationsoplysninger.
Når begge parter er autentificeret, og forbindelsen er etableret, sikrer SSH-krypteringsprotokollen det fortsatte privatliv for alle datatransmissioner mellem serveren og klienten.
Der er tre typer kryptering, som SSH-tunneler bruger til at sikre forbindelser:
- symmetrisk kryptering
- asymmetrisk kryptering
- hashes.
Symmetrisk kryptering bruges under forbindelsens varighed for at holde kommunikationen sikker. Både klient og server deler den samme hemmelige nøgle til at kryptere og dekryptere data. Denne algoritme er sikker, fordi en egentlig nøgle aldrig rigtig udveksles. I stedet deler begge sider offentlig information, hvorfra de uafhængigt kan udlede nøglen.
Asymmetrisk kryptering , derimod kræver både en offentlig og en privat nøgle. Det bruges i begyndelsen af tunnelingsprocessen til at godkende serverne. Serveren vil bruge en offentlig nøgle til at kryptere disse data, og klienten skal autentificere dem med en privat nøgle. Da en bestemt privat nøgle er det eneste, der kan dekryptere meddelelser, der er krypteret med den offentlige nøgle, hjælper dette med at autentificere de parter, der søger forbindelse.
Kryptografisk hashing skaber en unik signatur for datasættet. Dette er nyttigt i en SSH-forbindelse, fordi det giver serveren mulighed for at vide, om en MAC er acceptabel. En matchende hash kan kun oprettes af det stykke data, der er identisk med det, der skabte originalen. Således kan hashing bruges til at kontrollere input for at sikre, at det er det rigtige.
SSH-godkendelse
Efter etablering af krypteringen finder en godkendelsesproces sted. Den enkleste form for godkendelse er at bruge en adgangskode. Selvom dette er en nem måde for klienter, er det også meget nemt for ondsindede automatiserede scripts. Selv en krypteret adgangskode har en begrænset kompleksitet. Det gør det usikkert. Brug af asymmetriske nøgler er en almindelig foranstaltning i stedet for at bruge adgangskoder.
Når en offentlig nøgle er etableret, skal klienten levere den private nøgle, der følger med den offentlige nøgle. Uden denne kombination mislykkes godkendelsen. Dette er med til at sikre, at de krypterede data ikke kan dekrypteres af en ubuden gæst.
Hele godkendelsesprocessen forhandles under opsætningen, og kun parter med komplementære nøgler kan kommunikere. Denne proces gør også login-processen hurtig. Så det er optimalt til automatiserede procedurer.
Godkendelsesprocessen vil variere baseret på følgende faktorer:
- den type database, der beskyttes
- serverens forhold og placering
- brugerens tilladelser på serveren.
Det fantastiske ved at bruge en SSH-protokol er, at hele processen er krypteret og meget sikret.
Konfigurer SSH Tunnel
Hvis du vil interagere med en database ved hjælp af skallen, skal du vide, hvordan du opretter en SSH-tunnel. Selvom det kan være praktisk at bruge en automatiseret SSH-administrationsapplikation, foretrækker mange databaseadministratorer at konfigurere databasestyringsværktøjer fra bunden, fordi interaktion med skallen er den bedste måde at fejlsøge, revidere og have maksimal kontrol på.
Brug af en SSH-tunnel er en meget sikker måde at åbne en session på uden frygt for at miste data eller blive hacket (så længe du lukker dine sessioner og overvåger dine servere).
Sådan opretter du en SSH-tunnel:
Bekræft Bastion-serveren
For at oprette en SSH Secure Shell-tunnel skal du kende værtsnavnene på bastionserveren og PostgreSQL-databasen samt dit brugernavn på bastionserveren. Kør kommandoen:
$ ssh @
Indtast derefter din adgangskode, når det relevante vindue dukker op.
Åbn SSH Tunnel
Åbn tunnelen med denne kommando:
$ ssh -L localhost:port_number::port_number@
Lad vinduet stå åbent for at opretholde forbindelsen. To-port-numrene er til henholdsvis din computer og fjernserveren.
Bekræft din forbindelse
For at sikre, at din tunnel er åben og forbundet til PostgreSQL-serveren, skal du bruge følgende kommando:
$ psql --port=X --host=localhost -c "VÆLG * FRA pg_catalog.pg_tables"
Se om tabellerne er returneret. Hvis de er, så var din forbindelse vellykket og sikker.
Et par valgfrie trin kan øge effektiviteten af din adgang fra bastion-værten til SQL-serveren. Husk dog, at automatisering af adgang hele tiden ikke er en sikker strategi. Det er klogt altid at logge ind, når du vil åbne en SSH-tunnel for at holde sessioner helt private.
Opret brugerprofil
For at undgå nødvendigheden af at indtaste adgangskoder hver eneste gang, kan du oprette en profil på bastionserveren. For at gøre dette skal du tilføje din SSH-nøgle til serveren ved at bruge følgende kommando:
$ ssh-copy-id @
Derefter vil din nøgle automatisk blive brugt, når som helst du ønsker at logge ind. Det har dog både positive og negative aspekter. Det er mere praktisk, men du skal sørge for at have andre sikkerhedsprotokoller på plads for at beskytte maskinen mod malware eller tyveri. Hvis en anden får adgang til din maskine, kan de muligvis automatisk logge ind på dine servere, fordi din nøgle er gemt.
Opdater din SSH-konfigurationsfil
Det kan være sofistikeret at huske de nøjagtige navne og portnumre på de servere, du vil oprette forbindelse til. Det er derfor, det er en del af SSH Secure Shell-tunnelprotokollen.
Du holder styr på værtsnavnene og autentificerer dig selv med dit brugernavn. Det er en del af det, der gør SSH-forbindelsen sikker i første omgang. Men der er en måde at konfigurere din procedure for at gøre adgangen hurtigere og nemmere uden at fuldautomatisere processen. Du kan tilføje en post til din SSH-konfigurationsfil:
Vært bastion-produktion
- Værtsnavn
- Bruger
- LocalForward localhost:port_number
:port_number
Kør derefter kommandoen:
$ ssh bastion-produktion
Nu kan du oprette forbindelse med kun ét trin.
SSH Privatlivstips
Det er bydende nødvendigt at holde databaserne sikre. Data er den mest værdifulde valuta i verden, og med stigningen i ransomware og anden cyberkriminalitet er det et uacceptabelt bortfald at undlade at beskytte kundedata.
Hele pointen med at bruge bastionserveren i første omgang er at beskytte din database. Et par fejltrin ville dog lade dine servere stå helt åbne, så alle kan komme ind.
Her er nogle tips til at være sikker, mens du bruger SSH-tunneler til at oprette forbindelse til PostgreSQL-servere:
Autentificer fjernarbejdere korrekt
Hvis din organisation bruger SSH til at forbinde eksternt, så skal alle kende det grundlæggende i digital hygiejne. Brug nøglebaseret godkendelse, der er beskyttet af en stærk adgangskode. Totrinsbekræftelse for hvert login er også et godt sted at starte, såvel som at sikre, at offentlige SSH-nøgler er autentiske.
Begræns kun SSH-login til dem, der har brug for dem, og indstil privilegier, der afspejler brugernes opgaver.
Deaktiver portvideresendelse
Kun omkring halvdelen af udviklerne håndhæver procedurer til forebyggelse af port forwarding. Portvideresendelse kan efterlade dig åben for krypteret kommunikation med ikke-godkendte brugere og servere. Således kan hackere gå direkte ind i din database. Filtrer alle dine forbindelser gennem bastion-serveren, og overvej at bruge portbanke, før du tillader en forbindelse.
Sørg for, at du kører den nyeste software, og at dine SSH-forbindelser er op til de seneste overholdelsesstandarder.
Revision ofte
Brug et løbende overvågningsværktøj ud over regelmæssige manuelle revisioner. Begræns kun dine forbindelser til dem, der er nødvendige, og sørg for at tjekke for ændringer i dine konfigurationsindstillinger, som ikke var godkendt på forhånd.
Ved at holde øje med, hvem der logger ind, og hvilken slags aktivitet de er involveret i, kan du begrænse angrebsfladen og gøre det nemt at lokalisere sårbarheder fra starten.
Konklusion
Brug af krypterede SSH-tunneler er en sikker måde at få adgang til PostgreSQL-databaser fra fjernservere. Processen opretholder kryptering i de tilsluttede sessioners varighed. Selvom automatiserede SSH-programmer er nyttige til tilbagevendende opgaver og andre administrative systemprocesser, kan det være en fordel at åbne en SSH-tunnel manuelt. I så fald kan du nemt identificere al trafik og kommunikation i modsætning til at bruge en automatiseret version eller klient.
Hvis du bruger PostgreSQL eller et hvilket som helst SQL-databasestyringssystem, skal du vide, hvordan du bruger SSH-tunneling. Det kan være afgørende for overvågning og styring af systemprocesser og dataoverførsler.
SSH-protokoller giver en meget sikker forbindelse, og at følge ekstra forholdsregler vil hjælpe med at bevare integriteten af dine serverforbindelser.