Abschied von Mac und Anleitung - 2. Teil

Dieses Thema im Forum "Hardware" wurde erstellt von pompom, 17. Juni 2002.

  1. pompom

    pompom New Member

    sendmail -t -i').
    ;sendmail_path =

    und die Zeile

    ;sendmail_path =

    ändern in (Achtung: Semikolon muß weg):

    sendmail_path = /usr/sbin/sendmail -t

    Jetzt muß noch im Terminal eingegeben werden, sonst läuft Sendmail nicht:

    sudo chmod g-w /

    Zum Verständnis ein Zitat:

    "Ein mailer wie sendmail berührt ja die Privatsphäre aller User, da er je nach Situation in den mail-ordnern einzelner User zugange ist ... kurzum, ein vernünftig konfigurierter mailer wird darauf achten, wer wo Schreibrechte hat, sich möglicherweise unberechtigterweise welche erschlichen hat ... vielleicht mit dem Hintergedanken, so an anderer Leute mails zu kommen.

    Im Rahmen dieser Sicherheits-Philosophie verlangt sendmail nun, dass in der top-level dir ("/"), die per default folgende Rechte/Eigentümer hat:

    drwxrwxr-t 36 root admin ...

    Mitglieder der group "admin" keine Schreibrechte haben. Ist halt so. Daher der Fix-Befehl" sudo chmod g-w /" - damit sendmail happy ist."

    Server über "Sharing" stoppen und wieder starten

    Nach irgendwelchen Updates ist es ratsam, nochmals "sudo chmod g-w /" einzugeben, da manchmal die alten Rechte wieder hergestellt werden. Auch müssen manchmal die Rechte mit "sudo chmod g+w /" wiederhergestellt werden. Soll z.B. der Toast-Installer verlangen.

    9. Verzeichnisschutz (am Beispiel Verzeichnis php)

    Hiermit wird das Verzeichnis /Library/WebServer/Documents/versuch/phpmyadmin durch Paßwort geschützt. Dieses liegt im virtuellen Host:

    <VirtualHost 123.45.678.90>
    ServerAdmin test@xyz.de
    DocumentRoot /Library/WebServer/Documents/versuch
    ServerName test1.de
    # ErrorLog /Library/WebServer/Documents/versuch/logs/test1.error_log
    # CustomLog /Library/WebServer/Documents/versuch/logs/test1.access_log common
    </VirtualHost>

    in

    /Library/WebServer/Documents/versuch/php

    Die Zugangsbeschränkung erfolgt mittels .htaccess. Diese Methode gilt als sehr sicher und ist einfach zu realisieren. In dem zu schützenden Verzeichnis liegt die Datei .htaccess und greift auf eine Paßwortdatei .htpasswd zu. Die .htpasswd liegt außerhalb des DocumentRoot, um den Zugriff von außen zu verhindern. Sie wird gleich mit im /etc/httpd (dort liegt auch httpd.conf) erzeugt. Der Punkt vor den Dateien bedeutet, daß sie mit dem Befehl "ls" nicht angezeigt werden (mit "ls -al" geht es trotzdem). Im Finder sind sie ebenfalls nicht zu sehen. Die Namen beider Dateien sind frei wählbar.

    1. Schritt

    Damit am Server nicht ungewollt sicherheitsrelevante Einstellungen über .htaccess vorgenommen werden können, werden erstmal generell alle .htaccess ignoriert. Dazu muß ca. in der Mitte von httpd.conf in der Direktive AllowOverride der Parameter None aktiviert sein (also gegebenenfalls "#" entfernen):

    <Directory />
    Options FollowSymLinks
    AllowOverride None
    </Directory>

    2. Schritt

    Damit absolut kein Zugriff von außen auf .htaccess und damit evtl. auf den Pfad zu .htpasswd möglich ist, wird generell der Zugriff auf alle Dateien, die mit .ht beginnen, unterbunden (Mitte httpd.conf gegebenenfalls "#" entfernen):

    <Files ~ "^.ht">
    Order allow,deny
    Deny from all
    Satisfy All
    </Files>

    3. Schritt

    Die .htaccess wird vereinbart. Dazu muß ca. in der Mitte von httpd.conf die Zeile "AccessFileName .htaccess" aktiviert sein (also gegebenenfalls "#" entfernen):

    #
    # AccessFileName: The name of the file to look for in each directory
    # for access control information.
    #
    AccessFileName .htaccess

    #

    Im virtuellen Host, auf dem php liegt, wird dessen Verzeichnis durch folgende Ergänzungen für den Zugriff auf .htaccess wieder "freigegeben":

    <VirtualHost 123.45.678.90>
    ServerAdmin test@xyz.de
    DocumentRoot /Library/WebServer/Documents/versuch
    ServerName test1.de
    <Directory "/Library/WebServer/Documents/versuch/php">
    AllowOverride All
    Options MultiViews
    Order allow,deny
    Allow from all
    </Directory>
    # ErrorLog /Library/WebServer/Documents/versuch/logs/test1.error_log
    # CustomLog /Library/WebServer/Documents/versuch/logs/test1.access_log common
    </VirtualHost>

    Mit AllowOverride All sucht Apache nach .htaccess im zu schützenden Verzeichnis.

    4. Schritt

    Jetzt die Datei ".htaccess" erstellen:

    sudo pico

    jetzt eingeben:

    AuthUserFile /etc/httpd/.htpasswd
    AuthName "PHP"
    AuthType Basic
    require valid-user

    jetzt beenden:

    CTRL + O
    /Library/WebServer/Documents/versuch/php/.htaccess
    (Eingabe in untere schwarze Zeile; damit ist Speicherort ".htaccess" und Dateiname festgelegt)

    - Mit "AuthUserFile /etc/httpd/.htpasswd" wird der Pfad zur Paßwortdatei festgelegt.
    - "AuthName "PHP" " ist der Name, der im Fenster der Paßwortabfrage steht.
    - "AuthType Basic" ist der Modus für den Paßworttransfer (hier: Klartext).
    Mit "require valid-user " wird festgelegt, daß alle Benutzer, die in .htpasswd stehen, Zugriff haben. Hier kann man noch Einschränkungen mit <Limit ...> ... </Limit> festlegen.

    Gegebenenfalls mit "chmod 644" Rechte für .htaccess setzen.

    5. Schritt

    Jetzt wird .htpasswd angelegt.

    Unbedingt als "root" neu anmelden (siehe Punkt 5.)

    Im Bsp. erfolgte dies für den Benutzer "benutzer" und das Paßwort "-Paßwort-":

    /usr/bin/htpasswd -c /etc/httpd/.htpasswd benutzer
    - jetzt wird zweimalige Eingabe des Paßwortes verlangt -

    Mit "/usr/bin/htpasswd -c" wird das Programm htpasswd angesprochen, das in "/etc/httpd" die Paßwortdatei für "benutzer" anlegt und dort mit der integrierten Funktion "crypt" das Paßwort verschlüsselt.

    Mit

    sudo pico /etc/httpd/.htpasswd

    kann .htpasswd geöffnet und gegebenenfalls bearbeitet werden. Wenn z.B. mehrere Benutzer enthalten sind, und aus diesen Gruppen gebildet werden sollen.

    Der Inhalt der .htpasswd sieht z.B. so aus:

    benutzer:hnavgsHFV2nus

    Die Aufnahme neuer Benutzer in .htpasswd erfolgt mit:

    /usr/bin/htpasswd /etc/httpd/.htpasswd -neuer Benutzer-

    Achtung: "/usr/bin/htpasswd" ohne "-c", sonst wird alte ".htpasswd" überschrieben;
    vorher die "root"-Anmeldung nicht vergessen, wenn man wieder "draußen" ist

    6. Schritt

    Server über "Sharing" stoppen und wieder starten

    10. FTP-Server

    Öffnen "Applications/System Preferences/Sharing" bzw. "Systemeinstellungen.../Sharing":

    Anzeige "FTP-Zugriff aktivieren", dort Häkchen setzen

    Im Terminal kann die Funktion geprüft werden:

    cd /
    ftp localhost

    Wenn alles o.k. ist:

    Connected to localhost.
    220 localhost FTP server (Version 6.00LS) ready.
    Eingabe - Benutzer -
    331 Password required for - Benutzer -.
    Password: - Administratorpasswort -
    230 User - Benutzer - logged in.
    Remote system type is UNIX.
    Using binary mode to transfer files.

    Abmelden:

    ftp> quit
    221 Goodbye.
    Für jeden Benutzer ein Profil einrichten, dazu in "Systemeinstellungen/Benutzer" neuen Benutzer anlegen (im Bsp.):

    Name: versuch
    Kurzname: versuch
    Kennwort: - versuchpaßwort -

    Es entsteht das Verzeichnis:

    Users
    versuch
    Sites
    index.html
    images
    Public
    Pictures
    Music
    Movies
    Library
    Documents
    Desktop

    Nun wird die Datei "ftpchroot" erzeugt. Die hier eingetragenen Benutzer können nur auf ihr Users-Verzeichnis zugreifen. Eingetragen wird der Kurzname:

    sudo pico /etc/ftpchroot
    - Administratorpaßwort -

    Jetzt den Kurznamen "versuch" eingeben und mit "CTRL + O" und "ENTER" speichern, mit "CTRL + X" Datei schließen. Genauso werden neue Benutzer eingeben, und zwar für jeden eine neue Zeile.

    Das virtuelle Host wurde im Beispiel folgendermaßen geändert:

    #
    <VirtualHost 123.45.678.90>
    ServerAdmin test@xyz.de
    DocumentRoot /Users/versuch/Sites
    ServerName test1.de
    <Directory "/Users/versuch/Sites">
    AllowOverride None
    Options MultiViews
    Order allow,deny
    Allow from all
    </Directory>
    # ErrorLog /Library/WebServer/Documents/versuch/logs/test1.error_log
    # CustomLog /Library/WebServer/Documents/versuch/logs/test1.access_log common
    </VirtualHost>

    (wahrscheinlich Ende)

    PS: wer kann in den nächsten 3 Tagen folgendes klären:

    nach Neustart Apache gehen keine PHP-Skripte, erst nach Neustart Rechner
     
  2. pompom

    pompom New Member

    sendmail -t -i').
    ;sendmail_path =

    und die Zeile

    ;sendmail_path =

    ändern in (Achtung: Semikolon muß weg):

    sendmail_path = /usr/sbin/sendmail -t

    Jetzt muß noch im Terminal eingegeben werden, sonst läuft Sendmail nicht:

    sudo chmod g-w /

    Zum Verständnis ein Zitat:

    "Ein mailer wie sendmail berührt ja die Privatsphäre aller User, da er je nach Situation in den mail-ordnern einzelner User zugange ist ... kurzum, ein vernünftig konfigurierter mailer wird darauf achten, wer wo Schreibrechte hat, sich möglicherweise unberechtigterweise welche erschlichen hat ... vielleicht mit dem Hintergedanken, so an anderer Leute mails zu kommen.

    Im Rahmen dieser Sicherheits-Philosophie verlangt sendmail nun, dass in der top-level dir ("/"), die per default folgende Rechte/Eigentümer hat:

    drwxrwxr-t 36 root admin ...

    Mitglieder der group "admin" keine Schreibrechte haben. Ist halt so. Daher der Fix-Befehl" sudo chmod g-w /" - damit sendmail happy ist."

    Server über "Sharing" stoppen und wieder starten

    Nach irgendwelchen Updates ist es ratsam, nochmals "sudo chmod g-w /" einzugeben, da manchmal die alten Rechte wieder hergestellt werden. Auch müssen manchmal die Rechte mit "sudo chmod g+w /" wiederhergestellt werden. Soll z.B. der Toast-Installer verlangen.

    9. Verzeichnisschutz (am Beispiel Verzeichnis php)

    Hiermit wird das Verzeichnis /Library/WebServer/Documents/versuch/phpmyadmin durch Paßwort geschützt. Dieses liegt im virtuellen Host:

    <VirtualHost 123.45.678.90>
    ServerAdmin test@xyz.de
    DocumentRoot /Library/WebServer/Documents/versuch
    ServerName test1.de
    # ErrorLog /Library/WebServer/Documents/versuch/logs/test1.error_log
    # CustomLog /Library/WebServer/Documents/versuch/logs/test1.access_log common
    </VirtualHost>

    in

    /Library/WebServer/Documents/versuch/php

    Die Zugangsbeschränkung erfolgt mittels .htaccess. Diese Methode gilt als sehr sicher und ist einfach zu realisieren. In dem zu schützenden Verzeichnis liegt die Datei .htaccess und greift auf eine Paßwortdatei .htpasswd zu. Die .htpasswd liegt außerhalb des DocumentRoot, um den Zugriff von außen zu verhindern. Sie wird gleich mit im /etc/httpd (dort liegt auch httpd.conf) erzeugt. Der Punkt vor den Dateien bedeutet, daß sie mit dem Befehl "ls" nicht angezeigt werden (mit "ls -al" geht es trotzdem). Im Finder sind sie ebenfalls nicht zu sehen. Die Namen beider Dateien sind frei wählbar.

    1. Schritt

    Damit am Server nicht ungewollt sicherheitsrelevante Einstellungen über .htaccess vorgenommen werden können, werden erstmal generell alle .htaccess ignoriert. Dazu muß ca. in der Mitte von httpd.conf in der Direktive AllowOverride der Parameter None aktiviert sein (also gegebenenfalls "#" entfernen):

    <Directory />
    Options FollowSymLinks
    AllowOverride None
    </Directory>

    2. Schritt

    Damit absolut kein Zugriff von außen auf .htaccess und damit evtl. auf den Pfad zu .htpasswd möglich ist, wird generell der Zugriff auf alle Dateien, die mit .ht beginnen, unterbunden (Mitte httpd.conf gegebenenfalls "#" entfernen):

    <Files ~ "^.ht">
    Order allow,deny
    Deny from all
    Satisfy All
    </Files>

    3. Schritt

    Die .htaccess wird vereinbart. Dazu muß ca. in der Mitte von httpd.conf die Zeile "AccessFileName .htaccess" aktiviert sein (also gegebenenfalls "#" entfernen):

    #
    # AccessFileName: The name of the file to look for in each directory
    # for access control information.
    #
    AccessFileName .htaccess

    #

    Im virtuellen Host, auf dem php liegt, wird dessen Verzeichnis durch folgende Ergänzungen für den Zugriff auf .htaccess wieder "freigegeben":

    <VirtualHost 123.45.678.90>
    ServerAdmin test@xyz.de
    DocumentRoot /Library/WebServer/Documents/versuch
    ServerName test1.de
    <Directory "/Library/WebServer/Documents/versuch/php">
    AllowOverride All
    Options MultiViews
    Order allow,deny
    Allow from all
    </Directory>
    # ErrorLog /Library/WebServer/Documents/versuch/logs/test1.error_log
    # CustomLog /Library/WebServer/Documents/versuch/logs/test1.access_log common
    </VirtualHost>

    Mit AllowOverride All sucht Apache nach .htaccess im zu schützenden Verzeichnis.

    4. Schritt

    Jetzt die Datei ".htaccess" erstellen:

    sudo pico

    jetzt eingeben:

    AuthUserFile /etc/httpd/.htpasswd
    AuthName "PHP"
    AuthType Basic
    require valid-user

    jetzt beenden:

    CTRL + O
    /Library/WebServer/Documents/versuch/php/.htaccess
    (Eingabe in untere schwarze Zeile; damit ist Speicherort ".htaccess" und Dateiname festgelegt)

    - Mit "AuthUserFile /etc/httpd/.htpasswd" wird der Pfad zur Paßwortdatei festgelegt.
    - "AuthName "PHP" " ist der Name, der im Fenster der Paßwortabfrage steht.
    - "AuthType Basic" ist der Modus für den Paßworttransfer (hier: Klartext).
    Mit "require valid-user " wird festgelegt, daß alle Benutzer, die in .htpasswd stehen, Zugriff haben. Hier kann man noch Einschränkungen mit <Limit ...> ... </Limit> festlegen.

    Gegebenenfalls mit "chmod 644" Rechte für .htaccess setzen.

    5. Schritt

    Jetzt wird .htpasswd angelegt.

    Unbedingt als "root" neu anmelden (siehe Punkt 5.)

    Im Bsp. erfolgte dies für den Benutzer "benutzer" und das Paßwort "-Paßwort-":

    /usr/bin/htpasswd -c /etc/httpd/.htpasswd benutzer
    - jetzt wird zweimalige Eingabe des Paßwortes verlangt -

    Mit "/usr/bin/htpasswd -c" wird das Programm htpasswd angesprochen, das in "/etc/httpd" die Paßwortdatei für "benutzer" anlegt und dort mit der integrierten Funktion "crypt" das Paßwort verschlüsselt.

    Mit

    sudo pico /etc/httpd/.htpasswd

    kann .htpasswd geöffnet und gegebenenfalls bearbeitet werden. Wenn z.B. mehrere Benutzer enthalten sind, und aus diesen Gruppen gebildet werden sollen.

    Der Inhalt der .htpasswd sieht z.B. so aus:

    benutzer:hnavgsHFV2nus

    Die Aufnahme neuer Benutzer in .htpasswd erfolgt mit:

    /usr/bin/htpasswd /etc/httpd/.htpasswd -neuer Benutzer-

    Achtung: "/usr/bin/htpasswd" ohne "-c", sonst wird alte ".htpasswd" überschrieben;
    vorher die "root"-Anmeldung nicht vergessen, wenn man wieder "draußen" ist

    6. Schritt

    Server über "Sharing" stoppen und wieder starten

    10. FTP-Server

    Öffnen "Applications/System Preferences/Sharing" bzw. "Systemeinstellungen.../Sharing":

    Anzeige "FTP-Zugriff aktivieren", dort Häkchen setzen

    Im Terminal kann die Funktion geprüft werden:

    cd /
    ftp localhost

    Wenn alles o.k. ist:

    Connected to localhost.
    220 localhost FTP server (Version 6.00LS) ready.
    Eingabe - Benutzer -
    331 Password required for - Benutzer -.
    Password: - Administratorpasswort -
    230 User - Benutzer - logged in.
    Remote system type is UNIX.
    Using binary mode to transfer files.

    Abmelden:

    ftp> quit
    221 Goodbye.
    Für jeden Benutzer ein Profil einrichten, dazu in "Systemeinstellungen/Benutzer" neuen Benutzer anlegen (im Bsp.):

    Name: versuch
    Kurzname: versuch
    Kennwort: - versuchpaßwort -

    Es entsteht das Verzeichnis:

    Users
    versuch
    Sites
    index.html
    images
    Public
    Pictures
    Music
    Movies
    Library
    Documents
    Desktop

    Nun wird die Datei "ftpchroot" erzeugt. Die hier eingetragenen Benutzer können nur auf ihr Users-Verzeichnis zugreifen. Eingetragen wird der Kurzname:

    sudo pico /etc/ftpchroot
    - Administratorpaßwort -

    Jetzt den Kurznamen "versuch" eingeben und mit "CTRL + O" und "ENTER" speichern, mit "CTRL + X" Datei schließen. Genauso werden neue Benutzer eingeben, und zwar für jeden eine neue Zeile.

    Das virtuelle Host wurde im Beispiel folgendermaßen geändert:

    #
    <VirtualHost 123.45.678.90>
    ServerAdmin test@xyz.de
    DocumentRoot /Users/versuch/Sites
    ServerName test1.de
    <Directory "/Users/versuch/Sites">
    AllowOverride None
    Options MultiViews
    Order allow,deny
    Allow from all
    </Directory>
    # ErrorLog /Library/WebServer/Documents/versuch/logs/test1.error_log
    # CustomLog /Library/WebServer/Documents/versuch/logs/test1.access_log common
    </VirtualHost>

    (wahrscheinlich Ende)

    PS: wer kann in den nächsten 3 Tagen folgendes klären:

    nach Neustart Apache gehen keine PHP-Skripte, erst nach Neustart Rechner
     
  3. XMP500

    XMP500 New Member

    Klasse Beschreibung,
    vielen Dank. Warum verlässt Du uns?

    MfG
     
  4. pompom

    pompom New Member

    Praktikum zuende.
     
  5. petervogel

    petervogel Active Member

    das klingt ja nach einem wahren MAC OS.
    wie schön waren da noch die zeiten, als ich auf meinem Mac SE mit system 6x intuitiv walten und schalten konnte.
    peter
     
  6. Philipp_BK

    Philipp_BK New Member

    Schön, dass auf nem Mac alles so intuitiv ist (lol) und man viiieeeeel weniger in den Eingeweiden des Systems rummachen muß...(Jaja, ich weiß, das galt für alles bis 9.22) ;-)
    Philipp
     
  7. tas

    tas New Member

    Was soll das? Auch in OS X koennt Ihr auf ewig doof bleiben, bunte Bildchen klicken und Euch daran erfreuen, dass der Computer doch so einfach funktioniert. Aber einige Leute wollen etwas besser verstehen, was passiert, und etwas mehr Kontrolle ueber ihr System haben (das war uebrigens, ihr Schlaumeier, auch in OS 6-9 schon so, nur musste man das damals per ResEdit erledigen). Pompom hat hier eine detaillierte Anleitung fuer die Bewaeltigung komplizierter Aufgaben ins Netz gestellt, und dafuer bin ich ihm sehr dankbar. Und alles, was Euch einfaellt, ist "Bitte lass uns bloed sterben". Zwingt Euch doch keiner, das alles mitzumachen - aber lasst doch die in Ruhe, die weniger verbohrt sind. Tschuldigung, aber das musste mal gesagt werden.
     
  8. pompom

    pompom New Member

    Vorsichtshalber für alle:

    Es gibt noch weiter hinten einen 1. Teil, mußte die Anleitung teilen, weil die Forumsbeiträge auf eine bestimmte Zeichenzahl begrenzt sind
     

Diese Seite empfehlen