Archivo

Archive for the ‘Linux’ Category

Apuntes sobre Arch

Después de unos días con Arch estoy bastante contento, tiene muchas aplicaciones debido a sus 2 sistemas de paquetería y  su ingente documentación debido, supongo, a su amplia comunidad.

Su sistema de paquetería principal es pacman (similar a apt) el cual tiene unos reposistorios y unos comandos:

pacman <comando> [nombre_paquete]

Los comandos son combinables sobre todo los de sincronizar repositorios con el resto.(extraído de sobrebits)

Instalar paquetes

pacman -S “paquete”      #Instala un paquete.
pacman -Sy [“paquete”] #Sincroniza repositorios [e instala el paquete].
pacman -Su                    #Actualiza los paquetes
pacman -Syu                  #Sincroniza repositorios y actualiza paquetes.
pacman -Syyu                #Fuerza sincronización y actualiza paquetes.
(vemos la combinación de comando para actualizar)

Eliminar paquetes

pacman -R “paquete”     #Borra paquete sin sus dependencias.
pacman -Rs “paquete”   #Borra paquete y sus dependencias no utilizadas.

Buscar paquetes

Para buscar paquetes se diferencia la base de datos local y los repositorios:
Desde repositorios:

pacman -Ss <string1> <string2>    #Busca los strings como nombre del paquete o su descripción.
pacman -Si “paquete”   #Muestra información detallada de un paquete.
pacman -Sg “grupo”     #Lista los paquetes que pertenecen a un grupo.

Si sustituimos -S por -Q nos da la misma información pero de paquetes YA INSTALADOS

pacman -Qdt                #Muestra paquetes huérfanos.

Y luego tenemos los paquetes AUR que son unos binarios preparados para compilar e instalar con pacman, para usarlos es necesario instalar:


pacman -S --needed base-devel

El procedimiento es el siguiente:

  • Descargar el paquete AUR (.tar.gz) mediante:
    • la interfaz web de AUR con algún navegador gráfico o de texto
    • curl, wget, git o cualquier gestor de repositorios…
  • Descomprimir el paquete en un directorio (tar -xvf fichero.tar.gz)
  • Revisar el PKGBUILD y/o *.install en busca de posibles comandos maliciosos
  • Ejecutar dentro del directorio:
     makepkg -sri 
  • y listo!

Esta manera nos proporciona una cantidad inmensa de aplicaciones.

Existe un gestor de paquetes AUR  que hace más cómodo el proceso anterior llamado yaourt

Para instalarlo:

git clone https://aur.archlinux.org/package-query.git
cd package-query
makepkg -si
cd ..
git clone https://aur.archlinux.org/yaourt.git
cd yaourt
makepkg -si
cd ..

Para usarlo es como pacman (las mismas opciones)

yaourt -h

Y como ejemplo vamos a instalar chrome (extraído de Odomera) en luyaougar de chromium (navegador donde google saca el fuente para chrome, pero obviamente sin su integración) desde un paquete AUR con yaourt.

yaourt -S google-chrome --noconfirm

A lo mejor necesitamos instalar alguna otra dependencia que nos pida yaourt al final de la instalación.

Categorías:Linux, Sistemas Operativos Etiquetas: , , ,

Mi aventura con Arch linux…y su…

Un día, como en otras ocaciones me había ocurrido,  me aburrí de Windows y decidí instalar Linux, esto desencadena un torrente de posibilidades que logré filtrar hasta determinar si instalaba Debian (ya conocida) o Arch Linux (nunca instalada). Después de leer infinidad de páginas la conclusión es que las dos están muy bien, pero Arch es más ligera debido a que no instala paquetes adicionales (algunos innecesarios) y además el rolling release y no freeze release, es decir, que se actualiza a las últimas versiones. Por estas razones y por la novedad de aprender algo nuevo decido Arch y es aquí donde empieza mi aventura.

Un vez con la distro en una unidad USB

dd bs=4M if=/archiso.iso of=/dev/sdxx

arranco desde la misma (el root no tienen pass) y el primer problema que encuentro es la distribución del teclado que cambiamos con

loadkeys es

