Mémo sur la gestion/signature de clés RSA depuis un keystore java

créer la clé privée du ca et le certificat autosigné du ca
 openssl req -x509 -newkey rsa:1024 -keyout ca.key -out ca.crt
créer la paire de clé du user
 $JAVA_HOME/bin/keytool -genkey -alias "Chrystophe Vergnaud" -keyalg RSA -dname "CN=Chrystophe Vergnaud, OU=ICI, O=MY_HOME, L=HOME,S=31, C=FR" -storepass "change_moi" -keypass "un_truc_secret" -keystore cve.jks -storetype jks
faire la demande de certif du user
 ${JAVA_HOME}/bin/keytool -certreq -file cve.csr -storepass "change_moi" -alias "Chrystophe Vergnaud" -keystore cve.jks -storetype jks
signer la demande
 openssl x509 -req -days 1200 -in cve.csr -CA ../ca/ca.crt -CAkey ../ca/ca.key -CAcreateserial -out cve.crt
importer le certificat du CA dans le kstore
 ${JAVA_HOME}/bin/keytool -importcert -trustcacerts -alias "mon_ca" -file ../ca/ca.crt -keystore cve.jks -storepass "change_moi" -storetype jks
 repondre oui a la question
importer le certificat signé dans le kstore
 ${JAVA_HOME}/bin/keytool -importcert -alias "Chrystophe Vergnaud" -file cve.crt -keystore cve.jks -storepass "change_moi" -storetype jks
afficher le contenu du keystore
 ${JAVA_HOME}/bin/keytool -list -v -keystore cve.jks -storepass "change_moi" -storetype jks
exporter en pkcs12
 keytool -importkeystore -srckeystore cve.jks -destkeystore cve.p12 -srcstoretype JKS -deststoretype PKCS12 -srcstorepass "change_moi" -deststorepass "change_moi_mieux"

ps : l’option storepass est à éviter en production mais en phase de test elle évite de choper une crampe.

Utilisation de la commande rsync, ou comment synchroniser vos répertoires distants

Comment faire ?

Le man de rsync est tres bien fait, je dirais simplement qu’il faut le lire pour comprendre les principes.

Pour ceux qui veulent faire vite :

rsync copie/synchronize une source et une destination. Le premier argument est la source et le deuxième argument est la destination.

Un point important avec rsync la gestion du / en fin de path :

 rsync -aivz -e ssh --del user@monserveur.com:"/u01/svnroot/" /data/svn

le / à la fin de « /u01/svnroot/ » indique la copie du contenu du répertoire s’il n’est pas présent c’est le répertoire svnroot qui est copié dans le répertoire /data/svn

Quelques exemples d’utilisation :

Copie d’un fichier vers une destination :
 rsync -v -e ssh user@monserveur.com:/path/fic.tar.gz /autrepath/
Synchronisation de deux répertoires dans un tunnel ssh :
 rsync -aivz -e ssh --del user@monserveur.com:"/path/ftp/" /autrepath/ftp
Dryrun (que du log pas d’action) de la synchronisation précédente :
 rsync -anivz -e ssh --del user@monserveur.com:"/path/ftp/" /autrepath/ftp

Mémos :

  • attention avec l’option –del (c’est la plus rapide car elle supprime à  la volée) la suppression est effective immédiatement. Il est conseillé d’ajouter un n dans les options pour lancer en mode dryrun : il n’y a pas d’exécution effective des commandes seulement un log des actions.
  • pour l’utilisation avec des tunnels ssh, ajoutez votre cle_pub dans les authorized_keys sur le serveur distant pour ne pas avoir à taper votre mot de passe surtout si il s’agit de tâches ordonnancées.

a lire

Tuto API javamail :
http://java.sun.com/developer/onlineTraining/avaMail’/’contents.html#JavaMailSending

Les documents de la defcon 2009 Févier 2009
http://www.ucon-conference.org/archives.php

Les documents u SSTIC 09′ ‘juin 2009 Rennes
http://actes.sstic.org/SSTIC09/

Les documents du blackHat Juillet 2009
http://www.blackhat.com/html/h-usa-09’/’bh-usa-09-archives.html

Les documents du DefCon17 Aout 2009
http://www.defcon.org/html/links/dc-archives/dc-17-archive.html

Les ocuments du’ ‘BRUCON Septembre 2009
http://www.brucon.org/index.php/Presentations

Les documents du VB2009 Septembre 2009 (conférences annuelles du Virus’ Bulletin)
http://www.virusbtn.com/conference/vb2009/slides/index

changer le mot de passe root d un server mysql

‘service mysql’ stop

wait until MySQL shuts down. Then run

mysqld_safe –skip-grant-tables &

then you will be able to login as root with no assword.

mysql’ ‘-uroot mysql

In MySQL command line prompt issue the following command:

UPDATE user SET password=PASSWORD(abcd ») WHERE ser= »root »;
FLUSH’ ‘PRIVILEGES;
EXIT

/etc/init.d/mysqld restart

At this time your root password is reset to  »abcd » and MySQL will ow
know the privileges and you’ll’ ‘be able to login with your new password:

mysql -uroot -p
taper  »abcd » »’

un service de haute dispo minimaliste avec drbd et heartbeat

Fichier ha.cf :
--
udpport 694
ucast th0' 'debian01
ucast eth0 debian02

debugfile /var/log/ha.debug
logfile /var/log/ha.log
logfacility local0

keepalive '2
deadtime 30
warntime 10
initdead 60

