Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - fox-octi

#1
Hi,

i found the problem, the problem was, that the parrent interface hn6 was not active in opnsense interface configuration, after enable it, it was working :(

#2
Hi,
i want to use one virtual interface on the vm and using the VLAN configuration from opnsense to create multiple vlans.

szenario:
vlan 90: Mgm VLAN for Wlan Controller
vlan 96: Guest VLAN for AP usage


on HyperV:
$adapters=get-vm ifi-fw01 | Get-VMNetworkAdapter
#$adapters |?{$_.MacAddress -like "*A077"} |get-VMNetworkAdapterVlan
$adapters |?{$_.MacAddress -like "*A077"} | Set-VMNetworkAdapterVlan -Trunk -AllowedVlanIdList 96-99 -NativeVlanId 90

on opnsense:
vlan0.96: flags=1008843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,LOWER_UP> metric 0 mtu 1500
        description: WlanGuestVlan96 (opt10)
        options=80000<LINKSTATE>
        ether 00:15:5d:3f:a0:77
        inet 192.168.92.1 netmask 0xffffff00 broadcast 192.168.92.255
        groups: vlan
        vlan: 96 vlanproto: 802.1q vlanpcp: 7 parent interface: hn6
        media: Ethernet autoselect (10Gbase-T <full-duplex>)
        status: active
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>

hn6: flags=1008843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,LOWER_UP> metric 0 mtu 1500
        description: WlanMgmVlan90 (opt9)
        options=80018<VLAN_MTU,VLAN_HWTAGGING,LINKSTATE>
        ether 00:15:5d:3f:a0:77
        inet 192.168.90.1 netmask 0xffffff00 broadcast 192.168.90.255
        media: Ethernet autoselect (10Gbase-T <full-duplex>)
        status: active
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>


the vlan on the opnsense is not working, if i do the same powershell command on a windows vm and set the vlan on the network adapter it is working, so i think this should be a issue with opnsense.

to configure a interface for each vlan is not working, because i use HyperV 2k16 and this is limited by 8 interfaces.
 
hopefully someone can help, because i found no solution, i think it depends on HyperV <-> Opnsense.


best regards

Chris

#3
German - Deutsch / Re: API DHCP Clients
January 17, 2022, 09:45:35 PM
Hi,

was ist eigentlich daraus geworden?
Implementiert wurde es bisher nicht oder?

Gruß

#4
Ok,
verstehe deinen Ansatz, welcher auch über die Firewall Regeln umgesetzt werden kann, solange man die Domains kennt. Die Lösung mit dem Proxy bringt mir bei den besagten Ports nicht wirklich etwas:

   WhatsappPorts   3478,4244,5222,5223,5228,45395,5242
        GrowattSolarPortsNeeded   5279

Oder wie wäre dies umzusetzen ?

mein Problem ist, dass ich für Whatsapp scheinbar nicht alle benötigten Ziele finde. Somit die Einschränkung nicht auf diese machen kann, Ports, braucht whatsapp ja wie in der Liste zu sehen, einige.

Gruß

Chris
#5
Hi,

sage mal, fehlt dir dann nicht noch ein Deny für http ?

# ACL to define the source IP
acl nas src 10.0.0.1

# Allowed addresses (this could also point to a file i think)
acl nas_allow ssl::server_name raw.githubusercontent.com .snapcraft.io .ubuntu.com
acl nas_allow_80 dstdomain raw.githubusercontent.com .snapcraft.io .ubuntu.com

# this denies an IP address in the URL after the first ssl bump - that (for me) was tricky to figure out
acl nas_deny ssl::server_name_regex [0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}

# allow access to lists, deny everything else
http_access allow nas nas_allow
http_access allow nas nas_allow_80
http_access deny nas !nas_deny


wenn ich es richtig verstehe, musst du auch die Domains wissen oder ?  Das wäre bei meiner Lösung leider derzeitig auch so, mir ist noch nicht ganz klar wo der Vorteil liegt.

Gruß

Chris
#6
Hi this is not really a solution.
#7
Hi,

ich stelle erstmal meine Lösung vor und dann meine Probleme.

Ich habe ausgehend (WAN Interface) alles dicht gemacht, bis auf Http und HTTPs, anschließend habe ich nach Anwendungen Ports freigeschaltet.
zum Beispiel Monitoring Server nach alles, dafür setze ich ein lokales Tag beim Ausgehenden Nat, welches ich dann mit einer Allow Regel beim ausgehenden Interface (WAN) nutze.
Nun möchte ich dass natürlich nicht für jedes Gerät machen und habe mir gesagt, einigen Anbieter vertraue ich, aber natürlich soll nur deren Ziele erlaubt werden.

Dafür wollte ich die Funktion URL Tabelle (IPs) von Aliases verwenden. https://docs.opnsense.org/manual/aliases.html

Problem dabei ist, dass man jede Domain kennen muss, dies ist ja teilweise nicht möglich.

Ich habe aber eine Lösung gefunden, Listen zu erstellen für die Subdomains:

Script erstellen für Listen Erstellung und diese auf einem Nginx Web Server bereitstellen:
https://github.com/aboul3la/Sublist3r

Anschließend kann ich per Cron die Listen erstellen und lege diese bei meinem WebServer ab:
/opt/get_subdomains/sublist3r.py -d signal.org -o /opt/nginxLists/www/signal.txt
/opt/get_subdomains/sublist3r.py -d whispersystems.org -o /opt/nginxLists/www/whispersystems.org.txt
/opt/get_subdomains/sublist3r.py -d whatsapp.net -o /opt/nginxLists/www/whatsapp.net.txt
/opt/get_subdomains/sublist3r.py -d whatsapp.com -o /opt/nginxLists/www/whatsapp.com.txt
/opt/get_subdomains/sublist3r.py -d facebook.com -o /opt/nginxLists/www/facebook.com.txt
/opt/get_subdomains/sublist3r.py -d roblox.com -o /opt/nginxLists/www/roblox.com.txt

Anschließend kann ich diese von Opnsense verwenden. Bei Signal funktioniert dies ganz gut, jedoch Whatsapp leider nicht. Auch sowas wie roblox (Kids wollen sowas :( ) funktioniert damit noch nicht zuverlässig.

Welche Ideen habt ihr noch ?
Gibt es eventuell eine Möglichkeit bestimmte Funktionen, wie das erstellend der Listen in Opnsense zu integrieren, ich finds ganz nett.
Hat jemand eine Idee, welche Domains alle für Whatsapp notwendig sind, facebook.com ist mir schon aufgefallen :(

Gruß

Chris
#8
is there a other solution, for 2fa authentication for nginx plugin?

best regards

Chris
#9
Hi,

ich habe es mit Check_mk Nun doch gebaut, nach dem das Feedback ein bissel ernüchtern war, was die Integration in Opnsense angeht.

Ergebnis:


Es sind aber an Checks dem ganzen keine grenzen gesetzt.

Auf Check_MK Instanz:
1.SSH Key erstellen "ssh-keygen -t rsa" und den Key hinterlegen unter CheckMK instanz /instanz/ssh


Unter Opnsense

  • 1.Benutzer für Monitoring erstellen und SSH Pub Key hinterlegen
  • 2.eine Gruppe erstellen für den SSH Zugriff und den Root Benutzer sowie den Monitoring Nutzer hinzufügen.
  • 3.Unter System Einstellungen ->Verwaltung SSH Konfigurieren und Anmeldegruppe auf die SSH Gruppe ändern

Auf Opnsense als ROOT SSH:

  • Installieren von benötigten tools: 'pkg install libstatgrab bash wget'

  • Berechtigungen erweitern auf die Sockets von openvpn, dabei wird jeden Benutzer aber Änderungsrechte auf die Filestruktur von Openvpn Konfiguration gegeben '/bin/chmod +rwx /var/etc/openvpn ; /bin/chmod -R 777 /var/log/openvpn ;/bin/chmod -R +rx /var/etc/openvpn-csc';chown -R cmkfirewall /usr/local/lib/check_mk_agent

Auf Check_mk Instanz:

  • Skript erstellen, was den CheckMK Agent bei Bedarf bereitstellt und anschließend aufruft:
    ####cmk-firewall.sh####
    if [ ! -f '/home/cmkfirewall/bin/check_mk_agent.freebsd' ]; then echo "rm -r ~/bin ; mkdir ~/bin ; wget -P ~/bin https://raw.githubusercontent.com/tribe29/checkmk/master/agents/check_mk_agent.freebsd ; chmod +x ~/bin/check_mk_agent.freebsd; mkdir -p /usr/local/lib/check_mk_agent/plugins ;mkdir -p /usr/local/lib/check_mk_agent/local ;" >~/cmk.sh && sh ~/cmk.sh ; fi;
    #### openvpn status opnsense
    #!/bin/bash
    rm /var/log/openvpn/openvpn-status.log
    for i in $(ls /var/etc/openvpn/*.sock); do
    echo "status" | socat UNIX-CONNECT:${i} - >>/var/log/openvpn/openvpn-status.log 2> /dev/null
    #echo "$i";
    done;

    ###
    ~/bin/check_mk_agent.freebsd
    echo ""
    #####cmk-firewall.sh End####

  • Testaufruf:
    ssh -i $OMD_ROOT/ssh/firewall.id -T cmkfirewall@172.16.222.224 'sh -s' <$OMD_ROOT/ssh/cmk-firewall.sh

  • der Instanz die Berechtigungen auf die Files geben: chown -R instanz $OMD_ROOT/ssh

  • damit wir ein Script haben, welches LocalChecks Synct und gleichzeitig die Abfrage machen, erstellt man ein Bash Script:
    ####cmk_ssh.sh######
    while [[ $# > 0 ]]
    do
            case "$1" in

                    -a|--sshkey)
                            sshkey="$2"
                            shift
                            ;;

                    -b|--sshuser)
                            sshuser="$2"
                            shift
                            ;;
                    -s|--sshscript)
                            sshscript="$2"
                            shift
                            ;;
                    -h|--host)
                            host="$2"
                            shift
                            ;;

                    --help|*)
                            echo "$1 Usage:"
                            echo "    --valueA \"value\""
                            echo "    --valueB \"value\""
                            echo "    --help"
                            exit 1
                            ;;
            esac
            shift
    done

    ssh -i ${sshkey} -T $sshuser@$host 'sh -s' <$sshscript
    scp -i ${sshkey} $OMD_ROOT/ssh/localchecks/* $sshuser@$host:/usr/local/lib/check_mk_agent/local 2> /dev/null
    echo ""
    ######

  • mit dem instanz nutzer einmal zum Ziel ssh aufbauen, damit der Hostkey abgelegt wird.
    In CheckMK entsprechend: https://docs.checkmk.com/latest/de/agent_linux.html SSH Part arbeiten
    1: Setup->Agents->Other integrations ->Individual program call instead of agent access:
    SkriptVariante inkl. Localchecks Sync:   bash $OMD_ROOT/ssh/cmk_ssh.sh --sshkey $OMD_ROOT/ssh/firewall.id --sshuser 'cmkfirewall' --host $HOSTADDRESS$ --sshscript $OMD_ROOT/ssh/cmk-firewall.sh
    Nur SSH: ssh -i $OMD_ROOT/ssh/firewall.id -T cmkfirewall@$HOSTADDRESS$ 'sh -s' <$OMD_ROOT/ssh/cmk-firewall.sh


Testen und glücklich sein. OpenVPN Status ist damit drin und für meine Historie von Openvpn habe ich noch folgenden Check erstellt:
###$OMD_ROOT/ssh/localchecks/openvpn-stat.sh
for i in $(ls /var/etc/openvpn-csc); do
        for s in $(ls /var/etc/openvpn-csc/$i); do
        cat /var/log/openvpn/openvpn-status.log | grep $s >/dev/null
        retVal=$?
                if [ $retVal -ne 0 ]; then
                        echo "0 OpenVPN_$s State=0 OK - OpenVPN Nutzer $s is offline"
                else
                        echo "0 OpenVPN_$s State=1 OK - OpenVPN Nutzer $s is online"
                fi
        done;
done;


Ergebnis:
#10
German - Deutsch / Re: Firtzbox Client VPN möglich
December 30, 2021, 10:17:29 AM

Hi,

eine eigene Leitung buchen, hab ich nicht vor gehabt, da ich mir die Kosten sparen möchte.
Die Leitung ist per Richtfunk angebunden und gehört jemanden anderen, der keine Forward oder ähnlichen möchte, somit muss ich das akzeptieren. (Telekom Speedport Kiste, die scheinbar bei IPSEC Forwards irgendwann die Last nicht aushält)
Die Geschichte mit IPSEC als Clientmodus find ich noch interessant, aber sicherlich nicht Update Sicher was die Opnsense angeht. Aber schau ich mir auch mal an.

Berichte dann, aber nicht mehr dieses Jahr.

Gruß

Chris
#11
Noch ein wenig geschaut und folgendes File gefunden:
/usr/local/www/status_openvpn.php

bei mir ist es somit:
echo "status 2" | socat UNIX-CONNECT:/var/etc/openvpn/server1.sock -


die Sockets bekommt ihr hiermit raus:
cat /var/etc/openvpn/*.conf | grep management


um es später ins Monitoring zu bekommen:
https://github.com/opnsense/plugins/issues/2713



#12
German - Deutsch / Opnsense OpenVpn Status auslesen
December 29, 2021, 08:36:27 PM
Hi,

wo finde ich das Status File von openvpn Dienst? Der Webdienst muss hier ja auch ran kommen, hab es leider nicht gefunden. Hab das Thema, das einige VPN Clients nicht auf Ping antworten, ich jedoch trotzdem gern die Verbindungen im Monitoring haben möchte, daher die Idee.

Gruß

Chris
#13
Hi folgende Regel war die Lösung, scheinbar war das Tagging wie bei den anderen Portforwards nicht ausreichend, sondern es musste noch ein weiteres Tagging gesetzt werden, beim Wan Interface mit Ziel Localhost und nicht wie ich es vorher vermutet hatte, mit Ziel WAN Adresse.

       <type>pass</type>
       <interface>opt1</interface>
       <ipprotocol>inet</ipprotocol>
       <tag>RAMON</tag>
       <statetype>keep state</statetype>
      <descr>OpenVPN</descr>
      <direction>in</direction>
      <reply-to>OPT1_DHCP</reply-to>
      <log>1</log>
      <quick>1</quick>
      <protocol>tcp/udp</protocol>
      <source>
        <any>1</any>
      </source>
      <destination>
        <address>Localhost</address>
        <port>1194</port>
      </destination>

Damit hat es dann funktioniert.
#14
German - Deutsch / Re: Firtzbox Client VPN möglich
December 29, 2021, 02:36:07 PM
Hi, deswegen ja die Frage, ob man auch IPSEC als Client per Opnsense machen könnte :)

Gruß

Chris
#15
German - Deutsch / Re: Firtzbox Client VPN möglich
December 29, 2021, 10:29:50 AM
Nur leider kann ich zur opnsense keine Ports aufmachen, da ich nur mitnutzer des Internetanschlusses bin. :(
sollte das trotzdem funktionieren?

Gruß