luego surge otra duda, EFI vs BIOS. En este caso EFI es más moderna que BIOS y supera sus limitaciones. Resumiendo (ver este artículo) una EFI necesita un pequeña partición FAT al principio del disco donde se encuentran los archivos necesarios para arrancar los posibles distintos sistemas operativos para esa máquina o gestor de arranque para EFI, pero (me adelanto un poco y luego retrocedo hasta este punto) tras varios intentos instalando Arch mi EFI decía que no reconoce la partición vfat de la EFI (oO) (posiblemente por que le dí sólo 200Mb en lugar de 300Mb como dice el artículo), así que cuando la desesperación superó a la desmotivación active el modo Legacy (BIOS y no EFI) y lo instale de forma convencional (usando BIOS).

Nota: tener en cuenta que el disco tiene que estar configurado (antes de particionar) en GPT para EFI o en msdos para BIOS

Y continua la aventura. Como no tengo ni idea de Arch me base en este tutorial que resumo a continuación pero que es importante ojear.

Bien, una vez particionado el disco (recomiendo familiarizarse con parted) procedemos a montar las particiones en la carpeta /mnt. Ojo con la jerarquía, según el esquema de particiones elegido, ya que /boot suele ser la primera partición (sda1) y el raíz (/) la segunda (sda2)(En este caso montar sda2 en mnt y luego crear las carpetas para montar boot y home, por ejemplo).

Necesitamos una conexión a internet para la descarga de los paquetes, si tienes una red cableada el demonio dhcpcd se inicia automáticamente, pero si tienes una conexión inalámbrica debes ejecutar wifi-menu para configurar tu red inalámbrica (utilidad fantástica donde las haya).

Ahora descargamos los paquetes:

pacstrap /mnt base base-devel

como ya tenemos el esquema de particiones logrado y montado sobre /mnt generamos nuestro fstab

genfstab -U /mnt > /mnt/etc/fstab
-U - es para que coja los UUID de los discos.

como no hemos hecho demasiadas configuraciones salvo la red wifi copiamos la configuración de ésta a nuestro directorio

cp -r /etc/netctl /mnt/etc

y situamos nuestra carpeta como inicio para trabajar sobre nuestro Arch

arch-chroot /mnt /bin/bash

Ajustamos la configuración regional y de idioma

Descomentamos la linea correspondiente en /etc/locale.gen (es_ES.UTF-8) y ejecutamos:

locale-gen

Creamos /etc/locale.conf

echo LANG=es_ES.UTF-8 > /etc/locale.conf

Para hacer persistente en nuestra instalación el comando loadkeys es creamos el archivo /etc/vconsole.conf

echo LANG=es > /etc/vconsole.conf

Ahora seleccionamos el uso horario creando un enlace simbólico desde /usr/share/zoneinfo/<Zona>/<SubZona> a /etc/localtime

ln -s /usr/share/zoneinfo/Greenwich /etc/localtime

Procedemos ahora a configurar las redes

pacman -S NetworkManager netctl dialog iw wpa_supplicant
systemctl enable dhcpcd
systemctl enable netctl
systemctl enable NetworkManager
echo <nombreMaquina> > /etc/hostname

Si solo vamos a tener un sistema operativo no hace falta gestor de arranque pero siempre es interesante. Como nos hemos decantado por BIOS/MBR

Instalamos grub y os-prober (para hacer que GRUB busque otros sistemas operativos instalados):

pacman -S grub os-prober

El gestor de paquetes de Arch instala grub en el sistema pero no en la partición:

grub-install --recheck /dev/sda

Generamos automáticamente el archivo grub.cfg:

grub-mkconfig -o /boot/grub/grub.cfg

Y por fin salimos de chroot, desmontamos y reiniciamos.

exit
umount -R /mnt
reboot

Si todo ha ido bien (que debería) tendremos un Arch base instalado con conexión de red, pero como a nadie le gusta trabajar en modo texto vamos a instalar un entorno gráfico (me decante por gnome3 que me parece genial)

Como no queremos trabajar como root creamos un usuario, que nos servirá luego para acceder al entorno gráfico.

useradd phernandez -p

