• Portada
    • Recientes
    • Usuarios
    • Registrarse
    • Conectarse

    Ayuda con un script

    Programado Fijo Cerrado Movido
    Sistemas operativos
    3
    15
    730
    Cargando más mensajes
    • Más antiguo a más nuevo
    • Más nuevo a más antiguo
    • Mayor número de Votos
    Responder
    • Responder como tema
    Accede para responder
    Este tema ha sido borrado. Solo los usuarios que tengan privilegios de administración de temas pueden verlo.
    • vallekanoV
      vallekano
      Última edición por

      Bueno, pues mi problema es que no se hacer un script.

      Para que mi pc-router haga nat tengo que ejecutar unas pocas lineas. Entonces he leido que se metan en un script y se enlace en los directorios /etc/rd5.d/S98nombre_fichero y en el /etc/rc3.d tambien para evitar problemas.

      Pues por lo que he leido sobre script sería crear un archivo de texto plano con el vim por ejemplo en el que he incluido:

      #! /bin/bash
      echo 1 > /proc/sys/net/ipv4/ip_forward
      
      cat /proc/sys/net/ipv4/ip_forward
      
      # Limpiaremos las reglas del iptables:
      
      /sbin/iptables --flush
      /sbin/iptables --table nat --flush
      # Activaremos el NAT con enmacaramiento en las reglas del iptables:
      
      /sbin/iptables --table nat --append POSTROUTING \
                --out-interface eth0 -j MASQUERADE
      /sbin/iptables --append FORWARD --in-interface eth1 -j  ACCEPT
      
      

      Y esto en teoria se podría ejecutar pero al hacerlo me da errores. Que está mal escrito de ese archivo??

      Esque sino cada vez que arranca el pc tengo que meter todo eso a mano y es un coñazo.

      1 Respuesta Última respuesta Responder Citar 0
      • josefuJ
        josefu
        Última edición por

        Que errores te da??

        1 Respuesta Última respuesta Responder Citar 0
        • vallekanoV
          vallekano
          Última edición por

          Bueno, pues aquí está el resultado:

          # ./archivo_proxy
          : command not found
          : command not found
          : No existe el fichero o el directorio
          : command not found
          : command not found
          'ptables v1.2.6a: Unknown arg `--flush
          Try `iptables -h' or 'iptables --help' for more information.
          'ptables v1.2.6a: Unknown arg `--flush
          Try `iptables -h' or 'iptables --help' for more information.
          : command not found
          'ad argument `
          Try `iptables -h' or 'iptables --help' for more information.
          ./archivo_proxy: --out-interface:command not found
          'ptables v1.2.6a: Invalid target name `ACCEPT
          Try `iptables -h' or 'iptables --help' for more information.
          : command not found
          : command not found
          
          

          Es como si no lo pillase bien porque a veces es como si intentase ejecutar "ptables" en vez de "iptables"

          No se, como si se comiese la primera línea.

          1 Respuesta Última respuesta Responder Citar 0
          • OxygeNO
            OxygeN
            Última edición por

            yo eske hace mucho k no miro lo de los scripts pero para ejecutar comandos externos se podia usar el comando "exec " mira a ver si encuentras asi algo (man exec)

            Igual no te sirve de nada, no se!

            porcierto, si la aplicacion solo puede ser usada por el root para un user corriente (una aplicacion que ejecuta un comando no es root, no tiene su uid) dicha aplicacion aparece oculta al usuario normal y la muestra como "comando no encontrado"

            no se, mira algo de eso igual el problema del PATH que no esta la aplicacion en el lugar adecudao (aunque veo que pones la ruta)….. en fin yo doi opiniones, igual no te sirven de nada, pero oye pasas un buen rato leyendo jejejeje

            1 Respuesta Última respuesta Responder Citar 0
            • vallekanoV
              vallekano
              Última edición por

              Bueno, ahora miraré un poco mas a ver si averiguo algo pero joer, ninguno teneis un pc haciendo de router????

              Esque tendreis que haber echo esto no?????

              1 Respuesta Última respuesta Responder Citar 0
              • vallekanoV
                vallekano
                Última edición por

                Bueno, pues no entiendo nada.

                Resulta que me he creado otro archivo y he puesto nada mas:

                #! /bin/bash
                echo hola

                Y funcionaba.
                Entonces he ido añadiendo lineas y probando y al final he escrito un fichero idéntico al que tenia y funciona.

                He mirado y tenian los mismos permisos de ejecucion/lectura/escritura. Y pertenecian al mismo usuario/grupo asique NPI de que pasaba.

                Ahora solo me falta el tema de los enlaces, que tengoq ue reiniciar para ver si lo he echo bien. Sino ya os daré el coñazo un poco.:D

                1 Respuesta Última respuesta Responder Citar 0
                • vallekanoV
                  vallekano
                  Última edición por

                  Vale, pues no funciona.

                  Arranco el Pc y no me hace NAT. He ejecutado el script y funcionaba el NAT asique el script está perfecto.

                  Entonces: ¿Como hago para que me lo ejecute al inicio solo?
                  Hize lo siguiente:

                  ln -s arrancar_proxy /etc/rd5.c/S98arrancar_proxy
                  ln -s arrancar_proxy /etc/rd3.c/S99arrancar_proxy

                  Como ví en una web, pero por lo que veo no lo ejecuta al inicio.

                  Help please.

                  1 Respuesta Última respuesta Responder Citar 0
                  • josefuJ
                    josefu
                    Última edición por

                    En debian:
                    Lo metes todo en un script, colocas el script en /etc/init.d y ejecutas:
                    _update-rc.d _

                    1 Respuesta Última respuesta Responder Citar 0
                    • vallekanoV
                      vallekano
                      Última edición por

                      Publicado originalmente por josefu
                      En debian:
                      Lo metes todo en un script, colocas el script en /etc/init.d y ejecutas:
                      _update-rc.d _

                      1 Respuesta Última respuesta Responder Citar 0
                      • josefuJ
                        josefu
                        Última edición por

                        Primero ejecuta esto:
                        update-rc.d -f proxy remove
                        Para quitar los posibles enlaces que hayas puesto en los rcx, si no te funciona, quitalos a mano.

                        Luego ejecuta:

                        /etc/init.d/iptables clear
                        Para limpiar las posibles reglas que existiesen

                        /etc/init.d/iptables save inactive
                        Para guardar una configuración 'virgen' de reglas por si alguna vez quieres que iptables deje de actuar

                        Ejecuta las reglas que necesites en tu caso

                        y finalmente ejecutas:
                        /etc/init.d/iptables save active

                        Lee los comentarios en /etc/default/iptables, dan buena información sobre el funcionamiento de este script

                        Luego, para activar el ipforwarding, en vez de hacer un echo "1" > … (que tb valdría), ves al archivo /etc/network/options y pon el valor ip_forward activado:

                        ip_forward=yes
                        
                        
                        1 Respuesta Última respuesta Responder Citar 0
                        • josefuJ
                          josefu
                          Última edición por

                          Se me olvidaba, luego tienes que hacer que el script /etc/init.d/iptables se ejecute siempre al arrancar con:

                          update-rc.d iptables defaults

                          1 Respuesta Última respuesta Responder Citar 0
                          • vallekanoV
                            vallekano
                            Última edición por

                            Bueno, casi casi está.

                            Funcionar no funciona, pero si tras el reinicio hago:
                            "echo 1 > /proc/sys/net/ipv4/ip_forward" entonces sí.

                            Y tengo puesta la variable "ip_forward" de /etc/network/options a "on".

                            Osea, que las reglas si que las ha pillado ya bien, pero no activa la variable esta bien, por lo que sea.

                            1 Respuesta Última respuesta Responder Citar 0
                            • josefuJ
                              josefu
                              Última edición por

                              No se si se puede poner 'on' o 'yes' (como te he dicho antes), pero a mi con un 'yes' si que me funciona

                              1 Respuesta Última respuesta Responder Citar 0
                              • vallekanoV
                                vallekano
                                Última edición por

                                Efectivamente tengo puesto "yes". Lo de "on" me lo he inventado. Pero no va…:llorar: :llorar: :llorar:

                                1 Respuesta Última respuesta Responder Citar 0
                                • josefuJ
                                  josefu
                                  Última edición por

                                  Es un poco extraño eso, pero como solución provisional, deja el 'echo 1 > …' en un script y haz que se ejecute ese script de la misma manera que has hecho con el anteriormente mencionado 'iptables' (update-rc.d ...)

                                  1 Respuesta Última respuesta Responder Citar 0
                                  • 1 / 1
                                  • First post
                                    Last post

                                  Foreros conectados [Conectados hoy]

                                  1 usuarios activos (0 miembros e 1 invitados).
                                  febesin, pAtO,

                                  Estadísticas de Hardlimit

                                  Los hardlimitianos han creado un total de 543.3k posts en 62.8k hilos.
                                  Somos un total de 34.7k miembros registrados.
                                  ssaybb ha sido nuestro último fichaje.