Udrulning af Linux-servere og SSH på ekspertniveau · Lektion

Sikring af databaseforbindelser

Konfigurér sikre forbindelser til databasen ved hjælp af SSL/TLS, og begræns adgangen baseret på IP-adresser for øget sikkerhed.

Lektion 3 af 412 trin

Sikring af databaseforbindelser er en gratis Udrulning af Linux-servere og SSH på ekspertniveau-lektion på CoddyKit. Dette er lektion 3 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Udrulning af Linux-servere og SSH på ekspertniveau, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Udrulning af Linux-servere og SSH på ekspertniveau-kurset indeholder 4 lektioner i alt.

Hvorfor sikre databaseforbindelser?

Når dine applikationer opretter forbindelse til en database, sendes der ofte følsomme data over netværket. Uden den rette sikkerhed kan disse data blive opsnappet eller manipuleret.

  • Fortrolighed: Forhindrer uautoriseret visning af data.
  • Integritet: Sikrer, at data ikke ændres under overførslen.
  • Godkendelse: Bekræfter identiteten på både klienten og serveren.

Denne lektion fokuserer på to vigtige metoder: SSL/TLS-kryptering og IP-baserede adgangsbegrænsninger.

Forstå SSL/TLS til databaser

SSL/TLS (Secure Sockets Layer/Transport Layer Security) er standardteknologien til at oprette en krypteret forbindelse mellem en webserver og en klient (eller i vores tilfælde mellem en databaseserver og en klient).

  • Den krypterer alle udvekslede data og beskytter dem mod aflytning.
  • Den bruger digitale certifikater til at bekræfte serverens identitet (og eventuelt klientens).
  • Den er afgørende for at beskytte data som adgangskoder, økonomiske oplysninger og personlige oplysninger under overførslen.

Generering af SSL/TLS-certifikater

Hvis du vil bruge SSL/TLS, skal din databaseserver have et digitalt certifikat og en privat nøgle. De beviser serverens identitet.

  • Selvsignerede certifikater: De er nemmest at oprette til test eller interne netværk, men er ikke tillid til som standard.
  • CA-signerede certifikater: Udstedes af en certifikatmyndighed (CA) og har global tillid, hvilket gør dem ideelle til produktion.

I denne lektion antager vi, at du har et servercertifikat (server.crt) og en privat nøgle (server.key) klar.

PostgreSQL: Aktivér SSL

Hvis du vil aktivere SSL i PostgreSQL, skal du redigere filen postgresql.conf. Den fortæller serveren, at den skal lytte efter sikre forbindelser, og hvor den kan finde dine certifikater.

Vigtige parametre:

  • ssl = on: Slår SSL til.
  • ssl_cert_file: Stien til dit servercertifikat.
  • ssl_key_file: Stien til din servers private nøgle.

Genstart PostgreSQL efter ændringerne.

# Snippet from postgresql.conf

ssl = on
ssl_cert_file = '/etc/ssl/certs/postgresql/server.crt'
ssl_key_file = '/etc/ssl/private/postgresql/server.key'
ssl_crl_file = '' # Optional: Certificate Revocation List

# Remember to restart PostgreSQL after changes!

MySQL: Aktivering af SSL/TLS

I MySQL konfigurerer du SSL/TLS i my.cnf-filen (eller my.ini på Windows), typisk i sektionen [mysqld].

Du angiver stierne til servercertifikatet, den private nøgle og eventuelt et certifikat fra en Certificate Authority (CA), hvis du bruger et til at verificere klientcertifikater.

Genstart MySQL-tjenesten efter ændringerne, så de træder i kraft.

# Snippet from my.cnf

[mysqld]
ssl_ca = /etc/mysql/certs/ca.pem
ssl_cert = /etc/mysql/certs/server-cert.pem
ssl_key = /etc/mysql/certs/server-key.pem

# Restart MySQL after changes!

Klientforbindelse med SSL/TLS

Når serveren er konfigureret, skal klienterne have besked på at bruge SSL/TLS ved forbindelsen. Det indebærer ofte, at du angiver SSL-indstillinger i forbindelsesstrengen eller kommandoen.

Her er et eksempel med klienten psql til PostgreSQL, hvor SSL-tilstand udtrykkeligt kræves:

  • sslmode=require: Tvinger en SSL-forbindelse.
  • sslrootcert: Sti til CA-certifikatet til verificering af serveren.
psql "host=your_db_host user=your_user dbname=your_db \
  sslmode=require sslrootcert=/path/to/ca.crt"

Begrænsning af adgang efter IP-adresse

Ud over kryptering er begrænsning af adgangen baseret på klientens IP-adresse en grundlæggende sikkerhedspraksis. Det sikrer, at kun godkendte maskiner overhovedet kan forsøge at oprette forbindelse til din database.

Du kan konfigurere dette:

  • På databaseserverniveau (f.eks. PostgreSQLs pg_hba.conf eller MySQLs GRANT-sætninger).
  • Ved hjælp af en firewall (f.eks. UFW eller firewalld), der blokerer trafik til databaseporten fra uautoriserede IP-adresser.

