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.
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.confeller MySQLsGRANT-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,peerosv.
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.confi PostgreSQL ogGRANT-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.
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
- Installation af PostgreSQL/MySQL
- Databasebrugere og adgangskontrol
- Sikring af databaseforbindelser
- Strategier til sikkerhedskopiering og gendannelse af databaser