Stephanedalmard.fr/blog

Aucun commentaire

Afin de lancer calibre-server, depuis une connexion ssh, il est nécessaire de lancer une session screen pour quitter la session ssh en cours sans interrompre le processus du serveur calibre.

Installer screen:

sudo apt-get screen


  1. Ouvrir une session ssh
    ssh admin@ip
  2. Ouvrir une session screen
    screen -S session_calibre
  3. Lancer calibre en mode serveur :
    calibre-server
  4. Détacher la session "session_calibre" : ctrl + a + d
  5. Fermer la session ssh ctrl + d


Commandes screen basiques:

Lister les différentes sessions en activitées:

screen -ls

Reprendre la session:

screen -r nom_session


ref:

Aucun commentaire

Rappel

  • Afficher les règles en cours (root):iptables L --line-numbers
  • Réinitialiser toutes les règles: iptables -F
  • L'ordre est important et joue sur le filtrage

Configuration basique

iptables -A INPUT -p tcp --dport ssh -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -p tcp --dport imap2 -j ACCEPT
iptables -A INPUT -p icmp -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -P INPUT DROP

ref:

1 commentaire

Afin de générer un certificat https sur mon serveur distant (mutualisé) avec lets-encript. et n'ayant qu'un accès FTP (pas d'accès en console root), j'utilise Certbot.
Pour cela il est nécessaire de lancer let's encript sur le pc locale et d'envoyer les certificats via FTP sur le site distant.

Sur le pc locale

Créer le dossier cerbot et aller dans le répertoire crée

mkdir certbot && cd certbot

Récupérer certbot

git clone https://github.com/certbot/certbot

Génération du certificat

./certbot/letsencrypt-auto certonly --manual -d monsite.com

Pour prouver que je suis le propriétaire du site certbot demande de créer un fichier dans un répertoire spécifique.
En l’occurrence créer un fichier (à la racine du site) .well-known/acme-challenge/THyxasN35BQaTj-a7FASTqmT626fey1va51EO90PC7I contenant THyxasN35BQaTj-a7FASTqmT626fey1va51EO90PC7I.cbhiFNQ0DT6YQ1x9Nkfp20lYVcEg5ucjOsMjtfw3R1k

Make sure your web server displays the following content at
url://monsite.com/.well-known/acme-challenge/THyxasN35BQaTj-a7FASTqmT626fey1va51EO90PC7I before continuing:

THyxasN35BQaTj-a7FASTqmT626fey1va51EO90PC7I.cbhiFNQ0DT6YQ1x9Nkfp20lYVcEg5ucjOsMjtfw3R1k

If you don't have HTTP server configured, you can run the following
command on the target server (as root):

mkdir -p /tmp/certbot/public_html/.well-known/acme-challenge
cd /tmp/certbot/public_html
printf "%s" THyxasN35BQaTj-a7FASTqmT626fey1va51EO90PC7I.cbhiFNQ0DT6YQ1x9Nkfp20lYVcEg5ucjOsMjtfw3R1k > .well-known/acme-challenge/THyxasN35BQaTj-a7FASTqmT626fey1va51EO90PC7I
# run only once per server:
$(command -v python2 || command -v python2.7 || command -v python2.6) -c \
"import BaseHTTPServer, SimpleHTTPServer; \
s = BaseHTTPServer.HTTPServer(('', 80), SimpleHTTPServer.SimpleHTTPRequestHandler); \
s.serve_forever()"
-------------------------------------------------------------------------------
Press Enter to Continue

Vérifier sur le navigateur que le fichier est bien accessible à l'adresse créée.

Une fois le fichier créé et accessible sur le site distant il ne reste plus qu'à générer les certificats (appuyer sur Entrée). Ceux-ci (cert.pem, chain.pem, fullchain.pem, privkey.pem.) seront accessible dans le dossier /etc/letsencrypt/live/ suivit du domaine concerné.

Waiting for verification...
Cleaning up challenges
Generating key (2048 bits): /etc/letsencrypt/keys/0002_key-certbot.pem
Creating CSR: /etc/letsencrypt/csr/0002_csr-certbot.pem

IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at
/etc/letsencrypt/live/mondomaine.com/fullchain.pem. Your cert
will expire on 2017-05-24. To obtain a new or tweaked version of
this certificate in the future, simply run letsencrypt-auto again.
To non-interactively renew *all* of your certificates, run
"letsencrypt-auto renew"
- If you like Certbot, please consider supporting our work by:

Donating to ISRG / Let's Encrypt: url://letsencrypt.org/donate
Donating to EFF: url://eff.org/donate-le

Installation du certificat sur le site distant (via cPanel)

Gérer la liste des certificats: copier/coller la clé privée (privkey.pem) dans le champ Private Keys et le certificat (fullchain.pem) dans la section Certificates.

ref:

1 commentaire

Afin d'être averti quotidiennement des mises à jour système disponibles pour mon ordinateur de bureau, et ne souhaitant pas utiliser gnome-packagekit (utilitaire de mise à jour spécifique à l'environnement gnome) ni apticron (rapport à la nécessité de configurer le serveur mail), j'ai décidé de créer une tache cron affichant les mises à jour disponibles dans une fenêtre. Cela me permet ensuite de procéder, si nécessaire, aux installations de manière plus précise avec par exemple aptitude.

