Menú principal
Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Menú Mostrar Mensajes

Temas - firecold

#21
Antes que nada espero que este tema les sea de utilidad y que de antemano hayan leido este post: http://www.alterserv.com/foros/index.php?topic=1356.0, en el cual explica varios detalles que omitire en este, el objetivo de este post es amarrar MAC Address con una ip en especifico, proporcionada por dhcp y autorizar su uso con iptables, permitiendo la navegacion solamente si usan las macs descritas en squid.

Para esto asumire que tiene instalado squid en cualquiera de sus versiones, iptables viene por defecto en todo distribucion GNU/Linux e instalaremos desde cero el servidor DHCP para entregar de forma automatica las ips y no tener que estar configurando cliente por cliente.

INSTALACION Y CONFIGURACION ISC-DHCP-SERVER

Primero instalaremos el servidor dhcp teclenado en consola o terminal:
Código (bash) [Seleccionar]
apt-get install isc-dhcp-server

Y editamos el archivo /etc/default/isc-dhcp-server, en el cual buscamos una linea INTERFACES=" ", dejando entre los parentesis la interface de red de su Lan, en mi caso; INTERFACES="eth0".

Despues hacemos una copia del segundo archivo que configuraremos, por si cometemos algun error podemos volverlo a su estado original y lo hacemos con:
Código (bash) [Seleccionar]
cp /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.original

Como parte de una buena integracion entre el servidor DNS y el DHCP, se coloca al principio del archivo la clave o key de bind9, debemos hacer cat /etc/bind/rndc.key y la obtendremos, pegandolo al principio de nuestro archivo, esto nos permitira saber o sincronizar con el servidor DNS si hubiera algun cambio.

Parametros de Configuracion o Significado de los parámetros:

Para un mayor entendimiento de cada una de las directivas o parametros de configuracion:
Citarserver-identifier – indica al servidor cual es el interface por el cual debe escuchar.

ddns-update-style <tipo> - Define el método de actualización automática de las DNS. Los valores pueden ser ad-hoc, interim y none.

ddns-updates <on|off> - Activa la actualización DNS mediante los valores asignados por DHCP.

ddns-domainname <nombre> - Mediante el uso de este parámetro, se añadirá <nombre> al final del nombre de la máquina cliente, para formar un nombre de dominio totalmente cualificado (FQDN).

ignore|allow client-updates - Permite la actualización de las asignaciones (allow) de un cliente a requerimiento de este, o bien las asignaciones se actualizan cuando el servidor así lo requiera (ignore).

authoritative - La configuración correcta para la red es la definida en el servidor DHCP. Poner este parámetro al comienzo del archivo de configuración supone que el servidor DHCP reasignará direcciones a los clientes mal configurados por el motivo que sea, incluída una configuración nueva del servidor.

option domain-name <nombre> - Nombre de dominio que usará el cliente en una resolución de nombres vía DNS. Normalmente, será el nombre de dominio que se añadirá al host que realiza la petición de asignación.

option ntp-server <IP, [IP ...]> - Define los servidores horarios de NTP disponibles. Se listan en oreden de preferencia.

subnet - Declaración de Subred.

option netbios-name-servers <IP, [IP ...]> - Especifica un listado con los servidores WINS disponibles para los clientes.

option domain-name-servers <IP, [IP ...]> - Define el nombre de los servidores DNS.

option routers <IP, [IP ...]> - Se definen una serie de routers (en la práctica, puertas de enlace), listadas en orden de preferencia, disponibles para el acceso al exterior por parte del cliente.

range ip-menor ip-mayor - En una declaración de subred, este parámetro define el rango de direcciones que serán asignadas. Pueden darse dos instrucciones range seguidas del modo:

range 192.168.0.11 192.168.0.100;
range 192.168.0.125 192.168.0.210;

fixed-address <direcciones> - Esta opción aparece únicamente en una declaración de host. Define las direcciones estática a asignar a un host determinado.

hardware <tipo dirección> - Especifica el hardware de un cliente BOOTP para que éste sea reconocido por el servidor de DHCP. tipo puede ser ethernet o token-ring y dirección será una serie de octetos hexadecimales inequívocos de la tarjeta (por ejemplo, hardware ethernet 00:50:b3:c5:60:23).

Al saber cada uno de estos parametros podremos configurar adecuadamente nuestro servidor DHCP, siendo en mi caso este y tecleamos en consola para editarlo:

Código (bash) [Seleccionar]
nano /etc/dhcp/dhcpd.conf
Pudiendo configurarlo de muchas maneras pero en mi caso:

##### cat /etc/bind/rndc.key ######
## Permite sincronizar con BIND9 ####
key "rndc-key" {
algorithm hmac-md5;
secret "yN2qt4sgWa951mgyM58j/g==";
};
########################
server-identifier ns1.leondejuda.gt;       # identificando mi host
ddns-update-style interim;                  # permite actualizaciones automaticas
ddns-updates on;                              # permite actualizaciones automaticas
ddns-domainname "leondejuda.gt";        # Zona Directa de BIND9
ddns-rev-domainname "in-addr.arpa.";   # Zona Inversa de Bind9
ignore client-updates;
authoritative;
option domain-name "leondejuda.gt";
#option ntp-servers 192.168.1.1;

##################
## ZONA DIRECTA#####
zone leondejuda.gt. {                   
        primary 192.168.1.1;
        key rndc-key;
        }
##################
## ZONA INVERSA #####
zone 1.168.192.in-addr.arpa. {
        primary 192.168.1.1;
        key rndc-key;
        }

################################
##### Declaracion de Subred ###########
subnet 192.168.1.0 netmask 255.255.255.0 {    # Decalro mi Red y mi mascara de SUBRED
        option netbios-name-servers 192.168.1.1; # Declaro que soy el servidor WINS ya que tengo funcioanando SAMBA
        option netbios-node-type 8;
        option domain-name-servers 192.168.1.1;  # IP del Servidor DNS BIND9
        option routers 192.168.1.1;                     # Puerta de Enlace
        range 192.168.1.2 192.168.1.8;               # Rango de Red, de preferencia el mas corto posible.
        }

####################################
## Asignacion de IP dependiendo cual es su MAC ##
       
host MAQUINA1 {
hardware ethernet 00:11:XX:XX:XX:XX;
fixed-address 192.168.1.2;
}

host MAQUINA2 {
hardware ethernet 00:0b:XX:XX:XX:XX;
fixed-address 192.168.1.3;
}

host MAQUINA4 {
hardware ethernet 00:25:XX:XX:XX:XX;
fixed-address 192.168.1.5;
}


Asignando desde ya una ip a cierta mac empezamos desde ya el filtrado, esto quiere decir que solo tendra esa ip, si y solo si tiene la mencionada MAC, ahora procederemos a usar iptables, para esto nuestro amigo MARAVENTO nos facilito un script de iptables que sustraye todas las ips y las mac de nuestro archivo de configuracion dhcpd.conf, para hacer el filtrado de mac, solo si esta relatado en el dhcpd.conf y lo que no este relatado sera bloqueado por iptables, el script esta asi:

Código (bash) [Seleccionar]
#!/bin/bash
R=`echo "\033[01;31m"` # Rojo
N=`echo "\033[m"`      # Normal
echo -e "$R IPTABLES FIREWALL START...$N"
adminMAC="60:a4:XX:XX:XX:XX"
internet=eth0
lan=eth1
local=192.168.1.0
iptables=/sbin/iptables
route=/home/
proxyport=3128
netmask=255.255.255.0
modprobe=/sbin/modprobe

# RUTA dhcpd.conf
#dhcp_conf=/etc/dhcp3/dhcpd.conf # para dhcp v3.x
dhcp_conf=/etc/dhcp/dhcpd.conf # para dhcp v4.x
#
mac2ip=$(sed -n '/^\s\+hardware\|^\s\+fixed/ s:hardware ethernet \|fixed-address ::p' $dhcp_conf | sed 's/;//')

# RUTA ips_dhcp/macs_dhcp
path_ips=/home/ips_dhcp
path_macs=/home/macs_dhcp
# alias
alias cat="sed '/#.*/d'"

echo -e "$R Borrando las Cadenas existentes...$N"

###############
# FLUSH RULES #
###############
# Delete all
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
iptables -t nat -X
iptables -t mangle -X
# Zero all packets and counters.
iptables -Z
iptables -t nat -Z
iptables -t mangle -Z

# CREANDO ACL MACS/IPS
create_acl() {
    ips="# ips"
    macs="# macs"
    while [ "$1" ]; do
        mac="$1"
        shift
        ip="$1"
        shift
        $iptables -t mangle -A PREROUTING -i $lan -m mac --mac-source $mac -s $ip -j ACCEPT
        ips="$ips\n$ip"
        macs="$macs\n$mac"
    done
    echo -e $ips > $path_ips
    echo -e $macs > $path_macs
   
}

echo -e "$R ok $N"
#####################
### KERNEL RULES ###
#####################

echo -e "$R Load Kernel Rules...$N"
modprobe ip_conntrack_ftp
modprobe ip_conntrack_irc

# Activar ip forward rules
echo 1 > /proc/sys/net/ipv4/ip_forward

echo -e "$R OK$N"

####################
# DEFAULT POLICIES #
####################

echo -e "$R Apply Default Policies...$N"

# LOOPBACK
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

echo -e "$R ok $N"

##########################
# LOCAL NETWORK POLICIES #
##########################
echo -e "$R Apply Local Network Policies...$N"
create_acl $mac2ip
$iptables -t mangle -A PREROUTING -i $lan -j DROP
chmod 777 $path_ips $path_macs
echo -e "$R Redireccionamos las peticiones de www hacia Squid Proxy$N"
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128
echo -e "$R Terminando la Configuracion del Firewall.$N"


Explicare algunos parametros:
CitaradminMAC="60:a4:XX:XX:XX:XX"  # Su mAC
internet=eth0                            # Interface de red que recibe Internet
lan=eth1                                  # Interface de red que comparte Internet
local=192.168.1.0                      # Declarando su red
iptables=/sbin/iptables                # Iptables
route=/home/                            # ruta donde se creara o buscara los archivos creados
proxyport=3128                         # Declara el puerto de Squid
netmask=255.255.255.0              # Mascara de Subred

# RUTA dhcpd.conf
#dhcp_conf=/etc/dhcp3/dhcpd.conf # para dhcp v3.x  # si usa DHCP v3 lo descomentas
dhcp_conf=/etc/dhcp/dhcpd.conf # para dhcp v4.x      # si usa DHCP v4 lo descomentas

Ya que tenemos configurado DHCP + Iptables, es momento de declararlo en Squid ya que si no esto no servira de nada, ya que el procedimiento anterior garantiza que las ips seran asignadas a dichas macs y que iptables no les impedira el paso y para esto crearemos una acl en squid:

acl mired arp "/home/macs_dhcp"
http_access allow mired


estando en macs_dhcp relatadas las macs que permites y permitiendoles pasar por squid, todo aquel que no tenga dicha mac relatada en squid sera denegada y no le sera posible acceder a internet e igualmente iptables no le permitira acceder, espero que les sea de utilidad, es un poco extenso pero interesante para todo aquel que se quiera proteger.

Como dato extra si deseas encontrar la MAC address de cada equipo lo puedes hacer con nmap, la cual es una herramienta muy util tambien al hacer un firewall, pero ahora solo queremos los MAC de nuestros clientes, siendo asi:

Código (bash) [Seleccionar]
nmap -sP 192.168.0.0/24

O

Código (bash) [Seleccionar]
nmap -sP -n 192.168.0.0/24

Cambiando siempre el rango de red por el nuestro, Saludos

NOTA: Todo archivo puede ser editados con nano, por lo menos para los que no poseen entorno grafico, haciendo saber que se guarda un archivo con CTRL + O y para cerrar CTRL + X, para los que posean entorno grafico hay muchas opciones, gedit, kate, leafpad, etc.
#22
Pues navegando por aqui y por alla, encontre un sitios el cual recomiendo mucho ya que es muy informativo, se orienta a todo lo que es redes cableadas y redes inalambricas, seria muy bueno que lo leyeran, yo no se mucho de esto pero creo que les servira, Saludos

Enlace: http://www.maravento.com/2014/04/interferencias-wifi-y-no-wifi.html
#23
Como muchos sabran muchas veces es algo aburrido estar lidiando con clientes fastidiosos que solo buscan aprovecharse de la mas minima brecha que dejamos abierta, pues ultimamente he tenido un cliente que se estaba aprovechando de mi falta de configuracion en mi configuracion dhcp, haciendo un DHCP Spoofing, pues como conozco como es dicho cliente me di a la tarea de configurar mi DHCP asignando una ip amarrada con la mac addres de cada cliente y dejando un rango muy corto de asignacion de ips por dhcp, a modo que no pueda cambiar su mac addres y obtener otra ip, solo dejando las necesarias, nada mas.

Siguiendo con la configuracion del Dhcp me dispuse a buscar una herramienta que me ayudara a protegerme de manera proactiva y encontre ArpON, segun su sitio:

ArpON (ARP handler inspection) es una herramienta para securizar ARP en nuestra red, un demonio que ha de instalarse en cada equipo que interviene en la conexión y que se caracteriza por:



  • Detectar y bloquear MITM a través de ataques de falseamiento/envenenamiento ARP en redes estáticas, dinámicas (DHCP) e híbridas
  • Detectar y bloquear ataques derivados: DHCP Spoofing, DNS Spoofing WEB Spoofing, Session Hijacking, SSL/TLS Hijacking & co
  • Detectar y bloquear ataques punto a punto o multipunto
  • No afecta a la eficiencia de la comunicación del protocolo ARP
  • En un ataque, no afecta al tiempo de respuesta
  • Es multihilo y multi SO
  • Administra el interface de red en modo boot, unplug, hibernación y suspensión
  • Funciona en el espacio de usuario por motivos de portabilidad de SO
  • Es fácilmente configurable a través de la línea de comandos
  • Está comprobado contra Ettercap, Cain & Abel, DSniff, Yersinia, scapy, netcut, Metasploit, arpspoof, sslsniff, sslstrip & co tools.


Para los que no sepamos que es arp, les dare un pequeño concepto segun wikipedia:


CitarEn comunicaciones, ARP (del inglés Address Resolution Protocol o, en español, Protocolo de resolución de direcciones) es un protocolo de la capa de enlace de datos responsable de encontrar la dirección hardware (Ethernet MAC) que corresponde a una determinada dirección IP. Para ello se envía un paquete (ARP request) a la dirección de difusión de la red (broadcast (MAC = FF FF FF FF FF FF)) que contiene la dirección IP por la que se pregunta, y se espera a que esa máquina (u otra) responda (ARP reply) con la dirección Ethernet que le corresponde. Cada máquina mantiene una caché con las direcciones traducidas para reducir el retardo y la carga. ARP permite a la dirección de Internet ser independiente de la dirección Ethernet, pero esto sólo funciona si todas las máquinas lo soportan.

En Ethernet, la capa de enlace trabaja con direcciones físicas. El protocolo ARP se encarga de traducir las direcciones IP a direcciones MAC (direcciones físicas). Para realizar esta conversión, el nivel de enlace utiliza las tablas ARP, cada interfaz tiene tanto una dirección IP como una dirección física MAC.

ARP se utiliza en 4 casos referentes a la comunicación entre 2 hosts:

Cuando 2 hosts están en la misma red y uno quiere enviar un paquete a otro.
Cuando 2 host están sobre redes diferentes y deben usar un gateway/router para alcanzar otro host.
Cuando un router necesita enviar un paquete a un host a través de otro router.
Cuando un router necesita enviar un paquete a un host de la misma red.


En todo caso ArpON implementa los siguientes algoritmos:

  • - SARPI – Static ARP inspection: Redes sin DHCP. Utiliza una lista estática de entradas y no permite modificaciones.
  • - DARPI – Dynamic ARP inspection: Redes con DHCP. Controla peticiones ARP entrantes y salientes, cachea las salientes y fija un timeout para la respuesta entrante.
  • - HARPI – Hybrid ARP inspection: Redes con o sin DHCP. Utiliza dos listas simultáneamente.


Su instalacion es sumamente facil, ya que se encuentra en los repositorios tanto de Debian como de ubuntu, pudiendolo hacer de este modo:
Código (bash) [Seleccionar]
sudo apt-get install arpon

Completada la instalacion configuraremos el archivo que le permite funcionar en /etc/default/arpon en el encontraras esto:

# Defaults for arpon initscript
# sourced by /etc/init.d/arpon
# installed at /etc/default/arpon by the maintainer scripts

# You must choose between static ARP inspection (SARPI) and
# dynamic ARP inspection (DARPI)
#
# For SARPI uncomment the following line (please edit also /etc/arpon.sarpi)
# DAEMON_OPTS="-q -f /var/log/arpon/arpon.log -g -s"

# For DARPI uncomment the following line
# DAEMON_OPTS="-q -f /var/log/arpon/arpon.log -g -d"

# Modify to RUN="yes" when you are ready
RUN="no"


Para que este pueda funcionar en redes dhcp como la mia, cambiamos solomente dos parametros:

# Defaults for arpon initscript
# sourced by /etc/init.d/arpon
# installed at /etc/default/arpon by the maintainer scripts

# You must choose between static ARP inspection (SARPI) and
# dynamic ARP inspection (DARPI)
#
# For SARPI uncomment the following line (please edit also /etc/arpon.sarpi)
# DAEMON_OPTS="-q -f /var/log/arpon/arpon.log -g -s"

# For DARPI uncomment the following line
DAEMON_OPTS="-q -f /var/log/arpon/arpon.log -g -d -i eth0" #Descomentamos en Darpi ya que es DHCP mi red y agrego la interface de red que funciona como DHCP.

# Modify to RUN="yes" when you are ready
RUN="Yes"    # Cambiamos RUN a Yes para que se pueda iniciar o ejecutar


E iniciamos el servicio con:
sudo /etc/init.d/arpon restart

