Mostrando entradas con la etiqueta ubuntu. Mostrar todas las entradas
Mostrando entradas con la etiqueta ubuntu. Mostrar todas las entradas

jueves, 5 de julio de 2012

Linux con soporte CDP

El día de hoy tuve una necesidad donde necesitaba que Linux hablara CDP para realizar unas pruebas con Cisco, en fin, es bastante fácil y por ello lo dejo aquí:

Objetivo:
  Que linux hablé/soporte CDP

Pasos:

1) Bajar el paquete CDP: wget http://gpl.internetconnection.net/files/cdp-tools.tar.gz
2) Compilar el paquete:
   Tuve que bajar cierta cantidad de paquetes para poder compilar el mismo, les dejo lo que tuve que bajar:


  #apt-get install build-essential
  #apt-get install libnet0-dev
  #aptitude install libpcap0.8-dev
  #aptitude install libnet1-dev


3) Ahora si podemos compilar:
  #make

4) Listo!. Ejecutar: ./cdp-send eth0

Revisar que todo funcione:

1) Por ejemplo en un LAN Switch Cisco:

SW1#sh cdp neighbors        
Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge
                  S - Switch, H - Host, I - IGMP, r - Repeater


Device ID        Local Intrfce     Holdtme    Capability  Platform  Port ID
ubuntu           Fas 0/30           127          H        x86_64    eth0



2) SW1-PQC-OESTE#sh cdp neighbors detail 
-------------------------
Device ID: ubuntu
Entry address(es): 
  IP address: 192.N.1X.86
Platform: x86_64,  Capabilities: Host 
Interface: FastEthernet0/30,  Port ID (outgoing port): eth0
Holdtime : 141 sec


Version :
Linux 3.2.0-24-generic


advertisement version: 2
Management address(es): 


También se puede colocar la interfaz a escuchar CDPs:

# ./cdp-listen eth0

# Interface: eth0
# Hostname: SEP0004f2113d06
# Address: 10.0.0.65
#
# TimeToLive: 180
# Capabilities: L3TXRX(host) unknown(00000090)
#
# Networks:


Más información:
- http://openmaniak.com/cdp.php

Espero les sea útil!!


lunes, 18 de junio de 2012

Cliente SSH dura varios segundos para conectarse

Otro post sumamente rápido (pero útil):

Caso:
  Cuando intento conectarme a un servidor SSH (Linux server) el mismo dura varios segundos antes de pedir login/password.
  Esto es muy comun en servidores que no tienen acceso a Internet o DNSs mal configurados.

  Ocurre que cuando intentamos conectarnos al SSH Server intenta hacer una solicitud de DNS reverso para IP origen (de donde nos intentamos conectar).

  Por ejemplo, si quiero conectarme desde el equipo 192.168.1.2 al servidor SSH ubicado en el IP 10.1.1.21, este último, durante la conexión intentará buscar el reverso del IP 192.168.1.2.  El tiempo que vemos antes de obtener "Login" es precisamente el timeout del SSH Server durante la operación DNS.

Solución:
  La solución es sumamente sencilla, existen dos manera:

1) Si siempre nos vamos a conectar desde la misma dirección IP (o muy pocas diferentes):
  En el servidor editar el archivo /etc/hosts y colocar los IPs de origen desde donde me conectaré. ejemplo:

192.168.1.2  blog.acostasite.com  aacostaPC
192.168.1.3  www.lomejordelemail.com miPC

2) La solución alternativa es colocar al final del archivo /etc/ssh/sshd_config 


UseDNS no


Más información:

Espero haya sido útil.


miércoles, 13 de junio de 2012

Ajustar/Configurar la hora en Linux

Hola,
  Este es un post sumamente rápido

Situación:
  - Deseo ajustar la hora de mi equipo Linux (en mi caso Ubuntu)

Dos soluciones:
a)   Manera elegante:
  - Es necesario cambiar el time zone del equipo y ajustar via ntp

b)   Manera no elegante:
  - Forzar la hora usando el comando date



a) Procedimiento elegante:
#cd /etc  (colocarse en el directorio etc)
#mv timezone timezone.old  (un backup, porsia)
#ln -sf /usr/share/zoneinfo/America/Caracas /etc/localtime  (link simbolico al timezone de Caracas en mi caso)

# ntpdate 1.pool.ntp.org  (ajustar la hora con un ntp server)
13 Jun 10:51:15 ntpdate[5845]: step time server 200.3.168.192 offset -7459.178215 sec

