Calcular la máxima cantidad de clientes en Apache2 /prefork

En general la forma de calcular cuanta gente puede acceder de manera concurrente a mi servidor web ( MaxClients ) es sencilla pero bastante manual. Encontré un script en la web de referencia que me puede ayudar a hacerlo de manera más práctica así que lo comparto.

Hace algunos años desarrollando un sistema de regalos corporativos fue la primera vez que me encontré con este problema, si está mal definida la cantidad máxima de usuarios que pueden acceder al apache este consume mucha memoria y en el caso de que tengas el servidor MySQL en el mismo lugar este puede caerse sin ningún aviso.

La idea es que podamos definir bien la cantidad de usuario que puede manejar apache.

Leer más

Usando Linux y el portal de MiPyme del Sistema de Impuestos Internos.

GUÍA PARA INSTALAR EL CERTIFICADO DIGITAL LINUX UBUNTU

Uno de los problemas que había tenido para no migrar todos los computadores de Windows a Ubuntu era el no poder usar este último para poder generar las facturas electrónicas con el portal de MiPyme del Sistema de Impuestos Internos. Había estado ocupando Virtual Box para hacer esto personalmente ya que Windoes dejó hace muchos años de ser mi Sistema Operativo principal.

Hoy ingresé al portal del Sistema de Impuestos internos y «descubrí»  un mensaje que anteriormente no había hecho. «Para firmar el documento desde sus sistema operativo debe de subir la llave al servidor» o algo similar …

Leer más

MysqlPasswordReset – Cambiar la clave root de Mysql

Acabo de crear un servidor WordPress con on click deployment de Google y tuve el problema que la clave que me dieron de mysql para root no correspondía a la real.

El error que obtenía era el siguiente :

ERROR 1045: Access denied for user: 'root@localhost' (Using 
password: YES)

Estos son simples pasos para cambiar la clave root de Mysql bajo un servidor linux si es que posees el error anteriormente mencionado.

¿ Que es lo que haremos ? :

  1. Detendremos el Servidor MySql.
  2. Lo iniciaremos sin que cargue los privilegios de los usuarios.
  3. Cambiamos la clave

Si tienes algún error un poco más complejo, o tu error corresponde a que necesitas agregar permisos para acceder fuera de localhost te recomiendo que veas el artículo que aparece al final.

Detenemos el servidor MySql

sudo /etc/init.d/mysql stop

Iniciamos el Servidor MySql sin los privilegios de usuarios. En este caso además por seguridad se impide las conexiones por red.

sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking &

Ingresamos al servidor con el usuario root.

 mysql -u root

Con el siguiente comando seremos capaces de cambiar cualquier clave.

FLUSH PRIVILEGES;

Cambiamos la clave para el usuario root. Por si no lo habías notado puedes cambiar «password» por la clave que quieras… sin las comillas!

SET PASSWORD FOR root@'localhost' = PASSWORD('password');

Una vez que recibimos el mensaje de éxito, nuevamente limpiamos los privilegios.

FLUSH PRIVILEGES;

Detenemos el servidor MySql y lo iniciamos de manera normal nuevamente

sudo /etc/init.d/mysql stop
sudo /etc/init.d/mysql start

En este punto ya deberíamos ser capaces de ingresar a neustro servidor mysql sin problemas.

Origen: MysqlPasswordReset – Community Help Wiki

👉 ¿Te gustó este contenido? Hay más esperando por ti.

Cada semana, comparto aprendizajes y reflexiones que no encontrarás en ningún otro lugar. ¡Únete a la comunidad de más de 9,000 emprendedores que ya están avanzando!

Oracle Java (JDK) 7 / 8 / 9 PPA en Ubuntu

Hace ya un tiempo que en Ubuntu no aparece en repositorios la versión de Oracle para Java. Hay algunas aplicaciones que no funcionan con la versión del OpenJDK por lo que agrego la forma como lo he estado haciendo últimamente para mis proyectos.

Si bien la instalación la puedo hacer a través del instalador que aparece en la web, este proceso es mucho más sencillo y veloz.

Antes que todo, cuales son las diferencias de la versión libre y la versión de oracle. Del Blog de Oracle tenemos los siguiente :

Q: What is the difference between the source code found in the OpenJDK repository, and the code you use to build the Oracle JDK?

A: It is very close – our build process for Oracle JDK releases builds on OpenJDK 7 by adding just a couple of pieces, like the deployment code, which includes Oracle’s implementation of the Java Plugin and Java WebStart, as well as some closed source third party components like a graphics rasterizer, some open source third party components, like Rhino, and a few bits and pieces here and there, like additional documentation or third party fonts. Moving forward, our intent is to open source all pieces of the Oracle JDK except those that we consider commercial features such as JRockit Mission Control (not yet available in Oracle JDK), and replace encumbered third party components with open source alternatives to achieve closer parity between the code bases.

Estoy corriendo unas aplicaciones que fueron desarrolladas por unos Framework MVC para Java que al parecer solo funcionan con la versión privativa, pero bueno, ejecutemos lo siguiente ;

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer

Con esto agregamos el repositorio, actualizamos e instalamos la versión de Java que necesitamos. Si ya teníamos una versión anterior de java instalada, lo más probable es que le debamos decir al sistema cual debe de utilizar, para eso «Actualizamos las Alternativas».