En kombination af begge metoder giver et sikkerhedsforsvar i flere lag.

PostgreSQL: IP-begrænsninger med pg_hba.conf

PostgreSQL bruger filen pg_hba.conf til værtsbaseret godkendelse. Hver linje angiver forbindelsestyper, databaser, brugere og tilladte IP-adresser.

Almindelige felter:

  • TYPE: host (TCP/IP), local (Unix-socket).
  • DATABASE: all, et specifikt databasenavn.
  • USER: all, en specifik bruger.
  • ADDRESS: IP-område (f.eks. 192.168.1.0/24) eller en enkelt IP-adresse.
  • METHOD: scram-sha-256, md5, peer osv.

Husk at genstarte PostgreSQL efter redigering.

# Snippet from pg_hba.conf

# Allow connections from localhost for all users/databases
host    all             all             127.0.0.1/32            scram-sha-256

# Allow 'app_user' from specific IP range to 'app_db'
host    app_db          app_user        192.168.1.0/24          scram-sha-256

# Deny all other connections (implicit if no other rules match)

MySQL: IP-begrænsninger med GRANT

I MySQL begrænser du brugeradgangen ved at angive den vært, som brugeren må oprette forbindelse fra, når du opretter eller ændrer en bruger med GRANT-sætningen.

Syntaksen 'user'@'host' er central:

  • 'localhost': Kun fra selve serveren.
  • '192.168.1.100': Kun fra en bestemt IP-adresse.
  • '%': Fra enhver vært (bruges med stor forsigtighed!).
  • '192.168.1.%': Fra enhver IP-adresse i området 192.168.1.x.

Brug altid den mest begrænsende vært, der er mulig.

CREATE USER 'app_user'@'192.168.1.10' IDENTIFIED BY 'StrongPassword!';
GRANT ALL PRIVILEGES ON app_db.* TO 'app_user'@'192.168.1.10';
FLUSH PRIVILEGES;

Bedste sikkerhedspraksis

Sikring af databaseforbindelser er en løbende opgave. Her er nogle bedste fremgangsmåder:

  • Mindste privilegium: Giv kun brugere og applikationer de nødvendige tilladelser.
  • Stærke adgangskoder: Kræv komplekse adgangskoder, og udskift dem regelmæssigt.
  • Firewallregler: Brug serverens firewall (UFW/firewalld) til kun at give godkendte IP-adresser adgang til databaseporte (f.eks. 5432 for PostgreSQL og 3306 for MySQL).
  • Regelmæssige revisioner: Gennemgå jævnligt databaselogge og adgangskonfigurationer.
  • Hold softwaren opdateret: Installer straks sikkerhedsrettelser til databaseserveren og operativsystemet.

Test din viden

Hvilke af følgende metoder er gyldige til at forbedre sikkerheden for databaseforbindelser?

Opsummering: Beskyt dine data

I denne lektion gennemgik vi vigtige teknikker til sikring af dine databaseforbindelser:

  • SSL/TLS: Krypterer data under transport og sikrer fortrolighed og integritet. Vi så, hvordan det aktiveres i PostgreSQL og MySQL, og hvordan klienter opretter sikre forbindelser.
  • IP-begrænsninger: Begrænser, hvem der kan oprette forbindelse til din database, baseret på netværksadressen, ved hjælp af pg_hba.conf i PostgreSQL og GRANT-sætninger i MySQL.
  • Bedste fremgangsmåder: Vi gennemgik også generelle sikkerhedsråd som brug af stærke adgangskoder og regelmæssige revisioner.

Ved at implementere disse tiltag reducerer du betydeligt risikoen for uautoriseret adgang og databrud.

Gratis at komme i gang

Lær Udrulning af Linux-servere og SSH på ekspertniveau med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
12
Lektioner
48

Ofte stillede spørgsmål

Er lektionen “Sikring af databaseforbindelser” gratis?

Ja — alle 3 lektioner i læringssporet Udrulning af Linux-servere og SSH på ekspertniveau, inklusive “Sikring af databaseforbindelser”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Udrulning af Linux-servere og SSH på ekspertniveau-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Sikring af databaseforbindelser”?

Konfigurér sikre forbindelser til databasen ved hjælp af SSL/TLS, og begræns adgangen baseret på IP-adresser for øget sikkerhed. Du øver dig i Udrulning af Linux-servere og SSH på ekspertniveau med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Udrulning af Linux-servere og SSH på ekspertniveau?

Der kræves ingen tidligere erfaring. Udrulning af Linux-servere og SSH på ekspertniveau på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 3 af 4.

Hvor lang tid tager lektionen “Sikring af databaseforbindelser”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Udrulning af Linux-servere og SSH på ekspertniveau-lektion?

Ja. Alle Udrulning af Linux-servere og SSH på ekspertniveau-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Installation af PostgreSQL/MySQL
  2. Databasebrugere og adgangskontrol
  3. Sikring af databaseforbindelser
  4. Strategier til sikkerhedskopiering og gendannelse af databaser
← Tilbage til Udrulning af Linux-servere og SSH på ekspertniveau