Instalación do certificado Let's Encrypt para o sitio web

Deixo aquí unhas notas de como instalar un certificado de servidor seguro de Let's Encrypt á meu sitio web. Let's Encrypt fornece certificados para os nosos servidores de balde (gratis).

Inicialmente probei o instalador certbot mais non me foi ben, non acababa de verificar o sitio. Logo vendo algún foro de web2py vin que recomendaba o uso de acme que foi o que finalmente empreguei para obter o certificado do sitio web.

Preparación do cartafol para verificar que o sitio é meu

O primeiro que tiven que facer foi crear un cartafol para que Let's Encrypt puidese verificar que o dominio é meu. Normalmente sería indicar o cartafol raíz do sitio web, por exemplo «/var/www/», no meu caso ó usar web2py, a solución pasa por crear un alias no sitio na configuración do apache, no meu caso foi engadir dentro do virtualhost o seguinte alias tal como indican na guía de acme:

Para apache 2.4 en diante:

Alias "/.well-known/acme-challenge/" "/home/www-data/lets_encrypt/"

  AllowOverride None
  Options None
  Require all granted

Para apache 2.2 e anteriores:

Alias "/.well-known/acme-challenge/" "/home/www-data/lets_encrypt/"

  AllowOverride None
  Options None
  # Order allow, deny  OLLO! no meu caso tiven que comentar esta liña
  Allow from all

Instalación de acme

Para elo seguín as instrucións indicadas na guía:

# echo 'deb http://ppa.launchpad.net/hlandau/rhea/ubuntu xenial main' > \
 /etc/apt/sources.list.d/rhea.list
# apt-key adv --keyserver keyserver.ubuntu.com --recv-keys \
9862409EF124EC763B84972FF5AC9651EDB58DFA
# apt-get update
# apt-get install acmetool

Unha vez instalado executei a orde:

# acmetool quickstart
  • Tipo de certificado que queremos: opción 1, live
  • Como imos verificar o sitio: opción 1, WEBROOT
  • Indico a ruta que indiquei no alias (na configuración do apache): /home/www-data/lets_encrypt/

Con isto queda o sitio verificado, o seguinte paso é a solicitude dos certificados, para elo empregase a orde:

# acmetool want www.damufo.com

Se quixese tamén o certificado para o sitio sen as www empregaría a orde:

# acmetool want damufo.com www.damufo.com

Os certificados obtidos son gardados en «/var/lib/acme/live/www.damufo.com/».

Para ver o estado dos certificados solicitados, emprégase a orde:
# acmetool status

Finalmente queda engadir os certificados ó virtualhost seguro do apache (o do porto 443), para elo engádese dentro das etiquetas de dito virtualhost o seguinte:

SSLEngine on  # Isto en teoría xa debería estar
SSLCertificateFile    /var/lib/acme/live/www.damufo.com/cert
SSLCertificateKeyFile /var/lib/acme/live/www.damufo.com/privkey
SSLCertificateChainFile /var/lib/acme/live/www.damufo.com/fullchain

Deixo aquí esta ligazón sobre a configuración do SSL do apache que fornece Mozilla por se é de interese.

Finalmente queda comprobar que a sintaxe do ficheiro apache está ben, para elo empregase a orde:

# apache2ctl configtest

E se todo está ben, reiniciase o apache coa orde:

# service apache2 restart

Forzar https e uso de www no Apache

Deixo aquí estas notas de como configurar o Apache para forzar ó sitio a usar https e que o emprego de www. antes do nome de dominio.

Para elo fixen uso do módulo Rewrite do Apache.

O primeiro foi engadir dentro de <VirtualHost *:80> as liñas:

 RewriteEngine on
# Forzar o emprego de https
  RewriteCond %{HTTPS} off
  RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [NE,L,R=301]

Con isto, o tráfico é redirixido do porto 80 ó 443 que é o que emprega a conexión segura https.

Logo, queda forzar ó emprego de «www.» no caso de non estar presente antes do nome do dominio, para elo engadín dentro de <VirtualHost *:443> as liñas:

RewriteEngine on
  #Forzar o emprego de www.
  RewriteCond %{HTTP_HOST} ^damufo.com [NC]
  RewriteRule (.*) https://www.%{HTTP_HOST}%{REQUEST_URI}

