Avatar billede BacceDK Juniormester
06. juli 2002 - 12:01 Der er 36 kommentarer og
1 løsning

php safemode vil ikke gå i "on"

Hejsa all
Jeg har en apache kørende med php & MySQL.
Min php har p.t sat safemode = off, meen da det ikke er serligt sikkert vil jeg gerne have den slået til.
Jeg gik ind i php.ini og satte den til on og genstartede, meeen når jeg så udfører komandoen phpinfo(); skriver den at den stadig er på off, why det ?? og hvordan skal man ellers gøre ???
Avatar billede dank Nybegynder
06. juli 2002 - 13:41 #1
lyder mærkeligt? Er du sikker på at det er den rigtige php.ini fil du har rettet? (jeg ved godt at det måske lyder dumt, men man ved jo aldrig :)

Iøvrigt er det måske også en idé at sætte exec_dir, basedir og doc_root når du nu roder med sikkerhed :) Hvis du sætter disse, kan du så se det med phpinfo(); ??? Eller i det hele taget andre rettelser i php.info ?
Avatar billede BacceDK Juniormester
06. juli 2002 - 13:44 #2
jeg retter i den fil der ligger i /usr/local/apache/conf/php.ini
det skulle vist gerne være den rigtige.
hvad skal exec_dir, basedir og doc_root stilles til og hvad gør de ??
Avatar billede dank Nybegynder
06. juli 2002 - 17:11 #3
Nu ved jeg ikke hvilken disti du benytter. Men det kan udemærket være der.

prøv evt.

find / -name php.ini

og se om den skulle ligge andre steder.

mht til de andre så er det en lidt længere historie :-) Kig evt her: http://www.onlamp.com/pub/a/php/2001/03/29/php_admin.html Der er en god forklaring :)
Avatar billede BacceDK Juniormester
07. juli 2002 - 12:23 #4
hmmm den eneste der står skrevet i den artikkel er doc_root
der står ikke skrevet noget om de 2 andre
og min dist er RH 7.2
Avatar billede BacceDK Juniormester
07. juli 2002 - 12:47 #5
hmm fatter det bare ikke....!
jeg har nu sat safe_mode=On, doc_root = /usr/local/apache usr_dir=/home/www
og intet af det er sat til i følge php.ini
og nej det er den eneste php.ini jeg har
der ligger godt nok en inde i en test mappe i de udpakkede filer som var i installationen meen den er tom såå det kan ikke være den :-))
Avatar billede BacceDK Juniormester
07. juli 2002 - 13:30 #6
hmm ok fandt grunden til at det ikke virkede var at php ledte efter sin inifil i /usr/local/lib og der var bare slet ingen ini fil...!
nu har jeg kopieret filen dertil og safemode står i on :-))
meen så kommer næste spørgsmål....!
var det så ikke meningen at ompalte script ikke skulle virke ???
altså det fra artiklen du linkede til ???
for det virker nemlig stadig selvom php_safe_node er sat til on ??
Avatar billede dank Nybegynder
07. juli 2002 - 15:48 #7
typisk fejl at det er den forkerte php.ini - det var derfor jeg mente at der evt. lå 2 forskellige at flød :-)

"var det så ikke meningen at ompalte script ikke skulle virke ???
altså det fra artiklen du linkede til ???for det virker nemlig stadig selvom php_safe_node er sat til on ?? "

Open_basedir skal sættes

jeg kan ikke lige huske hvad det er for script du omtaler og jeg kan ikke komme ind på den side lige nu. men hvis det er et script der "browser" rundt på serveren, så vil det virke hvis

1: Open_basedir ikke er sat
2: Scriptet er ejet af samme ejer som f.eks. ejer dine konfigfiler.

Så alt i alt så drejer det sig om at sikre dine brugere ikke har mulighed for at execute shell kommandoer med mindre det er i den sti der er angivet i php.ini - selv benytter jeg /root fordi det i forvejen er bedst sikret mappe.

Derefter skal du søge for at alle fil operationer udenfor base_dir er ulovlige. f.eks. /var/www/ - afhøngig af din konfiguration

Sidst skal du når du tester huske at dit script skal være ejet af en "bruger" og ikke root
Derefter skal du sørge for at dine brugere der ejer scripts ikke er
Avatar billede BacceDK Juniormester
07. juli 2002 - 16:53 #8
Open_basedir, hvad skal den sættes til ???
stedet hvor php filerne ligger ?? altså der hvor sidderne vises.

"Derefter skal du søge for at alle fil operationer udenfor base_dir er ulovlige. f.eks. /var/www/ - afhøngig af din konfiguration"