Dans un premier temps Il s'agit de concevoir une suite de commandes:

  • apt-get update pour actualiser la listes des paquets
  • apt-get upgrade --assume-no pour afficher les paquets à installer sans lancer l'installation
  • Rediriger le résultat dans un fichier "upgrade.log"
apt-get update && apt-get upgrade --assume-no > /chemin/upgrade.log

Dans un deuxième temps il faut éditer un script python qui affichera une fenêtre avec le contenu du fichier"upgrade.log".

Le script python utilise tkinter comme interface graphique.

#!/usr/bin/env python2.7        

#-*-coding:utf-8-*-
from Tkinter import *

fenetre = Tk()

fichier = open("/chemin/upgrade.log", "r")
content = fichier.read()
fichier.close()

Label(fenetre, text=content).pack(padx=10, pady=10)

Button(fenetre, text="Quitter", command=fenetre.destroy).pack(pady=5)

fenetre.mainloop()

Crontab root

Il ne reste plus qu'à éditer le crontab (crontab -e) pour actualiser le fichier "upgrade.log" et lancer le script python affichant la fenêtre avec les informations de mise à jours .

0 10,22 * * * apt-get update && apt-get upgrade --assume-no > /chemin/upgrade.log
05 10,22 * * * DISPLAY=:0 /chemin/upgrade.py

Aucun commentaire

Afin d'automatiser une connexion ssh sur un serveur distant il est nécessaire de créer une clé SSH pour ne pas avoir à renseigner le mot de passe manuellement.

  1. Générer la clé

    ssh-keygen -t dsa -f /home/admin/.ssh/cle_ssh

    La passphrase peut être vide pour indiquer qu'il n'y en a pas.

  2. Copier la clé sur le serveur distant

    scp -p /root/.ssh/cle_ssh.pub  admin@xxx.xxx.xxx.xxx:/root/.ssh/
  3. Autoriser les authorized_keys dans sshd_config

    emacs -nw /etc/ssh/sshd_config

    Décommenter la ligne : AuthorizedKeysFile %h/.ssh/authorized_keys

  4. Recharger SSH

    /etc/init.d/ssh force-reload
  5. Copier la clé dans .ssh/authorized_keys

    cat cle_ssh.pub >> authorized_keys
  6. Il ne reste plus qu'à se connecter au serveur

    ssh -i /home/admin/.ssh/cle-ssh admin@xxx.xxx.xxx.xxx



ref: Login SSH sans mot de passe

Aucun commentaire

L'installation et la configuration d'apticron est simple et rapide mais nécessite un serveur de mail opérationnel. Cet article s’attardera donc sur la configuratiion d'un serveur de mail, en l’occurrence Exim4, sur Debian.

Apticron

Apticron permet d'être informé par mail des mises à jour possibles d'un système. Il s’agit d’un script,
appelé quotidiennement par cron , qui met à jour la liste des paquets disponibles et envoie un
courrier électronique à une adresse donnée pour lister les paquets qui nécessite une installation.

Installer apticron

sudo apt-get install apticron

Edition du fichier de configuration de apticron

emacs -nw /etc/apticron/apticron.conf

Modifier le cron d'apticron.

emacs -nw /etc/cron.d/apticron

Par défaut la vérification d'apticron se fait toutes les 10 minutes.

10 * * * * root if test -x /usr/sbin/apticron; then /usr/sbin/apticron --cron; else true; fi

Relancer cron


/etc/init.d/cron restart

Exim4


Configuration de Exim4


Voir les fichiers "/etc/mailname", "/etc/hostname", "/etc/hosts" pour préparer la configuration.


dpkg-reconfigure exim4-config

  1. Type de configuration : " Envoi via relais ("smarthost") - réception SMTP ou fetchmail "

  2. Nom de courriel du système : nom de la machine, suivi du nom de domaine, le résultat de la comande $ hostname -f

  3. Liste d'adresses IP  : 127.0.0.1 ; ::1 (ou laissez vide)

  4. Autres destinations  : laissez vide

  5. Machines à relayer : laissez vide

  6. Nom réseau ou adresse IP du système "smarthost" : le serveur de courriel (smtp) de votre FAI

  7. Faut-il cacher : NON

  8. Faut-il minimiser : NON

  9. Méthode de distribution : "Maildir"

  10. Faut-il séparer : NON


Éditez le fichier /etc/email-addresses et ajoutez les deux lignes suivantes :



user: votre-adresse-email
root: votre-adresse-email

Modifier le fichier /etc/aliases



user: votre-adresse-email
root: votre-adresse-email

Recharger et redémarrer



$ newaliases
$ update-exim4.conf
$ service exim4 restart

Pour les serveurs de mail nécessitant un mot de passe il faut éditer le fichier /etc/exim4/passwd.client


emacs -nw /etc/exim4/passwd.client

target.mail.server.example:login:password

Vérification:


$ echo -e "Mail envoyé le $(date)" | mail -s "Test mail" votre-adresse-email