Se, pola contra, quixese forzar ó NON emprego de «www.» antes do nome do dominio, no canto de engadir o de arriba, o que faría sería engadir:

  RewriteEngine on
  # Forzar o emprego de non-www
  # RewriteCond %{HTTP_HOST} ^www\.(.+) [NC]
  # RewriteRule ^ https://%1%{REQUEST_URI} [L,R=301]

É imporante que dentro do virtualhost estea establecido o nome do servidor, no meu caso:

ServerName damufo.com

Esquinas activas (hot corner) e xfdashboard no XFCE

Para instalar as esquinas activas no xubuntu 16.04 empreguei o aplicativo que está nos repositorios chamado brightside, para a súa instalación basta con abrir unha consola e inserir:

$ sudo apt-get install brightside

Unha vez instalado para confitguralo execútase:

$ brightside-properties

Para que se activen automaticamente ó entrar na sesión tempo que engadir a orde «brightside» no menú Configuración->Sesión e inicio->Autoarranque de aplicativos.

Xunto con insto, aproveitei e instalei o xfdashboard que ven as ser un Gnome Shell para XFCE, este fornece unha vista de todos os aplicativos abertos, facilitando alternar entre aplicativos dun xeito doado.

O xfdashboard está nos extras de Xubuntu. Para instalalo primeiro tiven que engadir os repositorios, desde a consola executei:

$ sudo add-apt-repository ppa:xubuntu-dev/extras
$ sudo apt-get update

Finalmente desinstalei o xfdashboard porque non me convencía o funcionamento:

Se quixera desinstalalo, executaría as seguintes ordes na consola:

$ sudo add-apt-repository ppa:xubuntu-dev/extras --remove
$ sudo apt-get remove xfdashboard
$ sudo apt-get autoremove

Xubuntu Extras

wxpython no Ubuntu 16.04 con python3

Para a instalación do wxPython Phoenix no Ubuntu 16.04 dentro dun contorno virtual de Python3. Para elo vasta coa simple orde:

$ pip3 install -U --pre -f https://wxpython.org/Phoenix/snapshot-builds/linux/\
gtk3/ubuntu-16.04  wxPython_Phoenix

Devasa empregando UFW en linux Debian

Deixo aquí uns pasos de como configurar a devasa no servidor Debian.

UFW é unha interface para configurar a devasa IPTables (a cal ten unha configuración máis árida).

O obxectivo é bloquear todo agás as conexións ssh e http/https

Comezo por instalar:

$ sudo apt-get install ufw

Unha vez instalado pode verse o estado das regras coa orde:

$ sudo ufw status

Inicialmente este dará como resultado: “Status: inactive”

Antes de activalo establezo as reglas para asegurarme que sempre teño permitida a conexión ssh, do contrario podería perder o acceso ó servidor.

Comezo por denetar o tráfico de entrada e permitir o de saída:

$ ufw default deny incoming
$ ufw default allow outgoing

Abro o porto para o SSH.

$ ufw allow ssh

Ollo que se teño o ssh noutro porto distinto ó 22 mellor establecelo a man, por exemplo, supoñendo que estea no 2222, quedaría así:

$ ufw allow 2222

No caso de ter mudado o porto ssh a outro porto precisarei eliminar a regra que permitía o acceso ó porto 22 (predeterminado do ssh):

$ sudo ufw delete allow ssh

Abro o porto para o servidor web:

$ ufw allow www

Abro o porto para o servidor web seguro (https):

$ ufw allow 443/tcp

No caso de ter correo podería abrir seu porto así:

$ ufw allow 25/tcp

No caso de ter MySQL, sería:

$ ufw allow 3306/tcp

Abro o porto para o protocolo ntpd:

$ ufw allow ntp

Finalmente activo a devasa:

$ ufw enable

Para ver como quedou executo:

$ ufw status verbose

O normal é que se configure automáticamente para arrarcar ó inicio, pero non está de máis asegurarse, para elo hai que acceder ó ficheiro /etc/ufw/ufw.conf e ver que a opción ENABLED está establecida a «yes» (ENABLED=yes).

Fontes: programarivm, critiantata, websecurity

Configurar Módem Huawei Mobile Broadband E173s 3G

Vou deixar aquí unhas instrucións de como configurei o módem USB no Ubuntu 16.04 e supoño que tamén debería valer para o Debian.

Conectei o dispositivo USB.

Abrín unha consola, tecleei lsusb

$ lsusb

