Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    NEW Package: freeRADIUS 2.x

    pfSense Packages
    80
    628
    736.4k
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • M
      markuhde
      last edited by

      No, it's not just high CPU usage, it doesn't work, never gets to ready to process. I sent you exactly what it does :) I edited those files but I never ran that command you told me to, just did that. It still gets stuck on the same line (add defaults: start). Here's the radiusd thread causing the 25% CPU use:

      59445 root        119    0 34040M  9348K CPU1    1  1:13 100.00% radiusd

      100% use on that virtual core, it's like it's pegging it out in some kind of loop. Always worked fine on 32-bit. Maybe a complete system reinstall as 64-bit is in order, but it won't be able to happen for a month or so (though the RADIUS is only needed for youth camps come summer, right now it's all rental groups that don't get to bypass the proxy server :) )

      1 Reply Last reply Reply Quote 0
      • N
        Nachtfalke
        last edited by

        Perhaps just try with a complete fresh install.

        Do not mix architectures between snapshots. Just start with amd64 and stay on amd64 or do a fresh install.
        And after you installed the freeradius2 package again, do the changes, run the command I wrote and then try again :-)

        1 Reply Last reply Reply Quote 0
        • M
          markuhde
          last edited by

          Yeah, but I can't do a fresh install for about three weeks :) Going to just do that!

          1 Reply Last reply Reply Quote 0
          • N
            Nachtfalke
            last edited by

            Is freeradius2 starting if you remove all config entries from config.xml file and do a fresh freeradius2 installation ?
            The only thing you need to configure is a listening interface and then freeradius must start. If it starts it could be an config problem - some special char or some syntax error.

            Just a suggestion.

            1 Reply Last reply Reply Quote 0
            • M
              markuhde
              last edited by

              Nope, I tried that already, no luck. I actually deleted my entire configuration and started over. Thus why there's no users except the one test user…

              1 Reply Last reply Reply Quote 0
              • A
                AJOto
                last edited by

                Try to install and….

                $ pkg_add -r http://files.pfsense.org/packages/8/All/freeradius-2.1.12_1.tbz
                tar: Failed to set default locale
                tar: Failed to set default locale
                tar: tar: Failed to set default locale
                Failed to set default locale
                tar: Failed to set default locale
                tar: Failed to set default locale
                tar: Failed to set default locale
                tar: Failed to set default locale
                tar: Failed to set default locale
                
                ************************************************************
                
                The OpenLDAP client package has been successfully installed.
                
                Edit
                  /usr/local/etc/openldap/ldap.conf
                to change the system-wide client defaults.
                
                Try `man ldap.conf' and visit the OpenLDAP FAQ-O-Matic at
                  http://www.OpenLDAP.org/faq/index.cgi?file=3
                for more information.
                
                ************************************************************
                
                tar: Failed to set default locale
                tar: Failed to set default locale
                tar: Failed to set default locale
                tar: Failed to set default locale
                tar: Failed to set default locale
                
                ====
                Note that some of the standard modules are provided as separate
                ports since they require extra dependencies:
                
                bsddb           databases/py-bsddb
                gdbm            databases/py-gdbm
                sqlite3		databases/py-sqlite3
                tkinter         x11-toolkits/py-tkinter
                
                Install them as needed.
                ====
                
                tar: Failed to set default locale
                tar: Failed to set default locale
                tar: Failed to set default locale
                tar: Failed to set default locale
                tar: Failed to set default locale
                Removing stale symlinks from /usr/bin...
                    Skipping /usr/bin/perl
                    Skipping /usr/bin/perl5
                    Removing /usr/local/bin/perl5.14.2 installed by an older perl port
                Done.
                Creating various symlinks in /usr/bin...
                    Symlinking /usr/local/bin/perl5.12.4 to /usr/bin/perl
                    Symlinking /usr/local/bin/perl5.12.4 to /usr/bin/perl5
                Done.
                cd: can't cd to /usr/include
                Cleaning up /etc/make.conf... Done.
                Spamming /etc/make.conf... Done.
                tar: Failed to set default locale
                tar: Failed to set default locale
                tar: Failed to set default locale
                tar: Failed to set default locale
                tar: Failed to set default locale
                tar: Failed to set default locale
                tar: Failed to set default locale
                tar: Failed to set default locale
                tar: Failed to set default locale
                tar: Failed to set default locale
                tar: Failed to set default locale
                tar: Failed to set default locale
                pkg_add: warning: package 'libxml2-2.7.8_3' requires 'libiconv-1.14', but 'libiconv-1.13.1_1' is installed
                tar: Failed to set default locale
                tar: Failed to set default locale
                tar: Failed to set default locale
                pkg_add: warning: package 'postgresql-client-8.4.12' requires 'libiconv-1.14', but 'libiconv-1.13.1_1' is installed
                
                The PostgreSQL port has a collection of "side orders":
                
                postgresql-docs
                  For all of the html documentation
                
                p5-Pg
                  A perl5 API for client access to PostgreSQL databases.
                
                postgresql-tcltk 
                  If you want tcl/tk client support.
                
                postgresql-jdbc
                  For Java JDBC support.
                
                postgresql-odbc
                  For client access from unix applications using ODBC as access
                  method. Not needed to access unix PostgreSQL servers from Win32
                  using ODBC. See below.
                
                ruby-postgres, py-PyGreSQL
                  For client access to PostgreSQL databases using the ruby & python
                  languages.
                
                postgresql-plperl, postgresql-pltcl & postgresql-plruby
                  For using perl5, tcl & ruby as procedural languages.
                
                postgresql-contrib
                  Lots of contributed utilities, postgresql functions and
                  datatypes. There you find pg_standby, pgcrypto and many other cool
                  things.
                
                etc...
                
                ===> Setting user and group in radiusd.conf
                ===> Creating users and/or groups.
                Using existing group 'freeradius'.
                Using existing user 'freeradius'.
                ===> Bootstrapping default certificates, please wait...
                tar: tar: Failed to set default localeFailed to set default locale
                
                ===> Adjusting ownership of directory /usr/local/etc/raddb
                ===> Adjusting ownership of directory /var/log/radacct
                ===> Adjusting ownership of directory /var/run/radiusd
                ===> Adjusting ownership of /var/log/radius.log
                ===> Adjusting ownership of /var/log/radutmp
                ===> Adjusting ownership of /var/log/radwtmp
                ===> Updating libdir in /usr/local/etc/raddb/radiusd.conf
                pkg_add: warning: package 'freeradius-2.1.12_1' requires 'libiconv-1.14', but 'libiconv-1.13.1_1' is installed
                
                ===============================================================================
                
                To enable FreeRADIUS, put the following line in /etc/rc.conf
                
                radiusd_enable="YES"
                
                The sample configuration can be found at
                /usr/local/share/examples/freeradius/raddb
                
                If you are upgrading FreeRADIUS, you are advised to use this as a reference
                for updating your configuration.
                
                FreeRADIUS will look for its configuration directory at
                /usr/local/etc/raddb by default.
                
                If you did not already have a configuration at this location, the sample
                configuration has been copied to this location and has been bootstrapped.
                
                If you wish to point FreeRADIUS to a configuration at a different
                location, put the following line in /etc/rc.conf
                
                radiusd_flags="-d /path/to/raddb"
                
                To start the server in normal (daemon) mode, run:
                
                /usr/local/etc/rc.d/radiusd start
                
                and to stop the server, run:
                
                /usr/local/etc/rc.d/radiusd stop
                
                To start the server in debugging mode, run:
                
                /usr/local/etc/rc.d/radiusd debug
                
                You are advised to make cautious changes to the configuration, and to test
                frequently, using debugging mode where necessary. Try to resist the
                temptation to disable or delete things that you don't understand - you may
                well break things!
                
                The documentation has been installed at /usr/local/share/doc/freeradius
                
                Useful configuration advice can be found in the FreeRADIUS Wiki at
                http://wiki.freeradius.org
                
                ===============================================================================
                
                1 Reply Last reply Reply Quote 0
                • N
                  Nachtfalke
                  last edited by

                  @AJOto:

                  Try to install and….

                  $ pkg_add -r http://files.pfsense.org/packages/8/All/freeradius-2.1.12_1.tbz
                  (...)
                  
                  

                  What do you want to do?

                  If you want to use freeradius2 package on pfsense then just go to
                  System –> Package Manager --> Available Packages
                  and install freeradius2

                  No need to do that manual from the console and it will not work.

                  1 Reply Last reply Reply Quote 0
                  • A
                    AJOto
                    last edited by

                    @Nachtfalke:

                    @AJOto:

                    Try to install and….

                    $ pkg_add -r http://files.pfsense.org/packages/8/All/freeradius-2.1.12_1.tbz
                    (...)
                    
                    

                    What do you want to do?

                    If you want to use freeradius2 package on pfsense then just go to
                    System –> Package Manager --> Available Packages
                    and install freeradius2

                    No need to do that manual from the console and it will not work.

                    System –> Package Manager --> Available Packages
                    and install freeradius2
                    But dont RUN :(

                    I tried all ways to install ... but this package does not want to start

                    $ radiusd -X
                    FreeRADIUS Version 2.2.0, for host i386-portbld-freebsd8.3, built on Dec 20 2012 at 23:43:04
                    Copyright (C) 1999-2012 The FreeRADIUS server project and contributors. 
                    There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A 
                    PARTICULAR PURPOSE. 
                    You may redistribute copies of FreeRADIUS under the terms of the 
                    GNU General Public License v2\. 
                    Starting - reading configuration files ...
                    including configuration file /usr/pbi/freeradius-i386/etc/raddb/radiusd.conf
                    including configuration file /usr/pbi/freeradius-i386/etc/raddb/clients.conf
                    including files in directory /usr/pbi/freeradius-i386/etc/raddb/modules/
                    including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/wimax
                    including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/always
                    including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/attr_filter
                    including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/attr_rewrite
                    including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/cache
                    including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/chap
                    including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/checkval
                    including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/counter
                    including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/cui
                    including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/detail
                    including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/detail.example.com
                    including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/detail.log
                    including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/dhcp_sqlippool
                    including configuration file /usr/pbi/freeradius-i386/etc/raddb/sql/mysql/ippool-dhcp.conf
                    including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/digest
                    including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/dynamic_clients
                    including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/echo
                    including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/etc_group
                    including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/exec
                    including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/expiration
                    including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/expr
                    including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/files
                    including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/inner-eap
                    including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/ippool
                    including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/krb5
                    including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/ldap
                    including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/linelog
                    including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/otp
                    including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/logintime
                    including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/mac2ip
                    including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/mac2vlan
                    including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/mschap
                    including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/ntlm_auth
                    including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/opendirectory
                    including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/pam
                    including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/pap
                    including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/passwd
                    including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/perl
                    including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/policy
                    including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/preprocess
                    including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/radrelay
                    including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/radutmp
                    including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/realm
                    including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/redis
                    including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/rediswho
                    including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/replicate
                    including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/smbpasswd
                    including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/smsotp
                    including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/soh
                    including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/sql_log
                    including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/sqlcounter_expire_on_login
                    including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/sradutmp
                    including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/unix
                    including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/acct_unique
                    including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/motp
                    including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/datacounter_acct
                    including configuration file /usr/pbi/freeradius-i386/etc/raddb/eap.conf
                    including configuration file /usr/pbi/freeradius-i386/etc/raddb/policy.conf
                    including files in directory /usr/pbi/freeradius-i386/etc/raddb/sites-enabled/
                    including configuration file /usr/pbi/freeradius-i386/etc/raddb/sites-enabled/default
                    main {
                    	allow_core_dumps = no
                    }
                    including dictionary file /usr/pbi/freeradius-i386/etc/raddb/dictionary
                    main {
                    	name = "radiusd"
                    	prefix = "/usr/pbi/freeradius-i386"
                    	localstatedir = "/var"
                    	sbindir = "/usr/pbi/freeradius-i386/sbin"
                    	logdir = "/var/log"
                    	run_dir = "/var/run"
                    	libdir = "/usr/pbi/freeradius-i386/lib/freeradius-2.1.12"
                    	radacctdir = "/var/log/radacct"
                    	hostname_lookups = yes
                    	max_request_time = 30
                    	cleanup_delay = 5
                    	max_requests = 1024
                    	pidfile = "/var/run/radiusd.pid"
                    	checkrad = "/usr/pbi/freeradius-i386/sbin/checkrad"
                    	debug_level = 0
                    	proxy_requests = yes
                     log {
                    	stripped_names = yes
                    	auth = yes
                    	auth_badpass = yes
                    	auth_goodpass = yes
                    	msg_badpass = ""
                    	msg_goodpass = ""
                     }
                     security {
                    	max_attributes = 200
                    	reject_delay = 1
                    	status_server = no
                     }
                    }
                    radiusd: #### Loading Realms and Home Servers ####
                    radiusd: #### Loading Clients ####
                     client system {
                    	ipaddr = 192.168.1.1
                    	require_message_authenticator = no
                    	secret = "*******"
                    	shortname = "system"
                    	nastype = "other"
                     }
                    radiusd: #### Instantiating modules ####
                     instantiate {
                     Module: Linked to module rlm_exec
                     Module: Instantiating module "exec" from file /usr/pbi/freeradius-i386/etc/raddb/modules/exec
                      exec {
                    	wait = no
                    	input_pairs = "request"
                    	shell_escape = yes
                      }
                     Module: Linked to module rlm_expr
                     Module: Instantiating module "expr" from file /usr/pbi/freeradius-i386/etc/raddb/modules/expr
                     Module: Linked to module rlm_counter
                     Module: Instantiating module "daily" from file /usr/pbi/freeradius-i386/etc/raddb/modules/counter
                      counter daily {
                    	filename = "/var/log/radacct/timecounter/db.daily"
                    	key = "User-Name"
                    	reset = "daily"
                    	count-attribute = "Acct-Session-Time"
                    	counter-name = "Daily-Session-Time"
                    	check-name = "Max-Daily-Session"
                    	reply-name = "Session-Timeout"
                    	cache-size = 5000
                      }
                    rlm_counter: Counter attribute Daily-Session-Time is number 11273
                    rlm_counter: Current Time: 1364223550 [2013-03-25 16:59:10], Next reset 1364248800 [2013-03-26 00:00:00]
                    gdbm fatal: read error
                    
                    1 Reply Last reply Reply Quote 0
                    • N
                      Nachtfalke
                      last edited by

                      gdbm fatal: read error
                      

                      I saw this problem several times in other threads. In most cases it was a problem with the pfsense installation.
                      Can you try to do a fresh installation of pfsense and try the package again ?

                      In general freeradius2 should start after you setup a listening interface.

                      1 Reply Last reply Reply Quote 0
                      • S
                        Slam
                        last edited by

                        Thanks for this great contribution.

                        I am currently testing pfsense 2.0.3 with freeradius2 in appliance only mode.

                        I think I've found a small bug, if a radius user is created with an email address .i.e "tom@example.com" and "Amount of traffic" is set, this user is unable to login.

                        I've added "@" to /usr/local/etc/raddb/scripts/datacounter_*.sh files on the line

                        USERNAME=`echo -n "$1" | sed 's/[^0-9a-zA-Z.:_-[color=red]@]/X/g'

                        I am able to log on with "tom@example.com", however traffic accounting completely stops, for all users not just ones with @ in their names, if I remove my changes from  /usr/local/etc/raddb/scripts/datacounter_acct.sh, accounting works again but not for @ usernames.

                        Any help?

                        1 Reply Last reply Reply Quote 0
                        • N
                          Nachtfalke
                          last edited by

                          You probably need to modify that on both functions:

                          freeradius_datacounter_auth_resync()
                          freeradius_datacounter_acct_resync()
                          

                          Further you need to restart pfsense to recreate the .sh files.

                          Or you go to diagnostics –> command prompt:

                          require_once("/usr/local/pkg/freeradius.inc");
                          freeradius_datacounter_auth_resync();
                          freeradius_datacounter_acct_resync();

                          1 Reply Last reply Reply Quote 0
                          • S
                            Slam
                            last edited by

                            Thanks.

                            I had the same results, I even commented out the realms section where it denies @ logins, still nothing.

                            1 Reply Last reply Reply Quote 0
                            • N
                              Nachtfalke
                              last edited by

                              @Abdsalem:

                              Thanks.

                              I had the same results, I even commented out the realms section where it denies @ logins, still nothing.

                              Hmm, I am no coding expert so I am not sure why this is happening but I found the follwoing:

                              http://php.net/manual/de/language.operators.php
                              So it seems that  @  is an operator in PHP.

                              And in function:
                              function freeradius_modulesdatacounter_resync()
                              we need the username (%{request:User-Name}) from freeradius and this could perhaps cause problems.

                              Is there a way to just get the value of  %{request:User-Name}  without doing any special with it ?

                              1 Reply Last reply Reply Quote 0
                              • S
                                Slam
                                last edited by

                                Thanks, Im no coder either :0)

                                It could be my regex skills are also crap, but I thought I'd mention it as I noticed 1 or 2 posts on this thread pointing to this symptom, Ive since moved to an external radius server, just need to work out all the correct configs for it.

                                But without @ username, the pfsense package worked great, I had 2 pfsense fr2 syncing with eachother with no problems.

                                Cheers

                                1 Reply Last reply Reply Quote 0
                                • P
                                  pszafer
                                  last edited by

                                  hello,
                                  first @ is not operator in php.
                                  second, both functions You mentioned are bash scripts, so it doesn't matter.

                                  USERNAME=`echo -n "\$1" | sed 's/[^0-9a-zA-Z.:_-@]/X/g'
                                  ```this changes special characters to X. But finally it's just name of file so it doesn't matter if you save it with X as tomXmail.com or tom@mail.com.
                                  
                                  I don't use this function, but I'll try to help:
                                  1\. Do You have only one backslash before $1 in USERNAME?
                                  2\. Give me ouput (You can cut it, but I need sample name of username file (path /var/log/radacct/datacounter/\$TIMERANGE/max-octets-\$USERNAME"):
                                  You can do this command and paste somewhere.
                                  

                                  ls -lar /var/log/radacct/datacounter/ > /root/datacounterlist

                                  
                                  3\. As Nachtfalke wrote it could be problem in other function. We need to look into it:
                                  in function freeradius_modulesdatacounter_resync we need to change $conf variable a little.
                                  change only exec datacounterdaily
                                  

                                  exec datacounterdaily {
                                                  wait = yes
                                                  program = "/bin/sh $varFREERADIUS_BASE/etc/raddb/scripts/datacounter_acct.sh %{request:User-Name} daily %{request:Acct-Input-Octets} %{request:Acct-Output-Octets} && /bin/sh echo %{request:User-Name} >> /root/usernames"
                                          }
                                  ...

                                  
                                  maybe we would know something more with those files ;)
                                  1 Reply Last reply Reply Quote 0
                                  • S
                                    Slam
                                    last edited by

                                    Thanks very much guys for offering to help and sorry I have not got back to this asap, been a bit busy as I have migrated my entire setup to pfsense 2.1 (radius accounting works great btw), I've setup an external radius server that sits on my dmz and its authenticating and accouting correctly with all my users, including "@" usernames.

                                    I am a little free now to help fix this problem for the community because its ideal and more practical in some cases to give users the option to sign up with their email addresses with the pfSense FR2 package.

                                    I have also worked out how to give users custom replies for my own setup if they fail authentication for what ever reason, I know a few people were looking for this as the default gave inconsistant replies for their setup .i.e "You have entered the wrong credentials" for a user who has used up their data allowance, instead of something liike this "You have used up your data allowance for this month".

                                    Ill setup another vm with pfsense 2.0.3 soon (I cant find where FR2 pkg resides on 2.1) and post the result of the commands pszafer wrote.

                                    TIA

                                    1 Reply Last reply Reply Quote 0
                                    • P
                                      pszafer
                                      last edited by

                                      Maybe better to test it on pfSense 2.1, so possible problem will no be reproduced in the newest version.

                                      1 Reply Last reply Reply Quote 0
                                      • marcellocM
                                        marcelloc
                                        last edited by

                                        Good news for those that use this package with eap-tls. Current version now includes certificate revocation list(CRL) on eap Tab.
                                        Once you revoke a client certificate, it will not be able to login anymore.  :)

                                        Treinamentos de Elite: http://sys-squad.com

                                        Help a community developer! ;D

                                        1 Reply Last reply Reply Quote 0
                                        • S
                                          skoenman
                                          last edited by

                                          Hey guys having a funny issue…with freeradius . It doesn't want to seem to start the freeradius daemon?

                                          1 Reply Last reply Reply Quote 0
                                          • marcellocM
                                            marcelloc
                                            last edited by

                                            @skoenman:

                                            Hey guys having a funny issue…with freeradius . It doesn't want to seem to start the freeradius daemon?

                                            What you got on log files?

                                            Treinamentos de Elite: http://sys-squad.com

                                            Help a community developer! ;D

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post
                                            Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.