Sunteți pe pagina 1din 17

Trabajo Prctico 6: Implementacin de servicios de red en

GNU/Linux

Agero Barrionuevo, Lucas lukas.arg@gmail.com


Aguilera, Germn geraguilera@gmail.com
Morales, Pablo pablitoisback@gmail.com
Nazzi, Fabio fabionnazzi@gmail.com

Resumen. Se va a tratar el caso de una red privada en la cual se administrarn los servicios de
DNS, Base de Datos, servicios web, un servidor de archivos y un balanceador de carga
implementados en GNU/Linux.

Palabras Clave: DNS, Apache, NFS, HAProxy, bind, MySQL, Servidor.

1 Introduccin

Figura 1. Diagrama de la red.

Red: 93.184.216.0/24
La direccin IP: 93.184.216.100 NO puede ser utilizada.
Caractersticas generales de los Servidores Linux
* El servidor tendr como Sistema Operativo un GNU/Linux, pudiendo ser Centos (o
similar) 6, Debian 7, openSuse 13.1 o Ubuntu 12.04.
* El servidor debe tener una nica interfaz de red y la misma tendr una direccin IP
esttica asignada.
* El servidor debe tener el servicio de SSH instalado, abierto y habilitado para usuario
root
* La contrasea del usuario root debe ser laryc1
Direcciones IP de la Red
DNS Server1
DNS Server2
DB Server1
DB Server2
NFSv4 Server
HTTP Server1
HTTP Server2
HTTP Load B.

93.184.216.2
93.184.216.3
93.184.216.4
93.184.216.5
93.184.216.6
93.184.216.7
93.184.216.8
93.184.216.9

2 Desarrollo
2.1 Servidores DNS

Comenzamos por instalar la ltima versin estable de bind con el comando [1]:
$ sudo apt-get install bind9

Figura 2. Instalacin de Bind.

Se confirma y se completa la instalacin. Ahora se van a configurar las zonas que


administrarn. El formato es:
nombrederegistro IN tipodeentrada valor

El archivo que se debe editar para configurar una zona maestro/esclavo es


named.conf.local. Este archivo se encuentra en la carpeta /etc/bind.
Configuracin DNS Maestro
El nmero de IP asignado es el 93.184.216.2.
En el archivo /etc/bind/named.conf.local, se edita lo siguiente [2]:

Figura 3. Archivo named.conf.local para el Maestro.


Por otro lado, se crean los archivos que estn especificados en cada zona declarada
en el archivo /etc/bind/named.conf.local.
Entonces, en el directorio /var/lib/bind, se crean los archivos en los que se escriben
los registros (los mapeos de URL a direccin IP, y el reverso).

El archivo /var/lib/bind/db.laryc.efn.uncor.edu, es el siguiente:

Figura 4. Archivo db.laryc.efn.uncor.edu


El archivo /var/lib/bind/db.miempresa.com.ar, es el siguiente:

Figura 5. Archivo db.miempresa.com.ar

El archivo de mapeo reverso, es el siguiente:

Figura 6. Archivo de mapeo reverso

Configuracin DNS Esclavo


El nmero de IP asignado es el 93.184.216.3.
En el esclavo, se definen las mismas zonas, en el mismo archivo
(/etc/bind/named.conf.local), pero a diferencia del maestro, en el esclavo no se crean
los archivos declarados en cada zona, ya que estos archivos se copian
automticamente del maestro al esclavo [3].

Figura 7. Archivo named.conf.local para el Esclavo.

2.2 Servidores Base de Datos


Para instalar mysql server, la ltima versin del repositorio, lo que tenemos que hacer
es bajar the MySQL APT Repository:
http://dev.mysql.com/downloads/repo/apt/
Ahora descargamos la versin Ubuntu Linux 12.04 deb. Luego agregamos el
repositorio:
$ sudo dpkg -i mysql-apt-config_0.1.5-1ubuntu12.04_all.deb

Luego de eso, lo que hacemos es hacer un


$ sudo apt-get update

Finalmente un sudo apt-get install mysql-server y ya vamos a poder instalar la ltima


versin.
Para bajar el .deb lo podemos bajar en Windows y despus montar la unidad USB. [4]
Instalamos en ambos servidores

$ sudo apt-get mysql-server mysql-client

Por defecto, los procesos de MySQL slo aceptan conexiones desde localhost.
Vamos a cambiar esta configuracin por defecto para que acepte peticiones desde otro
servidor, adems de hacer otros cambios necesarios para la replicacin de los datos.
Para ello editamos el fichero de configuracin que nos encontraremos en la ruta
/etc/mysql/my.cnf, en que cambiaremos las siguientes lneas.
server-idc
log_bin
binlog_do_db
binlog_do_db
# bind-address

=
=
=
=
=

1
/var/log/mysql/mysql-bin.log
laryc
miempresa
127.0.0.1

La primera de esas lneas es el identificador nico que tendr nuestro servidor en


nuestro sistema de replicacin de datos. En la segunda lnea le estamos indicando el
fichero de log donde se almacenar los cambios que se realicen en una base de datos o
tabla. En la tercera lnea lo que indicamos es el nombre de las bases de datos que
queremos replicar. Por ltimo comentamos la ltima lnea para que no slo acepte
peticiones desde la IP 127.0.0.1.
Una vez hecho estos cambios, necesitamos reiniciar MySQL.
Luego creamos las base de datos en cada servidor. Entramos a mysql:
$ mysql -u root p

Luego:
Create Database laryc;
create Database miempresa;

creamos las dos base de datos en los dos servidores. Luego tenemos que crear los
usuarios y darle los permisos uno para cada BD.
Para crear los usuarios hacemos:
create user 'miempresa'@'%' identified by 'miempresa1';
create user 'laryc'@'%' identified by 'laryc1';

el '%' quiere decir que se puede conectar de donde quiera. Luego le damos permiso
sobre las base de datos;
GRANT ALL PRIVILEGES ON miempresa.* TO 'miempresa@'%';
GRANT ALL PRIVILEGES ON laryc.* TO 'miempresa'@'%';

A continuacin le damos permisos necesarios a nuestro usuario para que realice la


replicacin. El usuario que va a hacer la replicacin es laryc, de esta forma nos
ahorramos crear otro usuario para que replique.
grant replication slave on *.* to 'laryc'@'%';

Luego en cada server, le decimos quien es el master, poniendo la ip del Master.


Lo que debemos hacer, es:
mysql> CHANGE MASTER TO
->
MASTER_HOST='93.184.1.5',
->
MASTER_USER='laryc',
->
MASTER_PASSWORD='laryc1',
->
MASTER_PORT=3306,
->
MASTER_CONNECT_RETRY=10;

de ambos lados, con las IP del otro, segn corresponda.


En el archivo de configuracin se agrega lo siguiente, para no usar DNS:
[mysqld]
skip-host-cache
skip-name-resolve

2.3 Servidores NFS


El servido NFS (Network File System) es un protocolo de nivel de aplicacin
utilizado para sistemas de archivos distribuido en un entorno de red de computadoras
de rea local. Posibilita que distintos sistemas conectados a una misma red accedan a
ficheros remotos como si se tratara de locales. El sistema NFS est dividido al menos
en dos partes principales: un servidor y uno o ms clientes. Los clientes acceden de
forma remota a los datos que se encuentran almacenados en el servidor.
De modo que se necesitaran instalar una distribucin extra host servidor. Para ambos:
$ sudo apt-get install nfs-common

Slo en el servidor:
$ sudo apt-get install nfs-kernel-server

Se crea un directorio donde se accedern los archivos:


$ mkdir /srv/www/data

Y se lo exporta editando el archivo ubicado en /etc/exports :

Figura 8. Archivo exports para NFS.


Se indica la carpeta a compartir y las IP que pueden tener acceso a ella.
El parmetro rw da permitos de lectura y escritura al cliente.
El parmetro sync activa el modo sincronizado, con el cual no se responden las
peticiones antes de que los cambios se escriban en el disco.
El parmetro no_subtree_check desactiva la comprobacin de que las carpetas
compartidas perteneces al mismo volumen con lo cual la transferencia es ms rpida.
El parmetro root_squash deniega privilegios de root al usuario cliente.
El parmetro anonuid=33 fueza que las conexiones sean annimas para el user
identification 33 en el servidor.
El parmetro anongid=33 fueza que las conexiones sean annimas para el group
identification 33 en el servidor.

2.4 Servidores Balanceador de Carga


Se usar HAProxy (High Availability Proxy) el cual es un balanceador de carga open
source el cual puede hacer el balance de cualquier servicio TCP. Se destaca por el
mejorar la performances con balanceo de carga HTTP a travs de varios servidores.
Se instala mediante el comando:
$ sudo apt-get install haproxy

Se activa para el inicio editando el script seteando ENABLE en 1:

Figura 9. Archivo haproxy.

Se chequea el cambio ejecutando:


$ service haproxy

La consola devuelve:
Usage: /etc/init.d/haproxy {start|stop|reload|restart|status}

Por lo que el cambio fue implementado correctamente.


Para la configuracin se edita el archivo en /etc/haproxy/haproxy.cfg:

Figura 10. Archivo de configuracin haproxy.


Resta iniciar el balanceador tipeando:
$ service haproxy start

2.5 Servidores Web


Con los siguientes comandos se actualizan los repositorios y posteriormente se
procede a instalar los paquetes de apache, php y mysql. [30]

$sudo
$sudo
$sudo
$sudo
$sudo

apt-get
apt-get
apt-get
apt-get
apt-get

update
upgrade
install apache2
install php5
install mysql-server

Se configura el servidor HTTP para que maneje virtual hosts: [31]

Figura 11. Archivo de configuracin hosts.


Modificamos los archivos /etc/apache2/sites-avaibles/laryc.conf y miempresa.conf

Figura 12. Archivo de configuracin laryc.conf.

Figura 13. Archivo de configuracin miempresa.conf.


Se configura ServerToken y HTTP Trace para que den la menor informacin posible
[35]:
Se debe ocultar la versin de apache y limitar la informacin que el servidor ofrece
acerca de los mdulos de que dispone y el sistema operativo que lo aloja aadiendo
las siguientes lneas en /etc/apache2/conf.d/seurity
ServerTokens Prod
ServerSignature Off
TraceEnable Off

ServerTokens nos permite decidir qu informacin dice el servidor. ServerTokens por


defecto tiene el valor Full como norma de seguridad es recomendable ocultar la
mayor cantidad de informacin posible acerca de la versin de nuestro apache. La
directiva que se encarga de esto es:
ServerTokens Minimal|ProductOnly|OS|Full

Como siempre lo ms importante es ocultar la versin del servidor, de esta forma un


posible atacante tendr que usar una mayor cantidad de ataques para tirar nuestro
sistema, teniendo as nosotros ms posibilidades de detectar el ataque y tomar
medidas.
La variable ServerSignature permite la configuracin del pie de pgina que aparece en
ciertos mensajes generados por el servidor (mensajes de error, salida de mod_info,
etc.). Si se utiliza ServerSignature On, se aade una lnea con el nmero de versin de
Apache, el nombre del servidor ServerName, y el email del responsable
ServerAdmin.

ServerSignature Off

Disponer del mtodo TRACE habilitado en nuestro servidor Web puede tener
consecuencias negativas. El mtodo TRACE tiene como funcin principal poder
realizar debug del protocolo HTTP.
TraceEnable Off

Figura 14. Archivo de configuracin security


Para configurar el auto mount se modifica el archivo /etc/fstab, agregando al final del
mismo:
93.184.216.6:/srv/www/data /var/www nfs rsize=8192,wsize=8192,
timeo=14,intr

Figura 15. Archivo de configuracin security


Para instalar y configurar dos sitios web con wordpress usando como servidor de base
de datos a db1.laryc.efn.uncor.edu:
$sudo
$sudo
$sudo
$sudo
$sudo