btendo un resultado como este, como pode verse pon «modem off»

Bus 001 Device 008: ID 12d1:1c0b Huawei Technologies Co., Ltd. E173s 3G broadband stick (modem off)

Creei un ficheiro chamado 12d1:1c0b en /etc/usb_modeswitch.d/:

$ sudo nano /etc/usb_modeswitch.d/12d1:1c0b

Pegueille o seguinte contido:

########################################################
# Huawei E173s

DefaultVendor= 0x12d1
DefaultProduct= 0x1c0b

TargetVendor= 0x12d1
TargetProduct= 0x1c0b

CheckSuccess=20

MessageEndpoint= 0x0f
MessageContent= "55534243123456780000000000000011062000000100000000000000000000"

Abrín o ficheiro /lib/udev/rules.d/40-usb_modeswitch.rules

$ sudo nano /lib/udev/rules.d/40-usb_modeswitch.rules

Engadinlle a seguintes liñas:

# Huawei E173s
ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="1c0b", RUN+="/usr/sbin/usb_modeswitch -c /etc/usb_modeswitch.d/12d1:1c0b"

Abrín o ficheiro /etc/modules

$ sudo nano /etc/modules

Engadín estas liñas:

# manual override for Huawei E173s to work
usbserial vendor=0x12d1 product=0x1c0b

Desconectei o módem USB e volvino conectar, logo na consola tecleei lsusb:

$ lsusb
Agora o módem apareceu deste xeito, desapareceu o «modem off»:
Bus 001 Device 007: ID 12d1:1c08 Huawei Technologies Co., Ltd.

Unha vez feito o anterior xa apareceu o menú onde solicita o PIN, logo configurei a conexión de banda larga no me u caso .

Número: *99#
Usuario: ORANGE
Clave: ORANGE
APN: internet
PIN: (o meu pin)

O resto deixeino con valores predeterminados.

Fonte: askubuntu.com

Icona do xfce4-pulseaudio-plugin escura en tema escuro

Resulta que teño un tema escuro e a icona do xfce4-pulseaudio-plugin aparecía tamén escura producindo que apenas se vise.

A solución atopeina no foro do xfce.

No me u caso para xubuntu 16.04 a solución pasou por mudar o ficheiro ~/.config/gtk-3.0/gtk.css.
$ nano ~/.config/gtk-3.0/gtk.css

e engadir ao final:

.xfce4-panel .button {
    border-color: transparent;
    background-image: none;
    border-radius: 0;
    border-color: transparent;
    box-shadow: none;
    color: @panel_fg_color;

    transition: none;
}

finalmente recarguei o panel:

$ xfce4-panel -r

Mudar cor da letra do reloxo de xubuntu 16.04

Quería poñer a letra do reloxo do panel en branco, para elo abrín o ficheiro ~/.gtkrc-2.0 co editor de texto simple (geany no meu caso) e engadín ao final:

style "panel-clock-custom"
  {
  fg[NORMAL]    = "#FFFFFF"
  fg[PRELIGHT]    = "#FFFFFF"
  fg[ACTIVE]    = "#FFFFFF"
  text[NORMAL]    = "#FFFFFF"
  text[PRELIGHT]    = "#FFFFFF"
  text[ACTIVE]    = "#FFFFFF"
  }
  widget "Xfce*Panel*clock*"    style "panel-clock-custom"

Fonte: askubuntu.com

Identificación lenta na conexión ssh

Resulta que tras reinstalar o servidor a conexión ssh tardaba arredor de 40 segundos.

Fun seguindo os casos que aquí comentan, no meu caso o problema estaba no ficheiro /etc/resolv.conf, eu tiña:

domain Home
search Home
nameserver 192.168.0.1
nameserver 8.8.8.8

a solución no meu caso foi comentar a liña nameserver 192.168.0.1, quedando así:

domain Home
search Home
#nameserver 192.168.0.1
nameserver 8.8.8.8

Logo reiniciei o servidor e desapareceu o retardo de 40 segundos na identificación.

Percorrer directorios dun cartafol excluindo algúns directorios

#!/bin/bash

echo "proba";
for i in $( ls ); do
	if [ -d $i ];
	then
		if [ "$i" != "compartido" ];
		then
			echo "$i é cartafol.";
		fi
	else
		echo "$i é ficheiro";
	fi
done;
Amosando 11 a 20 de 328