Ahora instalamos el paquete gnome (ver paquetería de Arch)

pacman -S gnome

Una vez instalado le decimos a Arch que arranque el entorno gráfico por defecto, mediante el gestor de sesiones gdm.

systemctl enable gdm

Yo tuve algún problema con las redes porque nunca hice

systemctl enable netctl
systemctl enable NetworkManager

Y ahora toca personalizar o ajustar Gnome 3 (ver)

pacman -S gnome-tweak-tool

Eliminar tiempo de apagado cuando apagamos:

gsettings set org.gnome.SessionManager logout-prompt 'false'

Y listo! a partir de aquí personalizar como deseen aunque hay una serie paquetes recomendables:

dosfstools , ntfstools, gparted, tlp (si la maquina es un portatil),….

espero que les sea de ayuda.

Categorías:Linux, Sistemas Operativos

Mi servidor Linux (raspian)

Empezar por el principio

El servidor se inicia con SSH activado y por defecto el login es pi/raspberry así que la primera tarea es cambiar esto

 passwd 

Luego cambiar la ip por defecto que está en DHCP ver este artículo

Luego procederemos a actualizar los repositorios

sudo apt-get update 

Mejorar el editor vi

sudo apt-get install vim 

Instalar NGINX (ver configurar nginx)

 sudo apt-get install nginx 

Instalar PHP5

 sudo apt-get install php5 php5-fpm php5-cgi php5-mysql php5-curl php5-gd php-pear php5-imagick php5-mcrypt php5-sqlite 

Instalar MariaDB

 sudo apt-get install mariadb-server 

Instalar phpmyadmin

sudo apt-get install phpmyadmin

Para lograr que funcione en NGINX, hay que crear un enlace simbólico en el directorio web:

sudo ln -s /var/lib/phpmyadmin phpmyadmin

Si resulta un error sobre el usercontroller, editar /etc/phpmyadmin/config.inc.php y buscar la linea:

$cfg[‘Servers’][$i][‘user’] = ”;
$cfg[‘Servers’][$i][‘password’] = ”;
ó
$cfg[‘Servers’][$i][‘controluser’] = ”;
$cfg[‘Servers’][$i][‘controlpass’] = ”;

y asegurarse de que los valores estén vacíos.

Para resolver el error SQL1146 al crear tablas o realizar consultar, editar /etc/phpmyadmin/config.inc.php y buscar la linea:

$cfg['Servers'][$i]['table_uiprefs'] = 'pma_table_uiprefs';

y sustituirla por:

$cfg['Servers'][$i]['pma__table_uiprefs'] = pma__table_uiprefs’;

Instalar MLDonkey (ver)

apt-get install mldonkey-server

Ahora debemos permitir la entrada de cualquier ip al servidor, para ello usamos y aprovechamos para configurar el usuario de acceso a la interfaz web.


telnet  localhost 4000

set allowed_ips "255.255.255.255"

useradd admin <password>

o podemos modificar /var/lib/mldonkey/downloads.ini para permitir cualquier ip, pero antes debemos parar el servicio (ojo systemd)

sudo systemctl stop mldonkey-server

después editar /var/lib/mldonkey/downloads.ini y en la seccion “allowed ips” añadir:

allowed_ips = [
“127.0.0.1”;
“255.255.255.255”;]

Arrancamos otra vez el server…

sudo systemctl start mldonkey-server

Debido a la que la capacidad de la tarjeta SD donde se encuentra Raspian, no será demasiado grande cambiaremos la ubicación del almacenamiento del servidor. Para no tocar el archivo anterior demasiado (que es muy delicado, la verdad) cambiaremos las carpetas reales por enlaces simbólicos hacia las carpetas que nosotros querramos (las carpetas de descargas podemos unirlas en una sola):

  • /var/lib/mldonkey/incoming/files
  • /var/lib/mldonkey/incoming/directories

este proceso lo repetimos para los temporales (donde se irán acumulando las descargas incompletas en curso):

  • /var/lib/mldonkey/temp

 

Y listo! el servidor esta escuchando en el puerto 4080.

Ver instalar servidor DNS aqui

