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
jueves, 26 de noviembre de 2009
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
lunes, 23 de noviembre de 2009
Configurar Portsentry
Portsentry es una aplicación que provee protección contra ataques de barrido de puerto y ataques de DDoS, la aplicacion utiliza las bondades de tcpwrappers e iptables para bloquear hosts con comportamientos anormales
para comenzar la instalacion creamos un directorio de trabajo
#mkdir ~/tmp/portsentry ; cd ~/tmp/portsentry
descargamos la aplicación del sitio oficial
#wget http://sourceforge.net/projects/sentrytools/files/portsentry%201.x/portsentry-1.2/portsentry-1.2.tar.gz/download
#wget http://sourceforge.net/projects/sentrytools/files/portsentry%201.x/portsentry-1.2/portsentry-1.2.tar.gz.md5/download
verificamos la integridad del archivo
# md5sum -c portsentry-1.2.tar.gz.md5
descomprimimos el paquete portsentry
# tar -xvzf portsentry-1.2.tar.gz
# cd portsentry_beta
dentro del archivo portsentry_config.h podemos observar los directorios donde se guardaran los archivos de configuración.
compilamos la aplicación
# make linux
# make install
editamos el archivo de configuracion que se ubica por default "/usr/local/psionic/portsentry/portsentry.conf"
# vi /usr/local/psionic/portsentry/portsentry.conf
el archivo de configuracion es algo largo de explicar así que seré algo breve
los parametro TCP_PORTS y UDP_PORTS , indican los puertos que seran constantemente revisados , pueden ir separados por "," o "-" de la misma manera funcionan los ADVANCED_PORTS_TCP y ADVANCED_PORTS_UDP
el parámetro ADVANCED_EXCLUDE_TCP y ADVANCED_EXCLUDE_UDP nos ayudaran a excluir puertos que son necesarios para nuestra operación .
el parametro BLOCK_UDP y BLOCK_TCP , indican que se va a hacer con los resultados positivos. 0 no hacer nada. 1 bloquear, 2 ejecutar un comando personalizado
en mi experiencia recomiendo descomenta la sig. linea
KILL_ROUTE="/usr/local/bin/iptables -I INPUT -s $TARGET$ -j DROP"
KILL_HOSTS_DENY="ALL: $TARGET$"
la linea 1 bloquea al atacante via iptables y la segunda via tcpwrappers, pero ud podra tomar la elección que mejor se adecue a sus necesidades.
editamos el archivo portsentry.ignore, el cual indicaremos los host que están exentos de bloqueo
#vi /usr/local/psionic/portsentry/portsentry.ignore
copiamos el archivo portsentry al /etc/init.d/
# cp portsentry /etc/init.d
# chmod 755 /etc/init.d/portsentry
iniciamos el servicio de porsentry
# service portsentry start
como todos las aplicaciones tendremos falsos positivos los cuales tendremos que borrar de la sig forma
editamos el archivo /etc/hosts.deny y eliminamos el ip falso
#vi /etc/hosts.deny
eliminamos la regla del iptables
# iptables -L
Detectamos la regla
# Iptables -D y la regla
Detectamos la regla
# Iptables -D y la regla
# service iptables save
Como configurar Chkrootkit
Chkrootkit es una aplicaciones que proveen de seguridad a nivel Host, Chkrootkit provee de informacion de integridad de los binarios instalados en nuestros sistemas, este verifica las firmas digitales de cada uno de nuestro binarios instalados y sus comportamientos
como primer paso creamos un directorio de trabajo
# mkdir ~/tmp/ ; cd ~/tmp; mkdir chkrootkit; cd chkrootkit
bajamos las aplicaciones con sus archivos hash
# wget --passive-ftp ftp://ftp.pangeia.com.br/pub/seg/pac/chkrootkit.tar.gz
# wget --passive-ftp ftp://ftp.pangeia.com.br/pub/seg/pac/chkrootkit.md5
verificamos la integridad del paquete
#md5sum -c chkrootkit.md5
copiamos el paquete al directorio /usr/local/
#cp chkrootkit.tar.gz /usr/local ; cd /usr/local
descomprimimos el archivo
# tar -xvzf chkrootkit.tar.gz
ingresamos al directorio
# cd chkrootkit-0.49
compilamos la aplicación
# make sense
agregamos la aplicación al cron para que se ejecute diariamente
# vi /etc/crontab
agregamos la siguiente linea al cron
0 3 * * * root /usr/local/chkrootkit-0.49/chkrootkit
y diariamente a las 3 am nos enviara información acerca de la integridad de nuestros binarios importantes del sistema. este complementa la información enviada por aide.
Configurando logwatch para automatizacion de lecturas de log
Log watch es un analizador de logs adaptable a nuestras necesidades, Logwatch analiza los logs en tu sistema en tiempos determinados y crea reportes en las tareas especificas que deceas analizar al detalle que requiera .
para instalar el programa instalamos primeramente el repositodio de 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 el programa necesario por medio de yum
# yum -y install logwatch
hacemos un respaldo del archivo de configuracion de logwatch ubicado en /etc/log.d/logwatch.conf
# cp /etc/log.d/logwatch.conf /etc/log.d/logwatch.conf-OLD
editamos el archivo /etc/log.d/logwatch.conf con las configuraciones que requerimos, el archivo se encuentra 100% documentado y explicado como adecuar a nuestras necesidades la aplicacion, en nuestro caso veremos como configurarlo con el mas alto nivel de información
# vi /etc/log.d/logwatch.conf
// indica el directorio donde tomara los logs
LogDir = /var/log
//directorio temporal
TmpDir = /tmp
//a que usuario enviara el correo generado con la informacion de los logs, existe la opcion de guardarlo en archivo
MailTo = root
// en este parametro al colocar "Yes" la salida sera enviada en pantalla y no por correo
Print = No
// dejar este parámetro en "Yes" si ud desea usar MkTemp y su versión soporta la opción -d
UseMkTemp = Yes
// folder MkTemp
MkTemp = /bin/mktemp
// se utiliza para indicar al programa que busque información en los archivos /var/log/message.1 o /var/log/messages.1.gz y no solo en /var/log/messages
Archives = Yes
//se utiliza para especificar el rango de periodo que recolectara la informacion de los logs . las opciones son , Today, Yesterday, All ,
Range = yesterday
//india el nivel de detalle de la información que sera enviara los parametros pueden ser Low, Med, High
Detail = High
// indica que servicios serán incluidos en el reporte para ver mas detalle en el archivo de configuración
Service = All
//indica el programa que utilizara para enviar el correo electronico
mailer = /bin/mail
para activar el script ( el rpm lo genera automatico ) se puede generar un enlace simbolico en el folder /etc/cron.daily de la sig manera
# ln -s /etc/log.d/scripts/logwatch.pl /etc/cron.daily
esto generara un reporte diario a las 4:00 am
Suscribirse a:
Entradas (Atom)