Bekijk Volledige Versie : adres/~username
Beste WHT gebruikers,
Weet iemand hoe ik ip adres/~username kan uitschakelen.
Met vriendelijke groet,
Angiligo
En over welk OS + controlepaneel hebben we het dan?
En over welk OS + controlepaneel hebben we het dan?
Centos en DirectAdmin.
Met vriendelijke groeten,
Angiligo
marsipulami
05/12/09, 12:43
je zou SuPHP kunnen installeren....
je zou SuPHP kunnen installeren....
Dat zou kunnen.
Maar is dat de enige oplossing?
Er zijn nogal veel verschillende discussies over SuPHP PHP CGI.
Met vriendelijke groeten,
Angiligo
marsipulami
05/12/09, 12:55
ik weet niet zeker of het gaat werken maar je kan natuurlijk ook zorgen dat op die map geen rechten zitten voor "all" door middel van chmod
ik weet niet zeker of het gaat werken maar je kan natuurlijk ook zorgen dat op die map geen rechten zitten voor "all" door middel van chmod
Oke ik zal dat eens gaan uitproberen.
Anders zat ik te denken aan mod_ruid in plek van SuPHP.
Met vriendelijke groeten,
Angiligo
Angiligo:
Pas /etc/httpd/conf/ips.conf aan.
Voorbeeld:
Van:
NameVirtualHost 1.2.3.4:80
NameVirtualHost 1.2.3.4:443
<VirtualHost 1.2.3.4:80>
ServerName shared.domain
ScriptAliasMatch ^/~([^/]+)/+cgi-bin/+(.*) /home/$1/public_html/cgi-bin/$2
AliasMatch ^/~([^/]+)(/.*)* /home/$1/public_html$2
DocumentRoot /home/user/domains/sharedip
SuexecUserGroup user user
CustomLog /var/log/httpd/homedir.log homedir
</VirtualHost>
<VirtualHost 1.2.3.4:443>
SSLEngine on
SSLCertificateFile /etc/httpd/conf/ssl.crt/server.crt
SSLCertificateKeyFile /etc/httpd/conf/ssl.key/server.key
ServerName shared.domain
ScriptAliasMatch ^/~([^/]+)/+cgi-bin/+(.*) /home/$1/public_html/cgi-bin/$2
AliasMatch ^/~([^/]+)(/.*)* /home/$1/public_html$2
DocumentRoot /home/user/domains/sharedip
SuexecUserGroup user user
CustomLog /var/log/httpd/homedir.log homedir
</VirtualHost>
Naar:
NameVirtualHost 1.2.3.4:80
NameVirtualHost 1.2.3.4:443
<VirtualHost 1.2.3.4:80>
ServerName shared.domain
DocumentRoot /home/user/domains/sharedip
SuexecUserGroup user user
CustomLog /var/log/httpd/homedir.log homedir
</VirtualHost>
<VirtualHost 1.2.3.4:443>
SSLEngine on
SSLCertificateFile /etc/httpd/conf/ssl.crt/server.crt
SSLCertificateKeyFile /etc/httpd/conf/ssl.key/server.key
ServerName shared.domain
DocumentRoot /home/user/domains/sharedip
SuexecUserGroup user user
CustomLog /var/log/httpd/homedir.log homedir
</VirtualHost>
Als je het per user zou willen kan je de public_html snelkoppeling uit de root halen
Wil iemand aanvullen waarom domain/~user als onveilig wordt beschouwd ?
Wil iemand aanvullen waarom domain/~user als onveilig wordt beschouwd ?
Je klanten zouden dan bij een ander op de zelfde server kunnen zien welke scripts ze draaien.
Correct me if am wrong.
Angiligo:
Pas /etc/httpd/conf/ips.conf aan.
Voorbeeld:
Van:
NameVirtualHost 1.2.3.4:80
NameVirtualHost 1.2.3.4:443
<VirtualHost 1.2.3.4:80>
ServerName shared.domain
ScriptAliasMatch ^/~([^/]+)/+cgi-bin/+(.*) /home/$1/public_html/cgi-bin/$2
AliasMatch ^/~([^/]+)(/.*)* /home/$1/public_html$2
DocumentRoot /home/user/domains/sharedip
SuexecUserGroup user user
CustomLog /var/log/httpd/homedir.log homedir
</VirtualHost>
<VirtualHost 1.2.3.4:443>
SSLEngine on
SSLCertificateFile /etc/httpd/conf/ssl.crt/server.crt
SSLCertificateKeyFile /etc/httpd/conf/ssl.key/server.key
ServerName shared.domain
ScriptAliasMatch ^/~([^/]+)/+cgi-bin/+(.*) /home/$1/public_html/cgi-bin/$2
AliasMatch ^/~([^/]+)(/.*)* /home/$1/public_html$2
DocumentRoot /home/user/domains/sharedip
SuexecUserGroup user user
CustomLog /var/log/httpd/homedir.log homedir
</VirtualHost>
Naar:
NameVirtualHost 1.2.3.4:80
NameVirtualHost 1.2.3.4:443
<VirtualHost 1.2.3.4:80>
ServerName shared.domain
DocumentRoot /home/user/domains/sharedip
SuexecUserGroup user user
CustomLog /var/log/httpd/homedir.log homedir
</VirtualHost>
<VirtualHost 1.2.3.4:443>
SSLEngine on
SSLCertificateFile /etc/httpd/conf/ssl.crt/server.crt
SSLCertificateKeyFile /etc/httpd/conf/ssl.key/server.key
ServerName shared.domain
DocumentRoot /home/user/domains/sharedip
SuexecUserGroup user user
CustomLog /var/log/httpd/homedir.log homedir
</VirtualHost>
Als ik dit doe start httpd niet meer op. ( An error has occurred sbin/service httpd restart 2>&1 )
Als je het per user zou willen kan je de public_html snelkoppeling uit de root halen
Dat werkt.
Maar dan maakt hij je andere public_html map helemaal leeg.
Kan bij nieuwe accounts maar niet bij bestaande natuurlijk.
Define kunnen zien? Kijken welke andere websites er op draaien is sneller gebeurt dan gaan lopen gokken naar de gebruikersnaam van andere gebruikers.
Wil iemand aanvullen waarom domain/~user als onveilig wordt beschouwd ?
mod_rewrite kan hier moeilijkheden mee hebben, suphp kan hier moeilijkheden mee hebben, zo zijn er nog een aantal andere mods die onvoorspelbaar kunnen reageren, en de php server variables zijn anders bij deze aanroep
niet allemaal heel schokkend, maar ik kan me voorstellen dat je dat liever niet hebt
Als ik dit doe start httpd niet meer op. ( An error has occurred sbin/service httpd restart 2>&1 )
post je config file eens, met zo veel mogelijk details intakt, dit zou wel moeten werken namelijk
en kijk ook even in /var/log/httpd/error.log
Wil iemand aanvullen waarom domain/~user als onveilig wordt beschouwd ?
Ik mis dit ook hoor, al sinds het apache project is gestart is public_html alias een standaard feature geweest, kan me niet voorstellen dat dat ineens een security issue is.
Als ik dit doe start httpd niet meer op. ( An error has occurred sbin/service httpd restart 2>&1 )
Welke error staat er in de Apache logs? Helaas kan ik het hier zo niet testen (anders had ik het even gedaan). Eventueel kan ik het ook even op je server aanpassen (of geef de logs en aan de hand daarvan bepaal ik de oplossing).
Hier nu onderstaande ingebruikt en werkt correct (mod_ruid + vhosts zijn aangepast):
LogFormat "%O \"%r\"" homedir
NameVirtualHost *:80
NameVirtualHost *:443
<VirtualHost *:80>
ServerName shared.domain
# ScriptAliasMatch ^/~([^/]+)/+cgi-bin/+(.*) /home/$1/public_html/cgi-bin/$2
# AliasMatch ^/~([^/]+)(/.*)* /home/$1/public_html$2
DocumentRoot /home/admin/domains/sharedip/
RMode config
RUidGid admin admin
RGroups apache
</VirtualHost>
De sterretjes zou je door IP's kunnen vervangen natuurlijk. De regels met ScriptAliasMatch en AliasMatch doen natuurlijk niks (hekje ervoor). Geef anders even de huidige config van /etc/httpd/conf/ips.conf (vervang eventueel echte ips door fake ips en hetzelfde geld voor de gebruikersnamen) en ik geef je een nieuwe die zou moeten werken. Vergeet niet dat met mod_ruid iets andere virtualhost configs van toepassing zijn als met mod_suid.
marsipulami
06/12/09, 09:04
Ik mis dit ook hoor, al sinds het apache project is gestart is public_html alias een standaard feature geweest, kan me niet voorstellen dat dat ineens een security issue is.
ik denk dat de enige reden is, dat wanneer mensen via die manier hun scripts draaien dat de serveradmin niet meer kan zien van welke user deze zijn.
Dus wanneer er malafide scripts gedraaid worden is niet meer te zien van wie die zijn??
Niet zozeer onveilig dus, maar meer lastig voor de hoster.
Ik mis dit ook hoor, al sinds het apache project is gestart is public_html alias een standaard feature geweest, kan me niet voorstellen dat dat ineens een security issue is.
Andere user, XSS, etc.
# Auto generated apache config file by DirectAdmin version 1.34.4
# Modifying this file is not recommended as any changes you make will be
# overwritten when you add/remove ip's through DirectAdmin.
LogFormat "%O \"%r\"" homedir
NameVirtualHost ip:80
NameVirtualHost ip:443
NameVirtualHost ip:80
NameVirtualHost ip:443
<VirtualHost ip:80>
ServerName shared.domain
ScriptAliasMatch ^/~([^/]+)/+cgi-bin/+(.*) /home/$1/public_html/cgi-bin/$2
AliasMatch ^/~([^/]+)(/.*)* /home/$1/public_html$2
DocumentRoot /home/admin/domains/sharedip
SuexecUserGroup admin admin
CustomLog /var/log/httpd/homedir.log homedir
</VirtualHost>
<VirtualHost ip:443>
SSLEngine on
SSLCertificateFile /etc/httpd/conf/ssl.crt/server.crt
SSLCertificateKeyFile /etc/httpd/conf/ssl.key/server.key
ServerName shared.domain
ScriptAliasMatch ^/~([^/]+)/+cgi-bin/+(.*) /home/$1/public_html/cgi-bin/$2
AliasMatch ^/~([^/]+)(/.*)* /home/$1/public_html$2
DocumentRoot /home/admin/domains/sharedip
SuexecUserGroup admin admin
CustomLog /var/log/httpd/homedir.log homedir
</VirtualHost>
NameVirtualHost ip:80
NameVirtualHost ip:443
<VirtualHost ip:80>
ServerName shared.domain
ScriptAliasMatch ^/~([^/]+)/+cgi-bin/+(.*) /home/$1/public_html/cgi-bin/$2
AliasMatch ^/~([^/]+)(/.*)* /home/$1/public_html$2
DocumentRoot /home/flor/domains/sharedip
SuexecUserGroup flor flor
CustomLog /var/log/httpd/homedir.log homedir
</VirtualHost>
<VirtualHost ip:443>
SSLEngine on
SSLCertificateFile /etc/httpd/conf/ssl.crt/server.crt
SSLCertificateKeyFile /etc/httpd/conf/ssl.key/server.key
ServerName shared.domain
ScriptAliasMatch ^/~([^/]+)/+cgi-bin/+(.*) /home/$1/public_html/cgi-bin/$2
AliasMatch ^/~([^/]+)(/.*)* /home/$1/public_html$2
DocumentRoot /home/flor/domains/sharedip
SuexecUserGroup flor flor
CustomLog /var/log/httpd/homedir.log homedir
</VirtualHost>
NameVirtualHost ip:80
NameVirtualHost ip:443
<VirtualHost ip:80>
ServerName shared.domain
ScriptAliasMatch ^/~([^/]+)/+cgi-bin/+(.*) /home/$1/public_html/cgi-bin/$2
AliasMatch ^/~([^/]+)(/.*)* /home/$1/public_html$2
DocumentRoot /home/flor/domains/sharedip
SuexecUserGroup flor flor
CustomLog /var/log/httpd/homedir.log homedir
</VirtualHost>
<VirtualHost ip:443>
SSLEngine on
SSLCertificateFile /etc/httpd/conf/ssl.crt/server.crt
SSLCertificateKeyFile /etc/httpd/conf/ssl.key/server.key
ServerName shared.domain
ScriptAliasMatch ^/~([^/]+)/+cgi-bin/+(.*) /home/$1/public_html/cgi-bin/$2
AliasMatch ^/~([^/]+)(/.*)* /home/$1/public_html$2
DocumentRoot /home/flor/domains/sharedip
SuexecUserGroup flor flor
CustomLog /var/log/httpd/homedir.log homedir
</VirtualHost>
Let op ik draai geen mod_ruid nu.
Gewoon standaard DirectAdmin met php CLI
Met vriendelijke groeten,
Angiligo
Een hekje voor AliasMatch en ScriptAliasMatch zou voldoende moeten zijn.
Andere user, XSS, etc.
Ik zie nu pas dat DA dat in elke virtual host directive toestaat, dan loop je inderdaad in dit soort valkuilen.
Een hekje voor AliasMatch en ScriptAliasMatch zou voldoende moeten zijn.
Helaas werkt het met het hekje ook niet.
Met vriendelijke groeten,
Angiligo
Helaas werkt het met het hekje ook niet.
Met vriendelijke groeten,
Angiligo
PM Lite-On eens, die heeft dat ook uitgeschakeld =)
Ben ik nu gek, of is er een makkelijkere manier om dit te realiseren. Ik kan me namelijk herinneren dat dit eerder ter sprake is gekomen op dit forum.
Tim.Bracquez
07/12/09, 14:40
Andere user, XSS, etc.
Dat klopt, maar het is gelijk ook een manier om te kijken of die user aanwezig is op je systeem. Zoals die security lek in proftpd waar dat ook mogelijk mee is :-)
Niet altijd leuk dat anderen te weten komen welke users er op het systeem aangemaakt zijn...
Psst: vergeet je apache2 / httpd process niet te herstarten of beter te reloaden !
Zoals ze hierboven al melden is het gewoon die #'s plaatsen
Dat klopt, maar het is gelijk ook een manier om te kijken of die user aanwezig is op je systeem. Zoals die security lek in proftpd waar dat ook mogelijk mee is :-)
Niet altijd leuk dat anderen te weten komen welke users er op het systeem aangemaakt zijn...
Psst: vergeet je apache2 / httpd process niet te herstarten of beter te reloaden !
Zoals ze hierboven al melden is het gewoon die #'s plaatsen
Hekje er voor + apache2 / httpd restarten reloaden heb ik gedaan en lost het probleem niet op.
Dan heb je de verkeerde config file te pakken. Ik zou zeggen, laat er eens iemand naar kijken.
# Auto generated apache config file by DirectAdmin version 1.34.4
# Modifying this file is not recommended as any changes you make will be
# overwritten when you add/remove ip's through DirectAdmin.
LogFormat "%O \"%r\"" homedir
NameVirtualHost :80
NameVirtualHost :443
NameVirtualHost :80
NameVirtualHost :443
<VirtualHost :80>
ServerName shared.domain
# ScriptAliasMatch ^/~([^/]+)/+cgi-bin/+(.*) /home/$1/public_html/cgi-bin/$2
# AliasMatch ^/~([^/]+)(/.*)* /home/$1/public_html$2
DocumentRoot /home/admin/domains/sharedip
SuexecUserGroup admin admin
CustomLog /var/log/httpd/homedir.log homedir
</VirtualHost>
<VirtualHost :443>
SSLEngine on
SSLCertificateFile /etc/httpd/conf/ssl.crt/server.crt
SSLCertificateKeyFile /etc/httpd/conf/ssl.key/server.key
ServerName shared.domain
# ScriptAliasMatch ^/~([^/]+)/+cgi-bin/+(.*) /home/$1/public_html/cgi-bin/$2
# AliasMatch ^/~([^/]+)(/.*)* /home/$1/public_html$2
DocumentRoot /home/admin/domains/sharedip
SuexecUserGroup admin admin
CustomLog /var/log/httpd/homedir.log homedir
</VirtualHost>
NameVirtualHost :80
NameVirtualHost 443
<VirtualHost :80>
ServerName shared.domain
# ScriptAliasMatch ^/~([^/]+)/+cgi-bin/+(.*) /home/$1/public_html/cgi-bin/$2
# AliasMatch ^/~([^/]+)(/.*)* /home/$1/public_html$2
DocumentRoot /home/flor/domains/sharedip
SuexecUserGroup flor flor
CustomLog /var/log/httpd/homedir.log homedir
</VirtualHost>
<VirtualHost :443>
SSLEngine on
SSLCertificateFile /etc/httpd/conf/ssl.crt/server.crt
SSLCertificateKeyFile /etc/httpd/conf/ssl.key/server.key
ServerName shared.domain
# ScriptAliasMatch ^/~([^/]+)/+cgi-bin/+(.*) /home/$1/public_html/cgi-bin/$2
# AliasMatch ^/~([^/]+)(/.*)* /home/$1/public_html$2
DocumentRoot /home/flor/domains/sharedip
SuexecUserGroup flor flor
CustomLog /var/log/httpd/homedir.log homedir
</VirtualHost>
NameVirtualHost :80
NameVirtualHost :443
<VirtualHost :80>
ServerName shared.domain
# ScriptAliasMatch ^/~([^/]+)/+cgi-bin/+(.*) /home/$1/public_html/cgi-bin/$2
# AliasMatch ^/~([^/]+)(/.*)* /home/$1/public_html$2
DocumentRoot /home/flor/domains/sharedip
SuexecUserGroup flor flor
CustomLog /var/log/httpd/homedir.log homedir
</VirtualHost>
<VirtualHost :443>
SSLEngine on
SSLCertificateFile /etc/httpd/conf/ssl.crt/server.crt
SSLCertificateKeyFile /etc/httpd/conf/ssl.key/server.key
ServerName shared.domain
# ScriptAliasMatch ^/~([^/]+)/+cgi-bin/+(.*) /home/$1/public_html/cgi-bin/$2
# AliasMatch ^/~([^/]+)(/.*)* /home/$1/public_html$2
DocumentRoot /home/flor/domains/sharedip
SuexecUserGroup flor flor
CustomLog /var/log/httpd/homedir.log homedir
</VirtualHost>
Dit zou toch de goede moeten zijn.
/ect/httpd/conf
ips.conf
/etc/httpd/conf/extra/httpd-vhosts.conf ook even doen
daarna kun je het controleren door:
cd /etc/httpd/conf
grep AliasMatch * -R
Er moet dan overal een hekje voor staan. Of je knikkert de hele regels uit de files. Of je verwijdert uberhaupt de virtual hosts, als je er verder toch geen toepassing voor hebt (via ip adres shared ips bezoeken ?).
/etc/httpd/conf/extra/httpd-vhosts.conf ook even doen
Deze was het :thumbup:
Het werkt nu dus zonder problemen.
Hartstikke bedankt iedereen.
Bedankt t.bloo
Met vriendelijke groet,
Angiligo