domingo, 8 de noviembre de 2015

Encontrar la dirección IP de un equipo en la red local (nmap)

Lo primero que tuve que hacer cuando comencé a utilizar mi Banana Pi, fue averiguar cuál dirección IP le había asignado el enrutador por DHCP, para poder conectarme por SSH y hacer las respectivas configuraciones.
Aprovechando que tengo Nmap instalado en mi computador de escritorio, hice uso de los siguientes comandos (desde Windows).
Para obtener los datos generales de la red local:
ipconfig
El cual da como respuesta un listado de la información de todas las interfaces de red del equipo. En la interfaz apropiada (inalámbrica o cableada, por ejemplo), nos interesan los siguientes datos:
   IPv4 Address. . . . . . . . . . . : 192.168.0.80
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
Con la dirección IP y la máscara de subred, ejecutamos (con permiso de Administrador)
nmap -sP 192.168.0.80/24
El listado resultante nos indicará cuáles direcciones IP están activas en la red local, así como el nombre del equipo.

sábado, 7 de noviembre de 2015

Windows: Cómo saber quien está conectado a un servidor remoto

A veces es necesario conectarse a un servidor Windows remoto, pero por limitaciones en el número de licencias, se debe revisar primero quién está conectado.
Una forma de hacerlo, es intentar conectarse y que el Servidor indique si hace falta expulsar a alguien para poder conectarse. Pero esa forma me parece poco elegante y algo intrusiva.
Buscando en internet conseguí el comando query, que permite listar los usuarios conectados a un servidor, ejecutando la siguiente sentencia en CMD:
query user /server:example.com

miércoles, 4 de noviembre de 2015

Cómo ejecutar sentencias PHP desde la consola

Estaba revisando el código de algunas páginas en PHP y quise validar, rápidamente, el valor de algunas expresiones utilizadas. 
Para no tener que montar un depurador, o configurar un ide, o empezar a escribir mini páginas PHP de prueba, decidí averiguar como ejecutar PHP desde la consola.
Resultó ser bastante sencillo
php5 -r 'echo php_uname("n") . "\n";'

lunes, 2 de noviembre de 2015

Configurar HTTPS en Banananian (Debian)

Ya configurado Apache HTTPD en mi Banana Pi, el siguiente paso paranoico lógico es configurar HTTPS para que el tráfico quede cifrado. De esta forma se protege la confidencialidad de cualquier información importante (como contraseñas) que tengan que viajar por la red.
Encontré un tutorial para Debian, bastante completo, en Digital Ocean.
En resumen, para asegurarnos de que estén instalados y actualizados tanto Apache HTTPD como OpenSSL, activar HTTPS y generar el certificado SSL:
sudo aptitude update
sudo aptitude full-upgrade
sudo aptitude install apache2 openssl
sudo a2enmod ssl
sudo a2ensite default-ssl
sudo service apache2 reload
sudo mkdir /etc/apache2/ssl

sudo openssl req -x509 -nodes -days 365 -newkey \
rsa:2048 -keyout /etc/apache2/ssl/apache.key -out \
/etc/apache2/ssl/apache.crt
sudo chmod 600 /etc/apache2/ssl/*
Luego es necesario editar el archivo de configuración del sitio web SSL con
sudo nano /etc/apache2/sites-enabled/default-ssl.conf
Allí debemos modificarlo para que quede de la siguiente manera:
<IfModule mod_ssl.c>
    <VirtualHost _default_:443>
        ServerAdmin webmaster@localhost
        ServerName www.example.com:443
        DocumentRoot /var/www/html
        . . .
        SSLEngine on
        . . .
        SSLCertificateFile /etc/apache2/ssl/apache.crt
        SSLCertificateKeyFile /etc/apache2/ssl/apache.key
Reiniciamos el servicio Apache HTTPD
sudo service apache2 reload
En este punto el servicio Apache HTTPD está respondiendo peticiones por HTTP y por HTTPS. Para que todo el tráfico HTTP sea redirigido a HTTPS, editamos la configuración del sitio por defecto con
sudo nano /etc/apache2/sites-enabled/000-default.conf
Y modificamos el archivo de forma que quede así
<VirtualHost *:80>
    ServerName www.example.com
    Redirect / https://www.example.com/
</VirtualHost >
Finalmente, reiniciamos el servicio Apache HTTPD
sudo service apache2 reload

domingo, 1 de noviembre de 2015

Si la consola no autocompleta (2)

Hace un (largo) tiempo, tuve que modificar la configuración de bash en mi laptop (con Ubuntu) porque no podía autocompletar con la tecla de tabulación comandos como aptitude o apt-get. Me encontré con el mismo problema en mi Banana Pi, con Bananian, pero el problema no estaba en el archivo .bashrc, ya que éste ya tenía activa la opción para autocompletar.
Luego de algunas búsquedas en Internet, di con el tema: faltaba instalar el paquete bash-completion
sudo aptitude install bash-completion
Luego de recargar bash, comenzó a funcionar el autocompletado para aptitude y apt-get
bash 

sábado, 31 de octubre de 2015

Instalando Apache HTTPD en Bananian (Debian)

Lo primero que tengo que hacer para poder utilizar mi Banana Pi como un servidor de Intranet en mi casa es instalar el servidor web.
Empezamos con la instalación de Apache2 y los paquetes que recomienda.
sudo aptitude install apache2 -r
Luego viene la configuración de los módulos, en particular userdir, que permite que los usuarios del servidor puedan publicar sitios en html en la dirección servidor/~nombredeusuario, con tan solo guardarlos en el directorio public_html de su carpeta personal.
sudo a2enmod userdir.load
Luego unas medidas de seguridad sencillas: Desactivamos que indique su versión y el sistema operatico en las cabeceras HTTP y en el pie de página de algunas páginas por defecto. Es necesario editar el archivo /etc/apache2/conf-enabled/security.conf y fijar los siguientes valores
ServerTokens ProductOnlyServerSignature Off 
Finalmente, reiniciamos el servicio Apache2
sudo service apache2 restart
Ahora tenemos un servidor web en el Banana Pi.

Para deshacernos del siguiente mensaje:
apache2: Could not reliably determine the server's fully qualified domain name, using 192.168.1.162. Set the 'ServerName' directive globally to suppress this message
Creamos el siguiente archivo
sudo nano /etc/apache2/conf-available/ServerName.conf 
Cuyo contenido debe ser
ServerName nombredelservidor
Activamos este archivo de configuración con
sudo a2enconf ServerName.conf
Y reiniciamos el servicio Apache2 nuevamente
sudo service apache2 restart

viernes, 30 de octubre de 2015

Primeros pasos con Bananian (Debian)

Luego de instalar Bananian Linux en la tarjeta Micro SD, como indiqué en el artículo anterior, llegó la hora de arrancar el sistema y ejecutar los pasos iniciales.
  1. Configuración inicial del sistema. Nombre del equipo, localización e idioma, zona horaria, etc.
  2. bananapi-config
  3. Actualizar el sistema. Descargar la información de los repositorios y actualizar las aplicaciones ya instaladas.
  4. aptitude update && aptitude full-upgrade -y
  5. Credenciales. Cambiar la contraseña del superusuario, crear mi usuario, y hacerlo administrador
  6. passwd
    adduser usuarionuevo
    aptitude install sudo
    adduser usuarionuevo sudo
Ahora tengo un sistema actualizado, puedo dejar de lado el superusuario y utilizar un usuario a mi medida.