Beste,
Ik ben bezig met het opzetten van een server (Ubuntu server) waarop een MySQL database zal draaien. Deze zal over het internet beschikbaar zijn. Dit omdat ik een programma in C# ga schrijven die de gegevens naar de database moet kunnen schrijven en lezen. Het C# programma moet buiten het netwerk ook aan de database kunnen daarom zal ik de MySQL server via port forwarding naar buiten brengen. Als eerste beveiliging dacht ik er dan ook aan om niet de standaard poort van MySQL te gebruiken maar zelf een poort te kiezen (verbeter me als ik fout moest zijn). Ook zal ik de MySQL verbinding over SSH laten gaan. Er is nog wel een nadeel verbonden met het verbinden naar de server over het internet. De aansluiting die ik heb heeft geen statisch IP adres maar daar heb ik ondertussen wel een oplossing voor gemaakt. Ik had al eens NO-IP gebruikt maar als het IP veranderd vind ik dat het wat lang duurt vooraleer de aanpassing is door gevoerd +- 5min. Ik heb nu zelf in Python een scriptje gemaakt waarbij ik steeds het publieke IP adres ga controleren. Als dit is veranderd upload ik het nieuwe IP adres naar een SFTP server die ik heb en deze is wel altijd beschikbaar (voor er vragen komen deze SFTP server heeft maar een beperkte opslag ruimt waardoor ik deze niet over heel het project gebruik). Dus als ik het C# programma start ga ik het publieke IP adres controleren dat op de SFTP server staat. Dit doe ik ook als er geen verbinding met de server kan worden gemaakt. Enkel zit ik hier nog wat met veiligheidsproblemen. Om te kunnen verbinden naar de SFTP server moet ik een gebruikersnaam en paswoord opgeven in de Python code maar deze paswoorden staan gewoon in plain tekst in de code. Dus als er nu iemand inbreekt in mijn server kan hij door de Python code te openen ook achter mijn gebruikersnaam en paswoord van de SFTP server komen zonder al te veel moeite te doen. Ik dacht al ik compileer deze code naar een pyc code maar helaas blijven de paswoorden nog steeds zichtbaar. Wat ik dan nog als enigste oplossing zie is dat ik de paswoorden lokaal encrypteer en dan het geëncrypteerde paswoord in de code op geef en dus zal het paswoord niet meer in plain tekst in de code staan. In de code zal dan het paswoord terug moeten gedecodeerd worden. Ook zal ik dan nog steeds de code moeten compileren naar een pyc extensie want anders kan de inbreker gewoon zien hoe ik het paswoord decodeer en kan hij dit ook gewoon doen. Dit heeft als gevolg heeft dat hij het paswoord nog snel te weten komt. Laat maar weten of mijn gedachten gang goed of slecht zit en wat ik het beste kan doen om het zo veilig als mogelijk te maken.
Nu kom ik terecht op de gebruikers. Ik heb nu enkel Ubuntu server geïnstalleerd (momenteel VirtualBox) dus ik heb nog maar enkel een root account. Nu dacht ik om de Python code op dit account te laten werken en voor de MySQL service een ander account aan te maken. Dus voor aan de Python code te geraken moet men dan het root paswoord kraken. Maar ik vraag me af hoe veilig is het root paswoord want eens men dit heeft kan men aan alles aan. Of doe ik dit beter op een andere manier?
Ik hoop dat het een beetje duidelijk is want het zit wel in mijn hoofd maar het is moeilijk te verwoorden
Dus als er nog vragen zijn hoor ik het graag!
Bram
Ik ben bezig met het opzetten van een server (Ubuntu server) waarop een MySQL database zal draaien. Deze zal over het internet beschikbaar zijn. Dit omdat ik een programma in C# ga schrijven die de gegevens naar de database moet kunnen schrijven en lezen. Het C# programma moet buiten het netwerk ook aan de database kunnen daarom zal ik de MySQL server via port forwarding naar buiten brengen. Als eerste beveiliging dacht ik er dan ook aan om niet de standaard poort van MySQL te gebruiken maar zelf een poort te kiezen (verbeter me als ik fout moest zijn). Ook zal ik de MySQL verbinding over SSH laten gaan. Er is nog wel een nadeel verbonden met het verbinden naar de server over het internet. De aansluiting die ik heb heeft geen statisch IP adres maar daar heb ik ondertussen wel een oplossing voor gemaakt. Ik had al eens NO-IP gebruikt maar als het IP veranderd vind ik dat het wat lang duurt vooraleer de aanpassing is door gevoerd +- 5min. Ik heb nu zelf in Python een scriptje gemaakt waarbij ik steeds het publieke IP adres ga controleren. Als dit is veranderd upload ik het nieuwe IP adres naar een SFTP server die ik heb en deze is wel altijd beschikbaar (voor er vragen komen deze SFTP server heeft maar een beperkte opslag ruimt waardoor ik deze niet over heel het project gebruik). Dus als ik het C# programma start ga ik het publieke IP adres controleren dat op de SFTP server staat. Dit doe ik ook als er geen verbinding met de server kan worden gemaakt. Enkel zit ik hier nog wat met veiligheidsproblemen. Om te kunnen verbinden naar de SFTP server moet ik een gebruikersnaam en paswoord opgeven in de Python code maar deze paswoorden staan gewoon in plain tekst in de code. Dus als er nu iemand inbreekt in mijn server kan hij door de Python code te openen ook achter mijn gebruikersnaam en paswoord van de SFTP server komen zonder al te veel moeite te doen. Ik dacht al ik compileer deze code naar een pyc code maar helaas blijven de paswoorden nog steeds zichtbaar. Wat ik dan nog als enigste oplossing zie is dat ik de paswoorden lokaal encrypteer en dan het geëncrypteerde paswoord in de code op geef en dus zal het paswoord niet meer in plain tekst in de code staan. In de code zal dan het paswoord terug moeten gedecodeerd worden. Ook zal ik dan nog steeds de code moeten compileren naar een pyc extensie want anders kan de inbreker gewoon zien hoe ik het paswoord decodeer en kan hij dit ook gewoon doen. Dit heeft als gevolg heeft dat hij het paswoord nog snel te weten komt. Laat maar weten of mijn gedachten gang goed of slecht zit en wat ik het beste kan doen om het zo veilig als mogelijk te maken.
Nu kom ik terecht op de gebruikers. Ik heb nu enkel Ubuntu server geïnstalleerd (momenteel VirtualBox) dus ik heb nog maar enkel een root account. Nu dacht ik om de Python code op dit account te laten werken en voor de MySQL service een ander account aan te maken. Dus voor aan de Python code te geraken moet men dan het root paswoord kraken. Maar ik vraag me af hoe veilig is het root paswoord want eens men dit heeft kan men aan alles aan. Of doe ik dit beter op een andere manier?
Ik hoop dat het een beetje duidelijk is want het zit wel in mijn hoofd maar het is moeilijk te verwoorden
Dus als er nog vragen zijn hoor ik het graag!
Bram