Usando Linux para muchas cosas y disfrutando de videojuegos, en dispositivos moviles, consolas y pc. Using Linux for many things and enjoying video games, mobile devices, consoles and pc

Como instalar de forma automatica con Kickstart un Linux Centos

DriveMeca instalando Linux Centos con kickstart de forma automática
El tiempo es oro y por lo general no nos alcanza como quisiéramos, por ello siempre andamos a la búsqueda de automatizar tareas. Una de las formas de ganar tiempo es haciendo instalaciones desatendidas o en modo automático como veremos hoy en este articulo, como instalar de forma automática con kickstart un Linux Centos.
Kickstart es como una navaja suiza, tiene infinidad de opciones y se puede "moldear" a tus necesidades convirtiéndola en una gran herramienta que debemos conocer. Con este articulo solo te mostrare algunas de las variantes pero si quieres profundizar mucho mas, te aconsejo leas la guía de RedHat (abajo te doy el link) y pruebes y pruebes :-)
Ya entrando en materia, para este articulo usare un Linux Centos 7 actualizado a la fecha al que le instale gnome para poder ejecutar la versión gráfica de kickstart.

Requerimientos



-Instalamos dependencias
sudo yum install system-config-kickstart pykickstart
DriveMeca instalando Linux Centos con kickstart de forma automática

-Hacemos una copia del archivo de instalación de nuestro equipo actual Linux Centos y le cambiamos los permisos para que nuestra cuenta de usuario pueda modificarlo
sudo cp /root/anaconda-ks.cfg micentos-ks.cfg
sudo chown drivemeca.drivemeca micentos-ks.cfg

-Ejecutamos system-config-kickstart y le pasamos como parámetro el .cfg creado a partir del original

system-config-kickstart micentos-ks.cfg
DriveMeca instalando Linux Centos con kickstart de forma automática

-Ya en kickstart verificamos nuestra configuración
DriveMeca instalando Linux Centos con kickstart de forma automática

-Guardamos los cambios al salir
DriveMeca instalando Linux Centos con kickstart de forma automática

-En nuestro archivo kickstart micentos-ks.cfg
DriveMeca instalando Linux Centos con kickstart de forma automática

-Editamos nuestro archivo kickstart. Mas información de opciones y sus parámetros en la Kickstart Syntax reference de RedHat
vi micentos-ks.cfg
install
#cambio el teclado a español latino
keyboard --vckeymap=latam --xlayouts='latam'

rootpw --iscrypted $1$V2SxNfyt$4X/p09gk5SouoQ38a7oLg0

#habilito el servicio sshd
services --enabled="sshd"

#cambio la zona horaria, idioma español colombia
timezone America/Bogota
lang es_CO

#deshabilito el firewall
firewall --disabled
auth  --useshadow  --passalgo=sha512

#la instalación sera desde cdrom en modo texto
cdrom
text
firstboot --enable

#deshabilito selinux
selinux --disabled

#no ejecutaremos X
skipx

#instalaremos en el disco sda, verifica si es así para ti (instalaras en IDE, por ejemplo)
ignoredisk --only-use=sda

#activamos nuestra interface de red por dhcp, habilitamos ipv6 y cambiamos nuestro hostname
network  --bootproto=dhcp --device=enp0s3 --ipv6=auto --activate
network --hostname=cen7.test.com

#reiniciamos al terminar la instalación
reboot

#inicializamos el disco y lo tomamos completo para Linux Centos
bootloader --append="crashkernel=auto" --location=mbr --boot-drive=sda
clearpart --drives=sda --all --initlabel

#Esquema particionado propuesto para este articulo:
#/boot
#swap
#/
#/var/lib/pgsql
#/var/log

part /boot --fstype="xfs" --ondisk=sda --size=381
part pv.218 --fstype="lvmpv" --ondisk=sda --size=20098
volgroup centos --pesize=4096 pv.218
logvol swap  --fstype="swap" --size=1907 --name=swap --vgname=centos
logvol /  --fstype="xfs" --size=5722 --name=root --vgname=centos
logvol /var/lib/pgsql  --fstype="xfs" --size=7686 --name=var_lib_pgsql --vgname=centos
logvol /var/log  --fstype="xfs" --size=4768 --name=var_log --vgname=centos