node debian01
node debian02

auto_failback off

respawn acluster' '/usr/lib/heartbeat/ipfail
# ping sur la gateway
ping 192.168.1.1

Fichier haresource :
--
debian01 drbddisk::res0 Filesystem::/dev/rbd0::'/'data::ext3 \
tomcat \
debian02

Fichier drbd.conf
--
global {
usage-count yes;
}

common {
syncer
' 'rate 10M;
}
}

resource mail {
protocol C;

handlers {

# a activer si dopd utilisé
# outdate-peer /usr/lib/eartbeat'/'drbd-peer-outdater -t 5'';

}

startup {
degr-wfc-timeout 120; # 2 minutes.
}

disk {
# a activer si dopd tilisé
# ' 'fencing resource-only;
on-io-error detach;
on-io-error detach;
}

net {

cram-hmac-alg ''sha1'';
shared-secret' '''blablabla'';

after-sb-0pri disconnect;

# pas de disconnect sur rr-conflict sinon la resolution manuelle ne asse pas
# rr-conflict' 'disconnect;

}

syncer {
rate 10M;
al-extents 257;
}

on debian01 {
device /dev/rbd0;
disk /dev'/'sda4;
address 192.168.1.11:7788;
meta-disk internal;
}

on debian02 {
device /dev/rbd0;
disk /dev/sda2;
' 'address 192.168.1.12:7788;
meta-disk internal;
}
}

quelques commandes utiles :
Afficher 'état de drbd :
drbd-overview
ou
cat '/'proc/drbd

Restaurer des données apres un split brain ( les 2 noeuds sont secondaires et standalone)
sur le oeud ayant les dernières données :
drbdadm' 'primary res0

sur le noeud desynchro :
drbdadm secondary res0
drbdadm -- --discard-my-data connect es0

si le noeud valide est' 'standalone'

Lost my mysql root password… not such a pain…

Stop Mysql

service mysql stop

wait until MySQL shuts down. Then run

mysqld_safe --skip-grant-tables &

then you will be able to login as root with no assword.

mysql -u root mysql

In MySQL command line prompt issue the following command:

UPDATE user SET password=PASSWORD('abcd') WHERE user=`root`@`localhost`; FLUSH PRIVILEGES; EXIT

Restart Mysql:

/etc/init.d/mysqld restart

Now your root password is reset to  »abcd » and you’ll be able to login with your new password:

mysql -u root -p

Un service de haute dispo minimaliste avec drbd et Heartbeat

Fichier de configuration drbd et heartbeat

Fichier ha.cf :
udpport       694
ucast           eth0 debian01
ucast           eth0 debian02

debugfile     /var/log/ha.debug
logfile         /var/log/ha.log
logfacility    local0

keepalive     2
deadtime      30
warntime      10
initdead       60

node          debian01
node          debian02

auto_failback off

respawn hacluster /usr/lib/heartbeat/ipfail
# ping sur la gateway
ping 192.168.1.1
Fichier haresource :
debian01   drbddisk::res0 Filesystem::/dev/drbd0::/data::ext3 \
            tomcat \
debian02
Fichier drbd.conf
global {
    usage-count yes;
}

common {
  syncer {
     rate 10M;
  }
}

resource mail {
  protocol C;

  handlers {

 # a activer si dopd utilisé
 #   outdate-peer "/usr/lib/heartbeat/drbd-peer-outdater -t 5";

  }

  startup {
    degr-wfc-timeout 120;    # 2 minutes.
  }

  disk {
# a activer si dopd utilisé
#       fencing resource-only;
        on-io-error   detach;
        on-io-error   detach;
  }

  net {

    cram-hmac-alg "sha1";
    shared-secret "blablabla";

     after-sb-0pri disconnect;

# pas de disconnect sur rr-conflict sinon la resolution manuelle ne passe pas
#    rr-conflict disconnect;

  }

  syncer {
    rate 10M;
    al-extents 257;
  }

   on debian01 {
    device     /dev/drbd0;
    disk       /dev/sda4;
    address    192.168.1.11:7788;
    meta-disk  internal;
  }

  on  debian02 {
    device    /dev/drbd0;
    disk        /dev/sda2;
    address   192.168.1.12:7788;
    meta-disk internal;
  }
}

Quelques commandes utiles :

Afficher l’état de drbd :
drbd-overview 
ou
cat /proc/drbd

Restaurer des données apres un split brain

(les 2 noeuds sont secondaires et standalone) sur le noeud ayant les dernières données :

drbdadm primary res0

sur le noeud desynchro :

drbdadm secondary res0
drbdadm -- --discard-my-data connect  res0

Si le noeud valide est standalone, lancer sur le noeud valide :

drbdadm connect res0

Si les 2 nœuds sont primaires, repasser en secondaire/secondaire et régler le conflit.

Invalider un noeud :
drbdadm invalidate res0

attention cela entraine une resynchro complète avec le noeud primaire.

Notes :

les uid et gid doivent correspondre entre les noeuds sinon les accès aux répertoires sur le disque drbd vont planter apres un fail-over.

Le site drbd :

resoudre un split brain manuellement

creer un ca de test et creer son propre certificat

‘# creer un ca de test : generation de la cle priv du ca et de son certificat autosigné.

openssl req -x509 -newkey rsa:1024 -keyout ca.key -out ca.crt

# creer la paire de clé du user

$JAVA_HOME/bin/keytool -genkey -alias MonAlias » -keyalg RSA -dname  »CN=MonIdentite’