Nubes personales (Pydio vs owncloud)

Tanto Pydio como Owncloud son nubes personales y las dos cumplen con su cometido. Para mi uso personal prefiero owncloud porque:

  • Aunque Pydio acepta enlaces simbólicos a otras carpetas desde su carpeta de datos (owcloud 8.2 no, pero yo uso la versión 8.1 que si lo hace) se hace complicado de configurar para que lo que subas no lo haga su carpeta raíz.
  • El cliente para android es bastante lento y pobre en opciones de administración.
  • Este cliente no permite compartir contenido con su nube en otras aplicaciones, por lo que hay que subir todo desde el cliente lento.
  • Es complicado crear un repositorio.

Instalar Pydio

Instalar pydio es muy simple, copiar a la carpeta y seguir el asistente de instalación. Necesita una base de datos MySQL

Instalar Owncloud

Es exactamente igual que instalar pydio, tambien requiere de una base de datos mysql. Pero owncloud requiere alguna cosilla más como un host especifico dentro de tu dominio y alguna configuración específica de carpetas. (la configuración está en /config/config.php). Recordar que la versión 8.1 admite enlaces simbólicos. Aunque he decidido instalar la ultima versión que aunque no admite enlaces simbólicos, he resuelto esta situación poniendo los archivos en la estructura de carpetas que la aplicación propone y hacer los montajes de las unidades pertinentes en dicho lugar.

Categorías:Linux Etiquetas: , , , ,

Uso indebido de WGET

Extraído de  http://www.linuxtotal.com.mx/?cont=info_admon_017

wget es una herramienta que puede ser usado en multiples  plataformas, en entornos *nix suele venir integrado y en entornos windows hay que descargarla a parte. Es un dowloader con multitud de opciones,  soporta http, https y ftp.

Ejemplos básicos

La forma más básica es descargar un archivo o varios escribiendo las direcciones separadas por espacios, independientemente de los protocolos:

wget http://ejemplo.com/programa.ext [protocolo://servidor.ext/programa.ext] [] []

Incluso podemos usar comodines para descargar un determinado tipo de archivos de un sitio:

wget http://ejemplo.com/*.pdf

También podemos automatizar las descargas guardando en un archivo las direcciones (linea/archivo) a descargar y luego pasándole a wget dicho archivo

(creamos una lista en archivos.txt que serán descargados)
http://ejemplo.com/programa.tar.gz
http://ejemplo.com/rpm/paquete.rpm
ftp://otrositio.com/descargas/distro.iso

(descargamos todos indicando el archivo)
wget -i archivos.txt

Un problema común en las descargas, sobretodo cuando son grandes, es que se interrumpan. Pero estamos de suerte wget lo resuelve con la opción -c:

wget -c http://ejemplo.com/distro.iso
wget -i -c archivos.txt

Otro detalle de wget es que las descargas usan el nombre de la dirección dada. Para solventar esto usamos la opción  -o para darle el nombre que queramos al archivo descargado:

wget -o reporte.txt http://ejemplo.com/programa.tar.gz

También podemos limitar el ancho de banda utilizado por wget:

wget -o /reporte.log --limit-rate=50k ftp://ftp.centos.org/download/centos5-dvd.iso

Si el sitio requiere de usuario/contraseña:

wget –http-user=admin –http-password=contraseña http://ejemplo.com/archivo.mp3

wget realiza 20 intentos de conexión, por defecto, para iniciar la descarga pero podemos varias este comportamiento con -t <num> (si num = inf se entiende infinito)

wget -t 50 http://ejemplo.com/pelicula.mpg
wget -t inf http://ejemplo.com/pelicula.mpg

Ejemplos avanzados

Descargar un sitio web completo:

wget www.sitioweb.ext

Con la opción -p se descargan además todos los elementos externos de la página (CSS, IMGs…)

wget -p www.sitioweb.ext

Para llegar a todos los niveles del sitio hacemos una descarga recursiva -r :

wget -r www.ejemplo.com -o reporte.log

Para indicar el número de niveles de recursividad añadimos la opción <em>-l</em> indicando el número de niveles ('inf' = infinito):

