jueves, 10 de agosto de 2017

Instalación y configuración de un cliente NTP

Copiamos a la máquina los paquetes necesarios.

Instalamos gcc, g++ (junto con sus dependencias), make y las librerías necesarias para poder compilar e instalar el software:

Realizamos una instalación típica:

# tar -xvzf [paquete_ntp]
# cd [directorio_descomprimido]
# ./configure --prefix=[ruta_ntp_instalado]
# make
# make install

Una vez instalado realizamos estos dos pequeños pasos:

Tras instalarlo, creamos un pequeño script que ejecute el comando  ntpdate -u [servidorNTP], el cual se conecta con un servidor NTP saltándose las restricciones de cortafuegos.

Cogemos el script que hemos creado, y lo colocamos en el cron para que se ejecute periódicamente y así mantener el reloj actualizado cada cierto tiempo (el que hayamos definido en el cron).

** Más información en http://bulma.net/body.phtml?nIdNoticia=408 **

1) Hemos creado el siguiente script, al que lo hemos llamado ntpCron:

#!/bin/bash

/opt/ntp/bin/ntpdate -u 129.132.2.21

Esta ip que hemos puesto es la del servidor swisstime.ethz.ch, pero tenemos que poner la IP porque no tenemos los DNS bien configurados.

A continuación ponemos una lista de posibles servidores:

# ntp.metas.ch (193.5.216.14)
# swisstime.ethz.ch (129.132.2.21)
# ntp0.fau.de (131.188.3.220)
# ptbtime1.ptb.de (192.53.103.103)
# hora.roa.es (150.214.94.5, este último es el más aconsejable)


2) Hay dos posibilidades:

- Poner el script en la carpeta /etc/cron.hourly, con lo que se ejecutará cada hora.

- Incluir una llamada al script en el archivo /etc/crontab para que el script se ejecute cuando se lo hayamos especificado. Como ayuda, una linea del archivo crontab tiene el siguiente formato:

1 2 3 4 5 /ruta/script

Donde cada número se sustituirá por el valor que corresponda:

1) Minutos.
2) Horas.
3) Días del mes (de 1 a 31).
4) Meses.
5) Días de la semana (de 1 a 7 ó de 0 a 6, funciona igual).

miércoles, 2 de agosto de 2017

Instalar componentes de LAMP individualmente

Usaremos las siguientes versiones de los componentes, aunque podemos usar veriones superiores si lo deseamos:
 
Nucleo Linux 2.2.x 
MySql 5.x 
PHP 5.X

Vamos a instalarlo todo en la ruta /usr/local , ya que MySql se instala allí por defecto.

Ponemos los archivos comprimidos de los componentes en /usr/local, y nos situamos en dicha ruta.

Comenzamos:

Instalamos Apache

# tar -xvzf [paquete apache] 
# cd [paquete apache]
#./configure --prefix=/opt/apache2 --enable-mods-shared=all
# make
# make install

Instalamos MySQL

    Creamos el usuario y el grupo mysql:

        # groupadd mysql
        # useradd -g mysql mysql
   
    Para cambiar de usuario usamos el siguiente comando:

        # su - [nombre_usuario]

        Copiamos el tar.gz a /usr/local y lo descomprimimos.
   
        tar -xvzf [archivo_distribucion_mysql].tar.gz
   
    Creamos un enlace simbólico:
   
        ln -s /usr/local/[archivo_distribucion_mysql] mysql
   
    Ejecutamos el script mysql_install_db ubicado en la carpeta scripts.
   
    Iniciamos la base de datos con:

        #/usr/local/mysql/bin/safe_mysqld &

        *** Hay que hacerlo con el usuario mysql ***

Inicializamos la contraseña del root de base de datos. Hay dos maneras, o modificando los privilegios de la tabla "user" de la base de datos, o mediante el comando "mysqladmin".

    Mediante BBDD:

        # mysql -u root
        mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpwd');
        mysql> SET PASSWORD FOR 'root'@'%' = PASSWORD('newpwd');


    Con mysqladmin:

        # mysqladmin -u root password "newpwd"
        # mysqladmin -u root -h host_name password "newpwd"


Añadir nuevo usuario: primero tenemos que crearlo en el sistema, y luego le concedemos los permisos de administrador de la siguiente manera:

Entramos en la instancia "mysql" (instancia por defecto) con el usuario root, y ejecutamos los siguientes comandos:

        mysql> GRANT ALL PRIVILEGES ON *.* TO 'nuevo_usuario'@'localhost'  IDENTIFIED BY
        'pass_del_nuevo_usuario' WITH GRANT OPTION;
        mysql> GRANT ALL PRIVILEGES ON *.* TO 'nuevo_usuario'@'%'  IDENTIFIED BY 
        'pass_nuevo_usuario' WITH GRANT OPTION;
        mysql> GRANT RELOAD,PROCESS ON *.* TO 'admin'@'localhost';
        mysql> GRANT USAGE ON *.* TO 'dummy'@'localhost';

    Así ya nos podremos conectar a la base de datos en el nuevo_usuario.

    Poner mysql como servicio:

Copiamos el script "mysql.server" a /etc/init.d, y lo colocamos en los niveles de arranque que queramos.

Instalamos PHP, compilándolo con los parámetros especificados:

    # tar -xvzf [paquete php]
    # cd [paquete php]
    # ./configure --prefix=/opt/php5.5.26 --with-apxs2=/opt/apache2/bin/apxs --enable-magic-quotes 
    --with-zlib --enable-dba --with-gdbm --with-gd --enable-ftp --with-jpeg-dir --enable-gd-native-ttf 
    --enable-mbstring --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config 
    --enable-wddx
    # make
    # make install