viernes, 19 de febrero de 2016

Implementar un servidor FAMP (FreeBSD, Apache, MySQL, PHP): Instalando Servidor Web Apache en FreeBSD

Con esta entrada estaré dando inicio a la publicacion de una serie de recetas que logre recopilar y aplicar, con el fin de realizar la implementacion de un servidor FAMP (FreeBSD, Apache, MySQL, PHP). La importancia de realizar este tipo de implementaciones radica en que muchos paquetes se basan en esta arquitectura para desplegar sus paginas de visualizacion y administracion, tales como Nagios, GLPI, Smokeping, etc.

En esta primera entrada se va a explicar el proceso detallado de instalacion de un servidor web Apache en el sistema operativo FreeBSD, el cual se va a realizar desde los ports incluidos en el mismo para tal fin.

La gran ventaja de realizar la instalacion en un sistema FreeBSD desde los ports, es que esta completamente adecuado al sistema y realiza automaticamente la instalacion de todas las dependencias necesarias sin la intervencion del usuario o sin la necesidad de agregar repositorios ni nada adicional.

Para las referencias de como realizar la instalacion del sistema operativo FreeBSD, se puede revisar la entrada que trata ese tema en el siguiente enlace


Primeramente nos ubicamos en el directorio correspondiente para realizar la instalación
cd  /usr/ports/www/apache24


    A continuación ejecutamos el comando para realizar la instalación del paquete
make install clean


    Con la ejecución de este comando comienza la instalación del servidor web apache y de todos los paquetes necesarios para su funcionamiento en nuestro sistema.

    Se debe recordar activar el soporte para MySQL, PostgreSQL y LDAP en el servidor apache y todos los módulos instalados para el correcto funcionamiento del servidor que se está implementando.






    En la siguiente ventana de configuración se debe tener el cuidado de habilitar el soporte de apache para las bases de datos con las cuales vamos a trabajar.



    Una vez culminada la instalación del servidor apache, se procede a automatizar el inicio del servicio al arrancar el sistema, editando el archivo /etc/rc.conf y agregando la siguiente línea.
vi  /etc/rc.conf
apache24_enable=”YES”



    Antes de iniciar el servicio, se debe registrar nuestro servidor en el archivo /etc/hosts, con el fin que el servicio reconozca localmente el nombre del mismo, es como un DNS local.
vi  /etc/hosts


    Para determinar el nombre de nuestro servidor usamos el siguiente comando
hostname


    Registramos nuestro servidor comentando la línea original y agregando la línea respectiva en el archivo /etc/hosts


    Ahora procedemos a editar el archivo httpd.conf para configurar nuestro servidor apache
cd  /usr/local/etc/apache24


    Realizamos una copia de respaldo del archivo de configuración de apache httpd.conf antes de editarlo
cp httpd.conf httpd.conf.old


    Editamos el archivo httpd.conf
vi  httpd.conf


    Descomentamos la línea de ServerName y le colocamos una dirección de dominio completamente calificada.


    En caso de no tener registrado nuestro servidor Apache en un DNS, se puede usar una línea con la dirección ip que identifica nuestro servidor como se muestra a continuación.
ServerName 192.168.1.1:80

    Adicionalmente se debe crear o editar el archivo /boot/loader.conf y agregar las siguientes líneas
accf_http_load=”YES”
accf_data_load=”YES”
kern.ipc.somaxconn=1024

Antes de iniciar el servicio Apache, debemos comprobar la sintaxis de configuracion del mismo, mediante el siguiente comando
apacheclt configtest

    A continuación lo que debemos hacer es iniciar el servicio apache para comprobar que funciona correctamente. Es perfectamente valido para esta accion, uno cualquiera de los siguientes comandos, los tres comandos indicados a continuacion realizan exactamente la misma funcion:
service apache24 start
apachectl start
/usr/local/etc/rc.d/apache24 start

    Una vez iniciado el servicio procedemos a abrir nuestro navegador y colocar en la barra de direcciones la dirección ip de nuestro equipo para ver el mensaje correspondiente del servicio apache que indica que esta funcionando correctamente.


    Si se quiere cambiar el mensaje se debe editar el archivo ubicado en la siguiente ruta
vi  /usr/local/www/apache24/data/index.html

    La configuración de Apache puede probarse en busca de errores luego de los cambios realizados en sus parámetros mientras el httpd está ejecutándose.
service apache24 configtest

    En caso que el servicio presente algún tipo de problema en el comportamiento del servicio apache, se reinicia el sistema para que inicie correctamente el servicio.

    Para realizar una manipulación del servicio Apache, podemos utilizar el comando apachectl, el cual permite realizar los procesos de prueba y control del servicio, su sintaxis es la siguiente:

apachectl comando