wget -r -l10 www.ejemplo.com -o reporte.log

Uno de los problemas que surgen al descargar un sitio es que los enlaces apuntan a una dirección de internet. Wget lo resuelve con la opción convert-links ó -k  que convertirá los enlaces en locales:

wget --convert-links -r http://www.sitio.com/ (o también) wget -k -r http://www.sitio.com/

Por defecto, el sitio se descarga en el mismo directorio donde se ejecute wget con la opción –P(MAYS) se puede indicar otro directorio:

wget -r -l3 -P/tmp/sitio ftp://www.unsitio.com/

Todas éstas opciones se agrupan en la opción –mirror ó -m equivalente a -r -linf -N (-N obtiene la marca de tiempo original de cada archivo descargado):

wget --mirror http://www.linuxtotal.com.mx/
(o también)
wget -m http://www.linuxtotal.com.mx/

Cuando descargas un sitio completo los archivos de código (.cgi, .asp o .php) pasarán desapercibidos a wget, salvo que se use la opción E o –html-extension que convierta estos archivos a .html:

wget --mirror --convert-links --html-extension http://www.linuxtotal.com.mx
(o tambíen)
wget -m -k -E http://www.linuxtotal.com.mx

La opción H extiende la recursividad a sitios externos a la dirección original:

 wget -H -r -l3 -k -E -p http://miblog.sitiodeblogs.com</span>

Un ejemplo extremo de la potencia de wget

Busca archivos mp3 desde una lista definida, recuerda, un renglón por cada sitio.

wget -r -l1 -H -t1 -nd -N -np -A.mp3 -erobots=off -i sitiosmp3.txt

Detalle de las opciones:

  • [-r -l1] recursivo en solo un nivel, solo buscará un nivel en cada subdirectorio que encuentre por sitio.
  • [-H] seguir enlaces externos.
  • [-t1] -t es igual –tries, solo hará un intento de conexión.
  • [-nd] indica no crear subdirectorios para cada archivo descargado
  • [-N] conserva la fecha y hora (timestamp) del archivo original que se descargue
  • [-np] no parent, no seguir enlaces a directorios superiores desde el actual
  • [-A.mp3] -A indica el tipo de archivo a descargar
  • [-erobots=off] evita los archivos ‘robots.txt’, ya que podrían dificultar la búsqueda
  • [-i sitiosmp3.txt] el archivo con la lista de los sitios desde donde buscar.

PD: http://musik.antville.org/stories/676094/ contiene una lista de blogs donde descargar MP3 😉

Manual de APT

1. apt-cache search <paquete> [options]

<paquete> puede ser:

  • el nombre del paquete con caracteres de expresión regular por ejemplo:
    • $ apt-cache search ^apache2$
      
      apache2 - Apache HTTP Server metapackage
      
  • la descripción del paquete
    • $apt-cache search "Apache HTTP Server"
      
      apache2 - Apache HTTP Server metapackage
      apache2-doc - Apache HTTP Server documentation
      apache2-mpm-event - Apache HTTP Server - event driven model
      apache2-mpm-prefork - Apache HTTP Server - traditional non-threaded model
      apache2-mpm-worker - Apache HTTP Server - high speed threaded model
      apache2.2-common - Apache HTTP Server common files
      
  • el nombre de un fichero del paquete
    • $ apt-file search apache2.conf
      
      apache2.2-common: /etc/apache2/apache2.conf
      apache2.2-common: /usr/share/doc/apache2.2-common/examples/apache2/apache2.conf.gz
      

2. apt-cache show <paquete>

Muesta información sobre un paquete desarrollador, mantenedor, versión, tamaño, dependencias….

3. apt-cache showpkg <paquete>

Muestra información detallada del paquete como dependencias inversas, MD5, nombre del paquete completo…

4. apt-file list <paquete>

Muestra todos los ficheros contenidos en el paquete

5. apt-cache depends<paquete> 

Muestra las dependencias del paquete, obviamente esto es útil antes de instalarlo

6. dpkg -l | grep <paquete>

Con este comando veremos si el paquete en cuestión ya está instalado.