Ref:


Aucun commentaire

Le logiciel Network Manager permet à l’utilisateur de gérer facilement les différents réseaux via l'interface graphique. Cependant il ne gère pas par défaut les interfaces activées dans /etc/network/interfaces. Celles-ci ne sont tout simplement pas lister et le logiciel n’indiquera pas les raisons de ces absences.

Pour régler ce problème il est nécessaire d'éditer le fichier /etc/NetworkManager/NetworkManager.conf et de donner la valeur true au paramètre managed.

[main]
plugins=ifupdown,keyfile

[ifupdown]
managed=true

Puis de redémarrez NetworkManager

/etc/init.d/network-manager restart

Ref:

Aucun commentaire

Méthode d'installation de polices de caractères ( .ttf ou .otf) sur distribution GNU/Linux et plus spécifiquement Debian.

Installation

  • Installation pour utilisateur courant

    Il suffit de se placer dans le dossier .fonts de votre home (ou le créer s'il n'existe pas) et d'y placer les polices souhaitées (au format .ttf ou .otf).

  • Installation pour tous les utilisateurs

    Même procédure mais avec comme dossier cible: /usr/share/fonts/

Reconstruction des fichiers de cache d'information de polices

Enfin il est nécessaire de recharger le cache des polices pour prendre en compte les changements effectués.

fc-cache -fv

rf:

Aucun commentaire

Dans le cadre d'utilisation d'un serveur distant personnel accessible via ssh, j'utilise PAL comme agenda pour sa simplicité couplé à MSMTP comme client smtp basique.

PAL

Pal est un agenda pour système Unix/Linux, utilisable en ligne de commande.

Le fichier calendar.jferies doit être appelé par le fichier pal.conf pour ajouter à l'agenda les différents jours fériés français.
Chemin du fichier pal.conf : ~/.pal/pal.conf

calendar.jferies

#
# Jours fériés
#
# $FreeBSD: src/usr.bin/calendar/calendars/fr_FR.ISO8859-1/calendar.jferies,v 1.1.2.1 2000000205/27 12:15:06 dwmalone Exp $
#

[] France
# Jours chomés
00000101 Nouvel an
00000501 Fête du travail
00000508 Armistice 1945
00000714 Fête nationale française
00001111 Armistice 1918

# Jours fériés religieux
Easter Pâques
Easter+001 Lundi de Pâques
Easter+039 Ascension
Easter+049 Pentecôte
Easter+050 Lundi de Pentecôte
00000815 Assomption
00001101 Toussaint
00001225 Noël

# Les dates suivantes ne sont malheureusement pas fériées...

# Saisons
00000321 Printemps
00000621 Été
00000921 Automne
00001221 Hiver

# Changements d'heure
*0347 Passage à l'heure d'été

# Divers
*0547 Fêtes des mères
*0637 Fêtes des pères
*1047 Passage à l'heure d'hiver

MSMTP

Msmtp est un client smtp simple utilisable en ligne de commande pour envoi de courrier électronique.

Fichier de configuration .msmtprc:

$ emacs -nw .msmtprc

Crontab

Modifier la contrab

crontab -e

Envoyer un mail tous les jours à 8H00 renseignant sur les événements des sept jours à venir.

0 8 * * * pal --mail -r 7 | msmtp address@exemple.com

Envoyer un mail tous les premiers du mois à 8H00 renseignant sur les événements des trente jours à venir.

0 8 1 * * pal --mail -r 30 | msmtp address@exemple.com



Ref:


Aucun commentaire

Dvgrab permet la capture, en ligne de commande, de séquences vidéo DV et HDV via une liaison IEEE1394 (FireWire).

Installation

Dans le terminal:

sudo apt-get install dvgrab

Dvgrab en mode interactif

sudo dvgrab -i

-i permet de lancer dvgrab en mode intéractif et de le contrôler le lecteur (lecture, stop, pause, avance rapide...) ctrl-c pour interrompre la commande.

Going interactive. Press '?' for help.
q=quit, p=play, c=capture, Esc=stop, h=reverse, j=backward scan, k=pause
l=forward scan, a=rewind, z=fast forward, 0-9=trickplay, space=play/pause
"Playing Paused" ff :ff :ff :ff "" sec

Par défaut le fichier vidéo est enregister en .avi, cependant les extensions dv, dif, mov, jpg, jpeg et m2t (HDV) sont possibles.

Options

Quelques options intéressantes:

  • -a, --autosplit => détecte les différentes séquences et les enregistre dans des fichiers différents.
  • -f, --format => détermine le format de sortie de la vidéo. dv1 | dv2 | avi | raw | dif | qt | mov | jpeg | jpg | mpeg2 | hdv
  • -d, -duration time => déterminer une durée maximale de la capture
  • -s, -size num => détermine le poids maximum par fichier (par défault le pods max est 1024 MB).
  • -timecode => ajouter le timecode de l'image de début à chaque fichier.
  • -t, -timestamp => ajouter la date et l'heure d'enregistrement de chaque fichier.

Exemple

dvgrab --autosplit --format mov --timestamp nom-du-fichier-

ref :