Remplacer sa livebox par un UniFi Security Gateway 3P (USG)

Posté le sam. 26 août 2017 • Tags : UniFi, Gateway, Livebox, USG, Network

Ayant pas mal utilisé le materiel d'ubiquiti j'ai acheté un USG 3 pour la maison.

En recherchant un peu sur le net j'ai vu qu'il était possible de remplacer la livebox par l'USG tout en concervant la télévision etc… grâce aux VLANs.

Il y a pas mal de manipulations a faire avant de pouvoir remplacer totalement sa livebox par l'USG.

J'ai utilisé un raspberry pi qui me permet d'installer un controlleur UniFi qui permet de gerer son matériel de la marque.

En branchant l'USG au secteur il prend l'adresse IP 192.168.1.1 (la même que la livebox dans un premier temps ça aide pas…). Je branche donc l'USG en direct sur mon poste et je me connect en ssh dessus avec les login / pass : "ubnt / ubnt".

Se rendre sur mon générateur de configuration pour générer un fichier config_usg.sh

Puis télécharger les fichiers :

Faire un scp de dhclient3 rfc3442-classless-route config_usg.sh sur votre USG avec l'utilisateur "ubnt" et le mot de passe "ubnt"

scp dhclient3 rfc3442-classless-routes config_usg.sh ubnt@192.168.1.1:/home/ubnt

Se connecter en ssh sur votre usg :

ssh ubnt@192.168.1.1

Remplacer le dhclient3, copier la rfc au bon endroit et rendre executable mon script :

sudo bash
mv dhclient3 /sbin/dhclient3
chmod 775 /sbin/dhclient3
chown root:root /sbin/dhclient3
mv rfc3442-classless-routes /etc/dhcp3/dhclient-exit-hooks.d/
chown root:root /etc/dhcp3/dhclient-exit-hooks.d/rfc3442-classless-routes
chmod a+x config_usg.sh

Editer le fichier /opt/vyatta/sbin/vyatta-interfaces.pl et ajouter l'option 90 du dhcp. Il faut aller a la ligne 194 :

    $output .= "option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;\n\n";

Et ajouter dessous :

    $output .= "option rfc3118-auth code 90 = string;\n\n";

Maintenant redémarrer l'USG.

root@ubnt:/home/ubnt# reboot
Proceed with reboot? [confirm]y

