Warning: Cannot modify header information - headers already sent by (output started at /www/htdocs/w00af25d/index.php:1) in /www/htdocs/w00af25d/wp-includes/feed-rss2.php on line 8
SemanticBlog » Linux http://www.semanticblog.eu Analytics of web innovation Tue, 27 Dec 2011 20:46:46 +0000 en hourly 1 http://wordpress.org/?v= Browserleiste im Nautilus anpassen – Direkter Eingabemodus http://www.semanticblog.eu/2011/04/13/browserleiste-im-nautilus-anpassen-direkter-eingabemodus/ http://www.semanticblog.eu/2011/04/13/browserleiste-im-nautilus-anpassen-direkter-eingabemodus/#comments Wed, 13 Apr 2011 00:35:46 +0000 Christian http://www.semanticblog.eu/?p=1739

Nautilus ist der Dateimanager der Desktop-Umgebung GNOME, der standardmäßig nach einer Neuinstallation von Ubuntu 10/10 benutzt wird.

Dabei fällt auf, dass Nautilus üblicherweise Verzeichnisse im Browser-Modus darstellt. In diesem Modus wird die Adressleiste in Form von Navigationsknöpfen angezeigt.
Diese Art der Darstellung ist meiner Meinung nach etwas ungeschickt, da eine direkte Eingabe von Pfaden wesentlich schneller von der Hand geht, als sich durch diese Pfade klicken zu müssen.

Zwar ist es möglich die Leiste mittels Strg + L umzuschalten, damit eine direkte Eingabe ermöglicht wird, doch dies muss ständig wiederholt werden.

Doch hierfür gibt es Abhilfe. Mit dem Befehl

gconftool-2 --set /apps/nautilus/preferences/always_use_location_entry --type bool 1

läßt sich die Leiste dauerhaft in den Eingabemodus umschalten.

]]>
http://www.semanticblog.eu/2011/04/13/browserleiste-im-nautilus-anpassen-direkter-eingabemodus/feed/ 0
Apache2-mpm-worker Installation mit SuExec und PHP5-fcgi http://www.semanticblog.eu/2011/01/05/apache2-mpm-worker-installation-suexec-php5-fcgi/ http://www.semanticblog.eu/2011/01/05/apache2-mpm-worker-installation-suexec-php5-fcgi/#comments Wed, 05 Jan 2011 12:07:14 +0000 Christian http://www.semanticblog.eu/?p=1368



PHP als Apache-Modul benutzt das CGI (Common Gateway Interface) um Anfragen an einen Webserver zu senden und das Resultat wieder an den Webbrowser zurückzusenden.
Dabei wird für jede Anfrage ein neuer Prozess erstellt, der nach der Verarbeitung des Scripts wieder beendet wird.
Hierdurch kann ein Overhead entstehen, da oftmals der Start des Scripts mehr Zeit in Anspruch nimmt, als dessen Verarbeitung. Weiterhin muss jedes Mal der PHP-Interpreter in den Speicher geladen werden.

Um diese Nachteile zu vermeiden ist die Verwendung von PHP5-fcgi ratsam, da unter FastCGI das auszuführende Programm (und der Interpreter) nur einmal geladen wird. Es steht dann für mehrere Requests zur Verfügung. Hierbei spielt es dann keine Rolle, ob der Request vom selben Client oder von unterschiedlichen Clients stammt.

