pfSense och UniFi AP - CheckIfHome....

Övrigt
Post Reply
User avatar
Bamsefar
Z-Wave Kung
Posts: 1230
Joined: 25 Nov 2013, 15:06
10
Location: Stockholm

Hallå,

Så jag har bytt till ny brandvägg. Har länge tillhört ASUS sidan med RMerlin, men kände för att testa pfSense - och med den så försvinner AccessPunkten som är inbyggd i ASUS. Således komplexiteten har kraftigt stigit, och möjligheterna är extremt mycket större.... Och därmed felkällorna....

Code: Select all

#!/bin/sh
#
# MacAdresser...
Mac1=54:c6:e3:3e:81:fe
Mac2=21:5b:3a:6f:eb:f4
#
# Mac1 = User1
# Mac2 = User2
#
########################### Don't touch #################################

# Kolla om mappen finns i /tmp
if [ ! -d /tmp/CheckUser ];
then
  mkdir /tmp/CheckUser
fi
#

if [ `pgrep CheckIfHome.sh | wc -l` -gt 1 ];
then
  exit
fi

#
unifi_login() {
    # authenticate against unifi controller

    curl 'https://10.1.1.1:8443/api/login' --data-binary '{"username":"unifi","password":"unifi","strict":true}' --silent --compressed --insecure -c /tmp/CIH_cookies.txt

}

# stat/sta
unifi_list_sta() {

    curl --insecure --silent -b /tmp/CIH_cookies.txt -c /tmp/CIH_cookies.txt 'https://10.1.1.1:8443/api/s/default/stat/sta'

}

unifi_login > /dev/null 2>&1

#
# Oandlig loop
while [ 1 ]
do
#

#put unifi_list_sta output in variabele
  var=$(unifi_list_sta)

# User 1
  if echo "$var" | grep -q "$Mac1" ; then
    if [ ! -f /tmp/CheckUser/User1 ] ;
    then
      touch /tmp/CheckUser/User1
      curl "10.1.1.5/JSON?request=controldevicebylabel&ref=465&label=Hemma" >/dev/null 2>&1
    fi
  else
    if [ -f /tmp/CheckUser/User1 ] ;
    then
      rm -f /tmp/CheckUser/User1
      curl "10.1.1.5/JSON?request=controldevicebylabel&ref=465&label=Borta" >/dev/null 2>&1
    fi
  fi
#
# User 2
  if echo "$var" | grep -q "$Mac2" ; then
    User2="Hemma"
    if [ ! -f /tmp/CheckUser/User2 ] ;
    then
      touch /tmp/CheckUser/User2
      curl "10.1.1.5/JSON?request=controldevicebylabel&ref=466&label=Hemma" >/dev/null 2>&1
    fi
  else
    if [ -f /tmp/CheckUser/User2 ] ;
    then
      rm -f /tmp/CheckUser/User2
      curl "10.1.1.5/JSON?request=controldevicebylabel&ref=466&label=Borta" >/dev/null 2>&1
    fi
  fi
#
# Avvakta
  sleep 15
#
done
Scriptet placeras förslagsvis på /usr/local/etc/rc.d/CheckIfHome.sh eller något liknande.

Frågor på detta?
Testar Home Assistant på Raspberry Pi4B - nice :mrgreen:
Robert
Medlem
Posts: 346
Joined: 17 Oct 2013, 22:40
10

Ser bra ut! Får se om jag går tillbaka till pdSense. Har blivit lat på äldre dar :)
Robert
Medlem
Posts: 346
Joined: 17 Oct 2013, 22:40
10

Vafan Bamsefar.. Nu har jag bestämt för att byta också :)

Har 2 frågor:

1.Vad kör du för hårdvara för din Pfsense?
2. Funkar scriptet över fler accespunkter? Tänkte köpa 2 för att täcka hela tomten.

Jag körde en repeater tidigare med min Asus-router. Dock fungerade det ingen vidare då scriptet inte kunde läsa av repeatern. Vet inte om du minns men du hjälpte mig testa.

Skickat från min ZTE A2017G via Tapatalk
User avatar
Bamsefar
Z-Wave Kung
Posts: 1230
Joined: 25 Nov 2013, 15:06
10
Location: Stockholm

Oj - jag ser att jag missat lite - jag ber faktiskt om ursäkt (anledningen är min fars kamp mot cancer - jag har inte lika mycket "grottotid" för närvarande....).

Min pfsense maskin rockar på:

Intel(R) Core(TM) i3-6300T med 32GB RAM, en 512 GB M2 SSD och sedan har jag även en 4-portars Intel nätverksadapter utöver de två portar som sitter på moderkortet. Allt sitter i ett Streacom chassi som kyler CPUn passivt. Kombinerat då med en UniFi wifi accesspunkt som då tar en av portarna i anspråk, och såklart WAN in - kvar har jag alltså 4 portar att slösa iväg med.... Min maskin är kraftigt överdimensionerad - med det är lite med flit då tanken är att köra Deep Inspection på paketen som kommer in för att skaffa den där lilla extra säkerheten - dit har jag dock inte kommit. Jag har dock mitt system uppe med allt det senaste osv.

Mitt script, och så även det andra som finns på detta forum, fungerar via UniFi controller programvaran, så det skall klara av flera accesspunkter såvitt jag vet - men jag har bara en själv, så inte verifierat på det sättet - men "mekaniken" jag använder bryr sig inte i vilke accesspunkt eller SID du är uppkopplad på.

Ytterligare frågor?
Testar Home Assistant på Raspberry Pi4B - nice :mrgreen:
User avatar
Bamsefar
Z-Wave Kung
Posts: 1230
Joined: 25 Nov 2013, 15:06
10
Location: Stockholm

Uppdaterat första inlägget med en mera stabil "kolla om scriptet körs" variant, speciellt som /tmp inte töms på pfsens installationer....
Testar Home Assistant på Raspberry Pi4B - nice :mrgreen:
User avatar
Bamsefar
Z-Wave Kung
Posts: 1230
Joined: 25 Nov 2013, 15:06
10
Location: Stockholm

Om någon vill ta över (köpa!) min pfsense brandvägg ovan så säg till - den kommer att krängas iväg! Obs bara själva datorn med 4-portars nätverkskortet alltså (och den minst sagt dyra M2 SSD från Samsung).
Testar Home Assistant på Raspberry Pi4B - nice :mrgreen:
oceank
Medlem
Posts: 25
Joined: 23 Sep 2015, 07:09
8

hej bamsefar!

har precis själv gått över nu till pfsense. Har dock kvar min asus 5300 router som agerar AP för tillfället med scriptet du gjorde för asus med merlin och tuffar på.

Jag ska dock köpa mig ett par unifi AP då jag även köpt en 16p switch från dem. Jag är nyfiken på hur jag ska implementera ditt script för unifi AP. Finns det ngn mer step by step guide jag kan följa?

Med vänlig hälsning, K
Robert
Medlem
Posts: 346
Joined: 17 Oct 2013, 22:40
10

Kolla dessa 2 trådar.
https://www.domotique-fibaro.fr/topic/1 ... iti-unifi/
viewtopic.php?p=20986#p20986

oceank wrote: 17 Sep 2018, 21:35 hej bamsefar!

har precis själv gått över nu till pfsense. Har dock kvar min asus 5300 router som agerar AP för tillfället med scriptet du gjorde för asus med merlin och tuffar på.

Jag ska dock köpa mig ett par unifi AP då jag även köpt en 16p switch från dem. Jag är nyfiken på hur jag ska implementera ditt script för unifi AP. Finns det ngn mer step by step guide jag kan följa?

Med vänlig hälsning, K
User avatar
Bamsefar
Z-Wave Kung
Posts: 1230
Joined: 25 Nov 2013, 15:06
10
Location: Stockholm

