Mostrando entradas con la etiqueta web. Mostrar todas las entradas
Mostrando entradas con la etiqueta web. Mostrar todas las entradas

miércoles, 18 de octubre de 2017

Gedit: abrir archivo actual en firefox

Me sorprendió que Gedit no tenga fácilmente disponible complementos para "enviar" el archivo actual al navegador web, ya que esto es una práctica bastante habitual mientras se editan páginas web.
  1. Instalar los complementos de gedit
    sudo aptitude install gedit-plugins
  2. Abrir gedit
  3. Entrar al menú "Preferencias"
  4. Hacer clic en la pestaña de "Complementos"
  5. Activar el complemento "Herramientas externas"
  6. Cerrar el diálogo de "Preferencias"
  7. En el menú "Herramientas", buscar "Manage External Tools" (Gestionar Herramientas Externas).
  8. Agregar una nueva rutina haciendo clic en el botón "+".
  9. El comando a ejecutar es
    #!/bin/sh
    firefox -new-tab "$GEDIT_CURRENT_DOCUMENT_PATH"
  10. Le configuré
    • Guardar: Todos los documentos
    • Entrada: Documento actual
    • Salida: nada
    • Aplicabilidad: Todos los documentos (Todos los lenguajes)
  11. Darle un nombre a la nueva rutina
  12. Cerrar el diálogo de "Herramientas Externas"
Para ejecutar la rutina creada, basta con ir al menú herramientas, luego "External Tools" (Herramientas Externas),  y hacer clic sobre el nombre que le colocamos a la rutina.

viernes, 13 de octubre de 2017

Descargar archivos en Google Cloud Storage

Estaba haciendo unas pruebas con las API de Google y quise descargar un archivo alojado en la nube de Google para hacer pruebas locales.
Para utilizar una dirección de la forma
gs://proyecto/archivo.txt
Basta utilizar el URL
http://storage.googleapis.com/proyecto/archivo.txt

domingo, 15 de noviembre de 2015

Instalar Webmin y Usermin en Bananian (Debian)

Instalación

Para la administración de mi Banana Pi, me pareció interesante utilizar Webmin, una aplicación CGI que permite administrar computadores a través de una interfaz web.
Lo primero es agregar el repositorio de Webmin a las fuentes de de APT, ya que este paquete no se encuentra en los repositorios de Debian.
Para ello creamos el siguiente archivocon de texto:
/etc/apt/sources.list.d/webmin.list
Y le agregamos las siguientes líneas
deb http://download.webmin.com/download/repository sarge contrib
deb http://webmin.mirror.somersettechsolutions.co.uk/repository sarge contrib
Agregamos la clave pública con la cual están firmados los paquetes DEB de Webmin
wget -qO - http://www.webmin.com/jcameron-key.asc | sudo apt-key add -
Actualizamos la información de repositorios de APT y los paquetes instalados
sudo aptitude update && sudo aptitude full-upgrade -y
Instalamos Webmin y Usermin
sudo aptitude install webmin usermin 
Para acceder a Webmin debemos navegar a https://ejemplo.com:10000
Para acceder a Usermin debemos navegar a https://ejemplo.com:20000

Configuración de Webmin en Subdirectorio con HTTPS

Basándonos en las indicaciones para Webmin con Apache (no aptas para proxy con SSL).
Para poder acceder a estas aplicaciones a través de https://ejemplo.com/webmin/
Habilitamos el módulo proxy de Apache HTTPD con
sudo a2enmod proxysudo service apache2 restart
Modificar el archivo /etc/webmin/config, agregando las siguientes líneas
webprefix=/webmin
webprefixnoredir=1
referer=ejemplo.com
Modificar el archivo /etc/webmin/miniserv.conf, agregando la siguiente línea
cookiepath=/webmin
Reiniciar Webmin ejecutando
/etc/webmin/restart 
Y agregamos a dentro de VirtualHost en /etc/apache2/sites-available/default-ssl.conf
### Webmin ###
# Put this after the other LoadModule directives
LoadModule proxy_module /usr/lib/apache2/modules/mod_proxy.so
LoadModule proxy_http_module /usr/lib/apache2/modules/mod_proxy_http.so

# Put this in the main section of your configuration
# (or desired virtual host, if using Apache virtual hosts)

SSLProxyEngine on
SSLProxyVerify none
SSLProxyCheckPeerCN off
SSLProxyCheckPeerName off
#ProxyRequests Off
#ProxyPreserveHost On

<Proxy *>
# Auth changes in 2.4 - see http://httpd.apache.org/docs/2.4/upgrading.html#run-time
Require all granted
</Proxy>

ProxyPass /webmin https://localhost:10000
ProxyPassReverse /webmin https://localhost:10000

<Location webmin="">
# Auth changes in 2.4 - see http://httpd.apache.org/docs/2.4/upgrading.html#run-time
Require all granted
</Location>
Esta configuración tiene carácter experimental. Un cambio deseable es que Webmin utilice un certificado SSL en el cual Apache HTTPD confíe, a fin de cambiar "SSLProxyVerify none"

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

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

jueves, 12 de mayo de 2011

Ver un portal con dominio suspendido

El otro día mi novia me pidió ayuda para conseguir una información específica de una oficina pública, y yo como usuario súper avanzado de Google salté de una vez a hacer esas consultas avanzadas - que ahora agrupan bajo el término Google Hacking.
Pero la oficina no se dejaba: sus sitios estaban caídos, sus perfiles en las redes sociales no tenían la información, y los sitios de terceros sobre la oficina tampoco.
Cuando ya estaba listo para tirar la toalla, decidí consultar los datos WHOIS de los dominios de la oficina, pero no encontré la información que buscaba allí. Lo que sí encontré fue la información de que el registrante del dominio lo había suspendido (eso explicaba que los sitios estuviesen caídos) Y los servidores DNS que el sitio había provisto (¡Bingo!). Algo me decía que con esta información podía circunvenir la suspensión del dominio.
Lo primero que intenté fue agregar esos servidores de nombre a la conexión de internet que utilizaba a través de la consola de Network-Manager. Fracaso.
Luego, pensando que podía ser algo de Network-Manager, me fui derechito a editar /etc/resolv.conf. Fracaso.
Entonces me puse a pensar en alguna herramienta que me permitiese resolver el dominio pasándole el servidor de nombre como parámetro. Ya sabía que nslookup resolvía dominios, pero no sabía si se permitía especificar el servidor de nombres, así que consulté el manual y ví que la sintaxis que deseaba era nslookup dominio servidor. Segundo avance: tenía la dirección IP del servidor que alojaba el contenido de la página.
Pensando que tenía a Dios agarrado por la chiva, navegué directamente a la dirección IP, para encontrarme un panel (cpanel, creo) de esos que tienen los servicios de alojamiento. Fracaso.
Finalmente, se me prendió el bombillo y decidí editar el archivo /etc/hosts y agregar la línea "ip dominio", y luego al navegar a la dirección: ¡Éxito!
Espero les sea de utilidad.