$ <strong>dpkg -l | grep -i apache

7. apt-get install <paquete>

Instala el paquete en el sistema

8. apt-get remove <paquete> / apt-get purge <paquete>

Eliminan un paquete del sistema

  • apt-get remove, no elimina ficheros de configuración
  • apt-get purge, eliminará ficheros de configuración

9. apt-get -u install <paquete>

Actualiza un paquete específico

10. apt-get -u upgrade / aptitude safe-upgrade

Actualiza todos los paquetes del sistema

Categorías:Linux, Sistemas Operativos Etiquetas: ,

Servidor DNS Bind

Bind es  un servidor de nombres o DNS, pero antes de nada explicaré algunos conceptos:

Una IP es una dirección única que identifica cada máquina dentro de una red, como internet o una intranet.

Un dominio es un nombre amigable para acceder a un grupo de máquinas. Se compone de 2 partes un dominio de alto nivel (TLD, Top Level Domain) como com,org,net,es… y otra parte que es la que elegimos. Así tenemos nombres de dominio como google.com o microsoft.es. Pero como dijimos el dominio apunta a un conjunto de máquinas, para acceder a una sola máquina dentro de un dominio deberemos tener hosts.

Un host es un nombre amigable de una máquina determinada dentro de una red del dominio.

De esta manera tenemos un FQDN (Fully Qualified Domain Name): host.dominio.tld (www.google.com). Una vez conociendo estos conceptos:

Un DNS es una “base de datos”, normalmente  distribuida, donde se guardan las asociaciones de nombres de dominios (como google) y hosts (como www) con sus correspondientes IPs. Cuando uno adquiere un dominio deberá tener una IP fija donde pueda escuchar el DNS (puerto 53 UDP y TCP) y este servidor deberá estar correctamente configurado para servir su propio dominio (el que hemos adquirido) y además pueda comunicárselo al resto de servidores que forman esa “base de datos” distribuida y no esperar que éstos se den cuenta del nuevo dominio.

Existen una serie de servidores DNS llamados roots que contienen las asociaciones básicas de los TLDs, que forman parte de la configuración del propio servidor. Ahora veremos como que hace un DNS:

Empezando por una petición, por ejemplo http://www.google.com, nuestra máquina accederá al servidor DNS configurado (cliente DNS en la configuración de la tarjeta de red), este le pasa la petición a los servidores root, que contienen la información del TLD para dominios .com, este a su vez  lleva a los servidores de nombres de google, donde se consulta a que IP corresponde el host www, y se devuelve ésta y así la petición es enviada a esta IP.

El DNS  se compone de dos partes

  • BIND, es el servidor propiamente dicho. Escucha en el puerto 53 TCP y UDP; y responde a las peticiones con la IP del host del dominio solicitado.(bind9)
  • RESOLVER, es el cliente, donde se configuran a que servidores se les va ha preguntar por las IPs (/etc/resolv.conf).

La configuración

Vamos a suponer el siguiente escenario. Servidor con IP 192.168.15, que responda internamente a un host servidor de un dominio serverip.net (externamente se usará el servidor de nombres del propio registrador de dominio que está publicado en internet).

Para instalar el bind en sistemas linux:

apt-get install bind9 dnsutils

El primer fichero que el servidor intenta leer cuando hay una petición es /etc/bind/named.conf:

include "/etc/bind/named.conf.options";
include "/etc/bind/named.conf.local";
include "/etc/bind/named.conf.default-zones";
  • En el primer archivo se define la localización de la cache DNS y la configuración genérica del servidor como fordwarders, transferencia de zonas, etc..
  • En el segundo pondremos nosotros nuestras zonas (nuestro dominio y máquinas)
  • En el tercero las zonas básicas para un DNS
    • zone “.” contiene los servidores root.
    • zone “localhost”.  Esta zona representa al propio servidor (loopback, 127.0.0.1). 
    • El resto son archivos de zonas inversas. Es decir, asocia una IP con una máquina o un dominio, al contrario que el DNS. Se identifican por la extensión in-addr.arpa

named.conf.local (nuestras zonas)

zone "serverip.net" {
 type master;
 file "/etc/bind/db.servidor";
};

