Activar o desactivar servicios en Linux

¿Cual era mi problema?

En muchas ocasiones he necesitado poder activar que un servicio en Linux se active automáticamente al arrancar el equipo. Normalmente al instalar un servicio,  por ejemplo un servidor web (apache, nginx, etc…), este se instala para que arranque al reiniciarse la máquina pero puede que esto no sea interesante en un momento dado y querramos desactivarlo.

Vamos a ver como hacemos esto para las distintas distribuciones de Linux.

La receta de hoy: Como activar o desactivar servicios en Linux.

Ingredientes.

    1. Una consola conectada a nuestra maquina Linux.
    2. Un servicio instalado por ejemplo SSH.

Preparación.

Activación de servicios en CentOS, Red Hat o Suse

Para estas distribuciones la herramienta que gestiona los servicios es chkconfig la cual permite activarlos y desactivarlos.

Si quiséramos ver el listado de servicios instalados y en que nivel del arranque se activan podemos verlos con

# chkconfig –list

obtendríamos algo como esto

# chkconfig –list
atd                                0:off     1:off    2:off    3:on    4:on     5:on   6:off
attach-static-vdis 0:off     1:off    2:on     3:on    4:on     5:on   6:off
crond                           0:off     1:off    2:on     3:on    4:on     5:on   6:off
dhcpd                          0:off     1:off    2:off    3:off   4:off     5:off  6:off
dhcrelay                     0:off     1:off    2:off    3:off   4:off     5:off   6:off

Vemos los servicios instalados y en que nivel del arranque se activan. Para activar nuestro servicio SSH solamente tendríamos que escribir:

# chkconfig ssh on

Si lo queremos desactivar

# chkconfig ssh off

y si queremos indicarle el nivel en el que queremos que arranque, por ejemplo el 5:

# chkconfig –level 5 ssh on

Chupao ¿verdad?

Activación de servicios en Debian, Ubuntu y derivados.

En estas distribuciones la herramienta update-rc.d es la  encargada de hacer la activación o desactivación.

Para iniciar automáticamente el servicio ssh se debe ejecutar el comando:

# update-rc.d ssh defaults

Si queremos indicarle el nivel en el que queremos que arranque en nuestro caso el 5:

# update-rc.d  ssh  start 5

Para descativar el servicio ejecutamos:

# update-rc.d ssh remove

Sencillo, hasta la próxima entrada

Añadir rutas estáticas en Linux, Windows o MacOS

¿Cual era mi problema?

A veces es necesario agregar rutas estáticas para que tu equipo llegue a una subred que es distinta de la tuya, por ejemplo si estás usando un vpn y esta no la establece el router sino otro equipo de tu red. Pues para poder acceder a esa otra red es necesario indicarle a tu equipo por donde tiene que ir de paseo para acceder a esa nueva red con una ruta estática.

En este caso no voy a ser racista y os mostraré como hacerlo en Windows, MacOS y Linux.

La receta de hoy: Como añadir una ruta estática en Linux, Windows o MacOS.

Ingredientes.

    1. Dos subredes por ejemplo la subred 1 con rango 10.1.0.0/24 y la subred 10.2.0.0/24 conectadas por un equipo con IP 10.1.0.1 y 10.2.0.1
    2. Un equipo que se quiere con IP 10.1.0.200 que se quiere conectar a un equipo de la sured 2. Con una consola (CMD en windows, terminal en linux y Macos)

Preparación.

Añadir rutas estáticas en LINUX

El comando es el  siguiente:

route add -net 10.2.0.0/24 gw 10.1.0.1  dev eht0

la explicación es muy sencilla, le estamos diciendo a nuestro equipo que para ir a la subred 2 (10.2.0.0) de paseo tiene que preguntarle al equipo 10.1.0.1 por donde se va. El 10.1.0.1 como ya se sabe el  camino le dice que ya se encarga el de llevarle.

Si quereis hacer esta ruta estática permanente tenéis que agregar en el fichero /etc/networks/interfaces la siguiente línea debajo de la interfaz que corresponda:

up route add -net 10.2.0.0/24 gw 10.1.0.1  dev eht0

De esta forma cada vez que se reinicie la máquina la ruta quedará guardada.

Si quereis ver la ruta solo tenéis que escribir:

route

y tendréis algo parecido a esto

Kernel IP routing table
Destination    Gateway     Genmask               Flags    Metric    Ref   Use   Iface
default              10.1.0.254  0.0.0.0                   UG          0              0        0       xapi0
10.2.0.0           10.1.0.1         255.255.255.0  U              1              0        0       xapi0

Donde la primera linea nos indica que para salir a Internet nuestro equipo le tiene que preguntar al router (10.1.0.254) y para ir a las subred 2 (10.2.0.0) le tiene que preguntar al 10.1.0.1.

Añadir rutas estáticas en WINDOWS

El comando es el siguiente:

route add -p 10.2.0.0 mask 255.255.255.0 10.1.0.1 metric 1

Para consultar la tabla de rutas hay que escribir en un terminal (CMD)

route print

Para agregar la ruta estática en Windows de forma persistente hay que escribir

route /p add -p 10.2.0.0 mask 255.255.255.0 10.1.0.1 metric 1

Añadir rutas estáticas en MacOS

El comando sería:

route -vn add 10.2.0.0/24 10.1.0.1

en un Mac para consultar las rutas de nuestro equipo tenemos que escribir:

netstat -rn

Para que la ruta estática que de guardada permanentemente se tiene que escribir:

sudo networksetup -setadditionalroutes LAN  10.2.0.0 255.255.255.0 10.1.0.1

donde LAN es el nombre de la interfaz de red de nuestro MAC sin está formada por dos palabras tiene que ir entre comillas «Ethernet 1».

Como podéis ver cada sistema lo hace de forma distinta por lo que creo que era interesante agruparlos todos en una sola entrada para tener la receta completa.

Configurar un cliente openvpn en centOS

¿Cual era mi problema?

Uno de mis clientes necesita conectar su sistema de gestión con el servidor de la tienda online para sincronizar las bases de datos. Para que esta sincronización no se haga al aire, le monté una vpn usando openvpn que permita que los datos vayan lo más protegidos que sea posible. Hoy vamos a ver como configurar un cliente openvpn en centOS.

La receta de hoy: como configurar un cliente openvpn en centOS.

Yo normalmente trabajo con sistemas Debian pero el servidor web de mi cliente estaba con centOS por lo que he tenido que buscar en varias webs como hacerlo. Vamos a la faena…

Ingredientes.

    1. Servidor cliente con SO centOS
    2. Nuestro servidor openvpn configurado.
    3. Los ficheros de configuración del cliente (son 4): cliente.conf (fichero de configuración del cliente vpn), cacert.pem(certificado de la autoridad), XXXXXXX.pem(clave del cliente) y cliente.pem (certificado del cliente).
    4.  Acceso ssh y SFTP al Servidor cliente.

Preparación.

Lo primero que hay que instalar es el cliente de openvpn, pero resulta que los repositorios de centOS por defecto no tienen el paquete openvpn. Por lo que primero tenemos que instalar los repositorios  Extra Packages for Enterprise Linux (EPEL) en los que viene:

yum install epel-release

Una vez instalado el repositorio pasamos a instalar el paquete openvpn

yum install openvpn

Instalado el cliente openvpn. Vale, pero toca configurarlo ¿no? Pues nada, la cosa mas sencilla del mundo, subimos nuestros ficheros de configuración al servidor y los colocamos en la carpeta:

/etc/openvpn/

Listo! ya tenemos configurado el cliente.

¿Cómo conectar el cliente de openvpn?

Para probar que todo funciona, nos posicionaros en /etc/openvpn/ y ejecutamos:

openvpn –config cliente.conf

Y por arte de magia si nuestros ficheros de configuración están bien tendremos conectado nuestro servidor centOS con el servidor de openvpn.

Ahora me diréis muy bien pero ¿que pasa  si se reincia la máquina?

¿Cómo hacer que openvpn no se desconecte o se conecte automáticamente?.

Vamos automátizar el cliente para que se conectarse automáticamente cada vez que pierda la conexión. Vamos a configurar el cliente de openvpn como un servicio para lo cual escribimos lo siguiente:

systemctl start openvpn@cliente

Problema resuelto, ahora nuestro cliente se arranca automáticamente cada vez que la máquina se encienda.

Realmente es una configuración sencilla para alguien que esté acostumbrado a manejar centOS pero como no es mi caso he tenido que cocinarme esta receta buscando de aquí y de allá como hacerlo.