Bei http://phpperformance.de findet sich eine sehr gute und detaillierte Erläuterung, welche Vor- und Nachteile mit der Benutzung von Fcgi in Kombination mit PHP5 einhergehen.

  1. Zuerst müssen die entsprechenden Pakete installiert werden. Sollte der Apache mpm-prefork vorhanden sein, wird dieser bei der Installation der neuen Pakete automatisch entfernt.
          apt-get install libapache2-mod-fcgid php5-cgi apache2.2-common apache2-utils apache2-mpm-worker apache2-suexec
          
  2. Jetzt aktivieren wir die beiden Module fcgi und SuExec:

          a2enmod fcgid
          a2enmod suexec
          
  3. Nun brauchen wir einen Account bzw. einen User, unter dessen Rechten PHP5 in Zukunft läuft. Danach muss er noch der Gruppe www-data zugewiesen werden.

          adduser test
          usermod -G test -a www-data
          

    Der Parameter -a hängt die neue Gruppe an die bisherigen an und erhält damit die Gruppenzugehörigkeiten.

  4. Verzeichnisse anlegen
    Nun legen wir die Verzeichnisse für den User an und weisen ihm die Rechte zu:

          mkdir /var/www/test.tld
          chown root:test /var/www/test.tld
          chmod 750 /var/www/test.tld
          mkdir /var/www/test.tld/conf
          mkdir /var/www/test.tld/www
          mkdir /var/www/test.tld/logs
          mkdir /var/www/test.tld/tmp
          mkdir /var/www/test.tld/php5
          chown test:test /var/www/test.tld/*
          chmod 750 /var/www/test.tld/*
          
  5. php.ini anpassen
    Nun kopieren wir die php.ini in das Userverzeichnis.

          cp /etc/php5/cgi/php.ini /var/www/test.tld/conf
          
  6. Um die Sicherheit etwas zu erhöhen editieren wir die php.ini. Mit diesen Einstellungen begrenzen wir den PHP-Prozess und die Sessiondaten auf das Userverzeichnis. Die hochgeladenen Dateien werden in ein eigenes temporäres Verzeichnis gespeichert.

          vim /var/www/test.tld/conf/php
          open_basedir      = /var/www/test.tld/www/:/var/www/test.tld/tmp/
          upload_tmp_dir    = /var/www/test.tld/tmp
          session.save_path = /var/www/test.tld/tmp
          
  7. fcgi Starter erstellen:
    Die Magic Line: #!/bin/sh am Anfang ist wichtig! Ohne den Eintrag würde das Betriebssystem die Ausführung verweigern.

    cat > /var/www/test.tld/php5/php-fcgi-starter << "EOF"
    #!/bin/sh
    PHPRC="/var/www/test.tld/conf/"
    export PHPRC
    exec /usr/bin/php5-cgi
    EOF
    
  8. Nun werden die Benutzer- und Zugriffsrechte gesetzt.

          chown test:test /var/www/test.tld/php5/php-fcgi-starter
          chmod 750 /var/www/test.tld/php5/php-fcgi-starter
          
  9. Als Nächstes wird der FCGI-Starter mit einem Schreibschutz belegt. Das hat zur Folge, dass er nicht mehr verändert werden kann. Um dies rückgängig zu machen, muss statt dem Parameter +i, -i verwendet werden.

          chattr +i -V /var/www/test.tld/php5/php-fcgi-starter
          
  10. Vhost anlegen:

    cat > /etc/apache2/sites-available/test.tld << "EOF"
    <VirtualHost *>
        ServerAdmin chris@test.tld
        ServerName test.tld
        SuexecUserGroup test test
        AddHandler fcgid-script .php
        DocumentRoot "/var/www/test.tld/www"
        DirectoryIndex index.htm index.html index.php
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory "/var/www/test.tld/www">
        Options Indexes MultiViews FollowSymLinks +ExecCGI
        FCGIWrapper /var/www/test.tld/php5/php-fcgi-starter .php
        Order allow,deny
        allow from all
    </Directory>
    ErrorLog /var/www/test.tld/logs/error.log
    LogLevel warn
    CustomLog /var/www/test.tld/logs/access.log combined
    ServerSignature On
    </VirtualHost>
    EOF
    
  11. Abschließend wird der Vhost aktiviert und danach der Server neu gestartet.

          a2ensite test.tld
          /etc/init.d/apache2 restart
         

]]>
http://www.semanticblog.eu/2011/01/05/apache2-mpm-worker-installation-suexec-php5-fcgi/feed/ 0
Nginx unterstützt keine Chains in Zertifikaten http://www.semanticblog.eu/2010/10/09/nginx-unterstutzt-keine-chains-in-zertifikaten/ http://www.semanticblog.eu/2010/10/09/nginx-unterstutzt-keine-chains-in-zertifikaten/#comments Sat, 09 Oct 2010 11:19:26 +0000 Christian http://www.semanticblog.eu/2010/10/09/nginx-unterstutzt-keine-chains-in-zertifikaten/

Nginx unterstützt im Gegensatz zum Apache-Server keine Chains in SSL-Zertifikaten. Das heißt, sie werden bei nginx nicht wie beim Apache-Server in der Konfiguration seperat ausgewiesen. Der Trick ist, die Chain-Datei an das eigentliche Zertifikat anzuhängen (cat chain.crt >> mysite.com.crt).

In der SSL-Dokumentation von nginx steht folgendes zu lesen:

This module enables HTTPS support.

It supports checking client certificates with two limitations:

* it’s not possible to assign a Certificate Revocation List for Nginx versions below 0.8.7.
* if you have a chain of certificates — by having intermediate certificates between the server certificate and the CA root certificate —
they’re not specified separately like you would do for Apache.
Instead you’ll need to concatenate all the certificates, starting with the server certificate,
and going deeper in the chain running through all the intermediate certificates.
This can be done with “cat chain.crt >> mysite.com.crt” on the command line.
Once this is done there’s no further use for all the intermediate certificates in what Nginx is concerned.
You’ll indicate in the Nginx configuration the file with all the (concatenated) certificates.

]]>
http://www.semanticblog.eu/2010/10/09/nginx-unterstutzt-keine-chains-in-zertifikaten/feed/ 0
25 nützliche bash-Befehle http://www.semanticblog.eu/2010/02/14/25-nutzliche-bash-befehle/ http://www.semanticblog.eu/2010/02/14/25-nutzliche-bash-befehle/#comments Sun, 14 Feb 2010 17:33:12 +0000 Christian http://www.semanticblog.eu/?p=1210

  1. Ctrl+R durchsucht die letzten Befehle interaktiv.
    Einfach die Anfangsbuchstaben des Befehls eingeben und dann einige Male Ctrl+R drücken.
    Für die Suche im Vi existiert der Befehl ‘/’.
  2. Wie oft wird beim Neustarten von Diensten der sudo-Befehl vergessen?

    $ /etc/init.d/apache2 restart 

    Mit

    $ sudo !!

    wird der letzte Befehl als sudo erneut ausgeführt.
    Der nächste Befehl ist das Äquivalent für vi, falls dieser nicht als sudo gestartet wurde.

    :w !sudo tee %
  3. Machmal ist es erforderlich, den vorangegangenen Befehl als Argument für den nächsten Befehl zu verwenden:

    $ mkdir /tmp/new
    $ cd !!:*
    
  4. Ein Verzeichnis mit zugehörigen Unterverzeichnissen erzeugen:

    $ mkdir -p tmp/a/b/c
    
  5. Wollen Sie einem Kollegen schnell einige Dateien zur Verfügung stellen?
    Ein einfacher HTTP-Server
    wird gestartet und zeigt den Inhalt des aktuellen Ordners an.
    Mit dem alias funktioniert dies noch einfacher.

    $ python -m SimpleHTTPServer
    alias webshare='python -c "import SimpleHTTPServer;SimpleHTTPServer.test()"'
    
  6. Zurückwechseln in das Verzeichnis, aus dem man kam:

    $ cd -
  7. Eine Mischung aus ping und traceroute. Das beste aus zwei Welten:

    $ mtr heise.de
    
  8. Wie top nur anschaulicher und mit der Maus bedienbar:

    $ apt-get install htop
    $ htop
    
  9. Der Befehl ls wird meistens mit den Parametern l, la oder lha ausgeführt. Ein alias erspart zukünftig deren Eingabe.
    Der alias thor zeigt, nachdem er eingerichtet wurde, kürzlich veränderte Dateien in einem Ordern schön sortiert an und ist leicht zu merken.

    alias ll='ls -lha'
    alias thor='ls -thor'
    

    Zeige nur die Unterverzeichnisse des aktuellen Verzeichnisses an.

    $ ls -d */
    
  10. Zeigt die 5 Prozesse an, die am meisten Speicher verbrauchen:

    $ ps -auxf | sort -nr -k 4 | head -5
    
  11. Zeigt die 5 Prozesse an, welche am meisten die CPU belasten:

    $ ps -auxf | sort -nr -k 3 | head -5
    
  12. Durchsucht die history. Im ersten Fall wird nur der zuletzt ausgeführte Befehl zurückgegeben.
    Das ‘:p’ sorgt dafür, dass der Befehl nicht ausgeführt, sondern ausgegeben wird.

    $ !suchterm:p
    $ history | grep suchterm
    
  13. $ ssh-copy-id user@host 

    kopiert ssh-Schlüssel nach user@host um ssh-Logins ohne Passworteingabe zu ermöglichen.
    Um die Schlüssel zu erzeugen, führen Sie

    $ ssh-keygen

    aus.

  14. Ein Video des Linux-Desktops erzeugen:

    $ ffmpeg -f x11grab -s wxga -r 25 -i :0.0 -sameq /tmp/out.mpg
  15. Twittern mit curl:

    $ curl -u user:passwd -d status="Hi!" http://twitter.com/statuses/update.xml
  16. Backup von del.icio.us-Lesezeichen mit curl:

    $ curl -u username -o bookmarks.xml https://api.del.icio.us/v1/posts/all
  17. Eine Datei leeren. Nützlich bei großen Logfiles.

    $ > file.txt
  18. Fährt den Rechner in drei Stunden herunter. Falls Sie zum Beispiel noch einen Download laufen haben, aber Strom sparen wollen.

    $ shutdown -h 180
  19. In der Shell sind man pages nicht so schön zu lesen, wie mit dem Acrobat Reader. Deshalb können sie bei Bedarf in PDFs umgewandelt werden:

    $ man -t ssh | ps2pdf - > ssh_manual.pdf
    $ acroread ssh_manual.pdf
    
  20. Umbenennen, kopieren und verschieben von Dateien mit bestimmten Dateiendungen:

    $ cp /home/foo/langername.cpp{,-old}
  21. Die ~./bashrc kann mit folgenden Einträgen versehen werden, um die history etwas zu vergrößern.
    So wird nie wieder ein einmal ausgeführter Befehl vergessen und es entsteht im Laufe der Zeit ein kleines Nachschlagewerk:

    PROMPT_COMMAND='history -n; history -a'
    HISTSIZE=100000
    HISTFILESIZE=100000
    HISTIGNORE="&:[ ]*:exit"
    shopt -s histappend
    
  22. Bash-Shortcuts:

    Ctrl-U - Linksseitige Einträge ausschneiden
    Ctrl-W - Wörter, die links vom cursor stehe ausschneiden
    Ctrl-Y - Einfügen des Pufferinhalts
    Ctrl-A - Zum Anfang der Zeile gehen
    Ctrl-E - Zum Ende der Zeile gehen
    
  23. Passwörter schnell generieren:

    alias genpasswd='< /dev/urandom tr -dc A-Za-z0-9_ | head -c10 | more'
  24. In bestimmten Situationen ist es erforderlich, das ein daemon immer läuft.
    Das nachfolgende Kommando überprüft ob ein daemon gestartet ist. Wenn nicht, wird dieser gestartet.
    Besonders nützlich ist der Befehl, wenn er mit cron kombiniert wird.

    $ ps -C someprogram || { someprogram & }
  25. Temporären RAM-Partition können zum Beispiel verwendet werden, um dort cache-Dateien abzulegen, falls diese nicht zu groß sind.
    Die Schreib-Leseoperationen erfolgen dann aus dem RAM, was einen immensen Geschwindigkeitsvorteil gegenüber der Festplatte bietet.

    $ mount -t tmpfs tmpfs /mnt -o size=1024m

    Achtung! Wenn der Rechner neu gestartet ist, werden die Inhalte dieser Partition gelöscht.

  26. Traversierung eines Dateiverzeichnisses mit Suche nach Dateien, die einem regulären Ausdruck entsprechen:

    find . -exec grep -l -e 'myregex' {} \; >> outfile.txt
  27. Bei Web-Applikationen Zugriffspfade setzen:

    find . -type d -exec chmod 755 {} \;

