Linux tips: nano selección de bloques

El editor nano es quizás hoy en día el más popular para muchos usuarios de Linux, en dura competencia con vim. Una acción que a menudo los usuarios no encuentran de forma intuitiva es copiar un bloque de texto (múltiples líneas) de golpe. En esta breve entrada, mostramos como hacerlo:

ALT+A

con los cursores seleccionamos la líneas a copiar

ALT izquierdo + 6 para copiar el bloque

CONTROL + U para pegar el bloque de texto

nano

Anuncios

Reiniciar servicio de red

Seguimos con otro breve post dedicado a Ubuntu, en esta ocasión, dedicado al servicio de red. En versiones anteriores, para reiniciar la configuración de red en Ubuntu Server, bastaba con lanzar el script /etc/init.d/networking restart o posteriormente con ifdown eth0 && ifup eth0. Sin embargo, en las últimas versiones, esto no provoca que la interfície de red se actualice.

Evidentemente, una solución drástica es reiniciar la máquina, pero realmente basta con ejecutar estos dos comandos (obviamente como root o con permisos elevados):

ip addr flush enp0s3

systemctl restart networking

El primer comando borra la dirección o direcciones asociadas, mientras que la segunda reinicia  el servicio de red. En un próximo post, le dedicaremos más atención al comando ip que ha venido a sustituir toda una serie de comandos del shell relacionados con la conexión y configuración de la red.

Servidor DNS (Ubuntu BIND9)

-Uno de los servicios más importantes de Internet es el de resolución de nombres (DNS) que nos permite trabajar con nombres (FQDN) en lugar de tener que recordar listas interminables de IPs.

En este post, vamos a instalar un servidor DNS sobre Ubuntu, en concreto, usaremos uno de los más populares BIND9. Nuestro servidor de nombres realizará una doble función, por un lado, se encargará de resolver las peticiones de los clientes, en este caso reenviando las peticiones a otros servidores DNS y además resolverá una zona a nivel local.

Instalación y configuraciones iniciales

Suponemos un Ubuntu Server 16.04 correctamente configurado y con nombre ns1 y dominio casa.local, obviamente aquí irá el dominio que cada uno quiera configurar.

El primer paso, será la instalación del servicio

sudo apt update

sudo apt install bind9 -y

En nuestro ejemplo, queremos que únicamente funcione con direcciones IPv4:

sudo systemctl edit –full bind9 #es un guión doble

bind01

A continuación recargamos el servicio:

sudo systemctl daemon-reload

El siguiente paso, es hacer que el servidor se apunte a sí mismo, paso necesario si queremos que él mismo resuelva la zona local, para ello, editamos el archivo de configuración de red y hacemos que se apunte a sí mismo como servidor de nombres:

bind04

Reiniciamos la interfície. Recordad que en Ubuntu 16.04 el reinicio de la interfície es algo más complicado que en versiones anteriores:

sudo ip addr flush enp0s3

sudo systemctl restart networking.service

Editamos el archivo /etc/resolv.conf para eliminar las referencias a los servidores de nombres anteriores:

bind05

La configuración de BIND9 se centraliza desde el archivo /etc/bind/named.conf, este archivo, básicamente llama a tres archivos:

  • etc/bind/named.conf.options: que contiene las configuraciones generales.
  • /etc/bind/named.conf.local: donde se definen las zonas que contendrá el servidor.
  • /etc/bind/named.conf.default-zones: que contiene las zonas definidas por defecto.

El primer paso, será editar el archivo /etc/bind/named.conf.options para definir los reenviadores, las direcciones de escucha, etc. Quedando una configuración similar a la de la imagen siguiente:

bind02

Donde en forwarders pondremos las direcciones IP de los DNS que queramos utilizar para resolver las consultas a dominios externos al local.

Importante: si se utiliza como forwarder el público de Google o uno similar, se debería cambiar la configuración de dnssec-validation:

dnssec-validation no;

Para comprobar que no se han cometido errores sintácticos (es muy fácil dejarse un punto y coma), se tiene el comando

named-checkconf

 

 Si no se obtienen errores se procede a reiniciar el servicio:

sudo systemctl restart bind9.service

Comprobamos que el servidor resuelve correctamente una consulta a un dominio externo:

bind06

Creación zona local

Ahora es momento de definir nuestra zona local. Para ello, en primer lugar, deberemos editar el archivo named.conf.local. A continuación, se crea un archivo con la información de la zona. En este ejemplo, vamos a crear tanto una zona directa como una zona inversa (para resolución de nombre a partir de IP).

bind07

Para alojar los archivos de zona, creamos una carpeta llamada /etc/bind/zones y usaremos los archivos de las zonas por defecto como plantillas.

sudo su

mkdir /etc/bind/zones

cp /etc/bind/db.local /etc/bind/zones/db.casa.local

cp /etc/bind/db.127 /etc/bind/zones/db.192.168.1

Ahora editamos el archivo db.casa.local para editar la SOA

bind08

A continuación añadimos algunos registros a modo de ejemplo:

bind09

Se repite el proceso con el archivo db.192.168.1 para configurar la zona inversa:

bind10

bind11

Una vez editados los archivos comprobamos que no haya errores sintácticos y reiniciamos el servicio:

named-checkconf

systemctl restart bind9.service

Comprobamos que el servidor resuelve correctamente consultas locales:

bind12

Y ya tenemos nuestro servidor DNS operativo!