Manual Curso Linux Seguridades
Manual Curso Linux Seguridades
2013
Este documento fue elaborado para ser utilizado exclusivamente en los cursos de entrenamiento Linux
ofrecidos por Palosanto Solutions
Solution
[CURSO DE LINUX SEGURIDADES] www.palosanto.com
ÍNDICE GENERAL
ii | INDICE
[CURSO DE LINUX SEGURIDADES] www.palosanto.com
Capítulo 5 [FIREWALL]
5.1 Introducción................................................ 77
5.2 Firewall................................................... 77
5.2.1 Tipos de firewall......................................... 78
5.2.2 Firewall de filtrado de paquetes............................... 78
5.3 Conceptos de firewall.......................................... 79
5.3.1 Enrutamiento de paquetes.................................. 79
5.3.2 Filtrado de paquetes...................................... 80
5.3.3 Network Address Translation (NAT)............................. 80
5.3.4 Reenvío de puertos....................................... 81
5.4 Netfilter................................................... 82
5.4.1 Operación............................................. 82
5.4.2 Estructura............................................. 83
5.4.2.1 Tablas de procesamiento de IPTables........................ 84
5.4.2.2 Comandos de IPTables.................................. 84
5.4.2.3 Filtros o criterios de coincidencia de IPTables................... 85
5.4.2.4 Acción o destino de procesamiento de las reglas de IPTables........ 86
5.4.3 Guardar las reglas de IPTables................................ 87
5.4.4 Iniciar y detener el servicio de IPTables.......................... 88
5.4.5 Verificar el estado de IPTables................................ 88
5.4.6 Cargar módulos de kernel requeridos por IPTables................... 89
Laboratorio 12................................................. 90
INDICE | iii
www.palosanto.com [CURSO DE LINUX SEGURIDADES]
iv | INDICE
Capítulo 1
[INFORMACIÓN GENERAL
SOBRE SEGURIDAD]
CONTENIDO
1.1 Introducción a la seguridad
1.2 Evaluación de vulnerabilidades
1.3 Atacantes y vulnerabilidades
1.4 Ataques y agresiones comunes
1.5 Actualizaciones de seguridad
www.palosanto.com [CURSO DE LINUX SEGURIDADES]
Dado que la mayoría de las organizaciones son cada vez más dinámicas, sus
trabajadores están accediendo a recursos críticos de manera local y remota, de
ahí que la necesidad de entornos informáticos seguros se ha pronunciado cada
vez más.
1.1.2 SELinux
Las distribuciones basadas en Red Hat Enterprise Linux, como CentOS Linux,
incluyen una mejora al kernel llamada SELinux, que proporciona una arquitectura
de acceso obligatorio o MAC (Mandatory Access Control) que proporciona un gran
nivel de control sobre los archivos, procesos, usuarios y aplicaciones en el sistema.
Una revisión detallada de SELinux está más allá del alcance de este documento,
sin embargo para más información sobre SELinux y su uso en Red Hat Enterprise
Linux y sus derivados, consulte la guía detallada en el siguiente link:
https://access.redhat.com/site/documentation/en-
US/Red_Hat_Enterprise_Linux/6/html/Security-
Enhanced_Linux/index.html
• Físico
• Técnico
• Administrativo
• Encriptación
• Tarjetas inteligentes
• Autenticación de red
• Listas de control de acceso (ACL)
• Software de auditoría de integridad de archivos
• Formación y sensibilización
• Preparación para desastres y planes de recuperación
• Contratación de personal y estrategias de separación
• Registro de personal
1.1.4 Conclusión
Ahora que ha aprendido acerca de los orígenes, motivos y aspectos de seguridad
informática, le resultará más fácil determinar el curso de acción apropiado en
relación con su sistema Linux. Es importante saber cuáles son los factores y
condiciones que conforman la seguridad con el fin de planificar e implementar
una estrategia adecuada. Con esta información en mente, el proceso de
implementación de una política de seguridad en su organización se puede
formalizar y el camino se vuelve más claro a medida que profundiza en los
detalles del proceso de seguridad.
Sin embargo, el éxito de cada una de estas tecnologías depende de una serie de
variables, incluyendo:
1.2.3.1 Nmap
Nmap es una popular herramienta que se puede utilizar para determinar el diseño
de una red. Nmap ha estado disponible durante muchos años y es probablemente
la herramienta que se utiliza con mayor frecuencia para recopilar información de
una red. Una página de manual se incluye y ofrece una descripción detallada de
sus opciones y su uso. Los administradores pueden usar Nmap en una red para
encontrar hosts y puertos abiertos en esos sistemas.
1.2.3.2 Nessus
Nessus es un escáner de seguridad de servicios muy completo. La arquitectura
plugin de Nessus le permite a los usuarios personalizarlo para sus sistemas y
redes. Al igual que con cualquier escáner, Nessus es sólo tan bueno como la base
de datos de firmas de la que depende. Afortunadamente, Nessus es actualizado
con frecuencia y ofrece un informe completo, exploración de hosts y búsquedas
de vulnerabilidades en tiempo real. Recuerde que puede haber falsos positivos y
falsos negativos, incluso en una herramienta tan poderosa y tan actualizada como
Nessus.
• Nessus
http://www.nessus.org/
1.2.3.3 Nikto
Nikto es un excelente escáner de scripts CGI (Common Gateway Interface). Nikto
no sólo comprueba las vulnerabilidades CGI, sino que lo hace de una manera
evasiva, con el fin de eludir los sistemas de detección de intrusos. Viene con una
documentación muy completa que debe ser revisada cuidadosamente antes de
ejecutar el programa. Si dispone de servidores Web que están sirviendo scripts
CGI, Nikto puede ser un excelente recurso para el control de la seguridad de estos
servidores.
http://cirt.net/nikto2
las redes funcionan con poca o ninguna motivación externa. Los desarrolladores
de software de código abierto a menudo se consideran a sí mismos y a sus colegas
el ser hackers, y el uso de la palabra como un término de respeto.
Por lo general, los hackers siguen una forma de la ética hacker que dicta que la
búsqueda de información y experiencia es esencial y que compartir este
conocimiento es el deber de la comunidad de hackers. Durante esta búsqueda de
conocimiento, algunos hackers disfrutan los retos académicos de burlar los
controles de seguridad en los sistemas informáticos. Por esta razón, la prensa a
menudo utiliza el término hacker para describir a aquellos que acceden
ilegalmente a sistemas y redes con intención inescrupulosa, maliciosa o criminal.
El término más adecuado para este tipo de hacker es cracker -un término creado
por los hackers a mediados de la década de 1980 para diferenciar las dos
comunidades.
Sin embargo, no hay tal cosa como el software perfecto y siempre hay espacio
para un mayor refinamiento. Además, hay software nuevo que a menudo no es
tan rigurosamente probado como uno esperaría, debido a su reciente llegada a
entornos de producción o porque tal vez no sea tan popular como otros software
de servidor.
Una categoría de servicios de red inseguros son aquellos que requieren los
nombres de usuario y contraseñas sin cifrar. Telnet y FTP son dos de estos
servicios. Si algún software de sniffing de paquetes está monitoreando el tráfico
entre el usuario remoto y tal servicio, los nombres de usuario y contraseñas
pueden ser fácilmente interceptados.
Por defecto, CentOS Linux se instala con todos estos servicios desactivados. Sin
embargo, dado que los administradores a menudo se ven obligados a utilizar
estos servicios, una configuración cuidadosa es crítica.
CONTENIDO
2.1 Evaluar la seguridad del sistema
2.2 Seguridad del BIOS
2.3 Seguridad del gestor de arranque
2.4 Banners de advertencia
2.5 Seguridad en las contraseñas
2.6 Control de la cuenta root
2.7 Servicios de red existentes
[CURSO DE LINUX SEGURIDADES] www.palosanto.com
Nota: Si usted tiene una máquina como servidor, y configura una contraseña de
arranque en el BIOS, el equipo no se iniciará sin atención. Tenga en cuenta que
tendrá que ir y proveer la contraseña en caso de una falla eléctrica, por ejemplo.
Por defecto, el sistema mostrará la versión del sistema operativo, la versión del
kernel y el nombre del sistema o hostname.
La creación de las contraseñas de los usuarios asegura que las contraseñas son
buenas, pero se convierte en una tarea de enormes proporciones si la
organización crece. También aumenta el riesgo de que los usuarios escriban sus
contraseñas en papel.
Por estas razones, la mayoría de los administradores de sistemas prefieren que los
usuarios creen sus propias contraseñas, pero verificando activamente que las
contraseñas sean buenas y, en algunos casos, obligar a los usuarios a cambiar sus
contraseñas periódicamente a través de periodos de vigencia para dichas
contraseñas.
Nota: Siempre obtenga una autorización por escrito antes de intentar descifrar las
contraseñas dentro de una organización.
http://www.openwall.com/john
Por otro lado, dar acceso root a usuarios individuales puede conducir a lo
siguiente:
• Ejecutar servicios inseguros. Los usuarios con acceso root puede ejecutar
servicios inseguros en sus máquinas, tales como FTP o Telnet, colocando
los nombres de usuario y contraseñas en riesgo potencial. Estos servicios
transmiten la información a través de la red en texto simple.
• Ejecutar adjuntos de correo electrónico como root. Aunque son raros, los
virus de correo electrónico que afectan a Linux existen. El único momento
en que son una amenaza, es cuando son ejecutados por el usuario root.
Método Descripción
Cambiar el shell de root Edite el archivo /etc/passwd y cambie el
shell de /bin/bash a /sbin/nologin.
Utilice PAM para limitar el acceso de root Edite los archivos correspondientes a los
servicios en el directorio /etc/pam.d
2.6.2 El comando su
Cuando un usuario ejecuta el comando su, se le solicita la contraseña de root y,
después de la autenticación, se le da un intérprete de comandos o shell de root.
Una vez conectado con el comando su, el usuario ahora es el usuario root y tiene
acceso administrativo absoluto al sistema. Además, una vez que un usuario se ha
convertido en root, es posible que utilice el comando su para cambiarse a
cualquier otro usuario en el sistema sin que se le pida una contraseña.
Debido a que este programa es tan poderoso, los administradores dentro de una
organización podrían desear limitar quién tiene acceso al comando. Una de las
formas más sencillas de hacer esto es añadir usuarios al grupo administrativo
especial llamado wheel. El usuario root es parte del grupo wheel por defecto.
root:x:0:0:root:/root:/bin/bash
Esto debería mostrar una sola línea, para el usuario root. Si alguna otra línea
aparece, asegúrese de que estas otras cuentas con UID 0 son autorizadas, y si hay
alguna buena razón por las que existen; caso contrario, pudiera ser que su sistema
esté comprometido y que un intruso esté haciendo uso de esta cuenta con UID 0
para acceder a su sistema sin que usted lo sepa.
Algunos protocolos de red son inherentemente más inseguros que otros. Estos
incluyen cualquier servicio que:
La utilidad muestra el listado de los servicios disponibles (los servicios que están
en el directorio /etc/rc.d/init.d) a lado de su estado actual y una
descripción que se obtiene presionando la tecla F1. Si hay un asterisco a lado del
servicio significa que está habilitado para iniciarse, caso contrario está
deshabilitado.
Una vez que haya terminado, use la tecla Tab para navegar al botón Ok, y
confirmar los cambios presionando la tecla Enter. Tenga en cuenta que ntsysv
no inicia o detiene un servicio.
~]# chkconfig
NetworkManager 0:desactivado 1:desactivado 2:activo 3:activo
4:activo 5:activo 6:desactivado
Cada línea consiste del nombre del servicio seguido por su estado (activo o
desactivado) para cada uno de los siete runlevels.
Por ejemplo, para mostrar el estado actual del servicio sshd, ejecute:
chkconfig [servicio] on
Laboratorio 1
Protección de GRUB con contraseña
1. Piense en una contraseña segura a configurar en el gestor de arranque GRUB. Para
este laboratorio, la contraseña a configurar será palosanto. Ejecute el siguiente
comando en la consola:
~]# grub-md5-crypt
Password:
Retype password:
$1$d3Vel/$CHUr5/baO2v.y7QW4HBTu1
Cuando se lo solicite, ingrese la contraseña para GRUB y presione Enter. Esto devuelve
un hash MD5 de la contraseña.
La próxima vez que se arranque el sistema, el menú de GRUB impide el acceso al editor
o interfaz de comandos sin la contraseña indicada.
Laboratorio 2
Configuración de banners de advertencia y mensajes del día
1. Vamos a configurar un banner de advertencia que se mostrará antes de que el usuario
inicie sesión. En la medida de lo posible hay que tratar de no utilizar información
referente al sistema o kernel que se está ejecutando. Con su editor de texto preferido,
abra el archivo /etc/issue e ingrese un texto como el siguiente (usted está en la
libertad de configurar lo que sea más conveniente para sus necesidades):
ALERT! You are entering into a secured area! Your IP, login time and
username has been noted and has been sent to the server administrator!
This service is restricted to authorized users only. All activities on
this system are logged. Unauthorized access will be fully investigated
and reported to the appropriate law enforcement agencies.
2. Para configurar un mensaje del día y que se mostrará justo después de que un usuario
inicie sesión en el sistema, con su editor de texto preferido, abra el archivo
/etc/motd e ingrese un texto como el siguiente (usted está en la libertad de
configurar lo que sea más conveniente a sus necesidades):
Welcome to srv1.example.com
All connections are monitored and recorded
Disconnect IMMEDIATELY if you are not an authorized user!
3. Una vez creados los banners, ingrese a otra consola del sistema (ALT + CTRL + F2, por
ejemplo). Debería ver el banner de advertencia. Luego inicie sesión con un usuario
válido y debería ver el banner de mensaje del día.
Laboratorio 3
Verificación de contraseñas seguras con John The Ripper
1. Instalar el paquete de software llamado john (el cual será provisto por el instructor)
con el comando:
.include <dynamic.conf>
#.include <dynamic.conf>
5. Ahora vamos a dejar que John The Ripper haga su trabajo, para esto ejecutamos lo
siguiente:
Mientras más usuarios existan, más tiempo le tomará a John hacer su trabajo. La
ejecución de este proceso podría tomar algún tiempo.
De esta manera podremos ver si las contraseñas creadas son débiles y fáciles de
deducir.
Nota: Es muy recomendable que obtenga una lista de palabras más larga que el
archivo por defecto de John, en nuestro caso, ubicado en la ruta
/usr/share/john/password.lst. Edite la directiva Wordlist en el archivo
de configuración de John antes de ejecutarlo.
Laboratorio 4
Configuración de caducidad de contraseñas
1. Cree el usuario test1 y asígnele una contraseña, así:
Donde:
3. Un usuario por sí mismo no puede modificar estos valores, solo root puede hacerlo.
Para verificarlo, inicie sesión en otra consola (ALT + CTRL + F2, por ejemplo) e inicie
sesión con el usuario test1 y ejecute el comando chage para tratar de modificar sus
valores:
El usuario root puede ver los valores definidos para todos los usuarios del sistema.
Laboratorio 5
Limitar el acceso de root con el comando su y PAM
1. Crear los siguientes usuarios en el sistema y asignarles una contraseña:
• user1
• user2
Este cambio hace que solo los miembros del grupo administrativo especial wheel
puedan hacer uso del comando su.
4. Ahora, inicie sesión en una consola aparte (ALT + CTRL + F2, por ejemplo) con el
usuario user1, ejecute el comando su e ingrese la contraseña de root, así:
[user1@srv1 ~]$ su -
Contraseña:
[root@srv1 ~]#
5. Haga lo mismo con user2 (el cual no ha sido agregado al grupo wheel) y se dará
cuenta que para este usuario ya no es posible convertirse en root:
[user2@srv1 ~]$ su -
Contraseña:
su: contraseña incorrecta
Laboratorio 6
Verificar servicios abiertos con el escáner de puertos Nmap
1. Verificar que se encuentre instalado la utilidad Nmap, así:
Como se puede observar, la salida del programa tras realizar el escaneo es bastante
simple y se entiende perfectamente. En este caso, nos dice que la dirección IP
192.168.0.1 tiene los puertos 22, 25, 53, 80, 111 y 443 abiertos y el servicio al cual
pertenecen.
CONTENIDO
3.1 Introducción
3.2 Protocolo SSH
3.3 Cómo funciona SSH
3.4 Establecimiento de un canal seguro
3.5 Autenticación
3.6 OpenSSH
3.7 Asegurando SSH en el sistema
www.palosanto.com [CURSO DE LINUX SEGURIDADES]
3.1 Introducción
Internet hace posible realizar una gran variedad de operaciones de manera
remota, en especial, administrar un servidor y transferir archivos. El protocolo
Telnet que permite que los usuarios realicen estas tareas, tienen la gran
desventaja de transmitir el intercambio de información en texto plano en la red,
en particular, el nombre de usuario y la contraseña. Tal es así que un cracker que
se encuentre ubicado en una red entre el usuario y un equipo remoto puede
controlar el tráfico, es decir, utilizar una herramienta llamada sniffer o rastreador
que puede capturar paquetes que circulan en la red y obtener el nombre de
usuario y la contraseña para acceder al equipo remoto.
http://www.ssh.com/
http://www.openssh.com/
Es un protocolo que hace posible que un cliente (un usuario o incluso un equipo)
abra una sesión interactiva en una máquina remota (servidor) para enviar
comandos o archivos a través de un canal seguro.
• Los datos que circulan entre el cliente y el servidor están cifrados y esto
garantiza su confidencialidad (nadie más que el servidor y el cliente pueden
leer la información que se envía a través de la red). Como resultado, no es
posible controlar la red con un sniffer.
• El cliente y el servidor se autentifican uno a otro para asegurarse que las dos
máquinas que se comunican son, de hecho, aquellas que las partes creen que
son. El atacante ya no puede adoptar la identidad del cliente o de su servidor
(falsificación).
SSH2 también incluye un protocolo SFTP (Secure File Transfer Protocol o Protocolo
Seguro de Transferencia de Archivos).
Después, para establecer una conexión segura, el servidor envía al cliente su clave
de host. El cliente genera una clave de sesión de 256 bits que cifra con la clave
pública del servidor y luego la envía al servidor junto con el algoritmo utilizado. El
servidor descifra la clave de sesión con su clave privada y envía al cliente un
mensaje de confirmación cifrado con la clave se sesión. Después de esto, las
comunicaciones restantes se cifran gracias a un algoritmo de cifrado simétrico,
mediante la clave de sesión compartida entre el cliente y el servidor.
3.5 Autenticación
Una vez que se ha establecido la conexión segura entre el cliente y el servidor, el
cliente debe conectarse al servidor para obtener un derecho de acceso. Existen
diversos métodos:
3.6 OpenSSH
OpenSSH es una versión libre del paquete de herramientas de comunicación
segura del protocolo SSH para redes, una solución de seguridad que está ganando
la confianza de un número cada vez mayor de usuarios de Internet.
Item Descripción
/etc/rc.d/init.d/sshd Script de inicialización del demónico de ssh
/etc/ssh/sshd_config Archivo de configuración del demónico
/etc/ssh/ssh_host_dsa_key La clave privada DSA usada por el demónico
de SSH
/etc/ssh/ssh_host_dsa_key.pub La clave publica DSA usada por el demónico
de SSH
/etc/ssh/ssh_host_rsa_key La clave privada RSA usada por el demónico
de SSH en su versión 2
/etc/ssh/ssh_host_rsa_key.pub La clave publica RSA usada por el demónico
de SSH en su versión 2
PermitRootLogin no
Si usted necesita acceder como root al sistema, hágalo como un usuario normal y
luego utilice el comando su para convertirse en root, así por ejemplo si el usuario
user1 quisiera convertirse en root ya habiendo accedido al sistema, ejecutaría:
[user1@srv1 ~]$ su -
Contraseña:
[root@srv1 ~]#
# Protocol 2,1
Protocol 2
Para cambiar el puerto por el que su servicio SSH va a escuchar por conexiones,
modifique el archivo /etc/ssh/sshd_config, y ubique la siguiente línea:
Port 22
Port 3951
Por ejemplo, en el caso de IPTables, esto podría realizarse con la siguiente regla:
Una vez que haya verificado que puede acceder de forma exitosa al servidor
usando su par de llaves pública y privada, usted puede deshabilitar
completamente la autenticación por contraseñas añadiendo la siguiente
configuración al fichero /etc/ssh/sshd_config:
PasswordAuthentication no
Donde:
https://192.168.0.10:22443/
Laboratorio 7
Configuración de un banner para SSH
1. Vamos a configurar un banner de advertencia que se mostrará antes de que el usuario
inicie sesión. En la medida de lo posible hay que tratar de no utilizar información
referente al sistema o kernel que se está ejecutando. Hay que crear un archivo de
texto simple donde va a ir el contenido del banner, así que como usuario root vamos a
crear un archivo en blanco dentro del mismo directorio de instalación de SSH, con el
siguiente comando:
Con su editor de texto preferido, abra el archivo creado e ingrese un texto como el
siguiente (usted está en la libertad de configurar lo que sea más conveniente para sus
necesidades):
Welcome to srv1.example.com
All connections are monitored and recorded
Disconnect IMMEDIATELY if you are not an authorized user
Banner /etc/ssh/sshd_banner
Laboratorio 8
Creación de llaves públicas y privadas para autenticación
SSH
1. Procedemos a crear un par de llaves pública y privada en el cliente que utilizará para
conectarse al servidor remoto. El equipo cliente será su máquina y el servidor remoto
será la máquina del instructor. Hay que hacer este procedimiento en cada máquina
que desee conectarse al servidor remoto, en nuestro caso lo haremos como usuario
root:
Este procedimiento, por defecto, creará dos archivos en el directorio de tipo oculto
llamado .ssh y que está localizado dentro del directorio home del usuario que
ejecutó el comando. En nuestro caso, al ejecutarlo como root, la ruta específica sería
/root/.ssh (tal como se ve en la ejecución del comando). Los archivos creados son
la llave privada y pública respectivamente:
• id_rsa
• id_rsa.pub
Al generar las llaves pública y privada, éstas también pueden ser protegidas por
contraseña. Si usted no desea que cada vez que se conecte al servidor remoto, el
sistema le pregunte la contraseña, solo presione Enter cuando se le pregunte por
una contraseña cuando esté creando el par de llaves. Cuando esté creando las llaves,
es su responsabilidad decidir si protege o no sus llaves con contraseña. Si no encripta
sus llaves con contraseña, entonces cualquiera que gane acceso a su máquina local
tendrá acceso SSH automáticamente al servidor remoto.
2. Ahora hay que copiar la llave pública (id_rsa.pub) al servidor remoto para
agregarla al archivo /root/.ssh/authorized_keys de ese servidor, que es
donde se almacenan las claves para los clientes autorizados. Esto lo puede hacer
conectándose al servidor vía consola o con algún software SSH o SFTP. En nuestro caso
lo haremos con el protocolo SCP (Secure copy) el cual usa el mismo protocolo SSH para
copiar archivos entre dos hosts de una red en forma segura. Para esto, ejecutamos
este comando en el equipo cliente, es decir, en su máquina del curso:
Donde 192.168.0.1 es la dirección IP del servidor remoto, en este caso, la máquina del
instructor. La contraseña del servidor remoto es palosanto.
3. Una vez copiada la llave en el sistema remoto, nos conectamos por medio de SSH al
servidor remoto (la máquina del instructor) con el siguiente comando:
~]# cd /root/.ssh
~]# cat id_rsa.pub >> authorized_keys
Laboratorio 9
Redireccionamiento de puertos con SSH
En este laboratorio vamos a conectarnos de manera segura y encriptada al servicio HTTP que
se está ejecutando en el puerto TCP 80 de la máquina remota 192.168.0.1 (asumiendo que es
la dirección IP de la máquina del instructor) y lo vamos a redireccionar al puerto 2280 en la
máquina local 192.168.0.10 (asumiendo que es la dirección IP de su máquina).
De ser necesario ingresamos la contraseña de SSH, caso contrario validará las llaves
pública y privada. La sesión de esta conexión SSH debe permanecer activa el tiempo
que deseemos acceder al servicio de manera segura, caso contrario cerramos la sesión
SSH.
2. Ahora, en otra consola, vamos a verificar que el puerto 2280 en nuestra máquina local
esté levantado, así:
http://localhost:2280/
CONTENIDO
4.1 Introducción
4.2 Tipos de VPN
4.3 Protocolos
4.4 Configuración de un servidor VPN
[CURSO DE LINUX SEGURIDADES] www.palosanto.com
4.1 Introducción
Organizaciones con varias oficinas sucursales a menudo se conectan entre sí
mediante líneas dedicadas debido a la eficiencia y la protección de información
sensible que se transmite por la red. Esto puede ser un asunto costoso,
especialmente para las pequeñas y medianas empresas (PyMEs) que desean
expanderse sin tener que pagar los altos costos asociados a un nivel de tipo
empresarial, como los circuitos o enlaces de datos dedicados.
Para hacer frente a esta necesidad, se han desarrollado redes privadas virtuales o
VPNs (Virtual Private Network). Siguiendo los mismos principios de
funcionamiento que los enlaces dedicados, las VPNs permiten una comunicación
segura entre dos partes (o redes). Las VPNs transmiten sobre el protocolo IP
usando datagramas como capa de transporte, lo que lo hace un conducto seguro
a un destino dado a través de Internet. La mayoría de las implementaciones de
software libre de VPN incorporan estándares abiertos de métodos de encriptación
y cifrado para enmascarar los datos en tránsito.
Una VPN bien instalada beneficia mucho a una organización. Por ejemplo, puede:
Una organización podría no requerir todos estos beneficios de la VPN, pero debe
exigir las siguientes características esenciales de una VPN:
4.3 Protocolos
Las soluciones de VPN pueden ser implementadas a diferentes niveles del modelo
de red OSI.
http://www.openvpn.net/
62 | VPN: VIRTUAL PRIVATE NETWORK
[CURSO DE LINUX SEGURIDADES] www.palosanto.com
TLS (Transport Layer Security) y su predecesor SSL (Secure Socket Layer) son
protocolos de cifrado que proveen seguridad en las comunicaciones sobre
Internet.
Además ofrece ventajas que van más allá de cualquier otra solución como:
Item Descripción
/etc/rc.d/init.d/openvpn Script de inicialización del demónico de
openvpn
/etc/openvpn/server.conf Archivo de configuración del servidor
OpenVPN
/etc/openvpn/client.conf Archivo de configuración del cliente
OpenVPN
El servicio OpenVPN levanta por defecto en el puerto UDP 1194 (aunque puede
ser modificado en su archivo de configuración). Para verificar que está levantado
dicho puerto, ejecute el comando:
Laboratorio 10
Configuración de un servidor OpenVPN
1. Para instalar el servidor OpenVPN, hay que instalar el paquete de software openvpn,
el cual necesita de las siguientes dependencias:
• openssl
• lzo
• pam
• pkcs11-helper
http://openvpn.net/index.php/download/community-downloads.html
Para este laboratorio, vamos a instalar la versión RPM del paquete de software de
OpenVPN llamado openvpn. Para obtener la versión RPM, búsquelo y descárguelo de
los repositorios de EPEL (Extra Packages for Enterprise Linux) en la siguiente dirección:
http://fedoraproject.org/wiki/EPEL
~]# cd /etc/openvpn/easy-rsa
easy-rsa]# cp openssl-1.0.0.cnf openssl.cnf
easy-rsa]# source ./vars
easy-rsa]# ./clean-all
easy-rsa]# ./build-ca
5. Ahora vamos a generar el certificado y la llave privada para nuestro servidor VPN, al
cual le llamaremos vpnserver. Ejecutamos el siguiente comando:
6. Ahora vamos a generar certificado y llave privada para un cliente, al cual le llamaremos
vpnclient1 (cada estudiante generará un certificado con el número de máquina
asignado, por ejemplo vpnclient3, etc.). Ejecutamos el siguiente comando:
easy-rsa]# ./build-dh
~]# cp /usr/share/doc/openvpn-2.2.2/sample-config-files/server.conf
/etc/openvpn
11. Con nuestro editor de texto preferido, procedemos a abrir el archivo de configuración
/etc/openvpn/server.conf, y prestamos atención a estas directivas:
Directiva Descripción
;local a.b.c.d Dirección IP en la que va a escuchar por
conexiones. Por defecto, escucha en todas las
interfaces, así lo vamos a configurar, caso
contrario debería especificar la dirección IP de
su servidor, ya sea pública o privada
port 1194 Puerto donde va a escuchar por conexiones
proto udp Protocolo a utilizar, puede ser TCP o UDP
dev tun Va a funcionar como dispositivo tipo túnel.
tun crea túneles enrutados y tap crea túneles
Ethernet, si se desea hacer un bridge Ethernet
se debe definir como tap
ca ca.crt Certificado CA
cert vpnserver.crt Certificado del servidor
key vpnserver.key Llave privada del servidor
dh dh1024.pem Parámetros Diffie-Hellman
server 10.8.0.0 255.255.255.0 Definimos la dirección de red que se utilizará
para asignar a los clientes VPN cuando se
conecten con el servidor. Si tiene pocos
clientes una red clase C entera o una subred
serían suficientes, caso contrario puede ser
redes clase A o B. La dirección de red aquí
definida debe ser de un rango reservado y no
ser utilizada por otra red en su organización
push “route 192.168.0.0 Definimos la red que están detrás del servidor
255.255.255.0” y a las que el usuario de VPN podrá acceder
remotamente. Por cada red que tenga, cree
una línea con la directiva push. En nuestro
caso vamos a publicar la red privada del
laboratorio
13. Para que OpenVPN se ejecute a tiempo de arranque del servidor, ejecutamos:
14. Para ver si nuestro servidor OpenVPN está escuchando conexiones podemos ejecutar:
15. Ya que nuestro servidor OpenVPN fue configurado como dispositivo de túnel, debería
estar creado una nueva interfaz de tipo túnel. Para verificar esto, ejecutamos el
comando:
~]# ifconfig
Laboratorio 11
Configuración de un cliente OpenVPN Linux
1. Para configurar un cliente OpenVPN en Linux CentOS 6, hay que instalar el paquete de
software openvpn, ya que el mismo sirve cuando el equipo es servidor o cliente
como en este caso. Repetimos los pasos 1 y 2 del Laboratorio 10.
2. Una vez instalado el paquete de software, procedemos a copiar los certificados y llave
privada para el cliente que generamos en el Laboratorio 10 y los ubicaremos en el
directorio /etc/openvpn del equipo cliente. (Para este laboratorio la máquina
cliente será el equipo del instructor). Los archivos a copiar en el equipo cliente serían:
• ca.crt
• vpnclient1.crt
• vpnclient1.key
3. Ahora vamos a configurar el cliente OpenVPN. Para hacer esto, copiamos un archivo
de configuración de cliente de ejemplo ubicado en los directorios de documentación
del paquete instalador, con el siguiente comando:
~]# cp /usr/share/doc/openvpn-2.2.2/sample-config-files/client.conf
/etc/openvpn
Directiva Descripción
client Especificamos que somos clientes
dev tun Usar la misma configuración aplicada en el servidor
proto udp Usar la misma configuración aplicada en el servidor
remote my-server-1 1194 El nombre del servidor o dirección IP y el puerto.
Podemos definir más de un servidor. Reemplace el
valor my-server-1 con la dirección IP o nombre del
servidor VPN a donde desea conectarse
ca ca.rt Certificado CA que lo obtenemos del servidor
cert vpnclient1.crt Certificado del cliente que fue generado en el servidor
key vpnclient1.key Llave privada del cliente que fue generada en el
servidor
7. Ya que nuestro cliente OpenVPN Linux fue configurado como dispositivo de túnel,
debería estar creado una nueva interfaz de tipo túnel. Para verificar esto, ejecutamos
el comando:
~]# ifconfig
9. Recuerde que cuando el cliente se conecta al servidor VPN, éste último le da acceso a
las redes internas de la organización (las que fueron configuradas con la directiva
push en el archivo de configuración del servidor), por lo tanto para verificar que
desde el cliente puede llegar a dichas redes, visualice la tabla de rutas del equipo
cliente. Para esto ejecutamos:
~]# route -n
Como podemos observar existe una ruta hacia la red 192.168.0.0/255.255.255.0 que
se encamina por la dirección IP 10.8.0.5 correspondiente a la VPN. Así también vemos
en la cuarta línea que el equipo cliente tiene una dirección IP local de la red
10.10.10.0/255.0.0.0; con esto, es recomendable que la red que configure en el
servidor para otorgar direcciones IP a sus clientes VPN, utilice un direccionamiento IP
diferente a las direcciones de red reservadas, de manera que no vaya a causarse algún
tipo de conflicto para acceder a la red local y la VPN.
CONTENIDO
5.1 Introducción
5.2 Firewall
5.3 Conceptos de firewall
5.4 Netfilter
[CURSO DE LINUX SEGURIDADES] www.palosanto.com
5.1 Introducción
Linux está gozando de una creciente popularidad entre usuarios caseros, PyMEs y
grandes organizaciones. Linux no es solamente una plataforma para servidor muy
popular, especialmente para servidores Web, también es excelente trabajando
como gateway o puerta de enlace de una LAN hacia Internet. Detrás de dicho
gateway, continuamente conectado a Internet, están otras máquinas Linux, UNIX,
Microsoft Windows, Mac, impresoras compartidas, etc. Como resultado, usuarios
de estos sistemas están siendo expuestos a problemas de seguridad en los que
nunca tuvieron que pensar anteriormente.
Conectar un sistema Linux a Internet es como dejar una casa abierta al público,
con la puerta delantera completamente abierta, e ir a unas largas vacaciones. Sin
las precauciones del caso, intrusos o atacantes ingresarán y esto quizás sucederá
más pronto que tarde.
5.2 Firewall
El término firewall, en español cortafuegos, tiene un número de significados
dependiendo de su implementación y propósito. Para este capítulo, firewall
significa el equipo conectado directamente a Internet. Aquí es donde sus políticas
de seguridad serán implementadas.
78 | FIREWALL
[CURSO DE LINUX SEGURIDADES] www.palosanto.com
La idea general es, que usted necesita controlar cuidadosamente el tráfico que
pasa entre Internet y el equipo que ha conectado directamente a Internet. En la
interface externa, usted filtrará lo que ingresa desde el exterior y también lo que
saldrá de este equipo si fuere su caso.
net.ipv4.ip_forward = 1
FIREWALL | 79
www.palosanto.com [CURSO DE LINUX SEGURIDADES]
Nota: Es una práctica muy común para los usuarios configurar el enrutamiento de
paquetes manualmente a través de scripts de control de firewall. Habilitar
automáticamente el enrutamiento de paquetes será más útil hacerlo en un
servidor dedicado.
Un servidor Linux configurado para NAT tendrá como mínimo dos interfaces de
red, una para Internet (WAN) y la otra para la red interna (LAN). NAT se encargará
de traducir los requerimientos desde la red interna, de modo que parezca que
todos provienen del propio servidor en el que se encuentra configurado el NAT.
80 | FIREWALL
[CURSO DE LINUX SEGURIDADES] www.palosanto.com
• Dirección IP origen
• Puerto origen (TCP/UDP)
Cuando los paquetes pasan a través del servidor NAT, son modificados para que
parezca que se han originado y provienen del mismo servidor NAT. El servidor
NAT registra los cambios que realiza en su tabla de estado, para así poder: a)
invertir los cambios en los paquetes devueltos, y b) asegurarse de que los
paquetes devueltos pasen a través del firewall y no sean bloqueados. Por
ejemplo, podrían ocurrir los siguientes cambios:
FIREWALL | 81
www.palosanto.com [CURSO DE LINUX SEGURIDADES]
5.4 Netfilter
En Linux, el filtrado de paquetes se controla a nivel del kernel o núcleo. Netfilter
es un componente del kernel que permite definir un sistema de reglas para
aceptar o rechazar los paquetes de red o comunicaciones que pasan por el
sistema. Estos sistemas de reglas conforman lo que se conoce como firewall o
cortafuegos; en otros sistemas los firewall pueden estar implementados en
software y estar desvinculados del sistema operativo, pero en el caso de Linux, el
firewall se puede montar a nivel de kernel y no es necesario instalar un software
adicional que incluso a veces tiene agujeros de seguridad.
http://www.netfilter.org/
5.4.1 Operación
IPTables permite al administrador del sistema definir reglas acerca de qué hacer
con los paquetes de red. Las reglas se agrupan en cadenas, cada cadena es una
lista ordenada de reglas. Las cadenas se agrupan en tablas, cada tabla está
asociada con un tipo diferente de procesamiento de paquetes.
Cada regla especifica qué paquetes la cumplen (matching) y un destino que indica
qué hacer con el paquete si éste cumple la regla. Cada paquete de red que llega a
una computadora o que se envía desde una computadora recorre por lo menos
una cadena y cada regla de esa cadena se comprueba con el paquete. Si la regla
cumple con el datagrama, el recorrido se detiene y el destino de la regla dicta lo
que se debe hacer con el paquete. Si el paquete alcanza el fin de una cadena
predefinida sin haberse correspondido con ninguna regla de la cadena, la política
de destino de la cadena dicta qué hacer con el paquete. Si el paquete alcanza el
fin de una cadena definida por el usuario sin haber cumplido ninguna regla de la
cadena o si la cadena definida por el usuario está vacía, el recorrido continúa en la
82 | FIREWALL
[CURSO DE LINUX SEGURIDADES] www.palosanto.com
cadena que hizo la llamada (lo que se denomina implicit target return o retorno
de destino implícito). Solo las cadenas predefinidas tienen políticas.
5.4.2 Estructura
Todos los paquetes inspeccionados por IPTables pasan a través de una secuencia
de tablas para su procesamiento. Cada una de estas tablas se dedica a un tipo
particular de actividad de paquete y se conforma por una serie de cadenas de
procesamiento o transformación de paquetes. Dentro de estas cadenas es donde
ubicaremos nuestras reglas.
Donde:
FIREWALL | 83
www.palosanto.com [CURSO DE LINUX SEGURIDADES]
84 | FIREWALL
[CURSO DE LINUX SEGURIDADES] www.palosanto.com
FIREWALL | 85
www.palosanto.com [CURSO DE LINUX SEGURIDADES]
86 | FIREWALL
[CURSO DE LINUX SEGURIDADES] www.palosanto.com
FIREWALL | 87
www.palosanto.com [CURSO DE LINUX SEGURIDADES]
Para configurar que el servicio IPTables se inicie a tiempo de arranque del sistema,
ejecutamos el comando:
Este comando mostrará un listado con las reglas aplicadas en todas las cadenas de
las tablas utilizadas de IPTables.
De otra forma, también podemos visualizar las reglas que tenemos ejecutándose,
con los siguientes comandos para las reglas de filtrado de paquetes y de NAT por
ejemplo:
~]# iptables –L –n –v
~]# iptables –t nat –L –n -v
88 | FIREWALL
[CURSO DE LINUX SEGURIDADES] www.palosanto.com
Por ejemplo, cada vez que cualquier tipo de NAT es necesario en su sistema, el
módulo iptable_nat necesita ser cargado. El módulo nf_conntrack_ftp
necesita ser agregado para soportar FTP y siempre debe cargarse con el módulo
nf_conntrack que rastrea los estados de conexión TCP. Y si su servidor FTP
está detrás de un firewall utilice el módulo nf_nat_ftp para que no tenga
inconvenientes de ningún tipo con este servicio.
Los módulos de kernel que pueden ser usados por IPTables están ubicados en las
siguientes rutas:
/lib/modules/2.6.32-71.11.1.el6/kernel/net/netfilter
/lib/modules/2.6.32-71.11.1.el6/kernel/net/ipv4/netfilter
Para cargar los módulos adicionales de kernel para IPTables, edite la siguiente
línea en el archivo de configuración /etc/sysconfig/iptables-config y
busque una línea como la siguiente:
IPTABLES_MODULES=""
Esta línea debe ser llenada con los módulos respectivos requeridos para el
correcto funcionamiento de su sistema de firewall. Por ejemplo, si su detrás de su
servidor firewall existen servidores FTP, la línea debería estar configurada como se
muestra a continuación:
IPTABLES_MODULES="nf_conntrack_ftp nf_nat_ftp"
FIREWALL | 89
www.palosanto.com [CURSO DE LINUX SEGURIDADES]
Laboratorio 12
Configuración de un servidor firewall y gateway de
acceso a Internet
Para el siguiente laboratorio, asumiremos que nuestra infraestructura de red es la siguiente:
Vamos a empezar:
Regla Comando
A.1 iptables –A INPUT –i eth0 –d 200.24.100.1 –p tcp --dport 25 –j
ACCEPT
A.1 iptables –A INPUT –i eth0 –d 200.24.100.1 –p tcp –-dport 80 –j
ACCEPT
A.2 iptables –I INPUT –i eth0 –d 200.24.100.1 –tcp –-dport 80 –j LOG
A.3 iptables –A INPUT –i eth0 –s 200.100.50.100 –d 200.24.100.1 –p
tcp –-dport 22 –j ACCEPT
A.4 iptables –A INPUT –i eth0 –d 200.24.100.1 –p icmp –j ACCEPT
A.5 iptables –A INPUT –i eth0 –s 8.8.8.8 –d 200.24.100.1 –p udp –-
sport 53 –j ACCEPT
A.6 iptables –A INPUT –I eth0 –d 200.24.100.1 –m state –-state
RELATED,ESTABLISHED –j ACCEPT
A.7 iptables –A INPUT –i eth0 –d 200.24.100.1 –j DROP
A.8 iptables –t nat –A POSTROUTING –o eth0 –s 192.168.0.0/24 –j
MASQUERADE
A.9 iptables –t nat –A PREROUTING –i eth0 –p tcp -–dport 5555 –j
DNAT –-to 192.168.0.50:80
B.1 iptables –A INPUT –i eth1 –s 192.168.0.10 –p tcp -–dport 22 –j
DROP
B.2 iptables –A INPUT –i eth1 –m mac –-mac-source 00:A0:C9:14:C8:89
–j DROP
B.3 iptables –A INPUT –i eth1 -s 192.168.0.0/24 –j ACCEPT
B.4 iptables –A FORWARD –i eth1 –o eth0 –s 192.168.0.0/24 –p tcp –-
dport 25 –j DROP
2. Para listar las reglas configuradas en el cuadro anterior, ejecute el siguiente comando:
~]# iptables -L -n –v
~]# iptables –t nat -L - n –v
3. Una vez que hayamos configurado todo correctamente, procedemos a guardar las
reglas de IPTables en el archivo de configuración /etc/sysconfig/iptables,
para esto, ejecutamos el siguiente comando:
FIREWALL | 91
www.palosanto.com [CURSO DE LINUX SEGURIDADES]
net.ipv4.ip_forward = 1
5. Para verificar que efectivamente las reglas se hayan guardado en el archivo y que van a
ser configuradas en el próximo arranque, simplemente reiniciamos el servicio de
IPTables, con el comando:
92 | FIREWALL
[CURSO DE LINUX SEGURIDADES] www.palosanto.com
FIREWALL | 93
Capítulo 6
[PROXY HTTP]
CONTENIDO
6.1 Qué es un proxy?
6.2 Proxy HTTP
6.3 Configuración de un servidor proxy HTTP
[CURSO DE LINUX SEGURIDADES] www.palosanto.com
El uso más común es el de servidor proxy, que es un equipo que intercepta las
conexiones de red que un cliente hace a un servidor destino. De ellos, el más
famoso es el servidor proxy de navegación, Web proxy o proxy HTTP
(comúnmente conocido solamente como servidor proxy).
6.2.1 Funcionamiento
1. El cliente realiza una petición mediante un cliente HTTP (por ejemplo, un
navegador Web) de un recurso de Internet (una página Web o cualquier otro
archivo) especificado por una URL.
2. Cuando el proxy recibe la petición, busca la URL resultante en su caché local.
Si la encuentra, devuelve el documento inmediatamente, si no es así, lo
captura del servidor remoto, lo devuelve al cliente que lo pidió y guarda una
copia en su caché para futuras peticiones.
PROXY HTTP | 95
www.palosanto.com [CURSO DE LINUX SEGURIDADES]
Los sistemas proxy HTTP también pueden filtrar el contenido de las páginas Web
servidas. Algunas aplicaciones que intentan bloquear contenido Web ofensivo
están implementadas como proxy HTTP. Otros tipos de proxy cambian el formato
de las páginas Web para un propósito o una audiencia específicos, para, por
ejemplo, mostrar una página en un teléfono móvil o una PDA. Algunos operadores
de red también tienen equipos proxy para interceptar virus y otros contenidos
hostiles servidos por páginas Web remotas.
6.2.2 Ventajas
• Ahorro de tráfico. Las peticiones de páginas Web se hacen al servidor
proxy y no a Internet directamente. Por lo tanto, aligera el tráfico en la
red y descarga desde los servidores destino, a los que llegan menos
peticiones.
6.2.3 Desventajas
• Las páginas mostradas pueden no estar actualizadas si éstas han sido
modificadas desde la última carga que realizó el proxy caché. Un
diseñador de páginas Web puede indicar en el contenido de su Web que
los navegadores no hagan una caché de sus páginas, pero este método no
funciona habitualmente para un proxy.
• Almacenar las páginas y objetos que los usuarios solicitan puede suponer
una violación de la intimidad para algunas personas.
96 | PROXY HTTP
[CURSO DE LINUX SEGURIDADES] www.palosanto.com
Los proxies transparentes también son utilizados por los ISP en algunos países
para ahorrar ancho de banda y mejorar los tiempos de respuesta al cliente
mediante el almacenamiento en caché. Esto es más común en países donde el
ancho de banda es más limitado (por ejemplo, las naciones insulares).
PROXY HTTP | 97
www.palosanto.com [CURSO DE LINUX SEGURIDADES]
http://www.squid-cache.org/
De aquí, podemos ver que esta regla está compuesta por dos objetos: el primero
representa al equipo de Secretaría (denotado por su dirección IP) y el segundo
representa al dominio google.com que es el único al que este equipo puede tener
acceso. Como habíamos mencionado, cada uno de estos objetos representa una
ACL, por lo tanto se supone que deben existir algunos tipos.
6.3.3 ACLs
Una ACL es un elemento importante en la implementación de seguridad para
nuestros usuarios. Se configuran en el archivo de configuración de Squid.
Donde:
98 | PROXY HTTP
[CURSO DE LINUX SEGURIDADES] www.palosanto.com
• valor. Es el valor que va tener una ACL de acuerdo al tipo que se está
definiendo. Puede ser una dirección IP, un dominio de Internet, una URL,
rangos de tiempo, etc. Se puede definir un valor o varios en la misma
línea, o inclusive estos valores pueden estar definidos en un archivo de
texto aparte.
Src Permite definir un valor basado en una dirección IP origen (source), es decir,
el equipo que origina la conexión. En caso de tener que configurar una
dirección de red, esta debe ser configurada con una máscara corta como /8,
/16, /24, etc. Ejemplo:
PROXY HTTP | 99
www.palosanto.com [CURSO DE LINUX SEGURIDADES]
Se ve sencillo, pero si quisiéramos agregar unos 20, 50, 100 o más valores, no
sería estéticamente bueno porque tiende a confusión en la mayoría de los casos.
Squid nos permite definir el nombre de un archivo de texto plano, el cual
contendrá todos los valores a configurar, uno por línea. Así por ejemplo la misma
ACL se representaría así:
.google.com
.yahoo.com
.linux.org
El mismo formato puede ser aplicado para los demás tipos de ACL.
Cabe recalcar que una regla de acceso se puede formar de una o más ACLs, de
acuerdo a nuestras necesidades. Las ACLs que componen una regla se van
comprobando de izquierda a derecha, mientras más ACLs tenga una regla, más
restrictiva es.
De esta forma, el archivo de Squid puede contener varias reglas de acceso, las
cuales se evaluarán en forma descendente. Una vez que una petición de un
cliente hace coincidencia con una regla, las demás ya no se evalúan. De acuerdo a
esto, hay que configurar las reglas de acceso más específicas al principio y las más
generales al final.
Item Descripción
/etc/rc.d/init.d/squid Script de inicialización del demónico de Squid
/etc/squid/squid.conf Archivo de configuración principal de Squid
/var/log/squid/access.log Archivo de log de conexiones de clientes
El servicio Squid levanta por defecto en el puerto TCP 3128 (a menos que usted
configure otro puerto de conexión). Para verificar que está levantado dicho
puerto, ejecute el comando:
Laboratorio 13
Configuración de un servidor proxy HTTP
Para el siguiente laboratorio asumiremos que deseamos implementar las siguientes políticas:
Vamos a empezar:
http_port 3128
4. Luego hay que configurar el directorio donde queremos que sea almacenado el caché
de las páginas Web accedidas por los clientes, buscamos la siguiente línea:
Donde 100 representa el tamaño máximo de caché permitido (en MB), y debería ser
ajustado a sus necesidades. Los números 16 y 256 indican el número de
subdirectorios que se crearán a partir del directorio padre, en este caso
/var/spool/squid.
6. Procedemos a configurar las reglas de acceso con las ACLs ya definidas. Justo por
debajo de la siguiente línea:
# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
Con nuestro editor de texto preferido, abrimos dicho archivo y agregamos las
siguientes palabras (una palabra por cada línea):
sex
porn
xxx
Haga clic sobre el botón Configuración para definir los parámetros del
proxy.
o Si desea excluir el uso del proxy para acceder a algunos recursos, cree
una lista separada por coma (,) en el bloque No usar proxy para.
o Seleccione la opción Usar servidor proxy para LAN y haga clic sobre el
botón Avanzadas para definir los parámetros del proxy
o Si desea excluir el uso del proxy para acceder a algunos recursos, cree
una lista separada por coma (,) en el bloque No usar un servidor proxy
para las direcciones que comiencen por.
Laboratorio 14
Configuración de un servidor proxy HTTP en modo
transparente
Para el siguiente laboratorio, vamos a usar la misma configuración del laboratorio anterior ya
que las ACLs y reglas de acceso son las mismas. Nos vamos a enfocar netamente en la
configuración del proxy transparente.
http_port 3128
2. Guardamos la configuración realizada. Ahora debemos crear una regla de firewall que
permitirá redireccionar todo el tráfico originado en la red interna que vaya a Internet y
forzarlo para que salga por el proxy. Para esto ejecutamos el siguiente comando:
Donde 192.168.0.0/24 es la dirección de red LAN dónde están ubicados los usuarios.
3. Para trabajar con proxy en modo transparente, debe retirar la configuración manual
de proxy en el navegador Web del cliente y cersiorarse de que el servidor proxy sea la
puerta de enlace predeterminada o default gateway del computador del cliente.