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 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

Como instalar php 5.6 en Centos 7

DriveMeca instalando PHP 5.6 en Linux Centos paso a paso
Las distribuciones Linux para servidor por lo general (a no ser Fedora) cuidan su estabilidad manteniendo paquetes probados y no muy actuales. Ahora, en la medida que pasa el tiempo, los nuevos desarrollos se basan en nuevas librerías por lo cual cuando vamos a usarlos nos encontramos con que no cumplimos con los requisitos, ejemplo, una nueva pagina web y nuestro Linux Centos con versión php 5.3, AHHH!!!!, calma, hoy veremos paso a paso como instalar php 5.6 en Linux Centos 7.
Aclaro que el que instalemos nuevas versiones no quiere decir que pongamos en riesgo la estabilidad de nuestro servidor, alguien se tomo el tiempo y paciencia para crear un repositorio, compilar las nuevas versiones, probarlas y luego hacerlas publicas. Por eso por lo general estarás seguro y no tendrás problemas.

-Instalamos la ultima versión del repositorio Remi
yum install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

-Después de instalado le damos un cat para ver el contenido del repo. Tomemos nota de los nombres dentro de [] (en rojo) . Por default todo viene deshabilitado y es buena idea solo instalar lo que necesitamos sin habilitar el repositorio. Para este articulo instalare desde remi-php56
cat /etc/yum.repos.d/remi.repo
# Repository: http://rpms.remirepo.net/
# Blog:       http://blog.remirepo.net/
# Forum:      http://forum.remirepo.net/

[remi]
name=Remi's RPM repository for Enterprise Linux 7 - $basearch
#baseurl=http://rpms.remirepo.net/enterprise/7/remi/$basearch/
mirrorlist=http://rpms.remirepo.net/enterprise/7/remi/mirror
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi

[remi-php55]
name=Remi's PHP 5.5 RPM repository for Enterprise Linux 7 - $basearch
#baseurl=http://rpms.remirepo.net/enterprise/7/php55/$basearch/
mirrorlist=http://rpms.remirepo.net/enterprise/7/php55/mirror
# NOTICE: common dependencies are in "remi-safe"
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi

[remi-php56]
name=Remi's PHP 5.6 RPM repository for Enterprise Linux 7 - $basearch
#baseurl=http://rpms.remirepo.net/enterprise/7/php56/$basearch/
mirrorlist=http://rpms.remirepo.net/enterprise/7/php56/mirror
# NOTICE: common dependencies are in "remi-safe"
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi

[remi-test]
name=Remi's test RPM repository for Enterprise Linux 7 - $basearch
#baseurl=http://rpms.remirepo.net/enterprise/7/test/$basearch/
mirrorlist=http://rpms.remirepo.net/enterprise/7/test/mirror
# WARNING: If you enable this repository, you must also enable "remi"
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi

[remi-debuginfo]
name=Remi's RPM repository for Enterprise Linux 7 - $basearch - debuginfo
baseurl=http://rpms.remirepo.net/enterprise/7/debug-remi/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi

[remi-php55-debuginfo]
name=Remi's PHP 5.5 RPM repository for Enterprise Linux 7 - $basearch - debuginfo
baseurl=http://rpms.remirepo.net/enterprise/7/debug-php55/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi

[remi-php56-debuginfo]
name=Remi's PHP 5.6 RPM repository for Enterprise Linux 7 - $basearch - debuginfo
baseurl=http://rpms.remirepo.net/enterprise/7/debug-php56/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi

[remi-test-debuginfo]
name=Remi's test RPM repository for Enterprise Linux 7 - $basearch - debuginfo
baseurl=http://rpms.remirepo.net/enterprise/7/debug-test/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi

-Instalamos php con los modulos que necesitemos habilitando por linea de comando temporalmente el repositorio remi-php56
yum install --enablerepo=remi-php56 php php-gd php-json php-mbstring php-xml

-Verificamos nuestro php con la función phpinfo
vi /var/www/html/index.php
<?php
phpinfo();
?>

-Reiniciamos apache
systemctl restart httpd.service

-Ya tenemos PHP 5.6 en nuestro Linux Centos 7
DriveMeca instalando PHP 5.6 en Linux Centos paso a paso

Sencillo cierto, no demoramos nada, conoces otra variante? lo haz hecho de otra forma?, 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