sql >> Databasteknik >  >> RDS >> Sqlserver

Ansluta en Bastion Server till en PostgreSQL Server via SSH Tunnel

PostgreSQL är ett välkänt relationsdatabashanteringssystem som har en säker miljö för utvecklare och användare. Men eftersom distansarbete fortsätter att vara en del av varje företags nya normala, möter IT-proffs en ny uppsättning utmaningar när det gäller att hantera säkerheten och tillgängligheten för sina servrar.

Att använda en bastionserver för att komma åt en PostgreSQL-databas lägger till ett extra lager av säkerhet. Men eftersom bastionsservrar bör fungera som brandväggar, är det nödvändigt att använda en Secure Shell (SSH)-tunnel för att sänka nivån på den privata nätverksexponeringen.

Många PostgreSQL-databashanteringsverktyg kan automatisera denna anslutningsprocess, men interaktion med skalet kräver manuellt skapande av en SSH-tunnel. Att förstå processen och försiktighetsåtgärderna kan säkert hjälpa ditt företag att upprätthålla säkra databaser.

Fördelar med att skapa och använda en SSH Secure Shell Tunnel

SSH-tunnling har använts i nätverkskommunikation i över trettio år, och det är lika relevant för dagens datorbehov.

Utvecklare vänder sig konsekvent till SSH Secure Shell-protokoll för att hantera databasåtkomst på alla typer av servrar, inklusive PostgreSQL. Säker fjärråtkomst är avgörande idag, särskilt när 50 % av arbetsplatsens enheter är mobila (mobila enheter är bland de mest sårbara för cyberattacker). Detta gör det ännu viktigare att organisationer kan fjärrhantera enheter och användaråtkomst till sina nätverk.

Företag som hanterar stora mängder data måste ge sina anställda expressåtkomst till stora databaser och ta ett proaktivt förhållningssätt till databassäkerhet. Att använda SSH-protokoll är nummer ett när det gäller att ge säker åtkomst till användare från fjärrservrar. Det gör det också enklare att autentisera automatiserade program. Därför kan företag sköta sina dagliga uppgifter mer effektivt.

När säkerhetsstandarderna äntligen kommer ikapp mobila enheter och fjärrservrar kan vi förvänta oss att kryptering och autentiseringsprotokoll också förbättras. Flexibilitet och interoperabilitet är framtiden för IoT-säkerhet. Ändå kommer SSH-protokoll att fortsätta att vara en standarddel under överskådlig framtid.

Hur fungerar SSH?

SSH-protokoll låter dig fjärrstyra åtkomst till dina servrar över internet i en säker miljö. Inte bara är den initiala anslutningen mycket säker, utan även hela kommunikationssessionen mellan de två parterna. Användare kan logga in på en fjärrserver med en öppen SSH Secure Shell-tunnel eller andra SSH Secure Shell-klienter.

Servern letar efter en öppen portanslutning. När den hittar en måste servern autentisera anslutningen. Det avgör om en säker miljö har upprättats för kommunikation och filöverföring. Om anslutningen initieras av klienten måste klienten autentisera servern förutom att tillhandahålla dess autentiseringsuppgifter.

När båda parter är autentiserade och anslutningen är upprättad säkerställer SSH-krypteringsprotokollet den fortsatta integriteten för alla dataöverföringar mellan servern och klienten.

Det finns tre typer av kryptering som SSH-tunnlar använder för att säkra anslutningar:

  • symmetrisk kryptering
  • asymmetrisk kryptering
  • hashar.

Symmetrisk kryptering används under anslutningens varaktighet för att hålla kommunikationen säker. Både klient och server delar samma hemliga nyckel för att kryptera och dekryptera data. Denna algoritm är säker eftersom en verklig nyckel aldrig riktigt byts ut. Snarare delar båda sidor offentlig information från vilken de oberoende kan hämta nyckeln.

Asymmetrisk kryptering , däremot kräver både en offentlig och en privat nyckel. Den används i början av tunnlingsprocessen för att autentisera servrarna. Servern kommer att använda en offentlig nyckel för att kryptera denna data, och klienten måste autentisera den med en privat nyckel. Eftersom en viss privat nyckel är det enda som kan dekryptera meddelanden som är krypterade med den offentliga nyckeln, hjälper detta att autentisera parterna som söker anslutning.

