dimanche 8 septembre 2019

Installer un serveur TURN/STUN pour Talk@Nextcloud

L'application "Talk" de Nextcloud gagne toujours plus en maturité à chaque nouvelle version. Pour en profiter pleinement, il est nécessaire de paramétrer un serveur TURN/STUN dans la page de configuration du module Talk de Nextcloud.

Nous allons voir ici comment installer un serveur TURN/STUN sous Debian Buster.

On commence, sans originalité, par installer le paquet :

apt install coturn

Et on le configure dans /etc/turnserver.conf :

tls-listening-port=5349
fingerprint
use-auth-secret
static-auth-secret=secretkey
realm=turn.monurl.tld
total-quota=100
bps-capacity=0
stale-nonce
cert=/etc/turnserver/cert.pem
pkey=/etc/turnserver/privkey.pem
cipher-list="ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256"
no-loopback-peers
no-multicast-peers

Conformément à ce que nous venons d'écrire dans le fichier de configuration, il faut alors ouvrir le port 5349 de l'éventuel pare-feu, par exemple si on utilise nftables en ajoutant cette ligne dans /etc/nftables.conf :

tcp dport 5349 accept

Il convient également de rendre la clé et le certificat permettant le chiffrement accessibles à l'utilisateur turnserver dans /etc/turnserver/*.pem. Si les certificats ont été obtenus avec letsencrypt, on pourra par exemple effectuer les commandes suivantes :

mkdir /etc/turnserver
cp /etc/letsencrypt/live/turn.monurl.tld/privkey.pem /etc/turnserver/
cp /etc/letsencrypt/live/turn.monurl.tld/cert.pem /etc/turnserver/
chmod a+r /etc/turnserver/privkey.pem
systemctl restart turnserver

Il sera nécessaire de répéter les opérations ci-dessous à chaque mise à jour du certificat et de la clé privée par let's encrypt (ou votre fournisseur de certificat TLS) !

Le serveur TURN/STUN doit alors être fonctionnel !

samedi 7 septembre 2019

Asus UX331 et Debian Buster : tout fonctionne parfaitement

À l'achat d'un nouvel ordinateur, tous les utilisateurs de Linux s'interrogent sur le support complet de la machine qu'ils visent par leur distribution préférée. Je n'échappe pas à ce questionnement (fort légitime). Je partage donc ici mon retour d'expérience sur l'installation de Debian Buster sur un ordinateur Asus Zenbook UX331.

Tout fonctionne parfaitement pendant et après l'installation sauf le Wifi qui nécessite un firmware non libre non disponible dans l'installateur. Il est toutefois possible de fournir à l'installateur le firmware à l'aide périphérique amovible avec le fichier en cours d'installation ou bien il faut installer avec un adaptateur Ethernet <-> USB reconnu par Linux.

Principaux points :

  • affichage : écran parfaitement reconnu, la luminosité est correctement contrôlée par les touches ad-hoc du clavier
  • son : parfaitement reconnu, en revanche les touches "volume +" et "volume -" du clavier ne fonctionnent pas
  • rétro-éclairage du clavier : totalement fonctionnel et réglable avec les touches du clavier
  • wifi : pleinement fonctionnel après installation du package "firmware-misc-nonfree"
  • touchpad : pleinement fonctionnel sauf la touche de désactivation du touchpad
  • lecteur d'empreinte : non testé
  • la mise en veille (suspend) et en hibernation se fait sans problème

Au final, absolument rien de bloquant ou de gênant au quotidien ! Ah si, une petite particularité à laquelle il faut s'habituer : la batterie est équipée d'un système de prévention de son usure et donc par défaut la batterie ne se recharge que lorsqu'elle est descendue en-dessous de 80%. Autrement dit, branchée au secteur alors qu'elle se trouve à 88% de charge, la batterie ne bouge pas. Il existe un utilitaire sous Windows pour régler ce comportement. Cela n'existe pas à ma connaissance sous Linux.

Voici ce que rapporte lspci :