#agregamos grupos de paquetes junto a paquetes específicos que queremos instalados
%packages
@core
@net-tools

%end

-Validamos todo este correcto
ksvalidator micentos-ks.cfg

-Descargamos el ISO de Linux Centos minimal. Esto es necesario para generar un nuevo ISO y agregarle el micentos-ks.cfg para una instalación desatendida
wget -c http://mirror.rackspace.com/CentOS/7.2.1511/isos/x86_64/CentOS-7-x86_64-Minimal-1511.iso

-Montamos el ISO
sudo mkdir /media/micentos
sudo mount -o loop -t iso9660 CentOS-7-x86_64-Minimal-1511.iso /media/micentos

-Creamos una copia para poder modificarlo
mkdir /tmp/cdrom
cp -R /media/micentos/ /tmp/cdrom/

-Cambiamos sus atributos para poder modificarlo
sudo chmod 644 /tmp/cdrom/micentos/isolinux/isolinux.cfg

-Editamos y agregamos que lea nuestro kickstart
sudo vi /tmp/cdrom/micentos/isolinux/isolinux.cfg
label Kickstart
menu label ^K) Instalar RHEL 7 x64 con Kickstart desatendido
menu default
kernel vmlinuz
append initrd=initrd.img inst.ks=cdrom:/isolinux/micentos-ks.cfg inst.vnc inst.vncpassword=contraseña

-Copiamos nuestro cfg de kickstart
sudo cp /home/drivemeca/micentos-ks.cfg /tmp/cdrom/micentos/isolinux/

-Generamos el nuevo ISO. OJO, debe haber suficiente espacio libre para crear el ISO y recuerden poner el . (punto) final
cd /tmp/cdrom/micentos
mkisofs -o /tmp/cdrom/Centos_7.2_kickstart.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-info-table -boot-load-size 4 -R -J -T .

..
..
99.56% done, estimate finish Sun Mar 13 14:45:43 2016
Total translation table size: 96516
Total rockridge attributes bytes: 43005
Total directory bytes: 73728
Path table size(bytes): 140
Max brk space used 7d000
351546 extents written (686 MB)

-Ya tenemos nuestro ISO personalizado
ls -la ../
total 703096
drwxr-xr-x  3 root root        52 mar 13 14:45 .
drwxr-xr-x. 3 root root        18 mar 13 14:36 ..
-rw-r--r--  1 root root 719966208 mar 13 14:45 Centos_7.2_kickstart.iso
dr-xr-xr-x  8 root root      4096 mar 13 14:37 micentos

-Generamos un CDROM o USB booteable con nuestro ISO y lo probamos en un equipo. Para esto hemos activado la opción de vnc, el nos pedirá cambio de contraseña y nos dirá que ip tomo por DHCP
DriveMeca instalando Linux Centos con kickstart de forma automática

-Después de escribir la nueva contraseña nos dirá la ip y puerto a la que podemos conectarnos con vnc para ver la instalación
DriveMeca instalando Linux Centos con kickstart de forma automática

-La instalación vista desde un vnc
DriveMeca instalando Linux Centos con kickstart de forma automática

Ahora que ya viste como hacerlo, que ideas se te ocurren? ya haz usado kickstart, en que versiones de Linux Centos?, escríbeme en los comentarios aquí debajo y pasa la voz compartiendo el tweet.


Sígueme en twitter google+facebook o email y podrás estar enterado de todas mis publicaciones.
Disfrútenlo.

Share/Bookmark

Como instalar y configurar Fail2ban en Linux Centos

DriveMeca instalando y configurando Fail2ban en un servidor Linux Centos
Ya casi es común escuchar noticias de ataques por internet a empresas conocidas, reconocelo, el que no seas popular o famoso no quiere decir que tu servidor esta fuera de peligro por lo cual hoy mostraremos una forma de estar preparados para estos ataques protegiendo el puerto ssh. Nuestro articulo el día de hoy sera como instalar y configurar paso a paso fail2ban en un servidor linux centos. Los ataques no solo son por el puerto ssh (22 - tcp) pero si son los mas comunes y con fail2ban podemos de forma automática protegernos de este y otros ataques sin que sea tan complicado de manejar.