wget http://wordpress.org/latest.tar.gz
mv latest.tar.gz /var/www/
tar xzf latest.tar.gz
mv wordpress/* /var/www/
service apache2 restart

3 Seccin de Referencias
2.1 Servidores DNS
[1] Installing master and slave DNS Servers using Bind 9 on Ubuntu 12.04 http://www.barlow.eu.com/techblog/installing-master-and-slave-dns-servers-usingbind-9-on-ubuntu-12-04/
[2] DNS Ubuntu 11 - http://solucioninformaticaes.wordpress.com/2012/12/11/dnsubuntu-11/
[3]
Formato
del
archivo
de
zona
http://dnsbind9.wikispaces.com/Formato+del+archivo+de+zona
2.2 Servidores Base de Datos
[4] Mount/USB - https://help.ubuntu.com/community/Mount/USB
[5] Incorrect usage of DB GRANT and GLOBAL PRIVILEGES http://systemadmin.es/2011/10/incorrect-usage-of-db-grant-and-global-privileges
[6]
ARQUITECTURA MAESTRO
/
MAESTRO
EN
MYSQL
http://miguelangelnieto.net/?action=view&url=arquitectura-maestro-maestro-enmysql
[7]
Mysql5. Replicacin
maestro-maestro + SSL + retrasada
http://luismido.wikidot.com/mysql5-replicacion-maestro-maestro
[8] Configurar arquitectura maestro maestro MySQL para la replicacin de datos http://www.digitalvalley.com/blog/configurar-arquitectura-maestro-maestro-mysqlpara-la-replicacion-de-datos/
[9] Configuracin de servicios, servidores, sistemas en general. http://panicoenelcpd.blogspot.com.ar/2011/11/configurar-mysql-en-modomaestro.html
[10]
How
To
Set
Up
MySQL
Master-Master
Replication
https://www.digitalocean.com/community/articles/how-to-set-up-mysql-mastermaster-replication
[11] Cmo crear una base de datos MySQL y dar privilegios a usuarios https://blog.infranetworking.com/crear-base-de-datos-mysql-dar-privilegios/
[12]
CREAR
BASE
DE
DATOS
Y USUARIO
EN MYSQL http://cjenkins.wordpress.com/2011/02/14/crear-base-de-datos-y-usuario-en-mysql/
[13]
5.7.2.
Aadir
nuevas
cuentas
de
usuario
a
MySQL
http://dev.mysql.com/doc/refman/5.0/es/adding-users.html
[14]
5.7.5.
Asignar
contraseas
a
cuentas
http://dev.mysql.com/doc/refman/5.0/es/passwords.html
[15] 13.4.2.6 STOP SLAVE Syntax - http://dev.mysql.com/doc/refman/5.6/en/stop-

slave.html
[16]
MySQL [Warning]
IP address
could
not
be
resolved
http://serverfault.com/questions/341290/mysql-warning-ip-address-could-not-beresolved
[17] Can't connect to local MySQL server through socket '/var/mysql/mysql.sock' (38)
http://stackoverflow.com/questions/5376427/cant-connect-to-local-mysql-serverthrough-socket-var-mysql-mysql-sock-38
[18]
MySQL
Master
Master
Replication
http://www.howtoforge.com/mysql_master_master_replication
2.3 Servidores NFS
[19] Ubuntu Linux NFS Server installation and Configuration http://www.cyberciti.biz/faq/how-to-ubuntu-nfs-server-configuration-howto/
[20] How to configure NFS on Linux - http://how-to.linuxcareer.com/how-toconfigure-nfs-on-linux
[21]
SettingUpNFSHowTo
https://help.ubuntu.com/community/SettingUpNFSHowTo
[22] Resolved how to check nfs version in linux - http://www.doxer.org/resolvedhow-to-check-nfs-version-in-linux/
[23] What is the use of "root_squah" and "no_root_squash" in NFS http://www.linkedin.com/groups/What-is-use-rootsquah-norootsquash49301.S.192942962
[24] Captulo 9. Sistema de archivos de red (NFS) - http://web.mit.edu/rheldoc/4/RH-DOCS/rhel-rg-es-4/ch-nfs.html
[25] Chapter 19 - Network File System - http://www.brennan.id.au/19Network_File_System.html
[26] Network File System - http://es.wikipedia.org/wiki/Network_File_System
2.4 Servidores Balanceador de Carga
[27] How To Use HAProxy to Set Up HTTP Load Balancing on an Ubuntu VPS https://www.digitalocean.com/community/tutorials/how-to-use-haproxy-to-set-uphttp-load-balancing-on-an-ubuntu-vps
[28]
Install
and
Configure
HAProxy
on
CentOS/RHEL
5/6
http://tecadmin.net/configure-haproxy-on-centosrhel-56/#
[29] HAProxy - http://en.wikipedia.org/wiki/HAProxy

2.5 Servidores Web


[30]
Montar
un
Servidor
Web
con
Ubuntu
Server
12.04
http://www.pasospara.info/montar-un-servidor-web-con-ubuntu-server-12.04-parte-5.-

servidor-web-(lamp).html
[31]
Cmo
crear
un
VirtualHost
en
ubuntu
y
apache
http://www.fedesilva.com/blog/2013/04/como-crear-un-virtualhost-en-ubuntu-yapache
[32] Instalacin de un servidor web Apache en Ubuntu 12.04 http://getupcity.wordpress.com/2012/05/03/instalacion-de-un-servidor-web-apacheen-ubuntu-12-04/
[33] How To Set Up Apache Virtual Hosts on Ubuntu 12.04 LTS https://www.digitalocean.com/community/tutorials/how-to-set-up-apache-virtualhosts-on-ubuntu-12-04-lts
[34] Cmo instalar un webserver con Apache, PHP5 y WordPress utilizando
Virtual Hosts
http://infoaleph.wordpress.com/2008/05/12/como-apache-php5wordpress-virtual-hosts/
[35]
Trucos
y
ejemplos
de
configuracin
del
Apache
http://www.merlos.org/documentos/linux/23-trucos-de-apache.html
[36] introBlog - http://blog.intropedro.com/es/content/apache
[37] Estado de Cross-Site Tracing (XST) - http://www.pentester.es/2010/07/estado-decross-site-tracing-xst.html

S-ar putea să vă placă și