start Inicia el demonio Apache, presenta un mensaje de error si el servicio ya está corriendo. El equivalente es apachectl -k start
stop Detiene el demonio de Apache httpd. El equivalente es apachectl -k stop
restart Reinicia el demonio de Apache httpd, si el proceso no esta corriendo se inicia. Este comando revisa automáticamente los archivos de configuración antes de iniciar el demonio para asegurarse que funcione correctamente. El equivalente es apachectl -k restart
status Muestra un resumen del estado del servicio
configtest Ejecuta una prueba de sintaxis del archivo de configuración, reporta Syntax OK o la información sobre el particular problema de sintaxis que se presente. El equivalente es apachectl -t

El archivo de configuracion del servidor web Apache en FreeBSD, httpd.conf,  se encuentra en la siguiente ruta
/usr/local/etc/apache24/

Para verlo se ejecuta el siguiente comando
vi  /etc/local/etc/apache24/httpd.conf

Los parametros basicos que conforman la configuracion del servicio web Apache son los siguientes

ServerRoot: Indica el directorio dentro del cual se encuentran los archivos de configuracion, mensajes de error y logs del servicio web Apache.
/usr/local

Listen: Indica el puerto por el cual se reciben peticiones web.
80

ServerName: Se indica la identificacion del servidor a travez de su direccon IP o un nombre de dominio completamente calificado

DocumentRoot: Indica el directorio deonde estan los documentos ofrecidos por el servidor, todos los requerimientos http son tomados en este directorio. Es posible usar enlaces simpolicos o alias para apuntar a otras rutas direfentes.

/usr/local/www/apache24/data

DirectoryIndex: Indica el archivo que se usa cuando el servidor recibe un requisito a un directorio especifico.
index.html  index.php

Para habilitar el uso de servidores virtuales se debe descomentar la siguiente linea en el archivo de configuracion httpd.conf
Include  etc/apache24/extra/httpd-vhosts.conf

Al ver el contenido de este archivo se puede ver un ejemplo de como crear un servidor virtual en nuestro servicio web
vi httpd-vhosts.conf

El esquema basico de la definicion de un servidor web es la siguiente:

<VirtualHost *:80>
    ServerAdmin
    DocumentRoot
    ServerName
</VirtuslHost>



A continuacion se muestran un par de videos que indican en forma detallada como implementar y configurar un servidor FAMP en FreeBSD.

Instalación de servidor FAMP (FreeBSD, Apache, MySQL, PHP) y WEBMIN


 Instalacion y configuracion de servidor web Apache en FreeBSD




REFERENCIAS

Grupo FreeBSD en español en Facebook

Manual en español del proyecto FreeBSD
https://www.freebsd.org/doc/es_ES.ISO8859-1/books/handbook/

Absolute FreeBSD 2nd edition The complete guide to FreeBSD, Mickael W. Lucas
http://directory.umm.ac.id/Operating%20System%20Ebook/FREEBSD/Absolute%20Freebsd.pdf

How to install apache mysql php and phpmyadmin on freebsd

FAMP Installing Apache 2.4, MySQL, PHP on FreeBSD 10

Servidor web Apache Wikipedia
https://es.wikipedia.org/wiki/Servidor_HTTP_Apache


Configuración de Apache
http://www.cibernetia.com/manuales/instalacion_servidor_web/2_3_configuracion_apache.php

Instalacion y configuracion de Apache
http://www.ite.educacion.es/formacion/materiales/85/cd/linux/m3/instalacin_y_configuracin_de_apache.html

Installing and configure Apache web server on FreeBSD
http://www.freebsdmadeeasy.com/tutorials/web-server/configure-apache-web-server-on-freebsd.php

How install FAMP stack and mod security on FreeBSD
https://www.freebsdnews.com/2015/10/22/install-famp-stack-mod-security-freebsd-10-2/
http://linoxide.com/security/install-famp-stack-php-mod-security-freebsd/

Instalar servidor web en FreeBSD
http://bytesos.com/tutoriales/servicios/servidor_web_freebsd/servidor_web_freebsd.php
 
Optimización de Apache en FreeBSD
http://www.sysadmin.org.mx/optimizacion-de-apache-en-freebsd.html

Servidores de aplicaciones web
https://openlibra.com/es/book/servidores-de-aplicaciones-web

Servidores para Internet con Apache HttpServer
https://ctrltotal.files.wordpress.com/2012/05/libphp-5-servidores-para-internet-con-apache-httpserver.pdf

La biblia de Apache 2

Guia de seguridad de Apache
Instalacion de mod_evasive en FreeBSD
https://project.altservice.com/issues/562

lunes, 15 de febrero de 2016

Tips de seguridad para proteger nuestro sistema FreeBSD