Unifi APs kräver, vilket framgår i länkarna till de franska siterna ovan, Unifi Controller mjukvaran. I mitt fall, ovan, så var den mjukvaran installerad på pfSense servern också. Det är, om minnet är med mig (skriver detta på mobilen....), en specialvariant som jag drog ned från GIThub. Om du inte hittar den så kam jag säkert leta upp den senare. I vilket fall, som du ser på scriptet i första posten i denna tråd så är det alltså Unifi controller programvaran som scriptet loggar in på med curl kommandot och ip 10.1.1.1:8443 så där får man ändra till den IP som gäller sin lokala installation.

Jag vet inget om Unifi's 16 portars switch, har den controller programvaran inbyggd? Då är det antagligen dit man skall peka, annars måste du ha någon server som kör just Unifi Comtroller programvaran.
Testar Home Assistant på Raspberry Pi4B - nice :mrgreen:
oceank
Medlem
Posts: 25
Joined: 23 Sep 2015, 07:09
8

Bamsefar wrote: 18 Sep 2018, 04:56 Unifi APs kräver, vilket framgår i länkarna till de franska siterna ovan, Unifi Controller mjukvaran. I mitt fall, ovan, så var den mjukvaran installerad på pfSense servern också. Det är, om minnet är med mig (skriver detta på mobilen....), en specialvariant som jag drog ned från GIThub. Om du inte hittar den så kam jag säkert leta upp den senare. I vilket fall, som du ser på scriptet i första posten i denna tråd så är det alltså Unifi controller programvaran som scriptet loggar in på med curl kommandot och ip 10.1.1.1:8443 så där får man ändra till den IP som gäller sin lokala installation.

Jag vet inget om Unifi's 16 portars switch, har den controller programvaran inbyggd? Då är det antagligen dit man skall peka, annars måste du ha någon server som kör just Unifi Comtroller programvaran.
Tack för info. Jag hade oxo tänkt köra unificontrollern i pfsense, hitade sidan hur man installerade den. Så jag antar att jag lägger scriptet i pfsense på den plats du beskriver(/usr/local/etc/rc.d/) via shh eller ngt som är lättast. Vad för variabler behöver jag sätta med vilka värden? sorry är inte helt med hur allt hänger ihop =)

behöver jag den scen som Robert länkade till dvs andra länken, den scenen ska den in i fibaro? eller räcker det med ditt script för att detta ska fungera?

är detta korrekt?
Last edited by oceank on 18 Sep 2018, 11:08, edited 2 times in total.
oceank
Medlem
Posts: 25
Joined: 23 Sep 2015, 07:09
8

Robert wrote: 17 Sep 2018, 22:03 Kolla dessa 2 trådar.
https://www.domotique-fibaro.fr/topic/1 ... iti-unifi/
viewtopic.php?p=20986#p20986

oceank wrote: 17 Sep 2018, 21:35 hej bamsefar!

har precis själv gått över nu till pfsense. Har dock kvar min asus 5300 router som agerar AP för tillfället med scriptet du gjorde för asus med merlin och tuffar på.

Jag ska dock köpa mig ett par unifi AP då jag även köpt en 16p switch från dem. Jag är nyfiken på hur jag ska implementera ditt script för unifi AP. Finns det ngn mer step by step guide jag kan följa?

Med vänlig hälsning, K

tackar! ska kolla detta
User avatar
Bamsefar
Z-Wave Kung
Posts: 1230
Joined: 25 Nov 2013, 15:06
10
Location: Stockholm

Det "enda" du behöver ändra är:
1) MAC adresserna för de två mobiler du skall kolla om de är hemma
2) IP adressen för Unifi Control programvaran (i scriptet antas 10.1.1.1 - ändra till den server du installerar Unifi controller programvaran på, enligt vad du skriver bör det vara samma IP som din pfSense använder.
3) IP adressen för den "server" som hanterar i ditt fall antar jag HC2 och lämplig kommando - jag kör ju Homeseer så jag har annan kod.

Således någon form av ändring kanske du åker på - jag kan inte på rak arm säga vilka utöver de ovan nämnda. Jag har inte heller någon checklista eller liknande, eftersom jag helt enkelt inte minns eller har kvar några anteckningar. Sorry :-)
Testar Home Assistant på Raspberry Pi4B - nice :mrgreen:
Post Reply