Débrancher votre controlleur du réseau (pour ne pas que l'USG reprovisionne une vielle configuration).

Se connecter de nouveau en ssh sur l'usg :

ssh ubnt@192.168.1.1

Se connecter en tant que root pour executer le script

sudo bash
./config_usg.sh

Vous devriez avoir :

The specified configuration node already exists
[ service nat rule 6010 outbound-interface eth0.832 ]
NAT configuration warning: interface eth0.832 does not exist on this system

[ service nat rule 6011 outbound-interface eth0.838 ]
NAT configuration warning: interface eth0.838 does not exist on this system

[ interfaces ethernet eth0 vif 838 address dhcp ]
Starting DHCP client on eth0.838 ...

[ interfaces ethernet eth0 vif 832 address dhcp ]
Starting DHCP client on eth0.832 ...

[ service ssh ]
Restarting OpenBSD Secure Shell server: sshd.

[ protocols igmp-proxy ]
Starting IGMP proxy

[ service dhcp-server ]
Stopping DHCP server daemon...
Starting DHCP server daemon...

Saving configuration to '/config/config.boot'...
Done
[edit]

Puis j'éteind l'USG pour remplacer la livebox.

Le port WAN1 pour l'ONT

Le port LAN1 pour votre réseau local

Le port WAN2/LAN2 pour la télévision

Quand j'arrive a joindre l'usg sur l'IP 192.168.1.1 je me reconnect en ssh et je me connect en root pour sauver la config et l'envoyer sur ma machine.

sudo bash
mca-ctrl -t dump-cfg > config.gateway.json
scp config.gateway.json user@ma_machine:/home/user/

Maintenant je me déconnecte de l'usg. Je débranche le câble réseau entre l'usg et mon réseau local pour pouvoir rebrancher mon controlleur. Si on débranche pas l'usg il va reprendre la config par defaut du controlleur et il faudra tout refaire (hormis les copies des fichiers dhclient3 rfc… etc…).

Depuis mon poste je copie sur mon controlleur le fichier config.gateway.json que je viens de sauver.

scp config.gateway.json user@mon_controlleur:/home/user

Puis je me connecte a mon controlleur en ssh pour déposer dans le bon dossier ce fichier.

Le dossier doit être /data/sites/default si vous utilisez le site par defaut.

Reconnecter l'USG a votre réseau.

Il va être de nouveau provisionné par votre controlleur, si vous avez des erreurs lors de ce provisionning elles seront affichées dans "alerts" sur votre controlleur. Dans ce cas il y a un truc qui cloche entre votre config et celle du controlleur revoir les différentes étapes.

Si le provisionning est ok l'USG redémarre et la config est enfin fini ! ;-)

Grand merci au forum lafibre.info et particulièrement ce sujet.


Installation de Proxmox-VE 5 sur Debian Stretch

Posté le sam. 26 août 2017 • Tags : Proxmox, Debian, Stretch

Suite à l'installation de mon NAS, j'ai installer un proxmox dessus. Par contre il ne faut pas modifier le sources.list ni installer firmware-linux-nonfree avant d'installer proxmox (celà ne fonctionne pas du tout).

Sur debian éditer le fichier /etc/hosts comme ceci :

127.0.0.1       localhost.localdomain localhost
192.168.15.77   prox4m1.proxmox.com prox4m1 pvelocalhost

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Puis tester la configuration :

hostname --ip-address
192.168.15.77 # should return here your IP adress

Puis on ajoute au sources.list le dépot de proxmox, on récupere la clé et on update :

echo "deb http://download.proxmox.com/debian/pve stretch pve-no-subscription" > /etc/apt/sources.list.d/pve-install-repo.list
wget http://download.proxmox.com/debian/proxmox-ve-release-5.x.gpg -O /etc/apt/trusted.gpg.d/proxmox-ve-release-5.x.gpg
apt update && apt dist-upgrade

Puis on install les packages Proxmox VE :

apt install proxmox-ve postfix open-iscsi

On configure postfix en distribution locale uniquement et à la fin de l'installation on reboot.

Au reboot vous devriez avoir la main en https sur https://ip_proxmox:8006

S'identifier avec vos login / pass debian.

Pour ne pas avoir la popup qui indique que vous n'avez pas de souscription il faut modifier le fichier /usr/share/pve-manager/js/pvemanagerlib.js et rechercher la ligne avec :

if (data.status !== 'Active') {

remplacer par :

if (false /*data.status !== 'Active'*/) {

Puis relancer pveproxy avec la commande pveproxy restart

Se déconnecter de l'interface proxmox, à la reconnection vous n'aurez plus le message de souscription.

Puis faire les commandes optionnelles :

apt remove os-prober
apt remove linux-image-amd64 linux-image-4.9.0-3-amd64
update-grub

Upgrade NAS

Posté le sam. 26 août 2017 • Tags : NAS, HP, Microserver, Debian, Proxmox, Stockage, Data

J'ai acheté il y a quelques années un HP Microserver Gen7 qui me sert de NAS, dessus j'avais installé Debian 6 à l'époque puis j'ai mis à jour jusqu'à la version 9.

Mon objectif est l'ajout d'un disque car j'ai 4 emplacements pour le stockage et je n'utilisais que 3 de ses 4 emplacements.

Pour commencer il me fallait un rack 5"¼ permettant de mettre un disque 3"½ ou 2"½, je l'ai trouvé sur LDLC c'est un "ICY BOX IB-129SSK-B", ensuite j'ai pris sur Amazon un disque Seagate ST500LM030 en 2"½ de 500Go et j'avais ce qu'il fallait pour le SATA et l'alimentation.

Ce qui m'a permis de mettre un disque 2"½ au niveau de l'emplacement CDROM du HP Microserver.

J'ai du tué mon uptime d'un an (depuis mon dernier déménagement) :

 12:31:37 choiz@wayland ~  #❯❯❯ uptime
 12:31:37 up 366 days,  1:08,  1 user,  load average: 0,16, 0,22, 0,24

Pour la réinstallation j'ai monté un serveur PXE sur debian merci Benjamin pour le lien et les conseils.

Installationn du TFTP :

# apt-install -y tftpd-hpa

Si vous avez un pare-feu n'oubliez pas d'ouvrir le port 69 :

# iptables -A INPUT -p udp -m udp --dport 69 -j ACCEPT

Installer le serveur DHCP :

# apt install isc-dhcp-server

Mes IP sont dans le réseau 192.168.1.0/24, mon router en 192.168.1.1, je met un range entre 192.168.1.100 et 192.168.1.150 mon serveur TFTP est en 192.168.1.2.

Voici la conf d'isc-dhcp-server :

default-lease-time 600;
max-lease-time 7200;

allow booting;

# in this example, we serve DHCP requests from 192.168.1.(3 to 253)
# and we have a router at 192.168.1.1
subnet 192.168.1.0 netmask 255.255.255.0 {
  range 192.168.1.100 192.168.1.150;
  option broadcast-address 192.168.1.255;
  option routers 192.168.1.1;
  option domain-name-servers 192.168.1.1;
  filename "pxelinux.0";
}

group {
  next-server 192.168.1.2;
  host tftpclient {
    filename "pxelinux.0";
  }
}

Redémarrer le DHCP pour que la config soit prise en compte.

# systemctl restart isc-dhcp-server

Maintenant nous téléchargeons la dernière version de debian pour la mettre sur notre TFTP :

# cd /srv/tftp/
# wget -c http://ftp.fr.debian.org/debian/dists/stretch/main/installer-amd64/current/images/netboot/netboot.tar.gz
# tar -zxf netboot.tar.gz
# rm netboot.tar.gz
# systemctl restart tftpd-hpa

Le PXE est maintenant fonctionnel avec l'installation de debian.

Je réinstall donc debian 9.1 proprement.

Pour éviter d'avoir ses messages d'erreurs :

W: Possible missing firmware /lib/firmware/tigon/tg3_tso5.bin for module tg3
W: Possible missing firmware /lib/firmware/tigon/tg3_tso.bin for module tg3
W: Possible missing firmware /lib/firmware/tigon/tg3.bin for module tg3

Je modifie mon fichier /etc/apt/sources.list et j'ajoute les "non-free".

Puis j'install le firmware-linux-nonfree :

apt update
apt install firmware-linux-nonfree

Il me reste plus qu'a remonter mes disques de backup et de refaire mes partages.


Re-générer une clé rsa publique

Posté le lun. 05 juin 2017 • Tags : id_rsa, rsa, pub, key, ssh

Si vous n'avez plus de clé publique, mais que vous avez toujours votre clé privée vous pouvez regénérer votre clé publique.

Pour se faire il faut utiliser la commande ssh-keygen avec l'option -y et -f pour désigner la clé privé.

ssh-keygen -y -f ~/.ssh/id_rsa > ~/.ssh/id_rsa.pub

On utilise ci-dessus l'id_rsa (privée) pour générer l'id_rsa.pub.


Utiliser un Bastion SSH

Posté le jeu. 01 juin 2017 • Tags : SSH, Bastion, linux, unix, tunnel

Pour créer un Bastion SSH il suffit de modifier votre configuration ssh qui se trouve dans ~/.ssh/config et d'ajouter les deux lignes suivantes :

Host destination.local
    ProxyCommand ssh user@bastion.fr -W %h:%p

C'est tout.

Explications : on utilise l'host bastion.fr pour se connecter à destination.local. Quand je tape sur ma machine local ssh choiz@destination.local mon client SSH lit le fichier de configuration, se connecte à l'host bastion.fr avec l'utilisateur user puis fait une nouvelle connexion vers ma destination.

Vous pouvez modifier votre configuration ssh pour se connecter à votre bastion avec une clé spécifique puis a votre destination avec une autre clé par exemple ou avec des utilisateurs différents…

Exemple :

Host bastion.fr
    User toto
    IdentifyFile ~/.ssh/bastion

Host destination.local
    User tata
    IdentifyFile ~/.ssh/destination

Enjoy vincent.m ;-)


Docker commandes utiles

Posté le dim. 14 mai 2017 • Tags : docker, linux, container

Voici quelques commandes très utiles si vous utilisez docker.

Supprimer tous les containers qui sont arétés :

docker ps -q | xargs docker rm

Supprimer toutes les images non utilisées :

docker images -q | xargs docker rmi

Se connecter a un conteneur docker lancé par son id :

docker exec -it id_de_votre_container /bin/bash

Se connecter a un conteneur docker lancé par son nom :

docker exec -it nom_de_votre_container /bin/bash

Convertir un .deb en archive .tar.gz

Posté le sam. 30 juillet 2016 • Tags : deb, tar.gz, debian, ubuntu, archive, gentoo, linux

En voulant installer le logiciel "slack" sur ma machine gentoo au travail j'ai trouvé un logiciel plutôt intéressant nommé "deb2targz".

En effet slack ne dispose que des archives ubuntu en 32 bits, 64 bits et fedora en 64 bits.

deb2targz permet de convertir un fichier ".deb" en archive ".tar.gz".

Si vous êtes sur gentoo installez le via : emerge -a app-arch/deb2targz


Installation de xubuntu 16.04 sur ASUS X205TA

Posté le sam. 21 mai 2016 • Tags : xubuntu, linux, Asus X205TA, 64bits, ubuntu

J'ai récement acheté un ASUS X205TA, livré avec Windows 10 (32 bits), un disque SSD de 32Go et 2Go de ram et pour un prix de 210€.

J'ai installé xubuntu 16.04 (64 bits) sur une partition séparée pour garder Windows 10.

L'installation est plutôt complexe car le "bootloader" est en 32bits (je pense d'ailleurs que c'est pour ça qu'il est livré avec un windows 32bits et non 64bits).

Voici un message qui explique l'installation simple d'ubuntu (remplacer l'iso par xubuntu ou autre).

Pour l'instant : la carte son n'est pas reconnue et le pointeur de la souris disparait suite a la mise en veille… Mis a part ça la machine fonctionne très bien pour mon utilisation (des petits développements pendant mes trajets maison <-> travail).


Passage en SSL du blog

Posté le jeu. 28 avril 2016 • Tags : blog, ssl, https, github, page

J'utilise pelican sur github pour écrire mon blog depuis quelques temps, voir les articles précédents sur le sujet.

J'ai décidé de passer le blog en https, avec un certificat gratuit let's encrypt.

Pour mettre en place un certificat SSL sur "github page" il faut avoir un serveur web qui fait reverse proxy. J'utilise donc apache avec la configuration suivante :

  • Un vhost pour "choiz.fr" qui redirige le port 80 de "choiz.fr" vers le 443 de "www.choiz.fr".
  • Un vhost pour "choiz.fr" qui redirige le port 443 (avec un certificat ssl valide) de "choiz.fr" vers le 443 de "www.choiz.fr".
  • Un vhost pour "www.choiz.fr" qui redirige le port 80 de "www.choiz.fr" vers le 443 de "www.choiz.fr".
  • Et un vhost avec le certificat SSL ainsi que le reverse proxy qui fait croire a github que je tape directement l'url "http://choiz.github.io".

Ici la configuration du dernier vhost :

<IfModule mod_ssl.c>
<VirtualHost *:443>
    ServerName www.choiz.fr

    SSLProxyEngine On
    ProxyRequests Off
    ProxyPreserveHost Off
    ProxyPass / https://choiz.github.io/
    ProxyPassReverse / https://choiz.github.io/
    ProxyPassReverse / http://choiz.github.io/

    # puis la config du SSL
    SSLEngine On
    SSLCertificateFile …
    SSLCertificateKeyFile …
</VirtualHost>
</IfModule>

Mise à jour d'un kernel gentoo

Posté le sam. 21 novembre 2015 • Tags : gentoo, kernel, upgrade, noyaux, linux

Étant actuellement sur un noyau en version 4.2.0, ci-dessous la marche a suivre pour le mettre à jour vers la version : 4.3.0.

Je liste les différents noyaux gentoo disponibles :

eix sys-kernel/gentoo-sources

Je télécharge le noyau 4.3.0 :

emerge -a =sys-kernel/gentoo-sources-4.3.0

Une fois téléchargé, il faut modifier le lien symbolique /usr/src/linux grâce à eselect.

J'affiche la liste des noyaux (celui actuellement selectionné est suivi d'une étoile) :

eselect kernel list

[1]     linux-4.2.0-gentoo *
[2]     linux-4.3.0-gentoo

Pour selectionner notre noyau 4.3.0 il faut utiliser :

eselect kernel set 2

Maintenant que vous avez selectionné votre noyau, copier le fichier ".config" de votre noyau précédent (pour conserver vos réglages de compilation) :

cp /usr/src/linux-4.2.0-gentoo/.config /usr/src/linux

Puis compiler votre kernel.