sudo update-alternatives --config java

Ahora está todo listo, Java instalado y además la versión que necesitemos seleccionada para funcionar !

Origen: Oracle Java (JDK) 7 / 8 / 9 Installer PPA : “WebUpd8” team

👉 ¿Te gustó este contenido? Hay más esperando por ti.

Cada semana, comparto aprendizajes y reflexiones que no encontrarás en ningún otro lugar. ¡Únete a la comunidad de más de 9,000 emprendedores que ya están avanzando!

Firewall usando UFW en un servidor Ubuntu /  Debian

Aprende como configurar un firewall usando UFW ( Uncomplicated Firewall ) en un servidor Ubuntu / Debian.

Soy de las personas que siempre a usado IPTables para configurar el firewall de un servidor, pero la verdad es que no lo se de memoria y siempre debo recordarlo al momento de realizarlo. Esto es debido a que no lo hago muy seguido y no es muy amigable.

UFW es una herramienta o frontend que agrega estas reglas al firewall de iptables de una manera sencillo y casi humana de entender, por lo que para mi ha sido genial debido a que puedo tener la fortaleza de iptables pero de una manera que es muy práctica y difícil de olvidar.

Hace poco menos de un año que comencé a usar UFW para gestionar las reglas de IPTables, y se lo recomendé a muchas personas debido a su simplicidad.  Este jueves fui  a casa de un amigo y me encontré que estaba configurando un servidor debian usando UFW y empecé a ver el proceso y ayudarlo un poco ( ¡ Pero solo de curioso ! No creo que haya necesitado ayuda en verdad ).  Me di cuenta que recordaba todos los comandos de como usarlo y no mucha gente lo conoce, por lo que la recomendación ahora se extiende con un mini tutorial de como usarlo a todo aquel quién le sirva.

En este caso el tutorial lo haré con un ejemplo de un sitio wordpress que corre en un servidor Ubuntu 14.04 que debo configurar.

Ya teniendo el sitio andando, lo primero que quiero hacer es bloquear todas las conexiones por defecto excepto al puerto 80 ( http ) y al 22 ( ssh )

Si no tienes ufw simplemente lo instalamos :

sudo apt-get install ufw

Podemos ver el estado de las reglas actuales ejecutando

sudo ufw status

Si estás partiendo de cero igual que yo, lo más probable que el resultado sea  : «Status: inactive»

Para activarlo simplemente ejecutamos :

sudo ufw enable

Antes de hacer cualquier cosa, agreguemos la regla de ssh para las conexiones permitidas en caso de que bloquemos todo por error.

# sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
22                         ALLOW       Anywhere
22 (v6)                    ALLOW       Anywhere (v6)

A esta altura tenemos el servidor de firewall activo, y tenemos dos reglas para acceso ssh por IPV4 y IPV6.

Lo siguiente que me gusta hacer es que por defecto de bloqueen todas las conexiones entrantes, es aquí donde alguien puede diferir conmigo, pero para mi lógica es mejor bloquear todo y luego aceptar que aceptar y luego bloquear.  Esto lo hacemos de la siguiente manera :

sudo ufw default deny incoming

Si trabajas con webservices y no coneces los puertos por los que tu servidor se conectará a futuro a ellos, lo más sencillo es dejar que la política de conexiones salientes sea para permitirlas todas. Esto sería bueno cambiarlo a futuro cuando tengas certeza a que servidores te vas a conectar y sus puertos.

sudo ufw default allow outgoing

A esta altura tenemos el servicio andando, aceptando conexiones ssh, pero no podemos acceder a nuestra página web. Para hacerlo lo podemos hacer de dos maneras, especificando el servicio o el puerto. Adjunto las dos formas :

sudo ufw allow http
sudo ufw allow 80/tcp

Si bien, esto es todo lo que quiero incluir en este tutorial, hay otra cosa que se debería hacer que recomiendo. Me gusta cambiar el puerto del ssh a un puerto obviamente que vayas a recordar.

Imaginemos que este puerto es el 2228, lo que haremos es agregar esta regla al firewall y luego lo cambiaremos en la configuración del ssh.

sudo ufw allow 2228

Editamos el archivo de configuración del server ssh :

sudo vim /etc/ssh/sshd_config

Y editamos la línea que dice Port por el puerto que nosotros queramos ocupar y reiniciamos el servicio ssh.

sudo service ssh restart

En estos momento ya necesito el nuevo puerto para acceder, pero tenemos reglas que nos sobran. Ahora podemos eliminar nuestra regla de ssh que creamos en un comienzo debido a que ya no la vamos a utilizar.

sudo ufw delete allow ssh

Ya, ahora tenemos un server PSEUDOSEGURO, o al menos mucho mejor de lo que viene por defecto. Ojala les sirva !

Origen: How To Setup a Firewall with UFW on an Ubuntu and Debian Cloud Server | DigitalOcean

👉 ¿Te gustó este contenido? Hay más esperando por ti.

Cada semana, comparto aprendizajes y reflexiones que no encontrarás en ningún otro lugar. ¡Únete a la comunidad de más de 9,000 emprendedores que ya están avanzando!