Navigation

    Netgate Discussion Forum
    • Register
    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search

    Forzar sshd habilitado al inicio del sistema– script force-at-boot-enable-ssh.sh

    Español
    2
    5
    737
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • J
      javcasta last edited by

      Hola

      Enlazando con el hilo: Montar un disco automaticamente al bootear https://forum.pfsense.org/index.php?topic=120907.0

      Una demo de como ejecutar un shell script (*.sh) al inicio del sistema en pfSense:

      Por ejemplo:
      Forzar sshd habilitado al inicio del sistema – script force-at-boot-enable-ssh.sh

      #!/bin/sh
      # force-at-boot-enable-sshd.sh
      # @javcasta – 2016 – https://javcasta.com/
      # source code /etc/rc.initial
      # host this script at /usr/local/etc/rc.d/force-at-boot-enable-ssh.sh
      # add execution privilege: chmod +x /usr/local/etc/rc.d/force-at-boot-enable-ssh.sh
      # Check to see if SSH is running.
      if pgrep -q -a -F /var/run/sshd.pid sshd >/dev/null 2>&1; then
      echo “already enable sshd”;
      else
      #run unattended php -f /etc/rc.initial.toggle_sshd
      yes | php -f /etc/rc.initial.toggle_sshd
      fi
      

      El script se aloja en **/usr/local/etc/rc.d/**force-at-boot-enable-ssh.sh

      Se le dan permisos de jecución

      chmod +x /usr/local/etc/rc.d/force-at-boot-enable-ssh.sh
      

      [2.3.2-RELEASE][root@pfSense232a.localdomain]/usr/local/etc/rc.d: ./force-at-boot-enable-ssh.sh
      already enable sshd

      Reloading firewall rules. done.
      [2.3.2-RELEASE][root@pfSense232a.localdomain]/root: yes | php -f /etc/rc.initial.toggle_sshd
      SSHD is currently disabled.  Would you like to enable? [y/n]?
      Writing configuration… done.

      Enabling SSHD...
      Reloading firewall rules. done.

      Y al inicio del sistema de pfSense, si no esta habilitado sshd, se habilita (de forma no atendida).

      Salu2

      Javier Castañón
      Técnico de comunicaciones, soporte y sistemas.

      Mi web: https://javcasta.com/

      Soporte scripting/pfSense https://javcasta.com/soporte/

      1 Reply Last reply Reply Quote 0
      • I
        iplost last edited by

        Probado,  va bien, pero en una actualización de pfsense  hay que acordarse de reintroducir el script en /usr/local/etc/rc.d/

        1 Reply Last reply Reply Quote 0
        • J
          javcasta last edited by

          Hola

          Me has dado una idea, definir un o unos comandos en <shellcmd>(que al guardarse en config.xml, serian perdurables) que comprueben si los scripts que uno quiere estan en el sistema sino que los baje de una web y los ejecute. :)

          Otra alternativa seria el paquete system patches, creo.

          Salu2</shellcmd>

          Javier Castañón
          Técnico de comunicaciones, soporte y sistemas.

          Mi web: https://javcasta.com/

          Soporte scripting/pfSense https://javcasta.com/soporte/

          1 Reply Last reply Reply Quote 0
          • J
            javcasta last edited by

            Hola

            Para que sea persistente el script vía config.xml (y se mantenga en un Update), una posible solución:

            Alojar force-at-boot-enable-ssh.sh en un servidor web: http://un-servidor.com/carpeta/force-at-boot-enable-ssh.sh

            En config.xml introducir en etiquetas <shellcmd>(donde corresponda):

            <shellcmd>[ ! -f /usr/local/etc/rc.d/force-at-boot-enable-ssh.sh ]  && /usr/bin/fetch -q -o /usr/local/etc/rc.d/force-at-boot-enable-ssh.sh “http:/un-servidor.com/carpeta/force-at-boot-enable-ssh.sh” || /bin/chmod +x /usr/local/etc/rc.d/force-at-boot-enable-ssh.sh</shellcmd>
            <shellcmd>[ -f /usr/local/etc/rc.d/force-at-boot-enable-ssh.sh ]  && /bin/chmod +x /usr/local/etc/rc.d/force-at-boot-enable-ssh.sh ||echo "nada a hacer"</shellcmd>
            

            Que lo que hace es: Si no existe el fichero /usr/local/etc/rc.d/force-at-boot-enable-ssh.sh lo descarga, sino: si existe le da permisos de ejecución. Y vuelvo a comprobar si existe, y le doy permisos de jecución.

            No lo he probado, pero lo que no sé es si pfSense ejecuta primero al boot los ficheros de /usr/local/etc/rc.d/ o las entradas <shellcmd>del config.xml</shellcmd> … seria importante saberlo o probar la funcionalidad de esta idea :)

            Salu2</shellcmd>

            Javier Castañón
            Técnico de comunicaciones, soporte y sistemas.

            Mi web: https://javcasta.com/

            Soporte scripting/pfSense https://javcasta.com/soporte/

            1 Reply Last reply Reply Quote 0
            • J
              javcasta last edited by

              Hola

              Ya he comprobado el orden de ejecución de las 3 opciones de pfSense para lanzar un comando o script al inicio.
              Es la siguiente:

              1- /usr/local/etc/rc.d/.sh
              2- <earlyshell>3- <shellcmd>4- /usr/local/etc/rc.d/
              .sh</shellcmd></earlyshell>

              Parece que los sh scripts en /usr/local/etc/rc.d/ se ejecutan dos veces, en primer orden y otra vez, tras shellcmd y earlyshellcmd

              Definí en config.xml

              	<earlyshellcmd>echo "I am earlyshell" >> /order.tmp</earlyshellcmd>
              	<shellcmd>echo "I am shellcmd" >> /order.tmp</shellcmd>
              
              

              Creeé un script con permisos de ejecución en /usr/local/etc/rc.d/order.sh con

              	#!/bin/sh
              	echo "I am /usr/local/etc/rc.d/order.sh" >> /order.tmp; 
              

              Y el volcado de /order.tmp

              cat /order.tmp
              

              I am /usr/local/etc/rc.d/order.sh
              I am earlyshell
              I am shellcmd
              I am /usr/local/etc/rc.d/order.sh

              Salu2

              Javier Castañón
              Técnico de comunicaciones, soporte y sistemas.

              Mi web: https://javcasta.com/

              Soporte scripting/pfSense https://javcasta.com/soporte/

              1 Reply Last reply Reply Quote 0
              • First post
                Last post