Skip to content

Instantly share code, notes, and snippets.

@ictus4u
Forked from elarif/00. init-passwords
Created August 18, 2022 04:20
Show Gist options
  • Save ictus4u/71fb10b38779b9d6deaf628bbe3b718b to your computer and use it in GitHub Desktop.
Save ictus4u/71fb10b38779b9d6deaf628bbe3b718b to your computer and use it in GitHub Desktop.
#!/bin/sh
## Fonction pour générer un password.
## "randpw" pour générer un mot de passe aléatoire de 32 caractères
## "randpw <n>" pour générer un mot de passe aléatoire de <n> caractères
randpw(){ < /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-32};echo;}
## Définir les mots de passe et les exporter pour qu'ils soient visibles des scripts.
cat > passwords << EOF
DATA_CONFIG_PASSWORD=`randpw`
DATA_ADMIN_PASSWORD=`randpw`
DATA_SERVICE_PASSWORD=`randpw`
JBOSS_PASSWORD=`randpw 8`
EOF
#!/bin/sh
. ./passwords
yum -y remove openldap-servers openldap-clients
rm -fr /var/lib/ldap/*
rm -fr /etc/openldap/*
rm -fr /tmp/openldap
## Récupérer Openldap*.tar et l'extraire
mkdir -p /tmp/openldap && tar -xf Openldap_20160517.tar -C /tmp/openldap && cd /tmp/openldap
## supprimer les ^M des fichiers sh
sed -i 's/\r//' ./*.sh
## Supprimer les mots de passe en dur dans les shell par les variables exportées
sed -i 's/dataCnsa\*!/$DATA_ADMIN_PASSWORD/' ./*.sh
sed -i 's/configCnsa\*!/$DATA_CONFIG_PASSWORD/' ./*.sh
## Mettre les ldif d'équerre
sed -i 's/^\([^ :]\+ \)/ \1/' /tmp/openldap/*.ldif
#4.3 LDAP
yum -y install openldap-servers openldap-clients
# 5. PRE-INSTALLATION
for i in ldap*; do chmod +x $i;done
## 5.1.1 SUPPRESSION DE LA BASE ET DES DONNEES D’EXEMPLE
rm -rf /var/lib/ldap/*
rm -rf /etc/openldap/slapd.d/cn=config/olcDatabase={2}bdb.ldif
## Redémarrer le serveur OpenLDAP
service slapd start
## 5.1.2 MISE EN PLACE DES LOGS
cat >> /etc/rsyslog.conf <<EOF
# Log Openldap
local4.* /var/log/slapd.log
EOF
## Pour la rotation des logs configurer logrotate comme ci dessous :
cat > /etc/logrotate.d/openldap <<EOF
# OpenLDAP
/var/log/slapd.log {
missingok
notifempty
compress
daily
rotate 10
size=50M
sharedscripts
postrotate
# OpenLDAP logs via syslog, restart syslog if running
/etc/init.d/rsyslog restart
endscript
}
EOF
## Redémarrer les services
service rsyslog restart
service slapd restart
## Définir le mot de passe dans le fichier create_config_password.ldif
cat > create_config_password.ldif <<EOF
dn: cn=config
changetype: modify
dn: olcDatabase={0}config,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=admin,cn=config
dn: olcDatabase={0}config,cn=config
changetype: modify
add: olcRootPW
olcRootPW: $DATA_CONFIG_PASSWORD
EOF
## Créer un mot de passe pour l’utilisateur cn=admin,cn=config via le ldif « create_config_password.ldif »
ldapadd -Y EXTERNAL -H ldapi:/// -f create_config_password.ldif
## 5.1.4 CREER UN LE BACKEND, INTEGRER LE SCHEMA ET LES DONNEES
## Augmenter le loglevel d’openldap
## ./loglevel.ldif: No such file or directory
./ldapadd_config.sh 389 loglevel.ldif
## Redémarrer Openldap
service slapd restart
## mdb.ldif
cat > mdb.ldif <<EOF
dn: olcDatabase=mdb,cn=config
objectClass: olcDatabaseConfig
objectClass: olcMdbConfig
olcDatabase: mdb
olcSuffix: dc=annuaire,dc=cnsa
olcDbDirectory: /var/lib/ldap
olcRootDN: cn=Manager,dc=annuaire,dc=cnsa
olcRootPW: $DATA_ADMIN_PASSWORD
olcAccess: to attrs=userPassword
by self write
by anonymous auth
by dn.base="cn=Manager,dc=annuaire,dc=cnsa" write
by dn.base="uid=service_administration,ou=gestion,dc=annuaire,dc=cnsa" write
by * none
olcAccess: to *
by self write
by dn.base="cn=Manager,dc=annuaire,dc=cnsa" write
by dn.base="uid=service_administration,ou=gestion,dc=annuaire,dc=cnsa" write
by * read
olcDbMaxSize: 1073741824
EOF
## cnsa-data.ldif
sed -i -e '/uid: service_administration/{n;s/.*/userPassword: '$DATA_SERVICE_PASSWORD'\n/;}' cnsa-data.ldif
## Créer le dossier accesslog
mkdir /var/lib/ldap/accesslog
chown -R ldap:ldap /var/lib/ldap
## Lancer le script global sur le port 389. Ce script effectue les actions suivantes :
sed -i '9d' ldapadd_all.sh
sed -i -e '/BASEDIR=/a $BASEDIR\/ldapadd_config.sh $1 module.ldif' ldapadd_all.sh
./ldapadd_all.sh 389
## Vérifier que la commande n’a retourné aucun code erreur
## Fixer les droits du dossier ldap
chown -R ldap:ldap /var/lib/ldap
## Générer les certificats
openssl req -new -newkey rsa:4096 -days 365 -nodes -x509 -subj "/C=FR/ST=IDF/L=PARIS/O=CNSA/CN=cnsa.fr" -keyout ./ldap.key -out ./ldap.crt
cp ldap.crt ldap_ca.crt
mkdir /etc/openldap/cacerts
mv ldap_ca.crt ldap.crt ldap.key /etc/openldap/cacerts
sed -i 's/yes/no/g' /etc/sysconfig/ldap
sed -i '/^#SLAPD_URLS/d' /etc/sysconfig/ldap
cat >> /etc/sysconfig/ldap <<EOF
SLAPD_URLS="ldaps://192.168.56.102 ldap://localhost ldap://192.168.56.102 ldapi:///"
EOF
cat > /etc/openldap/ldap.conf <<EOF
TLS_CACERT /etc/openldap/cacerts/ldap.crt
TLS_REQCERT allow
EOF
service slapd restart
#!/bin/sh
wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/7u79-b15/jdk-7u79-linux-x64.rpm
yum -y --nogpgcheck localinstall jdk-7u79-linux-x64.rpm
#!/bin/sh
. ./passwords
wget http://download.jboss.org/jbossas/7.1/jboss-as-7.1.1.Final/jboss-as-7.1.1.Final.zip
unzip jboss-as-7.1.1.Final.zip -d /opt
export JBOSS_HOME=/opt/jboss-as-7.1.1.Final
$JBOSS_HOME/bin/add-user.sh --silent=true jboss $JBOSS_PASSWORD
vi /etc/rc.d/init.d/jbossas7
cp $JBOSS_HOME/bin/init.d/jboss-as-standalone.sh /etc/rc.d/init.d/jboss
chmod +x /etc/rc.d/init.d/jboss
chkconfig --add jboss
service jboss start
service jboss stop
#!/bin/sh
## install ansible
yum -y install wget
rpm -Uvh https://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
yum -y install ansible
## generate and copy ssh key
HOSTS=(192.168.4.72)
ssh-keygen -N '' -f ~/.ssh/id_rsa
for i in ${HOSTS[@]}; do ssh-copy-id -i ~/.ssh/id_rsa.pub root@$i;done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment