NeBaut.net
The Corner Shop

Linksys WRT54GS (con DD-WRT v24-sp1) y 3Com Office Connect 812

Desde hace algun tiempo tengo ciertos problemas con la conexion a internet, continuamente falla, va lentisima, se corta y hasta se cuelgan los cacharros con el numero de conexiones del emule y yo que se cuantas cosas mas.. el caso es que falla como una escopeta de feria

Para conectarme tengo un Linksys WRT54GS con un software DD-WRT v24-sp1 haciendo de AP y para la conexion un 3Com OfficeConnect Remote ADSL 812 V1.1.7 El caso es que para solucionar los continuos fallos he aprovechado la funcionalidad de Connection Watchdog que incorpora el DD-WRT para cuando falla el AP y para cuando falla el router he decidido aprovechar una de las vulnerabilidades [1][2] que tiene el cacharro y he puesto este script en el arranque del DD-WRT para monitorizar cuando falla y reiniciar la ADSL

root@dd-wrt:~# cat /jffs/etc/config/adsl-status.sh
#!/bin/sh
TIEMPO=300
ROUTER="192.168.0.1"
FILE="/tmp/3com.reset"
TARGET="www.google.com"
PACKETS=1

while sleep $TIEMPO

do
RET=`ping -c $PACKETS $TARGET 2> /dev/null | awk '/packets received/ {print $4}'`

if [ "$RET" -ne "$PACKETS" ]; then
wget http://$ROUTER/Forms/adsl_reset?Submit=Reset+Line -O $FILE -o /dev/null
fi
done
root@dd-wrt:~#


Aule 11:43 AM el 27 de Agosto 2008 |

mod_rewrite, mod_alias y mod_setenvif

~# cat /etc/apache/conf.d/redirect.conf
<IfModule mod_alias.c>
RedirectMatch permanent (.*)cmd.exe(.*)$ http://www.microsoft.com
RedirectMatch permanent (.*)root.exe(.*)$ http://www.microsoft.com
RedirectMatch permanent (.*)default.ida(.*)$ http://www.microsoft.com
RedirectMatch permanent (.*)\/_vti_(.*)$ http://www.microsoft.com
RedirectMatch permanent (.*)\/MSOffice\/(.*)$ http://www.microsoft.com
RedirectMatch permanent (.*)\/scripts\/(.*)$ http://www.microsoft.com
RedirectMatch permanent (.*)\/_mem_bin\/(.*)$ http://www.microsoft.com
RedirectMatch permanent (.*)\/msadc\/(.*)$ http://www.microsoft.com
RedirectMatch permanent (.*)\/MSADC\/(.*)$ http://www.microsoft.com
RedirectMatch permanent (.*)\/c\/winnt\/(.*)$ http://www.microsoft.com
RedirectMatch permanent (.*)\/d\/winnt\/(.*)$ http://www.microsoft.com
RedirectMatch permanent (.*)\/x90\/(.*)$ http://www.microsoft.com
RedirectMatch permanent (.*)awstats(.*)$ http://www.fbi.gov
RedirectMatch permanent (.*)(phpmyadmin|phpMyAdmin)(.*)$ http://www.fbi.gov
RedirectMatch permanent (.*)(amember|payment|linkpoint)(.*)$ http://www.fbi.gov
RedirectMatch permanent (.*)(c99.|r57.)(.*)$ http://www.fbi.gov
RedirectMatch permanent (.*)(xmlrpc.php|firmwarecfg)$ http://www.fbi.gov
RedirectMatch permanent (.*)(main.php|readdump.phpmain.php|cmd.php)$ http://www.fbi.gov
RedirectMatch permanent ^/horde(.*)$ http://www.fbi.gov
RedirectMatch permanent (.*)mail\/\/README$ http://www.fbi.gov
RedirectMatch permanent (.*)\/chat\/(.*)$ http://www.fbi.gov

</IfModule>