La seguridad siempre ha sido un tema importante junto con los sistemas de código abierto. Un punto de entrada débil en cualquier sistema puede permitir a los hackers el acceso a los servidores críticos e información y luego crear una  puerta trasera o causar un gran daño en toda la red.Al aplicar medidas de seguridad a un sistema, es muy recomendable empezar por asegurar las configuraciones básicas del sistema, y ​​luego proceder a asegurar las capas de red de modo que cumplan con la directiva del sistema y los procedimientos de seguridad de la organización. Muchas empresas ya tienen una política de seguridad que cubre todas las configuraciones de los dispositivos de tecnología internos. La política debe incluir la configuración de seguridad de estaciones de trabajo, ordenadores de sobremesa del usuario, dispositivos móviles, teléfonos y servidores.Hay algunos pasos generales que los administradores de FreeBSD siempre realizan, como el empleo de los hashes de contraseñas y la aplicación de políticas de contraseñas, ademas de activar la verificación binaria en una aplicación de software específica,sistemas de prevención de intrusiones (IDS), que se forma nativa soporta FreeBSD, es verificar cada cambio en los archivos del sistema e informar a los equipos de seguridad. Sin embargo, es esencial que se cree un plan de seguridad, no sólo la activación de procedimientos predeterminados que los hackers conocen realmente, asegure su servidor inmediatamente después de la instalación. No lo deje sin primero asegurar. Éstos son los conceptos básicos recomendados, que tiene que hacer con el fin de proteger su servidor:
  •     Ejecutar sólo los servicios que deba usar
  •     Use sólo los servicios que son necesarios
  •     Utilice contraseñas seguras
  •     Obligar a los usuarios a utilizar contraseñas seguras
  •     Restringir el acceso root a un conjunto mínimo de servicios
  •     Restringir el acceso a estos servicios a través de tcpwrappers
  •     Restringir el acceso a su buzón mediante el uso de algun servicio firewall (ipfw)
  •     Registrar eventos en su máquina y entender lo que los registros indican
  •     Instalar algún tipo de software de detección de cambio de sistema, de modo que usted puede saber si su servidor ha sido comprometido
  •     Realizar copias de seguridad de su servidor de manera que si se ve comprometido, puede volver a instalar desde cero, pero todavía tienen sus datos disponibles
  •     Por último, la seguridad física es importante. Cuantas más personas tienen acceso físico a la máquina, menos seguro es su servidor

Hay algunos servicios que no debería jamás ejecutar, en primer lugar, es Telnet. Debe tener acceso a sus servidores mediante Secure SHell (SSH) que toda la información este encriptada. Telnet es muy inseguro ya que pasa toda la información
a través de la red en texto plano sin cifrar. Además, otros servicios comunes con este problema incluyen FTP, POP e IMAP. Si se acaba de iniciar como un proveedor de Internet, esta es tu oportunidad de trabajar con clientes SSH y SCP para sus usuarios, así como clientes de correo electrónico POP e IMAP cifrados, o servidores de correo web seguras usando SSL.

REFERENCIAS

Articulo original en ingles

Seguridad en FreeBSD

jueves, 4 de febrero de 2016

Herramientas de monitoreo de redes con FreeBSD: Instalacion y uso de MTR

El paquete mtr presenta la facilidad de ejecutar un traceroute y un ping juntos para ver la disponibilidad y camino recorrido a una dirección IP especificada.


Para instalar el paquete mtr en FreeBSD solo debemos ubicarnos en el directorio donde se encuentra ubicado el port respectivo.
cd  /usr/ports/net/mtr


Una vez ubicados dentro del referido directorio procedemos a la compilación e instalación del port mediante el siguiente comando.
make install clean







Para hacer uso del comando respectivo se utiliza el siguiente formato

mtr ip-destino

El programa responde con una serie de indicaciones de pines sucesivos hacia los diferentes saltos que se debe hacer hasta llegar a la dirección de destino indicada en el comando

Algunas opciones basicas que se pueden usar con este comando son las siguientes

-c count       Indica que el ping se va a realizar el numero de veces indicada en la variable count

-n                 No devuelve los nombres de dominio

-i seconds  Realiza el ping entre saltos cada numero de segundos indicado en la variable seconds

Para realizar un ejemplo del uso y la informacion que presenta este paquete, se puede realizar un barrido de la traza hacia el proveedor de servicio de internet CANTV mediante el siguiente comando

mtr cantv.net

Con este comando se ejecuta una serie de barridos cada determinado tiempo de los puntos que se debe recorrer hacia la dirección indicada, además de estadísticas de retardo y respuesta de paquetes.



REFERENCIAS


Documentacion y gestion de redes ESLARED
http://www.eslared.org.ve/walc2012/material/track3/

mtr wikipedia
how to install mtr on freebsd
Referencia detallada del paquete mtr en FreeBSD