Changeset 5939


Ignore:
Timestamp:
Sep 27, 2017, 10:31:28 AM (2 years ago)
Author:
daduve
Message:

Adding reload certificate server file

Location:
epoptes/trunk/fuentes
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • epoptes/trunk/fuentes/debian/changelog

    r5847 r5939  
     1epoptes (0.5.9-lliurex30) xenial; urgency=high
     2
     3  * Adding reload certificate server file
     4
     5 -- Daniel Duran Vecino <daduve@gmail.com>  Wed, 27 Sep 2017 10:29:58 +0200
     6
    17epoptes (0.5.9-lliurex29) xenial; urgency=high
    28
  • epoptes/trunk/fuentes/epoptes-client/epoptes-client

    r5847 r5939  
    3131# As a user, epoptes-client runs from /etc/xdg/autostart.
    3232# Users can cancel that from their System > Preferences > Services gnome menu.
     33log_file="/tmp/.epoptes_log"
    3334VERSION=$(lliurex-version)
    34 LOG_EPOPTES="/tmp/.epoptes_log.txt"
    35 
    36 if [ ! -f $LOG_EPOPTES ]; then
    37         touch $LOG_EPOPTES
    38         chmod 777 $LOG_EPOPTES
    39 fi
    40 
    41 echo "$VERSION" >> $LOG_EPOPTES
     35
     36if [ ! -f $log_file ]; then
     37        touch $log_file
     38        chmod 777 $log_file
     39fi
     40
     41
     42echo "$VERSION" >> $log_file
    4243discover() {
    43         echo "  - Dentro de funcion discover -  " >> $LOG_EPOPTES
    44         echo >> $LOG_EPOPTES
     44        echo "  - Dentro de funcion discover -  " >> $log_file
     45        echo >> $log_file
    4546        MATCH=""
    4647        if [[ "$VERSION" == *server* ]]
     
    5354                fi
    5455        else
    55                 if grep "client" $LOG_EPOPTES > /dev/null
     56                if grep "client" $log_file > /dev/nul
    5657                then
    5758                        if [[ -z "$LTSP_FATCLIENT" ]]; then
    5859                                MATCH="Pesado"
     60                                need_certificate=True
    5961                        else
    6062                                MATCH="Semiligero"
     63                                need_certificate=True
    6164                        fi
    6265                fi
    6366        fi
    64         echo >> $LOG_EPOPTES
    65         echo "** Soy un $MATCH **" >> $LOG_EPOPTES
    66         echo >> $LOG_EPOPTES
     67        echo >> $log_file
     68        echo "** Soy un $MATCH **" >> $log_file
     69        echo >> $log_file
    6770}
    6871
     
    7174die() {
    7275    echo "epoptes-client ERROR: $@" >&2
     76    echo "epoptes-client ERROR: $@" >> $log_file
    7377    exit 1
    7478}
     
    150154fetch_certificate()
    151155{
    152     test "$UID" -eq 0 || die "Need to be root to fetch the certificate"
     156    echo "Comprobando el certificado">> $log_file
     157    echo "Debe ser 0 sino muere, UID : $UID" >> $log_file
     158    test "$UID" -eq 0 || die "Need to be root to fetch the certificate" >> $log_file
    153159    mkdir -p /etc/epoptes
    154160    openssl s_client -connect $SERVER:$PORT < /dev/null \
     
    156162        > /etc/epoptes/server.crt
    157163    if [ -s /etc/epoptes/server.crt ]; then
    158         echo "Successfully fetched certificate from $SERVER:$PORT"
     164        echo "Successfully fetched certificate from $SERVER:$PORT" >> $log_file
     165        echo "Successfully fetched certificate from $SERVER:$PORT"
    159166        exit 0
    160167    else
    161         die "Failed to fetch certificate from $SERVER:$PORT"
     168        echo  "FIRST Failed to fetch certificate from $SERVER:$PORT" >> $log_file
     169        sleep 10
     170        openssl s_client -connect $SERVER:$PORT < /dev/null \
     171        | sed '/-----BEGIN CERTIFICATE-----/,/-----END CERTIFICATE-----/!d' \
     172        > /etc/epoptes/server.crt
     173         if [ -s /etc/epoptes/server.crt ]; then
     174                echo "Successfully fetched certificate from $SERVER:$PORT" >> $log_file
     175                echo "Successfully fetched certificate from $SERVER:$PORT"
     176                exit 0
     177        else
     178                die "SECOND Failed to fetch certificate from $SERVER:$PORT"
     179        fi
     180       
    162181    fi
    163182}
     
    166185# Main.############################################
    167186
    168 echo "">> $LOG_EPOPTES
    169 echo "*******DEPURANDO SCRIPT /USR/SBIN/EPOPTES PARA EL *************    USUARIO : $USER      ******">> $LOG_EPOPTES
    170 echo "">> $LOG_EPOPTES
    171 date >> $LOG_EPOPTES
    172 echo "">> $LOG_EPOPTES
     187echo "">> $log_file
     188echo "*******DEPURANDO SCRIPT /USR/SBIN/EPOPTES PARA EL *************    USUARIO : $USER      ******">> $log_file
     189echo "">> $log_file
     190date >> $log_file
     191echo "">> $log_file
    173192discover
    174 echo "*************** Presesion Lightdm ************"  >> $LOG_EPOPTES
    175 ps aux | grep /usr/sbin/epoptes | grep -v root | grep -v "grep" >> $LOG_EPOPTES
     193echo "*************** Presesion Lightdm ************"  >> $log_file
     194ps aux | grep /usr/sbin/epoptes | grep -v root | grep -v "grep" >> $log_file
    176195USERS_SOCAT=`ps aux | grep /usr/sbin/epoptes | grep -v root | grep -v "grep" | awk '{print $2}' | uniq | wc -l `
    177 echo "USERS_SOCAT = $USERS_SOCAT">> $LOG_EPOPTES;
     196echo "USERS_SOCAT = $USERS_SOCAT">> $log_file;
    178197if [[ "$MATCH" != ligero  ]]; then
    179198        if (("$USERS_SOCAT" > 2 )); then
    180                 echo "Estoy dentro del if matando procesos.......">> $LOG_EPOPTES
     199                echo "Estoy dentro del if matando procesos.......">> $log_file
    181200                for i in `ps aux | grep /usr/sbin/epoptes | grep -v root | grep -v grep | awk '{print $2}' | uniq`; do
    182                         echo "Dentro del FOR para .......">> $LOG_EPOPTES
    183                         ps -aux | grep $i >> $LOG_EPOPTES
    184                         echo "Matando el proceso $i"  >> $LOG_EPOPTES
    185                         kill -9 $i >> $LOG_EPOPTES
     201                        echo "Dentro del FOR para .......">> $log_file
     202                        ps -aux | grep $i >> $log_file
     203                        echo "Matando el proceso $i"  >> $log_file
     204                        kill -9 $i >> $log_file
    186205                done
    187206        fi
    188207fi
    189208
    190 echo "_________MAIN_____________">> $LOG_EPOPTES
     209echo "_________MAIN_____________">> $log_file
    191210
    192211
     
    208227        ;;
    209228    -c|--certificate)
    210         need_certificate=true
     229        need_certificate=True
    211230        shift
    212231        ;;
     
    223242
    224243basic_info
    225 echo "Capturo basic info UID:$UID TYPE:$TYPE SERVER:$SERVER PORT:$PORT">> $LOG_EPOPTES
     244echo "Capturo basic info UID:$UID TYPE:$TYPE SERVER:$SERVER PORT:$PORT">> $log_file
    226245# The configuration file overrides the default values
    227246if [ -f /etc/default/epoptes-client ]; then
     
    233252
    234253# Provide an easy way to fetch the server certificate
    235 test -n "$need_certificate" && fetch_certificate
     254echo "Necesito el certificado -> $need_certificate" >> $log_file
     255#test -n "$need_certificate" && fetch_certificate
     256BAJAR_CERT=True
     257if [ $need_certificate  =  $BAJAR_CERT ];then
     258        echo "Compruebo si el certificado existe con valor != 0 ">> $log_file
     259         if [ ! -s /etc/epoptes/server.crt ]; then
     260                echo "FORZADO -> No tengo el certificado debo adquirirlo del server" >> $log_file
     261                fetch_certificate
     262        fi
     263fi
    236264
    237265# We don't want the epoptes-client system service running on the epoptes server
     
    239267    chrooted
    240268then
    241     lliurex-version -t client || exit 0
     269   echo "--Parte del chrooted--" >> $log_file
     270   if lliurex-version -t client; then
     271        echo "Compruebo como TRUE --> lliurex-version -t client" >> $log_file
     272   else
     273        echo "FIN compruebo como FALSE --> lliurex-version -t client" >> $log_file
     274        exit 0
     275   fi
    242276fi
    243277
     
    296330salida(){
    297331        RUN=0
    298         echo "Estoy en la funcion de SALIDA de $USER" >> $LOG_EPOPTES
    299         date >> $LOG_EPOPTES
    300         echo "Quiero matar el proceso $BASHPID" >> $LOG_EPOPTES
     332        echo "Estoy en la funcion de SALIDA de $USER" >> $log_file
     333        date >> $log_file
     334        echo "Quiero matar el proceso $BASHPID" >> $log_file
    301335        #kill -9 $BASHPID
    302336}
     
    304338test_conn(){
    305339    if [ -z ${LTSP_CLIENT} ]; then
    306         echo "Testeando la funcion CONN $USER">> $LOG_EPOPTES
     340        echo "Testeando la funcion CONN $USER">> $log_file
    307341        #exit 0
    308342        #RUN=0
     
    311345    ping -c 2 ${LTSP_CLIENT}
    312346    if [ $? -eq 0 ]; then
    313         echo "Estamos en if del ping -c">> $LOG_EPOPTES
    314         exit 0
    315     fi
    316     echo "vamos a salida">> $LOG_EPOPTES
     347        echo "Estamos en if del ping -c">> $log_file
     348        #exit 0
     349        return 0
     350    fi
     351    echo "vamos a salida">> $log_file
    317352    salida
    318353}
     
    320355trap salida KILL TERM QUIT INT STOP EXIT
    321356
     357
    322358if [ -s /etc/epoptes/server.crt ] || [ "$cert_param" = "verify=0" ]; then
    323    echo "Dentro del if antes del while 1 del usuario $USER" >> $LOG_EPOPTES
     359   echo "Dentro del if antes del while 1 del usuario $USER" >> $log_file
    324360   while [ ${RUN} -eq 1 ] && sleep 1; do
    325361        ALIVE=$(ps ax|grep $PPID|grep -v grep|wc -l)
    326         echo "Dentro del While porque el RUN es $RUN para usuario $USER">> $LOG_EPOPTES
    327         echo "Haciendo el wait.....Ahora nop" >> $LOG_EPOPTES
     362        echo "Dentro del While porque el RUN es $RUN para usuario $USER">> $log_file
     363        echo "Haciendo el wait.....Ahora nop" >> $log_file
    328364        USERS_SOCAT_POST=`ps aux | grep /usr/sbin/epoptes | grep -v root | grep -v "grep" | awk '{print $2}' | uniq | wc -l `
    329         echo "Calculado el USERS_SOCAT_POST: $USERS_SOCAT_POST" >> $LOG_EPOPTES
     365        echo "Calculado el USERS_SOCAT_POST: $USERS_SOCAT_POST" >> $log_file
    330366        if (("$USERS_SOCAT_POST" < 3 )) || [[ "$MATCH" == "ligero" ]]; then
    331                 echo "-----SOCAT se va a ejecutar para el usuario: $USER -----">> $LOG_EPOPTES
     367                echo "-----SOCAT se va a ejecutar para el usuario: $USER -----">> $log_file
    332368                sleep 20
    333                 echo 'socat openssl-connect:$SERVER:$PORT,$cert_param,interval=60,forever EXEC:"$cmdline",sigint,sigquit,sigterm' >> $LOG_EPOPTES
     369                echo 'socat openssl-connect:$SERVER:$PORT,$cert_param,interval=60,forever EXEC:"$cmdline",sigint,sigquit,sigterm' >> $log_file
    334370                socat openssl-connect:$SERVER:$PORT,$cert_param,interval=60,forever EXEC:"$cmdline",sigint,sigquit
    335                 echo "Muere el SOCAT de $USER: ">> $LOG_EPOPTES
    336                 date >> $LOG_EPOPTES
     371                echo "Muere el SOCAT de $USER: ">> $log_file
     372                date >> $log_file
    337373        fi
    338374       
    339375        if [ "x${ALIVE}" != "x1" ]; then
    340                 echo "Se aborta el script para el usuario $USER debido al AlIVE">> $LOG_EPOPTES
     376                echo "Se aborta el script para el usuario $USER debido al AlIVE">> $log_file
    341377                exit 1
    342378        fi
    343         echo "Paso del ALIVE y continuo porque RUN: $RUN del usuario $USER">> $LOG_EPOPTES
     379        echo "Paso del ALIVE y continuo porque RUN: $RUN del usuario $USER">> $log_file
    344380        test_conn
    345381        SESSION_GNOME=`ps aux | grep gnome-session | wc -l `
    346382        if (("$SESSION_GNOME" < 2 )); then
    347                 date >> $LOG_EPOPTES
    348                 echo "La sesion no esta activa me quedo en la sesion SESSION_GNOME: $SESSION_GNOME modifico el RUN" >> $LOG_EPOPTES
     383                date >> $log_file
     384                echo "La sesion no esta activa me quedo en la sesion SESSION_GNOME: $SESSION_GNOME modifico el RUN" >> $log_file
    349385                RUN=0
    350386        fi
    351387    done;
    352388elif [ -f /etc/epoptes/server.crt ]; then
    353         echo "Antes del while2 del user: $USER" >> $LOG_EPOPTES
     389        echo "Antes del while2 del user: $USER" >> $log_file
    354390    while [ ${RUN} -eq 1 ] && sleep 1; do
    355391        ALIVE=$(ps ax|grep $PPID|grep -v grep|wc -l)
     
    358394            exit 1
    359395        fi
    360         echo "RUN en ELIF es $RUN del usuario $USER">> $LOG_EPOPTES
     396        echo "RUN en ELIF es $RUN del usuario $USER">> $log_file
    361397        test_conn
    362398    done;
    363399else
    364         echo "en el else del usuario $USER">> $LOG_EPOPTES
     400        echo "en el else del usuario $USER">> $log_file
    365401    $0 -c
    366402    exec $0
    367403fi
    368 echo "____________FIN_______SCRIPT____________">> $LOG_EPOPTES
     404echo "____________FIN_______SCRIPT____________">> $log_file
Note: See TracChangeset for help on using the changeset viewer.