Cam Manager under Debian Like

After my latest install, i discover the WebCam can’t be disable except in CLI. I have write a small Python program, to have a graphical “action” instead load/unload the module from the command line.

You can use/fork/update. The project is available on GitHub.

FreeRadius and Dnsmasq

I use DNSmasq to manage my local DHCP/DNS server, but unfortunatly there is no plugin’s or wrapper for FreeRadius. I have coded a quick and dirty Python program to do this:

  • Generate an authorize file
  • Generate and authorized_macs file (no more require with my settings)

My next step is use the “tag” with the “set:” section from dnsmasq for mark the vlan ID (for exemple set:vlan10).this code is also available on GitHub.

After launching the script, copy the authorize_conf file in the files folder in the freeradius 3.0 directory.

i use the $INCLUDE value in the default.conf for include it.

802.1x / MAB / N-Series

Fichier FreeRadius

C42C031E79AC    User-Password = "C42C031E79AC"
Tunnel-Type = "VLAN",
Tunnel-Medium-Type = "IEEE-802",
Tunnel-Private-Group-ID = "10",
Auth-Type := local
"demo"  Cleartext-Password := "demo"
Tunnel-Type = "VLAN",
Tunnel-Medium-Type = "IEEE-802",
Tunnel-Private-Group-ID = "1",
Auth-Type := local
d8a25e91ab06    User-Password = "d8a25e91ab06"
Auth-Type := local
DEFAULT Auth-Type := Reject
Reply-Message = "USERS.8021x - REJECT"


DellEMC OS9/OS10/OS6 prepare for Ansible

Switch Side

For OS6 (N-Series)

You do create a default account via the console line

console(config)# username admin password yourpassword 
console(config)# enable password yourpassword

Set a management ip, using the OOB.

console(config)# username admin password yourpassword
console(config)# enable password yourpassword
console(config)# interface  out-of-band
console(conf-if)# ip address xxx.xxx.xxx.xxx 255.255.255.0 ip.of.your.gw
console(conf-if)# exit
console(config)# ip ssh  server

and enable ssh server

console(config)# ip ssh server

For OS9

Adding an account

OS9(conf)#username ansible password xxxx privilege 15

Set a management ip

OS9(conf)#interface managementethernet 0/0
OS9(conf-if-ma-0/0)#ip address xxx.xxx.xxx.xxx/xx
OS9(conf-if-ma-0/0)#no shutdown
OS9(conf-if-ma-0/0)#exit

Enabling SSH

OS9(conf)#ip ssh server enable

Ansible use SSH to sent order, set rate limit to pretect againt “Ansible DDos”.

OS9(conf)#ip ssh connection-rate-limit 60

For OS10

By default account is (admin/admin), and ssh is enable

Prefered create a “ansible” account

OS10(config)# username ansible password ansiblepassword

Set a management ip

OS10(conf)#interface mgmt 1/1/1
OS10(conf-if-ma-1/1/1)#no ip dhcp
OS10(conf-if-ma-1/1/1)#ip address xxx.xxx.xxx.xxx/xx
OS10(conf-if-ma-1/1/1)#no shutdown
OS10(conf-if-ma-1/1/1)#exit
OS10(conf)# do commit

First test with Ansible (some script exist on github). Download and check your setting
https://github.com/Dell-Networking/ansible-dellos-examples

You can also find some extend scripts (building a clos fabric / Upgrade Switch…) all this exemple can be find on github.
https://github.com/Dell-Networking

Raspberry PI et Celestron (Phase 2)

Objectif:

– Configurer le Raspberry en mode AP + Nat. OK
Installer le service Telescope Server Stellarium pour piloter le Telescope (Nexstar/LX2000). OK
– Permettre de visualiser via une webcam l’image du chercheur
– Permettre d’Astrophotographie depuis de le Raspberry (avec PI CAM NoIR)

Etape 1: Installer un demon qui permet de presenter un port serie via une “IP”

Il existe pour cela ser2net.

sudo apt-get install ser2net

Modifie le fichier de conf  /etc/ser2net.conf en commentant les lignes de déport en place (2000/2001/3000/3001) et on ajoute

2002:raw:0:/dev/ttyUSB0:9600 NONE 1STOPBIT 8DATABITS

Attention l’utilisation du port serie est exclusif, donc non compatible avec l’utilisation du daemon Stellarium Telescop Server, ou tout autre solution utilisant le port série

Ser2Net peut etre utilisé dans le cas d’utilisation de SkySafari par exemple.

