WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Linux, UNIX, Open Source (http://www.wcm.at/forum/forumdisplay.php?f=13)
-   -   Apache VHost Konfigurations-Theorie (http://www.wcm.at/forum/showthread.php?t=99067)

käptn 05.06.2003 14:28

Apache VHost Konfigurations-Theorie
 
Hallo Leute,

da es in Apache2 keine User/Group Direktiven in VHost Abschnitten mehr gibt,
hab ich mir ein paar Gedanken gemacht, wie man VHosts mit Hilfe von
User/Groups/SuExec/OpenBasedir trotzdem etwas sicherer konfigurieren
und dem User noch immer den Großteil seiner Freiheit lassen kann.

Ich hab mir zur Veranschaulichung ein Script geschrieben,
in dem die Konfigurationsanweisungen deutlich werden.

Über Hinweise auf Fehler, Fahrlässigkeiten oder Denkfehler,
bzw. eine kleine Diskussion zu dem Thema
würde ich mich sehr freuen!

Code:

echo $1:$2:$3 >> /usr/local/apache2/conf/vhosts/map
groupadd www$2
useradd -g www -G www$2 -p $3 www$2
mkdir /www/$2
mkdir /www/$2/docroot
mkdir /www/$2/mylib
mkdir /www/$2/cgi-bin
ln -s /www/$2/cgi-bin /www/$2/bin
chown -R $2:apache /www/$2
chmod -R 750 /www/$2
mkdir /www/$2/tmp
mkdir /www/$2/log
mkdir /www/$2/var
chown apache:www$2 /www/$2/tmp
chown apache:www$2 /www/$2/log
chown apache:www$2 /www/$2/var
chmod 770 /www/$2/tmp
chmod 770 /www/$2/log
chmod 770 /www/$2/var
ln -s /usr/local/pear/share/pear /www/$2/pear
ln -s /www/lib /www/$2/lib
echo \<VirtualHost \*\>\
  ServerName $1\
  ServerAlias www.$1\
  ServerAdmin webmaster\@$1\
  SuExecUserGroup www$2 www$2\
\
  DocumentRoot \"/www/$2/docroot\"\
  \<Directory \"/www/$2/docroot\"\>\
    Options None +Indexes +Includes +IncludesNOEXEC\
    AllowOverride All\
  \</Directory\>\
  ScriptAlias /cgi-bin/ \"/www/$2/cgi-bin/\"\
  \<Directory \"/www/$2/cgi-bin\"\>\
    Options None\
    AllowOverride None\
  \</Directory\>\
\
  ErrorLog  /www/$2/log/httpd_error.log\
  LogLevel  error\
  CustomLog /www/$2/log/httpd_access.log combined\
\
  php_admin_value include_path      \".:/www/$2/pear:/www/$2/lib:/www/$2/mylib\"\
  php_admin_value error_log          \"/www/$2/log/php_error.log\"\
  php_admin_value log_errors_max_len \"1024\"\
  php_admin_value open_basedir      \"/www/$2\"\
  php_admin_value upload_tmp_dir    \"/www/$2/tmp\"\
  php_admin_value session.save_path  \"/www/$2/tmp\"\
\</VirtualHost\> > /usr/local/apache2/conf/vhosts/$1.vhost

Bsp:
#>makevhost domain.at 001 xyz123

~

käptn 05.06.2003 15:16

Die Backslashes im ECHO-Teil müsst ihr euch wegdenken :rolleyes:

~

käptn 05.06.2003 18:46

Hm?

Hab' das Script etwas ausgebessert...

Code:

echo "$1:$2:$3" >> /usr/local/apache2/conf/vhosts/map
groupadd www$2
useradd -g www$2 -G www -M -d /www/$2 www$2
echo $3 | passwd --stdin www$2
mkdir /www/$2
mkdir /www/$2/docroot
mkdir /www/$2/mylib
mkdir /www/$2/cgi-bin
chown -R www$2:apache /www/$2
chmod -R 750 /www/$2
mkdir /www/$2/tmp
mkdir /www/$2/log
mkdir /www/$2/var
chown apache:www$2 /www/$2/tmp
chown apache:www$2 /www/$2/log
chown apache:www$2 /www/$2/var
chmod 770 /www/$2/tmp
chmod 770 /www/$2/log
chmod 770 /www/$2/var
ln -s /usr/local/pear/share/pear /www/$2/pear
ln -s /var/www/lib /www/$2/lib
echo "<VirtualHost *>
        ServerName $1
        ServerAlias www.$1
        ServerAdmin webmaster@$1
        SuExecUserGroup www$2 www$2

        DocumentRoot \"/www/$2/docroot\"
        <Directory \"/www/$2/docroot\">
                Options None +Indexes +Includes +IncludesNOEXEC
                AllowOverride All
        </Directory>
        ScriptAlias /cgi-bin/ \"/www/$2/cgi-bin/\"
        <Directory \"/www/$2/cgi-bin\">
                Options None
                AllowOverride None
        </Directory>

        ErrorLog /www/$2/log/httpd_error.log
        LogLevel error
        CustomLog /www/$2/log/httpd_access.log combined

        php_admin_value include_path                \".:/www/$2/pear:/www/$2/lib:/www/$2/mylib\"
        php_admin_value error_log                \"/www/$2/log/php_error.log\"
        php_admin_value open_basedir                \"/www/$2\"
        php_admin_value upload_tmp_dir                \"/www/$2/tmp\"
        php_admin_value session.save_path        \"/www/$2/tmp\"
</VirtualHost>" > /usr/local/apache2/conf/vhosts/$1.vhost

Wie mach ich nur, dass nach der Anmeldung über ssh
nicht "-bash-2-05b$" sondern ein "ganz normaler" Prompt erscheint?

~c

käptn 05.06.2003 23:28

Hm...
 
Was würdet ihr machen, stünden euch keine User/Group Direktiven für VHosts zur Verfügung?

~

käptn 06.06.2003 14:00

*schmafu gelöscht*

Sloter 06.06.2003 20:24

Re: Apache VHost Konfigurations-Theorie
 
Zitat:

Original geschrieben von käptn
Hallo Leute,

da es in Apache2 keine User/Group Direktiven in VHost Abschnitten mehr gibt,

Seit wann?
Oder meinst du beim verwenden vom Modul mod_vhost_alias

Schon brav ein update gemacht?
http://www.webhostlist.de/host/news/read.php4?id=1370

Sloter

käptn 06.06.2003 23:27

@Update

Klaro ;)

@ User/Group

Nur mit MPM perchild, aber start mal für jeden VHost einen extra Prozess, etwas overkill oder?
Außerdem soll es noch hochexperimentell sein...

http://httpd.apache.org/docs-2.0/mod/perchild.html

http://httpd.apache.org/docs-2.0/mod...mmon.html#user
Zitat:

Wichtiger Hinweis: Die Verwendung dieser Direktive innerhalb von <VirtualHost> wird nicht mehr unterstützt. Benutzen Sie SuexecUserGroup, um Ihren Server für suexec einzurichten.
...und suexec wirkt sich ja nur auf CGI aus...

~


Alle Zeitangaben in WEZ +2. Es ist jetzt 10:07 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag