Teemme tietokantayhteyksistä turvallisempia

Zone Blogi
Jaa:

Kuten tiedät, SQL-tietokantojen käyttäjät saavat oletusarvoisesti luoda yhteyden vain paikallisesti, mikä varmistaa, että tiedot eivät siirry vieraiden verkkojen kautta. Myös Zonessa tiedot siirtyvät oletusarvoisesti tietokanta- ja web-palvelimen välisen intranetin kautta, joten ne eivät voi mitenkään ”karata”. Jos käyttäjä kuitenkin haluaa luoda yhteyden SQL-tietokantaan ulkopuolelta käsin, hänen kannattaa aktivoida TLS-protokolla, joka mahdollistaa suojatun yhteyden ja salaa kaiken asiakassovelluksen ja tietokantapalvelimen välisen tietoliikenteen.

Zonen asiakkailla on jo pitkään ollut mahdollisuus konfiguroida sovelluksensa käyttämään suojattua TLS-yhteyttä. Koska tietokannat sisältävät yleensä sellaista tietoa, jota ei saa vuotaa, mukaan lukien paljon arkaluonteisia henkilötietoja, näiden tietojen käsittelyn turvallisuuteen on kiinnitettävä erityistä huomiota. Siksi Zonessa voi nyt myös tehdä salatun yhteyden ehdon käyttäjille pakolliseksi. Jäljempänä kerromme siitä lisää.

Miksi tarvitsisin salatun SQL-yhteyden?

Turvallista TLS-yhteyttä tulee käyttää pääsääntöisesti ulkoisiin yhteyksiin, erityisesti tilanteissa, joissa sovellus sijaitsee Zonen järjestelmän ulkopuolella. Esimerkiksi silloin, kun SQL-palvelimeen on liitetty jokin ulkoinen palvelu, joka sijaitsee muun palveluntarjoajan pilvessä. Tällaisessa tilanteessa saattaa riittää, että sovelluksen ylläpitäjä tietää, että SSL-yhteys tulee konfiguroida ennakkoon. Tällaisten ulkoisten yhteyksien tapauksessa syntyy kuitenkin tilanteita, joissa kertakäyttöinen konfigurointi ei takaa turvallista yhteyttä.

Tällaisissa tapauksissa on oltava erityisen tarkkaavainen, varsinkin kun pääsy on myönnetty jollekin sellaiselle käyttäjälle, joka luo yhteyden tietokantaan ns. työpöytäsovelluksella. Esimerkiksi kehittäjien keskuudessa yleisellä Sequel Prolla tai hieman vähemmän tunnetulla Beekeeper Studiolla, jota käytettäessä tulee varmistaa etukäteen, että yhteys on salattu TLS-protokollalla. Mutta tietenkin voi syntyä tilanteita, joissa asia ei ole järjestelmäpäällikön hallinnassa. Juuri tämän poissulkemiseksi voimme nyt määrätä tietokannan käyttäjälle, että tietokantaan on pääsy vain TLS-yhteyksien kautta. Tätä varten on avattava tietokannan käyttäjähallinta ja asetettava siellä arvo ”Vaadi käyttäjältä TLS-yhteys

Miksi se silti tarvitaan? Joskus ohjelmisto tekee työnsä niin, että sen täytyy kysyä kehittäjältä kysymyksiä tyyliin ”Tarkistaisitko, mitä tälle tilaukselle tietokannassa tapahtuu?”. Nykyään yleistynyttä etätyötä tehdessään kehittäjä voi katsoa tietokantaa jossain kahvilassa ja sen julkisessa wifissä. Jos tällaisessa tilanteessa ei käytetä TLS-yhteyttä, voidaan varmasti sanoa, että tilauksiin liittyvät henkilötiedot ovat pääsääntöisesti kulkeneet kolmansien osapuolten käsissä.