Con esto lo tendremos funcionando  y sin problemas, ahora bien me puse a pensar como funciona y encontre algo en la super carretera de la informacion sobre como funciona en DHCP:

CitarÚnicamente voy a explicar cómo funciona el modo dinámico, tal como hemos visto anteriormente es usado para protegernos en las redes con el DHCP activo.

Modo dinamico –

Arpon Dynamic Arp Inspection, una vez que se ejecuta Arpon en modo DARPI , limpia la cache ARP borrando todas las entradas y protege de los ataques bidireccionales y distribuidos:

[...]
14:11:41 - Deletes these Arp Cache entries:
14:11:41 - 1)     192.168.1.1 ->  0:25:53:29:f6:69
[...]

Para las solicitudes ARP (ARP request), Arpon sigue las siguientes reglas:

TRAFICO DE SALIDA: Para los paquetes que son generados por nosotros. ArpON les permite pasar, añadiendo una entrada con el destino a la DARPI cache.
A la cache DARPI, DARPI añade un timeout para que en caso de que no exista dicha entrada DARPI debe borrarla de la cache.

TRAFICO DE ENTRADA: Los paquetes que viene hacia nosotros desde fuera de nuestro equipo. ARPon rechaza el paquete, borrando la entrada de la cache ARP porque el paquete puede estar envenenado. Después de eso, el kernel enviará una solicitud ARP solicitando la dirección de origen, esta petición será gestionada por Arpon a través de DARPI.

Para las respuestas ARP (ARP entry), Arpon sigue las siguientes reglas:

TRAFICO DE SALIDA: Para los paquetes que son generados por nosotros. Arpon, únicamente, les deja pasar.

TRAFICO DE ENTRADA: Los paquetes que viene hacia nosotros desde fuera de nuestro equipo. Arpon revisa si el origen de direcciones coincide con la entrada en la cache DARPI, esto permite que el paquete continúe con el flujo normal añadiendo la entrada en la cache ARP.
En caso contrario si el origen de direcciones no coincide con ninguna entrada de la cache DARPI, Arpon rechaza el paquete, borrando la entrada de la cache ARP.

Ambos tipos de paquetes (ARP request y ARP entry)son usados para ejecutar un envenenamiento de tabla ARP (ataque conocido como "ARP Poisoning/Spoofing").

La entrada es algo larga pero interesante, mas cuando es de proteger nuestro servidor, Saludos
#24
Buena tarde a cada uno de los amigos, compañeros y visitantes de este foro Alterserv.com, desde hace mucho tiempo trate de implemetar una solucion facil al bloqueo de publicidad y tengo cree un metodo que me ha funcionado desde hace 4 a 5 años, con las listas de bloqueo de publicidad de Adblock Plus una extension de navegadores web para esta misma tarea, antes lo hacia con squidguard pero era un poco complejo de hacer y aun mas de explicar, despues algunas personas en internet lo hicieron un poco mas facil solo con squid sin usar squidguard, pero hace menos de 2 años buscando encontre este script que hace practicamente lo mismo pero como ustedes saben la belleza de hacer scripts es facilitarte las tareas de una manera barbara, les dejo el script:

Código (cpp) [Seleccionar]
#!/bin/bash

tmp_dir=$(mktemp -d)

rm_temp() {
rm -rf "${tmp_dir}"
rm /tmp/adblock.sed && return 0;
}

acl=/etc/squid3/adblock.acl
touch $acl && chmod 777 $acl

source=(
https://easylist-downloads.adblockplus.org/easylist.txt
)

cat > /tmp/adblock.sed <<'EOF'
s/\r//g;
/Adblock/d;
/.*\$.*/d;
/\n/d;
/.*\#.*/d;
/@@.*/d;
/^!.*/d;
/^\[.*\]$/d;
s#http://#||#g;
s/\/\//||/g;
s,[+.?&/|],\\&,g;
s/\[/\\\[/g;
s/\]/\\\]/g;
s#*#.*#g;
s,\$.*$,,g;
s/\\|\\|\(.*\)\^\(.*\)/(^|\\\.)\1\\\/\2/g;
s/\\|\\|\(.*\)/(^|\\\.)\1/g;
/^\.\*$/d;
/^$/d;
EOF

mv $acl "$acl".old
cd $tmp_dir
wget -nv ${source[*]} || $(mv "$acl".old $acl && rm_temp)
sed -f /tmp/adblock.sed $(ls) >> $acl

rm_temp

