|
Тема |
MySQL_Nikoga - Ili saveti ot lichen opit |
|
Автор |
salle (рЮЙЗБ) |
|
Публикувано | 10.04.01 14:40 |
|
|
1. Nikoga ama nikoga ne startiraite MySQL kato root - Logicata e dobre izvestna. S poslednite versii e trudno da go napravite.
2. Nikoga ne ostaviaite User na MySQL bez Parola - veski mozhe da napravi:
mysql -u tozi_user
I da poluchi pravata koito tozi_user ima.
2.1. Osobeno silno vazhi za mysql-root-user.
Logicata e ...
2.2. Druga seriozna opasnost. Vseki user s File_Priv mozhe da chete i pishe failove do koito Mysqld_user-a ima dostap.
Chesto prenebregvan fakt.
User s remote dostap do mysql mozhe da napravi
load data infile '/etc/passwd' into table temptbl;
i oshte po-nepriatnoto:
select * from temptbl into outfile '/usr/sbin/neshto_sus_777';
t.e. root-a triabva dosta da vnimava kade i kakvi tochno rw prava ima mysqld-usera
'/etc/passwd' edva li e nai-strashnia primer no pomisltete za /tmp /var/log /usr i t.n. interesni direktorii da ne govorim kolko neshta v /etc sa s 644 na VASHIA server.
3. Vnimavaite da ima svobodno prostranstvo v tmpdir na mysql. Tam se pishat temp tablicite
a dosta select-ove praviat takiva vkl i ne osobeno ochevidni. select * order by desc;
Ta ako se chudite zashto bi dava greshka 28 (not enough free space) pri polozhenie che v datadir ima 12 Gb - poglednete tmp
4. Neshto mnogo seriozno.
mysqld -Sg (--skip-grant-tables)
Nalaga se poniakoga - zabravena root parola nai-chesto.
Vinagi puskaite
safe_mysqld --skip-grant-tables --skip-networking
Tova go niama v dokumentaciata, no horata ot
mysql na koito sam go kazval sa saglasni s men che e dobre da e taka po default.
V dokumentaciata: This gives everyone full access to all databases!
Niama logika v momenta kogato pravite takova neshto mysqld da slusha na port 3306.
V mnogo sluchai mysql se iszpolzva samo ot localhost - tipichen primer: apache + mysql na edno PC.
Stranno, no mnogo hora se oburkvat. Apache se iaviava http_user@localhost i ot remote dostap niama nuzhda.
Pomislete dali izobshto iskate remote dostap i dali de ne izpolzvate --skip-networking po default.
5. Nikoga ne zabraviaite che vseki user dori samo sas SELECT prava za 1 tablica mozhe da vi napravi DoS ataka. Dostatachno e:
select * from tablica_okolo_1Gb order by ..;
Po-loshoto e che mozhe da go napravi po nevnimanie ili nekadurnost.
Taka che davaneto na remote dostap do mysql server ne e mnogo po-razlichno ot davaneto na shell. Imam predvid doverieto koeto imate na user-a
Uspeh. I se nadiavam da sam kazal neshto polezno.
Linux is like a wigwam - No Windows, No Gates, Apache inside
|
| |
|
|
|