Etape 2: Installer Telescope Server (Stellarium)

Bon pour commencer, obligation d’installer subversion Grrrrr !!!!

sudo apt-get install subversion

puis si pas déjà fait

cd ~/ && mkdir src && cd src

puis

sudo svn co https://svn.code.sf.net/p/stellarium/code/trunk/telescope_server

On enfin les sources et un packge de M…e sur le PI !!. Bref maintenant on compile

cd telescope_server/src
sudo make
sudo cp -p TelescopeServer* /usr/local/bin/

On configure maintenant le TelescopeServer (Nexstar dans notre cas). Pour être honnête, il y a pas de daemon, de fichier de conf, c’est juste un truc en ligne de commande TRES basique.

Etape 3 : Executer le Telescope Server

Donc deux possibilités, soit on fait à la main

sudo TelescopeServerNexStar 10001 /dev/ttyUSB0 &

Soit on fait un service qui démarre automatiquement au reboot du PI.

Pour creer un service sous Jessie, c’est facile, enfin presque.

Editions du fichier /etc/init.d/TelescopeServer. Il faut savoir que le TelescopeServer n’est pas pensé pour fonctionner en mode Daemon, il crache des logs sur le TTY. Il est possible de les récupérer en redirigeant la sortie vers un fichier. Je n’ai pas choisi cette option….SDCARD oblige.

Si on veut garder l’historique et les traces des echanges il suffit de rajouter a la lignes options  “> /var/log/TelescopeServer.log”, si c’ets sur une cle USB, ou autre media …GO

#! /bin/bash
#
# TelescopeServer    init script for TelescopeServer
#
#        Written by Loops <>

### BEGIN INIT INFO
# Provides:          TelescopeServer
# Required-Start:    $network $remote_fs
# Required-Stop:     $network $remote_fs
# Should-Start:
# Should-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Run TelescopeServer for Stellarium 
# Description:       This daemon allows communication between Stellarium Client and Telescope Server to pilot Nextar/Lx200
### END INIT INFO

  . /lib/lsb/init-functions

PATH=/sbin:/bin:/usr/sbin:/usr/bin

DAEMON="/usr/local/bin/TelescopeServerDummy"
PORT=10001
SERIAL="/dev/ttyUSB0"
DAEMON_OPTION="$PORT $SERIAL"
NAME=TelescopeServer
DESC="TelescopeServer For Stellarium"
PIDFILE=/run/$NAME.pid

test -f $DAEMON || exit 0


case "$1" in
  start)
    log_daemon_msg "Starting system $NAME Daemon"
    start-stop-daemon --background --name $NAME --start --quiet --exec $DAEMON $DAEMON_OPTION
    log_end_msg $?
    ;;
  stop)
    log_daemon_msg "Stopping system $NAME Daemon"
    start-stop-daemon --name $NAME --stop --retry 5 --quiet --name $NAME
    log_end_msg $?
    ;;
  force-stop)
    stop
    killall -q $NAME || true
    sleep 2
    killall -q -9 $NAME || true
    ;;
  restart|reload|force-reload)
    stop
    sleep 1
    start
    ;;
  status)
      status_of_proc "$NAME" "$DAEMON" "system-wide $NAME" && exit 0 || exit $?
        ;;    
  *)
    N=/etc/init.d/$NAME
    echo "Usage: $N {start|stop|restart|reload|force-reload|status}" >&2
    exit 1
    ;;
esac

exit 0

On remplacera, dans le script le bon TelescopeServer a charger, le port si il faut et enfin, le ttyUSB…

Raspberry PI et Celestron (Phase 1)

Objectif:

– Configurer le Raspberry en mode AP + Nat. OK
Installer le service Telescope Server Stellarium pour piloter le Telescope (Nexstar/LX2000). OK
– Permettre de visualiser via une webcam l’image du chercheur
– Permettre d’Astrophotographie depuis de le Raspberry (avec PI CAM NoIR)

Etape 1: Configuration réseau du PI avec connexion type Wired et Wireless

Ajouter dans le fichier de configuration /etc/dhcpcd.conf des lignes suivantes:

# On blacklist la config de wlan0 depuis le fichier et 
# on la fait depuis /etc/network/interface
denyinterface wlan0
# Depuis Jessie la config Manuelle de l'interface Eth0 
# peut se faire ici
interface eth0
static ip_address=192.168.100.128/24
static routers=192.168.100.254
static domain_name_servers=8.8.8.8

Ajouter dans le fichier /etc/network/interfaces

 iface wlan0 inet static
  address 10.0.0.1
  netmask 255.255.255.0
  network 10.0.0.0
  broadcast 10.0.0.255

Etape 2: Installer hostapd

apt-get install hostapd

Editer le fichier /etc/hostapd/hostapd.conf et ajouter ces lignes

interface=wlan0
# Pour la ligne Driver attention au choix (celui-ci est pour moi)
driver=rtl871xdrv 
ssid=<votre SSID ICI>
hw_mode=g
country_code=FR
channel=6
ieee80211n=1
wmm_enabled=1
ht_capab=[HT40][SHORT-GI-20][DSSS_CCK-40]
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=<votre_passphrase_ici>
wpa_key_mgmt=WPA-PSK
wpa_ptk_rekey=600
wpa_pairwise=TKIP
rsn_pairwise=CCMP

Editer le fichier /etc/default/hostapd et completer la ligne

DAEMON_CONF="/etc/hostapd/hostapd.conf"

Lancer ensuite le service hostapd au moyen de la commande

sudo service hostapd start

Si comme moi votre carte wifi est mal/pas supporté par hostpad, trois solutions possibles
 – en acheter une nativement compatible avec le services hostapd  ($$$)
 – adapter le code pour que votre carte puisse fonctionner ( …StOl ?… )
 – recuperer le driver du constructeur et compiler le hostpad local (…rapide..)

Pour ma part, solution 3 rapide et pratique à la fois.

lsusb va montrer la ref et des infos techniques sur la carte

pi@raspberrypi:~/src $ lsusb 
Bus 001 Device 004: ID 050d:2103 Belkin Components F7D2102 802.11n N300 Micro Wireless Adapter v3000 [Realtek RTL8192CU]
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Téléchargement du drivers officiel chez Realtek pour mon dongle Wifi.
La compilation se fait rapidement, un peu de préparation

 cd ~/ && mkdir src && cd src
 sudo unzip 0001-RTL8188C_8192C_USB_linux_v4.0.2_9000.20130911.zip
 cd RTL8188C_8192C_USB_linux_v4.0.2_9000.20130911
 cd wpa_supplicant_hostapd
 sudo tar -xvf wpa_supplicant_hostapd-0.8_rtw_r7475.20130812.tar.gz
 cd wpa_supplicant_hostapd-0.8_rtw_r7475.20130812
 cd hostapd
 sudo make

On passe en mode “Krados”, normalement, il faudrait faire un beau paquet Debian, etc et Blah Blah, mais la franchement….pas le temps

 cp -p /usr/sbin/hostapd /usr/sbin/hostapd.orig
 cp -p ./hostpad /usr/sbin/hostapd

“ReLancer” le service hostpad devrait fonctionner normalement maintenant.

Etape 3 : Installer dnsmasq

apt-get install dnsmasq

On ajoute ensuite les fonctions de base

interface=wlan0
dhcp-range=10.0.0.10,10.0.0.30,6h
server=8.8.8.8
server=8.8.4.4
dhcp-authoritative

Lancer le service dnsmasq.

Etape 4: Configurer iptables

Il existe plusieurs moyen de charger la configurer d’iptable et l’activation du NAT.

Editer le fichier /etc/sysctl.conf et dé-commenter la ligne

net.ipv4.ip_forward=1

Editer le fichier /etc/iptables.ipv4.nat

# Generated by iptables-save v1.4.21 on Mon Jul  4 08:32:58 2016
*filter
:INPUT ACCEPT [557:44498]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [282:26716]
-A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i wlan0 -o eth0 -j ACCEPT
COMMIT
# Completed on Mon Jul  4 08:32:58 2016
# Generated by iptables-save v1.4.21 on Mon Jul  4 08:32:58 2016
*nat
:PREROUTING ACCEPT [15:2557]
:INPUT ACCEPT [15:2557]
:OUTPUT ACCEPT [4:384]
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT
# Completed on Mon Jul  4 08:32:58 2016

Editer le fichier /etc/network/interfaces et ajouter

up iptables-restore < /etc/iptables.ipv4.nat

Reboot du raspberry et tout devrait fonctionner à savoir

– Voir un SSID avec le nom défini dans le hostapd.conf
– Se connecter a ce SSID avec la clé du hostapd.conf
– Récupérer une IP du subnet du dnsmaq.conf
– Avoir une résolution DNS (via l’ip du wlan0)
– Acces au LAN et au WAN. (Nat)

Sinon….Google est mon ami….