zone "1.168.192.in-addr.arpa"{
 type master;
 file "/etc/bind/db.1.168.192.in-addr.arpa";
};
  • zone serverip.net, define el fichero de configuración de nuestra zona primaria (nuestro dominio) . Este fichero puede ser una copia de db.local y su  nombre DEBE ser el nuestro host. (servidor en este caso para servidor.serverip.net)
  • zone 1.168.192.in-addr.arpa, define la búsqueda inversa de la zona 192.168.1.x. Ojo que está justo al revés de atrás hacia adelante evitando el último número de la IP. Se puede acortar por ejemplo a 168.192.in-addr.arpa pero cada host estaría definido como 1.15 (en  nuestro caso). Este fichero puede ser una copia de db.127.

/etc/bind/db.servidor

Aquí vamos a definir los hosts que conforman nuestro dominio, además de los tiempos para la replicación de las zonas.

$TTL 604800
@ IN SOA servidor.serverip.net. root.serverip.net. (
         201412032  ; fecha+incremental de referencia para un Slave, saber si tiene                      que actualizarse o no 
         604800     ; tiempo entre actualizaciones para un Slave
         86400      ; tiempo de reintento en caso de fallo.
         2419200    ; tiempo en que caduca la información de un Slave
         604800 )   ; tiempo de vida de la petición.
;
@ IN NS servidor.serverip.net.
@ IN MX 10 mail.serverip.net.
@ IN A 192.168.1.15
@ IN AAAA ::1
www  IN CNAME servidor.serverip.net.
mail IN A 192.168.1.10
  • @, corresponde a la zona definida en el servidor
  • IN, tipo de registro INternet, ver más adelante.
  • SOA, especifica el servidor DNS primario del dominio, la cuenta de correo del administrador (root@serverip.net), los tiempos de refresco de los servidores secundarios. Es el primer registro de la zona y sólo puede haber uno en cada archivo de la zona y sólo está presente si el servidor es autoritario del dominio.
  • Observar que los nombres acaban en “.” por que se parsean desde el final e indican el inicio del FQDN.

Observar que el servidor se llama servidor, con lo que en /etc/hostname debería de coincidir con dicho nombre y además apuntar a una máquina y no a un conjunto de máquinas (dominio).  Por otra parte para evitar el molesto mensaje “unable to resolve host” debemos actualizar el fichero /etc/hosts el cual posee un mapa de las ips locales de la siguiente manera:


127.0.0.1        localhost.serverip.net localhost
127.0.1.1         servidor

Observar que 127.0.1.1 coincide con /etc/hostname 😉

Luego van las definiciones de cada host para la zona asociándolo con su respectiva IP con el siguiente formato:

  • HOST   CLASE     [TTL ]    TIPO    DATOS
  • HOST: el nombre de la máquina, salvo en el DNS inverso que al tipo PTR le corresponde el último octeto de la IP.
  • CLASE: la clase puede ser IN (relacionada a protocolos de Internet, y por lo tanto, éste es el sistema que utilizaremos en nuestro caso), o CH (para el sistema caótico);
  • TIPO: define el tipo de recurso descrito por el registro:
    • A: Asocia el host con un IP. Pueden existir varios registros A relacionados con la misma IP aunque lo lógico es crear alias con CNAME.
    • CNAME (Nombre Canónico): Permite definir un alias para un host. Es particularmente útil para suministrar nombres alternativos relacionados con diferentes servicios en el mismo equipo.
    • HINFO: éste es un campo solamente descriptivo que permite la descripción en particular del hardware del ordenador (CPU) y del sistema operativo (OS).
    • MX (Mail eXchange): indica el servidor de correo electrónico en formato FQDN como CNAME. Debe existir un registro A que indique la IP. Pueden existir varios registros MX por dominio, para así suministrar una repetición en caso de fallas en el servidor principal de correo electrónico. De este modo, el registro MX permite definir una prioridad con un valor entre 0 y 65,535:
      mail.serverip.net. IN MX 10 mail.commentcamarche.net.
    • NS: es el servidor de nombres de dominio con autoridad sobre el dominio.
    • PTR: Es lo contrario de A. Asocia una IP a un host. Se utiliza en la búsqueda inversa.
    • SOA (Start Of Authority (Inicio de autoridad)): el campo SOA permite la descripción del servidor de nombre de dominio con autoridad en la zona, así como la dirección de correo electrónico del contacto técnico (en donde el carácter “@” es reemplazado por un punto).
    • TXT (Text): Permite asociar información adicional a un dominio. Esto se utiliza para otros fines, como el almacenamiento de claves de cifrado o autentificación.
  • DATOS: estos son los datos relacionados con el registro. Aquí se encuentra la información esperada según el tipo de registro:
    • A: la dirección IP de 32 bits:
    • CNAME: el nombre del host FQDN;
    • MX: la prioridad de 16 bits, seguida del nombre del host FQDN;
    • NS: el nombre del host FQDN;
    • PTR: el nombre del host FQDN;
    • SOA: varios campos.
      • servidor dns primario
      • correo.electronico.com
      • serial, fecha + incremental, cambia con cada actualización del fichero,se usa para indicar a un servidor esclavo si está actualizado o no.
      • refresh, indica el intervalo de tiempo en segundos en que tiene que actualizarse el servidor esclavo.
      • retry, indica el intervalo de tiempo en segundos para reintentar una conexión fallida del servidor esclavo.
      • expire, tiempo de caducidad de una petición del servidor esclavo.
      • minimum, tiempo de vida de la petición al servidor esclavo.

