Pense-bête
Cette page regroupes des trucs dont je me sers régulièrement mais dont je suis incapable de me souvenir lors que j'en ai besoin
Contents
1. Cyrus
2. OpenSSL
2.1. Validation
Validatation du contenu d'un CSR: openssl req -text -noout -verify -in csrFile.csr
Validatation du contenu d'une clé privée: openssl rsa -in privateKey.key -check privatekey.rsa
Validatation du contenu d'un crt: openssl x509 -in certificate.crt -text -noout
Validatation du contenu d'un PKCS: openssl pkcs12 -info -in pkcsFile.p12
2.2. Conversion
Conversion d'un fichier de type DER en PEM: openssl x509 -inform der -in fichier.cer -out fichier.pem
Conversion d'un fichier de type PEM en DER: openssl x509 -outform der -in fichier.pem -out fichier.der
Conversion d'un fichier de type PKCS12 en PEM: openssl pkcs12 -in fichier.pkcs -out fichier.pem -nodes
Il est possible d'utiliser les options -nocerts ou -nokeys pour récupérer uniquement la clé privée ou les certificats respectivement.
Conversion d'un fichier de type PEM en PKCS12: openssl pkcs12 -export -out certificate.pkcs -inkey cleprive.txt -in certificat.crt -certfile CACert.crt
3. Gestion des certificats sous JAVA
- Afficher les infos de la clé contenu dans un fichier au format PKCS12
keytool -list -storetype pkcs12 -keystore /tmp/toto.p12
- Affichera les infos de la clé et notamment l'ID de la clé
- Signer une applet avec un certificat au format PKCS12
jarsigner : jarsigner -storetype pkcs12 -keystore /tmp/toto.p12 applet.jar "ID de la Clé"
- Vérfier la signature d'une applet
jarsigner -verbose -verify -certs applet.jar
- Import d'un fichier PKCS12 dans un Keystore:
keytool -importkeystore -destkeystore KEY_STORE_FILE -srckeystore CERT.p12 -srcstoretype pkcs12 -alias Alias
- Lister le contenu d'un Keystore:
keytool -list -keystore KEY_STORE_FILE
- Ajout certificat auto signé dans le keystore par défaut:
keytool -keystore $JAVA_HOME/jre/lib/security/cacerts -import -file certificate.cer
Le mot de passe du keystore est changeit
4. Tomcat
4.1. Redéfinition de l'emplacement du keystore
Par défaut tomcat utilise le fichier cacerts. Il est possible de le redéfinir (pour des raisons de séurité, pour des raisons pratiques: utilisation d'un mot de passe différant, persistance des certificats auto-signés lors des mises à jours). Pour cela, il faut éditer le fichier /etc/default/tomcat55, ajouter:
-Djavax.net.ssl.keyStore=/path/to/keystore -Djavax.net.ssl.trustStore=/path/to/keystore : définit un nouveau keystore
-Djavax.net.ssl.keyStorePassword=motdepassedelamort: le password du keystore.
dans le fichier /etc/default/tomcat55 et relancer tomcat.
4.2. Forces les servelets à utiliser un proxy
- Dans un environnement sécurisé, les applications en sont pas autorisées à accèder à internet sans passer par un proxy et c'est une contrainte forte dans environnement où il exite plusieurs DMZ. Dans le cas de servlets, qui utilisent des services Web, il est possible de définir un proxy global et forcer tous les servelts à utiliser ce proxy. Pour cela, il faut ajouter:
-Dhttp.proxyHost=urlduproxy_http : définition du serveur proxy pour le http.
-Dhttp.proxyPort=portduproxy_https : définition du port du serveur proxy pour le http.
-Dhttps.proxyHost=urlduproxy_https : définition du serveur proxy pour le https.
-Dhttps.proxyPort=portduproxy_https : définition du port du serveur proxy pour le https.
-Djava.net.useSystemProxies=true : force l'utilisation du proxy système.
dans le fichier /etc/default/tomcat55 et relancer tomcat.
5. Essbase Administration Services
Correction d'erreur MAX/L Api can't be load : éditer le fichier /hyprndata/hyperion/eas/server/bin/starEAS vérifier la ligne contenant export ESSLANG. La valeur doit être French_France.Latin1@Default. Dans l'installation par défaut, il manque t à la fin. Il faut, donc, rajouter le t à la fin !
6. Perl
6.1. One liner
- perl -p -i -e 'expression' : équivalente sed. Plusiers expressions peuvent être séparées par des ';'
- -e: perl expression !
- -p: print !
- -i: in-place; équivalent de sed -i
- -n : équivalent de sed -n
- -M: utilise un module ; equivalent de use
Ex 1: (sed)
echo "++++++oduq sdqsd qsdqs ACBCD----------" | perl -i -p -e 's/^\+*//g; s/\-*$//g ; s/(^.)(.*)/\u$1\L$2/'
Résultat: Oduq sdqsd qsdqs acbcd
Ex 2: Encodage et décodage Base64
echo coucou | perl -MMIME::Base64 -ne 'print encode_base64($_)' echo "Y291Y291Cg==" | perl -MMIME::Base64 -ne 'print decode_base64($_)'
6.2. Manipulation de date
- Il faut utiliser le module Date::Manip
Quelques exemples en bash :
- Nombre jours écoulés entre le dernier samedi et aujourd'hui:
expr $(perl -MDate::Manip -e 'print UnixDate(ParseDate("today"), "%e\n");') - $(perl -MDate::Manip -e 'print UnixDate(ParseDate("last saturday"), "%e\n");')- Nombre jours écoulés entre le premier le premier mars 2008 et de l'année en cours et aujourd'hui:
expr $(perl -MDate::Manip -e 'print UnixDate(ParseDate("today"), "%j\n");') - $(perl -MDate::Manip -e 'print UnixDate(ParseDate("03/01"), "%j\n")')- La date du prochain vendredi:
perl -MDate::Manip -e 'print UnixDate(ParseDate("next friday"), "%d/%m/%Y\n")'- A quel jour correspond le 25/02/2008:
perl -MDate::Manip -e 'print UnixDate(ParseDate("02/25/2008"), "%A\n")'- A quel jour en français correspond le 25/02/2008:
perl -MDate::Manip -e 'Date_Init("Language=French"); print UnixDate(ParseDate("02/25/2008"), "%A\n")'* A quel jour en français correspond le 25/02/2008 en utilisant le format de date français (J/M/A)
perl -MDate::Manip -e 'Date_Init("Language=French", "DateFormat=non-US") ;print UnixDate(ParseDate("25/02/2008"), "%A\n")'Pour l'aide sur le module perl s'obtient en tapant perldoc Date::Manip
7. Shell UNIX
7.1. Renommage de fichiers
7.2. Conversion de fichiers .flv vers .avi
ffmpg: ffmpeg -i file.flv file.avi
mencoder: mencoder -oac mp3lame -ovc lavc -o file.avi file.flv
7.3. Vérification du bon bon fonctionnement de postgrey
- Créer un petit script shell contenant
cat | nc -q 1 127.0.0.1 60000 << GEN_GLIST_REQ request=smtpd_access_policy protocol_state=RCPT protocol_name=SMTP client_address=10.0.0.1 client_name=unknown helo_name= sender=$RANDOM@$RANDOM.$RANDOM recipient=$RANDOM@$RANDOM.$RANDOM queue_id= instance=$RANDOM.48a97e09.$RANDOM size=0 GEN_GLIST_REQ
et lancer excuter le script. Si le démon greylist est actif, le message action=DEFER_IF_PERMIT Greylisted for XXX seconds sera affiché!
{!} Pour le bon fonctionnement su script, il faut disposer de l'outil netcat(nc). Il faut également modifier le port et l'ip utilisé par postgrey (qui sont ici 6000 et localhost).
8. Divers
8.1. initramfs
- Mise à jour: update-initramfs -k KERNEl_VERSION -u