Requerimientos


-Comenzamos instalando el repositorio Epel

Articulo a consultar: Potencia tu Linux Centos; instala los repositorios RPMForge / Epel / Remi

Para Centos 6

yum install http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

Para Centos 7

yum install http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm

-Instalamos fail2ban habilitando el repositorio epel
yum install --enablerepo=epel fail2ban

-Creamos un jail para sshd independiente, sin tocar el conf principal (bloqueara una ip después de 5 intentos fallidos de conexion)
vi /etc/fail2ban/jail.d/sshd.local
[sshd]
enabled = true
port = ssh
logpath = %(sshd_log)s
maxretry = 5
bantime = 86400

-Habilitamos el servicio de fail2ban y lo ejecutamos
Para Centos 6

chkconfig fail2ban on
service fail2ban restart

Para Centos 7

systemctl enable fail2ban.service
systemctl restart fail2ban.service

-Verificamos ejecución de servicio fail2ban
fail2ban-client ping
Server replied: pong

-Estado de fail2ban
fail2ban-client status
Status
|- Number of jail: 1
`- Jail list: sshd

-Verificamos como va trabajando nuestro jail sshd
fail2ban-client status sshd
Status for the jail: sshd
|- Filter
|  |- Currently failed: 3
|  |- Total failed: 21
|  `- File list: /var/log/secure
`- Actions
   |- Currently banned: 3
   |- Total banned: 3
   `- Banned IP list: 125.88.177.95 222.186.31.181 58.218.198.49

-Como se ve desde iptables
iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination      
f2b-sshd   tcp  --  anywhere             anywhere            multiport dports ssh

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination      

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination      

Chain f2b-sshd (1 references)
target     prot opt source               destination      
REJECT     all  --  58.218.198.49        anywhere            reject-with icmp-port-unreachable 
REJECT     all  --  222.186.31.181       anywhere            reject-with icmp-port-unreachable 
REJECT     all  --  125.88.177.95        anywhere            reject-with icmp-port-unreachable
RETURN     all  --  anywhere             anywhere

-Como agregar ips para que no se bloqueen
fail2ban-client set sshd addignoreip 10.8.0.202
These IP addresses/networks are ignored:
|- 127.0.0.1/8
`- 10.8.0.202

-Agregar una subred a ips ignoradas
fail2ban-client set sshd addignoreip 10.8.0.0/24

-Eliminar ips ignoradas
fail2ban-client set sshd delignoreip 10.8.0.202

-Verificar ips ignoradas
fail2ban-client get sshd ignoreip
These IP addresses/networks are ignored:
|- 127.0.0.1/8
`- 10.8.0.0/24

-Bloquear (bannear) una ip manualmente
fail2ban-client set sshd banip 104.43.20.94

-Desbloquear (eliminar) una ip manualmente
fail2ban-client set sshd unbanip 104.43.20.94

-En caso de dudas, podemos ejecutar fail2ban-client sin parámetros y se nos mostrara un listado de comandos con su explicación corta

Ya usas fail2ban para proteger los puertos de tus servidores de ataques? usas otra alternativa?, escríbeme en los comentarios aquí debajo y pasa la voz compartiendo el tweet.

Sígueme en twitter google+facebook o email y podrás estar enterado de todas mis publicaciones.
Disfrútenlo.

Share/Bookmark

Como instalar phpMyFAQ en Linux Centos paso a paso

DriveMeca instalando phpMyFAQ en un servidor Linux Centos paso a paso
El conocimiento es poder, seguramente ya lo han escuchado (incluido en algunas de mis respuestas en twitter) y es una frase que tiene mucha razón. Ahora, hay que saber administrarlo bien o simplemente se pierde. Una de las formas es crear bases de conocimiento (knowledge base) que nos permitan almacenar todo ese conocimiento e irlo puliendo con correcciones, agregarle cosas, etc.
Para manejar esta base de conocimiento hoy veremos como instalar phpMyFAQ en un servidor Linux Centos paso a paso. phpMyFAQ es un proyecto desarrollado en php que usa un motor de bases de datos y en sus ultimas versiones agrega muchas características como conectar con las redes sociales mas populares (facebook, twitter, etc)

Requerimientos




-Instalamos dependencias
yum install wget  mariadb-server mariadb httpd
yum install --enablerepo=remi-php56 php-gd php-pecl-jsonc php-common php-mbstring php-xml php-mysql

-Modificamos el conf de php
vi /etc/php.ini
register_globals = off
safe_mode = off
memory_limit = 128M

MariaDB


-Activamos el servicio y lo ejecutamos
systemctl enable mariadb.service
systemctl start mariadb.service

-Aseguramos la configuración de MariaDB. Los defaults son suficiente, solo colocamos contraseña a la cuenta root de MariaDB
mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none):
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n]
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
 ... Success!


By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n]
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n]
 ... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n]
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n]
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

-Ingresamos a MariaDB como root, creamos una db para phpMyFAQ y un usuario admin para ella con su contraseña
mysql -u root -p
create database faqdb;
GRANT ALL ON faqdb.* TO faqusr@localhost IDENTIFIED BY 'contraseña';
flush privileges;
exit;

Apache httpd


-Activamos y ejecutamos el servicio
systemctl enable httpd.service
systemctl start httpd.service


phpMyFAQ


-Nos cambiamos el directorio html de apache y descargamos phpMyFAQ
cd /var/www/html
wget -c http://download.phpmyfaq.de/phpMyFAQ-2.8.26.tar.gz
DriveMeca instalando phpMyFAQ en un servidor Linux Centos paso a paso


-Descomprimimos el archivo
tar xzvf phpMyFAQ-2.8.26.tar.gz

-Creamos directorios necesarios de phpMyFAQ, cambiamos sus permisos y activamos a apache como owner de todos los directorios
mkdir phpmyfaq/attachments
mkdir phpmyfaq/data
mkdir phpmyfaq/images
chmod 775 phpmyfaq/attachments phpmyfaq/data phpmyfaq/images
chown -R apache.apache phpmyfaq/

-Abrimos un browser y navegamos a http://ip-servidor-centos/phpmyfaq. En la pagina que veremos elegimos:
Database server: MariaDB 5.x
Database hostname: localhost
Database user: faqusr
Database password: contraseña
Database name: faqdb

Default lenguaje: Spanish
Permision level: Basic
Your Name: Tu nombre
Your email address: Tu email
Your login name: usuario admin
Your password: contraseña de admin
Retype password: volvemos a escribir la contraseña de admin

Damos click al botón Click to install phpMyFAQ
DriveMeca instalando phpMyFAQ en un servidor Linux Centos paso a paso

-Después de un rato (en que aprovechamos para ir por un café) ya tendremos nuestro phpMyFAQ instalado. Se nos pedirá llenar una encuesta para los desarrolladores, algo útil para retroalimentarlos. Damos click al link admin section para entrar como administrador
DriveMeca instalando phpMyFAQ en un servidor Linux Centos paso a paso

-En la nueva pagina entramos con el usuario creado
DriveMeca instalando phpMyFAQ en un servidor Linux Centos paso a paso

-La pagina principal al ingresar como admin nos mostrara estadísticas. Desde allí podemos entrar a crear categorías, usuarios, etc
DriveMeca instalando phpMyFAQ en un servidor Linux Centos paso a paso

-Nuestro servidor linux centos 7 con phpMyFAQ esta listo para comenzar a alimentarlo con conocimiento
DriveMeca instalando phpMyFAQ en un servidor Linux Centos paso a paso

-Este conocimiento podrá ser consultado desde la pagina principal http://servidor-linux-centos/phpmyfaq
DriveMeca instalando phpMyFAQ en un servidor Linux Centos

-Ya terminado de configurar el phpMyFAQ eliminamos el archivo update.php
rm phpmyfaq/install/update.php

Ya tenemos nuestro servidor listo para ingresar información, conocimiento que con el tiempo nos servira para solucionar problemas, ya conocías phpMyFAQ? que tal te ha parecido?, escríbeme en los comentarios aquí debajo y pasa la voz compartiendo el tweet.

Sígueme en twitter google+facebook o email y podrás estar enterado de todas mis publicaciones.
Disfrútenlo.

Share/Bookmark