b) Procedimiento no elegante:
   Colocar la hora y fecha: 6 de Noviembre de 2011 a las 20:25 con 00 segundos:
#date 110620252011.00


Revisar:
#date


Espero sea útil,


sábado, 26 de mayo de 2012

Como instalar un root server local (DNS).

Hola,
  Recientemente en algunas listas de discusión que sigo se hablaba sobre instalar un servidor DNS root server local, en fin, me llamó la curiosidad y lo hice solo por razones académicas.
  He escuchado que esto de alguna manera puede mejorar el performance de alguna red, sobre todo en el mundo de los ISPs, sin embargo, en lo personal no lo veo necesario, lo dejo al criterio de cada uno de ustedes.
 
Laboratorio:
  - Dos servidores y un cliente: Un servidor con Ubuntu, otro con Mandriva, el cliente también fue Mandriva. Donde:
    * Servidor Mandriva como Root Server (Nombre Z, IP=192.168.127.68)
    * Servidor Ubuntu como Servidor DNS recursivo (IP=192.168.127.86)

Primero:
    1) Logicamente probar que el servidor recursivo funcione correctamente
    2) Posteriormente, editar el archivo db.root de Ubuntu y dejar algo similar a:


;
.                        3600000  IN  NS    Z.ROOT-SERVERS.NET.
Z.ROOT-SERVERS.NET.      3600000      A     192.168.127.68
; End of File

  Notese que realmente lo que hice fue eliminar los root servers tradicionales y agregar las lineas correspondientes a Z.ROOT-SERVERS.NET (Z es el nombre del mi root server y 192.168.127.68 es la dirección). 
  Logicamente sin haber más hints de root server, el servidor recursivo se verá forzado a utilizar Z como root server.

Nota:
  En /var/log/syslog luego de reiniciar BIND puedes conseguir una línea similar a la siguiente:
May 25 19:05:16 ubuntu named[4953]: checkhints: extra NS 'Z.ROOT-SERVERS.NET' in hints

Segundo:
  Aqui es donde realmente instalamos el root server en el servidor Mandriva (que realmente es muy sencillo).
  1) Bajar el archivo root.zone de: http://www.iana.org/about/popular-links/
  2) En el archivo /etc/named.conf del root server hay que modificar el siguiente renglón:

  zone "." {
        type hint;
        file "/etc/bind/db.root";
};

  Por:

zone "." {
        type master;
        file "/etc/bind/root.zone";
};

 El archivo root.zone debe estar ubicado en el directorio correspondiente, en mi caso fue en /var/lib/named/var/named/, posteriormente hay que reiniciar y ya. En el root server ni siquiera hay que estar pendiente de recursividad y esas cosas porque este tipo de servidor tradionalmente no debe ni necesita hacer esta operación.

Tercero:
  Probar desde el cliente:

[root@localhost ~]# dig blog.acostasite.com

; <<>> DiG 9.8.0-P4 <<>> blog.acostasite.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 26771
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 2, ADDITIONAL: 0

;; QUESTION SECTION:
;blog.acostasite.com.           IN      A

;; ANSWER SECTION:
blog.acostasite.com.    0       IN      CNAME   cf-protected-blog.acostasite.com.
cf-protected-blog.acostasite.com. 300 IN A      108.162.198.198
cf-protected-blog.acostasite.com. 300 IN A      108.162.195.100

;; AUTHORITY SECTION:
acostasite.com.         172800  IN      NS      bob.ns.cloudflare.com.
acostasite.com.         172800  IN      NS      leah.ns.cloudflare.com.

;; Query time: 199 msec
;; SERVER: 192.168.127.86#53(192.168.127.86)
;; WHEN: Fri May 25 19:34:24 2012
;; MSG SIZE  rcvd: 152


Mas información:


  Espero haya sigo útil.





   

miércoles, 17 de agosto de 2011

Crear un archivo de determinado tamaño en Linux

Hola todos, este es un post sencillo pero quizás muy util


Introduccion:
  Deseo crear un archivo de un tamaño especifico en linux

Comando:
Para crear un archivo de..., digamos 5 Megabytes:

Formula:
(10*1024*1024=5242880 bytes). Esto quiere decir que 5 MB en bytes son: 5242880

El comando a ejecutar es:
$ dd if=/dev/zero of=archivo_5MB bs=5242880 count=1


Importante, si intentas utilizar el device if (input file) /dev/null NO SIRVE, el tamaño resultante del archivo será 0.

