L'antre de la blatte

sslh installation et configuration

Rédigé par blattes86 Aucun commentaire
Sslh est un petit logiciel permettant de faire transiter du https et du ssh via le port 443. Il fonctionne simplement en analysant les en-tête de paquet et peut être très pratique si vous voulez vous connecter à travers un proxy qui ne laisse passer que le web. Pour l'installer il suffit de faire un petit
aptitude install sslh
Ensuit pour la configuration il vous faudra modifier la configuration de sslh, de ssh et de vos différents vhost en https.
la configuration de sslh
#/etc/default/sslh

...

RUN=yes

...
DAEMON=/usr/sbin/sslh

DAEMON_OPTS="--user sslh --listen 0.0.0.0:443 --ssh 127.0.0.1:"mon_port_ssh" --ssl 127.0.0.1:"mon_port_https" --pidfile /var/run/sslh/sslh.pid"
le configuration de ssh
#etc/ssh/sshd_config

# Package generated configuration file
# See the sshd_config(5) manpage for details

# What ports, IPs and protocols we listen for
Port "mon_port_ssh"

....
la configuration des vhost
server
{
 listen "mon_port_https" ssl;
 server_name www.lantredelablatte.fr;
...
Et pour vous connecter:
ssh -p 443 mon_user@mon_host
  Petit conseil, avant de vous déconnecter de votre machine faites un petit test. Cela pourra éviter quelque dé-convenu si vous le faites sur machine distante sans autre moyen de connexion.
Classé dans : Non classé Mots clés : sslh

ddclient et ovh

Rédigé par blattes86 Aucun commentaire
Pour la gestion de mon nom de domaine j'ai été longtemps chez gandi, mais en changeant de fournisseur je me suis retrouver sans ip fixe. Je suis donc passer chez ovh pour leur système de dynhost, la box orange n'étant pas compatible avec ovh je me suis tourné vers ddclient qui est un client universel pour tout ce qui est dns dynamique. On commence par installer le logiciel
apt-get install ddclient
Puis on édite le fichier de configuration, j'ai mis ici le strict nécessaire pas besoin de plus pour faire fonctionner ddclient avec ovh:
#/etc/ddclient.conf
daemon=0                  # check every 0 seconds
syslog=yes                  # log update msgs to syslog
mail=root                   # mail all msgs to root
mail-failure=root           # mail failed update msgs to root
pid=/var/run/ddclient.pid   # record PID in file.
cache=/tmp/ddclient.cache   # Cache file

## via our CheckIP server
use=web, web=checkip.dyndns.com/, web-skip='IP Address'

## Enter your Ovh DynHost username and password here

login=mondomaine.fr-user           # your Ovh DynHost username
password=le_mot_de_passe     # your Ovh DynHost password


## This section requires no changes unless you need to set a default proxy server
## or you need to bypass your proxy server (because it interferes with the updates)

protocol=dyndns2                    # default protocol
server=www.ovh.com           # default server

## Dynamic DNS hosts go here
www.mondomaine.fr
Pour ce qui est de la mise à jour de l'adresse, j'ai fait un petit script qui effectue une vérification de l'IP et qui la compare avec une autre que nous avons enregistrée dans un fichier. S'il y a une modification le script lancera ddclient pour la mettre à jour chez OVH. J'aurais pu aussi laissé le logiciel en mode daemon mais il a la fâcheuse tendance a lancer une sacrée flopée de processus qui ne servent pas et qui bouffent de la ressource système pour rien.
#/usr/bin/verif_ip/ip
#!/bin/sh
#recuperation de l'adresse ip actuelle
ip=$(wget -q -O - https://ipv4.lafibre.info/ip.php)
#vérification dans le fichier mon_ip
last=$(cat /usr/bin/verif_ip/mon_ip)
#comparaison des deux
if [  "$ip" != "$last" ];
 then
        #on inscrit la nouvelle ip dans le fichier mon_ip
        echo $ip > /usr/bin/verif_ip/mon_ip
        #on lance ddclient pour la mise à jour de l'ip
        /usr/sbin/ddclient  -file /etc/ddclient.conf
fi
Ensuite il nous suffit d'éditer la table cron de l'utilisateur root
crontab -e
Et d'y insérer cette petite ligne:
*/5 *   * * *   /usr/bin/verif_ip/ip

Let's encrypt avec nginx et certbot

Rédigé par blattes86 Aucun commentaire
Pour la présentation de Let's Encrypt on vas par là et pour la présentation de NginX c'est par ici. Maintenant pour l'installation sur une Debian testing (je voulais php 7.0) on peut continuer a lire. On commence par installer le paquet le paquet certbot (plus d'info ici ):
apt-get install certbot
Certbot est un client pour Let's Encrypt, la particularité de l'installé avec le paquet c'est qu'il installe absolument tout ce qu'il faut même une tâche cron. Le petit souci de Let's Encrypt c'est qu'il faut un serveur http pour pouvoir vérifier votre identité et quand on a déjà configuré tous les virtualhost en https,il faut ruser un peu. Pour cela il faut adapter la configuration de nginx, quand j'utilisé les certificats StartSSL ma configuration était celle-ci:
server
{
   listen 80;
   server_name www.monsite.fr;
   # tous ce qui arrive en http est automatiquement renvoyé vers le https
   return 301 https://$server_name$request_uri;
}



server
{
   listen 443 ssl;
   server_name www.monsite.fr;
...
Maintenant j'utilise cette configuration :
server
{
   listen 80;
   server_name www.monsite.fr;

   root /var/www/html;
   location /
   {
      # tous ce qui arrive en http est automatiquement renvoyé vers le https
      return 301 https://$server_name$request_uri;
   }
   location ~ /.well-known
   {
      #sauf cette partie que vas nous êtres utile pour certbot
      allow all;
   }
}

server
{
listen 443 ssl;
server_name www.monsite.fr;
...
ensuite pour générer vos certificat vous n'avez plus qu'a effectuer cette commande (il est possible de poussé un peu plus je vous laisse voire la doc par vous même):
certbot certonly -a webroot --webroot-path=/var/www/html -d www.monsite.fr
En gros certbot vas créer dans /var/www/html un dossier .well-known avec dedans un petit fichier. Il vas ensuite dire au serveur de Let's Encrypt: "Regarde ici, tu verras que le serveur appartient bien au gentil monsieur que te fait la demande de certification. Une fois cette vérification effectuée et validée, le certificat SSL tant désiré est généré sur votre serveur dans le dossier
/etc/letsencrypt/live/www.monsite.fr
il ne vous reste plus soit a modifié votre ancienne configuration ou faire comme ceci:
server
{
   listen 80;
   server_name www.monsite.fr;

   root /var/www/html;
   location /
   {
      # tous ce qui arrive en http est automatiquement renvoyé vers le https
      return 301 https://$server_name$request_uri;
   }
   location ~ /.well-known
   {
      #sauf cette partie que vas nous êtres utile pour certbot
      allow all;
   }
}

server
{
   listen 443 ssl;
   server_name www.monsite.fr;

   ssl on;
   ssl_certificate /etc/letsencrypt/live/www.monsite.fr/fullchain.pem;
   ssl_certificate_key /etc/letsencrypt/live/www.monsite.fr/privkey.pem;
Par contre votre certificat n'est valide que 90 jours (je vous laisse vérifier j'utilise Let's Encrypt moi même) pour le coup il vas falloir penser a regenerer le certificat. Pour cela on vas déjà lancer cette commande qui vas nous permettre de faire un tir à blanc et permettre a certbot d'effectuer la configuration qui vas bien :
certbot renew --dry-run
Pour le reste on peut faire confiance a cette magnifique tache cron mise en place automatiquement a l'installation du paquet:
# /etc/cron.d/certbot: crontab entries for the certbot package
#
# Upstream recommends attempting renewal twice a day
#
# Eventually, this will be an opportunity to validate certificates
# haven't been revoked, etc.  Renewal will only occur if expiration
# is within 30 days.
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

0 */12 * * * root test -x /usr/bin/certbot && perl -e 'sleep int(rand(3600))' && certbot -q renew
Nginx a besoin d'avoir sa configuration rechargé quand le certificat est modifié. Vous pouvez donc modifier le script comme ceci:
# /etc/cron.d/certbot: crontab entries for the certbot package
#
# Upstream recommends attempting renewal twice a day
#
# Eventually, this will be an opportunity to validate certificates
# haven't been revoked, etc.  Renewal will only occur if expiration
# is within 30 days.
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

0 */12 * * * root test -x /usr/bin/certbot && perl -e 'sleep int(rand(3600))' && certbot -q renew && service nginx reload

Bienvenue dans l'antre de la blatte

Rédigé par blattes86 Aucun commentaire
Je me présente, James, technicien système de métier, utilisateur de Debian, défenseur de l'auto-hébergement, touche à tout qui aime avoir les mains dans le cambouis... Vous trouverez sur ce site qui est plus un pense bête pour mon petit cerveau qu'autre chose, un peu tout ce que j'ai pu mettre en place avec plus ou moins de facilité sur mon petit serveur. En espérant que vous trouverez de l'aide, je vous souhaite une bonne visite.
Classé dans : Non classé Mots clés : aucun
Fil RSS des articles