{"id":15,"date":"2020-06-28T18:06:31","date_gmt":"2020-06-28T10:06:31","guid":{"rendered":"https:\/\/www.kevin125.com\/?p=15"},"modified":"2021-01-23T17:32:26","modified_gmt":"2021-01-23T09:32:26","slug":"using-radius-server-on-ubuntu-16-04-for-wifi-authentication","status":"publish","type":"post","link":"https:\/\/www.kevin125.com\/?p=15","title":{"rendered":"USING RADIUS SERVER ON UBUNTU 16.04 FOR WIFI AUTHENTICATION"},"content":{"rendered":"\r\n<h4 class=\"wp-block-heading\">INSTALL FREERADIUS<\/h4>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">First, let&#8217;s install the RADIUS server, FreeRADIUS. On the server that is going to host it do:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-preformatted\">sudo apt-get install freeradius make<\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">There are many different ways that FreeRADIUS can be configured, and honestly I don&#8217;t understand most of them. Here&#8217;s what I found that worked for me.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Turn off the proxy feature on the server (unless you know you need it) by editing \/etc\/freeradius\/radiusd.conf and changing the following line:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-preformatted\">proxy_requests = no<\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">You may also want to look over the logging features in that configuration file to set what gets logged and where. I use &#8220;auth=yes&#8221; in the log{} block so that I log every time someone connects to the wifi. It also tells me which access point they connected to.<\/p>\r\n\r\n\r\n\r\n<p><!--more--><\/p>\r\n\r\n\r\n\r\n<h4 class=\"wp-block-heading\">WHAT IS A RADIUS CLIENT?<\/h4>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">FreeRADIUS may throw you for a loop talking about servers and clients. The client is NOT what you think &#8211; it&#8217;s not the user&#8217;s laptop or phone. The client is the WAP, because it performs the authentication request against the server. By default, FreeRADIUS will set up the localhost of the server as a client as well, and we won&#8217;t be needing that so let&#8217;s disable it in the &#8216;\/etc\/freeradius\/clients.conf&#8217; file by commenting it out.<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-preformatted\">#client localhost {\r\n        #  Allowed values are:\r\n        #       dotted quad (1.2.3.4)\r\n        #       hostname    (radius.example.com)\r\n#       ipaddr = 127.0.0.1\r\n\r\n        #  OR, you can use an IPv6 address, but not both\r\n        #  at the same time.\r\n#       ipv6addr = ::   # any.  ::1 == localhost\r\n...\r\n#}<\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">And now we add an entry for our WAP in that. Create a new random password that you&#8217;ll enter into the WAP itself that it uses to authenticate against the RADIUS server. Again in the &#8216;\/etc\/freeradius\/clients.conf&#8217; file:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-preformatted\">client mywap {\r\n        ipaddr = <strong>192.168.1.100<\/strong>\r\n        secret = <strong>myRandomP@55w05D<\/strong>\r\n        require_message_authenticator = yes\r\n}<\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Please be sure you&#8217;ve changed the parts I put in bold. You will need a client entry for each WAP that is on your network. I recommend a different password for each one, in addition to needing the static IP address of the WAP.<\/p>\r\n\r\n\r\n\r\n<h4 class=\"wp-block-heading\">EAP CONFIGURATION<\/h4>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Next we want to edit the configuration for the Extensible Authentication Protocol (EAP). Rather than telling you what to comment, I&#8217;m going to just show you what you need. Edit &#8216;\/etc\/freeradius\/eap.conf&#8217; to look something like this:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-preformatted\"># -*- text -*-\r\n# Example \/etc\/freeradius\/eap.conf file\r\neap {\r\n\tdefault_eap_type = tls\r\n\ttimer_expire = 60\r\n\tignore_unknown_eap_types = no\r\n\tcisco_accounting_username_bug = no\r\n\tmax_sessions = 4096\r\n\ttls {\r\n\t\tcertdir = ${confdir}\/certs\r\n                cadir = ${confdir}\/certs\r\n                private_key_password = <strong>myserverkeypassword<\/strong>\r\n                private_key_file = ${certdir}\/server.key\r\n\t\tcertificate_file = ${certdir}\/server.pem\r\n\t\tCA_path = ${cadir}\r\n\t\tCA_file = ${cadir}\/ca.pem\r\n\t\tdh_file = ${certdir}\/dh\r\n\t\trandom_file = \/dev\/urandom\r\n\t\tcipher_list = \"HIGH\"\r\n\t\tmake_cert_command = \"${certdir}\/bootstrap\"\r\n\t\tecdh_curve = \"prime256v1\"\r\n\t\tcache {\r\n\t\t\tenable = no # Optionally enable\r\n\t\t\tlifetime = 24 # hours\r\n\t\t\tmax_entries = 255\r\n\t\t}\r\n\t\tverify {\r\n\t\t\ttmpdir = \/tmp\/radiusd\r\n\t\t\tclient = \"\/usr\/bin\/openssl verify -CAfile ${..CA_file} %{TLS-Client-Cert-Filename}\"\r\n\t\t}\r\n\t\tocsp {\r\n\t\t\tenable = no # optionally enable\r\n\t\t\toverride_cert_url = yes\r\n\t\t\turl = \"http:\/\/127.0.0.1\/ocsp\/\"\r\n\t\t}\r\n\t}\r\n\tttls {\r\n\t\tdefault_eap_type = md5\r\n\t\tcopy_request_to_tunnel = no\r\n\t\tuse_tunneled_reply = no\r\n\t\tvirtual_server = \"inner-tunnel\"\r\n\t}\r\n}<\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">The &#8220;myserverkeypassword&#8221; above will need to match the password you use when generating the server&#8217;s keys later.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">What we&#8217;ve done mostly is disable other protocols like LEAP and PEAP and MSCHAPv2 among others, none of which are good ideas to use. Only EAP-TLS will be used.<\/p>\r\n\r\n\r\n\r\n<h4 class=\"wp-block-heading\">DISABLE ALL THE DEFAULT SERVERS<\/h4>\r\n\r\n\r\n\r\n<pre class=\"wp-block-preformatted\">sudo rm \/etc\/freeradius\/sites-enabled\/*<\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Create a new server config file at \/etc\/freeradius\/sites-available\/mynetwork that contains something like the following:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-preformatted\">######################################################################\r\nauthorize {\r\n\tpreprocess\r\n\teap {\r\n\t\tok = return\r\n\t}\r\n\texpiration\r\n\tlogintime\r\n}\r\n\r\nauthenticate {\r\n\teap\r\n}\r\n\r\npreacct {\r\n\tpreprocess\r\n\tacct_unique\t\r\n\tsuffix\r\n\tfiles\r\n}\r\n\r\naccounting {\r\n\tdetail\r\n\tunix\r\n\tradutmp\r\n\texec\r\n\tattr_filter.accounting_response\r\n}\r\n\r\nsession {\r\n\tradutmp\r\n}\r\n\r\npost-auth {\r\n\texec\r\n\tPost-Auth-Type REJECT {\r\n\t\tattr_filter.access_reject\r\n\t}\r\n}\r\n\r\npre-proxy {\r\n\r\n}\r\n\r\npost-proxy {\r\n\teap\r\n}<\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Now, link that to the sites-enabled directory like so:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-preformatted\">sudo su -\r\ncd \/etc\/freeradius\/sites-enabled\/\r\nln -s ..\/sites-available\/mynetwork .\/mynetwork<\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">And then stop FreeRADIUS and restart it in debug mode to make sure all is loading correctly:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-preformatted\">service freeradius stop\r\nfreeradius -X<\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Hopefully it starts up just fine without any errors. You should see &#8220;Ready to process requests&#8221;. Any error messages you see now is the time to do some research and find out why. Once you&#8217;ve finished the test type CTRL-C to stop the server.<\/p>\r\n\r\n\r\n\r\n<h4 class=\"wp-block-heading\">CONFIGURE SSL CERTIFICATES<\/h4>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Assuming all went well, now we start generating SSL certificates. First we want to remove the default certificates and set up a basic framework:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-preformatted\">cd \/etc\/freeradius\/certs\/\r\nrm *.pem\r\nrm *.key\r\nmkdir \/var\/certs\r\nmkdir \/var\/certs\/freeradius\r\nchgrp ssl-cert \/var\/certs\/freeradius\r\nchmod 710 \/var\/certs\/freeradius\r\ncp \/usr\/share\/doc\/freeradius\/examples\/certs\/* \/var\/certs\/freeradius\/\r\ncd \/var\/certs\/freeradius\/\r\nrm bootstrap\r\nchmod 600 *\r\nmake destroycerts\r\nmake index.txt\r\nmake serial<\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Next, edit the &#8216;ca.cnf&#8217; file and change a few of the defaults. Change the following lines:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-preformatted\">[ CA_default ]\r\n..\r\ndefault_days = 1825\r\ndefault_md = sha1\r\n..\r\n[ req ]\r\ndefault_bits = 4096\r\ninput_password = <strong>myserverkeypassword<\/strong>\r\noutput_password = <strong>myserverkeypassword<\/strong>\r\n..<\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">That sets certificates good for 5 years (you can change the days to whatever you like) and increases the certificate security considerably from the defaults. The &#8220;myserverkeypassword&#8221; above should match the one in the eap.conf file at the beginning and should be a randomly generated string. You&#8217;ll never have to enter this in a client so make it complicated.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Now, generate the &#8216;ca.pem&#8217; file:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-preformatted\">make ca.pem\r\nmake ca.der\r\nmake printca<\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Now, edit the &#8220;server.cnf&#8221; file and do similar changes:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-preformatted\">[ CA_default ]\r\n..\r\ndefault_days = 1825\r\ndefault_md = sha1\r\n..\r\n[ req ]\r\n..\r\ndefault_bits = 4096\r\n..<\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Under the &#8220;[server]&#8221; tag put in your appropriate contact information. Now generate the &#8216;server.pem&#8217; file:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-preformatted\">make server.pem<\/pre>\r\n\r\n\r\n\r\n<h4 class=\"wp-block-heading\">CREATE USER CERTIFICATES<\/h4>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Now we generate client certificates, but there&#8217;s something we need to change in the Makefile first. &#8220;nano Makefile&#8221;.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><strong>Locate the lines that say:<\/strong><\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-preformatted\">client.p12: client.crt\r\n  openssl pkcs12 -export -in client.crt -inkey client.key -out client.p12  -passin pass:$(PASSWORD_CLIENT) -passout pass:$(PASSWORD_CLIENT)\r\n\r\nclient.pem: client.p12\r\n  openssl pkcs12 -in client.p12 -out client.pem -passin pass:$(PASSWORD_CLIENT) -passout pass:$(PASSWORD_CLIENT)\r\n  cp client.pem $(USER_NAME).pem<\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><strong>Change it to read:<\/strong><\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-preformatted\">client.p12: client.crt\r\n        openssl pkcs12 -export -in client.crt -inkey client.key -out client.p12  -passin pass:$(PASSWORD_CLIENT) -passout pass:$(PASSWORD_CLIENT)\r\n        cp client.p12 $(USER_NAME).p12\r\n\r\nclient.pem: client.p12\r\n        openssl pkcs12 -in client.p12 -out client.pem -passin pass:$(PASSWORD_CLIENT) -passout pass:$(PASSWORD_CLIENT)\r\n        cp client.pem $(USER_NAME).pem\r\n\r\nclient_android.p12: client.crt\r\n        openssl pkcs12 -export -in client.crt -inkey client.key -certfile ca.pem -name \"$(USER_NAME)\" -out client_android.p12  -passin pass:$(PASSWORD_CLIENT) -passout pass:$(PASSWORD_CLIENT)\r\n        cp client_android.p12 $(USER_NAME)_android.p12<\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><strong>Note that the above lines will wrap in your browser but if you copy and paste them they should be formatted correctly.<\/strong><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Make sure indented lines are tabs and not spaces or the file will not work. This change creates a special case for Android certificates and renames the files to be easier to identify.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Edit &#8216;client.cnf&#8217; to set your defaults just like you did before but this time for any client certificates. You probably want to shorten the default_days to 365 (will need to regenerate keys for the device in a year) but again change the default_md to sha1 and default_bits to 4096.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">In the &#8220;[ req ]&#8221; section of client.cnf is the &#8220;input_password&#8221; and &#8220;output_password&#8221;. Set these both to the same, and keep in mind that this password will be needed when the certificate is installed on the client so keep in mind using mobile keyboards to type it. The &#8220;[client]&#8221; section uniquely identifies the user in log files, so be sure the emailAddress and commonName are set properly.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Now create the client certificate with:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-preformatted\">make client.pem\r\nmake client_android.p12<\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Simply edit the client.cnf file for the next certificate and run those commands again to generate certificates for each device that will have WIFI access.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Finally, lets set the proper permissions for certificates and create the links we need:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-preformatted\">chmod 600 *\r\nchmod 640 ca.pem\r\nchmod 640 server.pem\r\nchmod 640 server.key\r\nchgrp ssl-cert ca.pem\r\nchgrp ssl-cert server.pem\r\nchgrp ssl-cert server.key\r\ncd \/etc\/freeradius\/certs\/\r\nln -s \/var\/certs\/freeradius\/ca.pem ca.pem\r\nln -s \/var\/certs\/freeradius\/server.pem server.pem\r\nln -s \/var\/certs\/freeradius\/server.key server.key<\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">After creating new client certificates, the first four lines of the above command should be run again to ensure the security is set properly.<\/p>\r\n\r\n\r\n\r\n<h4 class=\"wp-block-heading\">THE RIGHT CERTIFICATES IN THE RIGHT PLACES<\/h4>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Here&#8217;s the files needed:<\/p>\r\n\r\n\r\n\n<ul class=\"wp-block-list\"><li>Windows: ca.der and [user].p12<\/li><li>Linux: ca.pem and [user].p12<\/li><li>Android: [user]_android.p12<\/li><\/ul>\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Note that recent versions of Android will constantly display a warning that your connection is monitored while using wifi with a RADIUS server. There are ways on a rooted device to install the certificate in the root store, but regardless it doesn&#8217;t actually affect the operation of the device.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Link: <a href=\"https:\/\/www.ossramblings.com\/using-freeradius-ubuntu-server-wifi\">https:\/\/www.ossramblings.com\/using-freeradius-ubuntu-server-wifi<\/a><\/p>\r\n","protected":false},"excerpt":{"rendered":"<p>INSTALL FREERADIUS First, let&#8217;s install the RADIUS server, FreeRADIUS. On the server that is going to host it do: sudo apt-get install freeradius make There are many different ways that FreeRADIUS can be configured, and honestly I don&#8217;t understand most &hellip; <a href=\"https:\/\/www.kevin125.com\/?p=15\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_uag_custom_page_level_css":"","_themeisle_gutenberg_block_has_review":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[4],"tags":[],"class_list":["post-15","post","type-post","status-publish","format-standard","hentry","category-radius"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>USING RADIUS SERVER ON UBUNTU 16.04 FOR WIFI AUTHENTICATION - Keep Walking...<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.kevin125.com\/?p=15\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"USING RADIUS SERVER ON UBUNTU 16.04 FOR WIFI AUTHENTICATION - Keep Walking...\" \/>\n<meta property=\"og:description\" content=\"INSTALL FREERADIUS First, let&#8217;s install the RADIUS server, FreeRADIUS. On the server that is going to host it do: sudo apt-get install freeradius make There are many different ways that FreeRADIUS can be configured, and honestly I don&#8217;t understand most &hellip; Continue reading &rarr;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.kevin125.com\/?p=15\" \/>\n<meta property=\"og:site_name\" content=\"Keep Walking...\" \/>\n<meta property=\"article:published_time\" content=\"2020-06-28T10:06:31+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-01-23T09:32:26+00:00\" \/>\n<meta name=\"author\" content=\"kevin125\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"kevin125\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.kevin125.com\\\/?p=15#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.kevin125.com\\\/?p=15\"},\"author\":{\"name\":\"kevin125\",\"@id\":\"https:\\\/\\\/www.kevin125.com\\\/#\\\/schema\\\/person\\\/5394a328685ed0b26b889258ab759e70\"},\"headline\":\"USING RADIUS SERVER ON UBUNTU 16.04 FOR WIFI AUTHENTICATION\",\"datePublished\":\"2020-06-28T10:06:31+00:00\",\"dateModified\":\"2021-01-23T09:32:26+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.kevin125.com\\\/?p=15\"},\"wordCount\":966,\"publisher\":{\"@id\":\"https:\\\/\\\/www.kevin125.com\\\/#\\\/schema\\\/person\\\/5394a328685ed0b26b889258ab759e70\"},\"articleSection\":[\"Radius\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.kevin125.com\\\/?p=15\",\"url\":\"https:\\\/\\\/www.kevin125.com\\\/?p=15\",\"name\":\"USING RADIUS SERVER ON UBUNTU 16.04 FOR WIFI AUTHENTICATION - Keep Walking...\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.kevin125.com\\\/#website\"},\"datePublished\":\"2020-06-28T10:06:31+00:00\",\"dateModified\":\"2021-01-23T09:32:26+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.kevin125.com\\\/?p=15#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.kevin125.com\\\/?p=15\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.kevin125.com\\\/?p=15#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.kevin125.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"USING RADIUS SERVER ON UBUNTU 16.04 FOR WIFI AUTHENTICATION\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.kevin125.com\\\/#website\",\"url\":\"https:\\\/\\\/www.kevin125.com\\\/\",\"name\":\"Keep Walking...\",\"description\":\"They say nothing lasts forever...\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.kevin125.com\\\/#\\\/schema\\\/person\\\/5394a328685ed0b26b889258ab759e70\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.kevin125.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.kevin125.com\\\/#\\\/schema\\\/person\\\/5394a328685ed0b26b889258ab759e70\",\"name\":\"kevin125\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/deade72b8514d2a2c4822fddd176e3eeb7d4ae27279b090da2f512e08af30744?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/deade72b8514d2a2c4822fddd176e3eeb7d4ae27279b090da2f512e08af30744?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/deade72b8514d2a2c4822fddd176e3eeb7d4ae27279b090da2f512e08af30744?s=96&d=mm&r=g\",\"caption\":\"kevin125\"},\"logo\":{\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/deade72b8514d2a2c4822fddd176e3eeb7d4ae27279b090da2f512e08af30744?s=96&d=mm&r=g\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"USING RADIUS SERVER ON UBUNTU 16.04 FOR WIFI AUTHENTICATION - Keep Walking...","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.kevin125.com\/?p=15","og_locale":"en_US","og_type":"article","og_title":"USING RADIUS SERVER ON UBUNTU 16.04 FOR WIFI AUTHENTICATION - Keep Walking...","og_description":"INSTALL FREERADIUS First, let&#8217;s install the RADIUS server, FreeRADIUS. On the server that is going to host it do: sudo apt-get install freeradius make There are many different ways that FreeRADIUS can be configured, and honestly I don&#8217;t understand most &hellip; Continue reading &rarr;","og_url":"https:\/\/www.kevin125.com\/?p=15","og_site_name":"Keep Walking...","article_published_time":"2020-06-28T10:06:31+00:00","article_modified_time":"2021-01-23T09:32:26+00:00","author":"kevin125","twitter_card":"summary_large_image","twitter_misc":{"Written by":"kevin125","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.kevin125.com\/?p=15#article","isPartOf":{"@id":"https:\/\/www.kevin125.com\/?p=15"},"author":{"name":"kevin125","@id":"https:\/\/www.kevin125.com\/#\/schema\/person\/5394a328685ed0b26b889258ab759e70"},"headline":"USING RADIUS SERVER ON UBUNTU 16.04 FOR WIFI AUTHENTICATION","datePublished":"2020-06-28T10:06:31+00:00","dateModified":"2021-01-23T09:32:26+00:00","mainEntityOfPage":{"@id":"https:\/\/www.kevin125.com\/?p=15"},"wordCount":966,"publisher":{"@id":"https:\/\/www.kevin125.com\/#\/schema\/person\/5394a328685ed0b26b889258ab759e70"},"articleSection":["Radius"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.kevin125.com\/?p=15","url":"https:\/\/www.kevin125.com\/?p=15","name":"USING RADIUS SERVER ON UBUNTU 16.04 FOR WIFI AUTHENTICATION - Keep Walking...","isPartOf":{"@id":"https:\/\/www.kevin125.com\/#website"},"datePublished":"2020-06-28T10:06:31+00:00","dateModified":"2021-01-23T09:32:26+00:00","breadcrumb":{"@id":"https:\/\/www.kevin125.com\/?p=15#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.kevin125.com\/?p=15"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.kevin125.com\/?p=15#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.kevin125.com\/"},{"@type":"ListItem","position":2,"name":"USING RADIUS SERVER ON UBUNTU 16.04 FOR WIFI AUTHENTICATION"}]},{"@type":"WebSite","@id":"https:\/\/www.kevin125.com\/#website","url":"https:\/\/www.kevin125.com\/","name":"Keep Walking...","description":"They say nothing lasts forever...","publisher":{"@id":"https:\/\/www.kevin125.com\/#\/schema\/person\/5394a328685ed0b26b889258ab759e70"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.kevin125.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.kevin125.com\/#\/schema\/person\/5394a328685ed0b26b889258ab759e70","name":"kevin125","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/deade72b8514d2a2c4822fddd176e3eeb7d4ae27279b090da2f512e08af30744?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/deade72b8514d2a2c4822fddd176e3eeb7d4ae27279b090da2f512e08af30744?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/deade72b8514d2a2c4822fddd176e3eeb7d4ae27279b090da2f512e08af30744?s=96&d=mm&r=g","caption":"kevin125"},"logo":{"@id":"https:\/\/secure.gravatar.com\/avatar\/deade72b8514d2a2c4822fddd176e3eeb7d4ae27279b090da2f512e08af30744?s=96&d=mm&r=g"}}]}},"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false,"post-thumbnail":false,"sow-carousel-default":false},"uagb_author_info":{"display_name":"kevin125","author_link":"https:\/\/www.kevin125.com\/?author=1"},"uagb_comment_info":0,"uagb_excerpt":"INSTALL FREERADIUS First, let&#8217;s install the RADIUS server, FreeRADIUS. On the server that is going to host it do: sudo apt-get install freeradius make There are many different ways that FreeRADIUS can be configured, and honestly I don&#8217;t understand most &hellip; Continue reading &rarr;","jetpack-related-posts":[],"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/www.kevin125.com\/index.php?rest_route=\/wp\/v2\/posts\/15","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.kevin125.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.kevin125.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.kevin125.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.kevin125.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=15"}],"version-history":[{"count":1,"href":"https:\/\/www.kevin125.com\/index.php?rest_route=\/wp\/v2\/posts\/15\/revisions"}],"predecessor-version":[{"id":52,"href":"https:\/\/www.kevin125.com\/index.php?rest_route=\/wp\/v2\/posts\/15\/revisions\/52"}],"wp:attachment":[{"href":"https:\/\/www.kevin125.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=15"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.kevin125.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=15"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.kevin125.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=15"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}