1+0 records in
1+0 records out
5242880 bytes (10 MB) copied, 0.392 s, 33.6 MB/s

Luego has un "ls -l" y revisa el tamaño del archivo.

viernes, 8 de abril de 2011

Error: requested_mask="w::" denied_mask="w::

Situacion: El día de hoy trabajando con Ubuntu y queriendo hacer varios cambios sobre bind tuve varios inconvenientes al momento de cambiar por el ejemplo el path del pid-file, queriendo hacer algunos zone-transfer, etc. Lo cierto es que al intentar levantar algun servicio (en mi caso Bind) recibo el error al momento de chequear /var/log/messages: requested_mask="w::" denied_mask="w:: Por ejemplo: Apr 8 08:33:38 aacosta-laptop kernel: [56201.539234] type=1503 audit(1302267818.893:37): operation="mknod" pid=3028 parent=1 profile="/usr/sbin/named" requested_mask="w::" denied_mask="w::" fsuid=114 ouid=114 name="/etc/bind/tmp-cIBQ1GNOqf" Solución: Desabilitar apparmor. /etc/init.d/apparmor stop Espero sea de utilidad,

sábado, 1 de enero de 2011

Deshabilitar IPtables en Ubuntu

Situacion:
IPtables y UFW estan dando dolores de cabeza.
Deseo permitir todo el trafico con IPtables

Solucion:
Ejecuta los siguientes comandos como root:

iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -L -n

Suerte, espero haya sido util,

viernes, 31 de diciembre de 2010

Bind / Syslog / Logrotate

Situacion:
Deseo que Bind envie los logs a traves de Syslog y luego rotarlos diariamente con logrotate.

Solucion:
Para lograr que Bind envie sus logs a traves de Syslog recomiendo seguir los siguientes pasos:

1) Definir un nuevo facility en /etc/syslog.conf el cual utilizaremos como "canal" dentro de Bind. Esto es muy conveniente para tener un unico archivo con solo informacion relevante sobre DNS y Bind. Para definir el facility coloca lo siguiente dentro de /etc/syslog.conf

local7.* -/var/log/bind.log

NOTA: Recuerda que puedes definir desde local0 hasta local7 facities segun tu necesidad

2) Luego en Bind se le va a indicar que utilice el facity local7 y guarde los logs de query (en mi caso es lo unico que necesito, se puede almacenar gran cantidad de logs referentes a otros temas como: lame servers, dnssec, xfer y mucho mas). Ademas de almacenar el query deseo que se escriba la fecha y hora del query DNS. En /etc/named.conf (seccion de options) agrega:

logging {
channel query.log {
severity debug 3;
print-time yes;
syslog local7;
};
category queries { query.log; };
};

3) Debido al tamano del logs, posteriormente tuve la necesidad de rotarlo de manera diaria pero antes deseo realizar la rotacion deseaba ejecutar un script para un proceso puntual. Para ello hice la siguiente configuracion en logrotate. Para este punto editar el archivo /etc/logrotate.d/bind y anadir:

/var/log/bind.log {
daily
prerotate
/root/SCRIPTS/dnsqueries.sh
endscript
missingok
rotate 4
compress
create
}

Con este paso, el archivo /var/log/bind.log se rotara automaticamente de manera diaria pero antes se ejecutara el script /root/SCRIPTS/dnsqueries.sh.

Mas informacion:
http://zytrax.com/books/dns/ch7/logging.html (DNS Bind Logging)
http://doc.novsu.ac.ru/oreilly/tcpip/puis/ch10_05.htm (The Unix system log)

Suerte, espero haya sido util,

martes, 30 de marzo de 2010

Clave por defecto de root en Ubuntu

Situacion:
Luego de instalar Ubuntu no puedo entrar como root ni hacer un "su" al usuario. El resto de los usuarios funcionan bien

Explicación:
Luego de la instalación, por defecto Ubuntu viene con el usuario root bloqueado, esto se puede verificar en /etc/shadow y ver el signo de exclamación (!) en el usuario root

Solución:
Existen muchas maneras de solucionar la situación. La más sencilla y funcional:

$sudo -i
#passwd root
Changing password for user root.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.

Luego de esto el usuario root quedará habilitado

Suerte!

Una mejora práctica en el Transporte DNS sobre UDP en IPv6

Por Hugo Salgado y Alejandro Acosta Introducción y planteamiento del problema En el presente documento queremos discutir sobre un draft (bor...