lunes, 9 de julio de 2018

instalar Slackware 14.2

Hoy vamos a realizar una instalación básica de Slackware.

Como entorno para la instalación tenemos un PC con las siguientes caracteristicas
- Procesador Core 2 Duo
- 1GB de Ram
- 1HD de 64GB
- Teclado español latinoamericano

0. Preparativos previos:

Descargamos la ISO de slackware de
https://mirrors.slackware.com/slackware/slackware-iso/slackware64-14.2-iso/slackware64-14.2-install-dvd.iso
esta ISO pesa 2.6GB la quemamos en un DVD

1. Inicio

Para iniciar debemos de configurar nuestro BIOS para que cargue desde la unidad DVD e iniciar el booteo con el DVD.

Tendremos una pantalla sencilla y muy agradable:
En esta parte podemos indicar como iniciaremos el instalador, quizá necesitemos algunas características especiales para soportar dispositivos, o solo haremos un testeo de memoria. En otro post explicaremos como usar esto a mayor detalle. 

Por ahora daremos [ENTER]

2. Teclado

Tendremos una pantalla para la selección del teclado, para seleccionar el teclado es necesario poner el valor 1 [ENTER] en : 

Luego debemos seleccionar la opción correspondiente a nuestro teclado de la lista:

Al seleccionar la correcta configuración del teclado, puedes probar el mismo en el cuadro de texto que aparece a continuación. Si todo esta bien presionas [ENTER] 1 [ENTER], si todavía no es el teclado que te corresponde regresas a la pantalla de selección escribiendo [ENTER] 2 [ENTER]. 

En mi caso seleccione qwerty/la-latin1.map

3. Particionar el disco

En esta parte, primero nos pedirá loguearnos con usuario root (sin clave) y tendremos a linea de consola a nuestra disposición. 

Para particionar usaremos la herramienta cfdisk, pero si tienes mas experiencia utiliza fdisk (no hay problema
# cfdisk

- La primera parte indica el tipo de LABEL que pondremos al disco, pongamos por defecto DOS[ENTER], tendremos una pantalla como la siguiente:

Bueno ahora crearemos una estructura para nuestros disco duro, calculamos los tamaños de las unidades a crear de acuerdo a nuestra necesidad.
- Por defecto separa el tamaño de 2 x RAM para una memoria de intercambio SWAP
- Por defecto separamos 10GB para los archivos base de sistema. Slackware corre en 7GB con todos los paquetes instalados. 
- Si utilizaremos el disco para oficina, el resto de espacio debemos usarlo para la unidad que apunte a  /home (archivos de los usuarios), también aplica si usaras la máquina par servidor FTP
- Si usaremos el disco para un servidor de base de datos, webserver , la carpeta /var debe ser la de mayor tamaño.
Nosotros la usaremos para escritorio por tanto el particionado será de la siguiente manera:
- root: 10GB
- SWAP: 2GB  
- home: 52GB o restante, hay un espacio que ocupa la tabla de particiones y lo restante puede ser menor. 

Partición root:
new [ENTER] -> partition size: 10G [ENTER]-> primary [ENTER] 
type: 83 LINUX [ENTER] 
Bootable [ENTER]


Partición swap
FreeSpace
new [ENTER] -> partition size: 2G [ENTER] -> primary [ENTER]
type: 82 LINUX SWAP[ENTER]

Partición home
FreeSpace
new [ENTER] -> partition size: 52G [ENTER] -> primary [ENTER]
type: 83 LINUX [ENTER]

Tendremos al finalizar la siguiente estructura:


Luego escribiremos el disco con los cambios, con la opción write [ENTER] yes [ENTER], Si todo va bien tendremos el mensaje:
the partition table has been altered.

Luego de esto saldremos de cfdisk con quit[ENTER]

4. Formateo y distribución de unidades


Regresando a  línea de comandos con el usuario root y teniendo los requisitos listos debemos de iniciar la instalación con :
# setup[ENTER]

Vamos a iniciar con la opción 3 ADD SWAP [ENTER]

El instalador debe mostrar por defecto la unidad marcada como SWAP. Nos permite verificar si debemos ejecutar mkswap en la unidad, en este caso pondremos YES[ENTER]

Listo tenemos nuestra SWAP. Presionamos OK[ENTER]
Ahora debemos de seleccionar nuestra unidad root (raiz o /), como recordamos en el inicio indicamos que sería el de 10G (adicionalmente cuando lo particionamos lo marcamos como booteable). Presionamos SELECT[ENTER]
Recomiendo formatear con la segunda opcion (CHECK), sobre todo con los discos que ya tienen un tiempo de vida medio, así verificamos los bloques dañados. Si es un disco nuevo podremos dar la primera opción. 

Presionamos OK [ENTER]
Nos toca seleccionar el sistema de archivos, por defecto tenemos seleccionado la ultima versión estable de ext4. Presionamos [OK]

El instalador de slackware detectara la otra partición y nos preguntara para que la usaremos:
Presionamos SELECT[ENTER], luego nos indicara para formatear la unidad. Por defecto la formateamos y nos indicará a que carpeta lo vamos a apuntar
En esta sección pondremos /home  OK[ENTER]
Luego nos dará un resumen de los cambios que se van a realizar, solo los aceptamos [OK]

5. Instalación

En esta parte vamos a instalar los paquetes en nuestro sistema. Primero debemos seleccionar la unidad desde donde instalaremos:
Como lo  estamos instalando desde DVD, seleccionamos la primera opción y presionamos OK[ENTER]
Nos indicará si deseamos hacer una revisión del disco, lo ponemos por defecto la primera opción y presionamos OK[ENTER]

En esta parte tendremos que escoger los paquetes a instalar, podemos dejarlo por defecto, pero como tengo una PC con pocos recursos, voy excluir o desmarcar lo siguiente:
- KDE
- Games

Listo, presionamos OK[ENTER]
Podemos tener mayor control de lo que vamos a instalar en esta ventana. Por ahora seleccionaremos la primera opcion FULL -> OK [ENTER]

Y arrancan... comienza la instalación. Podemos dejar esto corriendo hasta que termine. 

6. Configurar el Arranque

Luego de terminada la instalación de paquetes nos preguntara si deseamos crear un usb booteable, por el momento nos saltamos este paso Skip OK[ENTER]


Luego tendremos que seleccionar la configuración del lanzador de Linux (lilo) dejamos la configuración por defecto 

simple OK[ENTER]

De igual forma en la selección de la interface que nos mostrara al iniciar el linux, seleccionamos standard OK[ENTER]

En el siguiente paso nos preguntará si queremos añadir parámetros adicionales al kernel, lo dejamos vacío y continuamos. 

Luego tendremos que activar el UTF-8 para las consolas, en la pantalla siguiente ponemos Yes[ENTER]

También tendremos que indicar donde instalar el arrancador, lo dejamos por defecto con MBR OK[ENTER]


Ahora debemos de seleccionar como esta conectado el mouse, en mi caso USB


OK[ENTER] y para configurar la linea que carga el mouse YES[ENTER]

7. Red y servicios

En esta parte vamos a configurar la red y los servicios:


Nos pedirá llenar algunos valores como:
hostname: mipc.com
domain: mipc.com

Luego podremos activar algunos servicios o demonios que queremos cargar al iniciar la PC. La dejamos por defecto. 

Luego nos preguntara sobre "Console font configuration" lo dejamos por defecto NO OK[ENTER]

Al seleccionar el tipo de configuración del reloj, lo dejamos por defecto. 

Luego debemos de escoger la zona horaria, en mi caso America/Lima OK[ENTER]


8. Escritorio de trabajo 

Vamos a configurar el escritorio de trabajo en el siguiente paso. Por ahora usaremos xinitrc.xfce OK[ENTER]

Finalmente asignaremos el password al usuario root 
el usuario root sera nuestro administrador, asi que no olvidemos el password. YES[ENTER]
Ingresamos y reingresamos el password y tendríamos terminada la instalación. OK[ENTER]


Listo , hemos regresado al menú de pasos y aquí debemos escoger EXIT OK[ENTER] y extraer el DVD de instalación. 
A la pregunta de reboot, reiniciamos el sistema. 


No debemos esperar el tiempo que dice abajo, presionamos enter y ya debe iniciar el arranque de Slackware. 



lunes, 25 de junio de 2018

Emacs: Encriptar archivos

Si necesitas seguridad adicional en tus archivos texto o código fuente, puedes usar Emacs como una herramienta de encriptado de archivos de manera muy fácil, para esto tenemos 2 caminos:

- Usando org-mode, lo archivos .org se pueden encriptar fácilmente añadiendo la extensión .gpg y luego una clave cuando emacs nos solicite la clave.

- Sin org-mode, al archivo que quieres encriptar debes añadirle en su primera linea los siguiente:
# -*- mode:org; epa-file-encrypt-to: ("me@mydomain.com") -*-

Luego al guardarlo le añadimos la extensión .gpg . Luego de esto el sistema lo procesara como un archivo org-mode encriptado y pedirá la clave.

PD: me@mydomain.com: debe ser el propietario de la encriptación, pongan allí su correo.


Emacs: Hacer consultas a base de datos en org-mode

El modo Org-mode de emacs es una herramienta de productividad increíble. Bajo esta interface es posible realizar consultas a base de datos, el resultado de estas pueden mostrarse inline en el mismo archivo .org. Para esto debemos de configurar algunas cosas pequeñas en Emacs.

1. Vamos a modificar nuestro archivo .emacs y añadir los lenguajes soportados
(org-babel-do-load-languages
'org-babel-load-languages
'((sql . t)))
;; add additional languages with '((language . t)))

(org-babel-do-load-languages
'org-babel-load-languages
'(
(emacs-lisp . t)
(org . t)
(sh . t)
(C . t)
(python . t)
(gnuplot . t)
(octave . t)
(R . t)
(dot . t)
(awk . t)
(sql . t)
))

2. Para poder conectarnos a una BD nuestro archivo .org tendremos que añadir algunos tags:
#+name: result-list
#+header: :engine mysql
#+header: :dbhost localhost
#+header: :dbuser mydbuser
#+header: :dbpassword mydbpass
#+header: :database mydatabase
#+begin_src sql :exports results
select * from table1 order by 1 desc;
#+end_src

#+RESULTS: result-list

Como observamos debemos de cambiar los valores :
engine: el motor de base de datos, en nuestro caso usamos mysql
dbhost: el host de la base de datos, en nuestro caso localhost o 127.0.0.1
dbuser: el usuario de base de datos
dbpass: la clave del usuario de base de datos
database: la base de datos a la que nos conectamos
name: indica el nombre del bloque de consulta, si observan en RESULT hay uno con el mismo nombre, quiere decir que el resultado de ejecutar el SQL se verá en el bloque RESULT
begin_src: esta es la consulta SQL que ejecutaremos

Para ejecutar la consulta nos ubicamos dentro del bloque del código y presionamos Ctrl+c Ctrl+c.

Mayor detalle en : https://orgmode.org/worg/org-contrib/babel/languages/ob-doc-sql.html

Linux: Comparar 2 archivos binarios

En esta ocasión vamos a verificar que un archivo es igual a otro, pero vamos a compara archivos binarios.

En mi caso he copiado un archivo ISO de un disco duro extorno a la PC y quiero verificar si se ha copiado correctamente. Para esto usamos diff <archivo1> <archivo2>

# diff /media/usb/archivo.iso ./archivo.iso

Si diff no envía mensaje de diferencia el archivo es idéntico, en caso contrario son distintos.


Linux: Crear un USB booteable

En esta ocasión vamos a crear un USB booteable partiendo de una ISO, esto sobre nuestro querido GNU/Linux.

1. Primero vamos a detectar el USB, para esto insertamos el USB en la PC y en consola ejecutamos
# sudo fdisk -l 
Nos aparecerá la unidad añadida, en mi caso es una unidad de 8G y formato FAT32


Como observamos nuestro dispositivo es /dev/sdb1, ahora desmontamos el dispositivo para poder iniciar el copiado.
# umount /dev/sdb1

2. Comenzamos a realizar la copia de la imagen ISO usando el comando dd, uno de los parámetros principales serán if (archivo de entrada o ISO) y of (archivo de salida o unidad USB)
# sudo dd bs=4M if=TuArchivo.iso of=/dev/sdb
Si observan el valor de of no esta completo /dev/sdb , le falta el valor 1 (/dev/sdb1) esto indica que estamos apuntando a toda la unidad y no a una partición de esta.

Ahora debemos esperar un poco hasta que se termine el copiado del archivo.

PD. Para crear un USB booteable con Windows 10 es necesario usar WoeUSB.

miércoles, 18 de noviembre de 2015

Revisar IPs en el Log de Apache para detener ataques de denegación de servicio

Como parte del mantenimiento de servidores web es necesario hacer revisión del número de accesos de los usuarios a nuestro servidor web para detectar un ataque de denegación de servicio. Para esto veremos como revisar el Log de nuestro servidor web Apache.

Para realizar la revisión buscaremos las IPs que tienen mas de 500 visitas a nuestro portal, para luego bloquearlas. Esto bajo el supuesto que las IPs que pasan las 500 visitas están realizando ataques a nuestra web. (Puede tomar otro valor mayor o menor según como Ud. considere)

Para esto ejecutamos las siguientes líneas.

FILE=/var/log/httpd/access_log;
 for ip in `sudo cat $FILE |cut -d ' ' -f 1 |sort |uniq`;
 do { COUNT=`sudo grep ^$ip $FILE |wc -l`;
 if [[ "$COUNT" -gt "500" ]]; then echo "$COUNT:   $ip";
 fi }; done

La ejecución anterior nos devolverá las IPs con los números de visitas de estas IPs, podemos ayudarnos con una herramienta de Tracking Web  ( como http://www.ip-tracker.org/) para ver cual es el origen de estas IPs y hacer un análisis de que acción tomar con estas IPs. Por ejemplo, si nuestro portal vende productos peruanos a los peruanos, y observamos en los Logs excesivas visitas de Rusia o USA, deberíamos bloquear esas IPs.

Para bloquear las IPs podemos hacerlo actualizando nuestro portal web, específicamente el archivo .htaccess al cual añadiremos las siguientes líneas (donde IPx es la IP del visitante)

order allow,deny
deny from IP1
deny from IP2
...
deny from IP3
allow from all 

lunes, 27 de octubre de 2014

Error instalando RSA en GNU/Linux (libstdc++.so.5)

Al instalar IBM RSA recientemente en GNU/Linux Ubuntu aparece el problema: "libstdc++.so.6 and libstdc++.so.5 not found in LIBRARY PATH" para solucionar el problema seguiremos los siguientes pasos:

Primero instalamos la librería libstdc++.so.5 en ubuntu
$sudo apt-get install libstdc++5 libstdc++5:i386

Luego debemos de crear un enlace simbólico a una carpeta accesible al RSA:

$sudo ln -s /usr/lib/i386-linux-gnu/libstdc++.so.5 /usr/lib32/libstdc++.so.5

Listo, ahora si podemos instalar RSA
$sudo RSA_SETUP/InstallerImage_linux_gtk_x86/install

Emacs en windows: arranque rápido

En windows la carga de emacs implica una demora en windows pero se puede mejorar usando el demonio de emacs y modificar la llamada usando el...