Raphaël MICHEL a écrit 18 commentaires

  • [^] # Re: Tu es certainement déjà protégé

    Posté par  . En réponse au message CentOS 6.5 - Passer du noyau 2.6.32 à la version 3.14.4. Évalué à 1.

    Merci,
    là, en effet, c'est plus clair.

  • [^] # Re: do the math

    Posté par  . En réponse au message CentOS 6.5 - Passer du noyau 2.6.32 à la version 3.14.4. Évalué à 1.

    Merci pour la réponse, je vais regarder du côté de ELRepo.

    Par "version 2.6.31 -rc3 jusqu'à la version stable 3.14.3" j'avais compris qu'au delà de la version 2.6.31-rc3 seule la 3.14.4 était épargnée par la faille. Ce qui voudrait dire que la 2.6.32 l'est aussi.

    D'ailleurs si je tape :

    zgrep CONFIG_PERF_EVENTS /boot/config-*

    J'ai bien :

    /boot/config-2.6.32-431.11.2.el6.x86_64:CONFIG_PERF_EVENTS=y
    /boot/config-2.6.32-431.5.1.el6.x86_64:CONFIG_PERF_EVENTS=y
    /boot/config-2.6.32-431.el6.x86_64:CONFIG_PERF_EVENTS=y

    Ce qui, si j'ai bien compris, est la preuve de la vulnérabilité.

  • [^] # Re: unzip/move/zip

    Posté par  . En réponse au message Créer une archive zip de 2Go en modifiant les chemins dans l'archive. Évalué à 2.

    Géniale ta solution !

    Cela m'a même permis de régler un autre problème par la même occasion ;)

    Donc en PHP je crée mon arborescence avec mkdir() et mes liens avec symlink() puis je fais un exec('zip untruc.zip . > /dev/null &') et tout marche d'enfer.

  • [^] # Re: unzip/move/zip

    Posté par  . En réponse au message Créer une archive zip de 2Go en modifiant les chemins dans l'archive. Évalué à 0.

    Ce serait la solution de dernier recours, en effet.
    Disons que la perte en espace disque et en temps est énorme dans ce cas.
    Parce qu'on doit effectuer une copie de 2Go de fichiers en plus, et on a dans ce cas les fichiers d'origine, le dossier temporaire et le zip final.

    Pour info, à la base je n'ai pas un zip, mais une arborescence du type :
    /uploads/pictures/00000040/
    /uploads/pictures/00000040/0000000118/
    /uploads/pictures/00000040/0000000118/thumbnails/
    /uploads/pictures/00000040/0000000121/
    /uploads/pictures/00000040/0000000121/thumbnails/
    /uploads/pictures/00000058/
    /uploads/pictures/00000058/0000000215/
    /uploads/pictures/00000058/0000000215/thumbnails/

  • # screen comme tu dis m'a l'air fait pour ça

    Posté par  . En réponse au message Se connecter à une session console ou SSH. Évalué à 2.

    screen comme tu dis m'a l'air fait pour ça, mais avec un script de connexion qui récupère ton screen automatiquement. ça ne suffirait pas ?

    Je l'avais fait il y a longtemps pour récupérer automatiquement le tty1 d'une machine sans écran qui utilisait un périphérique compatible clavier (lecteur RFID) pour entrer des données.

  • [^] # Re: finalement ce que tu cherches...

    Posté par  . En réponse au message [iptables] Dérouter vers un autre port les connexions arrivant sur le port 80 via un domaine précis. Évalué à 0.

    merci pour varnish ^

    Par contre avec mod_proxy on passe par Apache, ce qui enlève l'intérêt principal de Node.js qu'est la rapidité.

  • # Résolu

    Posté par  . En réponse au message [iptables] Dérouter vers un autre port les connexions arrivant sur le port 80 via un domaine précis. Évalué à 0.

    Merci beaucoup, je vais étudier la doc de haproxy et de varnish (au premier abord, le second me parait plus simple à configurer reste à voir au niveau de l'efficacité).

  • [^] # Re: Premier paquet

    Posté par  . En réponse au message [iptables] Dérouter vers un autre port les connexions arrivant sur le port 80 via un domaine précis. Évalué à 0.

    Donc, comment faudrait-il faire ?

  • # Et Voilà !

    Posté par  . En réponse au message Librairies pour script de démarrage de tomcat avec jsvc. Évalué à 1.

    Je crois être arrivé à un résultat fonctionnel :

    #!/bin/sh
    #
    # /etc/init.d/tomcat -- startup script for the Tomcat servlet engine
    #
    
    . /etc/init.d/functions
    
    VERSION=7
    
    PATH=/bin:/usr/bin:/sbin:/usr/sbin
    NAME=tomcat$VERSION
    DESC="Tomcat servlet engine"
    DAEMON=/usr/bin/jsvc
    CATALINA_HOME=/usr/share/$NAME
    DEFAULT=/etc/default/$NAME
    
    # Run Tomcat as this user ID
    TOMCAT_USER=tomcat
    
    # The first existing directory is used for JAVA_HOME (if JAVA_HOME is not
    # defined in $DEFAULT)
    JDK_DIRS="/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64 /usr/lib/jvm/java-1.6.0 /usr/lib/jvm/java-1.6.0-openjdk.x86_64 /usr/lib/jre-1.6.0-openjdk.x86_64 /usr/lib/jre-1.5.0 /usr/lib/j2sdk1.4-sun /usr/lib/j2sdk1.4-blackdown /usr/lib/j2se/1.4 /usr/lib/j2sdk1.4-ibm /usr/lib/j2sdk1.3-sun /usr/lib/j2sdk1.3-blackdown /usr/lib/jvm/java-gcj /usr/lib/kaffe"
    
    # Look for the right JVM to use
    for jdir in $JDK_DIRS; do
        if [ -r "$jdir/bin/java" -a -z "${JAVA_HOME}" ]; then
        JAVA_HOME_TMP="$jdir"
        # checks for a real JDK like environment, needed to check if 
        # really the java-gcj-compat-dev package is installed
        if [ -r "$jdir/bin/jdb" ]; then
            JAVA_HOME="$JAVA_HOME_TMP"
        fi
        fi
    done
    export JAVA_HOME
    
    # Directory for per-instance configuration files and webapps
    CATALINA_BASE=/usr/share/$NAME
    
    # Use the Java security manager? (yes/no)
    TOMCAT_SECURITY=no
    
    # Timeout in seconds for the shutdown of all webapps
    TOMCAT_SHUTDOWN=30
    
    # End of variables that can be overwritten in $DEFAULT
    
    # overwrite settings from default file
    if [ -f "$DEFAULT" ]; then
        . "$DEFAULT"
    fi
    
    test -f $DAEMON || exit 0
    
    [ -z "$TOMCAT_USER" ] && TOMCAT_USER=tomcat7
    
    # Check if we use gij
    gij=no
    "$JAVA_HOME/bin/java" -version 2>&1 | grep -q "^gij (GNU libgcj)" && gij=yes
    
    # gij doesn't support a security manager yet (see bug #399595)
    if [ "$gij" = "yes" ]; then
        echo -e "The java-gcj-compat-dev environment currently doesn't\nsupport a security manager. See README.Debian." | logger -p daemon.warning -t $NAME
    fi
    
    # Set java.awt.headless=true if JAVA_OPTS is not set so the
    # Xalan XSL transformer can work without X11 display on JDK 1.4+
    # It also looks like the default heap size of 64M is not enough for most cases
    # se the maximum heap size is set to 128M
    if [ -z "$JAVA_OPTS" ]; then
        JAVA_OPTS="-Djava.awt.headless=true -Xmx128M"
    fi
    
    JAVA_OPTS="$JAVA_OPTS -Djava.endorsed.dirs=$CATALINA_HOME/common/endorsed -Dcatalina.base=$CATALINA_BASE -Dcatalina.home=$CATALINA_HOME -Djava.io.tmpdir=$CATALINA_BASE/temp"
    
    JAVA_OPTS="$JAVA_OPTS  -Xms128m -Xmx512m -Dfile.encoding=UTF8 -Duser.timezone=GMT -Djava.security.auth.login.config=$CATALINA_HOME/conf/jaas.config"
    
    # Set the JSP compiler if set in the tomcat7.default file
    if [ -n "$JSP_COMPILER" ]; then
        JAVA_OPTS="$JAVA_OPTS -Dbuild.compiler=$JSP_COMPILER"
    fi
    
    if [ "$TOMCAT_SECURITY" = "yes" ]; then
        JAVA_OPTS="$JAVA_OPTS -Djava.security.manager -Djava.security.policy=$CATALINA_BASE/conf/catalina.policy"
    fi
    
    # juli LogManager disabled if running under gij (see bug #395167)
    if [ "$gij" != "yes" ]; then
            JAVA_OPTS="$JAVA_OPTS -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file=$CATALINA_BASE/conf/logging.properties"
    fi
    
    # Define other required variables
    CATALINA_PID="/var/run/$NAME.pid"
    BOOTSTRAP_CLASS=org.apache.catalina.startup.Bootstrap
    JSVC_CLASSPATH="/usr/share/java/commons-daemon.jar:$CATALINA_HOME/bin/bootstrap.jar:$CATALINA_HOME/bin/tomcat-juli.jar"
    export CATALINA_PID
    
    # Look for Java Secure Sockets Extension (JSSE) JARs
    if [ -z "${JSSE_HOME}" -a -r "${JAVA_HOME}/jre/lib/jsse.jar" ]; then
        JSSE_HOME="${JAVA_HOME}/jre/"
    fi
    export JSSE_HOME
    
    start() {
        if [ -z "$JAVA_HOME" ]; then
            echo "no JDK found - please set JAVA_HOME"
            exit 1
        fi
    
        if [ ! -d "$CATALINA_BASE/conf" ]; then
            echo "invalid CATALINA_BASE specified"
            exit 1
        fi
    
        echo "Starting $DESC" "$NAME"
    
        ISSTARTED=-1
        if [ -f "${CATALINA_PID}" ]; then
            read kpid < $CATALINA_PID
            if checkpid $kpid 2>&1; then
                ISSTARTED=0
            else
                rm -f $CATALINA_PID
            fi
        else
            pid=$(pgrep -u ${TOMCAT_USER} jsvc)
            if [ -n "$pid" ]; then
                ISSTARTED=0
            fi
        fi
    
        if [ $ISSTARTED -ne 0 ]; then
    
            # Create catalina.policy (for the security manager)
            rm -f "$CATALINA_BASE/conf/catalina.policy"
            umask 022
            echo "// AUTO-GENERATED FILE -- DO NOT EDIT!" \
                > "$CATALINA_BASE/conf/catalina.policy"
            echo "// Edit the files in /etc/$NAME/policy.d/ instead" \
                >> "$CATALINA_BASE/conf/catalina.policy"
            echo ""  >> "$CATALINA_BASE/conf/catalina.policy"
            policies=$(ls $CATALINA_BASE/conf/policy.d/*.policy 2> /dev/null | wc -l)
            if [ "$policies" != "0" ]; then
                cat $CATALINA_BASE/conf/policy.d/*.policy \
                    >> "$CATALINA_BASE/conf/catalina.policy"
            fi
    
            # Clean up and set permissions on required files
            find "$CATALINA_BASE"/temp/ -mindepth 1 -exec rm -f {} +
            chown --dereference "$TOMCAT_USER" "$CATALINA_BASE/conf" \
                "$CATALINA_BASE/conf/tomcat-users.xml" \
                "$CATALINA_BASE/logs" "$CATALINA_BASE/temp" \
                "$CATALINA_BASE/webapps" "$CATALINA_BASE/work" \
                || true
    
            $DAEMON -user "$TOMCAT_USER" -cp "$JSVC_CLASSPATH" \
                -outfile SYSLOG -errfile SYSLOG \
                -pidfile "$CATALINA_PID" $JAVA_OPTS "$BOOTSTRAP_CLASS"
    
        else
                echo "(already running)"
        fi
    }
    
    stop() {
        echo "Stopping $DESC" "$NAME"
    
        ISSTARTED=-1
        if [ -f "${CATALINA_PID}" ]; then
            read kpid < $CATALINA_PID
            if checkpid $kpid 2>&1; then
                ISSTARTED=0
            fi
        else
            pid=$(pgrep -u ${TOMCAT_USER} jsvc)
            if [ -n "$pid" ]; then
                ISSTARTED=0
            fi
        fi
    
        if [ $ISSTARTED -eq 0 ]; then
            $DAEMON -cp "$JSVC_CLASSPATH" -pidfile "$CATALINA_PID" \
                 -stop "$BOOTSTRAP_CLASS"
        else
            echo "(not running)"
        fi
    }
    restart() {
            # Restart
            stop
            echo "Sleeping for 2 seconds."
            sleep 2
            start
    }
    
    status() {
        RETVAL="1"
        if [ -f "${CATALINA_PID}" ]; then
            read kpid < $CATALINA_PID
            if checkpid $kpid 2>&1; then
                echo "$0 is already running (${kpid})"
                RETVAL="0"
            else
                echo "lock file found but no process running for pid $kpid"
            fi
        else
            pid=$(pgrep -u ${TOMCAT_USER} jsvc)
            if [ -n "$pid" ]; then
                echo "$0 running (${pid}) but no PID file exists"
                RETVAL="0"
            else
                echo "$0 is stopped"
            fi
        fi
        return $RETVAL
    }
    
    case "$1" in
      start)
            start
            ;;
      stop)
            stop
            ;;
      restart)
            restart
            ;;
      status)
            status
            ;;
      *)
            echo $"Usage: tomcat {start|stop|restart|status}"
            exit 1
    esac
    
    exit 0
    
    
  • [^] # Re: Script qui s'arrête

    Posté par  . En réponse au message Librairies pour script de démarrage de tomcat avec jsvc. Évalué à 0.

    Non, c'était bien pgrep qui posait problème, et je viens de trouver la raison. Il y avait cette ligne au début du script :

    set -e
    
    

    Je ne sais pas trop à quoi elle servait mais le fait de la commenter fait que pgrep ne plante plus le script.

  • [^] # Re: Script qui s'arrête

    Posté par  . En réponse au message Librairies pour script de démarrage de tomcat avec jsvc. Évalué à 1.

    J'ai essayé toutes les formes possibles déjà et le résultat est le même.

    Le simple fait d'avoir une commande pgrep avec résultat vide arrête le script. J'ai fait deux tests en mettant une commande pgrep sans résultat puis une commande avec résultat au début de mon script.

    Premier test :

    echo 'begin test'
    pgrep test
    echo 'end test'
    
    

    Résultat :

    begin test
    
    

    Second Test :

    echo 'begin test'
    pgrep tty
    echo 'end test'
    
    

    Résultat :

    begin test
    1510
    1512
    1513
    1515
    1517
    1519
    1521
    end test
    Starting Tomcat servlet engine tomcat7
    (already running)
    
    
  • [^] # Re: Script qui s'arrête

    Posté par  . En réponse au message Librairies pour script de démarrage de tomcat avec jsvc. Évalué à 0.

    En fait, mon problème vient de cette ligne-là :

    pid=$(pgrep -u ${TOMCAT_USER} jsvc)
    
    

    Lorsque pgrep renvoie un pid, tout se passe correctement, mais si tomcat n'est pas démarré et que pgrep ne renvoie rien, l'exécution du script ne va pas plus loin que cette ligne.

  • # Script qui s'arrête

    Posté par  . En réponse au message Librairies pour script de démarrage de tomcat avec jsvc. Évalué à 0.

    J'essaye d'adapter le script pour ne pas utiliser start-stop-daemon, mais il s'arrête quelque part dans ce bloc sans me dire ni où ni pourquoi :

    ISSTOPPED="0"
    if [ -f "${CATALINA_PID}" ]; then
        read kpid < $CATALINA_PID
        if checkpid $kpid 2>&1; then
           ISSTOPPED="-1"
        fi
    else
        pid="$(pgrep -u ${TOMCAT_USER} java)"
        if [ -n "$pid" ]; then
            ISSTOPPED="-1"
        else
            rm -f $CATALINA_PID
        fi
    fi
    
    
  • [^] # Re: faire simple

    Posté par  . En réponse au message Librairies pour script de démarrage de tomcat avec jsvc. Évalué à 0.

    Regarde cette ligne :

    DAEMON=/usr/bin/jsvc
    
    

    jsvc fait partie de Apache Commons Daemon
    Il permet de faire fonctionner un programme java utilisant son API (dans ce cas Tomcat) en tant que démon.
    Avec le lancement classique un crash de java signifie que Tomcat est down, mais avec jsvc il récupère le crash et reste up. Ce qui est préférable sur un serveur web en production.

  • [^] # Re: faire simple

    Posté par  . En réponse au message Librairies pour script de démarrage de tomcat avec jsvc. Évalué à 0.

    Pour avoir Tomcat 7 sur CentOS 6 il m'a fallut l'installer à partir du repo JPackage.
    À l'installation avec Yum aucun script n'a été généré. De toute façon le script par défaut utilise startup.sh et non jsvc.
    Comment pourrais-je adapter ce script pour utiliser jsvc ? (Sur un serveur web en production mieux vaut gérer les plantages potentiels de java)

  • [^] # Re: Obligé?

    Posté par  . En réponse au message Auto-login sans interface graphique en lancement commande. Évalué à 2.

    Le lecteur de codes-barres agit comme un clavier, et donc l'application qui l'utilise ne peut pas être un démon en tâche de fond.
    Il faut que le programme Java attende une entrée clavier.
  • [^] # Re: Se méfier de sa mémoire...

    Posté par  . En réponse au message [Cherche antiquité] Mandrake Linux 6.1 (Hélios). Évalué à 1.

    Pour la version Sun de la 1.4.2_xx.

    En effet, je n'ai pas fini de galérer, mais j'aime ça les défis !
  • [^] # Re: Se méfier de sa mémoire...

    Posté par  . En réponse au message [Cherche antiquité] Mandrake Linux 6.1 (Hélios). Évalué à 1.

    Pour un pc correct ce n'est pas le problème, j'ai un fixe P4C 2.54GHz et un portable Turion 64 X2 et ma copine à un portable de même ordre et vient de commander un fixe Core 2 Duo.....

    C'est surtout que je veux faire un banc de tests avec des machines de tous types pour tester les applications que je programme.
    Il ne me restera plus qu'à trouver un JRE qui puisse fonctionner sur la "bête de course" !


    PS : Merci Philippe pour ton lien. C'est bizarre qu'ils aient mis la version 6.0 et pas la 6.1 par contre.