PDA

Bekijk Volledige Versie : toegang tot phpmyadmin beveiligen



Derek-Jan
12/02/10, 22:15
Zoals jullie wellicht in een ander topic gelezen hebben is er bij mij een database gekopieerd.

Men had toegang tot de ftp (via de inlog van een medewerker) en heeft zo in de config de database gegevens uit kunnen lezen. Met deze gegevens heeft men zich toegang verschaft tot de phpmyadmin.

Nu is het blijkbaar heel simpel om in de phpmyadmin te komen : www.mijndomein.com/phpmyadmin gebruikersnaam+wachtwoord en binnen...

Hoe kan ik dit nu voorkomen? Is er ergens een instelling dat ik bv alleen via het cp kan inloggen ? Zou een hoop ellende kunnen besparen.

Ik werk met DA en heb een eigen (managed)server.

Triloxigen
12/02/10, 22:18
Niet, als ze ze ftp hebben hebben ze ook wel je wachtwoord van je database.
Dus kunnen ze zelf ook wel phpmyadmin uploaden of makkelijkere database dump tooltjes..

Derek-Jan
12/02/10, 22:39
Is er dan een manier om de config bestanden onleesbaar te maken voor buitenstanders?

martinvandebelt
12/02/10, 22:54
Dan maak je zo ook onleesbaar voor jezelf.

Je moet gewoon je wachtwoorden zo min mogelijk door geven, en deze regelmatig veranderen als derden hier ook toegang tot hebben.

SF-Jeroen
12/02/10, 22:55
Je kan d.m.v. paketten als IonCube of SourceGuardian je php code versleutelen, maar 100% veilig is het niet. Wat je ook kan doen is mysql-gebruikers aanmaken die niet alle rechten hebben, bijvoorbeeld geen drop rechten, maar ook specifiekere lees/schrijf bevoegdheden per tabel of kolom. Als iemand dan toegang heeft kan hij niet teveel schade aanrichten.

fywht
12/02/10, 22:57
Je zou Zend guard (http://www.zend.com/en/products/guard/) kunnen gebruiken om configuratie bestanden te versleutelen.

Toegang tot phpMyAdmin zou je kunnen geven voor bepaalde adressen via .htacess.

Voorbeeld:



order allow,deny
allow from 10.x.x.x
allow from 82.x.x.x
allow from 222.222.222.222


Het is alsnog mogelijk om schade aan te richten met inloggegevens voor FTP, je kunt veiligere wachtwoorden gebruiken en een beleid instellen voor wachtwoorden (bijv. een nieuw wachtwoord per x maanden).

SF-Jeroen
12/02/10, 22:58
Dat gaat niet werken? Lijkt me dat als iemand FTP toegang heeft ook de htaccess kan veranderen, daarnaast heb je ook nog Navicat enzovoort, dus phpmyadmin beschermen heeft weinig zin.

FTP beschermen daarentegen lijkt me al een betere optie, dat limiteren tot enkele IP's is wel mogelijk lijkt me, beetje mee klooien in iptables.

marsipulami
12/02/10, 23:15
Mijn vraag die me dan te binnen schiet, hoe gevaarlijk is het dat een klant DROP kan uitvoeren. Daar kan hij, lijkt mij, toch maximaal zijn eigen database mee verzieken, of ook die van andere gebruikers? of zie ik dat verkeerd

SF-Jeroen
12/02/10, 23:19
Mijn vraag die me dan te binnen schiet, hoe gevaarlijk is het dat een klant DROP kan uitvoeren. Daar kan hij, lijkt mij, toch maximaal zijn eigen database mee verzieken, of ook die van andere gebruikers? of zie ik dat verkeerd

Ging toch niet om een klant, maar om een kwaadwillend persoon (zie topic)?

fywht
12/02/10, 23:21
Mijn vraag die me dan te binnen schiet, hoe gevaarlijk is het dat een klant DROP kan uitvoeren. Daar kan hij, lijkt mij, toch maximaal zijn eigen database mee verzieken, of ook die van andere gebruikers? of zie ik dat verkeerd

Als de rechten goed staan kan alleen zijn eigen database verwijderd worden. Daarnaast kun je bijv. met MySQL ook bestanden wegschrijven. Je zou met FTP gegevens + php + shared hosting zelfs mappen en configuratie bestanden van andere gebruikers kunnen weergeven.

Moc
13/02/10, 00:19
Je zou Zend guard (http://www.zend.com/en/products/guard/) kunnen gebruiken om configuratie bestanden te versleutelen.


Dan kun je nog veel beter Ioncube gebruiken. Beide zijn niet waterdicht, maar voor de Zend encrypter zijn er vele decoders (die er, dan wel of niet, met talloze syntax errors uitkomen, wat in het geval van inlog gegevens aflezen niets uit maakt).

Verder is er, naar mijn weten, niet een gemakkelijke mogelijkheid om phpmyadmin te beveiligen zonder je eigen gebruik en het gebruik van anderen zeer te beperken. Het beste, wat hierboven al meerdere malen is gesuggereerd, is om een soort beleid in te stellen m.b.t. FTP wachtwoorden (om de x tijd veranderen, aantal mensen met het wachtwoord limiteren, "niet makkelijk te raden" passworden etc.)

Triloxigen
13/02/10, 10:46
Is er dan een manier om de config bestanden onleesbaar te maken voor buitenstanders?

Ja, de FTP toegang niet aan andere geven ;)

Triloxigen
13/02/10, 10:48
Je kan d.m.v. paketten als IonCube of SourceGuardian je php code versleutelen, maar 100% veilig is het niet. Wat je ook kan doen is mysql-gebruikers aanmaken die niet alle rechten hebben, bijvoorbeeld geen drop rechten, maar ook specifiekere lees/schrijf bevoegdheden per tabel of kolom. Als iemand dan toegang heeft kan hij niet teveel schade aanrichten.

het lost het probleem niet op, je echo'ed gewoon alle variablen en dan heb je 99% kans dat je het wachtwoord hebt.
(niet iedereen stopt de wachtwoorden in vars)

thagamer2
13/02/10, 17:16
niet een mogelijkheid om phpmyadmin chmod 770 te doen?
kunnen mense niet de config uitlezen via ftp

Triloxigen
13/02/10, 17:21
niet een mogelijkheid om phpmyadmin chmod 770 te doen?
kunnen mense niet de config uitlezen via ftp

dan include je de config toch en echo je de vars toch...

Maar in phpmyadmin hoor je ook helemaal geen inlog gegevens te zetten... Authenticatie moet je gewoon door mysql laten doen,

Derek-Jan
14/02/10, 15:56
Ja, de FTP toegang niet aan andere geven

Dit is geen optie, aangezien er anderen aan de site werken. Iedereen heeft wel een eigen ftp login.


Maar in phpmyadmin hoor je ook helemaal geen inlog gegevens te zetten... Authenticatie moet je gewoon door mysql laten doen,

Misschien heb ik het verkeerd uitgelegd? Ze hebben de site via ftp gedownload, dus ook het bestand config.php waarin de toegangscodes voor de database staan. Met die gegevens hebben ze via wwwmijndomeincom/phpmyadmin gewoon een kopie van de database gemaakt.

Nu kan ik wel verschillende gebruikers aanmaken met verschillende rechten maar daarmee voorkom je bovenstaand toch niet mee ?

Triloxigen
14/02/10, 16:34
Er valt weinig te beveiligen als je andere volledig toegang geeft, ik denk dat het daar vrijwel al mee ophoud.

Ahmed
14/02/10, 18:00
zorg dat de andere mensen werken in hun eigen ftp-map. Dat ze daar alleen toegang tot hebben. Wijzigingen dienen dan altijd via jou te gebeuren. Is wel het veiligst...

ICTRecht
15/02/10, 07:45
Misschien een hele stomme vraag hoor, maar waarom gebruiken zo veel hosters eigenlijk alleen ftp en niet iets veiligs zoals ssh/scp? (Ik zat eens bij een hoster die om veiligheidsredenen ssh had uitgeschakeld.)

t.bloo
15/02/10, 20:54
maar waarom gebruiken zo veel hosters eigenlijk alleen ftp en niet iets veiligs zoals ssh/scp?

De standaard FTP (http://tools.ietf.org/html/rfc959) is inderdaad zwaar verouderd. Passwords komen in cleartext voorbij, dat is echt niet meer van deze tijd. Beter is om gebruik te maken van FTPS (http://tools.ietf.org/html/rfc4217) of SFTP (http://tools.ietf.org/html/draft-ietf-secsh-filexfer-13).

Een fatsoenlijke hoster geeft FTPS toegang voor z'n klanten. Hierbij is het inloggen en de dataverkeer beveiligd met TLS of SSL. Net zoals bij HTTPS dus, maar dan meestal zonder de certificaten. Het installeren van de TLS module is simpel, er is eigenlijk geen reden om dit niet te doen.

SFTP is een nieuwer en beter protocol dan FTPS, maar gebruikt SSH voor de versleuteling en de toegangscontrole. Je moet daarom een user zijn op het systeem. Dat is niet zo handig voor een shared server, want je geeft de user hiermee standaard allerlei rechten op die server die niets met SFTP te maken hebben. Je kunt dat oplossen met een jailed shell, maar dat is vrij bewerkelijk.