Quellen:

Reblog this post [with Zemanta]
]]>
http://www.semanticblog.eu/2010/02/14/25-nutzliche-bash-befehle/feed/ 0
htop – besser als top http://www.semanticblog.eu/2009/11/08/htop-besser-als-top/ http://www.semanticblog.eu/2009/11/08/htop-besser-als-top/#comments Sun, 08 Nov 2009 12:23:14 +0000 Christian http://www.semanticblog.eu/?p=1038

Wer einen gutes Tool sucht um unter Linux Prozesse zu betrachten und die Systemlast zu untersuchen ist mit top gut bedient. Doch es gibt noch ein weiteres sehr gutes Werkzeug, welches denselben Zweck erfüllt:

htop – zu finden bei http://htop.sourceforge.net/.

Die Installation gestaltet sich zumindest unter Debian- beziehungsweise Ubuntu-Systemen sehr einfach:

apt-get install htop

Mit htop wird die Software dann aufgerufen. htop bietet den Vorteil komplett mit der Maus bedienbar zu sein und die Darstellung wichtiger Systemeigenschaften wird meines Erachtens schöner dargestellt. Anbei ein Bild:

htop - Interaktiver Prozessbetrachter

htop - Interaktiver Prozessbetrachter

Die Auslastung der CPU und der Füllstand des Arbeitspeichers werden durch farbige Balken angezeigt. Dies ist vor allem bei Mehrprozessormaschinen interessant, da hier für jeden Prozessor ein eigener Infobalken dargestellt wird. Wie von top gewohnt, dürfen natürlich auch die Anzeige der Prozesse und die Einträge für den Systemload nicht fehlen. Prozesse können auch nach unterschiedlichen Kriterien geordnet angezeigt werden, Dazu dient das Menü ganz unten im Bild.

]]>
http://www.semanticblog.eu/2009/11/08/htop-besser-als-top/feed/ 0
ssh config http://www.semanticblog.eu/2009/11/06/ssh-config/ http://www.semanticblog.eu/2009/11/06/ssh-config/#comments Thu, 05 Nov 2009 23:02:56 +0000 Christian http://www.semanticblog.eu/?p=1027

