Fuente Wikipedia
ISO/IEC 27001
El estándar para la seguridad de la información ISO/IEC 27001 (Information technology - Security techniques - Information security management systems - Requirements) fue aprobado y publicado como estándar internacional en Octubre de 2005 por International Organization for Standardization y por la comisión International Electrotechnical Commission.
Especifica los requisitos necesarios para establecer, implantar, mantener y mejorar un Sistema de Gestión de la Seguridad de la Información (SGSI) según el conocido “Ciclo de Deming”: PDCA - acrónimo de Plan, Do, Check, Act (Planificar, Hacer, Verificar, Actuar). Es consistente con las mejores prácticas descritas en ISO/IEC 17799 (actual ISO/IEC 27002) y tiene su origen en la norma BS 7799-2:2002, desarrollada por la entidad de normalización británica, la [British Standards Institution] (BSI).
ITIL
Information Technology Infrastructure Library
La Biblioteca de Infraestructura de Tecnologías de Información, frecuentemente abreviada ITIL (del inglés Information Technology Infrastructure Library), es un marco de trabajo de las buenas prácticas destinadas a facilitar la entrega de servicios de tecnologías de la información (TI). ITIL resume un extenso conjunto de procedimientos de gestión ideados para ayudar a las organizaciones a lograr calidad y eficiencia en las operaciones de TI. Estos procedimientos son independientes del proveedor y han sido desarrollados para servir como guía que abarque toda infraestructura, desarrollo y operaciones de TI.
Cobit
Objetivos de control para la información y tecnologías relacionadas
(Redirigido desde COBIT)
Objetivos de Control para la información y Tecnologías relacionadas (COBIT, en inglés: Control Objectives for Information and related Technology) es un conjunto de mejores prácticas para el manejo de información creado por la Asociación para la Auditoría y Control de Sistemas de Información,(ISACA, en inglés: Information Systems Audit and Control Association), y el Instituto de Administración de las Tecnologías de la Información (ITGI, en inglés: IT Governance Institute) en 1992.
Agrego algunos marcos legales que actualmente dirigen al sector publico y privado
HIPPA
La Ley de responsabilidad y transferibilidad de los seguros médicos (Health Insurance Portability & Accountability Act) de 1996 (21 de agosto 21), ley pública 104-191, que modifica el código del Internal Revenue Service de 1986. También conocida como la Ley de Kennedy-Kassebaum.
El Título II incluye una sección, Simplificación administrativa, que exige:
1. Mayor eficiencia en la asistencia médica por medio de la estandarización del intercambio electrónico de datos, y
2. La protección de la confidencialidad y seguridad de los datos médicos, a través del establecimiento y cumplimiento de estándares.
Más específicamente, la HIPAA pide:
1. La estandarización de los datos electrónicos administrativos, financieros y de salud de los pacientes
2. Identificadores médicos únicos para personas, empleados, planes de salud y proveedores de cuidados médicos
3. Normas de seguridad que protejan la confidencialidad y la integridad de la "información médica identificable a nivel personal" pasada, presente o futura.
En resumen: cambios radicales en la mayoría de los sistemas de información administrativos y de transacciones médicas.
CIPA
La Ley de Protección de Niños en Internet (CIPA, por sus siglas en inglés), es una ley federal promulgada por el Congreso para manejar asuntos relacionados con el acceso a contenido ofensivo en Internet, en las computadoras de las escuelas y bibliotecas. La CIPA establece ciertos tipos de requisitos para cualquier escuela o biblioteca que reciba apoyo financiero destinado a cubrir su acceso a Internet o a conexiones internas del programa “E-rate,” un programa que da acceso a ciertas tecnologías de comunicaciones a precios moderados, para las escuelas y bibliotecas elegibles. A principios de 2001, la Comisión Federal de Comunicaciones (FCC, por sus siglas en inglés) emitió normas de implementación de la CIPA.
Sarbanes Oxley
La Ley Sarbanes Oxley, cuyo título oficial en inglés es Sarbanes-Oxley Act of 2002, Pub. L. No. 107-204, 116 Stat. 745 (30 de julio de 2002), es una ley de Estados Unidos también conocida como el Acta de Reforma de la Contabilidad Pública de Empresas y de Protección al Inversionista. También es llamada SOx, SarbOx o SOA.
La Ley Sarbanes Oxley nace en Estados Unidos con el fin de monitorear a las empresas que cotizan en bolsa, evitando que las acciones de las mismas sean alteradas de manera dudosa, mientras que su valor es menor. Su finalidad es evitar fraudes y riesgo de bancarrota, protegiendo al inversor.
Esta ley, más allá del ámbito nacional, afecta a todas las empresas que cotizan en NYSE (Bolsa de Valores de Nueva York), así como a sus filiales.
Gramm-Leach-Bliley Act (GLBA) Servicios Financieros
Las instituciones gobernadas por la GLBA deberán garantizar la seguridad y confidencialidad de los registros e información de clientes
Deberán estar protegidas contra amenazas anticipadas o riesgos de seguridad o integridad de registros
Deberán estar protegidos en contra de accesos no autorizados hacia o el uso de registros o información que pudiera resultar en el daño sustancial o inconvenciencia hacia cualquier cliente.
The Prioritizing Resources & Organization for Intellectual Property Act A todas las compañías de los Estados Unidos de America
En general, le da más latitud al cumplimiento de la ley para poner en ejecución las leyes de propiedad intelectual PI
Protege la PI incluyendo los bienes farmacéuticos, manufacturas y trabajos artísticos tal como el MP3 y archivos de video y otro tipo de contenido transmitido electrónicamente así como en medios de hardware
Las organizaciones que descuiden el aseguramiento de sus redes de descargas ilegales se enfrentarán con multas que incluyen cargos por delincuencia y la confiscación de sus equipos de computo
lunes, 30 de noviembre de 2009
Instalando ntop en centos 5
Ntop es un analizador de tráfico de red que muestra el uso de la red, similar a lo que el popular comando TOP lo hace. Ntop se basa en libpcap y ha sido escrito en una forma portátil con el fin de ejecutar en prácticamente todas las plataformas Unix y en Win32.
Instalacion :
descargamos la aplicacion via yum
# yum -y install ntop
editamos el archivo de configuracion de ntop
# vi /etc/ntop.conf
=====================================================
### Sets program to run as a daemon
### NOTE: For more than casual use, you probably want this.
#--daemon
### Interface(s) that ntop will capture on (default: eth0)
--interface eth0
### Sets the port that the optional HTTPS webserver listens on
--https-server 3001
===================================================
agregamos la siguiente regla al shorewall
vi /etc/shorewall/rules
====================================================
Ntop/ACCEPT loc $FW
o
ACCEPT loc $FW tcp 3001
====================================================
# shorewall restart
# service iptables save
despues ingresamos el pasword para ntop
#/usr/bin/ntop @/etc/ntop.conf -A
de nuevo editamos el archivo de ntop.conf par habilitarmo como demonio
#vi /etc/ntop.conf
=====================================================
### Sets program to run as a daemon
### NOTE: For more than casual use, you probably want this.
--daemon
=====================================================
# chkconfig ntop on
# service ntop start
checamos en nuestro navegador la información
https://mi_ip:3001
DISFRUTENLO
Instalacion :
descargamos la aplicacion via yum
# yum -y install ntop
editamos el archivo de configuracion de ntop
# vi /etc/ntop.conf
=====================================================
### Sets program to run as a daemon
### NOTE: For more than casual use, you probably want this.
#--daemon
### Interface(s) that ntop will capture on (default: eth0)
--interface eth0
### Sets the port that the optional HTTPS webserver listens on
--https-server 3001
===================================================
agregamos la siguiente regla al shorewall
vi /etc/shorewall/rules
====================================================
Ntop/ACCEPT loc $FW
o
ACCEPT loc $FW tcp 3001
====================================================
# shorewall restart
# service iptables save
despues ingresamos el pasword para ntop
#/usr/bin/ntop @/etc/ntop.conf -A
de nuevo editamos el archivo de ntop.conf par habilitarmo como demonio
#vi /etc/ntop.conf
=====================================================
### Sets program to run as a daemon
### NOTE: For more than casual use, you probably want this.
--daemon
=====================================================
# chkconfig ntop on
# service ntop start
checamos en nuestro navegador la información
https://mi_ip:3001
DISFRUTENLO
Snort, Apache, SSL, PHP, MySQL, Barnyard y BASE Instalado en RHEL 5
antes de comenzar hay que hacer una breve lectura al funcionamiento de snort, para comprender que es lo que podemos lograr con el y que no .
Manual de usuario http://www.Snort.org/docs/writing_rules/
Snort FAQ http://www.snort.org/snort/faq/
snort tiene 3 funcinamientos principales : puede ser utilizado como analizador de paquetes como tcpdump, como un colector de paquetes, o como un fuerte detector de intrusos. que a mi gusto no tiene nada que pedirle a los de firmas reconocidas .
Pre requisitos:
debemos tener instalado PHP,MySql,Apache y ntop
# yum –y install mysql mysql-bench mysql-server mysql-devel mysqlclient10 php-mysql httpd gcc pcre-devel php-gd gd mod_ssl glib2-devel gcc-c++ libpcap-devel php php-pear yum-utils
# chkconfig mysqld on
# chkconfig httpd on
# service httpd start
# service mysqld start
bajamos las aplicaciones necesarias
# mkdir ~/snort
# cd ~/snort
# wget http://dl.snort.org/snort-current/snort-2.8.5.1-1.RH5.i386.rpm
# wget http://dl.snort.org/snort-current/snort-2.8.5.1-1.RH5.i386.rpm.md5
# md5sum -c snort-2.8.5.1-1.RH5.i386.rpm.md5
# rpm -ivh snort-2.8.5.1-1.RH5.i386.rpm
para bajar las reglas debemos estar debidamente registrados, existen 2 modalidades, las reglas de suscripción y reglas de usuario registrado, para el ejemplo debemos bajar las de usuario registrado del sitio web https://www.snort.org/snort-rules/ para esto podemos usar links
ya que hemos bajado las reglas las copiamos a el directorio /etc/snort/rules
# tar –xvzf snortrules-snapshot-CURRENT.tar.gz
# cd ~/snort/snortrules-snapshot-CURRENT/rules/
# cp * /etc/snort/rules
editamos el archivo de configuración de snort
# vi /etc/snort/snort.conf
================================================================
var HOME_NET 10.0.0.0/24 # descomentamos y configuramos nuestro segmento de red
var EXTERNAL_NET !$HOME_NET # esto significa todo lo que no sea de tu red
var RULE_PATH /etc/snort/rules #verificamos que sea correcta la dirección
output alert_unified: filename snort.alert, limit 128 # descomentar
output log_unified: filename snort.log, limit 128 # descomentar
===============================================================
agregamos snort al chkconfig
# chkconfig snortd on
configuramos mysql
# mysql -u root
mysql mysql> SET PASSWORD FOR root@localhost=PASSWORD('root_password');
>Query OK, 0 rows affected (0.25 sec)
mysql> create database snort;
>Query OK, 1 row affected (0.01 sec)
mysql> grant INSERT,SELECT on root.* to snort@localhost;
>Query OK, 0 rows affected (0.02 sec)
mysql> SET PASSWORD FOR snort@localhost=PASSWORD('tu_pass_snort');
>Query OK, 0 rows affected (0.25 sec)
mysql> grant CREATE, INSERT, SELECT, DELETE, UPDATE on snort.* to snort@localhost;
>Query OK, 0 rows affected (0.02 sec)
mysql> grant CREATE, INSERT, SELECT, DELETE, UPDATE on snort.* to snort;
>Query OK, 0 rows affected (0.02 sec)
mysql> exit
>Bye
buscamos el archivo de tablas de snort para mysql
# rpm -ql snort | grep schemas
# mysql -u root -p < /usr/share/snort-2.8.5.1/schemas/create_mysql snort
descargamos barnyard que es un interprete de información de logs de snort a mysql
# wget http://dl.snort.org/barnyard/barnyard-0.2.0.tar.gz
# tar –xvzf barnyard-0.2.0.tar.gz
# cd barnyard-0.2.0
# ./configure --enable-mysql
# make
# make install
# cd etc/
# cp barnyard.conf /etc/snort
editamos el archivo /etc/snort/barnyard.conf y hacemos los siguientes cambios
# vi /etc/snort/barnyard.conf
descomentamos las siguientes lineas
============================================================
enable daemon mode
#estas lineas son informativas para el acid puedes poner lo que gustes
config hostname: snorthost
config interface: fxp0
#configuras con los datos dados en mysql las siguientes lineas
ooutput alert_acid_db: mysql, sensor_id 1, database snort, server localhost, user snort, password snort
output log_acid_db: mysql, database snort, server localhost, user snort, password snort, detail full
===========================================================
Tienes que crear un archivo de Waldo de barnyard . Haga lo siguiente
# snort -c /etc/snort/snort.conf
y dejar que llegue a la parte que dice: No utilizar PCAP_FRAMES, déjelo funcionar durante unos segundos y pulsa Ctrl + C para detenerlo. Buscar en /var/log/snort y podrás ver los archivos como este:
-rw------- 1 root root 16 Jun 21 07:06 snort.alert.1182427612
-rw------- 1 root root 24 Jun 21 07:06 snort.log.1182427612
generamos un archivo llamado /var/log/snort/barnyard.waldo
# vi touch /var/log/snort/barnyard.waldo
y agregamos el nombre del archivo snort.log.1182427612 de la siguiente manera:
=========================================
/var/log/snort snort.log 1182427612 0
========================================
bajamos el script de control de demonio de la siguiente direccion
# wget http://www.internetsecurityguru.com/barnyard
# cp barnyard /etc/init.d/
# chkconfig barnyard on
# service barnyard start
descargamos el paquere base y ADODB
# cd ~/snort
# wget http://easynews.dl.sourceforge.net/sourceforge/adodb/adodb480.tgz
# wget http://easynews.dl.sourceforge.net/sourceforge/secureideas/base-1.3.5.tar.gz
# cd /var/www/
# tar -xvzf ~/snort/adodb480.tgz
# cd /var/www/html
# tar –xvzf ~/snort/base-1.3.5.tar.gz
# mv base-1.3.5.tar.gz base
ajo con esta operación ya que permisos inadecuados puede ocasionar que el no se visualice correctamente.
copiamos el archivo de configuración base
# cp base_conf.php.dist conf.php
editamos el archivo
vi /var/www/html/base/config.php
===========================================
$BASE_urlpath = "/base";
$DBlib_path = "/var/www/adodb/ ";
$DBtype = "mysql";
$alert_dbname = "snort";
$alert_host = "localhost";
$alert_port = "";
$alert_user = "snort";
$alert_password = "password_from_snort_conf";
==============================================
ahora en un navegador de internet accesamos al sistema base
https://tu_ip_servidor/base
presionamos donde dice setup page .. y seguimos la intrucciones .
aseguramos la ruta con htpasswd
# mkdir /var/www/passwords
# /usr/bin/htpasswd -c /var/www/passwords/passwords base
agregamos las configuraciones en el servidor apache
y queda felizmente instalado nuestro detector de intrusos IDS/IPS
Manual de usuario http://www.Snort.org/docs/writing_rules/
Snort FAQ http://www.snort.org/snort/faq/
snort tiene 3 funcinamientos principales : puede ser utilizado como analizador de paquetes como tcpdump, como un colector de paquetes, o como un fuerte detector de intrusos. que a mi gusto no tiene nada que pedirle a los de firmas reconocidas .
Pre requisitos:
debemos tener instalado PHP,MySql,Apache y ntop
# yum –y install mysql mysql-bench mysql-server mysql-devel mysqlclient10 php-mysql httpd gcc pcre-devel php-gd gd mod_ssl glib2-devel gcc-c++ libpcap-devel php php-pear yum-utils
# chkconfig mysqld on
# chkconfig httpd on
# service httpd start
# service mysqld start
bajamos las aplicaciones necesarias
# mkdir ~/snort
# cd ~/snort
# wget http://dl.snort.org/snort-current/snort-2.8.5.1-1.RH5.i386.rpm
# wget http://dl.snort.org/snort-current/snort-2.8.5.1-1.RH5.i386.rpm.md5
# md5sum -c snort-2.8.5.1-1.RH5.i386.rpm.md5
# rpm -ivh snort-2.8.5.1-1.RH5.i386.rpm
para bajar las reglas debemos estar debidamente registrados, existen 2 modalidades, las reglas de suscripción y reglas de usuario registrado, para el ejemplo debemos bajar las de usuario registrado del sitio web https://www.snort.org/snort-rules/ para esto podemos usar links
ya que hemos bajado las reglas las copiamos a el directorio /etc/snort/rules
# tar –xvzf snortrules-snapshot-CURRENT.tar.gz
# cd ~/snort/snortrules-snapshot-CURRENT/rules/
# cp * /etc/snort/rules
editamos el archivo de configuración de snort
# vi /etc/snort/snort.conf
================================================================
var HOME_NET 10.0.0.0/24 # descomentamos y configuramos nuestro segmento de red
var EXTERNAL_NET !$HOME_NET # esto significa todo lo que no sea de tu red
var RULE_PATH /etc/snort/rules #verificamos que sea correcta la dirección
output alert_unified: filename snort.alert, limit 128 # descomentar
output log_unified: filename snort.log, limit 128 # descomentar
===============================================================
agregamos snort al chkconfig
# chkconfig snortd on
configuramos mysql
# mysql -u root
mysql mysql> SET PASSWORD FOR root@localhost=PASSWORD('root_password');
>Query OK, 0 rows affected (0.25 sec)
mysql> create database snort;
>Query OK, 1 row affected (0.01 sec)
mysql> grant INSERT,SELECT on root.* to snort@localhost;
>Query OK, 0 rows affected (0.02 sec)
mysql> SET PASSWORD FOR snort@localhost=PASSWORD('tu_pass_snort');
>Query OK, 0 rows affected (0.25 sec)
mysql> grant CREATE, INSERT, SELECT, DELETE, UPDATE on snort.* to snort@localhost;
>Query OK, 0 rows affected (0.02 sec)
mysql> grant CREATE, INSERT, SELECT, DELETE, UPDATE on snort.* to snort;
>Query OK, 0 rows affected (0.02 sec)
mysql> exit
>Bye
buscamos el archivo de tablas de snort para mysql
# rpm -ql snort | grep schemas
# mysql -u root -p < /usr/share/snort-2.8.5.1/schemas/create_mysql snort
descargamos barnyard que es un interprete de información de logs de snort a mysql
# wget http://dl.snort.org/barnyard/barnyard-0.2.0.tar.gz
# tar –xvzf barnyard-0.2.0.tar.gz
# cd barnyard-0.2.0
# ./configure --enable-mysql
# make
# make install
# cd etc/
# cp barnyard.conf /etc/snort
editamos el archivo /etc/snort/barnyard.conf y hacemos los siguientes cambios
# vi /etc/snort/barnyard.conf
descomentamos las siguientes lineas
============================================================
enable daemon mode
#estas lineas son informativas para el acid puedes poner lo que gustes
config hostname: snorthost
config interface: fxp0
#configuras con los datos dados en mysql las siguientes lineas
ooutput alert_acid_db: mysql, sensor_id 1, database snort, server localhost, user snort, password snort
output log_acid_db: mysql, database snort, server localhost, user snort, password snort, detail full
===========================================================
Tienes que crear un archivo de Waldo de barnyard . Haga lo siguiente
# snort -c /etc/snort/snort.conf
y dejar que llegue a la parte que dice: No utilizar PCAP_FRAMES, déjelo funcionar durante unos segundos y pulsa Ctrl + C para detenerlo. Buscar en /var/log/snort y podrás ver los archivos como este:
-rw------- 1 root root 16 Jun 21 07:06 snort.alert.1182427612
-rw------- 1 root root 24 Jun 21 07:06 snort.log.1182427612
generamos un archivo llamado /var/log/snort/barnyard.waldo
# vi touch /var/log/snort/barnyard.waldo
y agregamos el nombre del archivo snort.log.1182427612 de la siguiente manera:
=========================================
/var/log/snort snort.log 1182427612 0
========================================
bajamos el script de control de demonio de la siguiente direccion
# wget http://www.internetsecurityguru.com/barnyard
# cp barnyard /etc/init.d/
# chkconfig barnyard on
# service barnyard start
descargamos el paquere base y ADODB
# cd ~/snort
# wget http://easynews.dl.sourceforge.net/sourceforge/adodb/adodb480.tgz
# wget http://easynews.dl.sourceforge.net/sourceforge/secureideas/base-1.3.5.tar.gz
# cd /var/www/
# tar -xvzf ~/snort/adodb480.tgz
# cd /var/www/html
# tar –xvzf ~/snort/base-1.3.5.tar.gz
# mv base-1.3.5.tar.gz base
ajo con esta operación ya que permisos inadecuados puede ocasionar que el no se visualice correctamente.
copiamos el archivo de configuración base
# cp base_conf.php.dist conf.php
editamos el archivo
vi /var/www/html/base/config.php
===========================================
$BASE_urlpath = "/base";
$DBlib_path = "/var/www/adodb/ ";
$DBtype = "mysql";
$alert_dbname = "snort";
$alert_host = "localhost";
$alert_port = "";
$alert_user = "snort";
$alert_password = "password_from_snort_conf";
==============================================
ahora en un navegador de internet accesamos al sistema base
https://tu_ip_servidor/base
presionamos donde dice setup page .. y seguimos la intrucciones .
aseguramos la ruta con htpasswd
# mkdir /var/www/passwords
# /usr/bin/htpasswd -c /var/www/passwords/passwords base
agregamos las configuraciones en el servidor apache
y queda felizmente instalado nuestro detector de intrusos IDS/IPS
domingo, 29 de noviembre de 2009
Linux cluster con Heartbeat para servidores http
Este pequeno manual indica como configurar un Linux cluster con Heartbeat , ambos servidores deben tener configurado Apache como servidor web
Primer paso, configurar correctamente las interfaces de red de los sistemas de la siguiente manera.
# system-config-network
mostrara un menu que nos preguntara que tipo de interfaz requerimos configurar y seleccionamos ethernet, configuramos apropiadamente las configuraciones de red. para nuestro ejemplo asignaremos las ips a nuestros hosts 192.168.1.2 y 192.168.1.3
verificamos que el fully qualified domain name para verificar que este correctamente configurado.
Nota: podemos hacer uso de clusterssh para configurar múltiples servidores
# cssh nodo01 nodo02
# uname -n
descargamos los paquetes necesarios via yum
# yum -y install heartbeat
ahora tenemos que configurar los archivos authkeys, ha.cf y haresources si no los encuentra en el archivo /etc/ha.d hacemos lo siguiente
# rpm -ql heartbeat | grep doc
copiamos los archivos si no los genero
# cp /usr/share/doc/heartbeat-2.1.3/authkeys /etc/ha.d/
# cp /usr/share/doc/heartbeat-2.1.3/ha.cf /etc/ha.d/
# cp /usr/share/doc/heartbeat-2.1.3/haresources /etc/ha.d/
ahora editamos el archivo de autentificacion authkeys
# vi /etc/ha.d/authkeys
como lo recomienda el archivo de configuración seleccionamos la mejor opción
==================================
auth 2
#1 crc
2 sha1 una_clave
#3 md5 Hello!
==================================
cambiamos los permisos para mayor seguridad
# chmod 600 /etc/ha.d/authkeys
editamos el archivo ha.cf el cual es el mas importante
==================================
logfile /var/log/ha-log
logfacility local0
keepalive 2
deadtime 30
initdead 120
bcast eth0
udpport 694
auto_failback on
node node01
node node02
==================================
editamos el archivo /etc/ha.d/haresources
# vi vi /etc/ha.d/haresources
agregamos la siguiente linea
==================================
node01 192.168.1.4 httpd
==================================
Nota: si no utilizamos cssh debemos copiar los archivos a los servidores si no omitir el sig paso
# scp -r /etc/ha.d/ root@node02:/etc/
editamos el archivo de configuración de http
# vi vi /etc/httpd/conf/httpd.conf
cambiamos la configuracion de Listen en ambos nodos
================================
Listen 192.168.1.4:80
================================
agregamos el servio a chkconfig
# chkconfig heartbeat on
arrancamos el servcio
# service heartbeat start
podemos hacer pruebas editando el archivo index por default y bajamos los servicios de los servidores para verificar cuando entra cada uno
Primer paso, configurar correctamente las interfaces de red de los sistemas de la siguiente manera.
# system-config-network
mostrara un menu que nos preguntara que tipo de interfaz requerimos configurar y seleccionamos ethernet, configuramos apropiadamente las configuraciones de red. para nuestro ejemplo asignaremos las ips a nuestros hosts 192.168.1.2 y 192.168.1.3
verificamos que el fully qualified domain name para verificar que este correctamente configurado.
Nota: podemos hacer uso de clusterssh para configurar múltiples servidores
# cssh nodo01 nodo02
# uname -n
descargamos los paquetes necesarios via yum
# yum -y install heartbeat
ahora tenemos que configurar los archivos authkeys, ha.cf y haresources si no los encuentra en el archivo /etc/ha.d hacemos lo siguiente
# rpm -ql heartbeat | grep doc
copiamos los archivos si no los genero
# cp /usr/share/doc/heartbeat-2.1.3/authkeys /etc/ha.d/
# cp /usr/share/doc/heartbeat-2.1.3/ha.cf /etc/ha.d/
# cp /usr/share/doc/heartbeat-2.1.3/haresources /etc/ha.d/
ahora editamos el archivo de autentificacion authkeys
# vi /etc/ha.d/authkeys
como lo recomienda el archivo de configuración seleccionamos la mejor opción
==================================
auth 2
#1 crc
2 sha1 una_clave
#3 md5 Hello!
==================================
cambiamos los permisos para mayor seguridad
# chmod 600 /etc/ha.d/authkeys
editamos el archivo ha.cf el cual es el mas importante
==================================
logfile /var/log/ha-log
logfacility local0
keepalive 2
deadtime 30
initdead 120
bcast eth0
udpport 694
auto_failback on
node node01
node node02
==================================
editamos el archivo /etc/ha.d/haresources
# vi vi /etc/ha.d/haresources
agregamos la siguiente linea
==================================
node01 192.168.1.4 httpd
==================================
Nota: si no utilizamos cssh debemos copiar los archivos a los servidores si no omitir el sig paso
# scp -r /etc/ha.d/ root@node02:/etc/
editamos el archivo de configuración de http
# vi vi /etc/httpd/conf/httpd.conf
cambiamos la configuracion de Listen en ambos nodos
================================
Listen 192.168.1.4:80
================================
agregamos el servio a chkconfig
# chkconfig heartbeat on
arrancamos el servcio
# service heartbeat start
podemos hacer pruebas editando el archivo index por default y bajamos los servicios de los servidores para verificar cuando entra cada uno
Nmap Parte 1
Nmap es un mapeador de red de codigo abierto, que permite hacer evaluaciones de seguridad y adutoria de redes su estructura de comando es la siguiente nmap [ ...] [ ] { }, nmap puede ser utilizado con proxychains para encubrir nuestra ubicacion original para comenzar nuestra explicacion incluire las opcines disponibles en nmap
# nmap --help
==============================================================================
ESPECIFICACIÓN DE OBJETIVO:
Se pueden indicar nombres de sistema, direcciones IP, redes, etc.
Ej: scanme.nmap.org, microsoft.com/24, 192.168.0.1; 10.0.0-255.1-254
-iL: Lee una lista de sistemas/redes del archivo.
-iR: Selecciona objetivos al azar
--exclude: Excluye ciertos sistemas o redes
--excludefile: Excluye los sistemas indicados en el fichero
DESCUBRIMIENTO DE HOSTS:
-sL: Sondeo de lista - Simplemente lista los objetivos a analizar
-sP: Sondeo Ping - Sólo determina si el objetivo está vivo
-P0: Asume que todos los objetivos están vivos
-PN: Asume que todos los objetivos están vivos -- skip host discovery
-PS/PA/PU [listadepuertos]: Análisis TCP SYN, ACK o UDP de los puertos indicados
-PE/PP/PM: Solicita un análisis ICMP del tipo echo, marca de fecha y máscara de red
-n/-R: No hacer resolución DNS / Siempre resolver [por omisión: a veces]
--dns-servers: Especificar servidores DNS específicos
--system-dns: Utilizar la resolución del sistema operativo
TÉCNICAS DE ANÁLISIS:
-sS/sT/sA/sW/sM: Análisis TCP SYN/Connect()/ACK/Window/Maimon
-sN/sF/sX: Análisis TCP Null, FIN, y Xmas
--scanflags: Personalizar los indicadores TCP a utilizar
-sI: Análisis pasivo («Idle», N. del T.)
-sO: Análisis de protocolo IP
-b: Análisis por rebote FTP
ESPECIFICACIÓN DE PUERTOS Y ORDEN DE ANÁLISIS:
-p: Sólo sondear los puertos indicados
Ej: -p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080
-F: Rápido - Analizar sólo los puertos listados en el archivo nmap-services
-r: Analizar los puertos secuencialmente, no al azar.
DETECCIÓN DE SERVICIO/VERSIÓN:
-sV: Sondear puertos abiertos, para obtener información de servicio/versión
--version-intensity: Fijar de 0 (ligero) a 9 (probar todas las sondas)
--version-light: Limitar a las sondas más probables (intensidad 2)
--version-all: Utilizar todas las sondas (intensidad 9)
--version-trace: Presentar actividad detallada del análisis (para depurar)
DETECCIÓN DE SISTEMA OPERATIVO
-O: Activar la detección de sistema operativo (SO)
--osscan-limit: Limitar la detección de SO a objetivos prometedores
--osscan-guess: Adivinar el SO de la forma más agresiva
TEMPORIZADO Y RENDIMIENTO:
-T[0-5]: Seleccionar plantilla de temporizado (los números altos son más rápidos)
--min-hostgroup/max-hostgroup: Paralelizar los sondeos
--min-parallelism/max-parallelism: Paralelización de sondeos
--min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout: Indica
el tiempo de ida y vuelta de la sonda
--max-retries: Limita el número máximo de retransmisiones de las
sondas de análisis de puertos
--host-timeout: Abandonar un objetivo pasado este tiempo
--scan-delay/--max-scan-delay: Ajusta el retraso entre sondas
EVASIÓN Y FALSIFICACIÓN PARA CORTAFUEGOS/IDS:
-f; --mtu: fragmentar paquetes (opc. con el MTU indicado)
-D: Disimular el análisis con señuelos
N. del T.: «ME» es «YO» mismo.
-S: Falsificar la dirección IP origen
-e: Utilizar la interfaz indicada
-g/--source-port: Utilizar el número de puerto dado
--data-length: Agregar datos al azar a los paquetes enviados
--ttl: Fijar el valor del campo time-to-live (TTL) de IP
--spoof-mac: Falsificar la dirección MAC
--badsum: Enviar paquetes con una suma de comprobación TCP/UDP falsa
SALIDA:
-oN/-oX/-oS/-oG: Guardar el sondeo en formato normal, XML,
s|< rIpt kIddi3 (n3n3b4n4n4), y Grepeable (para usar con grep(1), N. del T.), respectivamente, al archivo indicado. -oA: Guardar en los tres formatos principales al mismo tiempo
-v: Aumentar el nivel de mensajes detallados (-vv para aumentar el efecto)
-d[nivel]: Fijar o incrementar el nivel de depuración (Tiene sentido hasta 9)
--packet-trace: Mostrar todos los paquetes enviados y recibidos
--iflist: Mostrar interfaces y rutas (para depurar)
--append-output: Agregar, en vez de sobreescribir, a los archivos indicados con -o.
--resume: Retomar un análisis abortado/detenido
--stylesheet: Convertir la salida XML a HTML según la hoja de estilo
XSL indicada
--webxml: Referenciar a la hoja de estilo de Insecure.Org para tener un XML más portable
--no_stylesheet: No asociar la salida XML con ninguna hoja de estilos XSL
MISCELÁNEO:
-6: Habilitar análisis IPv6
-A: Habilita la detección de SO y de versión
--datadir: Indicar la ubicación de los archivos de datos Nmap
personalizados.
--send-eth/--send-ip: Enviar paquetes utilizando tramas Ethernet o paquetes IP
"crudos"
--privileged: Asumir que el usuario tiene todos los privilegios
-V: Muestra el número de versión
-h: Muestra esta página resumen de la ayuda.
EJEMPLOS:
nmap -v -A scanme.nmap.org
nmap -v -sP 192.168.0.0/16 10.0.0.0/8
nmap -v -iR 10000 -P0 -p 80
==============================================================================
si requerimos saber mas acerca de nmpa podemos solicitar el man que nos explicara a fondo el funcionamiento
#man nmap
Entradas de objetivos
nmap puede aceptar objetivos individuales por segmento o segmentos de red por ejemplo
# proxychains nmap 192.168.1.2 192.168.0.0/24 192.168.3-6,10.0/24 ejmplo.com
nmap permite la entrada de archivos como objetivos y excluir objetivos por ejemplo
# proxychains nmap -iL objetivos.txt --excludefile excluir.txt -iR 100
Descubrimiento de objetivos .
Para un administrador de sistemas, el asegurar sus activos principales puede ser un objetivo basico, para un auditor de seguridad cualquier objetivo es una oportunidad de amenaza. Nmap puede generar sondas desde el exterior que permitan descubrir cualquier activo en el interior de una red. para lo cual podemos utilizar todas las capacidades que nos brinda nmap como son sondas, ACK,SYN,FIN,ICMP,UDP,TCP,ETC.
Nmap muestra 7 respuestas posibles a un reconocimiento.
Abieto : Una aplicación acepta conexiones TCP o paquetes UDP en este puerto
Cerrado : Un puerto cerrado es accesible: recibe y responde a las sondas de Nmap, pero no tiene una aplicación escuchando en él
filtrado: Nmap no puede determinar si el puerto se encuentra abierto porque un filtrado de paquetes previene que sus sondas alcancen el puerto.
No filtrado: Este estado indica que el puerto es accesible, pero que Nmap no puede determinar si se encuentra abierto o cerrado.
Abierto|Filtrado :Nmap marca a los puertos en este estado cuando no puede determinar si el puerto se encuentra abierto o filtrado.
Cerrado|Filtrado : Este estado se utiliza cuando Nmap no puede determinar si un puerto se encuentra cerrado o filtrado, y puede aparecer aparecer sólo durante un sondeo IPID pasivo.
Aunque Nmap intenta generar resultados precisos, hay que tener en cuenta que estos resultados se basan en los paquetes que devuelve el sistema objetivo (o los cortafuegos que están delante de éstos). Estos sistemas pueden no ser fiables y envíar respuestas cuyo objetivo sea confundir a Nmap.
hacemos un ejemplo de como determinar si un sistema esta vivo.
# proxychains nmap -v -sP 192.168.0/24
muestra informacion sobre los puertos abiertos
# proxychains nmap -v -PS 80 192.168.0.0/24
muestra informacion del sistema operativo y puertos abiertos
# proxychains nmap -v -sV -O 192.168.0.0/24
realizar un analisis solo puertos contenidos en el service
#proxychains nmap -v -F -PN -O 192.168.0.0/24
realizar un analisis de enumeracion con una ip falsa
# proxychains -nmap -v -F -O 192.168.0.0/24 -S 192.168.1.1
realizar un analisis de enumeraion con una interfaz falsa y direccion mac falsa
# proxychains -nmap -v -F -O 192.168.0.0/24 -e eth0 --spoof-mac 00:00:00:00:00
lanzamos un analisis de enumeracion tipo tcp, sin resolver DNS, en los puertos asignados
# proxychains nmap -sT -PN -n -sV -O -p 21,22,53,80,110,139,143,443
contramedida para este tipo de analisis es configurar un equipo detector de intrusos, desgraciadamente poca gente sabemos con funciona corectamente, pero en sesiones posteriores mostraremos como configurarlo .
# nmap --help
==============================================================================
ESPECIFICACIÓN DE OBJETIVO:
Se pueden indicar nombres de sistema, direcciones IP, redes, etc.
Ej: scanme.nmap.org, microsoft.com/24, 192.168.0.1; 10.0.0-255.1-254
-iL
-iR
--exclude
--excludefile
DESCUBRIMIENTO DE HOSTS:
-sL: Sondeo de lista - Simplemente lista los objetivos a analizar
-sP: Sondeo Ping - Sólo determina si el objetivo está vivo
-P0: Asume que todos los objetivos están vivos
-PN: Asume que todos los objetivos están vivos -- skip host discovery
-PS/PA/PU [listadepuertos]: Análisis TCP SYN, ACK o UDP de los puertos indicados
-PE/PP/PM: Solicita un análisis ICMP del tipo echo, marca de fecha y máscara de red
-n/-R: No hacer resolución DNS / Siempre resolver [por omisión: a veces]
--dns-servers
--system-dns: Utilizar la resolución del sistema operativo
TÉCNICAS DE ANÁLISIS:
-sS/sT/sA/sW/sM: Análisis TCP SYN/Connect()/ACK/Window/Maimon
-sN/sF/sX: Análisis TCP Null, FIN, y Xmas
--scanflags
-sI
-sO: Análisis de protocolo IP
-b
ESPECIFICACIÓN DE PUERTOS Y ORDEN DE ANÁLISIS:
-p
Ej: -p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080
-F: Rápido - Analizar sólo los puertos listados en el archivo nmap-services
-r: Analizar los puertos secuencialmente, no al azar.
DETECCIÓN DE SERVICIO/VERSIÓN:
-sV: Sondear puertos abiertos, para obtener información de servicio/versión
--version-intensity
--version-light: Limitar a las sondas más probables (intensidad 2)
--version-all: Utilizar todas las sondas (intensidad 9)
--version-trace: Presentar actividad detallada del análisis (para depurar)
DETECCIÓN DE SISTEMA OPERATIVO
-O: Activar la detección de sistema operativo (SO)
--osscan-limit: Limitar la detección de SO a objetivos prometedores
--osscan-guess: Adivinar el SO de la forma más agresiva
TEMPORIZADO Y RENDIMIENTO:
-T[0-5]: Seleccionar plantilla de temporizado (los números altos son más rápidos)
--min-hostgroup/max-hostgroup
--min-parallelism/max-parallelism
--min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout
el tiempo de ida y vuelta de la sonda
--max-retries
sondas de análisis de puertos
--host-timeout
--scan-delay/--max-scan-delay
EVASIÓN Y FALSIFICACIÓN PARA CORTAFUEGOS/IDS:
-f; --mtu
-D
N. del T.: «ME» es «YO» mismo.
-S
-e
-g/--source-port
--data-length
--ttl
--spoof-mac
--badsum: Enviar paquetes con una suma de comprobación TCP/UDP falsa
SALIDA:
-oN/-oX/-oS/-oG
s|< rIpt kIddi3 (n3n3b4n4n4), y Grepeable (para usar con grep(1), N. del T.), respectivamente, al archivo indicado. -oA
-v: Aumentar el nivel de mensajes detallados (-vv para aumentar el efecto)
-d[nivel]: Fijar o incrementar el nivel de depuración (Tiene sentido hasta 9)
--packet-trace: Mostrar todos los paquetes enviados y recibidos
--iflist: Mostrar interfaces y rutas (para depurar)
--append-output: Agregar, en vez de sobreescribir, a los archivos indicados con -o.
--resume
--stylesheet
XSL indicada
--webxml: Referenciar a la hoja de estilo de Insecure.Org para tener un XML más portable
--no_stylesheet: No asociar la salida XML con ninguna hoja de estilos XSL
MISCELÁNEO:
-6: Habilitar análisis IPv6
-A: Habilita la detección de SO y de versión
--datadir
personalizados.
--send-eth/--send-ip: Enviar paquetes utilizando tramas Ethernet o paquetes IP
"crudos"
--privileged: Asumir que el usuario tiene todos los privilegios
-V: Muestra el número de versión
-h: Muestra esta página resumen de la ayuda.
EJEMPLOS:
nmap -v -A scanme.nmap.org
nmap -v -sP 192.168.0.0/16 10.0.0.0/8
nmap -v -iR 10000 -P0 -p 80
==============================================================================
si requerimos saber mas acerca de nmpa podemos solicitar el man que nos explicara a fondo el funcionamiento
#man nmap
Entradas de objetivos
nmap puede aceptar objetivos individuales por segmento o segmentos de red por ejemplo
# proxychains nmap 192.168.1.2 192.168.0.0/24 192.168.3-6,10.0/24 ejmplo.com
nmap permite la entrada de archivos como objetivos y excluir objetivos por ejemplo
# proxychains nmap -iL objetivos.txt --excludefile excluir.txt -iR 100
Descubrimiento de objetivos .
Para un administrador de sistemas, el asegurar sus activos principales puede ser un objetivo basico, para un auditor de seguridad cualquier objetivo es una oportunidad de amenaza. Nmap puede generar sondas desde el exterior que permitan descubrir cualquier activo en el interior de una red. para lo cual podemos utilizar todas las capacidades que nos brinda nmap como son sondas, ACK,SYN,FIN,ICMP,UDP,TCP,ETC.
Nmap muestra 7 respuestas posibles a un reconocimiento.
Abieto : Una aplicación acepta conexiones TCP o paquetes UDP en este puerto
Cerrado : Un puerto cerrado es accesible: recibe y responde a las sondas de Nmap, pero no tiene una aplicación escuchando en él
filtrado: Nmap no puede determinar si el puerto se encuentra abierto porque un filtrado de paquetes previene que sus sondas alcancen el puerto.
No filtrado: Este estado indica que el puerto es accesible, pero que Nmap no puede determinar si se encuentra abierto o cerrado.
Abierto|Filtrado :Nmap marca a los puertos en este estado cuando no puede determinar si el puerto se encuentra abierto o filtrado.
Cerrado|Filtrado : Este estado se utiliza cuando Nmap no puede determinar si un puerto se encuentra cerrado o filtrado, y puede aparecer aparecer sólo durante un sondeo IPID pasivo.
Aunque Nmap intenta generar resultados precisos, hay que tener en cuenta que estos resultados se basan en los paquetes que devuelve el sistema objetivo (o los cortafuegos que están delante de éstos). Estos sistemas pueden no ser fiables y envíar respuestas cuyo objetivo sea confundir a Nmap.
hacemos un ejemplo de como determinar si un sistema esta vivo.
# proxychains nmap -v -sP 192.168.0/24
muestra informacion sobre los puertos abiertos
# proxychains nmap -v -PS 80 192.168.0.0/24
muestra informacion del sistema operativo y puertos abiertos
# proxychains nmap -v -sV -O 192.168.0.0/24
realizar un analisis solo puertos contenidos en el service
#proxychains nmap -v -F -PN -O 192.168.0.0/24
realizar un analisis de enumeracion con una ip falsa
# proxychains -nmap -v -F -O 192.168.0.0/24 -S 192.168.1.1
realizar un analisis de enumeraion con una interfaz falsa y direccion mac falsa
# proxychains -nmap -v -F -O 192.168.0.0/24 -e eth0 --spoof-mac 00:00:00:00:00
lanzamos un analisis de enumeracion tipo tcp, sin resolver DNS, en los puertos asignados
# proxychains nmap -sT -PN -n -sV -O -p 21,22,53,80,110,139,143,443
contramedida para este tipo de analisis es configurar un equipo detector de intrusos, desgraciadamente poca gente sabemos con funciona corectamente, pero en sesiones posteriores mostraremos como configurarlo .
sábado, 28 de noviembre de 2009
Como configurar proxychains para pruebas de seguridad
es una herramiente que forza las conexiones tcp a salir por un servidor proxy como TOR o cualquier otro como SOCKS4 SOCKS5 o HTTP proxy para instalarlo bajamos la aplicacion
configuramos los depositos yum de dag wieers y fedora
instalamos la aplicacion con yum
# yum -y install proxychains
respaldamos nuestra configuracion original
# cp /etc/proxychains.conf /etc/proxychains.conf.old
limpiamos el archivo de comentarios y espacios en blanco
# sed -e '/^#/d' /etc/proxychains.conf.old | sed -e '/^$/d' > /etc/proxychains.conf
hacemos una busqueda en internet por proxys que esten disponibles pongo un ejemplo de mi archivo
random_chain
chain_len = 2
tcp_read_time_out 15000
tcp_connect_time_out 10000
[ProxyList]
http 127.0.0.1 8118 # utiliza privoxy local
socks4 127.0.0.1 9050 # utiliza privoxy local
http 59.39.145.178 3128
http 174.142.24.201 3128
http 190.14.246.42 3128
http 200.41.230.102 3128
http 121.14.157.36 80
http 200.174.85.195 3128
http 65.23.153.95 3128
http 200.107.15.58 80
http 201.161.46.38 8080
http 141.85.118.1 80
http 63.97.171.151 80
y podemos ejecutar aplicaciones via proxychains sin ser descubiertos facilmente
# proxychains nmap -sT -PN -n -sV -p sitio.com
# proxychains telnet sitio.com:25
este es excelente para realizar pruebas de penetracion en tus equipos . mas adelante les informare acerca de uso de nmap como herramienta de de evaluacion de seguridad
configuramos los depositos yum de dag wieers y fedora
instalamos la aplicacion con yum
# yum -y install proxychains
respaldamos nuestra configuracion original
# cp /etc/proxychains.conf /etc/proxychains.conf.old
limpiamos el archivo de comentarios y espacios en blanco
# sed -e '/^#/d' /etc/proxychains.conf.old | sed -e '/^$/d' > /etc/proxychains.conf
hacemos una busqueda en internet por proxys que esten disponibles pongo un ejemplo de mi archivo
random_chain
chain_len = 2
tcp_read_time_out 15000
tcp_connect_time_out 10000
[ProxyList]
http 127.0.0.1 8118 # utiliza privoxy local
socks4 127.0.0.1 9050 # utiliza privoxy local
http 59.39.145.178 3128
http 174.142.24.201 3128
http 190.14.246.42 3128
http 200.41.230.102 3128
http 121.14.157.36 80
http 200.174.85.195 3128
http 65.23.153.95 3128
http 200.107.15.58 80
http 201.161.46.38 8080
http 141.85.118.1 80
http 63.97.171.151 80
y podemos ejecutar aplicaciones via proxychains sin ser descubiertos facilmente
# proxychains nmap -sT -PN -n -sV -p sitio.com
# proxychains telnet sitio.com:25
este es excelente para realizar pruebas de penetracion en tus equipos . mas adelante les informare acerca de uso de nmap como herramienta de de evaluacion de seguridad
Como configurar TOR para navegar anonimo
Tor es un proyecto software que le ayuda a defenderse contra el análisis de tráfico, una forma de vigilancia de la red que amenaza la libertad personal y la privacidad, la confidencialidad en los negocios y relaciones, y la seguridad del estado. Tor le protege transmitiendo sus comunicaciones a través de una red distribuída de repetidores llevados por voluntarios de todo el mundo: evita que alguien que observa su conexión a Internet aprenda qué sitios visita, y evita que los sitios que visita aprendan su posición física. Tor funciona con muchas de sus aplicaciones existentes, incluyendo navegadores web, clientes de mensajería instantánea, acceso remoto, y otras aplicaciones basadas en el protocolo TCP.
primer paso :
descargar el aplicartivo del sitio .
# wget http://www.torproject.org/dist/rpm/tor-0.2.1.20-tor.0.rh5_3.i386.rpm
# wget http://www.torproject.org/dist/rpm/tor-0.2.1.20-tor.0.rh5_3.i386.rpm.asc
# md5sum -c tor-0.2.1.20-tor.0.rh5_3.i386.rpm.asc
# rpm -ivh tor-0.2.1.20-tor.0.rh5_3.i386.rpm
descargamos la aplicacion de privoxy
#wget http://sourceforge.net/projects/ijbswa/files/Sources/3.0.12%20%28stable%29/privoxy-3.0.12-stable-src.tar.gz
#wget http://sourceforge.net/projects/ijbswa/files/Sources/3.0.12%20%28stable%29/privoxy-3.0.12-stable-src.tar.gz.asc
#md5sum -c privoxy-3.0.12-stable-src.tar.gz.asc
descomprimimos el paquete y comlilamos .
# tar -xvzf privoxy-3.0.12-stable-src.tar.gz
# cd privoxy-3.0.12-stable
# ./configure
# make
# make install
editamos el archivo /etc/privoxy/config
# vi /etc/privoxy/config
añada la línea
forward-socks4a / 127.0.0.1:9050 .
al principio del fichero de configuración. No se olvide de añadir el punto al final.
Privoxy mantiene un fichero de log de todo lo que pasa a su través. Para evitar esto tendrá que comentar tres líneas insertando un # antes de la línea. Las tres líneas son:
logfile logfile
jarfile jarfile
y (en algunos sistemas) la línea
debug 1 # show each GET/POST/CONNECT request
Dependiendo de qué fichero de configuración por defecto tenga para Privoxy, puede que también tenga que desactivar enable-remote-toggle, enable-remote-http-toggle, y enable-edit-actions.
el archivo queda mas o menos de esta forma
=============================================
forward-socks4a / 127.0.0.1:9050 .
confdir /etc/privoxy
logdir /var/log/privoxy
actionsfile standard.action # Internal purpose, recommended
actionsfile global.action # Global default setting for all sites
actionsfile default.action # Main actions file
actionsfile user.action # User customizations
filterfile default.filter
listen-address 127.0.0.1:8118
toggle 1
enforce-blocks 0
buffer-limit 4096
forwarded-connect-retries 0
accept-intercepted-requests 0
allow-cgi-request-crunching 0
split-large-forms 0
=============================================
arrancamos el servicio de privoxy
# service privoxy restart
siguiente paso es configurar el firefox con el plug-in de TOR desgargandolo del siguiente
sitio .
finalmente reiniciamos nuestro navegador de internet, presionamos el boton que parace en la parte inferior derecha, ingresamos a google y nos mostrara que nos encontramos en otro pais distinto al nuestro
primer paso :
descargar el aplicartivo del sitio .
# wget http://www.torproject.org/dist/rpm/tor-0.2.1.20-tor.0.rh5_3.i386.rpm
# wget http://www.torproject.org/dist/rpm/tor-0.2.1.20-tor.0.rh5_3.i386.rpm.asc
# md5sum -c tor-0.2.1.20-tor.0.rh5_3.i386.rpm.asc
# rpm -ivh tor-0.2.1.20-tor.0.rh5_3.i386.rpm
descargamos la aplicacion de privoxy
#wget http://sourceforge.net/projects/ijbswa/files/Sources/3.0.12%20%28stable%29/privoxy-3.0.12-stable-src.tar.gz
#wget http://sourceforge.net/projects/ijbswa/files/Sources/3.0.12%20%28stable%29/privoxy-3.0.12-stable-src.tar.gz.asc
#md5sum -c privoxy-3.0.12-stable-src.tar.gz.asc
descomprimimos el paquete y comlilamos .
# tar -xvzf privoxy-3.0.12-stable-src.tar.gz
# cd privoxy-3.0.12-stable
# ./configure
# make
# make install
editamos el archivo /etc/privoxy/config
# vi /etc/privoxy/config
añada la línea
forward-socks4a / 127.0.0.1:9050 .
al principio del fichero de configuración. No se olvide de añadir el punto al final.
Privoxy mantiene un fichero de log de todo lo que pasa a su través. Para evitar esto tendrá que comentar tres líneas insertando un # antes de la línea. Las tres líneas son:
logfile logfile
jarfile jarfile
y (en algunos sistemas) la línea
debug 1 # show each GET/POST/CONNECT request
Dependiendo de qué fichero de configuración por defecto tenga para Privoxy, puede que también tenga que desactivar enable-remote-toggle, enable-remote-http-toggle, y enable-edit-actions.
el archivo queda mas o menos de esta forma
=============================================
forward-socks4a / 127.0.0.1:9050 .
confdir /etc/privoxy
logdir /var/log/privoxy
actionsfile standard.action # Internal purpose, recommended
actionsfile global.action # Global default setting for all sites
actionsfile default.action # Main actions file
actionsfile user.action # User customizations
filterfile default.filter
listen-address 127.0.0.1:8118
toggle 1
enforce-blocks 0
buffer-limit 4096
forwarded-connect-retries 0
accept-intercepted-requests 0
allow-cgi-request-crunching 0
split-large-forms 0
=============================================
arrancamos el servicio de privoxy
# service privoxy restart
siguiente paso es configurar el firefox con el plug-in de TOR desgargandolo del siguiente
sitio .
finalmente reiniciamos nuestro navegador de internet, presionamos el boton que parace en la parte inferior derecha, ingresamos a google y nos mostrara que nos encontramos en otro pais distinto al nuestro
Configurar Open Vpn para generar redes con Prodigy - DynDns
#OpenVpn es una aplicación poderosa para generar redes privadas virtuales de bajo costo y alto rendimiento, es utilizado comúnmente para conectar múltiples puntos distantes en nuestra organización, dar acceso a usuarios móviles. OpenVpn operan en capa 2 y 3 del modelo osi, en la parte de seguridad ofrece 2 métodos de encripatacion de los enlaces , uno es por llaves simétricas y otra por llaves asimétricas, la diferencia entre ellas es que las simetricas, se utiliza la misma llave para encriptar y decriptar, y en asimétricas se utiliza la llave privada para encriptar y la publica para desencriptar . lo cual proporciona autenticidad e integridad.
Ventajas :
Conexiones OpenVPN pueden ser realizadas a través de casi cualquier firewall
Solo un puerto en el firewall debe ser abierto para permitir conexiones, dado que desde OpenVPN 2.0 se permiten múltiples conexiones en el mismo puerto TCP o UDP
Las interfaces virtuales (tun0, tun1, etc.) permiten la implementación de reglas de firewall muy específicas
Soporte transparente para IPs dinámicas. Se elimina la necesidad de usar direcciones IP estáticas en ambos lados del túnel
Desventaja:
No tiene compatibilidad con IPsec que justamente es el estándar actual para soluciones VPN
Todavía existe poca gente que conoce como usar OpenVPN
configuramos los depósitos yum
#rpm -Uhv http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
# rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm
Instalamos las paqueterias necesaria
# yum -y install openvpn openssl
ubicamos donde se guardan los archivos de easy-rsa
# rpm -ql openvpn | grep easy-rsa
copiamos dentro del directorio /etc/openvpn/ los archivos openssl.cnf, whichopensslcnf, pkitool y vars, que se localizan en /usr/share/openvpn/easy-rsa/2.0/ (esta ruta puede cambiar y es obtenida con el comando anterior )
# cp /usr/share/openvpn/easy-rsa/2.0/openssl.cnf /etc/openvpn
# cp /usr/share/openvpn/easy-rsa/2.0/whichopensslcnf /etc/openvpn
# cp /usr/share/openvpn/easy-rsa/2.0/pkitool /etc/openvpn
# cp /usr/share/openvpn/easy-rsa/2.0/vars /etc/openvpn
editamos el archivo /etc/openvpn/vars las variables " KEY_COUNTRY,KEY_PROVINCE, KEY_CITY, KEY_ORG, KEY_EMAIL "
# vi /etc/openvpn/vars
export KEY_COUNTRY="MI_PAIS"
export KEY_PROVINCE="MI_ESTADO"
export KEY_CITY="MI_CIUDAD"
export KEY_ORG="MI_ORGANIZACION"
export KEY_EMAIL="MICUENT@_DE_CORREO"
cargamos los cambios en las variables de la siguiente manera
# source ./vars
ejecutamos el script de limpia para prevenir que cualquier otra llave este en el folder
# sh /usr/share/openvpn/easy-rsa/2.0/clean-all
ejecutamos el escrip de generación del certificado, si no existe el folder keys lo generara .
# sh /usr/share/openvpn/easy-rsa/2.0/build-ca
generamos las firmas digitales para el servidor
# sh /usr/share/openvpn/easy-rsa/2.0/build-dh
# sh /usr/share/openvpn/easy-rsa/2.0/build-key-server matriz
generamos las llaves asimétricas para los clientes que se conectaran
# sh /usr/share/openvpn/easy-rsa/2.0/build-key sucursal1
# sh /usr/share/openvpn/easy-rsa/2.0/build-key sucursal2
# sh /usr/share/openvpn/easy-rsa/2.0/build-key sucursalN
copiamos el archivo de configuración de ejemplo que se encuentra en /usr/share/doc/openvpn-2.1/sample-config-file/
# cp /usr/share/doc/openvpn-2.1/sample-config-file/server.conf ./
editamos el archivo con nuestras configuraciones
# vi /etc/openvpn/server.conf
========================================
port 1194
proto udp
dev tun
ca keys/ca.crt
cert keys/matriz.crt
key keys/matriz.key
dh keys/dh1024.pem
server 10.0.0.2 255.255.255.0
ifconfig-pool-persist ipp.txt
keepalive 10 120
comp-lzo
persist-key
persist-tun
status server.log
verb 3
========================================
en caso de tener activado se linux debemos otorgarle permiso
# restorecon -R /etc/openvpn/
creamos los archivos de con server.log y ipp.txt
# cd /etc/openvpn/
# touch /etc/openvpn/ipp.txt
# touch /etc/openvpn/server.log
asignamos propiedades de lectura/escritura a los archivos
# chcon -u system_u -r object_r -t openvpn_etc_rw_t /etc/openvpn/ipp.txt
# chcon -u system_u -r object_r -t openvpn_etc_rw_t /etc/openvpn/server.log
agregamos el servicio al chkconf
# chkconf openvpn on
generamos el archivo remoto para indicar que esas rutas seran utilizadas para la salida de paquetes
Iniciamos el servicio de openvpn
# service openvpn start
para el cliente en linux , seguimos los mismos pasos de instalacion .
copiamos el archivo cliente.conf
# cp /usr/share/doc/openvpn-2.1/sample-config-file/cliente.conf ./
editamos el archivo de configuración de cliente
# vi /etc/openvpn/cliente.conf
========================================
client
dev tun
proto udp
remote IP_SERVIDOR_O_NOMBRE_DOMININIO
float
resolv-retry infinite
nobind
persist-key
persist-tun
ca key/ca.crt
cert key/sucursal1.crt
key key/sucursal1.key
ns-cert-type matriz
comp-lzo
verb 3
========================================
copiamos los archivos sucursal1.crt y sucursal1.key al cliente .
# scp -P 22 sucursal.* usuario@ip_cliente:/etc/openvpn/
creamos el archivo matriz.up que nos dara la ruta de salida a nuestra red coporativa
Iniciamos el servicio de openvpn
# service openvpn restart
adecuamos nuestros firewalls para permitir conecciones
editamos el archivo de zonas en el shorewall
# vi /etc/shorewall/zones
agregamos la siguiente linea
===================================
vpn ipv4
===================================
editamos el archivo de interfaces
#vi /etc/shorewall/interfaces
agregamos la siguiente linea
===================================
vpn tun+ detect
===================================
editamos el archivo de politicas del shorewall
#vi /etc/shorewall/policy
agregamos los permisas para compartir las redes .
===================================
vpn $FW ACCEPT
vpn loc ACCEPT
loc vpn ACCEPT
$FW vpn ACCEPT
===================================
editamos el archivo de reglas
# vi /etc/shorewall/rules
agregamos la siguiente linea ( tambien podemos hacer un macro.OPENVPN )
===================================
ACCEPT net $FW udp 1194
===================================
finalmente agregamos la ruta al archivo de tunnels para que permita hacer conexiones a la vpn de cualquier ubicacion .
# vi /etc/shorewall/tunnles
agregamos la siguiente linea
===================================
openvpnserver:1194 vpn 0.0.0.0/0
===================================
configuramos una cuenta y descargamos de DynDns.org el archivo ddclient
# wget http://cdn.dyndns.com/ddclient.tar.gz
descomprimimos el archivo
# tar -xvzf ddclient.tar.gz
copiamos el script ddcliente al /usr/sbin/
# cp ddclient /usr/sbin/
creamos un folder en /etc/ddclient para guardas las configuracions y copiamos el ejemplo
# mkdir /etc/ddclient
# cp sample-etc_ddclient.conf /etc/ddclient/ddclient.conf
editamos el achivo de configuraciones
# vi /etc/ddclient/ddclient.conf
congiramos hostnames, logins y passwords, descomentamos las lineas de nuestro routey las lineas del servicio de dyndns
copiamos el archivo sample-etc_rc.d_init.d_ddclien a /etc/rc.d/init.d/ddclient
# cp sample-etc_rc.d_init.d_ddclient /etc/rc.d/init.d/ddclient
abilitamos el para que arranque al inicio de nuestro sistema como servicio
# chkconfig --add ddclient
# chkconfig ddclient on
corremos el servicio
# service ddclient start
tenemos nuestra vpn montada
Ventajas :
Conexiones OpenVPN pueden ser realizadas a través de casi cualquier firewall
Solo un puerto en el firewall debe ser abierto para permitir conexiones, dado que desde OpenVPN 2.0 se permiten múltiples conexiones en el mismo puerto TCP o UDP
Las interfaces virtuales (tun0, tun1, etc.) permiten la implementación de reglas de firewall muy específicas
Soporte transparente para IPs dinámicas. Se elimina la necesidad de usar direcciones IP estáticas en ambos lados del túnel
Desventaja:
No tiene compatibilidad con IPsec que justamente es el estándar actual para soluciones VPN
Todavía existe poca gente que conoce como usar OpenVPN
configuramos los depósitos yum
#rpm -Uhv http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
# rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm
Instalamos las paqueterias necesaria
# yum -y install openvpn openssl
ubicamos donde se guardan los archivos de easy-rsa
# rpm -ql openvpn | grep easy-rsa
copiamos dentro del directorio /etc/openvpn/ los archivos openssl.cnf, whichopensslcnf, pkitool y vars, que se localizan en /usr/share/openvpn/easy-rsa/2.0/ (esta ruta puede cambiar y es obtenida con el comando anterior )
# cp /usr/share/openvpn/easy-rsa/2.0/openssl.cnf /etc/openvpn
# cp /usr/share/openvpn/easy-rsa/2.0/whichopensslcnf /etc/openvpn
# cp /usr/share/openvpn/easy-rsa/2.0/pkitool /etc/openvpn
# cp /usr/share/openvpn/easy-rsa/2.0/vars /etc/openvpn
editamos el archivo /etc/openvpn/vars las variables " KEY_COUNTRY,KEY_PROVINCE, KEY_CITY, KEY_ORG, KEY_EMAIL "
# vi /etc/openvpn/vars
export KEY_COUNTRY="MI_PAIS"
export KEY_PROVINCE="MI_ESTADO"
export KEY_CITY="MI_CIUDAD"
export KEY_ORG="MI_ORGANIZACION"
export KEY_EMAIL="MICUENT@_DE_CORREO"
cargamos los cambios en las variables de la siguiente manera
# source ./vars
ejecutamos el script de limpia para prevenir que cualquier otra llave este en el folder
# sh /usr/share/openvpn/easy-rsa/2.0/clean-all
ejecutamos el escrip de generación del certificado, si no existe el folder keys lo generara .
# sh /usr/share/openvpn/easy-rsa/2.0/build-ca
generamos las firmas digitales para el servidor
# sh /usr/share/openvpn/easy-rsa/2.0/build-dh
# sh /usr/share/openvpn/easy-rsa/2.0/build-key-server matriz
generamos las llaves asimétricas para los clientes que se conectaran
# sh /usr/share/openvpn/easy-rsa/2.0/build-key sucursal1
# sh /usr/share/openvpn/easy-rsa/2.0/build-key sucursal2
# sh /usr/share/openvpn/easy-rsa/2.0/build-key sucursalN
copiamos el archivo de configuración de ejemplo que se encuentra en /usr/share/doc/openvpn-2.1/sample-config-file/
# cp /usr/share/doc/openvpn-2.1/sample-config-file/server.conf ./
editamos el archivo con nuestras configuraciones
# vi /etc/openvpn/server.conf
========================================
port 1194
proto udp
dev tun
ca keys/ca.crt
cert keys/matriz.crt
key keys/matriz.key
dh keys/dh1024.pem
server 10.0.0.2 255.255.255.0
ifconfig-pool-persist ipp.txt
keepalive 10 120
comp-lzo
persist-key
persist-tun
status server.log
verb 3
========================================
en caso de tener activado se linux debemos otorgarle permiso
# restorecon -R /etc/openvpn/
creamos los archivos de con server.log y ipp.txt
# cd /etc/openvpn/
# touch /etc/openvpn/ipp.txt
# touch /etc/openvpn/server.log
asignamos propiedades de lectura/escritura a los archivos
# chcon -u system_u -r object_r -t openvpn_etc_rw_t /etc/openvpn/ipp.txt
# chcon -u system_u -r object_r -t openvpn_etc_rw_t /etc/openvpn/server.log
agregamos el servicio al chkconf
# chkconf openvpn on
generamos el archivo remoto para indicar que esas rutas seran utilizadas para la salida de paquetes
Iniciamos el servicio de openvpn
# service openvpn start
para el cliente en linux , seguimos los mismos pasos de instalacion .
copiamos el archivo cliente.conf
# cp /usr/share/doc/openvpn-2.1/sample-config-file/cliente.conf ./
editamos el archivo de configuración de cliente
# vi /etc/openvpn/cliente.conf
========================================
client
dev tun
proto udp
remote IP_SERVIDOR_O_NOMBRE_DOMININIO
float
resolv-retry infinite
nobind
persist-key
persist-tun
ca key/ca.crt
cert key/sucursal1.crt
key key/sucursal1.key
ns-cert-type matriz
comp-lzo
verb 3
========================================
copiamos los archivos sucursal1.crt y sucursal1.key al cliente .
# scp -P 22 sucursal.* usuario@ip_cliente:/etc/openvpn/
creamos el archivo matriz.up que nos dara la ruta de salida a nuestra red coporativa
Iniciamos el servicio de openvpn
# service openvpn restart
adecuamos nuestros firewalls para permitir conecciones
editamos el archivo de zonas en el shorewall
# vi /etc/shorewall/zones
agregamos la siguiente linea
===================================
vpn ipv4
===================================
editamos el archivo de interfaces
#vi /etc/shorewall/interfaces
agregamos la siguiente linea
===================================
vpn tun+ detect
===================================
editamos el archivo de politicas del shorewall
#vi /etc/shorewall/policy
agregamos los permisas para compartir las redes .
===================================
vpn $FW ACCEPT
vpn loc ACCEPT
loc vpn ACCEPT
$FW vpn ACCEPT
===================================
editamos el archivo de reglas
# vi /etc/shorewall/rules
agregamos la siguiente linea ( tambien podemos hacer un macro.OPENVPN )
===================================
ACCEPT net $FW udp 1194
===================================
finalmente agregamos la ruta al archivo de tunnels para que permita hacer conexiones a la vpn de cualquier ubicacion .
# vi /etc/shorewall/tunnles
agregamos la siguiente linea
===================================
openvpnserver:1194 vpn 0.0.0.0/0
===================================
configuramos una cuenta y descargamos de DynDns.org el archivo ddclient
# wget http://cdn.dyndns.com/ddclient.tar.gz
descomprimimos el archivo
# tar -xvzf ddclient.tar.gz
copiamos el script ddcliente al /usr/sbin/
# cp ddclient /usr/sbin/
creamos un folder en /etc/ddclient para guardas las configuracions y copiamos el ejemplo
# mkdir /etc/ddclient
# cp sample-etc_ddclient.conf /etc/ddclient/ddclient.conf
editamos el achivo de configuraciones
# vi /etc/ddclient/ddclient.conf
congiramos hostnames, logins y passwords, descomentamos las lineas de nuestro routey las lineas del servicio de dyndns
copiamos el archivo sample-etc_rc.d_init.d_ddclien a /etc/rc.d/init.d/ddclient
# cp sample-etc_rc.d_init.d_ddclient /etc/rc.d/init.d/ddclient
abilitamos el para que arranque al inicio de nuestro sistema como servicio
# chkconfig --add ddclient
# chkconfig ddclient on
corremos el servicio
# service ddclient start
tenemos nuestra vpn montada
jueves, 26 de noviembre de 2009
Como configurar shorewall basico
"Shorewall", es herramienta de alto nivel para la configuración de Netfilter. Shorewal permite la configuración de un firewall de host, de un servidor bastian, un firewall enrutador, y manejar complejas configuraciones. Shorewall cuenta con soporte para IPV4 e IPV6, actualmente IPV6 brinda una amplia gama de opciones de seguridad pero ha sido poco adoptada hasta el momento , en sig manual explicara la forma de configurar un firewall con IPV4.
Para comenzar indicaremos algunos conceptos basico :
Firewall : un software utilizado en redes de computadoras para controlar las comunicaciones, permitiéndolas o prohibiéndolas. existen múltiples generaciones de firewalls, pero al implementar uno de ellos debemos evaluar nuestras necesidades
Bastión host: Es una computadora en una red que ofrece un único punto de entrada y salida a Internet desde la red interna y viceversa. Un servidor bastión se usan para mitigar los riesgos de seguridad de una red, ofreciendo una barrera entre el área pública y privada.
DMZ: Es una zona desmilitarizada (DMZ, demilitarized zone) o red perimetral es una red local que se ubica entre la red interna de una organización y una red externa.
RED PRIVADA: una red privada es una red que usa el espacio de direcciones IP especificadas en el documento RFC 1918. A los terminales puede asignársele direcciones de este espacio de direcciones cuando se requiera que ellas deban comunicarse con otras terminales dentro de la red interna (una que no sea parte de Internet) pero no con Internet directamente.
NAT: (Network Address Translation - Traducción de Dirección de Red) es un mecanismo utilizado por routers IP para intercambiar paquetes entre dos redes que se asignan mutuamente direcciones incompatibles. Consiste en convertir en tiempo real las direcciones utilizadas en los paquetes transportados.
En ambientes complejos podemos utilizar multiples firewalls o routers para segregar las redes, o incrementar los niveles de seguridad en las dmz. en este manual explicaremos como hacer un firewall con filtro para la red privada, una dmz y salida a internet .
Instalamos los repositorios de Dag
### deposito yum para DAG WIERS
#rpm -Uhv http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
Instalamos la paqueteria necesaria
# yum -y install shorewall
si requiere una explicación detallada de como configurar shorewall para 2 redes o standalone puede revisar la documentación de la siguiente forma.
# rpm -ql shorewall-common | fgrep three-interfaces
o
# rpm -ql shorewall-common | fgrep two-interfaces
o
# rpm -ql shorewall-common | fgrep one-interface
hacemos un respaldo de todos los archivos
# cd /etc/shorewall
# for i in 'ls' ; do cp $i $i.OLD
Editamos el archivo /etc/shorewall/shorewall.conf
# vi /etc/shorewall/shorewall.conf
modificamos los parámetros STARTUP_ENABLED=Yes y CLAMPMSS=Yes
editamos el archivo de zonas /etc/shorewall/zones
# vi /etc/shorewall/zones
==============================================
#ZONE TYPE OPTIONS IN OUT
# OPTIONS OPTIONS
fw firewall # firewall del host
net ipv4 # firewall de Internet
loc ipv4 # firewall de la red local
dmz ipv4 # firewall de la dmz
vpn ipv4 # firewall zona de vpn
==============================================
podemos agregar zonas como interfaz de red tengamos de red tengamos . en algunas versiones la zona de fw esta definida en el archivo shorewall.conf
Editamos el archivo de interfaces
#vi /etc/shorewall/interfaces
==============================================
#ZONE INTERFACE BROADCAST OPTIONS
#net ppp0 detect dhcp,tcpflags,norfc1918,routefilter,nosm
urfs,logmartians
net eth0 detect
loc eth1 detect
dmz eth2 detect
vpn tun+ detect
#LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE
==============================================
como pueden notar en la primera linea tengo comentada la interfaz "net ppp0 " , que anteriormente se utilizaba en conexiones directas a internet , actualmente ya no se usan.
Editamos el archivo /etc/shorewall/policy este archivo determinara desde que zona se puede conectar hacia otra , es importante solo habilitar las necesarias .
# vi /etc/shorewall/policy
==============================================
#SOURCE DEST POLICY LOG LEVEL LIMIT:BURST
loc net ACCEPT # da aceeso de la red internet
$FW net ACCEPT # da acceso al host al intert
loc $FW ACCEPT # permite a la red comunicase con el host
$FW loc ACCEPT # permite al host comunicase con la red
loc vpn ACCEPT # permite a la red hacia la vpn
vpn loc ACCEPT # permite a la vpn hacia la red
$FW vpn ACCEPT # permite el host hacia la vpn
vpn $FW ACCEPT # permite a la vpn al host
vpn net DROP info # niega el acceso de la vpn a internet
net vpn DROP info # niega el acceso de internet a la vpn
net all DROP info # niega los acceso de internet a todo
dmz net ACCEPT # acepta de la dmz a internet
dmz loc DROP # niega de la dmz a la red local
loc dmz ACCEPT # permite el acceso de la red a la dmz
# THE FOLLOWING POLICY MUST BE LAST
all all REJECT info #niega todas las reglas no establecias
==============================================
Editamos el archivo de /etc/shorewall/masq el cual permite hacer un mascarad entre las tarjetas de red
# vi /etc/shorewall/masq
==============================================
#INTERFACE SUBNET ADDRESS PROTO PORT(S) IPSEC
eth1 eth0
#LAST LINE -- ADD YOUR ENTRIES ABOVE THIS LINE -- DO NOT REMOVE
==============================================
este ejemplo lo podemos hacer con solo un segmento de red ..
editamos el archivo de reglas /etc/shorewall/rules , el cual define cuales puertos pueden ser accesados ya sea por ip, zonas, subredes, protocolos, servicios etc. shorewall contiene archivos llamados macros con los servicios mas comunes los cuales se encuentran en /usr/share/shorewall/macro.Nombr_servicio
# vi /etc/shorewall/rules
==============================================
SSH/ACCEPT all $FW # habilita el ssh desde todas las interfaces
Ping/DROP all all # Niega el request del ping
Web/ACCEPT all all # acepta el trafico hacia el servido web
REJECT loc net udp 1863 # niega la salida por el puerto 1863
ACCEPT net $FW tcp 22,25,465,143,110 - - 10/sec:4 #
REDIRECT loc 3128 tcp 80 # redirecciona del 80 al 3128
DNAT all loc:192.158.1.2 udp 8080 # hace un DNAT de todas las interfaz al
REJECT net:201.238.235.131 all tcp # evitar conexiones de la net a cualquier
==============================================
estructura de un macro.Servicio
==============================================
#ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL RATE USER/
# PORT PORT(S) DEST LIMIT GROUP
PARAM - - udp
PARAM - - tcp
#LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE
Para comenzar indicaremos algunos conceptos basico :
Firewall : un software utilizado en redes de computadoras para controlar las comunicaciones, permitiéndolas o prohibiéndolas. existen múltiples generaciones de firewalls, pero al implementar uno de ellos debemos evaluar nuestras necesidades
Bastión host: Es una computadora en una red que ofrece un único punto de entrada y salida a Internet desde la red interna y viceversa. Un servidor bastión se usan para mitigar los riesgos de seguridad de una red, ofreciendo una barrera entre el área pública y privada.
DMZ: Es una zona desmilitarizada (DMZ, demilitarized zone) o red perimetral es una red local que se ubica entre la red interna de una organización y una red externa.
RED PRIVADA: una red privada es una red que usa el espacio de direcciones IP especificadas en el documento RFC 1918. A los terminales puede asignársele direcciones de este espacio de direcciones cuando se requiera que ellas deban comunicarse con otras terminales dentro de la red interna (una que no sea parte de Internet) pero no con Internet directamente.
NAT: (Network Address Translation - Traducción de Dirección de Red) es un mecanismo utilizado por routers IP para intercambiar paquetes entre dos redes que se asignan mutuamente direcciones incompatibles. Consiste en convertir en tiempo real las direcciones utilizadas en los paquetes transportados.
En ambientes complejos podemos utilizar multiples firewalls o routers para segregar las redes, o incrementar los niveles de seguridad en las dmz. en este manual explicaremos como hacer un firewall con filtro para la red privada, una dmz y salida a internet .
Instalamos los repositorios de Dag
### deposito yum para DAG WIERS
#rpm -Uhv http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
Instalamos la paqueteria necesaria
# yum -y install shorewall
si requiere una explicación detallada de como configurar shorewall para 2 redes o standalone puede revisar la documentación de la siguiente forma.
# rpm -ql shorewall-common | fgrep three-interfaces
o
# rpm -ql shorewall-common | fgrep two-interfaces
o
# rpm -ql shorewall-common | fgrep one-interface
hacemos un respaldo de todos los archivos
# cd /etc/shorewall
# for i in 'ls' ; do cp $i $i.OLD
Editamos el archivo /etc/shorewall/shorewall.conf
# vi /etc/shorewall/shorewall.conf
modificamos los parámetros STARTUP_ENABLED=Yes y CLAMPMSS=Yes
editamos el archivo de zonas /etc/shorewall/zones
# vi /etc/shorewall/zones
==============================================
#ZONE TYPE OPTIONS IN OUT
# OPTIONS OPTIONS
fw firewall # firewall del host
net ipv4 # firewall de Internet
loc ipv4 # firewall de la red local
dmz ipv4 # firewall de la dmz
vpn ipv4 # firewall zona de vpn
==============================================
podemos agregar zonas como interfaz de red tengamos de red tengamos . en algunas versiones la zona de fw esta definida en el archivo shorewall.conf
Editamos el archivo de interfaces
#vi /etc/shorewall/interfaces
==============================================
#ZONE INTERFACE BROADCAST OPTIONS
#net ppp0 detect dhcp,tcpflags,norfc1918,routefilter,nosm
urfs,logmartians
net eth0 detect
loc eth1 detect
dmz eth2 detect
vpn tun+ detect
#LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE
==============================================
como pueden notar en la primera linea tengo comentada la interfaz "net ppp0 " , que anteriormente se utilizaba en conexiones directas a internet , actualmente ya no se usan.
Editamos el archivo /etc/shorewall/policy este archivo determinara desde que zona se puede conectar hacia otra , es importante solo habilitar las necesarias .
# vi /etc/shorewall/policy
==============================================
#SOURCE DEST POLICY LOG LEVEL LIMIT:BURST
loc net ACCEPT # da aceeso de la red internet
$FW net ACCEPT # da acceso al host al intert
loc $FW ACCEPT # permite a la red comunicase con el host
$FW loc ACCEPT # permite al host comunicase con la red
loc vpn ACCEPT # permite a la red hacia la vpn
vpn loc ACCEPT # permite a la vpn hacia la red
$FW vpn ACCEPT # permite el host hacia la vpn
vpn $FW ACCEPT # permite a la vpn al host
vpn net DROP info # niega el acceso de la vpn a internet
net vpn DROP info # niega el acceso de internet a la vpn
net all DROP info # niega los acceso de internet a todo
dmz net ACCEPT # acepta de la dmz a internet
dmz loc DROP # niega de la dmz a la red local
loc dmz ACCEPT # permite el acceso de la red a la dmz
# THE FOLLOWING POLICY MUST BE LAST
all all REJECT info #niega todas las reglas no establecias
==============================================
Editamos el archivo de /etc/shorewall/masq el cual permite hacer un mascarad entre las tarjetas de red
# vi /etc/shorewall/masq
==============================================
#INTERFACE SUBNET ADDRESS PROTO PORT(S) IPSEC
eth1 eth0
#LAST LINE -- ADD YOUR ENTRIES ABOVE THIS LINE -- DO NOT REMOVE
==============================================
este ejemplo lo podemos hacer con solo un segmento de red ..
==============================================
#INTERFACE SUBNET ADDRESS PROTO PORT(S) IPSEC
eth1 192.168.0.1/36
#LAST LINE -- ADD YOUR ENTRIES ABOVE THIS LINE -- DO NOT REMOVE
==============================================
editamos el archivo de reglas /etc/shorewall/rules , el cual define cuales puertos pueden ser accesados ya sea por ip, zonas, subredes, protocolos, servicios etc. shorewall contiene archivos llamados macros con los servicios mas comunes los cuales se encuentran en /usr/share/shorewall/macro.Nombr_servicio
# vi /etc/shorewall/rules
==============================================
SSH/ACCEPT all $FW # habilita el ssh desde todas las interfaces
Ping/DROP all all # Niega el request del ping
Web/ACCEPT all all # acepta el trafico hacia el servido web
REJECT loc net udp 1863 # niega la salida por el puerto 1863
ACCEPT net $FW tcp 22,25,465,143,110 - - 10/sec:4 #
REDIRECT loc 3128 tcp 80 # redirecciona del 80 al 3128
DNAT all loc:192.158.1.2 udp 8080 # hace un DNAT de todas las interfaz al
REJECT net:201.238.235.131 all tcp # evitar conexiones de la net a cualquier
==============================================
estructura de un macro.Servicio
==============================================
#ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL RATE USER/
# PORT PORT(S) DEST LIMIT GROUP
PARAM - - udp
PARAM - - tcp
#LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE
==============================================
Podemos hacer un filtrado de paquetes por la mac adress editamos en el /etc/shorewall/shorewall.conf los parametros "MACLIST_DISPOSITION=REJECT MACLIST_LOG_LEVEL=info "
# vi /etc/shorewall/shorewall.conf
editamos el archivo de interfaces
#vi /etc/shorewall/interfaces
y agregamos la siguiente linea .
==============================================
Wifi $WIFI_IF - maclist,dhcp
==============================================
editamos el archivo /etc/shorewall/maclist
# vi /etc/shorewall/maclist
==============================================
#DISPOSITION INTERFACE MAC IP ADDRESSES (Optional)
ACCEPT $WIFI_IF 00:04:5e:3f:85:b9 #WAP11
ACCEPT $WIFI_IF 00:06:25:95:33:3c #WET11
ACCEPT $WIFI_IF 00:0b:4d:53:cc:97 192.168.3.8 #TIPPER
ACCEPT $WIFI_IF 00:1f:79:cd:fe:2e 192.168.3.6 #Work Laptop
==============================================
editamos el archivo de interfaces
#vi /etc/shorewall/interfaces
y agregamos la siguiente linea .
==============================================
Wifi $WIFI_IF - maclist,dhcp
==============================================
editamos el archivo /etc/shorewall/maclist
# vi /etc/shorewall/maclist
==============================================
#DISPOSITION INTERFACE MAC IP ADDRESSES (Optional)
ACCEPT $WIFI_IF 00:04:5e:3f:85:b9 #WAP11
ACCEPT $WIFI_IF 00:06:25:95:33:3c #WET11
ACCEPT $WIFI_IF 00:0b:4d:53:cc:97 192.168.3.8 #TIPPER
ACCEPT $WIFI_IF 00:1f:79:cd:fe:2e 192.168.3.6 #Work Laptop
==============================================
Configurar Fail2ban contra ataques de fuerza bruta
Fail2ban es una aplicación utilizada para combatir ataques de fuerza bruta en diversos servicios , esto lo hace analizando los logs por específicos intentos de ingreso al sistema en un determinado intervalo de tiempo, hoy veremos como configurarlo para una aplicación muy esencial como SSH.
para comenzar instalamos las aplicaciones necesarias por medio de yum.
#yum -y install fail2ban
editamos el archivo /etc/fail2ban/jail.conf
#vi /etc/fail2ban/jail.conf
configuramos los ips o segmentos de red que seran excluidos de la restriccion de fail2ban "ignoreip", tambien encontraremos la regla de cuanto tiempo estaran restringidos los host "bantime" , cuanto tienpo buscara los intentos "findtime" (los tiempos son dados en segundos ) y cuantos intentos son los maximos permitidos "maxretry" , cabe mencionar que en las reglas especificas del servicio se sobre ponen a las reglas generales .
==========================================================
ignoreip = 127.0.0.1 192.168.0.0/24
bantime = 600
==========================================================
ahora habilitamos el servicio que requerimos , en las jaulas correspondientes . pondremos como ejemplo la de SSH, cambiamos los parámetros resaltados en rojo
==========================================================
[ssh-iptables]
enabled = true
filter = sshd
action = iptables[name=SSH, port=ssh, protocol=tcp]
sendmail-whois[name=SSH, dest=you@mail.com, sender=fail2ban@mail.com]
logpath = /var/log/sshd.log
maxretry = 5
grabamos los cambios en el archivo reiniciamos el servicio
# service fail2ban restart
si requerimos borrar una regla agregada al iptables listamos las reglas de iptables
# iptables -L
y borramos la regla deceada
# iptables -D regla_fail2ban
#service iptables save
si no deseamos utilizar iptables , cambiamos la configuración a tcpwrappers
==========================================================
[ssh-tcpwrapper]
enabled = true
filter = sshd
action = hostsdeny
mail-whois[name=SSH, dest=root@localhost]
logpath = /var/log/auth.log
==========================================================
reiniciamos el servicio de fail2ban
# service failt2ban restar
para comenzar instalamos las aplicaciones necesarias por medio de yum.
#yum -y install fail2ban
editamos el archivo /etc/fail2ban/jail.conf
#vi /etc/fail2ban/jail.conf
configuramos los ips o segmentos de red que seran excluidos de la restriccion de fail2ban "ignoreip", tambien encontraremos la regla de cuanto tiempo estaran restringidos los host "bantime" , cuanto tienpo buscara los intentos "findtime" (los tiempos son dados en segundos ) y cuantos intentos son los maximos permitidos "maxretry" , cabe mencionar que en las reglas especificas del servicio se sobre ponen a las reglas generales .
==========================================================
ignoreip = 127.0.0.1 192.168.0.0/24
bantime = 600
findtime = 600
maxretry = 3
==========================================================
ahora habilitamos el servicio que requerimos , en las jaulas correspondientes . pondremos como ejemplo la de SSH, cambiamos los parámetros resaltados en rojo
==========================================================
[ssh-iptables]
enabled = true
filter = sshd
action = iptables[name=SSH, port=ssh, protocol=tcp]
sendmail-whois[name=SSH, dest=you@mail.com, sender=fail2ban@mail.com]
logpath = /var/log/sshd.log
maxretry = 5
==========================================================
grabamos los cambios en el archivo reiniciamos el servicio
# service fail2ban restart
si requerimos borrar una regla agregada al iptables listamos las reglas de iptables
# iptables -L
y borramos la regla deceada
# iptables -D regla_fail2ban
#service iptables save
si no deseamos utilizar iptables , cambiamos la configuración a tcpwrappers
==========================================================
[ssh-tcpwrapper]
enabled = true
filter = sshd
action = hostsdeny
mail-whois[name=SSH, dest=root@localhost]
logpath = /var/log/auth.log
==========================================================
reiniciamos el servicio de fail2ban
# service failt2ban restar
Configurar Fail2ban squirrelmail contra ataques de fuerza bruta
Este manual muestra como prevenir ataques de fuerza bruta contra Squirrelmail con Fail2ban.
Fail2ban funciona con reglas de Iptables por lo cual deberá estar activado , o TCPWrappers
Instalamos la paquetera necesaria ( previamente configurado sendmail )
# yum install fail2ban squirrelmail
SquirrelMail (imapd) CentOS v5.X por defecto registra los losg en /var/log/maillog pero sólo como la dirección IP 127.0.0.1 (localhost). Dado que estamos tratando de prohibir una dirección de origen específicas, fail2ban no puede utilizar este archivo. Por lo tanto, vamos a instalar y utilizar Squirrel Logger para capturar la verdadera fuente de la dirección del intento de acceso.
Descargamos el Plug-in para log de direcciones externas
# cd /usr/share/squirrelmail/plugins
# wget http://squirrelmail.org/countdl.php?fileurl=http%3A%2F%2Fwww.squirrelmail.org%2Fplugins%2Fsquirrel_logger-2.3-1.2.7.tar.gz
# tar zxvf squirrel_logger-2.3-1.2.7.tar.gz
# cd squirrel_logger-2.3-1.2.7
# cp config_example.php config.php
Para checar si existen nuevas versiones entre al sitio oficial de squirrelmail en la categoría de " Administrator's Relief ".
Si sus equipos usan la hora local que no es la hora de GTM, debera modificar el parametro "$sl_use_GMT = 0 "
#vi /usr/share/squirrelmail/plugins/squirrel_logger-2.3-1.2.7/config.php
Continuamos configurando el plugin para que sea utilizado por squirrelmail con el script de configuración
# /usr/share/squirrelmail/config/conf.pl
============================================================
SquirrelMail Configuration : Read: config.php (1.4.0)
---------------------------------------------------------
Main Menu --
1. Organization Preferences
2. Server Settings
3. Folder Defaults
4. General Options
5. Themes
6. Address Books
7. Message of the Day (MOTD)
8. Plugins
9. Database
10. Languages
D. Set pre-defined settings for specific IMAP servers
C Turn color on
S Save data
Q Quit
Command >>
============================================================
selecciona la opcion #8 de plug-ins
============================================================
SquirrelMail Configuration : Read: config.php (1.4.0)
---------------------------------------------------------
Plugins
Installed Plugins
1. delete_move_next
2. squirrelspell
3. newmail
Available Plugins:
4. listcommands
5. fortune
6. filters
7. translate
8. abook_take
9. spamcop
10. squirrel_logger
11. mail_fetch
12. calendar
13. sent_subfolders
14. message_details
15. administrator
16. info
17. bug_report
18. filters
19. administrator
20. templates
21. translate
22. autocomplete
23. mail_fetch
24. msg_flags
R Return to Main Menu
C Turn color on
S Save data
Q Quit
Command >>
============================================================
Selecciona la opcion de ssquirrel_logger ( la cantidad de plug-ins pueden variar dependiendo el administrador)
============================================================
SquirrelMail Configuration : Read: config.php (1.4.0)
---------------------------------------------------------
Plugins
Installed Plugins
1. delete_move_next
2. squirrelspell
3. newmail
4. squirrel_logger
============================================================
presionamos la "S" de salvar datos y la "Q" de quit, y quedara activado el plug-in
agregamos la siguientes lineas al archivo jail.conf
# vi /etc/fail2ban/jail.conf
=============================EJEMPLO IPTABLES===============================
[squirrelmail-iptables]
enabled = true
filter = squirrelmail
action = iptables[name=SquirrelMail, port=http, protocol=tcp]
sendmail-whois[name=SquirrelMail, dest=you@your_domain.com, sender=fail2ban@your_domain.com]
logpath = /var/lib/squirrelmail/prefs/squirrelmail_access_log
maxretry = 4
=============================EJEMPLO TCPWRAPPERS===============================
[squirrelmail-tcpwrapper]
enabled = true
filter = squirrelmail
action = hostsdeny mail-whois[name=squirrelmail, dest=root@localhost]
logpath = /var/lib/squirrelmail/prefs/squirrelmail_access_log
maxretry = 4
============================================================
el parametro "maxrety=4" indica los intentos permitidos
Ahora debera entrar al folde filter.d
# cd /etc/fail2ban/filtel.d
# touch squirrelmail.conf
# vi squirrelmail.conf
y agregamos las siguientes lineas
============================================================
# Fail2Ban configuration file
#
# Author: Bill Landry ((email_protected))
#
# $Revision: 510 $
[Definition]
# Option: failregex
# Notes.: regex to match the password failures messages in the logfile. The
# host must be matched by a group named "host". The tag "" can
# be used for standard IP/hostname matching and is only an alias for
# (?:::f{4,6}:)?(?P\S+)
# Values: TEXT
failregex = \[LOGIN_ERROR\].*from: Unknown user or password incorrect
# Option: ignoreregex
# Notes.: regex to ignore. If this regex matches, the line is ignored.
# Values: TEXT
ignoreregex =
============================================================
fail2ban necesita reconocer el formato de fecha que emite el squirrelmail_access_log asi que tendremos que editar el archivo datedetector.py entre los tags de "Apache format " and " Exim format "
# vi /usr/share/fail2ban/server/datedetector.py
============================================================
# SquirrelMail 09/13/2007 06:43:20
template = DateStrptime()
template.setName("Month/Day/Year Hour:Minute:Second")
template.setRegex("\d{2}/\d{2}/\d{4} \d{2}:\d{2}:\d{2}")
template.setPattern("%m/%d/%Y %H:%M:%S")
self.__templates.append(template)
============================================================
agregamos al fail2ban a chkconf y arrancamos el servicio
# chkconfig fail2ban on
# service fail2ban start
Fail2ban funciona con reglas de Iptables por lo cual deberá estar activado , o TCPWrappers
Instalamos la paquetera necesaria ( previamente configurado sendmail )
# yum install fail2ban squirrelmail
SquirrelMail (imapd) CentOS v5.X por defecto registra los losg en /var/log/maillog pero sólo como la dirección IP 127.0.0.1 (localhost). Dado que estamos tratando de prohibir una dirección de origen específicas, fail2ban no puede utilizar este archivo. Por lo tanto, vamos a instalar y utilizar Squirrel Logger para capturar la verdadera fuente de la dirección del intento de acceso.
Descargamos el Plug-in para log de direcciones externas
# cd /usr/share/squirrelmail/plugins
# wget http://squirrelmail.org/countdl.php?fileurl=http%3A%2F%2Fwww.squirrelmail.org%2Fplugins%2Fsquirrel_logger-2.3-1.2.7.tar.gz
# tar zxvf squirrel_logger-2.3-1.2.7.tar.gz
# cd squirrel_logger-2.3-1.2.7
# cp config_example.php config.php
Para checar si existen nuevas versiones entre al sitio oficial de squirrelmail en la categoría de " Administrator's Relief ".
Si sus equipos usan la hora local que no es la hora de GTM, debera modificar el parametro "$sl_use_GMT = 0 "
#vi /usr/share/squirrelmail/plugins/squirrel_logger-2.3-1.2.7/config.php
Continuamos configurando el plugin para que sea utilizado por squirrelmail con el script de configuración
# /usr/share/squirrelmail/config/conf.pl
============================================================
SquirrelMail Configuration : Read: config.php (1.4.0)
---------------------------------------------------------
Main Menu --
1. Organization Preferences
2. Server Settings
3. Folder Defaults
4. General Options
5. Themes
6. Address Books
7. Message of the Day (MOTD)
8. Plugins
9. Database
10. Languages
D. Set pre-defined settings for specific IMAP servers
C Turn color on
S Save data
Q Quit
Command >>
============================================================
selecciona la opcion #8 de plug-ins
============================================================
SquirrelMail Configuration : Read: config.php (1.4.0)
---------------------------------------------------------
Plugins
Installed Plugins
1. delete_move_next
2. squirrelspell
3. newmail
Available Plugins:
4. listcommands
5. fortune
6. filters
7. translate
8. abook_take
9. spamcop
10. squirrel_logger
11. mail_fetch
12. calendar
13. sent_subfolders
14. message_details
15. administrator
16. info
17. bug_report
18. filters
19. administrator
20. templates
21. translate
22. autocomplete
23. mail_fetch
24. msg_flags
R Return to Main Menu
C Turn color on
S Save data
Q Quit
Command >>
============================================================
Selecciona la opcion de ssquirrel_logger ( la cantidad de plug-ins pueden variar dependiendo el administrador)
============================================================
SquirrelMail Configuration : Read: config.php (1.4.0)
---------------------------------------------------------
Plugins
Installed Plugins
1. delete_move_next
2. squirrelspell
3. newmail
4. squirrel_logger
============================================================
presionamos la "S" de salvar datos y la "Q" de quit, y quedara activado el plug-in
agregamos la siguientes lineas al archivo jail.conf
# vi /etc/fail2ban/jail.conf
=============================EJEMPLO IPTABLES===============================
[squirrelmail-iptables]
enabled = true
filter = squirrelmail
action = iptables[name=SquirrelMail, port=http, protocol=tcp]
sendmail-whois[name=SquirrelMail, dest=you@your_domain.com, sender=fail2ban@your_domain.com]
logpath = /var/lib/squirrelmail/prefs/squirrelmail_access_log
maxretry = 4
=============================EJEMPLO TCPWRAPPERS===============================
[squirrelmail-tcpwrapper]
enabled = true
filter = squirrelmail
action = hostsdeny mail-whois[name=squirrelmail, dest=root@localhost]
logpath = /var/lib/squirrelmail/prefs/squirrelmail_access_log
maxretry = 4
============================================================
el parametro "maxrety=4" indica los intentos permitidos
Ahora debera entrar al folde filter.d
# cd /etc/fail2ban/filtel.d
# touch squirrelmail.conf
# vi squirrelmail.conf
y agregamos las siguientes lineas
============================================================
# Fail2Ban configuration file
#
# Author: Bill Landry ((email_protected))
#
# $Revision: 510 $
[Definition]
# Option: failregex
# Notes.: regex to match the password failures messages in the logfile. The
# host must be matched by a group named "host". The tag "" can
# be used for standard IP/hostname matching and is only an alias for
# (?:::f{4,6}:)?(?P\S+)
# Values: TEXT
failregex = \[LOGIN_ERROR\].*from
# Option: ignoreregex
# Notes.: regex to ignore. If this regex matches, the line is ignored.
# Values: TEXT
ignoreregex =
============================================================
fail2ban necesita reconocer el formato de fecha que emite el squirrelmail_access_log asi que tendremos que editar el archivo datedetector.py entre los tags de "Apache format " and " Exim format "
# vi /usr/share/fail2ban/server/datedetector.py
============================================================
# SquirrelMail 09/13/2007 06:43:20
template = DateStrptime()
template.setName("Month/Day/Year Hour:Minute:Second")
template.setRegex("\d{2}/\d{2}/\d{4} \d{2}:\d{2}:\d{2}")
template.setPattern("%m/%d/%Y %H:%M:%S")
self.__templates.append(template)
============================================================
agregamos al fail2ban a chkconf y arrancamos el servicio
# chkconfig fail2ban on
# service fail2ban start
Verificar funcionamiento de la raid 0
Ahora vamos a simular un fallo en el disco duro. No importa si usted selecciona /dev/sda o /dev/sdb . En este ejemplo suponemos que /dev /sdb ha fallado.
Para simular el fallo del disco duro, usted puede apagar el sistema y borrar /dev /sdb del sistema, o eliminar de esta manera:
// solo en caso de simulacro
# mdadm --manage /dev/md0 --fail /dev/sdb1
# mdadm --manage /dev/md1 --fail /dev/sdb2
# mdadm --manage /dev/md0 --remove /dev/sdb1
# mdadm --manage /dev/md1 --remove /dev/sdb2
//solo en caso de simulacro
# poweroff
ahora Instalamos el nuevo disco duro, y encendemos el sistema .
vemos la situacion del la RAID
# cat /proc/mdstat
verificamos la lista de particiones
# fdisk -l
Disk /dev/sda: 292.3 GB, 292326211584 bytes
255 heads, 63 sectors/track, 35539 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 fd Linux raid autodetect
/dev/sda2 14 1305 10377990 fd Linux raid autodetect
Disk /dev/sdb: 292.3 GB, 292326211584 bytes
255 heads, 63 sectors/track, 35539 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk /dev/sdb doesn't contain a valid partition table
Disk /dev/md1: 292.3 GB, 292326211584 bytes
255 heads, 63 sectors/track, 35539 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk /dev/md1 doesn't contain a valid partition table
Disk /dev/md0: 292.3 GB, 292326211584 bytes
255 heads, 63 sectors/track, 35539 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk /dev/md0 doesn't contain a valid partition table
Ahora copiamos las particiones del /dev/sda al /dev/sdb
# sfdisk -d /dev/sda | sfdisk /dev/sdb
si marca algun error podemos usar el --force
#sfdisk -d /dev/sda | sfdisk --force /dev/sdb
Removemos los restos de la Raid Anterior /dev/sdb
# mdadm --zero-superblock /dev/sdb1
# mdadm --zero-superblock /dev/sdb2
Agregamos el nuevo disco duro al arreglo
# mdadm -a /dev/md0 /dev/sdb1
# mdadm -a /dev/md1 /dev/sdb2
verificamos el proceso de sincronizacion de la RAID
# watch cat /proc/mdstat
regeneramos el grub
# grub
grub> root (hd0,0)
grub> (hd0,0)
grub> root (hd1,0)
grub> (hd1,0)
grub> quit
# reboot
Para simular el fallo del disco duro, usted puede apagar el sistema y borrar /dev /sdb del sistema, o eliminar de esta manera:
// solo en caso de simulacro
# mdadm --manage /dev/md0 --fail /dev/sdb1
# mdadm --manage /dev/md1 --fail /dev/sdb2
# mdadm --manage /dev/md0 --remove /dev/sdb1
# mdadm --manage /dev/md1 --remove /dev/sdb2
//solo en caso de simulacro
# poweroff
ahora Instalamos el nuevo disco duro, y encendemos el sistema .
vemos la situacion del la RAID
# cat /proc/mdstat
verificamos la lista de particiones
# fdisk -l
Disk /dev/sda: 292.3 GB, 292326211584 bytes
255 heads, 63 sectors/track, 35539 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 fd Linux raid autodetect
/dev/sda2 14 1305 10377990 fd Linux raid autodetect
Disk /dev/sdb: 292.3 GB, 292326211584 bytes
255 heads, 63 sectors/track, 35539 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk /dev/sdb doesn't contain a valid partition table
Disk /dev/md1: 292.3 GB, 292326211584 bytes
255 heads, 63 sectors/track, 35539 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk /dev/md1 doesn't contain a valid partition table
Disk /dev/md0: 292.3 GB, 292326211584 bytes
255 heads, 63 sectors/track, 35539 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk /dev/md0 doesn't contain a valid partition table
Ahora copiamos las particiones del /dev/sda al /dev/sdb
# sfdisk -d /dev/sda | sfdisk /dev/sdb
si marca algun error podemos usar el --force
#sfdisk -d /dev/sda | sfdisk --force /dev/sdb
Removemos los restos de la Raid Anterior /dev/sdb
# mdadm --zero-superblock /dev/sdb1
# mdadm --zero-superblock /dev/sdb2
Agregamos el nuevo disco duro al arreglo
# mdadm -a /dev/md0 /dev/sdb1
# mdadm -a /dev/md1 /dev/sdb2
verificamos el proceso de sincronizacion de la RAID
# watch cat /proc/mdstat
regeneramos el grub
# grub
grub> root (hd0,0)
grub> (hd0,0)
grub> root (hd1,0)
grub> (hd1,0)
grub> quit
# reboot
martes, 24 de noviembre de 2009
Software para crear routers
Untangle . una opción sencilla para instalar servidores perimetrales con servicios como vpn, firewall, ids, antivirus, proxy, filtro de protocolos etc . Lo grandioso de este aplicativo es que esta montado en una distribucion de linux con kernel monlotico altamente estable, con requerimientos minimos de instalacion ( depende la cantidad de clientes ). el sitio es www.untangle.com
Tambien he tenido la oportunidad de utilizar Vyatta , pero a diferencia de untangle requiere mas recursos y definitivamente es mas amigable ..pero les pongo la referencia www.vyatta.com/
Como configurar raid 1 con Lvm en ambientes productivos 2
remplazamos en el archivo /etc/mtab la siguiente linea /dev/sda1 con /dev/md0
# vi /etc/mtab
/dev/mapper/VolGroup00-LogVol00 / ext3 rw 0 0
none /proc proc rw 0 0
none /sys sysfs rw 0 0
none /dev/pts devpts rw,gid=5,mode=620 0 0
usbfs /proc/bus/usb usbfs rw 0 0
/dev/md0 /boot ext3 rw 0 0
none /dev/shm tmpfs rw 0 0
none /proc/sys/fs/binfmt_misc binfmt_misc rw 0 0
sunrpc /var/lib/nfs/rpc_pipefs rpc_pipefs rw 0 0
editamos el archivo de bootloader /boot/grub/menu.lst debajo de la linea default=0 agregamos fallback=1
esto hará que cuando el sistema arranque y tenga un fallo en el default , tome el siguiente kernel para arrancar correctamente .
# vi /boot/grub/menu.lst
default=0
fallback=1
timeout=5
el archivo debe parecerse a lo siguiente
default=1
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
Si el sistema falla debemos tener un disco de seguridad . y regresar las configuraciones iniciales .
esto tomara un rato dependiendo de la cantidad de información contenida . Al terminar removemos el grupoVolGroup00 y le indicamos al sistema que no use mas LVM /dev/sda2
# vgreduce VolGroup00 /dev/sda2
# pvremove /dev/sda2
cambiamos la particion a tipo raid como en el disco anterior
# fdisk /dev/sda
==============================
The number of cylinders for this disk is set to 2797.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
Command (m for help): t
Partition number (1-4): 2
Hex code (type L to list codes): fd
Changed system type of partition 2 to fd (Linux raid autodetect)
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table.
The new table will be used at the next reboot.
Syncing disks.
al terminar agregamos la particion creada a la RAID
#mdadm --add /dev/md1 /dev/sda2
Podemos observar el progreso de sincronizacion de los arreglos con un cat
#watch cat /proc/mdstats
montamos la particion /dev/md0
#mkdir /mnt/md0 ; mount /mnt/md0 /dev/md0
copiamos el contenido de /dev/sda1 a /dev/md0
# cd /boot
# cp -dpRx . /dev/md0
Instalamos el Grub en el disco duro
# grub
grub> root (hd0,0)
grub> (hd0,0)
# vi /etc/mtab
/dev/mapper/VolGroup00-LogVol00 / ext3 rw 0 0
none /proc proc rw 0 0
none /sys sysfs rw 0 0
none /dev/pts devpts rw,gid=5,mode=620 0 0
usbfs /proc/bus/usb usbfs rw 0 0
/dev/md0 /boot ext3 rw 0 0
none /dev/shm tmpfs rw 0 0
none /proc/sys/fs/binfmt_misc binfmt_misc rw 0 0
sunrpc /var/lib/nfs/rpc_pipefs rpc_pipefs rw 0 0
editamos el archivo de bootloader /boot/grub/menu.lst debajo de la linea default=0 agregamos fallback=1
esto hará que cuando el sistema arranque y tenga un fallo en el default , tome el siguiente kernel para arrancar correctamente .
# vi /boot/grub/menu.lst
default=0
fallback=1
timeout=5
el archivo debe parecerse a lo siguiente
default=1
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.9-89.0.15.ELsmp)
root (hd1,0)
kernel /vmlinuz-2.6.9-89.0.15.ELsmp ro root=/dev/VolGroup00/LogVol00 rhgb quiet
initrd /initrd-2.6.9-89.0.15.ELsmp.img
title CentOS (2.6.9-89.0.15.ELsmp)
root (hd0,0)
kernel /vmlinuz-2.6.9-89.0.15.ELsmp ro root=/dev/VolGroup00/LogVol00 rhgb quiet
initrd /initrd-2.6.9-89.0.15.ELsmp.img
title CentOS (2.6.9-89.0.11.ELsmp)
root (hd0,0)
kernel /vmlinuz-2.6.9-89.0.11.ELsmp ro root=/dev/VolGroup00/LogVol00 rhgb quiet
initrd /initrd-2.6.9-89.0.11.ELsmp.img
respaldamos y hacemos la imagen de arranque para nuestro disco nuevo "uname" nos entregara la versión de kernel que estamos ejecutando .
# mv /boot/initrd-`uname -r`.img /boot/initrd-`uname -r`.img_orig
# mkinitrd /boot/initrd-`uname -r`.img `uname -r`
# mkinitrd /boot/initrd-`uname -r`.img `uname -r`
Si el sistema falla debemos tener un disco de seguridad . y regresar las configuraciones iniciales .
movemos nuestros datos del disco duro sin RAID a nuestro Arreglo de RAID.
Primero movemos la particion LVM del /dev/sda2 al /dev/md1
# pvmove /dev/sda2 /dev/md1
Primero movemos la particion LVM del /dev/sda2 al /dev/md1
# pvmove /dev/sda2 /dev/md1
# vgreduce VolGroup00 /dev/sda2
# pvremove /dev/sda2
cambiamos la particion a tipo raid como en el disco anterior
# fdisk /dev/sda
==============================
The number of cylinders for this disk is set to 2797.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
Command (m for help): t
Partition number (1-4): 2
Hex code (type L to list codes): fd
Changed system type of partition 2 to fd (Linux raid autodetect)
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table.
The new table will be used at the next reboot.
Syncing disks.
=====================================
al terminar agregamos la particion creada a la RAID
#mdadm --add /dev/md1 /dev/sda2
Podemos observar el progreso de sincronizacion de los arreglos con un cat
#watch cat /proc/mdstats
montamos la particion /dev/md0
#mkdir /mnt/md0 ; mount /mnt/md0 /dev/md0
copiamos el contenido de /dev/sda1 a /dev/md0
# cd /boot
# cp -dpRx . /dev/md0
Instalamos el Grub en el disco duro
# grub
grub> root (hd0,0)
grub> (hd0,0)
grub> root (hd1,0)
grub> (hd1,0)
grub> quit
# reboot
Convertimos el /dev/sda1 a linux raid
#fdisk /dev/sda
convertimos de la misma manera que las anteriores. Agregamos la nueva particion a la RAID
# mdadm --add /dev/md0 /dev/sda1
#watch cat /proc/mdstat
creamos y verificamos como quedo la lista de RAID
# mdadm --examine --scan > /etc/mdadm.conf
# cat /etc/mdadm.conf
reiniciamos el sistema
# reoboot
creamos y verificamos como quedo la lista de RAID
# mdadm --examine --scan > /etc/mdadm.conf
# cat /etc/mdadm.conf
reiniciamos el sistema
# reoboot
Como configurar raid 1 con Lvm en ambientes productivos
Este manual que me ha servido mucho es de Falko Timme,
Disk /dev/sdb doesn't contain a valid partition table
# modprobe linear
# modprobe multipath
# modprobe raid0
# modprobe raid1
# modprobe raid5
# modprobe raid6
# modprobe raid10
Verificamos la correcta integración de los módulos cargados
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
unused devices:
sfdisk: ERROR: sector 0 does not have an msdos signature
/dev/sdb: unrecognized partition table type
Old situation:
No partitions found
New situation:
Units = sectors of 512 bytes, counting from 0
Device Boot Start End #sectors Id System
/dev/sdb1 * 63 208844 208782 83 Linux
/dev/sdb2 208845 20964824 20755980 8e Linux LVM
/dev/sdb3 0 - 0 0 Empty
/dev/sdb4 0 - 0 0 Empty
Successfully wrote the new partition table
Re-reading the partition table ...
If you created or changed a DOS partition, /dev/foo7, say, then use dd(1)
to zero the first 512 bytes: dd if=/dev/zero of=/dev/foo7 bs=512 count=1
(See fdisk(8).)
The number of cylinders for this disk is set to 1305.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
Command (m for help): <-- m
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)
Command (m for help): <-- t
Partition number (1-4): <-- 1
Hex code (type L to list codes): <-- L
0 Empty 1e Hidden W95 FAT1 80 Old Minix bf Solaris
1 FAT12 24 NEC DOS 81 Minix / old Lin c1 DRDOS/sec (FAT-
2 XENIX root 39 Plan 9 82 Linux swap / So c4 DRDOS/sec (FAT-
3 XENIX usr 3c PartitionMagic 83 Linux c6 DRDOS/sec (FAT-
4 FAT16 <32m style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "> 5 Extended 41 PPC PReP Boot 85 Linux extended da Non-FS data
6 FAT16 42 SFS 86 NTFS volume set db CP/M / CTOS / .
7 HPFS/NTFS 4d QNX4.x 87 NTFS volume set de Dell Utility
8 AIX 4e QNX4.x 2nd part 88 Linux plaintext df BootIt
9 AIX bootable 4f QNX4.x 3rd part 8e Linux LVM e1 DOS access
a OS/2 Boot Manag 50 OnTrack DM 93 Amoeba e3 DOS R/O
b W95 FAT32 51 OnTrack DM6 Aux 94 Amoeba BBT e4 SpeedStor
c W95 FAT32 (LBA) 52 CP/M 9f BSD/OS eb BeOS fs
e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a0 IBM Thinkpad hi ee EFI GPT
f W95 Ext'd (LBA) 54 OnTrackDM6 a5 FreeBSD ef EFI (FAT-12/16/
10 OPUS 55 EZ-Drive a6 OpenBSD f0 Linux/PA-RISC b
11 Hidden FAT12 56 Golden Bow a7 NeXTSTEP f1 SpeedStor
12 Compaq diagnost 5c Priam Edisk a8 Darwin UFS f4 SpeedStor
14 Hidden FAT16 <3 style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">16 Hidden FAT16 63 GNU HURD or Sys ab Darwin boot fb VMware VMFS
17 Hidden HPFS/NTF 64 Novell Netware b7 BSDI fs fc VMware VMKCORE
18 AST SmartSleep 65 Novell Netware b8 BSDI swap fd Linux raid auto
1b Hidden W95 FAT3 70 DiskSecure Mult bb Boot Wizard hid fe LANstep
1c Hidden W95 FAT3 75 PC/IX be Solaris boot ff BBT
Hex code (type L to list codes): <-- fd
Changed system type of partition 1 to fd (Linux raid autodetect)
Command (m for help): <-- t
Partition number (1-4): <-- 2
Hex code (type L to list codes): <-- fd
Changed system type of partition 2 to fd (Linux raid autodetect)
Command (m for help): <-- w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
# mdadm --create /dev/md0 --level=1 --raid-disks=2 missing /dev/sdb1
# mdadm --create /dev/md1 --level=1 --raid-disks=2 missing /dev/sdb2
En el explica como configurar RAID en sistemas productivos con LVM y GRUB. En este manual se utilizara Centos 5 , 2 discos duros /dev/sda y /dev/sdb los cuales deben de ser de las mismas características /dev/sda/ ya esta configurado y /dev/sdb es un disco nuevo sin informacion.
- /dev/sda1: /boot partition, ext3;
- /dev/sda2: es usada para LVM (volume group VolGroup00) y contine / (volume LogVol00) y swap (volume LogVol01).
- /dev/md0 (puesto por /dev/sda1 y /dev/sdb1): /boot partition, ext3;
- /dev/md1 (puesto por /dev/sda2 y /dev/sdb2): LVM (volume group VolGroup00), contiene / (volume LogVol00) y swap (volume LogVol01).
comando df muestra la cantidad de espacio disponible y usado en las particiones
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
266G 139G 115G 55% /
/dev/sda1 99M 75M 19M 80% /boot
none 3.9G 0 3.9G 0% /dev/shm
fdisk es un comando de manipulación de particiones
# fdisk -l
Disk /dev/sda: 292.3 GB, 292326211584 bytes
255 heads, 63 sectors/track, 35539 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 35539 285362595 8e Linux LVM
Disk /dev/sdb: 292.3 GB, 292326211584 bytes
255 heads, 63 sectors/track, 35539 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk /dev/sdb doesn't contain a valid partition table
utilizamos el comando pvdisplay que permite ver los atributos de uno o mas dispocitivos fisicos de almacenamiento
# pvdisplay
--- Physical volume ---
PV Name /dev/sda2
VG Name VolGroup00
PV Size 272.14 GB / not usable 18.41 MB
Allocatable yes
PE Size (KByte) 32768
Total PE 8708
Free PE 5
Allocated PE 8703
PV UUID UOsZLo-tA91-Gg6H-AR4H-zNC5-aFre-6Oi7b5
utilizamos vgdisplay para ver los atributos de los grupos de volúmenes
# vgdisplay
--- Volume group ---
VG Name VolGroup00
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 3
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 1
Act PV 1
VG Size 272.12 GB
PE Size 32.00 MB
Total PE 8708
Alloc PE / Size 8703 / 271.97 GB
Free PE / Size 5 / 160.00 MB
VG UUID CyPUXB-5FI0-FT5m-3abs-4btK-2wLf-LqGSl2
utiliamos el comando lvdiplay para ver los atributos de los volúmenes lógicos
# lvdisplay
--- Logical volume ---
LV Name /dev/VolGroup00/LogVol00
VG Name VolGroup00
LV UUID v50HGy-DfSm-Qn2c-aEms-faqa-fl4V-jnUNfP
LV Write Access read/write
LV Status available
# open 1
LV Size 270.03 GB
Current LE 8641
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
--- Logical volume ---
LV Name /dev/VolGroup00/LogVol01
VG Name VolGroup00
LV UUID kjJlJm-yGgQ-Ummv-NNeM-1jAC-Zqda-ec7FWN
LV Write Access read/write
LV Status available
# open 1
LV Size 1.94 GB
Current LE 62
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:1
estos datos nos serviran para compara informacion al terminar de hacer nuestra configuración. Instalamos la paqueteria necesaria
# yum-y install mkinitrd mdadm
instalamos los módulos necesarios al kernel
# modprobe linear
# modprobe multipath
# modprobe raid0
# modprobe raid1
# modprobe raid5
# modprobe raid6
# modprobe raid10
Verificamos la correcta integración de los módulos cargados
# cat /proc/mstats
el resultado es el siguiente
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
unused devices:
copiamos la particiones del /dev/sda al /dev/sdb para que los discos tengan exactamente la misma estructura
# sfdisk -d /dev/sda | sfdisk /dev/sdb
Checking that no-one is using this disk right now ...
OK
Disk /dev/sdb: 35539 cylinders ,255 heads, 63 sectors/track,
Checking that no-one is using this disk right now ...
OK
Disk /dev/sdb: 35539 cylinders ,255 heads, 63 sectors/track,
Units = cylinders of 16065 * 512 = 8225280 bytes
sfdisk: ERROR: sector 0 does not have an msdos signature
/dev/sdb: unrecognized partition table type
Old situation:
No partitions found
New situation:
Units = sectors of 512 bytes, counting from 0
Device Boot Start End #sectors Id System
/dev/sdb1 * 63 208844 208782 83 Linux
/dev/sdb2 208845 20964824 20755980 8e Linux LVM
/dev/sdb3 0 - 0 0 Empty
/dev/sdb4 0 - 0 0 Empty
Successfully wrote the new partition table
Re-reading the partition table ...
If you created or changed a DOS partition, /dev/foo7, say, then use dd(1)
to zero the first 512 bytes: dd if=/dev/zero of=/dev/foo7 bs=512 count=1
(See fdisk(8).)
utilizamos el comando fdisk para verificar que tengan la misma estructura.
# fdisk -l
Disk /dev/sda: 292.3 GB, 292326211584 bytes
255 heads, 63 sectors/track, 35539 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 35539 285362595 8e Linux LVM
Disk /dev/sdb: 292.3 GB, 292326211584 bytes
255 heads, 63 sectors/track, 35539 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdb1 * 1 13 104391 83 Linux
/dev/sdb2 14 35539 285362595 8e Linux LVM
ahora cambiaremos el tipo de partición para el disco /dev/sdb para que funcione como raid0
# fdisk /dev/sdb
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
Command (m for help): <-- m
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)
Command (m for help): <-- t
Partition number (1-4): <-- 1
Hex code (type L to list codes): <-- L
0 Empty 1e Hidden W95 FAT1 80 Old Minix bf Solaris
1 FAT12 24 NEC DOS 81 Minix / old Lin c1 DRDOS/sec (FAT-
2 XENIX root 39 Plan 9 82 Linux swap / So c4 DRDOS/sec (FAT-
3 XENIX usr 3c PartitionMagic 83 Linux c6 DRDOS/sec (FAT-
4 FAT16 <32m style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "> 5 Extended 41 PPC PReP Boot 85 Linux extended da Non-FS data
6 FAT16 42 SFS 86 NTFS volume set db CP/M / CTOS / .
7 HPFS/NTFS 4d QNX4.x 87 NTFS volume set de Dell Utility
8 AIX 4e QNX4.x 2nd part 88 Linux plaintext df BootIt
9 AIX bootable 4f QNX4.x 3rd part 8e Linux LVM e1 DOS access
a OS/2 Boot Manag 50 OnTrack DM 93 Amoeba e3 DOS R/O
b W95 FAT32 51 OnTrack DM6 Aux 94 Amoeba BBT e4 SpeedStor
c W95 FAT32 (LBA) 52 CP/M 9f BSD/OS eb BeOS fs
e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a0 IBM Thinkpad hi ee EFI GPT
f W95 Ext'd (LBA) 54 OnTrackDM6 a5 FreeBSD ef EFI (FAT-12/16/
10 OPUS 55 EZ-Drive a6 OpenBSD f0 Linux/PA-RISC b
11 Hidden FAT12 56 Golden Bow a7 NeXTSTEP f1 SpeedStor
12 Compaq diagnost 5c Priam Edisk a8 Darwin UFS f4 SpeedStor
14 Hidden FAT16 <3 style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">16 Hidden FAT16 63 GNU HURD or Sys ab Darwin boot fb VMware VMFS
17 Hidden HPFS/NTF 64 Novell Netware b7 BSDI fs fc VMware VMKCORE
18 AST SmartSleep 65 Novell Netware b8 BSDI swap fd Linux raid auto
1b Hidden W95 FAT3 70 DiskSecure Mult bb Boot Wizard hid fe LANstep
1c Hidden W95 FAT3 75 PC/IX be Solaris boot ff BBT
Hex code (type L to list codes): <-- fd
Changed system type of partition 1 to fd (Linux raid autodetect)
Command (m for help): <-- t
Partition number (1-4): <-- 2
Hex code (type L to list codes): <-- fd
Changed system type of partition 2 to fd (Linux raid autodetect)
Command (m for help): <-- w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
verificamos que las particiones se convirtieron correctamente .
# fdisk -l
Disk /dev/sda: 292.3 GB, 292326211584 bytes
255 heads, 63 sectors/track, 35539 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 35539 285362595 8e Linux LVM
Disk /dev/sdb: 292.3 GB, 292326211584 bytes
255 heads, 63 sectors/track, 35539 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdb1 * 1 13 104391 fd Linux raid autodetect
/dev/sdb2 14 35539 285362595 fd Linux raid autodetect
Nos aseguramos que no exista ningún remanente de particiones RAID anteriores
# mdadm --zero-superblock /dev/sdb1
# mdadm --zero-superblock /dev/sdb2
# mdadm --zero-superblock /dev/sdb2
Creamos las particiones RAID en los discos /dev/sdb1 y /dev/sdb2 por el momento no podemos crear las de /dev/sda1 y /dev/sda2 por que el sistema esta funcionando con esas particiones .
# mdadm --create /dev/md0 --level=1 --raid-disks=2 missing /dev/sdb1
# mdadm --create /dev/md1 --level=1 --raid-disks=2 missing /dev/sdb2
verificamos con el comando cat que los RAID se activaron correctamente
# cat /proc/mdstat
ahora creamos el sistema de archivos que vamos a utilizar en nuestra No LVM_RAID
#mkfs.ext3 /dev/md0
ahora cremaos el sistema de volumens para nuestra particion RAID
# pvcreate /dev/md1
creamos el grupo de volúmenes extendido
# vgestend VolGrup00 /dev/md1
ahora creamos el archivo de configuracion /etc/mdadm.conf
# mdadm --examine --scan > /etc/mdadm.conf
*** debemos tener a la mano un disco de emergencia y resplado de los archivos que estamos modificando.
Modificamos el archivo /etc/fstab y cambialos la etiqueta LABEL=/boot /boot por /dev/md0 /boot
# vi /etc/fstab
continua
Suscribirse a:
Entradas (Atom)