Kryptografisk hashning skapar en unik signatur för datauppsättningen. Detta är användbart i en SSH-anslutning eftersom det låter servern veta om en MAC är acceptabel. En matchande hash kan bara skapas av den databit som är identisk med den som skapade originalet. Således kan hashing användas för att kontrollera indata för att säkerställa att det är rätt.

SSH-autentisering

Efter att ha upprättat krypteringen sker en autentiseringsprocess. Den enklaste formen av autentisering är att använda ett lösenord. Även om detta är ett enkelt sätt för kunder, är det också mycket lätt för skadliga automatiserade skript. Även ett krypterat lösenord har en begränsad komplexitet. Det gör det osäkert. Att använda asymmetriska nycklar är en vanlig åtgärd istället för att använda lösenord.

När en offentlig nyckel väl har etablerats måste klienten tillhandahålla den privata nyckel som följer med den offentliga nyckeln. Utan denna kombination misslyckas autentiseringen. Detta hjälper till att säkerställa att krypterad data inte kan dekrypteras av en inkräktare.

Hela autentiseringsprocessen förhandlas under installationen, och endast parter med kompletterande nycklar kan kommunicera. Denna process gör också inloggningsprocessen snabb. Så det är optimalt för automatiserade procedurer.

Autentiseringsprocessen kommer att variera beroende på följande faktorer:

  • den typ av databas som skyddas
  • serverns relation och plats
  • användarens behörigheter inom servern.

Det fina med att använda ett SSH-protokoll är att hela processen är krypterad och mycket säker.

Konfigurera SSH-tunneln

Om du vill interagera med en databas med hjälp av skalet måste du veta hur man skapar en SSH-tunnel. Även om det kan vara bekvämt att använda ett automatiserat SSH-hanteringsprogram, föredrar många databasadministratörer att ställa in databashanteringsverktyg från början eftersom interaktion med skalet är det bästa sättet att felsöka, granska och ha maximal kontroll.

Att använda en SSH-tunnel är ett mycket säkert sätt att öppna en session utan rädsla för att förlora data eller bli hackad (så länge du stänger dina sessioner och övervakar dina servrar).

Så här skapar du en SSH-tunnel:

Verifiera Bastion-servern

För att skapa en SSH Secure Shell-tunnel behöver du känna till värdnamnen för bastionservern och PostgreSQL-databasen, samt ditt användarnamn på bastionservern. Kör kommandot:

$ ssh <username>@<bastion_server>

Ange sedan ditt lösenord när lämpligt fönster dyker upp.

Öppna SSH-tunneln

Öppna tunneln med detta kommando:

$ ssh -L localhost:port_number:<sql_server>:port_number<username>@<bastion_server>

Lämna fönstret öppet för att upprätthålla anslutningen. Tvåportsnumren är för din dator respektive fjärrservern.

Verifiera din anslutning

För att se till att din tunnel är öppen och ansluten till PostgreSQL-servern, använd följande kommando:

$ psql --port=X --host=localhost -c "SELECT * FROM pg_catalog.pg_tables"

Se om tabellerna returneras. Om de är det, var din anslutning framgångsrik och säker.

Ett par valfria steg kan öka effektiviteten för din åtkomst från bastionvärden till SQL-servern. Kom dock ihåg att automatisering av åtkomst hela tiden inte är en säker strategi. Det är klokt att alltid logga in när du vill öppna en SSH-tunnel för att hålla sessionerna helt privata.

Skapa användarprofil

För att undvika behovet av att ange lösenord varje gång kan du skapa en profil på bastionsservern. För att göra detta måste du lägga till din SSH-nyckel till servern genom att använda följande kommando:

$ ssh-copy-id <username>@<bastion_server>

Sedan kommer din nyckel att användas automatiskt när du vill logga in. Den har dock både positiva och negativa aspekter. Det är bekvämare, men du måste se till att ha andra säkerhetsprotokoll på plats för att skydda maskinen från skadlig programvara eller stöld. Om någon annan får åtkomst till din maskin kan de kanske logga in automatiskt på dina servrar eftersom din nyckel är sparad.

Uppdatera din SSH-konfigurationsfil

Det kan vara sofistikerat att komma ihåg de exakta namnen och portnumren för de servrar du vill ansluta till. Det är därför det är en del av SSH Secure Shell-tunnelprotokollet.

Du håller reda på värdnamnen och autentiserar dig med ditt användarnamn. Det är en del av det som gör SSH-anslutningen säker i första hand. Men det finns ett sätt att konfigurera din procedur för att göra åtkomsten snabbare och enklare utan att helt automatisera processen. Du kan lägga till en post i din SSH-konfigurationsfil:

Värd bastion-produktion

  • Värdnamn
  • Användare
  • LocalForward localhost:port_number:port_number

Kör sedan kommandot:

$ ssh bastion-production 

Nu kan du ansluta i bara ett steg.

SSH-sekretesstips

Det är absolut nödvändigt att hålla databaserna säkra. Data är den mest värdefulla valutan i världen, och med ökningen av ransomware och annan cyberbrottslighet är det ett oacceptabelt att inte skydda kunddata.

Hela poängen med att använda bastionservern i första hand är att skydda din databas. Men några felsteg skulle lämna dina servrar vidöppna för alla att komma in.

Här är några tips för att vara säker när du använder SSH-tunnlar för att ansluta till PostgreSQL-servrar:

Autentisera fjärrarbetare korrekt

Om din organisation använder SSH för att ansluta på distans, måste alla känna till grunderna för digital hygien. Använd nyckelbaserad autentisering som är skyddad av ett starkt lösenord. Tvåstegsverifiering för varje inloggning är också ett bra ställe att börja, samt att se till att offentliga SSH-nycklar är autentiska.

Begränsa SSH-inloggningar endast till de som behöver dem, och ange privilegier som återspeglar användarnas uppgifter.

Inaktivera portvidarebefordran

Endast runt hälften av utvecklarna tillämpar förebyggande förfaranden för vidarebefordran av hamnar. Portvidarebefordran kan lämna dig öppen för krypterad kommunikation med icke godkända användare och servrar. Således kan hackare gå direkt in i din databas. Filtrera alla dina anslutningar genom bastionservern och överväg att använda portknackning innan du tillåter en anslutning.

Se till att du kör den senaste programvaran och att dina SSH-anslutningar uppfyller de senaste efterlevnadsstandarderna.

Revision ofta

Använd ett kontinuerligt övervakningsverktyg utöver vanliga manuella revisioner. Begränsa dina anslutningar endast till de som är nödvändiga, och se till att kontrollera eventuella ändringar i dina konfigurationsinställningar som inte godkändes i förväg.

Genom att hålla ett öga på vem som loggar in och vilken typ av aktivitet de ägnar sig åt kan du begränsa attackytan och göra det enkelt att lokalisera sårbarheter från början.

Slutsats

Att använda krypterade SSH-tunnlar är ett säkert sätt att komma åt PostgreSQL-databaser från fjärrservrar. Processen upprätthåller kryptering under de anslutna sessionernas varaktighet. Även om automatiserade SSH-program är användbara för återkommande uppgifter och andra administrativa systemprocesser, kan det vara fördelaktigt att öppna en SSH-tunnel manuellt. I så fall kan du enkelt identifiera all trafik och kommunikation i motsats till att använda en automatiserad version eller klient.

Om du använder PostgreSQL eller något SQL-databashanteringssystem måste du veta hur du använder SSH-tunnling. Det kan vara avgörande för att övervaka och hantera systemprocesser och dataöverföringar.

SSH-protokoll ger en mycket säker anslutning, och att följa extra försiktighetsåtgärder hjälper till att upprätthålla integriteten hos dina serveranslutningar.


  1. Neo4j - Importera data från en CSV-fil med hjälp av Cypher

  2. Skicka en applikation med en databas

  3. Hur man krypterar en delad databas i Access 2016

  4. När ska du använda SQL Server med Access? (Tips:Nästan alltid)