Haben Sie auch das Problem, sich jeden Tag auf viele unterschiedliche Server mit SSH einloggen zu müssen?
Ein Arbeitskollege hat mich auf einen kleinen Trick hingeweisen, der den Prozess etwas vereinfacht: Die Möglichkeit eine ssh-config zu erstellen.
Auf diese Weise wird die umständliche Schreibweise: ssh testserver@test.com -lUserName vermieden.
Als nächstes müssen Sie den Befehl “touch ~/.ssh/config” ausführen.

In diese Datei werden nun folgende Angaben mit aufgenommen (vim ~/.ssh/config):

Host t1
User chris
Port 22
HostName servername.test.com
Compression yes

Host test-alias2
User chris
Port 22
HostName servername.test2.com
Compression yes

usw…

Tada! Nur noch folgenden Befehl eingeben und schon gehts los: “ssh t1″’. Viel schneller gehts nicht, glaub ich …

]]>
http://www.semanticblog.eu/2009/11/06/ssh-config/feed/ 0
Apache-Beispielkonfiguration für SSL + Trac + Subversion http://www.semanticblog.eu/2009/09/23/apache-beispielkonfiguration-ssl-trac-subversion/ http://www.semanticblog.eu/2009/09/23/apache-beispielkonfiguration-ssl-trac-subversion/#comments Wed, 23 Sep 2009 21:30:38 +0000 Christian http://www.semanticblog.eu/?p=941

Ich habe heute ein kleines Entwicklungssystem mit Trac und Subversion aufgesetzt  und möchte das dokumentieren, da die Anpassung der Apache-Direktiven kein Spass ist. Der Schwerpunkt liegt wirklich auf der Apache Konfiguration, da es für die Installation von Apache2, Trac und Subversion sehr gute Tutorials gibt.

Der Zugriff auf Trac und SVN soll über https laufen und passwortgeschützt sein. Der Einhachheit wegen habe ich nur eine htpasswd erzeugt, welche sowohl von Trac, als auch von SVN benutzt werden und die auch dazu dient, die Webseiten zu schützen die später über Port 80 abrufbar sind (also, alles was in /var/www liegt).

Apache installieren (siehe http://www.howtoforge.com/perfect-server-ubuntu-9.04-ispconfig-2-p6) :

sudo apt-get install apache2 apache2-doc apache2-mpm-prefork apache2-utils apache2-suexec libexpat1 ssl-cert

Dann PHP5, Ruby, and Python als Apache-Module installieren:

sudo apt-get install libapache2-mod-php5 libapache2-mod-ruby libapache2-mod-python php5 php5-common php5-curl php5-dev php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-mhash php5-ming php5-mysql php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl

Die /etc/apache2/mods-available/dir.conf anpassen:

vi /etc/apache2/mods-available/dir.conf

und diesen Abschnitt editieren:

#DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
DirectoryIndex index.html index.htm index.shtml index.cgi index.php index.php3 index.pl index.xhtml
Trac installieren:

http://trac.edgewall.org/wiki/0.11/TracOnUbuntu

Selbst-signierte SSL Zertifikate erzeugen:

sudo openssl genrsa -out ./server.key 1024
sudo openssl req -new -key ./server.key -out ./server.csr
sudo openssl x509 -req -days 10000 -in ./server.csr -signkey ./server.key -out ./server.crt

Apache Direktiven anpassen (die AllowOverride AuthConfig ist wichtig, wenn man später auf .htaccess-Dateien in den Foldern verzichten möchte):

NameVirtualHost *:443
NameVirtualHost *:80

<VirtualHost *:80>
ServerName localhost
DocumentRoot /var/www/

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

<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride AuthConfig
Order allow,deny
allow from all

AuthType Basic
AuthName “non-ssl websites”
AuthUserFile /etc/svn/.myprojects.passwd
Require valid-user
</Directory>

ErrorLog /var/log/apache2/error.log
LogLevel warn
CustomLog /var/log/apache2/access.log combined
ServerSignature Off
</VirtualHost>

#<VirtualHost *:80>
#ServerName potentieller zweiter VHost
#DocumentRoot /www/potentieller_zweiter_vhost
#</VirtualHost>

<VirtualHost *:443>
ServerAdmin webmaster@localhost
ServerName localhost
#DocumentRoot /var/www
ErrorLog /var/log/apache2/error.trac.log
CustomLog /var/log/apache2/access.trac.log combined

<Location /projects>
SetHandler mod_python
PythonInterpreter main_interpreter
PythonHandler trac.web.modpython_frontend
PythonOption TracEnvParentDir /var/lib/trac
PythonOption TracUriRoot /projects
PythonOption PYTHON_EGG_CACHE /tmp
</Location>

<Location /svn>
DAV svn
SVNPath /var/lib/svn/myprojects
AuthType Basic
AuthName “Subversion Repository”
AuthUserFile /etc/svn/.myprojects.passwd
Require valid-user
</Location>

# use the following for one authorization for all projects
# (names containing “-” are not detected):
<LocationMatch “/projects/[[:alnum:]]+/login”>
AuthType Basic
AuthName “trac”
AuthUserFile /etc/svn/.myprojects.passwd
Require valid-user
</LocationMatch>
#   Enable/Disable SSL for this virtual host.
SSLEngine on

#   A self-signed (snakeoil) certificate can be created by installing
#   the ssl-cert package. See
#   /usr/share/doc/apache2.2-common/README.Debian.gz for more info.
#   If both key and certificate are stored in the same file, only the
#   SSLCertificateFile directive is needed.

SSLCertificateFile    /etc/apache2/ssl/server.crt
SSLCertificateKeyFile /etc/apache2/ssl/server.key

#   Server Certificate Chain:
#   Point SSLCertificateChainFile at a file containing the
#   concatenation of PEM encoded CA certificates which form the
#   certificate chain for the server certificate. Alternatively
#   the referenced file can be the same as SSLCertificateFile
#   when the CA certificates are directly appended to the server
#   certificate for convinience.
#SSLCertificateChainFile /etc/apache2/ssl.crt/server-ca.crt

#   Certificate Authority (CA):
#   Set the CA certificate verification path where to find CA
#   certificates for client authentication or alternatively one
#   huge file containing all of them (file must be PEM encoded)
#   Note: Inside SSLCACertificatePath you need hash symlinks
#         to point to the certificate files. Use the provided
#         Makefile to update the hash symlinks after changes.
#SSLCACertificatePath /etc/ssl/certs/
#SSLCACertificateFile /etc/apache2/ssl.crt/ca-bundle.crt

#   Certificate Revocation Lists (CRL):
#   Set the CA revocation path where to find CA CRLs for client
#   authentication or alternatively one huge file containing all
#   of them (file must be PEM encoded)
#   Note: Inside SSLCARevocationPath you need hash symlinks
#         to point to the certificate files. Use the provided
#         Makefile to update the hash symlinks after changes.
#SSLCARevocationPath /etc/apache2/ssl.crl/
#SSLCARevocationFile /etc/apache2/ssl.crl/ca-bundle.crl

#   Client Authentication (Type):
#   Client certificate verification type and depth.  Types are
#   none, optional, require and optional_no_ca.  Depth is a
#   number which specifies how deeply to verify the certificate
#   issuer chain before deciding the certificate is not valid.
#SSLVerifyClient require
#SSLVerifyDepth  10

#   Access Control:
#   With SSLRequire you can do per-directory access control based
#   on arbitrary complex boolean expressions containing server
#   variable checks and other lookup directives.  The syntax is a
#   mixture between C and Perl.  See the mod_ssl documentation
#   for more details.
#<Location />
#SSLRequire (    %{SSL_CIPHER} !~ m/^(EXP|NULL)/ \
#            and %{SSL_CLIENT_S_DN_O} eq “Snake Oil, Ltd.” \
#            and %{SSL_CLIENT_S_DN_OU} in {“Staff”, “CA”, “Dev”} \
#            and %{TIME_WDAY} >= 1 and %{TIME_WDAY} <= 5 \
#            and %{TIME_HOUR} >= 8 and %{TIME_HOUR} <= 20       ) \
#           or %{REMOTE_ADDR} =~ m/^192\.76\.162\.[0-9]+$/
#</Location>

#   SSL Engine Options:
#   Set various options for the SSL engine.
#   o FakeBasicAuth:
#     Translate the client X.509 into a Basic Authorisation.  This means that
#     the standard Auth/DBMAuth methods can be used for access control.  The
#     user name is the `one line’ version of the client’s X.509 certificate.
#     Note that no password is obtained from the user. Every entry in the user
#     file needs this password: `xxj31ZMTZzkVA’.
#   o ExportCertData:
#     This exports two additional environment variables: SSL_CLIENT_CERT and
#     SSL_SERVER_CERT. These contain the PEM-encoded certificates of the
#     server (always existing) and the client (only existing when client
#     authentication is used). This can be used to import the certificates
#     into CGI scripts.
#   o StdEnvVars:
#     This exports the standard SSL/TLS related `SSL_*’ environment variables.
#     Per default this exportation is switched off for performance reasons,
#     because the extraction step is an expensive operation and is usually
#     useless for serving static content. So one usually enables the
#     exportation for CGI and SSI requests only.
#   o StrictRequire:
#     This denies access when “SSLRequireSSL” or “SSLRequire” applied even
#     under a “Satisfy any” situation, i.e. when it applies access is denied
#     and no other module can change it.
#   o OptRenegotiate:
#     This enables optimized SSL connection renegotiation handling when SSL
#     directives are used in per-directory context.
#SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire
<FilesMatch “\.(cgi|shtml|phtml|php)$”>
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>

#   SSL Protocol Adjustments:
#   The safe and default but still SSL/TLS standard compliant shutdown
#   approach is that mod_ssl sends the close notify alert but doesn’t wait for
#   the close notify alert from client. When you need a different shutdown
#   approach you can use one of the following variables:
#   o ssl-unclean-shutdown:
#     This forces an unclean shutdown when the connection is closed, i.e. no
#     SSL close notify alert is send or allowed to received.  This violates
#     the SSL/TLS standard but is needed for some brain-dead browsers. Use
#     this when you receive I/O errors because of the standard approach where
#     mod_ssl sends the close notify alert.
#   o ssl-accurate-shutdown:
#     This forces an accurate shutdown when the connection is closed, i.e. a
#     SSL close notify alert is send and mod_ssl waits for the close notify
#     alert of the client. This is 100% SSL/TLS standard compliant, but in
#     practice often causes hanging connections with brain-dead browsers. Use
#     this only for browsers where you know that their SSL implementation
#     works correctly.
#   Notice: Most problems of broken clients are also related to the HTTP
#   keep-alive facility, so you usually additionally want to disable
#   keep-alive for those clients, too. Use variable “nokeepalive” for this.
#   Similarly, one has to force some clients to use HTTP/1.0 to workaround
#   their broken HTTP/1.1 implementation. Use variables “downgrade-1.0″ and
#   “force-response-1.0″ for this.
BrowserMatch “.*MSIE.*” \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
ServerSignature Off
</VirtualHost>

]]>
http://www.semanticblog.eu/2009/09/23/apache-beispielkonfiguration-ssl-trac-subversion/feed/ 0
Linux: Größe der History anpassen http://www.semanticblog.eu/2009/09/21/linux-size-groesse-history-anpassen-einstellen/ http://www.semanticblog.eu/2009/09/21/linux-size-groesse-history-anpassen-einstellen/#comments Mon, 21 Sep 2009 11:52:30 +0000 Christian http://www.semanticblog.eu/?p=928

Der ‘history’-Befehl unter Linux ist immer wieder nützlich um nachzusehen, was man früher in der Konsole eingegeben wurde. Standardmäßig ist die Historygröße in Ubuntu mit 500 Einträgen etwas knapp bemessen:

Doch das läßt sich leicht ändern:

vim /etc/profile

HISTSIZE=5000

. /etc/profile

]]>
http://www.semanticblog.eu/2009/09/21/linux-size-groesse-history-anpassen-einstellen/feed/ 0