?>/script>'; } ?> [Tutorial] Configuraciones Básicas Con OpenWRT Widgets Magazine

Autor Tema: [Tutorial] Configuraciones Básicas Con OpenWRT  (Leído 51405 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Tki2000

  • Moderador
  • *
  • Mensajes: 2250
[Tutorial] Configuraciones Básicas Con OpenWRT
« en: 03-10-2014, 10:40 (Viernes) »
Configuraciones Básicas Con OpenWRT

Mi intención al abrir este hilo es la de invitar a cualquiera que tenga una configuración de openwrt, que crea que puede servir de referencia para otros usuarios, la exponga aquí, con las pertinentes explicaciones para reproducirla en cualquier otro escenario por cualquier otro usuario.

Con esto quiero intentar que los usuarios que estén buscando establecer una configuración con openwrt básica como Módem ADSL/Router Openwrt/PCs, no estén todo el tiempo buscando en distintos hilos la forma de configurar la red o preguntando en distintos hilos cómo pueden abrir puertos para hacer guncionar el Emule o un FTP o cómo meterse en la página de configuración del módem si tienen un router openwrt de por medio.

De esta forma, cualquier usuario del foro que piense que su configuración pueda ser de ayuda y quiera compartirla con los demás, queda invitado a hacerlo en este hilo.

Por supuesto, aquel usuario que publique su configuración aquí debe borrar todo rastro de datos personales e identificadores de router, así como cualquier dato que pueda revelar su identidad o localización en internet en un momento dado.




Desconectado Tki2000

  • Moderador
  • *
  • Mensajes: 2250
Re: [Tutorial] Configuraciones Básicas Con OpenWRT
« Respuesta #1 en: 03-10-2014, 11:21 (Viernes) »
Pues dicho lo anterior, inauguraré yo mismo el hilo de configuraciones con una configuración básica de Módem-Router/Router ADSL/PCs en la que:

1.- Todos los dispositivos están en la misma red 192.168.1.x
2.- La página de configuración del módem es alcanzable desde los PCs detrás de openwrt (LAN).
3.- Se redirigen puertos para acceder al router openwrt por SSH desde Internet.
4.- Se redirigen puertos para acceder al router openwrt por LuCi desde Internet (poco aconsejable).
5.- Se configura una cuenta para acceso por DNS dinámico desde Internet.
6.- Se abren puertos para alcanzar desde Internet un servidor FTP localizado en el router openwrt.
7.- Se redirigen puertos para alcanzar desde Internet un servidor FTP localizado en un PC.
8.- Se redirigen puertos para hacer funcionar el Emule en un PC.
9.- Se controlan los cambios de IP del modem-router y se envía una advertencia a una cuenta de correo.
10.- Se comprueban los bloqueos de tráfico en la WAN y se relevantan las interfaces para eliminar cualquier fallo esporádico que pudiera bloquear el tráfico
11.- Se resetea el módem tras un periodo sin tráfico para forzar a hacer una reconexión limpia. Es dependiente de cada módem y en el ejemplo que pongo se reseteará un módem TP-LINK mediante una sesión telnet automática.


La configuración parte con los dispositivos con las siguientes IPs:
Código: [Seleccionar]
Módem: 192.168.1.2
Openwrt (WAN): 192.168.1.100
Openwrt (LAN): 192.168.1.1
PC: 192.168.1.140
Portátil: 192.168.1.175

Si bien es cierto que en la LAN podemos activar el protocolo DHCP para que las IPs se asignen dinámicamente, necesitamos que los dispositivos que vayan a estar disponibles para su acceso desde Internet tengan IP FIJA, ya que vamos a redirigir tráfico a unas IPs en concreto y necesitamos que sean inamovibles. El portátil no va a ser accesible desde internet así que podríamos activar DHCP para el portátil, no obstante yo siempre aconsejo poner IPs fijas y deactivar por completo DHCP a no ser que sea estrictamente necesario.

Necesitamos que el router openwrt tenga una interfaz WAN y otra interfaz LAN. Si nuestro router sólo tiene interfaz LAN podemos crear una interfaz WAN en una de las bocas del switch del router siguiendo este tutorial: https://foro.seguridadwireless.net/openwrt/luci-configurar-puerto-lan-como-wan/
Debemos anotar el nombre de la interfaz física del router que se haya asociado con nuestra WAN. Para saberlo podemos mirar en la página de LuCi -> Interfaces, el nombre que aparezca debajo de la interfaz WAN (generalmente será eth0.2). Si el nombre no es eth0.2 debemos cambiarlo por el adecuado en los scripts en los que se haga referencia.



Problema 1: La página de configuración del módem no es accesible desde la LAN dado que según la tabla de rutas del router cualquier tráfico dirigido a las IPs 192.168.1.x saldrá por la interfaz LAN. Sin embargo para acceder al módem necesitamos que el tráfico de la IP 192.168.1.2 salga por la interfaz eth0.2 (WAN).
Para solucionar esto debemos decirle al router que si el tráfico se debe dirigir al dispositivo 192.168.1.2, el tráfico debe salir por la interfaz eth0.2 (WAN) y no por la LAN dado que no está enchufado ahí.

Abrimos una sesión SSH al router y hacemos lo siguiente:
Código: [Seleccionar]
route
Nos debe devolver algo parecido a lo siguiente:

Código: [Seleccionar]
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.1.2     0.0.0.0         UG    0      0        0 eth0.2
192.168.1.0     *               255.255.255.0   U     0      0        0 br-lan

En la tabla vemos que el tráfico para la subred 192.168.1.x se dirige por la interfaz br-lan y que cualquier otro tráfico es sacado por la WAN eth0.2
Debemos agregar la ruta para decirle al router cómo encontrar el modem en 192.168.1.2
Para ello creamos un fichero en /etc/routes.bat

Código: [Seleccionar]
vi /etc/routes.bat
Código: [Seleccionar]
route add -host 192.168.1.2 dev eth0.2
route del -net 192.168.1.0 netmask 255.255.255.0 dev eth0.2
route add default gw 192.168.1.2
Código: [Seleccionar]
chmod +x /etc/routes.bat
/etc/routes.bat
Ahora la tabla de enrutamientos nos debe devolver algo parecido a lo siguiente:
Código: [Seleccionar]
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.1.2     0.0.0.0         UG    0      0        0 eth0.2
192.168.1.0     *               255.255.255.0   U     0      0        0 br-lan
192.168.1.2     *               255.255.255.255 UH    0      0        0 eth0.2

Para probar que funciona, hacemos un ping 192.168.1.2. Nos debe de devolver el ping correctamente. Si no nos lo devuelve es que algo hemos hecho mal y debemos revisar lo que llevamos hecho hasta ahora.
Código: [Seleccionar]
root@WD-N750:~# ping 192.168.1.2
PING 192.168.2.2 (192.168.1.2): 56 data bytes
64 bytes from 192.168.1.2: seq=0 ttl=64 time=0.773 ms
64 bytes from 192.168.1.2: seq=1 ttl=64 time=0.749 ms
64 bytes from 192.168.1.2: seq=2 ttl=64 time=0.594 ms
64 bytes from 192.168.1.2: seq=3 ttl=64 time=0.594 ms
^C
--- 192.168.2.2 ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max = 0.594/0.677/0.773 ms

Ahora nos vamos a editar el fichero /etc/rc.local
Agregamos esto antes del exit 0

Código: [Seleccionar]
/etc/routes.bat
Para que se ejecute cada vez que arranquemos el router.

Con esto podemos alcanzar el módem desde el router, ¿pero cómo lo alcanzamos desde un PC?

Lo vamos a solucionar utilizando el propio router como navegador y configurando un proxy desde el PC.
Para ello necesitaremos instalar el paquete: tinyproxy

Una vez instalado procederemos a configurarlo para tener acceso solamente desde la LAN por el puerto 4444.

Desde LuCi podemos configurarlo así:





Si queremos configurarlo sin LuCi, el fichero que hay que editar está en /etc/config/tinyproxy
Código: [Seleccionar]
config tinyproxy
        option User 'nobody'
        option Group 'nogroup'
        option Port '4444'
        option Timeout '600'
        option DefaultErrorFile '/usr/share/tinyproxy/default.html'
        option StatFile '/usr/share/tinyproxy/stats.html'
        option LogFile '/var/log/tinyproxy.log'
        option MaxClients '100'
        option MinSpareServers '5'
        option ViaProxyName 'tinyproxy'
        option enabled '1'
        list ConnectPort '443'
        option MaxSpareServers '5'
        option StartServers '5'
        option MaxRequestsPerChild '5'
        list Allow '127.0.0.1'
        list Allow '192.168.1.0/24'
        option LogLevel 'Warning'

Nos aseguramos de que TinyProxy se inicia al arrancar el router. Desde LuCi -> StartUp, miramos si tinyproxy está activo, y si no lo está, lo activamos:


Ahora, desde el PC con el que queramos acceder a la configuración del router, configuramos un navegador para utilizar el proxy del router. En el ejemplo pongo la configuración de un Mozilla Firefox:


Los parámetros del proxy son IP:192.168.1.1 y el puerto 4444.

Ahora navegamos hasta la IP del módem para ver si funciona: http://192.168.1.2


Si accedemos a la página de configuración del módem, hasta ahora lo hemos hecho bien...

Se recomienda sólo configurar el proxy en el navegador cuando vayamos a acceder a la configuración del módem, y quitar el proxy cuando vayamos a navegar simplemente por Internet, para no saturar el router navegando por nosotros por Internet...



Problema 2: ¿Cómo dirigimos el tráfico del módem hasta el router para administrar el tráfico?

Aqué tenemos varias posibilidades, y dependen del tipo de módem/router que tengamos, pero casi todos van a admitir o bien redirigir el tráfico de los puertos hasta una IP, o bien definir una IP a la que dirigir todo el tráfico entrante (zona DMZ).

El módem de ejemplo que pongo admite ambas opciones, así que he definido las dos:

Redirección del tráfico de todos los puertos a la WAN de openwrt:


También podemos seleccionar los puertos que específicamente queramos, por si no queremos dirigir todo el tráfico, pero en este caso sí que queremos dirigirlo todo al router openwrt y que sea éste quien enrute.

Redirección de todo el tráfico a la WAN de openwrt mediante DMZ:


Con lo anterior ya redirigimos todo el tráfico de internet al router openwrt y por lo tanto podemos configurar el router openwrt como si fuera un router neutro normal.

Ahora vamos a configurar el router openwrt para aceptar conexiones por SSH y a la página de configuración de LuCi (aunque esto último es poco aconsejable via Internet, lo pongo como ejemplo)
Para añadir un poco de seguridad, cambiaremos los puertos por defecto abiertos al exterior.

El puerto externo que vamos a usar para conectarnos a SSH va a ser el 22222 y lo vamos a redirigir al puerto 22 del router
El puerto externo que vamos a usar para conectarnos a LuCi va a ser el 11111 y lo vamos a redirigir al puerto 80 del router

Bajo LuCi nos vamos Network -> Firewall -> Port Forward y agregamos uno con las siguiente configuración:


Ahora agregamos uno más con esta otra configuración para LuCi.


Si queremos editar directamente el fichero, nos vamos a /etc/config/firewall y agregamos estas reglas:

Para SSH desde el exterior:
Código: [Seleccionar]
config redirect
        option name 'SSH-Wan-redirect'
        option src 'wan'
        option proto 'tcp'
        option src_dport '22222'
        option dest_port '22'
        option dest 'lan'

Acceso LuCi desde el exterior:
Código: [Seleccionar]
config redirect
        option name 'LuCi-Wan-redirect'
        option src 'wan'
        option proto 'tcp'
        option src_dport '11111'
        option dest_port '80'
        option dest 'lan'



Problema 3: Para acceder desde el exterior y con IP dinámica, ¿cómo lo hago?

Tenemos varias soluciones para esto. Voy a comentar cómo montar el servicio de IP dinámica con los scripts de openwrt y cómo mandarnos un correo a una cuenta cada vez que se detecte un cambio de IP.

Para utilizar el servicio de IP dinámica de openwrt debemos instalar el paquete ddns-scripts si queremos configurarlo desde línea de comandos y luci-app-ddns si queremos configurarlo desde LuCi.
Mi consejo es que lo hagáis desde LuCi porque es bastante más fácil.
Yo utilizo una cuenta en changeip.com porque es gratuíta y además te muestra el histórico de actualizaciones.

La página de configuración de dns dinámica está en Services -> Dynamic DNS.
Una configuración de ejemplo podría ser esta. Hay que sustituir los datos por los que tengáis en vuestra cuenta.


Páginas para averiguar la IP en texto plano podéis usar estas dos:
Código: [Seleccionar]
http://icanhazip.com
http://ipecho.net/plain
Si conocéis alguna otra sois libres de hacerlo.

Por si queréis realizar lo anterior desde línea de comandos, el fichero a editar es /etc/config/ddns

Código: [Seleccionar]
config service 'myddns'
        option interface 'wan'
        option use_syslog '1'
        option use_https '0'
        option force_interval '72'
        option force_unit 'hours'
        option check_unit 'minutes'
        option retry_interval '60'
        option retry_unit 'seconds'
        option username 'username'
        option password 'password'
        option check_interval '99'
        option enabled '1'
        option ip_source 'web'
        option service_name 'changeip.com'
        option domain 'miservidor.dyndns.com'
        option ip_url 'http://ipecho.net/plain'

Ahora hemos de decirle al router que ejecute el script cada vez que encendemos el router, ya que no sé por qué no funciona de forma automática.

Nos vamos a System -> Startup, y en la parte de abajo en el cuadro de Local Startup tecleamos esto antes del exit 0.

Código: [Seleccionar]
/usr/lib/ddns/dynamic_dns_updater.sh myddns &
Si queréis editarlo a mano, el fichero está en /etc/rc.local

myddns es el nombre que le hemos puesto a la cuenta al agregar la configuración a openwrt. Si la habéis cambiado de nombre, poned el nombre adecuado aquí también.

Ya podremos acceder al router desde internet utilizando nuestra dns dinámica. Por ejemplo para acceder a LuCi desde internet pondríamos en el navegador http://miservidor.dyndns.com:11111



Supongamos ahora que queremos acceder a un servidor de FTP que hemos montado en el router (no voy a explicar aquí cómo montar el servidor porque me alargaría demasiado, pero explicaré cómo abrir los puertos para acceder desde Internet).

Nos vamos a Network -> Firewall -> Traffic Rules y agregamos una con la siguiente configuración:


Observad que ahora no hemos redirigido ningún puerto externo a uno interno, sino que simplemente hemos aceptado el tráfico desde la zona WAN, al router. Esto puede resultar peligroso ya que si el puerto usado es reconocible para algún tipo de servicio (21 en el caso de FTP) es más probable que nos lo localicen y nos ataquen por ese puerto si el programa que gestiona dicho puerto contiene algún bug, exploit o fallo.

Si queréis configurar directamente por fichero en lugar de por LuCi, el fichero a editar es /etc/config/firewall
Código: [Seleccionar]
config rule
        option target 'ACCEPT'
        option src 'wan'
        option proto 'tcp'
        option dest_port '21'
        option name 'FTP'

Ahora supongamos que lo que queremos alcanzar desde Internet no es un FTP en el router, sino un FTP en un PC conectado al router, o queremos abrir los puertos al eMule, bitTorrent o algo similar.

El procedimiento que usaremos para acceder al FTP del PC va a ser redirigiendo el puerto 2121 del router al puerto 21 del PC en el que tendremos el servidor de FTP.


La regla a poner en /etc/config/firewall es:
Código: [Seleccionar]
config redirect
        option target 'DNAT'
        option src 'wan'
        option dest 'lan'
        option proto 'tcp'
        option src_dport '2121'
        option dest_ip '192.168.1.140'
        option dest_port '21'
        option name 'FTP_PC'

En el caso de que lo que querams es abrir los puertos al eMule, debemos anotar los puertos que tengamos configurados en el eMule y abrirlos de forma análoga en el firewall.
Código: [Seleccionar]
config redirect
        option target 'DNAT'
        option src 'wan'
        option dest 'lan'
        option proto 'tcp'
        option src_dport '5145'
        option dest_ip '192.168.1.140'
        option dest_port '5145'
        option name 'eMule_5145'

config redirect
        option target 'DNAT'
        option src 'wan'
        option dest 'lan'
        option proto 'tcp udp'
        option src_dport '5146'
        option dest_ip '192.168.1.140'
        option dest_port '5146'
        option name 'eMule_5146'

En el ejemplo anterior hemos destinado los puertos 5145 y 5146 al eMule del PC con la IP 192.168.1.140.



Con lo anterior realizado tenemos una configuración bastante básica y funcional con openwrt, pero vamos a rizar un poco el rizo. Vamos a hacer que cada vez que el router cambie de IP externa nos mande un correo a una cuenta de email.

Para ello necesitaremos instalar el paquete msmtp para gestionar el envío de correo.

Una vez instalado, creamos un script que nos compruebe la IP del router cada cierto tiempo, y que al ver un cambio en ella nos envíe un correo a nuestra cuenta.

Creamos un script en /etc/checkip.bat con el contenido siguiente:

Código: [Seleccionar]
#/bin/sh

CHECKIPPAGE=http://ipecho.net/plain
#CHECKIPPAGE=http://icanhazip.com

IPADDRESS=$(wget -qO- ${CHECKIPPAGE})

echo "To: micuenta@micorreo.es" > /tmp/mail.txt
echo "From: miservidor.dyndns.com" >> /tmp/mail.txt
echo "Subject: Router IP change - ${IPADDRESS}" >> /tmp/mail.txt
echo "" >> /tmp/mail.txt

if [ -f "/tmp/.current_ip" ]
then
    if [[ "${IPADDRESS}" != "$(cat /tmp/.current_ip)" ]]
    then
        echo ${IPADDRESS} >|/tmp/.current_ip
        cat /tmp/mail.txt /tmp/.current_ip | sendmail -t -a default
    fi
else
    echo ${IPADDRESS} >|/tmp/.current_ip
    cat /tmp/mail.txt /tmp/.current_ip | sendmail -t -a default
fi

Ahora para hacer el script ejecutable, hacemos un
Código: [Seleccionar]
chmod +x /etc/checkip.bat
El script básicamente lo que hace es comprobar nuestra IP con una página exterior, y comprobar si conincide con la anteriormente almacenada en /tmp/.current_ip. Si no coincide, la almacena y nos manda un correo.

Debemos también configurar los datos de la cuenta de correo en el fichero /etc/msmtprc
Esto es un ejemplo, lo tendréis que adaptar a vuestros parámetros y cuenta de correo:

Código: [Seleccionar]
# Example for a system wide configuration file

# A system wide configuration file is optional.
# If it exists, it usually defines a default account.
# This allows msmtp to be used like /usr/sbin/sendmail.

account default

# The SMTP smarthost.
host smtp.1and1.es
port 587
auth on
auto_from off
maildomain micuenta@micorreo.es
from micuenta@micorreo.es
#subject "Router IP Change"
user usuariodecorreo
password passworddecorreo
tls on
tls_starttls on
tls_certcheck off
logfile /tmp/msmtp.log

# Construct envelope-from addresses of the form "user@oursite.example".
#auto_from on

# Use TLS.
#tls on
#tls_trust_file /etc/ssl/certs/ca-certificates.crt

# Syslog logging with facility LOG_MAIL instead of the default LOG_USER.
#syslog LOG_MAIL

account default  es el nombre de la configuracion a la que se hace refencia en   sendmail -t -a default
El resto de parámetros como usuario y contraseña los tendréis que ajustar a los vuestros personales.

Ahora le decimos a openwrt que queremos ejecutar el script cada 10 minutos. No es conveniente hacerlo más a menudo porque nos podrían prohibir el acceso a la página de la IP.

Nos vamos a System -> Scheduled Tasks y agregamos lo siguiente:
Código: [Seleccionar]
*/10 * * * * /etc/checkip.bat
Si queremos editarlo manualmente, el fichero está en /etc/contabs/root

Ahora nos aseguramos de que las tareas se ejecuten automáticamente comprobando en LuCi que en System -> Startup la tarea cron esté activada.



Ahora vamos a rizar un poco más el rizo y vamos a intentar detectar cuándo el router o el módem se quedan bloqueados para resetar los parámetros e intentar recuperar la conexión sin que tengamos que tocar nada.

La primera versión nos inicializará la interfaz WAN del router para intentar recuperar errores en caso de que no tengamos acceso a Internet durante un rato.

Lo primero creamos un script como este:

/etc/check-adsl-modem.bat

Código: [Seleccionar]
#!/bin/sh

CHECKINTERFACE=eth0.2

if ! ping -q -c 1 -W 10 -I ${CHECKINTERFACE} www.google.es > /dev/null; then
    if ! ping -q -c 1 -W 10 -I ${CHECKINTERFACE} www.google.es > /dev/null; then
        if ! ping -q -c 1 -W 10 -I ${CHECKINTERFACE} www.google.es > /dev/null; then
            if ! ping -q -c 1 -W 10 -I ${CHECKINTERFACE} www.google.es > /dev/null; then
                (ifdown wan; ifup wan; /etc/routes.bat) &
            fi
        fi
    fi
fi

Lo hacemos ejecutable:
Código: [Seleccionar]
chmod +x /etc/check-adsl-modem.bat
Recordad que eth0.2 es nuestra interfaz WAN física. Si la vuestra es otra ajustad el nombre al adecuado.
Lo que hace es un ping a www.google.es. Si no recibe respuesta en 40 segundos, nos reinicia la interfaz wan y vuelve a incluir las rutas para acceder al módem desde el PC.

Ahora le decimos a nuestra tarea cron que ejecute el script cada 10 minutos:

Nos vamos a System -> Scheduled Tasks y agregamos lo siguiente:

Código: [Seleccionar]
*/10 * * * * /etc/check-adsl-modem.bat
Si queremos editarlo manualmente, el fichero está en /etc/contabs/root


Esto está bien para intentar recuperar algunos errores, pero ¿qué pasa si es el módem el que se ha quedado tostado y hay que reiniciarlo?

Pues podemos poner una segunda versión de lo anterior, pero que depende del módem que tengáis y de cómo tengáis que acceder a él vía telnet o por http para hacer un reset, y que también depende de si al quedarse tostado, todavía es capaz de recibir este tipo de conexiones desde el router o no.

Voy a poner un ejemplo para resetear un módem/router TP-LINK mediante telnet automatizado, por si a alguien le sirve de inspiración para cualquier otra cosa.

Vamos a necesitar el paquete empty para automatizar telnet mediante scripts (ya que expect no está disponible para openwrt)

Ahora creamos el script /etc/check-adsl-modem.bat con un añadido

Código: [Seleccionar]
#!/bin/sh

CHECKINTERFACE=eth0.2

if ! ping -q -c 1 -W 10 -I ${CHECKINTERFACE} www.google.es > /dev/null; then
    if ! ping -q -c 1 -W 10 -I ${CHECKINTERFACE} www.google.es > /dev/null; then
        if ! ping -q -c 1 -W 10 -I ${CHECKINTERFACE} www.google.es > /dev/null; then
            if ! ping -q -c 1 -W 10 -I ${CHECKINTERFACE} www.google.es > /dev/null; then
                (ifdown wan; ifup wan; /etc/routes.bat; /etc/reboot_modem.bat) &
            fi
        fi
    fi
fi

Lo hacemos ejecutable:
Código: [Seleccionar]
chmod +x /etc/check-adsl-modem.bat
Como veréis es parecido al script siplificado del ejemplo anterior, pero ahora al resetear las interfaces, también llama a un script auxiliar para resetear el módem.

Pues vamos a crear el script para resetear el módem:

/etc/reboot_modem.bat

Código: [Seleccionar]
#!/bin/sh
# emtelnet.sh v.0.4
# telnet example for empty
# Copyright (C) 2005, 2006 Mikhail E. Zakharov
#

telnet="telnet"                 # (/full/path/to/)telnet
target="192.168.1.2"            # target telnet-host
login="root"                    # username (Change it!)
password="password"             # password (Change it!)
fifo_in="/tmp/empty.in"         # input fifo
fifo_out="/tmp/empty.out"       # output
file_out="/tmp/empty.tmp"       # tempfile to store result

# telnet command examples. Chose one:
#telnet_cmd="$telnet -K $target"        # connect FreeBSD from FreeBSD (SRA)
telnet_cmd="$telnet $target" # All other OSes
# -----------------------------------------------------------------------------

echo "Telnetting to modem"
empty -f -i $fifo_in -o $fifo_out -L $file_out $telnet_cmd
if [ $? = 0 ]; then
        if [ -w $fifo_in -a -r $fifo_out ]; then
                echo "Waiting Welcome Message"
                empty -r -t 20 -i $fifo_out
                sleep 2
                empty -w -Sv -i $fifo_out -o $fifo_in -t 20 "username:" "$login\n"

                #echo "Sending Password"
                sleep 2
                empty -w -Sv -i $fifo_out -o $fifo_in -t 5 "password:" "$password\n"

                #echo "Sending Commands"
                sleep 2
                empty -s -o $fifo_in "dev version\n"
                sleep 2
                empty -w -v -i $fifo_out -o $fifo_in -t 5 "cmd:SUCC:" "dev serial show\n"
                sleep 2
                empty -w -v -i $fifo_out -o $fifo_in -t 5 "cmd:SUCC:" "dev reboot"

                echo "Sending exit"
                sleep 2
                empty -s -o $fifo_in ''
                sleep 1
                empty -w -v -i $fifo_out -o $fifo_in -t 5 "exit telnet" 'e\n'

                echo "Check results:"
                sleep 1
                cat $file_out
                rm -f $file_out
        else
                echo "Error: Can't find I/O fifos!"
                return 1
        fi
else
        echo "Error: Can't start empty in daemon mode"
        return 1
fi
echo "Done"

Donde pone
Citar
login="root"                    # username (Change it!)
password="password"             # password (Change it!)
Cambiad la parte entre comillas por vuestro usuario y contraseña para acceder al módem.

El resto del script es totalmente dependiente del módem TP-LINK 8840T, así que si tenéis otro os la tendréis que ingeniar para rehacer el script, pero yo pongo esto para que sirva de inspiración...

Lo hacemos ejecutable con
Código: [Seleccionar]
chmod +x /etc/reboot_modem.bat
Ahora le decimos a nuestra tarea cron que ejecute el script cada 10 minutos:

Nos vamos a System -> Scheduled Tasks y agregamos lo siguiente:

Código: [Seleccionar]
*/10 * * * * /etc/check-adsl-modem.bat
Si queremos editarlo manualmente, el fichero está en /etc/contabs/root


Y con esto y un bizcocho, ya está bien de dar la vara...

Recordad, usad esta información bajo vuestra cuenta y riesgo.

Editado para añadir el ejemplo de la configuración de la cuenta de correo
Editado para cambiar un nombre de paquete erróneo

« Última modificación: 20-02-2015, 11:03 (Viernes) por Tki2000 »

arfonzo

  • Visitante
Re: [Tutorial] Configuraciones Básicas Con OpenWRT
« Respuesta #2 en: 03-10-2014, 11:33 (Viernes) »
Este me lo guardo para em****rmelo bien a ver si aprendo algo.
Cuando saque un rato cuento como tengo yo montada mi red para que le saquies defectos y los novatos aprendamos.
Gracias por el post.


Desconectado jar229

  • Moderador
  • *
  • Mensajes: 4608
Re: [Tutorial] Configuraciones Básicas Con OpenWRT
« Respuesta #3 en: 03-10-2014, 21:03 (Viernes) »
Vaya 'tuto'  >:( >:( >:(


eucota

  • Visitante
Re: [Tutorial] Configuraciones Básicas Con OpenWRT
« Respuesta #4 en: 12-10-2014, 13:39 (Domingo) »
ESPECTACULAR EXPLICACIÓN,  a mi me desborda (por ignorancia) pero esta genial!!



eucota

  • Visitante
Re: [Tutorial] Configuraciones Básicas Con OpenWRT
« Respuesta #5 en: 02-11-2014, 21:37 (Domingo) »
Por fin he sacado tiempo y gracias a esto tengo acceso via internet a:
-luci
-transmission
-un camara ip

mil gracias tki, he de señalar que mi configuracion no es esta, yo me conecto por wifi a un router, por tANTO MI WAN es wlan0, tampoco he montado el proxy lo que hice fue primero montarlo con dos redes, hacer dmz en el principal y luego todo el tema de route, si necesitara modificar algo en el principal pues me conectaria directamente por wifi con otro pc y listo.

solo me faltaría para que fuese perfecto poder usar la impresora en red desde internet y a lo mejor me podéis ayudar en eso... ¿alguna idea?


Desconectado Tki2000

  • Moderador
  • *
  • Mensajes: 2250
Re: [Tutorial] Configuraciones Básicas Con OpenWRT
« Respuesta #6 en: 03-11-2014, 08:26 (Lunes) »
Por fin he sacado tiempo y gracias a esto tengo acceso via internet a:
-luci
-transmission
-un camara ip

mil gracias tki, he de señalar que mi configuracion no es esta, yo me conecto por wifi a un router, por tANTO MI WAN es wlan0, tampoco he montado el proxy lo que hice fue primero montarlo con dos redes, hacer dmz en el principal y luego todo el tema de route, si necesitara modificar algo en el principal pues me conectaria directamente por wifi con otro pc y listo.

solo me faltaría para que fuese perfecto poder usar la impresora en red desde internet y a lo mejor me podéis ayudar en eso... ¿alguna idea?

Da igual la WAN que utilices, sólo hay que adaptar la configuración "lógicamente" (con lógica quiero decir). Podría servir para conectarse a un hotspot por wifi y acceder a él a través de WAN...
No te hace falta el proxy porque tienes otra forma de contactar con el router principal (wifi). Si te fijas en la configuración que yo puse, el módem no tiene wifi y se conecta por el mismo cable y misma subred, pero por distinta interfaz, para no enfollonar la red con distintas subredes, que no me parece una buena solución...
Para la impresora sólo tienes que instalar los paquetes de p910 y abrir los puertos para acceder a ella desde internet... Echale un vistazo a esto: http://wiki.openwrt.org/doc/howto/p910nd.server


eucota

  • Visitante
Re: [Tutorial] Configuraciones Básicas Con OpenWRT
« Respuesta #7 en: 03-11-2014, 11:22 (Lunes) »
Hola tki, p910nd ya lo tengo y la impresora trabajando bien en mi red local el tema es redirigir el 9100, imagino, pero como configuro en un pc el acceso a esa impresora desde internet?

Cambiando de tema, podrías orientarme en esta configuracion:

MOVISTAR(192.168.1.1)---wifi---UBIQUITI CON OPENWRT(192.168.2.1)----cable----HG556A CON OPENWRT(192.169.10.1)

Necesito un "FOR DUMMIES" para este caso, sin ubiquiti por medio ya tengo trabajando pero lo necesito como te lo expongo y me pierdo en los route... puedo poner cualquier ip que me  des en el esquema para meter todo en la misma subred.

Lo que quiero es poder acceder al HG556, no necesito acceder a la ubiquiti, a luci, transmission, la impresora...


Desconectado Tki2000

  • Moderador
  • *
  • Mensajes: 2250
Re: [Tutorial] Configuraciones Básicas Con OpenWRT
« Respuesta #8 en: 03-11-2014, 13:25 (Lunes) »
Hola tki, p910nd ya lo tengo y la impresora trabajando bien en mi red local el tema es redirigir el 9100, imagino, pero como configuro en un pc el acceso a esa impresora desde internet?

Cambiando de tema, podrías orientarme en esta configuracion:

MOVISTAR(192.168.1.1)---wifi---UBIQUITI CON OPENWRT(192.168.2.1)----cable----HG556A CON OPENWRT(192.169.10.1)

Necesito un "FOR DUMMIES" para este caso, sin ubiquiti por medio ya tengo trabajando pero lo necesito como te lo expongo y me pierdo en los route... puedo poner cualquier ip que me  des en el esquema para meter todo en la misma subred.

Lo que quiero es poder acceder al HG556, no necesito acceder a la ubiquiti, a luci, transmission, la impresora...


En el tutorial pongo cómo abrir puertos para llegar a un FTP en un ordenador. Adáptalo... creo que es bastante fácil...


eucota

  • Visitante
Re: [Tutorial] Configuraciones Básicas Con OpenWRT
« Respuesta #9 en: 05-11-2014, 12:17 (Miércoles) »
Bueno, a falta de tiempo de probar el tema de los dos routers (ubiquiti y hg556) he de decir que gracias a tu configuración ya puedo:

-Acceder desde internet a Luci.
-Acceder desde internet a Transmission y controlar las descargas.
-Acceder desde internet a una camara ip conectada al router.
-Imprimir desde internet en la impresora conectada al router.

Prácticamente todo lo que necesitaba, por ello, de nuevo te agradezco el tuto que es muy muy útil.


eucota

  • Visitante
Re: [Tutorial] Configuraciones Básicas Con OpenWRT
« Respuesta #10 en: 18-11-2014, 21:02 (Martes) »
Muy buenas,

He detectado un problema en un dispositivo thomson st2030 telefono ip.

Con la configuración de tu ejemplo el telefono no se conecta, hace ping al router Openwrt pero no al Principal he probado con ips fijas y con dhcp con el mismo resultado, sin conexion a internet.

Sin embargo con openwrt como cliente wifi y dando internet por cable, sin hacer routes.bat ni nada por el estilo funciona perfectamente.

¿Alguna idea?


Desconectado Tki2000

  • Moderador
  • *
  • Mensajes: 2250
Re: [Tutorial] Configuraciones Básicas Con OpenWRT
« Respuesta #11 en: 19-11-2014, 19:52 (Miércoles) »
Muy buenas,

He detectado un problema en un dispositivo thomson st2030 telefono ip.

Con la configuración de tu ejemplo el telefono no se conecta, hace ping al router Openwrt pero no al Principal he probado con ips fijas y con dhcp con el mismo resultado, sin conexion a internet.

Sin embargo con openwrt como cliente wifi y dando internet por cable, sin hacer routes.bat ni nada por el estilo funciona perfectamente.

¿Alguna idea?

No sé cuáles son los requerimientos del teléfono IP para funcionar destrás del router. No te puedo ayudar en ese aspecto.
A lo mejor habrá que redirigir algún puerto o protocolo. Tendrás que buscarlo en el manual a ver si viene.


eucota

  • Visitante
Re: [Tutorial] Configuraciones Básicas Con OpenWRT
« Respuesta #12 en: 26-11-2014, 09:11 (Miércoles) »
Pues no se me ocurre nada, con el router tal y como está, con principal 192.168.0.1 openwrt con 192.168.0.100 y las maquinas con sus respectivas (pc, xbox, smartv y telefono) todo funciona menos el teléfono, si me conecto a una principal con otra ip distinta por ejemplo 1.1 o 2.1, funciona perfecto sin tocarle en nada, pero al volver a la 0.1 imposible.

Tiene que ser algo relacionado con la puerta de enlace he configurado el teléfono con dhcp y con fija pero nada y al terminal accedo por red sin problema el único problema es que no tiene internet.

Como digo tengo el route.bat de tu ejemplo siempre funcionando, quiero decir que el único cambio que hace que el telefono tenga internet es pasar de una red principal en la misma subred que openwrt a otra distinta, nada más ni toco cortafuegos ni nada que se le parezca.

Un saludo.



Desconectado Tki2000

  • Moderador
  • *
  • Mensajes: 2250
Re: [Tutorial] Configuraciones Básicas Con OpenWRT
« Respuesta #13 en: 27-11-2014, 17:32 (Jueves) »
Pues no se me ocurre nada, con el router tal y como está, con principal 192.168.0.1 openwrt con 192.168.0.100 y las maquinas con sus respectivas (pc, xbox, smartv y telefono) todo funciona menos el teléfono, si me conecto a una principal con otra ip distinta por ejemplo 1.1 o 2.1, funciona perfecto sin tocarle en nada, pero al volver a la 0.1 imposible.

Tiene que ser algo relacionado con la puerta de enlace he configurado el teléfono con dhcp y con fija pero nada y al terminal accedo por red sin problema el único problema es que no tiene internet.

Como digo tengo el route.bat de tu ejemplo siempre funcionando, quiero decir que el único cambio que hace que el telefono tenga internet es pasar de una red principal en la misma subred que openwrt a otra distinta, nada más ni toco cortafuegos ni nada que se le parezca.

Un saludo.



¿Has probado a poner como puerta de enlace la IP del router con openwrt? Que sea éste el que gestione el tráfico de rutas...


cespar

  • Visitante
Re: [Tutorial] Configuraciones Básicas Con OpenWRT
« Respuesta #14 en: 04-12-2014, 23:01 (Jueves) »
Hola, perdona por mi ignorancia, pero pese al gran tutoría no se como actuar.

Tengo un router de fibra de vodafone (hg253s V2) y quiero delegar toda la gestión de la red sobre un TPlink 841N con openwrt.

Me he quedado en los pasos iniciales, mi router es neutro por lo que tiene puerto WAN, cuales son los pasos que tengo que dar? Conectar de boca LAN del HG253 a boca WAN del TPLink? pero ahora mismo solo tengo una VLAN y una interfaz configurada, la LAN con DHCP desactivado para que coja el internet del router primero. ¿Como lo dejo?

No se si tengo VoIP la verdad, el teléfono si que se le enchufa, eso quiere decir algo? tengo que tener en cuenta algo mas?

Gracias!


Desconectado Tki2000

  • Moderador
  • *
  • Mensajes: 2250
Re: [Tutorial] Configuraciones Básicas Con OpenWRT
« Respuesta #15 en: 05-12-2014, 08:55 (Viernes) »
Hola, perdona por mi ignorancia, pero pese al gran tutoría no se como actuar.

Tengo un router de fibra de vodafone (hg253s V2) y quiero delegar toda la gestión de la red sobre un TPlink 841N con openwrt.

Me he quedado en los pasos iniciales, mi router es neutro por lo que tiene puerto WAN, cuales son los pasos que tengo que dar? Conectar de boca LAN del HG253 a boca WAN del TPLink? pero ahora mismo solo tengo una VLAN y una interfaz configurada, la LAN con DHCP desactivado para que coja el internet del router primero. ¿Como lo dejo?

No se si tengo VoIP la verdad, el teléfono si que se le enchufa, eso quiere decir algo? tengo que tener en cuenta algo mas?

Gracias!

Para configurar todo como está en el tutorial el modem delega todo el tráfico en el router. Si el router de fibra gestiona el tráfico de los teléfonos, entonces para delegar la situación tendrías que saber qué configurar en openwrt para gestionar los teléfonos. Si no sabes la configuración, te quedarás sin teléfono. Lamentablemente no puedo ayudarte en ese tema porque no tengo fibra de Vodafone con teléfono...


raphik

  • Visitante
Re: [Tutorial] Configuraciones Básicas Con OpenWRT
« Respuesta #16 en: 30-12-2014, 14:36 (Martes) »
La primera vez que configuré OpenWrt hice algo así:


PC - cable - router.

Ahora me parece una tontería, pero tengo que confesar que la primera vez no lo fue tanto.
Desactivar la wifi del PC... activar la interfaz ethernet... asignarle una IP fija... subir el firmware al router... volver a una IP dinámica... conectar por telnet... editar el /etc/config/network y el /etc/config/wireless con el vi... descubrir LuCI... manejar WinSCP... PuTTY...

Os aseguro que fácil no fue. Pero agradable sí, gracias a la ayuda recibida en el foro.

¡Feliz 2015 para todos!

« Última modificación: 31-12-2014, 11:52 (Miércoles) por raphik »

raphik

  • Visitante
Re: [Tutorial] Configuraciones Básicas Con OpenWRT
« Respuesta #17 en: 30-12-2014, 22:55 (Martes) »
Otra configuración elemental, pero importante es esta:


PC - cable - router OpenWrt - cable - router ISP (acceso a Internet)

Permite "dar Internet" por cable a un router carente de conectividad inalámbrica. Es el caso actual del hg556a en sus distintas versiones. La imagen del reposiorio oficial no incorpora soporte wifi ni WPA:

Modelos A y B, kmod-ath9k.
Modelo C, kmod-rt2800-pci.
Y para que funcione la encriptación WPA en ambos modelos, wpa-supplicant.

Una vez el dispositivo wifi en marcha, podemos establecer conexiones inalámbricas y quitar cables. Básicamente, la interfaz wifi de un router OpenWrt puede funcionar en modo cliente, en modo AP y en algunos casos en ambos modos simultáneamente.

Como cliente de otro router.


Como segundo AP para ampliar la cobertura del router ISP.


Como cliente y AP simultanemente, lo que permite repetir una señal remota prescindiendo de cables.


Saludos.

« Última modificación: 31-12-2014, 11:48 (Miércoles) por raphik »

eucota

  • Visitante
Re: [Tutorial] Configuraciones Básicas Con OpenWRT
« Respuesta #18 en: 22-01-2015, 18:14 (Jueves) »
Quien me da direcciones ip para este esquema:

pc---cable---opnwrt1-----wifi-----opnwrt2---cable----camara ip

Quiero visualizar una camara ip conectada a un router openwrt desde un pc conectado a otro router openwrt y estos enlazados por wifi.

No tengo preferencia por ningun método (WDS, AP...) Usaría mínimo una ubiquiti en un punto en el otro como cliente quizás un router o si no llega, otra ubiquiti.

Gracias


CCCP

  • Visitante
Re: [Tutorial] Configuraciones Básicas Con OpenWRT
« Respuesta #19 en: 23-01-2015, 15:37 (Viernes) »
Gracias por el tuto. A ver si me podeís ayudar con esta configuración:

Necesito acceder de forma remota a SSH y LUCI OpenWrt en una condiciones concretas:
Particularidades de la red: router ISP y + server apache en rango ip 192.168.1.0/24 y Router OpenWrt en subred en rango 192.168.10.0/24. Paso a detallar mi instalación:

Router de ISP:

  • 192.168.1.1
  • DHCP abierto
  • WPA
  • NAT de puertos (20,21,22,23, 80, 3306, 10000) hacia server 192.168.1.50

Apache server HTTP:

  • 192.168.1.50
  • Vitual Host con varias webs funcionando
  • no-ip instalado en server


Router OpenWrt:

OpenWrt Barrier Breaker r39304 / LuCI Trunk (svn-r9948)
Por tanto

  • Cliente USB: WWAN: 192.168.1.129 (se lo da el router ISP por DHCP)
  • Señal repetida por el router: 192.168.10.1
  • WPA
  • DDNS activado en router. NOTA: es la misma cuenta que esta activada en el server, es decir que me logueo con dos subdominios diferentes pero son de la misma cuenta
  • NAT en Openwrt de puertos 8081 y 22 hacia ip fija del router 192.168.10.1

Resumen de confi OpenWrt

IPS

Código: [Seleccionar]
Router ISP: 192.168.1.1
Apache Server: 192.168.1.50 (ip estática)
Openwrt (WWAN):         192.168.1.129 (lo da el DHCP del router ISP)
Openwrt (LAN):         192.168.10.1 (ip estática)

route

Código: [Seleccionar]
root@xxx:~# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.1.1     0.0.0.0         UG    0      0        0 wlan0
192.168.1.0     *               255.255.255.0   U     0      0        0 wlan0
192.168.10.0    *               255.255.255.0   U     0      0        0 br-lan

etc/routes.bat

NOTA: no he tocado etc/routes.bat porque desde un cliente conectado al router Openwrt en el segmento 192.168.10.1 veo el router ISP (192.168.1.1).
No obstante desde la red madre con el router ISP en 192.68.1.1 el cliente que se conecta por DHCP no ve el router Openwrt en el segmento 192.168.10.1.

No se si tengo que cambiar algo aquí

firewall

Para LUCI HTTP y SSH desde el exterior tengo:

Código: [Seleccionar]
config redirect
option target 'DNAT'
option src 'wan'
option dest 'lan'
option name 'LUCI-remote'
option proto 'tcp'
option src_port '81'
option dest_port '81'

config redirect
option enabled '1'
option target 'DNAT'
option src 'wan'
option dest 'lan'
option name 'SSH-Remote'
option proto 'tcp'
option src_port '22'
option dest_port '22'

uhttpd
NOTA: tengo cambiado el puerto por defecto de uhhtpd del 80 al 81

Código: [Seleccionar]
config uhttpd 'main'
list listen_http '0.0.0.0:81'
list listen_https '0.0.0.0:443'
option home '/www'
option rfc1918_filter '1'
option max_requests '3'
option max_connections '100'
option cert '/etc/uhttpd.crt'
option key '/etc/uhttpd.key'
option cgi_prefix '/cgi-bin'
option script_timeout '60'
option network_timeout '30'
option http_keepalive '20'
option tcp_keepalive '1'
option ubus_prefix '/ubus'

config cert 'px5g'
option days '730'
option bits '1024'
option country 'DE'
option state 'Berlin'
option location 'Berlin'
option commonname 'OpenWrt'

Simplificando: La cuestión es que despues de hacer funcionar DDNS y natear puertos, incluso cambiando el puerto de acceso auhttpd no puedo llegar a opewrt luci ni ssh para administración remota si lo tengo en un segmento diferente y con un server en el segmento superior. Alguna ayuda plis.

De antemano gracias y si no es el sitio para la duda por favor movedlo si lo estimáis.
Un saludo