00:00.0 Host bridge: Intel Corporation Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers (rev 08)
00:02.0 VGA compatible controller: Intel Corporation UHD Graphics 620 (rev 07)
00:04.0 Signal processing controller: Intel Corporation Skylake Processor Thermal Subsystem (rev 08)
00:14.0 USB controller: Intel Corporation Sunrise Point-LP USB 3.0 xHCI Controller (rev 21)
00:14.2 Signal processing controller: Intel Corporation Sunrise Point-LP Thermal subsystem (rev 21)
00:15.0 Signal processing controller: Intel Corporation Sunrise Point-LP Serial IO I2C Controller #0 (rev 21)
00:15.1 Signal processing controller: Intel Corporation Sunrise Point-LP Serial IO I2C Controller #1 (rev 21)
00:16.0 Communication controller: Intel Corporation Sunrise Point-LP CSME HECI #1 (rev 21)
00:17.0 SATA controller: Intel Corporation Sunrise Point-LP SATA Controller [AHCI mode] (rev 21)
00:1c.0 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port #5 (rev f1)
00:1c.5 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port #6 (rev f1)
00:1e.0 Signal processing controller: Intel Corporation Sunrise Point-LP Serial IO UART Controller #0 (rev 21)
00:1e.2 Signal processing controller: Intel Corporation Sunrise Point-LP Serial IO SPI Controller #0 (rev 21)
00:1f.0 ISA bridge: Intel Corporation Sunrise Point LPC Controller/eSPI Controller (rev 21)
00:1f.2 Memory controller: Intel Corporation Sunrise Point-LP PMC (rev 21)
00:1f.3 Audio device: Intel Corporation Sunrise Point-LP HD Audio (rev 21)
00:1f.4 SMBus: Intel Corporation Sunrise Point-LP SMBus (rev 21)
01:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS522A PCI Express Card Reader (rev 01)
02:00.0 Network controller: Intel Corporation Wireless 8265 / 8275 (rev 78)

et lsusb :

Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 8087:0a2b Intel Corp. 
Bus 001 Device 002: ID 13d3:5a09 IMC Networks 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

dimanche 25 août 2019

Prestashop derrière un reverse proxy TLS/SSL

En déployant Prestashop derrière un proxy qui gérait le chiffrement TLS/SSL, j'ai été confronté à un problème de boucle de redirection qui rendait le magasin en ligne inacessible. Le problème a été réglé en exécutant cette modification sur la base de données :

UPDATE ps_configuration SET value='1' WHERE name='PS_SSL_ENABLED';

Configuration de zsh, inspirée de la formation Debian d'Alexis de Lattre

Ceux qui ont débuté sous Debian il y a quelques années ont peut-être découvert la formation Debian d'Alexis de Lattre. Celle-ci a récemment migré vers un nouveau domaine : https://formation-debian.viarezo.fr/ mais il me semble qu'elle n'a plus été mise à jour depuis quelques temps.

Je stocke ici les fichiers de paramétrage de ZSH légèrement modifiés pour tenir compte de ce billet et de ce billet.

On pourra télécharger les fichiers et les placer à l'endroit adéquat du serveur avec cette série de commandes :

wget https://blog.bandinelli.net/public/zshrc
wget https://blog.bandinelli.net/public/zshenv
wget https://blog.bandinelli.net/public/zlogin
wget https://blog.bandinelli.net/public/zlogout
wget https://blog.bandinelli.net/public/dir_colors
mv zshrc zshenv zlogin zlogout /etc/zsh/
mv dir_colors /etc/

LXC 3 sur Debian Buster, "bad template"

Sur une version de Debian Buster fraîchement installée, il était impossible de déployer une instance LXC car aucun template n'était trouvé :

get_template_path: 918 No such file or directory - bad template: debian

Il faut seulement installer les templates de LXC par :

apt install lxc-templates

mercredi 27 juin 2018

Certbot "ImportError: cannot import name jose" on Debian Stretch

I recently ran into the following error when running `certbox renew`:

Traceback (most recent call last):
  File "/usr/bin/certbot", line 11, in <module>
    load_entry_point('certbot==0.19.0', 'console_scripts', 'certbot')()
  File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 561, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2631, in load_entry_point
    return ep.load()
  File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2291, in load
    return self.resolve()
  File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2297, in resolve
    module = __import__(self.module_name, fromlist=['__name__'], level=0)
  File "/usr/lib/python2.7/dist-packages/certbot/main.py", line 11, in <module>
    from acme import jose
ImportError: cannot import name jose

I fixed it by launching the following command:

apt-get install certbot python3-certbot python3-acme python3-cryptography python3-josepy python3-setuptools -f -t stretch-backports

- page 1 de 14