MatthewL Posted November 11, 2021 Posted November 11, 2021 Has anyone been involved in using radsecproxy on a Linux box? We are reconfiguring our setup for EduRoam due to chance in WiFi and need to use radsecproxy to enable this. It is literally a config file to setup then we point our WiFi at this and adjust our firewall rules to talk to the eduroam server. This is the config file, there are 2 severs we will be connecting to on TLS 2083 to the 2 upstream servers so made bold what I think we need to change. Also got some certificates to upload. Is there a way I can restrict what device can connect i.e. put my subnet for the access points in? # Master config file for radsecproxy # First you may define any global options, these are: # # You can optionally specify addresses and ports to listen on # Multiple statements can be used for multiple ports/addresses #ListenUDP *:1814 #ListenUDP localhost #ListenTCP [2001:700:1:7:215:f2ff:fe35:307d]:1812 #[b]ListenTLS 10.10.10.10:2084[/b] #ListenTLS [2001:700:1:7:215:f2ff:fe35:307d]:2084 #ListenDTLS [2001:700:1:7:215:f2ff:fe35:307d]:2084 # To specify a certain address/port for UDP/TLS requests you can use e.g. #SourceUDP 127.0.0.1:33000 #SourceTCP *:33000 #SourceTLS *:33001 #SourceDTLS *:33001 # Optional log level. 3 is default, 1 is less, 5 is more #LogLevel 3 # Optional LogDestination, else stderr used for logging # Logging to file #LogDestination file:///tmp/rp.log # Or logging with Syslog. LOG_DAEMON used if facility not specified # The supported facilities are LOG_DAEMON, LOG_MAIL, LOG_USER and # LOG_LOCAL0, ..., LOG_LOCAL7 #LogDestination x-syslog:/// #LogDestination x-syslog:///log_local2 # Optional log thread Id #LogThreadId on # For generating log entries conforming to the F-Ticks system, specify # FTicksReporting with one of the following values. # None -- Do not log in F-Ticks format. This is the default. # Basic -- Do log in F-Ticks format but do not log VISINST. # Full -- Do log in F-Ticks format and do log VISINST. # Please note that in order to get F-Ticks logging for a given client, # its matching client configuration block has to contain the # fticksVISCOUNTRY option. # You can optionally specify Log MAC and FTicksMAC in order to determine if and #[b] how Calling-Station-Id[/b] (users Ethernet MAC address) is being logged. # Static -- Use a static string as a placeholder for # Calling-Station-Id in F-Ticks, of omit it in normal log. # Original -- Log Calling-Station-Id as-is. This is the default for log. # VendorHashed -- Keep first three segments as-is, hash the rest. # VendorKeyHashed -- Like VendorHashed but salt with F-Ticks-Key or Log-key # respectively. This is the default for F-Ticks. # FullyHashed -- Hash the entire string. # FullyKeyHashed -- Like FullyHashed but salt with F-Ticks-Key. # In order to use LogMAC or FTicksMAC with one of VendorKeyHashed or # FullyKeyHashed, specify a key with LogKey or FTicksKey. #LogKey #FTicksKey # Default Log andF-Ticks configuration: #LogMAC Original #FTicksReporting None #FTicksMAC Static # You can optionally specify FTicksSyslogFacility to use a dedicated # syslog facility for F-Ticks messages. This allows for easier filtering # of F-Ticks messages. # F-Ticks messages are always logged using the log level LOG_DEBUG. # Note that specifying a file (using the file:/// prefix) is not supported. #FTicksSyslogFacility log_local1 #FTicksSyslogFacility x-syslog:///log_local1 # If you are using radsecproxy outside the eduroam context, and you want # F-Ticks messages to have your own prefix instead of eduroam, you can set: #FTicksPrefix # There is an option for doing some simple loop prevention. Note that # the LoopPrevention directive can be used in server blocks too, # overriding what's set here in the basic settings. #LoopPrevention on # Add TTL attribute with value 20 if not present (prevents endless loops) #AddTTL 20 # If we have TLS clients or servers we must define at least one tls block. # You can name them whatever you like and then reference them by name when # specifying clients or servers later. There are however three special names # "default", "defaultclient" and "defaultserver". If no name is defined for # a client, the "defaultclient" block will be used if it exists, if not the # "default" will be used. For a server, "defaultserver" followed by "default" # will be checked. # # The simplest configuration you can do is: #tls default { # You must specify at least one of CACertificateFile or CACertificatePath # for TLS to work. We always verify peer certificate (client and server) # CACertificateFile /etc/ssl/certs/ca-certificates.crt # CACertificatePath /etc/ssl/certs # You must specify the below for TLS, we always present our certificate [b] # CertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem # CertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key # Optionally specify password if key is encrypted (not very secure) # CertificateKeyPassword "follow the white rabbit"[/b] # # Optionally enable CRL checking # CRLCheck on # Optionally specify how long CAs and CRLs are cached, default forever # CacheExpiry 3600 # # Optionally require that peer certs have one of the specified policyOIDs # policyoid 1.2.3 # this option can be used multiple times # policyoid 1.3.4 #} # If you want one cert for all clients and another for all servers, use # defaultclient and defaultserver instead of default. If we wanted some # particular server to use something else you could specify a block # "tls myserver" and then reference that for that server. If you always # name the tls block in the client/server config you don't need a default # Now we configure clients, servers and realms. Note that these and # also the lines above may be in any order, except that a realm # can only be configured to use a server that is previously configured. # A realm can be a literal domain name, * which matches all, or a # regexp. A regexp is specified by the character prefix / # For regexp we do case insensitive matching of the entire username string. # The matching of realms is done in the order they are specified, using the # first match found. Some examples are # @example\.com$", "\.com$", ".*" and "^[a-z]. @example\.com$". # To treat local users separately you might try first specifying "@" # and after that "*". # Configure a rewrite block if you want to add/remove/modify attributes # rewrite example { # # Remove NAS-Port. # removeAttribute 5 # # Remove vendor attribute 100. # removeVendorAttribute 99:100 # # Called-Station-Id = "123456" # addAttribute 30:123456 # # Vendor-99-Attr-101 = 0x0f # addVendorAttribute 99:101:%0f # # Change users @local to @example.com. # modifyAttribute 1:/^(.*)@local$/\[email protected]/ # } # An example client #client [2001:db8::1] { # # type can be one of tcp, udp, tls, dtls # type udp # # secret is optional for TLS/DTLS # secret secret # # Might do rewriting of incoming messages using rewrite block example # rewriteIn example # # Can also do rewriting of outgoing messages # rewriteOut example # # if also want to use this server for accounting, specify # accountingServer 127.0.0.1 # # statusserver is optional, can be on or off. Off is default # StatusServer on #} # Equivalent to example.com #realm @example\.com$ { # server 2001:db8::1 #} # One can define a realm without servers, the proxy will then reject # and requests matching this. Optionally one can specify ReplyMessage # attribute to be included in the reject message. One can also use # AccountingResponse option to specify that the proxy should send such. #realm /\.com$ { #} # #realm /^anonymous$ { # replymessage "No Access" # AccountingResponse On #} # example config for localhost, rejecting all users client 127.0.0.1 { type udp secret testing123 } realm * { replymessage "User unknown" }
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now