jueves, 15 de junio de 2017
Activar (permitir) conexiones SSH en Raspbian Jessie Lite
Tienes que sacar la tarjeta micro SD, ponerla en un adaptador para poder acceder a ella desde el PC. En el directorio raiz de la tarjeta tienes que crear un archivo vacío se llame ssh sin extensión ni nada. Esto activará el servidor ssh en tu sistema cuando lo vuelvas a iniciar en la Raspberry.
viernes, 22 de julio de 2016
c# - Quitar el borde del botón que recibe el foco (se pincha)
No hay ninguna propiedad para evitar que se pinte un borde más grueso sobre el botón que se han pinchado en un formulario del visual C#. Hacerlo programáticamente a mí no me ha resultado pero hay un pequeño truco que lo quita para siempre. Se trata de crear un label en el formulario (si ya hay uno creado para otro uso nos vale) y hacer que en el evento CLICK (doble click encima del botón) del botón en cuestión hagamos que el label reciba loco con label.Focus(); sustituyendo la palabra label por el nombre de nuestro label. Si hemos tenido que crear un label para esto, podemos ponerlo enciman del propio botón y con el botón derecho del ratón le damos a "Send to back" (Enviar al fondo) para que quede oculto detrás del botón o de cualquier otro elemento. También si le quitamos la propiedad Text al label y la dejamos vacía no será visible en la ejecución del formulario.
martes, 19 de julio de 2016
WordPress - Cambiar Permisos para Actualizar e Instalar Directamente desde la Web de Administración
Para poder actualizar WordPress directamente desde la web de administración de nuestro sitio cuando los tenemos instalado en nuestro propio servidor hay que hacer una pequeña modificación en lo que respecta a la propiedad y permisos de los archivos y directorios del site:
Primero que nada tenemos que saber cual es el usuario de linux que utiliza nuestro servidor web apache para trabajar, en el caso de ubuntu suele ser www-data. Si quieres saber que usuario usa apache los puedes saber con la sentencia:
$ ps auwwfx | grep apache
Nos devuelve algo así:
www-data 19297 0.0 2.9 409676 50656 ? S 22:29 0:00 \_ /usr/sbin/apache2 -k start
www-data 19299 0.0 2.5 406560 44276 ? S 22:29 0:00 \_ /usr/sbin/apache2 -k start
www-data 19835 0.0 2.5 408104 44032 ? S 22:50 0:00 \_ /usr/sbin/apache2 -k start
www-data 19904 0.0 2.3 406148 41684 ? S 22:54 0:00 \_ /usr/sbin/apache2 -k start
www-data 19905 0.0 2.3 405772 41368 ? S 22:54 0:00 \_ /usr/sbin/apache2 -k start
Donde vemos que el usuario en mi sistema es: www-data
Ahora vamos al directorio donde tenemos nuestro site apache:
$ cd /var/www/html/wordpress
Cambiamos el grupo de todos los archivos y subdirectorios del site con:
$ sudo chgrp -R www-data ./*
Cambiamos los permisos de los archivos con:
$ sudo chmod -R g+rw ./*
Por último modificamos el archivo de configuración de WordPress:
$ sudo nano /var/www/html/wordpress/wp-config.php
Justo después de la linea:
require_once(ABS_PATH . 'wp-settings.php');
Añadimos:
define('FS_METHOD', 'direct');
Y esto es todo...
Primero que nada tenemos que saber cual es el usuario de linux que utiliza nuestro servidor web apache para trabajar, en el caso de ubuntu suele ser www-data. Si quieres saber que usuario usa apache los puedes saber con la sentencia:
$ ps auwwfx | grep apache
Nos devuelve algo así:
www-data 19297 0.0 2.9 409676 50656 ? S 22:29 0:00 \_ /usr/sbin/apache2 -k start
www-data 19299 0.0 2.5 406560 44276 ? S 22:29 0:00 \_ /usr/sbin/apache2 -k start
www-data 19835 0.0 2.5 408104 44032 ? S 22:50 0:00 \_ /usr/sbin/apache2 -k start
www-data 19904 0.0 2.3 406148 41684 ? S 22:54 0:00 \_ /usr/sbin/apache2 -k start
www-data 19905 0.0 2.3 405772 41368 ? S 22:54 0:00 \_ /usr/sbin/apache2 -k start
Donde vemos que el usuario en mi sistema es: www-data
Ahora vamos al directorio donde tenemos nuestro site apache:
$ cd /var/www/html/wordpress
Cambiamos el grupo de todos los archivos y subdirectorios del site con:
$ sudo chgrp -R www-data ./*
Cambiamos los permisos de los archivos con:
$ sudo chmod -R g+rw ./*
Por último modificamos el archivo de configuración de WordPress:
$ sudo nano /var/www/html/wordpress/wp-config.php
Justo después de la linea:
require_once(ABS_PATH . 'wp-settings.php');
Añadimos:
define('FS_METHOD', 'direct');
Y esto es todo...
jueves, 5 de febrero de 2015
MYSQL --> LOAD DATA INFILE produce como resultado FILE NOT FOUND aún con la certeza de que existe el archivo
Recientes versiones del Ubuntu Server (desde la 10.04) se empaquetan con AppArmor y MySQL's en modo enforcing por defecto. Puede chequear esto ejecutando:
sudo aa-status
obteniendo un resultado aproximado a esto:# sudo aa-status
5 profiles are loaded.
5 profiles are in enforce mode.
/usr/lib/connman/scripts/dhclient-script
/sbin/dhclient3
/usr/sbin/tcpdump
/usr/lib/NetworkManager/nm-dhcp-client.action
/usr/sbin/mysqld
0 profiles are in complain mode.
1 processes have profiles defined.
1 processes are in enforce mode :
/usr/sbin/mysqld (1089)
0 processes are in complain mode.
Si mysqld está incluido en el modo enforce, entonces esto es lo que puede producir este resultado tanto para lectura como escritura. Lo que puedes hacer es editar:
nano
/etc/apparmor.d/usr.sbin.mysqld
y añadir /ruta-de-carpeta/
and /ruta-de-carpeta/*
al final del todo como muestra el ejemplo a continuación:
...
/usr/sbin/mysqld {
...
/var/log/mysql/ r,
/var/log/mysql/* rw,
/var/run/mysqld/mysqld.pid w,
/var/run/mysqld/mysqld.sock w,
/ruta-de-carpeta/ r,
/ruta-de-carpeta/* rw,
}
/usr/sbin/mysqld {
...
/var/log/mysql/ r,
/var/log/mysql/* rw,
/var/run/mysqld/mysqld.pid w,
/var/run/mysqld/mysqld.sock w,
/ruta-de-carpeta/ r,
/ruta-de-carpeta/* rw,
}
Después de esto tienes que recargar los perfiles del AppArmor con:.
# sudo /etc/init.d/apparmor reload
CUIDADO: este cambio propuesto permitirá a MySQL leer y escribir en la ruta incluida del directorio. Valora las implicaciones de seguridad que esto conlleva en tu caso concreto.
sábado, 13 de diciembre de 2014
Asegurar un Servidor Apache
1. Activar los módulos 'ssl' y 'rewrite' de apache2
Activamos los módulos ssl:sudo a2enmod ssl
Activamos el módulo 'rewrite':
sudo a2enmod rewrite
Nos dirá que tenemos que ejecutar 'sudo service apache2 restart' para que estas activaciones tengan efecto pero lo haremos al final de todos los comandos para no hacerlo varias veces.
2. Esconder la versión del servidor

sudo nano /etc/apache2/apache2.conf
Para ocultar la versión del servidor hemos de incluir al final del archivo de configuración global de Apache2 (/etc/apache2/apache2.conf) las siguientes dos lineas:
ServerSignature Off
ServerTokens Prod
3. Deshabilitar la visibilidad del contenido de los directorios del servidor
Hay que incluir en el mismo archivo de configuración del punto anterior, al final, el siguiente texto:
<Directory /var/www/html>
Options -Indexes
</Directory>
4. Forzar https
sudo nano /etc/apache2/sites-available/000-default.confPara redirigir todas las llamadas http (puerto 80) al puerto seguro 443 (https) deberemos incluir en archivo del virtual host por defecto del puerto 80 (/etc/apache2/sites-available/000-default.conf) las siguiente lineas justo después de <VirtualHost domain.com:80>
RewriteEngine on
ReWriteCond %{SERVER_PORT} !^443$
RewriteRule ^/?(.*) https://%{HTTP_HOST}/$1 [NC,R,L]
Nota imporanta: después de cada punto o al final de realizarlos todos se ha de reiniciar el servidor apache tecleando en el prompt:
sudo service apache2 restart
lunes, 10 de febrero de 2014
Instalar ssmtp en ubuntu con gmail - PHP mail() funcionando
1. Instalamos SSMTP
> sudo apt-get install ssmtp
2. Editamos en archivo de configuración:
> sudo nano /etc/ssmt/ssmtp.conf
(En verde sustituir por nuestros datos y en rojo lo que hay que poner tal cual)
Modificamos las siguentes líneas:
root=nuestra.dirección.de.gmail.completa
mailhub=smtp.gmail.com:587
hostname=nuestra.dirección.de.gmail.completa
#FromLineOverride=YES
UseSTARTTLS=YES
AuthUser=nuestra.dirección.de.gmail.completa
AuthPass=nuestra.contraseña.de.gmail.completa
3. Configurar usuarios...
> sudo nano /etc/ssmt/revaliases
Escribimos una linea para cada usuario que queramos de la siguiente manera:
usuarioejemplo:ejemplo@gmail.com:smtp.gmail.com:587
4. Configuramos PHP con php.ini
> sudo nano /etc/php5/apache2/php.ini
y buscamos la siguiente linea, la descomentamos (quitarle el punto y coma de delante) y la dejamos así:
sendmail_path = /usr/sbin/ssmtp -t
y reiniciamos apache con:
> sudo service apache2 restart
Para enviar un email desde php y hacer una prueba utilizamos el siguiente código:
<?php
$envio = mail("destinatario@dominio.com", "Este es el asunto...", "Este es el cuerpo del mensaje");
var_export ($envio);
?>
Esto nos devolverá "true" si el mensaje se envió correctamente.
> sudo apt-get install ssmtp
2. Editamos en archivo de configuración:
> sudo nano /etc/ssmt/ssmtp.conf
(En verde sustituir por nuestros datos y en rojo lo que hay que poner tal cual)
Modificamos las siguentes líneas:
root=nuestra.dirección.de.gmail.completa
mailhub=smtp.gmail.com:587
hostname=nuestra.dirección.de.gmail.completa
#FromLineOverride=YES
UseSTARTTLS=YES
AuthUser=nuestra.dirección.de.gmail.completa
AuthPass=nuestra.contraseña.de.gmail.completa
3. Configurar usuarios...
> sudo nano /etc/ssmt/revaliases
Escribimos una linea para cada usuario que queramos de la siguiente manera:
usuarioejemplo:ejemplo@gmail.com:smtp.gmail.com:587
4. Configuramos PHP con php.ini
> sudo nano /etc/php5/apache2/php.ini
y buscamos la siguiente linea, la descomentamos (quitarle el punto y coma de delante) y la dejamos así:
sendmail_path = /usr/sbin/ssmtp -t
y reiniciamos apache con:
> sudo service apache2 restart
Para enviar un email desde php y hacer una prueba utilizamos el siguiente código:
<?php
$envio = mail("destinatario@dominio.com", "Este es el asunto...", "Este es el cuerpo del mensaje");
var_export ($envio);
?>
Esto nos devolverá "true" si el mensaje se envió correctamente.
jueves, 6 de febrero de 2014
Como crear un certificado SLL para Apache en UBUNTU
Entendemos que tienes apache instalado, si no es así lo puedes hacer con el siguiente comando:
Cuando ejecutamos este comando nos hace una serie de preguntas que explicamos a continuación (lo que está en verde es lo que tenemos que configurar para nuestro caso):
Es importante el Common Name, debemos poner el nombre del dominio de nuestro servidor, es decir, la dirección que pondrán los que se quieran conectar a nuestra máquina, si no coinciden el certificado no valdrá.
Ahora configuramos nuestro host virtual seguro modificando el siguiente archivo:
después del apartado <VirtualHost _default_:443>, justo debajo del la linea del ServerAdmin ponemos la siguiente linea adaptandola a nuestro dominio:
Buscamos más abajo las siguiente lineas y las dejamos como se muestra a continuación:
Activamos nuestro nuevo HOST virtual
sudo apt-get install apache2
Habilitamos el SLL en Apachesudo a2enmod ssl
Rearrancamos apachesudo service apache2 restart
Creamos un nuevo directorio donde vamos a guardar los certificadossudo mkdir /etc/apache2/ssl
Generamos el certificadosudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crtel parámetro 365 despues de -days es el número de días que queremos que nuestro certificado tenga validez, podemos poner un mayor número de días.
Cuando ejecutamos este comando nos hace una serie de preguntas que explicamos a continuación (lo que está en verde es lo que tenemos que configurar para nuestro caso):
You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [AU]:ES State or Province Name (full name) [Some-State]:LAS PALMAS Locality Name (eg, city) []:LAS PALMAS DE GRAN CANARIA Organization Name (eg, company) [Internet Widgits Pty Ltd]:Nuestro nombre o de la empresa Organizational Unit Name (eg, section) []:Nombre del departamento de la empresa Common Name (e.g. server FQDN or YOUR name) []:dominio.com Email Address []:mail@dominiodemail.com
Es importante el Common Name, debemos poner el nombre del dominio de nuestro servidor, es decir, la dirección que pondrán los que se quieran conectar a nuestra máquina, si no coinciden el certificado no valdrá.
Ahora configuramos nuestro host virtual seguro modificando el siguiente archivo:
sudo nano /etc/apache2/sites-available/default-ssl
después del apartado <VirtualHost _default_:443>, justo debajo del la linea del ServerAdmin ponemos la siguiente linea adaptandola a nuestro dominio:
ServerName dominio.com:443
Buscamos más abajo las siguiente lineas y las dejamos como se muestra a continuación:
SSLEngine on SSLCertificateFile /etc/apache2/ssl/apache.crt SSLCertificateKeyFile /etc/apache2/ssl/apache.key
Grabamos y salimos.
Activamos nuestro nuevo HOST virtual
sudo a2ensite default-ssl
Recargamos apache para coja la nueva configuracióNsudo service apache2 reload
Ahora ya podemos teclear en nuestro navegador nuestro dominio con https:// delante y debería funcionar
Suscribirse a:
Entradas (Atom)