radsecproxy.conf-example 7.66 KB
Newer Older
venaas's avatar
venaas committed
1
# Master config file, must be in /etc/radsecproxy or specified with -c option
venaas's avatar
venaas committed
2
#	All possible config options are listed below
venaas's avatar
venaas committed
3

4 5
# First you may define any global options, these are:
#
venaas's avatar
venaas committed
6
# You can optionally specify addresses and ports to listen on
venaas's avatar
venaas committed
7
# Multiple statements can be used for multiple ports/addresses
venaas's avatar
venaas committed
8
#ListenUDP		*:1814
Linus Nordberg's avatar
Linus Nordberg committed
9
#ListenUDP		localhost
venaas's avatar
venaas committed
10
#ListenTCP		[2001:700:1:7:215:f2ff:fe35:307d]:1812
Linus Nordberg's avatar
Linus Nordberg committed
11
#ListenTLS		10.10.10.10:2084
venaas's avatar
venaas committed
12 13
#ListenTLS		[2001:700:1:7:215:f2ff:fe35:307d]:2084
#ListenDTLS		[2001:700:1:7:215:f2ff:fe35:307d]:2084
venaas's avatar
venaas committed
14 15 16

# To specify a certain address/port for UDP/TLS requests you can use e.g.
#SourceUDP		127.0.0.1:33000
venaas's avatar
venaas committed
17 18 19
#SourceTCP		*:33000
#SourceTLS		*:33001
#SourceDTLS		*:33001
20

21
# Optional log level. 3 is default, 1 is less, 5 is more
venaas's avatar
venaas committed
22
#LogLevel		3
23
# Optional LogDestination, else stderr used for logging
venaas's avatar
venaas committed
24
# Logging to file
25
#LogDestination		file:///tmp/rp.log
venaas's avatar
venaas committed
26 27 28
# 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
29 30
#LogDestination         x-syslog:///
#LogDestination         x-syslog:///log_local2
venaas's avatar
venaas committed
31

32
# For generating log entries conforming to the F-Ticks system, specify
33
# FTicksReporting with one of the following values.
34 35 36
#   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.
37 38 39
# 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.
40

41
# You can optionally specify FTicksMAC in order to determine if and
42 43 44 45 46 47 48 49 50
# how Calling-Station-Id is logged.
#   Static          -- Use a static string as a placeholder for
#                      Calling-Station-Id.  This is the default.
#   Original        -- Log Calling-Station-Id as-is.
#   VendorHashed    -- Keep first three segments as-is, hash the rest.
#   VendorKeyHashed -- Like VendorHashed but salt with F-Ticks-Key.
#   FullyHashed     -- Hash the entire string.
#   FullyKeyHashed  -- Like FullyHashed but salt with F-Ticks-Key.

51 52 53
# In order to use FTicksMAC with one of VendorKeyHashed or
# FullyKeyHashed, specify a key with FTicksKey.
# FTicksKey <key>
54 55

# Default F-Ticks configuration:
56
#FTicksReporting None
57
#FTicksMAC Static
58

59 60 61
# 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.
venaas's avatar
venaas committed
62
#LoopPrevention		on
venaas's avatar
venaas committed
63
# Add TTL attribute with value 20 if not present (prevents endless loops)
Linus Nordberg's avatar
Linus Nordberg committed
64
#AddTTL 20
venaas's avatar
venaas committed
65

venaas's avatar
venaas committed
66 67 68 69 70 71 72
# 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.
73
#
venaas's avatar
venaas committed
74
# The simplest configuration you can do is:
75 76 77 78 79 80 81 82 83 84 85
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/cacerts/CA.pem
    CACertificatePath	/etc/cacerts

    # You must specify the below for TLS, we always present our certificate
    CertificateFile	/etc/hostcertkey/host.example.com.pem
    CertificateKeyFile	/etc/hostcertkey/host.example.com.key.pem
    # Optionally specify password if key is encrypted (not very secure)
    CertificateKeyPassword	"follow the white rabbit"
venaas's avatar
venaas committed
86 87
    # Optionally enable CRL checking
    # CRLCheck on
venaas's avatar
venaas committed
88 89
    # Optionally specify how long CAs and CRLs are cached, default forever
    # CacheExpiry 3600
venaas's avatar
venaas committed
90 91 92
    # 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
93 94
}

venaas's avatar
venaas committed
95 96 97 98 99
# 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
100

venaas's avatar
venaas committed
101 102 103
# 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.
venaas's avatar
venaas committed
104

venaas's avatar
venaas committed
105 106 107 108 109 110 111 112
# 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 "*".
113