hvorn gøres det så ???
Avatar billede BacceDK Juniormester
07. juli 2002 - 16:54 #9
p.s INGEN scripts på serveren ejes af root, jeg godt at det kan lave puha i maskineriet
Avatar billede dank Nybegynder
07. juli 2002 - 17:46 #10
open_basedir skal sættes til den sti som er "roden" af dine httpdocs - det er jo forskelligt for hver maskine.. på min er det f.eks.

/var/www/

Men det kan være hvor som helst.. det betyder bare at fil operationer er ulovlige udenfor denne sti.. det vil sige at hvis du har et script der læser indholdet af en mappe, så kan scriptet ikke gå "højere" op end ovenstående sti.
Avatar billede BacceDK Juniormester
07. juli 2002 - 17:53 #11
ok ok det er oxo done nu, min er /home/www
meen det hjælper stadig ikke på scriptet...!
jeg kan stadig logge alle de andre mapper der er rundt omkring på serveren, hvilket jo ikke burde være muligt
Avatar billede BacceDK Juniormester
07. juli 2002 - 17:54 #12
hvis det er til hjælp
kan du se scriptet udføres her http://www.bacce.dk/helloo.php
og min phpinfo(); her http://www.bacce.dk/info.php
Avatar billede dank Nybegynder
07. juli 2002 - 18:01 #13
hvad er det nu din email er? Så sender jeg et script der er bedre til at teste dette med!
Avatar billede dank Nybegynder
07. juli 2002 - 18:02 #14
har du husket et restarter httpd?
Avatar billede BacceDK Juniormester
07. juli 2002 - 18:03 #15
ja ja restarter http hver gang jeg retter et eller andet sted
admin@bacce.dk
Avatar billede dank Nybegynder
07. juli 2002 - 18:11 #16
p.s. virker din mail(); funktion? har intet at gøre med dette spørgsmål.. undrede mig bare lidt over din phpinfo
Avatar billede BacceDK Juniormester
07. juli 2002 - 18:25 #17
yes yes mail virker, why ???
du kan se scriptet selv på www.bacce.dk/foo.php
meen den giver nogle fejl ud
Avatar billede dank Nybegynder
07. juli 2002 - 18:29 #18
hmm... slet lige scriptet asap!!!! og lig det i en anden mappe og post ikke url her :-)

Men prøv at skrive "/" i prompten eller /etc

Så vil du se en open_basedir fejl..

hvis du fjerner openbase så vil du kunne se indholdet af hele serveren.

2: efter du har fjernet open_base så kig i /etc/ så vil du nok ikke kunne se f.eks. httpd.conf

men hvis du fjerner safe_mode så vil du kunne se alle filer uanset owner..
Avatar billede dank Nybegynder
07. juli 2002 - 18:30 #19
Warning: open_basedir restriction in effect. File is in wrong directory ....

kommer i mapper der ligger udenfor /home/www

hvis du fjerner basedir så vil du kunne se alle mapper + filer på serveren..
Avatar billede dank Nybegynder
07. juli 2002 - 18:30 #20
så det virker.. ser det ud til
Avatar billede BacceDK Juniormester
07. juli 2002 - 18:32 #21
har fjernet den igen
den kan jo bruges til at finde pass til ALT
nej jeg får sku ikke nogen fejl når jeg skriver ../
jeg kan finde ALT der ligger inden for /home/www mappen
Avatar billede BacceDK Juniormester
07. juli 2002 - 18:33 #22
safe_mode skulle gøre sådan at man ikke kan se filer førn den aktuelle mappe og det kan man da stadig
Avatar billede dank Nybegynder
07. juli 2002 - 18:35 #23
Ja! Det er jo det der er hele humlen. Rent terror script :-)

*uden* basedir: Du kan se ALT på hele serveren
*med* basedir: Du kan se ALT på serveren indenfor f.eks. /home/www

Forstår du hvad basedir bruges til nu?

Du kan ikke undgå at de brugere og scripts der indenfor base_dir kan se hvilke filer og mapper de andre har. Derimod kan du undgå at de kan se *selve* filerne ved at have safe_mode=on og køre dem som forskellige brugere.
Avatar billede dank Nybegynder
07. juli 2002 - 18:37 #24
"safe_mode skulle gøre sådan at man ikke kan se filer førn den aktuelle mappe og det kan man da stadig "....

??? jeg tror du har misforstået. Safe_mode gør at bruger 1 ikke kan se filer der tilhører bruger 2 - men du kan ikke forhindre at bruger 1 kan se hvilker filer bruger 2 har.

= man kan stort set altid se hvilke filer de andre har (altså liste dem) men med safe=*off* kan man sågar også se selve koden
Avatar billede BacceDK Juniormester
07. juli 2002 - 18:39 #25
ja men jeg kan sku også se koderne på php dokumenterne i de andre mapper
det var jo derfor jeg skyndte at fjerne den igen :-))
Avatar billede dank Nybegynder
07. juli 2002 - 18:40 #26
men sikkert kun fordi de havde samme bruger - ikke sandt!
Avatar billede dank Nybegynder
07. juli 2002 - 18:42 #27
mht til Qmail så ville jeg tro at sendmail path skulle være:

/var/qmail/bin/qmail-inject
eller
/var/qmail/bin/sendmail
Avatar billede dank Nybegynder
07. juli 2002 - 18:43 #28
prøv at ligge scriptet i anden mappe indenfor /home/www

og

chown test:test script1
chown test:test script2

og derefter kør det igen.. test nu om du kan se selve php koderne..

kodeordet er: brugere :)
Avatar billede dank Nybegynder
07. juli 2002 - 18:47 #29
men det virker i alle tilfælde hos dig. Kig evt også på google. søg efter +php +security så får du en masse gode link.. der beskriver exec_ base_dir og safe_mode

Skal gå nu for idag.. vi snakkes :-)
Avatar billede dank Nybegynder
08. juli 2002 - 11:36 #30
se evt også: http://www.php.net/manual/en/features.safe-mode.php

i brugerkommentarerne er der nogle glimrende ekspempler hvordan du sætter disse værdier pr virtual domain basis i httpd.conf med

php_admin_value

når du kører phpinfo vil du se 2 rækker, hhv. local og master value..

Master value er de værdier der står i php.ini og local er dem du sætter via php_admin_value i httpd.conf :-)
Avatar billede BacceDK Juniormester
08. juli 2002 - 12:03 #31
okey :-))
det var egentlig skide smart :-))
det har jeg herved benyttet mig at i stedet :-))
jeg hoster nemlig en site som er temmelig ked af at skulle have safe_mode på on for der ville komme bøvl med koderne i safemode som nu ikke behøver blive rettet...!

det som nok bare er mit største problem, er at alle filer på selve webserveren har samme bruger og gruppe, og kan ikke rigtig se hvorn det skal laves om ???
alle filer er i bruger proftpd
Avatar billede dank Nybegynder
08. juli 2002 - 12:16 #32
ja det er noget rod :-) Jeg har tidligere benyttet prodtpd til 300+ ftp konti på min server.. denne har jeg nu udskiftet til pure-ftpd.org med SQL

Så har jeg ikke de problemer længere, idet at uid:gid bliver sat alt efter hvad der står i SQL delen..

pure-ftpd er også forholdsvis nem at sætte op og der er mulighed for "bandwith throttling" per user level eller global

mht til din sendmail så ville jeg tro at der i php.ini skulle stå /var/qmail/bin/qmail-inject - undrer mig lidt over din config virker :)
Avatar billede dank Nybegynder
08. juli 2002 - 12:18 #33
ellers kan du jo benytte chown

f.eks

chown root:root filnavn

til at sætte bruger/gruppe, men det er ikke så smart en løsning i det her tilfælde.. ville være bedre hvis det virkede aut.
Avatar billede BacceDK Juniormester
08. juli 2002 - 12:27 #34
ja det er netop det :-))
altså senere kan jeg godt gøre det aut da alt upload / redigering skal ske via web interfase, og der kan jeg sagtens lave en chown, meen der er problemet så at hvis jeg fek.s laver en chown test:test filnavn
får jeg bare den melding at user test ikke eksisterer, og så kommer vi jo lige vidt
Avatar billede BacceDK Juniormester
08. juli 2002 - 12:32 #35
den der afdelign med sendmail, det er slet ikke noget jeg har rettet, det har php sku selv sat under installation. og jo det virker skam finno :-))
du kan eventuelt oprette en profil på min forum http://www.bacce.dk/forum
den sender nemlig en email ud efter end registrering.
meen før jeg fil flyttet min php ini til det rigtige sted var den skrevet ud til sendmail patchen og det virkede også :-))
Avatar billede dank Nybegynder
08. juli 2002 - 12:42 #36
jeg tror nok man kan f.eks.

chmod 99999:99999 test.fil

Det er kun hvis du skriver et "navn" den siger user not found.. så vidt jeg husker :-)
Avatar billede BacceDK Juniormester
09. juli 2002 - 14:48 #37
tror vist det er på tide at lukke dette spm her
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester