Enterprise Audit Shell (eash) SSL Kommunikation

eash ist ein System, mit dem man über Client-Server-Architektur Shell-Eingaben überwachen kann. RPMS sind bei Mandriva zu finden. Damit die Kommunikation zwischen Client und Server klappt, sind passende Zertifikate zu erzeugen.

openssl entmystifiziert

Selbstsigniertes Zertifikat erzeugen

.self

#!/bin/bash

if [ -z "$1" ]
then
        echo "Usage: `basename "$0"` filename [bits]"
        echo "Create a self signed certificate.  CN is set to filename."
        exit 1
fi
if [ -f "$1.key" -o -f "$1.pem" -o -f "$1.pub" ]
then
        echo "already exists: $1"
        exit 1
fi

openssl genrsa -out "$1.key" "${2:-1024}"
openssl req -subj "/CN=$1" -new -key "$1.key" |
openssl x509 -req -days 9999 -signkey "$1.key" -out "$1.pub"

cat "$1.pub" "$1.key" > "$1.pem"

echo "private: key $1.key certificate $1.pem"
echo "public:  key $1.pub ($1.pub also is the certificate)" 

Signierten Schlüssel erzeugen

.sign

#!/bin/bash

if [ -z "$1" ]
then
        echo "Usage: `basename "$0"` key filename [bits]"
        echo "Create a signed certificate in filename.  CN is set to filename."
        exit 1
fi
if [ -f "$2.key" -o -f "$2.crt" -o -f "$2.pem" -o -f "$2.pub" ]
then
        echo "already exists: $2"
        exit 1
fi
ca="${1%.pem}"
ca="${ca%.}"
if [ ! -f "$ca.pem" -o ! -f "$ca.pub" ]
then
        echo "missing $ca.pem"
        exit 1
fi


openssl genrsa -out "$2.key" "${3:-1024}"
openssl req -subj "/CN=$2" -new -key "$2.key" |
openssl x509 -req -days 9999 -CA "$ca.pem" -CAserial "$ca.srl" -CAcreateserial -out "$2.crt"

if [ -n "$2.crt" ]
then
        cat "$2.crt" "$2.key" "$ca.pub" > "$2.pem"
        cat "$2.crt" "$ca.pub" > "$2.pub"
fi

echo "private: key $2.key certificate $2.pem"
echo "public:  key $2.pub certificate $2.crt" 

Inhalte anzeigen

.list

#!/bin/bash

in="${1%.pem}"
in="${in%.}"
openssl x509 -noout -text -in "$in.pem"
openssl verify -CAfile "$in.pem" "$in.pem" 

CA, Server- und Client Zertifikate erzeugen

root Zertifikat

  • ./.self root

server Zertifikat

  • ./.sign root server

client Zertifikat

  • ./.sign root client

Server: easd_config

/etc/eas/easd_config

PrivateKey /etc/eas/certs/server.pem
CertificateAuthority /etc/eas/certs/root.pem

Client: eash_config

/etc/eas/eash_config

PrivateKey /etc/eas/certs/client.pem
CertificateAuthority /etc/eas/certs/root.pem
LogServer logging.server.com

Client: shells

Wir wollen als Login-Shell für unsere Benutzer /bin/bash, somit erzeugen wir gemäß Dokumentation den Symlink.

  • ln -s /usr/bin/eash /usr/bin/eash_bin_bash

/etc/shells

/usr/bin/eash_bin_bash

Client: passwd

Der Benutzer test soll in all seinem Tun überwacht werden. Somit ist die /etc/passwd entsprechend anzupassen.

/etc/passwd

test:x:500:500::/home/test:/usr/bin/eash_bin_bash

Test

  • service easd start (auf logging.server.com)
  • su - test (oder ssh -l test machine.server.com)
  • In /var/log/easd/<ip>/<originalClientUsername>/<realusername>-<lfd-nr> (vgl. Kapitel 2.8 EAS Admin Guide) wird das Session Log geschrieben und kann mittels eas_play jederzeit abgerufen werden.
 
wissen/security/eash-easd-ehemals-sudosh-enterprise-audit-shell-howto-create-ssl-certificates-for-communication.txt · Zuletzt geändert: 05.09.2010 20:31
 
Recent changes RSS feed Donate Valid XHTML 1.0 Valid CSS Recent cached RSS feed cacert-signed web site: inhalt.serviert.de