venaas's avatar
venaas committed
114 115
# Configure a rewrite block if you want to add/remove/modify attributes
# rewrite example {
116
#       # Remove NAS-Port.
venaas's avatar
venaas committed
117
#	removeAttribute 5
118
#       # Remove vendor attribute 100.
venaas's avatar
venaas committed
119
#	removeVendorAttribute 99:100
120 121 122 123 124
#       # Called-Station-Id = "123456"
#	addAttribute 30:123456
#       # Vendor-99-Attr-101 = 0x0f
#       addVendorAttribute 99:101:%0f
#       # Change users @local to @example.com.
125
#	modifyAttribute 1:/^(.*)@local$/\1@example.com/
venaas's avatar
venaas committed
126 127
# }

venaas's avatar
venaas committed
128 129 130
client 2001:db8::1 {
	type	tls
	secret	verysecret
venaas's avatar
venaas committed
131
# we could specify tls here, e.g.
132
#	tls myclient
venaas's avatar
venaas committed
133 134 135
# in order to use tls parameters named myclient. We don't, so we will
# use "tls defaultclient" if defined, or look for "tls default" as a
# last resort
venaas's avatar
venaas committed
136 137 138 139
}
client 127.0.0.1 {
	type	udp
	secret	secret
venaas's avatar
venaas committed
140 141 142 143 144 145 146 147
#	Might do rewriting of incoming messages using rewrite block example
#	rewriteIn example
#	Can also do rewriting of outgoing messages
#	rewriteOut example	
}
client 127.0.0.1 {
	type	tcp
	secret	secret
venaas's avatar
venaas committed
148 149
}
client radius.example.com {
venaas's avatar
venaas committed
150
	type tls
venaas's avatar
venaas committed
151 152
# secret is optional for TLS
}
venaas's avatar
venaas committed
153 154 155 156
client radius.example.com {
	type dtls
# secret is optional for DTLS
}
venaas's avatar
venaas committed
157 158 159 160

server 127.0.0.1 {
	type	UDP
	secret	secret
venaas's avatar
venaas committed
161 162 163 164
#	Might do rewriting of incoming messages using rewrite block example
#	rewriteIn example
#	Can also do rewriting of outgoing messages
#	rewriteOut example	
165 166
#       Might override loop prevention here too:
#       LoopPrevention off
venaas's avatar
venaas committed
167
}
168
realm	eduroam.cc {
venaas's avatar
venaas committed
169
	server	127.0.0.1
venaas's avatar
venaas committed
170 171
# If also want to use this server for accounting, specify
#	accountingServer 127.0.0.1
venaas's avatar
venaas committed
172 173 174 175 176 177
}

server 2001:db8::1 {
	type	TLS
	port	2283
# secret is optional for TLS
venaas's avatar
venaas committed
178
# we could specify tls here, e.g.
179
#	tls myserver
venaas's avatar
venaas committed
180 181 182
# in order to use tls parameters named myserver. We don't, so we will
# use "tls defaultserver" if defined, or look for "tls default" as a
# last resort
venaas's avatar
venaas committed
183 184 185 186
}
server radius.example.com {
	type	tls
	secret	verysecret
venaas's avatar
venaas committed
187 188
	StatusServer on
# statusserver is optional, can be on or off. Off is default
venaas's avatar
venaas committed
189
}
venaas's avatar
venaas committed
190 191 192 193 194 195
#server radius.example.com {
#	type	dtls
#	secret	verysecret
#	StatusServer on
## statusserver is optional, can be on or off. Off is default
#}
venaas's avatar
venaas committed
196

197 198
# Equivalent to example.com
realm /@example\.com$ {
venaas's avatar
venaas committed
199 200
	server 2001:db8::1
}
venaas's avatar
venaas committed
201 202
# One can define a realm without servers, the proxy will then reject
# and requests matching this. Optionally one can specify ReplyMessage
venaas's avatar
venaas committed
203 204
# attribute to be included in the reject message. One can also use
# AccountingResponse option to specify that the proxy should send such.
205
realm /\.com$ {
venaas's avatar
venaas committed
206 207 208
}
realm /^anonymous$ {
        replymessage "No Access"
venaas's avatar
venaas committed
209
#	AccountingResponse On
venaas's avatar
venaas committed
210
}
211 212
# The realm below is equivalent to /.*
realm * {
venaas's avatar
venaas committed
213 214
	server radius.example.com
}
venaas's avatar
venaas committed
215 216
# If you don't have a default server you probably want to
# reject all unknowns. Optionally you can also include a message
venaas's avatar
venaas committed
217
#realm * {
venaas's avatar
venaas committed
218 219
#        replymessage "User unknown"
#}