# squid3 -k reconfigure



  • MODIFICACION:
    Como parte de una modificacion que me sugirio Szchmausser la cual veo con buenos ojos, es de agregar la directiva de Squid Deny_Info, para redirigir el bloqueo a una imagen transparente lo mas pequeña posible, para que no se mire la pagina de bloqueo de Squid y podas decir que es transparente al usuario, agregando una sola linea, de este modo: 

    Código: [Seleccionar]
    acl adblock url_regex "/etc/squid3/adblock.acl"
    http_access deny adblock
    deny_info http://i.imgur.com/2djunqK.png adblock


    LISTA BLANCA O EXCLUSIONES

    Como parte de bloquear publicidad, entre otras cosas te daras cuenta que muchas veces necesitas crear una excepciones ya que si no no te deja entrar a ciertas paginas o no te deja trabajar bien con adfly, como tambien algunos reproductores de video o musica, ya que algunos envian publicidad o es mostrada publicidad en ellos, entre muchas otras razones, por eso en lo que va de este tema se ha llegado a entender que necesitamos una lista de exclusiones, para permitir algunos dominios y lo haremos asi:

    Código: [Seleccionar]
    acl adblock url_regex "/etc/squid3/adblock.acl"
    acl shippuden dstdomain "/etc/squid3/exclusiones.acl"  # Lista donde colocaremos los dominiso a excluir
    http_access deny adblock !shippuden                    
    deny_info http://i.imgur.com/2djunqK.png adblock


    Con el cambio de configuracion en la tercera linea, podremos bloquear los anuncios y excluir del bloqueo los dominios que se encuentren en el archivo exclusiones.acl.

    Ahora solo sera de ejecutar el archivo y crear el archivo /etc/squid3/adblock.acl, el script hara todo el trabajo y reiniciar squid con:

    Código: [Seleccionar]
    sudo service squid3 restart


    Despues de eso solo queda probar, esta garantizado, yo lo llevo usando sin problemas desde hace mas de 4 a 5 años con buenos resultados, Espero les Sirva, Saludos

    PD: Le agradezco a cada uno de los que han planteado sus dudas y han ayudado a mejorar esta sencilla implementacion, Saludos

    [/*]
#25
Plugins de música & videos / Plugin de Muzofon
Abril 03, 2014, 11:30:23 AM
Buen dia a todo el foro de Alterserv.com, posteando aqui un plugin de un hosting de mp3 que ultimamente he tenido bastante trafico y aqui se los dejo:

Código (cpp) [Seleccionar]
#include <iostream>
#include <cstring>
#include <vector>
#include "../utils.cpp"

// use this line to compile
// g++ -I. -fPIC -shared -g -o muzofon.com.so muzofon.com.cpp
// regex
// http.*\.muzofon\.com.*(\.flv|\.mp4|\.mp3|\.jpg|\.png|\.swf)

string get_filename(string url) {
vector<string> resultado;
if (url.find("?") != string::npos) {
stringexplode(url, "?", &resultado);
stringexplode(resultado.at(resultado.size()-2), "/", &resultado);
return resultado.at(resultado.size()-1);           
} else {
stringexplode(url, "/", &resultado);
return resultado.at(resultado.size()-1);
}
}

extern "C" resposta getmatch(const string url) {
    resposta r;

if ( (url.find(".muzofon.com/") != string::npos)
) {

    r.file = get_filename(url);
if (!r.file.empty()) {
r.match = true;
r.domain = "muzofon";
} else {
r.match = false;
}
} else {
r.match = false;
}
return r;
}


Saludos
#26
Plugins de música & videos / Plugin de Coolcdn.ch
Marzo 30, 2014, 05:46:37 PM
Coolcdn.ch es un servidor de videos y de peliculas online, el cual hace poco descubri, dandome la sorpresa que no esta muy saturado y que tiene peliculas con buena definicion, espero lo disfruten:

Código (cpp) [Seleccionar]
#include <iostream>
#include <cstring>
#include <vector>
#include "../utils.cpp"

// use this line to compile
// g++ -I. -fPIC -shared -g -o coolcdn.ch.so coolcdn.ch.cpp
// regex
// http.*\.coolcdn\.ch.*(\.jpg|\.png|\.swf|\.flv|\.mp4)

string get_filename(string url) {
vector<string> resultado;
if (url.find("?") != string::npos) {
stringexplode(url, "?", &resultado);
stringexplode(resultado.at(resultado.size()-2), "/", &resultado);
return resultado.at(resultado.size()-1);           
} else {
stringexplode(url, "/", &resultado);
return resultado.at(resultado.size()-1);
}
}

extern "C" resposta getmatch(const string url) {
    resposta r;

if ( (url.find(".coolcdn.ch") != string::npos)
) {

    r.file = get_filename(url);
if (!r.file.empty()) {
r.match = true;
r.domain = "coolcdn_ch";
} else {
r.match = false;
}
} else {
r.match = false;
}
return r;


Saludos
#27
Como saben es mejor separar el contenido, por muchas razones, ya sea por rapidez y para que no haya saturamiento en un solo lugar, hice varios cambios al plugin para que reconozca todos los sitios de disney o por lo menos los que encontre:

Código (cpp) [Seleccionar]
#include <iostream>
#include <cstring>
#include <string>
#include <vector>
#include "../utils.cpp"

using namespace std;

// use this line to compile
// g++ -I. -fPIC -shared -g -o disneylatino.com.so disneylatino.com.cpp
// Regex
// http.*\.disneylatino\.com.*(\.swf|\.jpg|\.png|\.flv|\.avi|\.mp3|\.mp4|\.wmv|\.wma)

string dominiotxt="disneylatino.com";
string get_filename(string url) {
     vector<string> resultado;
               if (url.find("?") != string::npos) {
                       stringexplode(url, "?", &resultado);
                       stringexplode(resultado.at(resultado.size()-2), "/", &resultado);
                       return resultado.at(resultado.size()-3)+"_"+resultado.at(resultado.size()-2)+"_"+resultado.at(resultado.size()-1);          
               } else {
                       stringexplode(url, "/", &resultado);
                       return resultado.at(resultado.size()-3)+"_"+resultado.at(resultado.size()-2)+"_"+resultado.at(resultado.size()-1);
               }
   }

extern "C" resposta getmatch(const string url) {
   resposta r;

   if ( (url.find("/disneyjunior/") != string::npos)
      ) {
   dominiotxt="Disney_Junior";
   }
   if ( (url.find("/disneyxd/") != string::npos)
      ) {
   dominiotxt="Disney_XD";
   }
   if ( (url.find("/disneychannel/") != string::npos)
      ) {
   dominiotxt="Disney_Channel";
   }
   if ( (url.find("/radio/") != string::npos)
      ) {
   dominiotxt="Disney_Radio";
   }
   if ( (url.find("/disneylatino/") != string::npos)
      ) {
   dominiotxt="Disney_Latino";
   }
               
 if ( (url.find("disneylatino.com/") != string::npos) and
  ((url.find(".jpg") != string::npos) or
  (url.find(".png") != string::npos) or
  (url.find(".mp3") != string::npos) or
  (url.find(".flv") != string::npos) or
  (url.find(".swf") != string::npos) or
  (url.find(".mp3") != string::npos) or
  (url.find(".mp4") != string::npos) or
  (url.find(".wmv") != string::npos))
    ) {

  r.file = get_filename(url);
               if (!r.file.empty()) {
                       r.match = true;
                      r.domain = dominiotxt;
               } else {
                       r.match = false;
               }
       } else {
               r.match = false;
       }
       return r;
}


Saludos
#28
Para todos los amigos y compañeros que les gusta el manga de cualquier tipo, les recomiendo este plugin ya que de este sale la mayor parte de manga de casi todas las paginas sobre anime y demas:

Código (cpp) [Seleccionar]
#include <iostream>
#include <cstring>
#include <string>
#include <vector>
#include "../utils.cpp"

using namespace std;

// use this line to compile
// g++ -I. -fPIC -shared -g -o mangaenlinea.com.so mangaenlinea.com.cpp
// regex
// http.*\.mangaenlinea\.com.*(\.jpg|\.png|\.pdf)

string get_filename(string url) {
               vector<string> resultado;
       string retorna = "";
       stringexplode(url, "/", &resultado);
       retorna = resultado.at(resultado.size()-2) + "-"+resultado.at(resultado.size()-1);
       return retorna;
}

extern "C" resposta getmatch(const string url) {
   resposta r;

if ( (url.find("mangaenlinea.com/") != string::npos)
) {

   r.file = get_filename(url);
if (!r.file.empty()) {
r.match = true;
r.domain = "mangaenlinea";
} else {
r.match = false;
}
} else {
r.match = false;
}
return r;
}


Saludos
#29
Servidor de imagenes el cual es muy utilizado:

Código (cpp) [Seleccionar]
#include <iostream>
#include <cstring>
#include <string>
#include <vector>
#include "../utils.cpp"

using namespace std;

// use this line to compile
// g++ -I. -fPIC -shared -g -o subefotos.com.so subefotos.com.cpp
// Regex
// http.*\.subefotos\.com.*(\.swf|\.jpg|\.png)

bool in_array(const string &needle, const vector< string > &haystack) {
    int max = haystack.size();

    if (max == 0) return false;

for (int iii = 0; iii < max; iii++) {
        if (regex_match(haystack[iii], needle) != "") {
            return true;
}
}
    return false;
}

string get_filename(string url) {
               vector<string> resultado;
       string retorna = "";
       stringexplode(url, "/", &resultado);
       retorna = resultado.at(resultado.size()-2) + "-"+resultado.at(resultado.size()-1);
       return retorna;
}

extern "C" resposta getmatch(const string url) {
       resposta r;
vector<string> black_list;
black_list.push_back ("/ver/");        
               
 if ( (url.find("subefotos.com/") != string::npos) and (in_array(url, black_list) == false)
    ) {
     r.file = get_filename(url);
     if (!r.file.empty()) {
        r.match = true;
        r.domain = "subefotos";      
     } else {
        r.match = false;
     }
  }
  else
  {
     r.match = false;
  }
  return r;
}


Saludos
#30
Plugins de música & videos / Plugin Vimple.ru
Marzo 27, 2014, 11:04:17 AM
Como muchos sabran hay varios plugins de videos o peliculas online y uno de muchos, que se ha vuelto muy popular a sido vimple.ru, del cual no habia plugin, espero les sirva:

Código (cpp) [Seleccionar]
#include <iostream>
#include <cstring>
#include <vector>
#include "../utils.cpp"

// use this line to compile
// g++ -I. -fPIC -shared -g -o vimple.ru.so vimple.ru.cpp
// regex
// http.*\.vimple\.ru.*(\.flv|\.mp4)

string get_filename(string url) {
vector<string> resultado;
if (url.find("?") != string::npos) {
stringexplode(url, "?", &resultado);
stringexplode(resultado.at(resultado.size()-2), "/", &resultado);
return resultado.at(resultado.size()-1);           
} else {
stringexplode(url, "/", &resultado);
return resultado.at(resultado.size()-1);
}
}

extern "C" resposta getmatch(const string url) {
    resposta r;

if ( (url.find(".vimple.ru/") != string::npos)
) {

    r.file = get_filename(url);
if (!r.file.empty()) {
r.match = true;
r.domain = "vimple_ru";
} else {
r.match = false;
}
} else {
r.match = false;
}
return r;
}


Saludos
#31
Buenas tardes amigos del foro alterserv y amigos que nos visitan por una u otra razon, en esta ocasion estare publicando una serie de post, con el cual estare instalando y configurando un servidor dns y dhcp para una red local, ya que muchos no tenemos Mikrotik y con estos post veran no es necesario, con un poco de tiempo y persistencia lo pueden lograr, el detalle es que hay que buscar todo el software que hay a su alrededor de preferencia libre para no infringir los derechos de autor, tambien estare publicando despues de este para crear tu propia nube privada en tu servidor, entegrandola con apache2 y con bind permitir visualizarla en nuestra red no por ip si por nombre, lo cual nos facilita la vida muchas veces, tambien os recuerdo de Monitorix un buen oponente para Cacti, el cua es muy intuitivo, versatil y no necesita una base de datos para funcionar; tambien si fuera necesario publicare un tercero para un servidor de hora con Ntp, ya que es necesario para los que queremos un PDC o Controlador de Dominio en nuestra red, cuando hablamos de un LanCenter o Cyber o como ustedes lo quieran llamar, por lo demas espero que esten dispuestos a leer un rato ya que es bastante informacion y toda con una importancia relativa si queremos aprender a configurar y reconfigurar a nuestro gusto y necesidades de nuestra red.

INSTALACION Y CONFIGURACION DE SERVIDOR DNS, DHCP PARA RED LOCAL


Antes que nada necesitamos comprender que es un servidor dns y lo haremos con una explicacion de nuestro amigo y maestro Wikipedia:

CitarDomain Name System o DNS (en español: sistema de nombres de dominio) es un sistema de nomenclatura jerárquica para computadoras, servicios o cualquier recurso conectado a Internet o a una red privada. Este sistema asocia información variada con nombres de dominios asignado a cada uno de los participantes. Su función más importante, es traducir (resolver) nombres inteligibles para las personas en identificadores binarios asociados con los equipos conectados a la red, esto con el propósito de poder localizar y direccionar estos equipos mundialmente.
El servidor DNS utiliza una base de datos distribuida y jerárquica que almacena información asociada a nombres de dominio en redes como Internet. Aunque como base de datos el DNS es capaz de asociar diferentes tipos de información a cada nombre, los usos más comunes son la asignación de nombres de dominio a direcciones IP y la localización de los servidores de correo electrónico de cada dominio.
Configuraciones más comunes de un DNS

Podemos configurar un Servidor de Nombre de Dominio o DNS de distintas formas para que brinden servicios diferentes. Las más utilizadas son:

Servidor Caché ("Caching Nameserver"): Las solicitudes o peticiones hechas al servidor serán resueltas por los Forwarders que le declaremos en su configuración. Las respuestas se almacenaran y "recordarán" para cuando el Servidor Caché sea consultado nuevamente, lo cual aumenta considerablemente la velocidad de respuesta.

Maestro Primario ("Primary Master"): Las solicitudes o peticiones hechas al servidor serán resueltas mediante la lectura de los datos almacenados en los archivos locales de las Zonas creadas. Como su nombre indica, será un Servidor de Nombres Autoritario para la Zona consultada.

Maestro Secundario ("Secondary Master"): Las solicitudes o peticiones hechas al servidor serán resueltas mediante la consulta directa a un servidor Maestro Primario Autoritario para la Zona consultada. Mantiene una copia actualizada de las Zonas del Maestro Primario.

También lo podemos configurar de forma que realicen varias funciones a la vez, como el ser un Maestro Primario y Caché al mismo tiempo, lo cual es muy común en nuestras redes empresariales.

Zonas y Registros

Las Zonas son archivos de texto plano que nos permiten organizar los Registros DNS. Cada nombre de zona concuerda con el nombre de un dominio, o con un rango de direcciones IP tal como el de una o varias subnets. Contiene, además de otros datos, varios Registros de diferentes Clases o Tipos, de los cuales mencionaremos solo los siguientes:

SOA: "Start of Authority". Comienzo de la Autoridad. Es un registro obligatorio en cada Zona, y debe existir solamente uno sólo en cada archivo. Es el preámbulo de todos los archivos de zona. Describe la zona en si misma; de cual máquina o host proviene; quien es el responsable de su contenido; cual es la versión del archivo de zona, y otros aspectos concernientes al propio funcionamiento del servidor DNS. Es imprescindible que en cada archivo de zona exista un registro tipo A que identifique a la máquina o host donde radica el servidor DNS.

NS: Mapea un nombre al Servidor de Nombres. Cada dominio debe tener al menos un registro NS. Este registro apunta a un Servidor DNS que puede responder las consultas concernientes al dominio. Puede apuntar al Maestro Primario o al Maestro Secundario.

A: "Address" – (Dirección). Este registro se usa para traducir nombres de hosts a direcciones IPv4.

AAAA: "Address" – (Dirección). Este registro se usa para traducir nombres de hosts a direcciones IPv6.

CNAME:  "Canonical Name" – (Nombre Canónico). Tipo de registro mediante el cual podemos dar varios nombres a un mismo host o crear Alias de él.

MX: "Mail Exchange" o Servidor de Correo. Información utilizada por otros servidores de correo para saber adonde enviar un correo dada una dirección IP. Cada registro MX tiene una prioridad, donde la más alta la tiene el registro con el menor número. Ejemplos:

PTR: Mapeo de una dirección IP a un nombre. Tipos de registros almacenados en las denominadas "Zonas Inversas". Por ejemplo, la Zona 1.168.192.in-addr.arpa es la que contiene el mapeo inverso de todas las direcciones del rango de direcciones IP 192.168.1.0/24

REQUISITOS BASICOS E INDISPENSABLES

Estos son un ejemplo y tendran que adaptarlos segun su red:
Red: 192.168.1.0/24
Dominio: leondejuda.gt
Nombre del Servidor: mildap.leondejuda.gt
Sistema Operativo: Debian 6 o 7 / Ubuntu 13.04 o 13.10
Direccion Ip del Servidor: 192.168.1.1
Clientes:
Maquina1.leondejuda.gt
Maquina2.leondejuda.gt
Maquina3.leondejuda.gt
Maquina4.leondejuda.gt
Maquina5.leondejuda.gt
Maquina6.leondejuda.gt
alterna.leondejuda.gt

INSTALACION DE BIND

Antes que nada debo decirle sque este tutorial ha sido probado en Debian 6 y 7; asi como tambien en Ubuntu 13.04 y 13.10, sin ningun problema y con los mismos buenos resultados, solo lles ruego que sean pacientes, la paciencia y el esfuerzo es lo que nos ermite aprender de nuestros errores, asi que por algun motivo no logran realizarlo a la primera no se rindan y sigan intentandolo desde el principio, procederemos a la instalacion:
Código (bash) [Seleccionar]
apt-get install bind9 dnsutils bind9-doc
Despues de realizar la instalacion se crearan carpetas dentro de nuestro /etc/, /var/cache/bind/ y /var/lib/named, pero describire los que se crean en /etc/bind, el dividir la configuración del BIND en varios archivos se hace por comodidad y claridad. Cada archivo tiene una función específica como veremos a continuación:

named.conf: Archivo principal de configuración. En él se incluyen los archivosnamed.conf.options, named.conf.local y named.conf.default-zones.

named.conf.options: Opciones generales del servicio DNS. La directiva: directory "/var/cache/bind" le indicará al bind9 donde buscar los archivos de las Zonas Locales creadas. También declaramos aquí los servidores "Forwarders" o en una traducción aproximada "Adelantadores" hasta un número máximo de 3, los cuales no son más que servidores DNS externos que podemos consultar desde nuestra red (a través de un Firewall por supuesto) que responderán a las preguntas o solicitudes que nuestro DNS local no sea capaz de responder.

named.conf.default-zones: Como su nombre lo indica son las Zonas por Defecto. Aquí se le configura al BIND el nombre del archivo que contiene la información de los Servidores Raíces o Root Servers necesarios para iniciar la caché DNS, más concretamente el archivodb.root. También se le indica al BIND que tenga plena Autoridad (que sea Autoritario) en la resolución de nombres para el localhost, tanto en consultas Directas como Inversas, y lo mismo para las zonas "Broadcast".

named.conf.local: Archivo donde declaramos la configuración local de nuestro servidor DNS mediante el nombre de cada una de las Zonas Locales,  y cuales serán los Archivos de Registros DNS que mapearan los nombres de los equipos conectados a nuestra LAN con su dirección IP y viceversa.

rndc.key: Archivo generado que contiene la Clave para controlar el BIND. Mediante la utilidad de control del servidor BIND rndc, seremos capaces de recargar la configuración del DNS sin necesidad de reiniciarlo con el comando rndc reload. Muy útil cuando hacemos cambios en los archivos de las Zonas Locales.

Configuraciones mínimas del host

Muy importante es tener correctamente configurados los archivos /etc/network/interfaces y/etc/hosts para obtener un buen funcionamiento del DNS. Si durante la instalación se declararon todos los datos, no será necesaria ninguna modificación. Los contenidos de cada uno de ellos deben ser los siguientes:

Contenido del Archivo /etc/network/interfaces

Debo agregar que recibo internet por eth1 y no la agrego ya que es por dhcp y no hace falta que la configure.
Contenido del archivo /etc/hosts

Modificaciones al archivo /etc/resolv.conf
Código (bash) [Seleccionar]
search leondejuda.gt
nameserver 127.0.0.1

En el contenido anterior, la declaración nameserver 127.0.0.1, indica que las consultas serán hechas al localhost.

Después que tengamos nuestro BIND correctamente configurado podemos realizar cualquier consulta DNS desde nuestro host, sea el propio servidor bind9 u otro conectado a la red y que pertenezca a la misma subnet y tenga la misma máscara de red.

Modificaciones al archivo /etc/bind/named.conf

Para limitar las consultas a nuestro BIND de forma que respondan solamente a nuestra subnet y evitar un ataque Spoofing, declaramos en el archivo named.conf la Lista de Control de Acceso o ACL (Access Control List) y la denominamos mired. El archivo named.conf debe quedar de la forma siguiente:

Como recordatoria si ustedes manejan otro rango de red lo tienen que cambiar, por el que ustedes usan, no el mio, si no funcionara. Comprobemos la configuración del BIND hasta ahora y reiniciemos el servicio:
Código (bash) [Seleccionar]
named-checkconf -z
service bind9 restart

Modificaciones al archivo /etc/bind/named.conf.options

En la primera sección "options", sólo declararemos los Forwarders, y quienes serán los que podrán consultar nuestro BIND. Luego declaramos la Clave o key mediante la cual podemos controlar al bind9, y por último desde que host podemos controlarlo. Para conocer cual es la clave o key, debemos hacer cat /etc/bind/rndc.key. Copiamos la salida y la pegamos en el archivo named.conf.options. Al final, nuestro archivo debe quedar así:

Siempre como recordatorio usar en Forwarders los dns de su eleccion, yo uso estos ya que son los que tiene mi isp y realmente funcionan bien pára mi, pero para alguien mas talvez no. Tambien se recuerdan de cambiar los valores de rndc.key, ya que cambia en cada equipo. Comprobemos la configuración del BIND hasta ahora y reiniciemos el servicio:
Código (bash) [Seleccionar]
named-checkconf -z
service bind9 restart

El hecho de declarar los Forwarders, convierte a nuestro servidor BIND Local en servidor Caché manteniendo su funcionalidad de Maestro Primario. Cuando le preguntemos por un host o por un dominio externo, la respuesta -de ser positiva- la almacenará en su caché, de forma que cuando le preguntemos nuevamente por el mismo host o por el mismo dominio externo, obtengamos una rápida respuesta al no consultar nuevamente a DNSs externos.

Modificaciones al archivo /etc/bind/named.conf.local

En éste archivo declaramos las zonas locales de nuestro dominio. Debemos incluir las Zonas Directa e Inversa como mínimo. Recuerden que en el archivo de configuración /etc/bind/named.conf.local declaramos en cual directorio alojaremos los archivos de las Zonas mediante la directiva directory. Al final, el archivo debe quedar de la siguiente forma:

Siempre recordando que dependiendo de nuestro dominio tambien asi llamaran a sus zonas, igual en su zona inverza es dependiendo de su segmento de red, prestar mucho ojo a estos detalles, Comprobemos la configuración del BIND hasta ahora y reiniciemos el servicio:
Código (bash) [Seleccionar]
named-checkconf -z
service bind9 restart

El comando named-checkconf -z nos devolverá un error hasta tanto no existan los archivos de las zonas.  Lo fundamental es que nos avisa de que las Zonas declaradas en named.conf.local no serán cargadas, pues los archivos de registros DNS simplemente no existen, lo cual es cierto por ahora.

Creación del archivo de la Zona Principal Maestra del tipo "Directa"

Crearemos el archivo de la zona con:
Código (bash) [Seleccionar]
touch /var/cache/bind/leondejuda.gt.hosts
Y dentro del mismo trataremos que quede lo mas parecido a este:

Claro que cuando digo parecido es las areas de refresco, explicare desde arriba hasta abajo:

Primero $TTL: Time To Live o tiempo de vida de la información. 1 semana.

@ IN SOA: Start of Authority o comienzo de la autoridad del dominio leondejuda.gt. y el administrador del dominio root.leondejuda.gt.

Parámetros que están dentro de los paréntesis:

Numero de Serie o Serial: es el numero de revisión del archivo de zona. En mi caso yo he puesto la fecha de la ultima modificación, es importante actualizar ese campo siempre que vayamos ha editar el archivo de la zona.

Tiempo de refresco o Refresh: es el tiempo que tarda el servidor secundario en pedirle al servidor Maestro la copia de la zona. El servidor DNS secundario compara el número de serie del registro SOA del archivo de zona del servidor DNS principal y el número de serie de su propio registro SOA. Si son diferentes, el servidor DNS secundario solicitará una transferencia de zona desde el servidor DNS principal. El valor predeterminado es 3.600 (que es 1 hora).

Tiempo entre reintentos de consulta o Retry: Esto es el tiempo que un servidor secundario espera para recuperar una transferencia de zona fallida. Este tiempo suele ser menor al intervalo de actualización

Tiempo de expiración de zona o minimun: es el tiempo antes que un servidor secundario deje de responder a las búsquedas una vez se haya producido un intervalo de actualización de la zona.

Tiempo Total de Vida o expire: Tiempo en el que el servidor de nombres mantiene la caché cualquier registro del recurso de este archivo en base de datos.

Al terminar los parentesis, seguimos con:

@ IN NS: nuestro BIND está en el host mildap.leondejuda.gt. ns1.leondejuda.gt. ns2.leondejuda.gt. y es OBLIGATORIO que este host tenga un registro tipo A que lo identifique de forma unívoca, aunque el mio tiene tres ya explicare despues el porque.

@ IN TXT: Comentario aclaratorio, puede hacer el que ustedes quieran.

Y por ultimo declaramos los nombres de nuestros dominios y equipos de nuestra red si haci lo deseamos, por lo demas a mi me parece mas comodo, para configurar un directorio activo, pero ustedes sabran si lo hacen o no.

Antes de reiniciar el bind9, comprobemos la sintaxis de la zona creada:
Código (bash) [Seleccionar]
named-checkzone leondejuda.gt /var/cache/bind/leondejuda.gt.hosts
La respuesta al comando deberá ser:
Código (bash) [Seleccionar]
zone leondejuda.gt/IN: loaded serial 11
OK

Reiniciamos el servicio:
Código (bash) [Seleccionar]
service bind9 restart
Despues de esto podemos hacer unas comprobaciones con;
Código (bash) [Seleccionar]
dig leondejuda.gt NS
dig leondejuda.gt TXT

Y les arrojara algo parecido:



Creación del archivo de la Zona Principal Maestra del tipo "Inversa"

Las Zonas Inversas son obligatorias para tener una resolución de nombres correcta acorde a las normas de Internet. No nos queda más remedio que crear la correspondiente a nuestro dominio. Para ello usamos como plantilla el archivo /etc/bind/db.127:
Código (bash) [Seleccionar]
cp /etc/bind/db.127 /var/cache/bind/192.168.1.rev
Editamos el archivo /var/cache/bind/192.168.1.rev y lo dejamos así:

Comprobemos la zona recién creada:
Código (bash) [Seleccionar]
named-checkzone 1.168.192.in-addr.arpa /var/cache/bind/192.168.1.rev
Comprobamos la configuración:
Código (bash) [Seleccionar]
named-checkconf -z
named-checkconf -p

Cuando hagamos cambios en las Zona Directa y/o en la Inversa, no será necesario reiniciar el servidor. Sólo necesitaremos aumentar el número de serie "Serial" en uno, y recargar las zonas mediante el comando rndc reload. Ahora que ya terminamos de instalar y configurar bind, empecemos el servidor DHCP.

NOTA: Todo archivo puede ser editados con nano, por lo menos para los que no poseen entorno grafico, haciendo saber que se guarda un archivo con CTRL + O y para cerrar CTRL + X, para los que posean entorno grafico hay muchas opciones, gedit, kate, leafpad, etc.
#32
INSTALACIÓN Y CONFIGURACIÓN ;DE MONITORIX
DEBIAN / UBUNTU

Buena Tarde amigos del foro Alterserv, en esta ocasion vengo presentando una herramienta muy util en cuanto monitoriar el sistema, se llama Monitorix y es una herramienta gratuita de código abierto muy completa, permite visualizar de forma gráfica un montón de servicios y recursos del sistema, proporcionando graficas de cada uno de los servicios que deseamos monitorear, entre los cuales estan los siguientes

Descripción general



  • La carga del sistema promedio, los procesos activos y la asignación de memoria.

  • El uso de kernel Global (incluyendo cantidad de tiempo dedicado por los procesos en modo usuario, modo usuario con prioridad baja (nice), modo del sistema, tarea ociosa, i / o esperar a completar, el servicio de interrupciones (IRQ), irq software, tiempo robado por otra sistemas operativos (robar) y la ejecución de un CPU virtual (invitado), los cambios de contexto , tenedor () y () vfork tarifas y VFS uso (incluyendo dentries, inodos y archivos).

  • El uso del núcleo por procesador (incluyendo a la misma hora del sistema como en el uso global del kernel y el apoyo a un número ilimitado de procesadores o núcleos).

  • Soporte para HP ProLiant Sistema de Salud (incluyendo hasta 20 sensores de temperatura del hardware).

  • Apoyo a lm-sensors y GPU temperaturas (incluyendo sensores de temperatura para núcleos, placa base, CPU y GPU ( NVIDIA / ATI ), velocidad de los ventiladores y voltajes).

  • Temperaturas de unidad de disco y la salud de un número ilimitado de unidades de disco (incluyendo temperaturas usando Smartmontools y hddtemp, y que muestra el número de sectores reasignados y sectores pendientes actuales).

  • El uso del sistema de ficheros y de E / S que de un número ilimitado de sistemas de archivos (incluyendo la actividad de disco E / S y los sectores de actividad de cada sistema de archivos definido).

  • El tráfico de red y el uso de hasta 10 dispositivos de red (incluido el tráfico de paquetes y errores de tráfico).

  • La demanda de servicios del sistema (incluyendo SSH , FTP , ProFTPD , Vsftpd , Pure-ftpd , Telnet , Samba , Fax , CUPS , Fail2ban , IMAP , POP3 , SMTP , VirusMail y spam, y el apoyo a los archivos de registro de xinetd , Sendmail , Postfix , Dovecot , UW-IMAP , Qpopper , HylaFAX , MailScanner y CommuniGate ).

  • MTA Mail Estadísticas (incluidas las conexiones de entrada y salida, el correo recibido, entregado, rechazado, devuelto, desechado, celebrada, transmitido, virus, spam, cola actual y lista gris con milter-lista gris). También incluye el número de mensajes de correo electrónico en la cola, su tamaño total y el uso de la red de tráfico. Los MTA apoyados actuales son Sendmail y Postfix.

  • Tráfico de los puertos de red ( TCP , UDP , etc) con un número ilimitado de puertos de red compatibles y advertencia si algún puerto no está escuchando. También es compatible con cualquiera de las conexiones entrantes y salientes.
    Los usuarios que utilizan el sistema (incluyendo SSH / Inicio de sesión / Telnet, Samba y netatalk ).

  • FTP estadísticas con el apoyo de los formatos de archivo de registro de ProFTPD , Vsftpd y pure-ftpd servidores.

  • Apache estadísticas de número ilimitado de servidores locales o remotos (incluidos los trabajadores (ocupados y ociosos), uso de la CPU, el tráfico de red y peticiones / seg).

  • Nginx estadísticas (incluidas las conexiones (lectura, escritura, a la espera), peticiones / seg y el tráfico de red).

  • Lighttpd estadísticas de número ilimitado de servidores locales o remotos (incluidos los trabajadores (ocupados y de reposo), el tráfico de red y peticiones / seg).

  • MySQL estadísticas de número ilimitado de servidores locales o remotos (incluyendo varios tipos de consultas por segundo, los valores porcentuales de la tasa de aciertos de caché hilo, uso de la caché de consultas, el uso de las conexiones, el uso de key buffer y InnoDB uso de grupo de búfer, el número de mesas y una mesa abierto cerraduras esperaron por segundo, el número de consultas y consultas lentas por segundo, el número de conexiones, abortar clientes y abortar Conexiones por segundo y la red de tráfico).

  • Squid Web Proxy Cache estadísticas (incluyendo hasta 19 resultado y códigos de estado apoyados, peticiones generales (cliente, servidor, etc), uso de memoria y almacenamiento en disco, uso de caché IP de solicitudes, aciertos y errores, el uso de protocolos de red (HTTP, FTP , Gopher y WAIS) y el cliente y el tráfico de red del servidor).

  • NFS servidor y estadísticas de clientes que abarcan las versiones 2, 3 y 4.

  • BIND estadísticas de número ilimitado de servidores BIND (incluidas las consultas entrantes, salientes consultas (_default) ver, estadísticas de servidores de nombres, estadísticas Resolver (_default) ver, RRsets caché DB (_default) vista, uso de memoria y el Administrador de tareas).

  • NTP estadísticas (incluyendo un número ilimitado de servidores NTP soportados. cronometraje NTP, nivel de estrato y Identificador de referencia y Códigos de Kiss-o'-muerte).

  • Fail2ban estadísticas de número ilimitado de grupo de las cárceles con la posibilidad de definir hasta 9 cárceles por grupo o gráfico.

  • Servidor Icecast Streaming Media con un número ilimitado de servidores Icecast apoyada y que cubre los oyentes y la tasa de bits actuales.

  • Raspberry Pi estadísticas de sensores incluyendo hasta 9 frecuencias de reloj diferentes, la temperatura central y tensiones.
    Cache PHP alternativos estadísticas de número ilimitado de servidores web con PHP-APC instalados. Incluyendo el uso de memoria y la fragmentación, aciertos y errores de porcentaje y de información de caché de archivos.

  • Memcached estadísticas de número ilimitado de servidores con Memcached instalados. Incluyendo gráficos de aciertos y errores, el uso y los elementos almacenados en caché en la memoria caché, los objetos de E / S, las conexiones y el tráfico de red Memcached.

  • Wowza Media Server estadísticas de número ilimitado de servidores Wowza compatibles. Posibilidad de definir hasta 8 aplicaciones por servidor.

  • Dispositivos de la actividad de interrupción (que soporta hasta 256 alarmas diferentes).

  • Soporte para monitorear un número ilimitado de servidores remotos (multisistema).

  • Apoyo para el seguimiento (como gateway) el tráfico de Internet de un número ilimitado de LAN dispositivos.

  • Los idiomas soportados en los informes mensuales de tráfico: catalán , alemán , inglés , italiano , polaco y chino simplificado .

  • Capacidades de alerta que se activan cuando se alcanza o supera un valor umbral para un período de tiempo especificado, (incluyendo el promedio de carga de la CPU, el recuento sector reasignado, sectores pendientes actuales, el uso de sistema de archivos raíz, entregan mensajes de correo electrónico de venta libre y
    mails en la cola de alerta médica).





Para empezar la instalacion hay que descargar las dependencias primero y descargar el .deb de la pagina de Monitorix, haciendo de este modo:

Código (bash) [Seleccionar]

apt-get update
apt-get install rrdtool perl libwww-perl libmailtools-perl libmime-lite-perl librrds-perl libdbi-perl libxml-simple-perl libhttp-server-simple-perl libconfig-general-perl
wget http://www.monitorix.org/monitorix_3.4.0-izzy1_all.deb
dpkg -i monitorix*.deb
apt-get -f install
sudo ln -s /usr/share/monitorix/ /var/www/


En esta parte cubrimos la instalacion sin problemas, ahora bien la configuracion es algo distinto, ya que hay detalles que hay que subsanar, como la configuracion de apache2 y que monitorix usa el puerto 8080 y hay que cambiar estos aspectos antes de hacerlo andar, primero cambiaremos la configuracion de monitorix, cambiando los archivos:
 
/etc/monitorix.conf
/etc/apache2/conf.d/monitorix.conf
index.html


Los cuales los encuentras aqui: https://skydrive.live.com/redir?resid=B1A3B46631A6E08D%21373, al momento de revisar el /etc/apache2/conf.d/monitorix.conf, se daran cuanta que algo no esta bien, pues simplemente lo que hice fue hacer un enlace simbolico y lo agregue como parte de la instalacion, copian cada uno de los archivos al que corresponde y por ultimo el index.html lo encontraran en /var/www/monitorix, copian, pegan y todo resuelto.

Hasta este punto nos ahorramos un monton de problemas de configuracion y demas, ahora bien hay reportes que solo los entregara añadiendo algunos parametros, por ejemplo en bind9, en el cual tendremos que agregar unas lineas en el archivo al final de /etc/bind/named.conf.options, siendo estas:

statistics-channels {
       inet 127.0.0.1 port 8053;
};


Y por ultimo tendremos que agregar unos comandos para reiniciar servicios necesarios, para que todo funcione:

Código (bash) [Seleccionar]
sudo service apache2 restart && sudo service monitorix restart && sudo service bind9 restart

Para ver que todo salio bien se ingresa en http://127.0.0.1:8081/monitorix, tendran varios reportes, aunque hay que esperar algo ya que se actualiza cada 150 segundos, para terminar unas imagenes de como luce:








Espero les haya gustado y creo que es una herramienta bastante atractiva para monitorear todo el sistema, Saludos
#33
Plugins de música & videos / Plugin 3gpking.com
Enero 09, 2014, 01:08:59 PM
Estimados amigos del foro alterserv.com en esta ocasion vengo compartiendo un plugin de una pagina la cual esta causando sensacion en mi red y entre mis clientes aun mas, 3gpking.com es un sitio de pornografia si se le puede decir asi, pero todo en 3gp, hay para gustos, a mi no me causa gracia esto, pero me ayuda estar haciendo plugins de las paginas que tienen una demanda grande.

Código (cpp) [Seleccionar]
#include <iostream>
#include <cstring>
#include <string>
#include <vector>
#include "../utils.cpp"

using namespace std;

// use this line to compile
// g++ -I. -fPIC -shared -g -o 3gpking.com.so 3gpking.com.cpp
// Regex
// http.*(3gpking|\.3gpking)\.com/.*(\.swf|\.jpg|\.png|\.3gp|\.mp3)

string get_filename(string url) {
               vector<string> resultado;
       string retorna = "";
       stringexplode(url, "/", &resultado);
       retorna = resultado.at(resultado.size()-2) + "-"+resultado.at(resultado.size()-1);
       return retorna;
}

extern "C" resposta getmatch(const string url) {
       resposta r;        
               
 if ( (url.find("3gpking.com/") != string::npos)
    ) {
     r.file = get_filename(url);
     if (!r.file.empty()) {
        r.match = true;
        r.domain = "3gpking";      
     } else {
        r.match = false;
     }
  }
  else
  {
     r.match = false;
  }
  return r;
}


Saludos
#35
Buena tarde a cada uno de los amigos del foro de Alterserv.com y tambien a los que nos visitan para saber de este proyecto, en esta ocasión estoy recopilando la mayoria de plugins del foro, aclaro la mayoria no todos, pero si alguien tiene a bien colaborar a incrementar el numero de estos en un solo lugar puede enviarmelos po MP y los subire a dicho lugar, por lo demas debo decir que son 224 plugins que no vienen en la instalacion por defecto de Thunder o Raptor o que fueron mejorados, espero lo disfruten.

https://skydrive.live.com/redir?resid=B1A3B46631A6E08D%21145




Saludos
#36
Plugins de música & videos / Plugin promodj.com
Noviembre 27, 2013, 04:07:29 PM
Para todos los amigos y visitantes del foro de Alterserv, posteo el plugin de http://promodj.com, el cual tiene mucha musica en mp3 y videos de cualquier tipo de musica, creo que les gustara:

Código (cpp) [Seleccionar]
#include <iostream>
#include <cstring>
#include <string>
#include <vector>
#include "../utils.cpp"

using namespace std;

// use this line to compile
// g++ -I. -fPIC -shared -g -o promodj.com.so promodj.com.cpp
// regex
// http.*\.promodj\.com.*(\.jpg|\.png|\.gif|\.mp3|\.swf|\.flv|\.exe|\.rar|\.zip|\.wav|\.mp4|\.m4v|\.x-m4v)
// http.*promodj\.com.*(\.jpg|\.png|\.gif|\.mp3|\.swf|\.flv|\.exe|\.rar|\.zip|\.wav|\.mp4|\.m4v|\.x-m4v)

string get_filename(string url) {
vector<string> resultado;
if (url.find("?") != string::npos) {
stringexplode(url, "?", &resultado);
stringexplode(resultado.at(resultado.size()-2), "/", &resultado);
return resultado.at(resultado.size()-1);          
} else {
stringexplode(url, "/", &resultado);
return resultado.at(resultado.size()-1);
}
}

extern "C" resposta getmatch(const string url) {
   resposta r;  

 if ( (url.find(".promodj.com/") != string::npos)
    ) {
     r.file = get_filename(url);
     if (!r.file.empty()) {
        r.match = true;
        r.domain = "promodj";      
     } else {
        r.match = false;
     }
  }
 
  else if ( (url.find("promodj.com/") != string::npos) and ((url.find(".jpg") != string::npos) or (url.find(".png") != string::npos))  
  ) {      
      r.file = get_filename(url);
     if (!r.file.empty()) {
        r.match = true;
        r.domain = "promodj.com";
     } else {
        r.match = false;
     }
  }
  else
  {
     r.match = false;
  }
  return r;
}


Disfrutenlo, Saludos
#37
Plugins de música & videos / Plugin soundowl.com
Noviembre 21, 2013, 01:59:35 PM
Este sitio soundowl.com, genera mucho trafico en mi red, ya que es un hosting de musica en mp3:

Código (cpp) [Seleccionar]
#include <iostream>
#include <cstring>
#include <string>
#include <vector>
#include "../utils.cpp"

using namespace std;

// use this line to compile
// g++ -I. -fPIC -shared -g -o soundowl.com.so soundowl.com.cpp
// Regex
// http.*\.soundowl\.com.*(\.swf|\.jpg|\.png|\.gif|\.mp3)

string get_filename(string url) {
                vector<string> resultado;
        string retorna = "";
        stringexplode(url, "/", &resultado);
        retorna = resultado.at(resultado.size()-2) + "-"+resultado.at(resultado.size()-1);
        return retorna;
}

extern "C" resposta getmatch(const string url) {
        resposta r;       
               
  if ( (url.find("soundowl.com/") != string::npos)
     ) {
      r.file = get_filename(url);
      if (!r.file.empty()) {
         r.match = true;
         r.domain = "soundowl";       
      } else {
         r.match = false;
      }
   }
   else
   {
      r.match = false;
   }
   return r;
}


Saludos
#38
Plugins para RaptorCache / Plugin DevianArt.net
Noviembre 21, 2013, 01:57:37 PM
Plugin http://deviantart.net

Código (cpp) [Seleccionar]
#include <iostream>
#include <cstring>
#include <string>
#include <vector>
#include "../utils.cpp"

using namespace std;

// use this line to compile
// g++ -I. -fPIC -shared -g -o deviantart.net.so deviantart.net.cpp
// Regex
// http.*\.deviantart\.net.*(\.swf|\.jpg|\.png|\.gif|\.mp3|\.rar|\.zip|\.tar|\.gz|\.flv|\.mp4)

string get_filename(string url) {
                vector<string> resultado;
        string retorna = "";
        stringexplode(url, "/", &resultado);
        retorna = resultado.at(resultado.size()-2) + "-"+resultado.at(resultado.size()-1);
        return retorna;
}

extern "C" resposta getmatch(const string url) {
        resposta r;       
               
  if ( (url.find("deviantart.net/") != string::npos)
     ) {
      r.file = get_filename(url);
      if (!r.file.empty()) {
         r.match = true;
         r.domain = "DeviantArt";       
      } else {
         r.match = false;
      }
   }
   else
   {
      r.match = false;
   }
   return r;
}


Saludos
#39
Plugins de música & videos / Plugin Soundcloud
Noviembre 21, 2013, 12:47:29 PM
Amigos del Foro, les comento que hace unos dias viendo los reportes de Sarg me di cuenta que Soundcloud especificamente algunas cosas salen por http y no por https y especificamente el mp3 cuando otras paginas lo enlazan para descarga:



y cree el codigo para que pudiera hacerse cache del mismo:

Código (cpp) [Seleccionar]
#include <iostream>
#include <cstring>
#include <string>
#include <vector>
#include "../utils.cpp"

using namespace std;

// use this line to compile
// g++ -I. -fPIC -shared -g -o soundcloud.com.so soundcloud.com.cpp
// Regex
// http.*\.soundcloud\.com.*(\.swf|\.jpg|\.png|\.gif|\.mp3)

string get_filename(string url) {
               vector<string> resultado;
       string retorna = "";
       stringexplode(url, "/", &resultado);
       retorna = resultado.at(resultado.size()-2) + "-"+resultado.at(resultado.size()-1);
       return retorna;
}

extern "C" resposta getmatch(const string url) {
       resposta r;        
               
 if ( (url.find("soundcloud.com/") != string::npos)
    ) {
     r.file = get_filename(url);
     if (!r.file.empty()) {
        r.match = true;
        r.domain = "soundcloud";      
     } else {
        r.match = false;
     }
  }
  else
  {
     r.match = false;
  }
  return r;
}


Siendo el resultado de este modo:



Saludos
#40
Buena tarde a todos los amigos del foro de Alterserv, en esta ocasion vengo posteando una solucion para probar squid3.3.8 que vendra en la nueva version de Ubuntu 13.10, OJO que esto es para aquellos que manejen alguna version de ubuntu, no apto para Debian, ya que desconozco como funcionaria en Debian o los problemas que provocaria, por lo demas si ustedes quieren saber las nuevas caracteristicas como mejoras en esta version de squid, pueden darse una vuelta por: http://www.squid-cache.org/Versions/v3/3.3/RELEASENOTES.html, para darse una idea amplia de esta versión, bueno pasemos al procedimiento:

1. Como primer paso previo a todo esto, es indispensable que realizen una actualizacion del sistema:

sudo apt-get update
sudo apt-get upgrade


Con esto tendremos actualizado nuestro sistema y evitaremos una serie de problemas, por las diferencias de versiones de ubuntu.

2. Editar las fuentes de ubuntu, para poder optar a instalar squid3.3.8

gedit  etc apt sources.list
y en la ultima linea de este colocar:
deb http://ubuntu.mirror.cambrium.nl/ubuntu/ saucy main

Actulizar las fuentes de ubuntu

sudo apt-get update
Sin el upgrade ya que no queremos actualizar de version a ubuntu solo a squid.

3. Procedemos a desinstalar squid del sistema para hacer el cambio de version

apt-get remove squid3
apt-get purge squid3
apt-get autoremove


4. Como penultimo paso pasamos a la instalacion de la nueva version de squid

apt-get install squid3 squidclient squid-cgi

La configuracion ya dependera de ustedes, aunque al final relatare algunos parametros que ya no son necesarios.

5. Procedemos a restaurar las fuentes a su esta anterior.

gedit  etc apt sources.list
y borramos la linea que colocamos anteriormente:
deb http://ubuntu.mirror.cambrium.nl/ubuntu/ saucy main

Actualizar las fuentes de ubuntu y listo ya tendran instalado la version 3.3.8 de squid.

Como detalles antes de terminar este post es que hay ciertos parametros o configuraciones que ya no se relatan en squid.conf, ejemplo los siguientes parametros ya no son necesarios:

acl manager proto cache_object
acl localhost src 127.0.0.1/32 ::1
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1
qos_flows disable-preserve-miss


Como otro detalle es desactivar ciertas funciones como:

pinger_enable off

la desactivamos ya que el paquete no es su sistema nativo, con esto quiero decir la version, si no lo desactivamos raptor o thunder no funcionaran, tambien en la configuracion de los logs de squid tendran una alerta por parte del cache.log, esta es facilmente areglable con añadir unos parametros a nuestra configuracion de access_log, puedes elegir cualquiera de las dos a continuacion:

access_log daemon:/var/log/squid3/access.log squid
access_log stdio:/var/log/squid3/access.log squid


Tambien como parte de las mejoras o nuevas politicas de squid, es usar diferente puerto para las peticiones locales y remotas, ejemplo:

http_port 3129
http_port 3128 intercept


Usando el puerto 3129 para procesar las peticiones de el mismo servidor y 3128 las que pasan por el Nat o son interceptadas, lo que quiere decir si quieren instalar algo en su servidor o actualizar tienen que configurarlo para pedir las peticiones al puerto 3129 y la red pues como se maneja tranparente no hay que configurar nada en los clientes, para terminar solo quiero decir que basicamente la configuracion es la misma, espero que puedan probar y les sea de utilidad, Saludos