FESOL/201801/especializacion/proyectos/Intranet
Contenido
Presentación
Aca va la información que va en la portada
UNIVERSIDAD LUTERANA SALVADOREÑA FACULTAD DE CIENCIAS DEL HOMBRE Y LA NATURALEZA
TEMA:
Intranet Escolar con servicios de Firewall, Filtro Web, Proxy Web Transparente, DHCP, DNS, LDAP, Web y Almacenamiento de fácil instalación.
PRESENTADO POR:
DOCENTE:
ING. MANUEL VILLATORO
Resumen (bastract)
Palabras clave
Bash, Cliente, Dhcp, Dns, Dominios, Firewall, Ip, Lan, Ldap, Proxy, Red, Script, Servidor, Ssh.
Introducción
El presente proyecto consiste dar a conocer a fondo la configuración de diversos servicios que conforman una Intranet como una necesidad de herramienta y dispositivos tecnológicos inmersos en el área de la informática ya que en algunas instituciones o empresas llámense estas públicas o privadas las redes aparecen con información de manera privada para el debido funcionamiento de las mismas, se debe de considerar contar con los servidores básicos útiles y necesarios de Intranet para una mayor eficiencia y eficacia. Es por ello que como estudiantes de la Universidad Luterana Salvadoreña cursando la especialidad en Servidores LINUX, tomamos a bien desarrollar la investigación para poner en práctica los conocimientos de la misma y aquellos que se conocieron en el recorrido de la carrera; Además se muestra el uso correcto y el funcionamiento debido, de una Red Intranet la instalación de la misma y su respectiva configuración con los servidores DHCP,DNS,FIREWALLS,PROXY WEB Y LDAP, no dudamos que este proyecto será de gran utilidad para conocimientos no solo de los investigadores sino también para las y los estudiantes de informática.
Marco Teórico
¿Qué es una Intranet?
Intranet es el nombre que se le da a la red corporativa interna de una empresa u organización, a la cual solo pueden acceder los empleados de la misma dentro de la propia estructura informática de la compañía, y se utiliza para aprovechar los servicios disponibles en ella como páginas, aplicaciones y todo otro recurso que necesiten para llevar a cabo sus tarea.
Las intranets son la mejor solución disponible para que los empleados de una compañía trabajen de forma mancomunada y centralizada, ya que al compartir los mismos recursos base como documentos, informes, planillas, videos, audios y demás, nunca podrán manejar información que está desactualizada, y por lo tanto el resultado global será óptimo y sin datos erróneos o inconsistencias. Además es un importante ahorro en materia de almacenamiento de datos, ya que los usuarios no tienen que tener información almacenada en sus propias computadoras. En terminos simples una Intranet es un sistema de red privado que permite compartir recursos entre sus miembros. La Intranet existe en las empresas prácticamente desde los propios inicios de Internet, de hecho, lo primero que existía era una Intranet privada montada por ciertas universidades con el fin de compartir información académica y artículos científicos, la apertura de esta Intranet al resto del mundo provocó el nacimiento de lo que hoy en día llamamos Internet.
Servicios que utiliza
SERVIDOR DHCP
Para que cada sistema conectado a una red esté identificado de forma correcta, tiene que tener una dirección IP única. Esta dirección se puede configurar manualmente en cada host o de forma automática y dinámica, mediante el protocolo DHCP (Dynamic Host Configuration Protocol o Protocolo dinámico de configuración de host).
¿Que es y para que sirve un servidor DHCP?Cuando un sistema es conectado en red, el protocolo DHCP se encarga de atribuirle automáticamente una dirección IP única. Al mismo tiempo, DHCP suministra una serie de parámetros de red como la dirección del gateway, la dirección del servidor , etc. El protocolo DHCP hace que la tarea del administrador de red bastante más fácil, pues la configuración es centralizada, y no distribuida en cada host o puesto.
¿Como funciona?
El servidor DHCP escucha las peticiones de parámetros de red de los equipos que se encuentran configurados para obtenerlas automáticamente. Así pues un equipo recibe del servidor DHCP la dirección IP, la máscara de red, la puerta de enlace, los servidores DNS y cualquier otro parámetro de red que se requiera. Estos parámetros los entrega el servidor DHCP con un tiempo de vida, conocido tomo “lease-time”, después del cual el cliente DHCP debe solicitar nuevos parámetros al servidor DHCP.
SERVIDOR DNS
¿Que es el servidor DNS?
Son las siglas en inglés de Domain Name System (Sistema de Nombres de Dominio). Este sistema correlaciona el nombre de un equipo en internet con una dirección IP y viceversa. Por ejemplo, gracias ha el sabemos que el servidor cuyo nombre es: www.debian.org tiene la dirección IP 213.129.232.18 y viceversa.
Siempre que se utiliza un nombre para designar a un servidor, como sucede con www.debian.org , éste debe traducirse en la forma de una dirección IP única del mismo servidor. Este proceso se conoce como resolución y es efectuado gracias al Domain Name System () (o en español, Sistema de Nombres de Dominios). Este sistema está constituido por una red global de servidores, organizados en un árbol, donde cada servidor contiene una tabla de asociaciones entre los nombres de los servidores y sus respectivas direcciones IP. Cómo funciona el DNS Supongamos que se pretende contactar el servidor www.google.com. El sistema iniciará una serie de contactos entre otros sistemas diversos, para encontrar cuál es la dirección asociada a la dirección pretendida. Una versión muy simplificada sería la siguiente: posiblemente, el sistema tendrá que contactar a su servidor de , que a su vez, contactará los servidores de tope para indagar acerca del dominio “google.con”, y enseguida contactar el servidor de google para saber la dirección IP de www.google.com. Aunque cada investigación o resolución tarda sólo milisegundos, la visualización de una página web en un browser puede resultar bastante penalizada por este proceso. Especialmente, cuando es posible que varios elementos de la página estén alojados en diversos servidores, cuyas direcciones deban ser resueltas individualmente.
LDAP
¿Que es LDAP?
LDAP (Protocolo compacto de acceso a directorios) es un protocolo estándar que permite administrar directorios, esto es, acceder a bases de información de usuarios de una red mediante protocolos TCP/IP.
Las bases de información generalmente están relacionadas con los usuarios, pero, algunas veces, se utilizan con otros propósitos, como el de administrar el hardware de una compañía.
El objetivo del protocolo LDAP, desarrollado en 1993 en la Universidad de Michigan, fue reemplazar al protocolo DAP (utilizado para acceder a los servicios de directorio X.500 por OSI) integrándolo al TCP/IP. Desde 1995, DAP se convirtió en LDAP independiente, con lo cual se dejó de utilizar sólo para acceder a los directorios tipo X500. LDAP es una versión más simple del protocolo DAP, de allí deriva su nombre Protocolo compacto de acceso a directorios.
¿Cómo funciona LDAP?
El servicio de directorio LDAP se basa en un modelo cliente-servidor. Uno o más servidores LDAP contienen los datos que conforman el árbol del directorio LDAP o base de datos troncal. el cliente ldap se conecta con el servidor LDAP y le hace una consulta. El servidor contesta con la respuesta correspondiente, o bien con una indicación de dónde puede el cliente hallar más información (normalmente otro servidor LDAP). No importa con qué servidor LDAP se conecte el cliente: siempre observará la misma vista del directorio; el nombre que se le presenta a un servidor LDAP hace referencia a la misma entrada a la que haría referencia en otro servidor LDAP. Es ésta una característica importante de un servicio de directorios universal como LDAP.
PROXY
¿Qué es un proxy?
Un servidor proxy (cuya traducción literal es “representante“) es una interfaz de comunicación en una red que actúa como mediadora entre dos sistemas informáticos. La tarea básica de un servidor proxy es hacerse cargo, como delegado, de las peticiones de los clientes en un servidor y de transmitirlas con la dirección IP adecuada al ordenador de destino. En este tipo de comunicación no existe una conexión directa entre el remitente y el destinatario. En ocasiones, ni el sistema al que se le hacen las peticiones ni el ordenador de destino saben que hay un proxy de por medio. Los servidores proxy pueden funcionar en dos sentidos. Por un lado, un proxy de reenvío (forward proxy) sirve para proteger a una red cliente frente a influencias de Internet. Si el sistema de destino, por ejemplo, un servidor web, está protegido por medio de un servidor proxy intercalado, se puede hablar en este caso de un proxy inverso (reverse proxy).
¿Como funciona?
1. El cliente realiza una petición (p. ej. mediante un navegador web) de un recurso de Internet (una página web o cualquier otro archivo) especificado por una URL. 2. Cuando el proxy caché recibe la petición, busca la URL resultante en su caché local. Si la encuentra, contrasta la fecha y hora de la versión de la página demanda con el servidor remoto. Si la página no ha cambiado desde que se cargo en caché la devuelve inmediatamente, ahorrándose de esta manera mucho tráfico pues sólo intercambia un paquete para comprobar la versión. Si la versión es antigua o simplemente no se encuentra en la caché, lo captura del servidor remoto, lo devuelve al que lo pidió y guarda o actualiza una copia en su caché para futuras peticiones.
SERVIDOR WEB
¿Que es un servidor web?
Los servidores web (también conocidos como servidores HTTP) son un tipo de servidores utilizados para la distribución (entrega) de contenido web en redes internas o en Internet (“servidor” hace referencia al verbo “servir”). Como parte de una red de ordenadores, un servidor web transfiere documentos a los llamados clientes (del inglés clients), por ejemplo, una página web a un explorador.
En general, la pregunta “qué es un servidor web” puede referirse a dos cosas: al software del servidor (es decir, al programa en sí) y al equipo en el que el software del servidor web se está ejecutando. Cuando se trata de este último, se habla del host (un host puede alojar múltiples soluciones de software para servidores web). A continuación, nos referiremos explícitamente a alguno de estos significados, ya sea al software de servidor web/software servidor HTTP (o programa) o al host.
¿Cómo funcionan los servidores?
Cada servidor Web, y cada computadora conectada a Internet, posee asignada una dirección de IP única, irrepetible, que lo identifica en la red, incluyendo tu móvil o la PC que tienes en tu casa. La dirección de IP puede pensarse como los datos del remitente en una carta postal. Cuando deseas ver un sitio Web, tu móvil, PC o tableta envía un pedido desde tu dirección de IP hacia la dirección IP del servidor que aloja los archivos del sitio en cuestión. Entonces, el servidor Web responde devolviendo los datos a la dirección IP solicitante. Esto es lo que pasa todo el tiempo que estamos navegando un sitio en Internet.
FIREWALL
¿Que es un firewall?
Un firewall o cortafuegos es un dispositivo de hardware o un software que nos permite gestionar y filtrar la totalidad de trafico entrante y saliente que hay entre 2 redes u ordenadores de una misma red.
Si el tráfico entrante o saliente cumple con una serie de Reglas que nosotros podemos especificar, entonces el tráfico podrá acceder o salir de nuestra red u ordenador sin restricción alguna. En caso de no cumplir las reglas el tráfico entrante o saliente será bloqueado.
Por lo tanto a partir de la definición podemos asegurar que con un firewall bien configurado podemos evitar intrusiones no deseadas en nuestra red y ordenador así como también bloquear cierto tipo de tráfico saliente de nuestro ordenador o nuestra red.
¿Como funciona?
El firewall normalmente se encuentra en el punto de unión entre 2 redes. En el caso que podéis ver en la captura de pantalla se halla en el punto de unión de una red pública (internet) y una red privada. Así mismo también vemos que cada una de las subredes dentro de nuestra red puede tener otro firewall, y cada uno de los equipos a la vez puede tener su propio firewall por software. De esta forma, en caso de ataques podemos limitar las consecuencias ya que podremos evitar que los daños de una subred se propaguen a la otra. Lo primero que tenemos que saber para conocer el funcionamiento de un firewall es que la totalidad de información y tráfico que pasa por nuestro router y que se transmite entre redes es analizado por cada uno de los firewall presentes en nuestra red. Si el tráfico cumple con las reglas que se han configurado en los firewall el trafico podrá entrar o salir de nuestra red.
Si el tráfico no cumple con las reglas que se han configurado en los firewall entonces el tráfico se bloqueará no pudiendo llegar a su destino.
Materiales
3 computadoras
1- servidor con debian 9 de 64 bits (opcional) y 2 clientes con debian 9 de 32 bits (opcional)
1-swith
3-cables de red
Conexión a Internet
VIRTUAL BOX:
VirtualBox es un hipervisor que se utiliza para ejecutar sistemas operativos en un entorno especial, llamado máquina virtual, corriendo sobre un sistema operativo ya existente. VirtualBox está en constante desarrollo y las nuevas características se implementan continuamente. Viene con una interfaz gráfica basada en Qt, así como herramientas de línea de órdenes SDL y headless para la gestión y ejecución de máquinas virtuales.
Con el fin de integrar las funciones del sistema anfitrión en los sistemas huéspedes, incluyendo carpetas compartidas y portapapeles, aceleración de vídeo y un modo de integración de ventanas fluido, se proporcionan complementos huéspedes (guest additions) para algunos sistemas operativos invitados.
DEBIAN 9:
Debian o Proyecto Debian (en inglés: Debian Project) es una comunidad conformada por desarrolladores y usuarios, que mantiene un sistema operativo GNU basado en software libre. El sistema se encuentra precompilado, empaquetado y en formato deb para múltiples arquitecturas de computador y para varios núcleos.
IPTABLES:
Iptables es un poderoso firewall integrado en el kernel de Linux y que forma parte del proyecto netfilter. Iptables puede ser configurado directamente, como también por medio de un frontend o una GUI. iptables es usado por IPv4, en tanto que ip6tables es usado para IPv6. CRON: En el sistema operativo Unix, cron es un administrador regular de procesos en segundo plano (demonio) que ejecuta procesos o guiones a intervalos regulares (por ejemplo, cada minuto, día, semana o mes). Los procesos que deben ejecutarse y la hora en la que deben hacerlo se especifican en el fichero crontab. El nombre cron viene del griego chronos (χρόνος) que significa "tiempo".
DNSMASQ:
Dnsmasq proporciona servicios como caché DNS y como servidor DHCP. Como un servidor de nombres de dominio (DNS), puede almacenar en caché las consultas DNS para mejorar las velocidades de conexión a los sitios visitados anteriormente, y, como un servidor DHCP, dnsmasq puede ser utilizado para proporcionar direcciones IP internas y rutas a los equipos de una LAN. Uno, o ambos de estos servicios, se pueden implementar. dnsmasq es considerado ligero y fácil de configurar; está diseñado para su uso en un ordenador personal o para su uso en una red con menos de 50 ordenadores. También viene con un servidor PXE.
SARG: Es una herramienta que te permite ver con detalle la actividad de todos los equipos y/o usuarios dentro de la red de área local (LAN), registrada en la bitácora del proxy, provee mucha información acerca de las actividades de usuarios de Squid: tiempo, bytes, sitios, etc.
WEBMIN:
Es una herramienta de configuración de sistemas accesible vía web para sistemas Unix, como GNU/Linuxy OpenSolaris. Con él se pueden configurar aspectos internos de muchos sistemas operativos, como usuarios, cuotas de espacio, servicios, archivos de configuración, apagado del equipo, etcétera, así como modificar y controlar muchas aplicaciones libres, como el servidor web Apache,PHP,MySQL,DNS,Samba,DHCP, entre otros.
SQUIID:
Squid es un servidor proxy para web con caché. Es una de las aplicaciones más populares y de referencia para esta función, software libre publicado bajo licencia GPL. Entre sus utilidades está la de mejorar el rendimiento de las conexiones de empresas y particulares a Internet guardando en caché peticiones recurrentes a servidores web y DNS, acelerar el acceso a un servidor web determinado o añadir seguridad realizando filtrados de tráfico.
EPOPTES:
Es una aplicación de software libre de gestión y motorización de aulas de ordenadores, usada especialmente en la enseñanza, ya que permite a un profesor tomar el control del aula para realizar demostraciones a los estudiantes. Está disponible para el sistema operativo Linux.
APACHE:
Apache es un servidor web HTTP de código abierto para plataformas Unix-like (BSD, GNU/Linux, etc.), Windows, Macintosh y otras, que implementa el protocolo HTTP/1.1 y la noción de sitio virtual. En sus inicios se basaba en el código de NCSA HTTPd 1.3, pero más tarde fue reescrito por completo. Actualmente es el servidor web más usado en todo el mundo, superando en 2009 los 100 millones de sitios web, el 70% del total. Está desarrollado y mantenido por una comunidad de usuarios en torno a la Apache Software Foundation.
OPENLDAP:
OpenLDAP es una implementación libre y de código abierto del protocolo Lightweight Directory Access Protocol (LDAP) desarrollada por el proyecto OpenLDAP. Está liberada bajo su propia licencia OpenLDAP Public License. LDAP es un protocolo de comunicación independiente de la plataforma. Muchas distribuciones GNU/Linux incluyen el software OpenLDAP para el soporte LDAP. Este software también corre en plataformas BSD, AIX, HP-UX, Mac OS X, Solaris, Microsoft Windows (NT y derivados, incluyendo 2000, XP, Vista), y z/OS.
POTGRESQL:
Es un sistema de gestión de bases de datos relacional orientado a objetos y libre, publicado bajo la licencia PostgreSQL
Como muchos otros proyectos de código abierto, el desarrollo de PostgreSQL no es manejado por una empresa o persona, sino que es dirigido por una comunidad de desarrolladores que trabajan de forma desinteresada, altruista, libre o apoyados por organizaciones comerciales. Dicha comunidad es denominada el PGDG (PostgreSQL Global Development Group).
MOODLE:
Moodle es una plataforma de aprendizaje diseñada para proporcionarle a educadores, administradores y estudiantes un sistema integrado único, robusto y seguro para crear ambientes de aprendizaje personalizados. Usted puede descargar el programa a su propio servidor web, o pedirle a uno de nuestros Moodle Partners que le asista.
Moodle está construido por el proyecto Moodle, que está dirigido y coordinado por el Cuartel General Moodle, que está soportada financieramente por una red mundial de cerca de 80 compañías de servicio Moodle Partners (Socios Moodle).
Manuales
PASOS DE INSTALACIÓN MANUAL
CREACION DEL AMBIENTE DE TRABAJO
-Descargamos la imagen ISO de Debian 9 del sitio web https://www.debian.org/index.es.html para realizar su instalación en Virtualbox
- Instalamos Debian sin interfaz gráfica para el servidor y con entorno de escritorio para los clientes
- En el servidor habilitamos dos adaptadores de red uno en modo adaptador puente y el segundo en red interna, la cual utilizaremos para establecer comunicación con los demás clientes, los cuales también estarán en modo adaptador puente.
apt update
ip addpara luego definir sus respectivas
ipestáticas - Establecemos una
ipestática a cada interfaz de red editando el archivo
/etc/network/interfacesquedando de la siguiente forma
-Activamos y desactivamos las configuraciones que hemos establecidos con los comandos
if down enp0s3, ifdown enp0s8 ipup enp0s3, ifup enp0s8
En el caso de las maquinas clientes no les estabecemos una ip estatica ya que el servidor dhcp se encargara de asignarles una
NATEO PARA COMPARTIR INTERNET
- Realizamos un proceso de nateo para compartir el acceso a internet de la interfazenp0s3 a la enp0s8,creamos un
bash script “nat.shy lo guardamos en el directorio /home con el siguiente contenido - Para que el script se ejecute en cada reinicio editamos el archivo
/etc/crontaben el cual especificamos que se ejecutara como
rooten cada reinicio el
scriptcreado anteriormente
INSTALAR Y CONFIGURAR SERVIDOR DHCP Y DNS
Para configurar el servidor DHCP y DNS utilizarecemos el software DNSMASQ el cual integra los dos servicios. Para ello debemos instalar los siguientes paquetes:
# apt install dnsmasq dnsutils-Configurar dnsmasq como servidor dhcp primero estableceremos en cual interfaz resolverá las peticiones de los clientes que soliciten un direccion IP, editaremos el archivo de configuración
“nano /etc/dnsmasq.conf”.
- Descomentamos el parametro interface y establecemos la interfaz en la cual resolvera peticiones.
“dhcp-range”y establecemos el rango de ip que necesitaremos y el tiempo de arrendamiento
-Reiniciamos dnsmasq para que funcione el servidor dhcp con el comando
“/etc/init.d/dnsmasq restart”
“/etc/hosts”- Finalmente reiniciamos nuestro servidor DNS con el comando
“/etc/init.d/dnsmasq restart”
“dig intranet.edu.sv”
INSTALACION DE SERVIDOR PROXY Y FILTROWEB
Para la instacion del servidor proxy utilizaremos squid el cual nos proporcionara un servicio de proxy http-https transparente, ya que es uno de los mas utilizados actualmente,
Necesitaremos instalar los siguientes paquetes
apt-get -y install devscripts build-essential fakeroot debhelper dh-autoreconf cdbs apt-get -y build-dep squid apt-get -y install libdbi-perl libssl1.0-dev apt-get -y install squid-langpack
- Creamos un directorio donde descargaremos squid
mkdir -p build/squid3
- Accedemos al directorio que creamos con el comando
cd build/squid3
- Descargamos el codigo fuente de squid con los siguientes comandos
wget http://http.debian.net/debian/pool/main/s/squid3/squid3_3.5.23-5.dsc wget http://http.debian.net/debian/pool/main/s/squid3/squid3_3.5.23.orig.tar.gz wget http://http.debian.net/debian/pool/main/s/squid3/squid3_3.5.23-5.debian.tar.xz
-Descomprimimos los paquetes descargados con el siguiente comando
dpkg-source -x squid3_3.5.23-5.dsc
“nano squid3-3.5.23/debian/rules
-En este listado añadimos las siguientes lineas para habilitar el uso de certificados ssl
--enable-ssl \ --enable-ssl-crtd \ --with-openssl \
-Compilamos el codigo fuente de squid para obtener un paquete .deb
cd squid3-3.5.23 && dpkg-buildpackage -rfakeroot -b
-Instalamos los siguientes paquetes .deb generados
dpkg --install squid-common_3.5.23-5_all.deb dpkg --install squid_3.5.23-5_${ARCH}.deb dpkg --install squidclient_3.5.23-5_${ARCH}.deb
- Para evitar que se dañen las configuraciones debido a alguna actualizacion congelamos la actualización de squid con el siguiente comando
apt-mark hold squid squid-common
CONFIGURACION DE SQUID
-Creamos un basckup del archivo de configuracion de squid con el siguiente comando
cp “/etc/squid/squid.conf” “/etc/squid/squid.conf.bk”
-Realizamos las siguietes configuraciones del servidor
acl clients src 192.168.10.0/24 # especificamos la red de la intranet
- regex filtro web
acl regexProhibidos url_regex -i "/etc/squid/filtros/regexProhibidos" #filtramos contenido no adecuado
- filtrando Busquedas
http_access deny regexProhibidos # denegamos el acceso a al contnido prohibido http_access allow localhost http_access allow clients http_access deny all http_port 3128 intercept #intecerptamos el trafico del puerto 3128 en el cual redirigimos el trafico #del puerto 80 y en el 3129 el trafico del puerto 443 en el cual utilizamos certificado ssl https_port 3129 intercept ssl-bump cert=/etc/squid/ssl_cert/myCA.pem generate-host-certificates=on dynamic_cert_mem_cache_size=4mb sslcrtd_program /usr/lib/squid/ssl_crtd -s /var/lib/ssl_db -M 4mb acl step1 at_step SslBump1 ssl_bump peek step1 ssl_bump bump all shutdown_lifetime 5 access_log stdio:/var/log/squid/access.log #guardamos el log de acceso el cual sera utilizado por SARG
- Creamos el archivo regexProhibidos, y definimos palabras claves que deseamos que no tengan acceso con:
nano etc/squid/regexProhibidos
facebook pornografica xxx Instagram
CREACION DE CERTIFICADOS SSL
Para la creacion de certificados ssl debemos tener instalado el paquete openssl, el cual instalamos con el siguiente comando
apt install openssl -y
-Creamos un directorio para guardar los certificados generados y le asignamos permisos
mkdir /etc/squid/ssl_cert chmod 700 /etc/squid/ssl_cert cd /etc/squid/ssl_cert/
-Utilizamos el comando siguiente para crear la llave ssl y el certificado
openssl req -new -newkey rsa:2048 -sha256 -days 365 -nodes -x509 -extensions v3_ca -keyout myCA.pem -out myCA.pem openssl x509 -in myCA.pem -outform DER -out myCA.der
-Inicializamos la base de datos de certificados ssl
/usr/lib/squid/ssl_crtd -c -s /var/lib/ssl_db
- Cambiamos el dueño de el directorio ssl_cert y ssl_db
chown -R proxy:proxy /etc/squid/ssl_cert/ chown -R proxy:proxy /var/lib/ssl_db/
- NOTA##
El certificado myCA.der debera copiarse a todos los clientes y añadirse al navegador
- Reiniciamos el servidor squid
#service squid restart
-Redireccionamos el trafico del puerto 80 y 443 con las siguientes reglas de iptable
iptables -A INPUT -j ACCEPT -p tcp --dport 3128 -m comment --comment "squid http proxy" iptables -A INPUT -j ACCEPT -p tcp --dport 3129 -m comment --comment "squid https proxy" iptables -t nat -A PREROUTING -s 192.168.10.0/24 -p tcp --dport 80 -m comment --comment "transparent http proxy" -j DNAT --to-destination 192.168.10.250:3128 iptables -t nat -A PREROUTING -s 192.168.10.0/24 -p tcp --dport 443 -m comment --comment "transparent https proxy" -j DNAT --to-destination 192.168.10.250:3129
En estas reglas iptable aceptamos el trafico del puerto 3128 y 3129 el cual es redireccionado de los puertos 80 y 443, de esta forma todo el trafico de los clientes pasa a traves del servidor proxy y es posible filtrar su contenido y ser un proxy transparente.
CONFIGURACIÓN DE CLIENTES
“/etc/squid/ssl_cert/myCA.der”, el cual debemos copiar a los clientes para añadirlo a los navegadore.
Si tratamos de acceder a internet sin integrar el certificado el navegador nos mostrara una ventana como la siguiente:
Para integrar el certificado primedo debemos copiarlo a nuestros clientes usando el comando scp
# scp /etc/squid/ssl_cert/myCA.der usuario@ipCliente/home/
- En el caso de Firefox accedemos a preferencias > avanzadas > certificados
- Seleccionamos la opción “Ver Certificados” e ingresamos en la sección “Autoridades”
-Seleccionamos la opción importar y dentro del directorio personal buscamos el certificado “myCA.der” al seleccionarlo nos mostrara la siguiente ventana donde marcaremos la opción confiar en esta CA para identificar sitios web
- Seleccionamos aceptar y podemos actualizar nuestro navegador para navegar con normalidad utilizando el proxy transparente.
INSTALACIÓN SERVIDOR WEB Y SARG
Para la implementación de servidor web utilizaremos APACHE, para realizar su instalacion utilizamos el siguiente comando:
- apt install apache2
Al finalizar la ejecucion de ese comando tendremos instalado nuestro servidor web, en el cual implementaremos SARG para generar reportes de acceso en squid.
-Utilizaremos el siguiente comando para instalarlo
# apt install sarg ttf-dejavu
-El archivo de configuracion de sarg se encuentra en “/etc/sarg/sarg.conf” , crearemos un backup con el siguiente comando
# cp /etc/sarg/sarg.conf /etc/sarg/sarg.conf.bk
- Editamos el archivo y realizamos las siguientes configuraciones
title "Squid Reporte de Usuarios" temporary_dir /tmp output_dir /var/www/html/squid-reports resolve_ip yes index yes
- Creamos el directorio “/var/www/html/squid-reports”, en este directorio sarg generara el archivo index.html de los reportes de acceso
# mkdir /var/www/html/squid-reports
-Cambiamos el dueño del directorio para evitar problemas de permisos con el comando
chown -R www-data.www-data /var/www/html/squid-reports
- Para generar los reportes utilizamos el comando “sarg -x” sin embargo cada vez que necesitemos un reporte tendremos que ejecutar el comando, esto lo podemos automatizar utilizando crontab, crearemos un script “reporte.sh” y lo guardaremos dentro del directorio “/etc” con el siguiente comando.
echo "
#!/bin/bash sarg -x" > /etc/reporte.sh
- Ahora programaremos la ejecucion de el script en cada reinicio utilizando crontab con el comando siguiente.
echo "@reboot root bash /etc/reporte.sh" >> /etc/crontab-Finalmente podremos abrir nuestro navegador e ingresamos ala url
“localhost/squid-reports”y veremos la siguiente pagina
-En esta interfaz podremos obtener el reporte de acceso de todos los usuarios de nuestra red ordenados por periodos de tiempo
INSTALACION DE WEBMIN
Webmin. Interfaz basada en Web para administración de sistemas Unix. Usando cualquier navegador Web moderno, se puede configurar cuentas de usuarios, Apache, DNS, archivos compartidos y mucho más. Para instalar webmin necesitamos descargar el paquete .deb desde su pagina web oficial http://www.webmin.com/
-En la seccion de descarga elegmos la opción Debian Package y esperamos a que finalice la descarga, una vez finalizada la descarga instalamos las siguientes dependencias y luego instalamos el paquete que descargamos.
# apt install apt-show-versions libauthen-pam-perl # dpkg --install webmin_all.deb
- Una vez finalizada la instalacion podremos acceder a la interfaz web de webmin ingresando a la URL
“https://server:10000/”
INSTALACION DEL SERVIDOR LDAP
LDAP posee un instalador muy interactivo donde nos solicita datos para su configuracion, pero para realizar una instalacion mas automatizada realizamos la instalacion de la siguiente forma:
- Creamos un archivo debconf con las respuestas a los datos que son solicitados por slapd durante la instalacion, utilizando el siguiente comando, en el cual cambiaremos los datos, necesarios como los password, el dns, el tipo de base de backend a utilizar .
cat > /root/debconf-slapd.conf << 'EOF' slapd slapd/password1 password admin slapd slapd/internal/adminpw password admin slapd slapd/internal/generated_adminpw password admin slapd slapd/password2 password admin slapd slapd/unsafe_selfwrite_acl note slapd slapd/purge_database boolean false slapd slapd/domain string server.intranet.edu.sv slapd slapd/ppolicy_schema_needs_update select abort installation slapd slapd/invalid_config boolean true slapd slapd/move_old_database boolean false slapd slapd/backend select MDB slapd shared/organization string Escuela slapd slapd/dump_database_destdir string /var/backups/slapd-VERSION slapd slapd/no_configuration boolean false slapd slapd/dump_database select when needed slapd slapd/password_mismatch note EOF
-Le indicamos a debian que realice una instalacion no interactiva con los siguiente comandos
export DEBIAN_FRONTEND=noninteractive cat /root/debconf-slapd.conf | debconf-set-selections apt install ldap-utils slapd php php-ldap php-xml -y
-Para instalar phpldapadmin debemos descargalos de los repositorios de debian buster debido a que no se encuentra disponible para debian strech
https://packages.debian.org/buster/all/phpldapadmin/download
-Una vez descargado lo instalamos con el comando:
dpkg --install phpldapadmin.deb- Al finalizar la instalacion del paquete podremos ingresar a la url
“http://localhost/phpldapadmin”
- Ahora solo faltaria la creacion de la unidad organizativa, grupos y usuarios en ldap, lo cuales seran.
Unidad Organizativa = Usuarios Grupos = Profesores, Alumnos Usuarios = Profesor1, Alumno1
y crearemos un archivo para cada uno utilizando el comando touch
touch u_organizativa.ldif grupos.ldif usuarios.ldif
nano u_organizativas.ldif
nano grupos.ldif
nano usuarios.ldif
-Para añadir todos estos datos a LDAP utilizaremos el comando ldapadd de esta forma:
ldapadd -x -D ${ADMINLDAP} -w admin -f ./script_intranet/ldap/u_organizativas.ldif ldapadd -x -D ${ADMINLDAP} -w admin -f ./script_intranet/ldap/grupos.ldif ldapadd -x -D ${ADMINLDAP} -w admin -f ./script_intranet/ldap/usuarios.ldif- Podemos verificar su correcto funcionamiento accediendo a
phpldapadmin.
EPOPTES
Para monitorear los equipos clientes utilizamos el software Epoptes, los pasos de instalacion son los siguientes
SERVIDOR
- Instalamos el software administrador con el comando
# apt install epoptes
- Debemos añadir los usuarios al grupo epoptes, para ello utilizamos el comando
# gpasswd -a Intranet epoptes
CLIENTES
En los clientes debemos instalar el paquete epoptes-client
# apt install epoptes-client
- Una vez finalizada la instalacion ejecutamos el comando siguiente, para establecer la conexión entre los clientes y el servidor
epoptes-client -c
Al finalizar los pasos ejecutamos el software epoptes en nuestro servidor y nos mostrara la siguiente ventana donde podremos administrar a nuestros clientes
SERVIDOR SAMBA
Para compartir impresoras y crear un directorio que este disponible para todos los usuarios de nuestra red realizamos los siguientes pasos
SERVIDOR
- En el servidor debemos instalar el paquete de samba y cups para compartir las impresoras, utilizando el siguiente comando
# apt-get -y install libcups2 samba samba-common cups
- Realizamos un backup del archivo de configuracion con el siguiente comando
#cp /etc/samba/smb.conf /etc/samba/smb.conf.bk
- La carpeta a compartir la crearemos con el siguiente comando y le asignaremos los siguientes permisos
mkdir /mnt/Compartidos chmod 777 -R /mnt/Compartidos chown -R root:users /mnt/Compartidos chmod -R ug+rwx,o+rx-w /mnt/Compartidos
- El archivo de configuracion lo dejaremos de la siguiente forma para especificar que se compartiran las impresoras y sus controladores ademas de el directorio compartido
[global] workgroup = WORKGROUP dns proxy = no log file = /var/log/samba/log.%m max log size = 1000 syslog = 0 panic action = /usr/share/samba/panic-action %d server role = standalone server passdb backend = tdbsam obey pam restrictions = yes unix password sync = yes passwd program = /usr/bin/passwd %u passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* . pam password change = yes map to guest = bad user usershare allow guests = yes [Documentos] comment = Directorio Compartido Intranet path = /mnt/Compartidos force group = users create mask = 0660 directory mask = 0771 browsable =yes writable = yes guest ok = yes [printers] comment = All Printers browseable = no path = /var/spool/samba printable = yes guest ok = no read only = yes create mask = 0700 [print$] comment = Printer Drivers path = /var/lib/samba/printers browseable = yes read only = yes guest ok = no
- Para finalizar la configuracion del servidor debemos reiniciar el servicio samba con el siguiente comando
# /etc/init.d/samba restart
CLIENTES
- En los clientes debemos instalar el paquete smbclient
# apt install smbclient
- Al finalizar la instalacion podemos dirigirnos a nuestro administrador de archivos ya se thunar , caja nautilus o el de su preferencia, y accedemos a network o buscar en la red, dependiendo de su Administrador, y nos mostrara una ventana como la siguiente con nuestro servidor
- Accedemos a nuestro servidor en este caso “SERVER” y encontraremos nuestro directorio compartido y un directorio con los driver de nuestra impresora
INSTALACION AUTOMATIZADA
Para realizar la instalacion automatizada utilizando los script bash se deben seguir los siguientes pasos:
SERVIDOR
- Ingresar en el directorio intranet y ejecutar el siguiente comando
# sh Intranet.sh
- El script comenzara a ejecutarse y le solicitara identificar cual sera la interfaz de red que tendra acceso a internet y cual estara conectada la red para brindar los servicios, debera responder utilizando los numeros que identifican a la interfaz.
- En la etapa de configuracion del servidor proxy se crea un certificado de autenticidad, para ello se le solicitaran los siguientes datos.
- Debera esperar a que finalice la ejecucion del script, el cual al finalizar mostrara los datos necesarios para la administracion del servidor
CLIENTES
- Para configurar los clientes simplemente debera ejecutar el script clientes.sh y esperar a que finalice la instalacion
# sh clientes.sh
Métodos
[[Archivo:Archivo:Resultados.jpg]]== Resultados ==
Resultados
Recomendaciones
- Sistematizar cada configuración e información pertinente en la administración.
- Facilitar al usuario mediante un acceso diseñado y oportuno la disponibilidad de buscar información y encontrarla de manera rápida.
- Establecer una copia de documentos o archivos de las configuraciones que garanticen la seguridad de los mismos.
- Analizar profundamente los dígitos o palabras usadas para bloquear accesos de páginas donde se le permita al usuario el no acceder a las paginas restringidas
Glosario de Términos
Apache:
Es un poderoso servidor web, cuyo nombre proviene de la frase inglesa “a patchy server” y es completamente libre, ya que es un software Open Source y con licencia GPL. Una de las ventajas más grandes de Apache, es que es un servidor web multiplataforma, es decir, puede trabajar con diferentes sistemas operativos y mantener su excelente rendimiento.
Bash:
Es un programa nformático, cuya función consiste en interpretar órdenes, y un lenguaje de consola. Es una shell de Unix compatible con POSIX y el intérprete de comandos por defecto en la mayoría de las distribuciones GNU/Linux, además de macOS.
Certificado:
Son una medida de confianza adicional para las personas que visitan y hacen transacciones en su página web, le permite cifrar los datos entre el ordenador del cliente y el servidor que representa a la página.
Cron:
Es un administrador regular de procesos en segundo plano (demonio) que ejecuta procesos o guiones a intervalos regulares (por ejemplo, cada minuto, día, semana o mes). El nombre cron viene del griego chronos (χρόνος) que significa "tiempo".
Crontab:
El archivo de texto en donde se guarda todas las tareas programadas por cron. Crontab verifica las fechas y horas en que se debe ejecutar el script o el comando, los permisos de ejecución y los realiza en el background.
Dhcp:
El protocolo de configuración dinámica de host (en inglés: Dynamic Host Configuration Protocol, también conocido por sus siglas de DHCP) es un servidor que usa protocolo de red de tipo cliente/servidor en el que generalmente un servidor posee una lista de direcciones IP dinámicas y las va asignando a los clientes
Dns:
El sistema de nombres de dominio (DNS, por sus siglas en inglés, Domain Name System) es un sistema de nomenclatura jerárquico descentralizado para dispositivos conectados a redes IP como Internet o una red privada. Este sistema asocia información variada con nombre de dominio asignado a cada uno de los participantes.
Firewall:
Es una parte de un sistema o una red que está diseñada para bloquear el acceso no autorizado, permitiendo al mismo tiempo comunicaciones autorizadas. Se trata de un dispositivo o conjunto de dispositivos configurados para permitir, limitar, cifrar o descifrar el tráfico entre los diferentes ámbitos sobre la base de un conjunto de normas y otros criterios.
Interface:
Se conoce como la interfaz de usuario al medio que permite a una persona comunicarse con una máquina. Por lo tanto, es una conexión entre dos máquinas de cualquier tipo, a las que proporciona un soporte para la comunicación a diferentes estratos.
Intranet:
Es una red informática que utiliza la tecnología del protocolo de Internet para compartir información, sistemas operativos o servicios de computación dentro de una organización. Suele ser interna, en vez de pública como internet, por lo que solo los miembros de esa organización tienen acceso a ella.
Ip: Es un número que identifica, de manera lógica y jerárquica, a una Interfaz en red (elemento de comunicación/conexión) de un dispositivo (computadora, tableta, portátil, smartphone) que utilice el protocolo P o (Internet Protocol), que corresponde al nivel de red del modelo TCP/IP.
Ldap:
Son las siglas de Lightweight Directory Access Protocol (en español Protocolo Ligero/Simplificado de Acceso a Directorios) que hacen referencia a un protocolo a nivel de aplicación que permite el acceso a un servicio de directorio ordenado y distribuido para buscar diversa información en un entorno de red.
Proxy:
En una red informática, es un servidor —programa o dispositivo—, que hace de intermediario en las peticiones de recursos que realiza un cliente (A) a otro servidor (C).
Script:
Es un programa usualmente simple, que por lo regular se almacena en un archivo de texto plano. Los guiones son casi siempre interpretados, pero no todo programa interpretado es considerado un guion. El uso habitual de los guiones es realizar diversas tareas como combinar componentes, interactuar con el sistema operativo o con el usuario.
Servidor:
Es una aplicación en ejecución (software) capaz de atender las peticiones de un cliente y devolverle una respuesta en concordancia. Los servidores se pueden ejecutar en cualquier tipo de computadora, incluso en computadoras dedicadas a las cuales se les conoce individualmente como «elservidor».
Servidor web: Es un programa informático que procesa una aplicación del lado del servidor, realizando conexiones bidireccionales o unidireccionales y síncronas o asíncronas con el cliente y generando o cediendo una respuesta en cualquier lenguaje o Aplicación del lado del cliente.
Ssh:
(Secure SHell, en español: intérprete de órdenes seguro) es el nombre de un protocolo y del programa que lo implementa, y sirve para acceder servidores privados a través de una puerta trasera (también llamada backdoor).
Ssl:
"Secure Sockets Layer". SSL Definición, Secure Sockets Layer es un protocolo diseñado para permitir que las aplicaciones para transmitir información de ida y de manera segura hacia atrás.
Terminal:
Es un dispositivo electrónico o electromecánico que se utiliza para interactuar con un(a) computador(a). La función de un terminal está confinada a la exhibición y entrada de datos; un dispositivo con una significativa capacidad local programable de procesamiento de datos puede ser llamado un "terminal inteligente" o cliente pesado.
Virtualbox:
Es un software de virtualización para arquitecturas x86/amd64. Actualmente es desarrollado por Oracle Corporation como parte de su familia de productos de virtualización. Por medio de esta aplicación es posible instalar sistemas operativos adicionales, conocidos como «sistemas invitados», dentro de otro sistema operativo «anfitrión», cada uno con su propio ambiente virtual.