Para la búsqueda inversa /etc/bind/db.1.168.192.in-addr.arpa

Ésta búsqueda inversa es usada por muchos programas, que rechazarán establecer una conexión si la búsqueda inversa y la búsqueda normal no coinciden. Muchos proveedores de correo usan la búsqueda inversa para clasificar correos como spam.

$TTL 604800
@ IN SOA servidor.serverip.net. root.serverip.net. (
         201412032  ; fecha+incremental de referencia para un Slave, saber si tiene                      que actualizarse o no 
         604800     ; tiempo entre actualizaciones para un Slave
         86400      ; tiempo de reintento en caso de fallo.
         2419200    ; tiempo en que caduca la información de un Slave
         604800 )   ; tiempo de vida de la petición.
;
@  IN NS  servidor.serverip.net.
15 IN PTR servidor.serverip.net.
  • 15 es el resultado de 192.168.1.15 que es la ip justo al revés. Como dijimos anteriormente si es nombre del fichero de configuración fuera db.168.192.in-addr.arpa el host sería:
1.15   PTR   servidor.serverip.net

Y luego están el resto de ficheros como /etc/bind/named.conf.options

/etc/bind/named.conf.options

options {
 
directory “/var/cache/bind”; # Directorio donde se almacenará la caché.
 
auth-nxdomain no; # conform to RFC1035
 
# Reenviadores
forwarders { # Reenviamos las consultas a:
8.8.8.8; # DNS de Google.
8.8.4.4; # DNS de Google.
192.168.1.1; # IP del router.
};
 
# Opciones de seguridad
listen-on port 53 { # Escuchamos en el puerto 53 (Puerto por defecto)...
127.0.0.1; # ... por la interfaz de loopback...
192.168.1.15; # ... ip del servidor.
};
 
listen-on-v6 { none; }; # No escuchamos tráfico IPv6
 
allow-query { # Permitimos consultas DNS desde...
127.0.0.1; # ... la interfaz de loopback...
192.168.1.0/24; # ... y nuestra red interna.
};
 
allow-transfer { none; }; # Prohibimos la transferencia de zonas puesto que este es nuestro único servidor DNS de la LAN
 
allow-recursion { # Permitimos consultas recursivas desde...
127.0.0.1; # ... la interfaz de loopback...
192.168.1.0/24; # ... y la red interna.
};
 
};

Extraido de http://sobrebits.com/montar-un-servidor-casero-con-raspberry-pi-parte-4-configurar-servidor-dns-cache/

Categorías:Linux, Sistemas Operativos Etiquetas: ,

Virtualbox en Linux

Categorías:Linux, Sistemas Operativos