Ulkoisten yhteyksien tapauksessa on myös kiinnitettävä huomiota siihen, että yhteystiet rajoittuvat ehdottomasti vain sallittuihin IP-osoitteisiin. Myös tämä tulee konfiguroida My Zone -hallintaliittymässä konkreettisen tietokannan käyttäjän asetuksissa. On tärkeää muistaa, että salattua yhteyttä voi käyttää TLS-protokollan versiosta 1.2 alkaen. Osoitamme kuitenkin huomiota siihen, että tämä voi olla esteenä vanhemmille sovelluksille ja tietokanta-asiakasohjelmille. Sen takia ne kannattaa mahdollisuuksien mukaan ajanmukaistaa.

TLS:n käyttö asiakassovelluksessa

Desktop– eli työpöytä-asiakkaille tulee yhteyttä konfiguroitaessa laittaa asianmukainen rasti oikeaan ruutuun. Palvelinsovelluksen konfigurointia varten esitämme kuitenkin alempana muutamia esimerkkejä.

WordPress-sovelluksen tapauksessa riittää, kun wp-config.php-tiedostoon lisätään yksi rivi:

define( 'MYSQL_CLIENT_FLAGS', MYSQLI_CLIENT_SSL );

PHP-komentosarjassa PDO-yhteyttä käytettäessä on määrättävä MYSQL_ATTR_SSL_CA arvo. Zonen palvelimella esimerkiksi:

try {
    $db = new PDO(
        'mysql:host=dXXX.mysql.zonevs.eu;dbname=$database;port=3306',
        '{database_username}',
        '{database_password}',
        [
            PDO::MYSQL_ATTR_SSL_CA => '/etc/ssl/zse/infernal/cacrt.d/MYSQL.ZONEVS.EU.crt'
        ]
    );
    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    echo "Connected successfully";
} catch (PDOException $error) {
    echo $error->getMessage();
}

Huom.! TLS 1.2 on tuettu PHP:n versiosta 7.2 alkaen!

Luodaksesi yhteyden MariaDB:tä käyttävän palvelimen komentoriviltä ​​sinun on käytettävä –ssl avainta

mysql -h dXXX.mysql.zonevs.eu -u {database_username} --ssl -p

Luodaksesi yhteyden MySQL 8.0 käyttävän palvelimen komentoriviltä ​​sinun on käytettävä –ssl-mode= avainta

mysql -h dXXX.mysql.zonevs.eu -u {database_username} --ssl-mode=REQUIRED -p

Edellä mainituista avaimista on hyötyä silloin, kun haluaa käyttää mysqldump-toimintoa, esimerkiksi silloin, kun haluaa tehdä MySQL-varmuuskopioita Zonen verkon ulkopuolelle.

Miten tarkastaisin, onko yhteys salattu?

Käyttömenetelmästä riippumatta voit tarkastaa SSL-yhteyden toimivuuden SQL-lauseella:

SHOW STATUS LIKE 'Ssl_cipher';

TLS-yhteyden tapauksessa Ssl_cipher arvona pitäisi olla esimerkiksi TLS_AES_256_GCM_SHA384. Jos tämä arvo on tyhjä, TLS-yhteyttä ei käytetä.

Suositut postaukset

Mikä pilvipalvelin on ja milloin sitä kannattaa käyttää?

Zone Blogi
Olemme tottuneet siihen, että yritysten tiedostoja ja muita tietoja tallennetaan fyysisille palvelimille, mutta yhä enemmän on jo niitä, jotka haluavat...

CloudFest 2024: tekoäly antaa uutta pontta laitteistolle

Ingmar Aasoja
Viime viikolla kolmihenkinen tiimimme nousi lentokoneeseen ja syöksyi taas CloudFestin kiehtovaan maailmaan tarkastelemaan hostingpalvelujen trendejä....

Vanhentunut PHP on vanhentunut PHP

Zone Blogi
Kun ensimmäisen moderni PHP-versio julkaistiin 25 vuotta sitten, internet oli hyvin toisenlainen kuin nyt. Verkkosivuja koskevat vaatimukset olivat vielä...

.EU-verkkotunnuksen ale päättyy! Käytä tilaisuutta ja rekisteröi yhden euron domain vielä tänään

Zone Blogi
Viime vuonna alkanut .EU-verkkotunnusten alennusmyynti saavuttaa loppunsa tammikuun lopussa. Tämän vuoksi suosittelemme kaikille hyödyntämään vielä...