SetEnvIf Request_URI (.*)cmd.exe(.*)$ attack
SetEnvIf Request_URI (.*)root.exe(.*)$ attack
SetEnvIf Request_URI (.*)default.ida(.*)$ attack
SetEnvIf Request_URI (.*)\/_vti_(.*)$ attack
SetEnvIf Request_URI (.*)\/scripts\/(.*)$ attack
SetEnvIf Request_URI (.*)\/_mem_bin\/(.*)$ attack
SetEnvIf Request_URI (.*)\/msadc\/(.*)$ attack
SetEnvIf Request_URI (.*)\/MSADC\/(.*)$ attack
SetEnvIf Request_URI (.*)\/c\/winnt\/(.*)$ attack
SetEnvIf Request_URI (.*)\/d\/winnt\/(.*)$ attack
SetEnvIf Request_URI (.*)\/x90\/(.*)$ attack
SetEnvIf Request_URI (.*)awstats(.*)$ attack
SetEnvIf Request_URI (.*)(phpmyadmin|phpMyAdmin)(.*)$ attack
SetEnvIf Request_URI (.*)(amember|payment|linkpoint)(.*)$ attack
SetEnvIf Request_URI (.*)(c99.|r57.)(.*)$ attack
SetEnvIf Request_URI (.*)(xmlrpc.php|firmwarecfg)$ attack
SetEnvIf Request_URI (.*)(main.php|readdump.phpmain.php|cmd.php)$ attack
SetEnvIf Request_URI ^/horde(.*)$ attack
SetEnvIf Request_URI (.*)mail\/\/README$ attack
SetEnvIf Request_URI (.*)\/chat\/(.*)$ attack
SetEnvIf User-Agent (.*)(libwww-perl|libwwwperl|curl|nikto|morfeus|pxyscand)(.*)$ attack
SetEnvIf Request_Method "(TRACE|DELETE|HEAD|SEARCH|CONNECT|OPTIONS)" attack


y en los vhost
...
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} ^(.*)(libwww-perl|libwwwperl|curl|nikto|morfeus|pxyscand)(.*) [NC,OR]
RewriteCond %{REQUEST_METHOD} ^(TRACE|DELETE|HEAD|SEARCH|CONNECT|OPTIONS) [NC]
RewriteRule .* http://www.fbi.gov [L,R=301]
ErrorLog /var/log/apache/error.log
CustomLog /var/log/apache/access.log combined env=!attack
CustomLog /var/log/apache/attacks.log combined env=attack


mod_rewrite, mod_alias y mod_setenvif

Aule 7:16 PM el 17 de Febrero 2008 |

Uso de comillas en scripts de shell

A quien no le ha pasado que haciendo un script de shell en Unix/Linux, el script falla por no utilizar de forma correcta los distintos tipos de comillas que hay?. Existe la comilla simple ('), la comilla doble (") y la comilla invertida (`)

La comilla simple (') sirve para coger el contenido que se encuentra entre las comillas de forma literal. Es importante darse cuenta de que algo encerrado entre comillas simples siempre es un solo parametro, aunque sea una ristra vacia ('').

La comilla doble (") sirve para sustituir lo que hay dentro (valores de variables, caracteres especiales), pero despues de sustituir queremos tratarlo como si estuviera encerrado entre comillas simples, osea de forma literal

Un ejemplo..

x=100
y='500$x' 
echo $y             # Mostrara.. '500$x'
y="500$x" 
echo $y             # Mostrara.. '500100'

Otro ejempo para ver la diferencia entere comillas simples(') y dobles (")

x='10     y 5 espacios'
echo $x             # Mostrara.. '10 y 5 espacios'
echo `$x'           # Mostrara.. '$x'
echo "$x"           # Mostrara.. '10      y 5 espacios'

Luego las comillas invertidas (`) se utilizan con comandos, y se sustituyen por la salida del comando esta entre las comillas invertidas. Ejemplo.. 

usuarios=`who | wc -l`

Aule 1:23 PM el 24 de Febrero 2007 |