Although having a 389 directory server is a benefit to busy LANs which provide resources to many users, there is little benefit running it on a network such as the home network which only contains phones and tablets.
Usual password policies should be practiced here: password length and complexity. The wardriver who tries to connect using the TLS tunnel will have to guess the username/password combination. The default rate limiting in freeradius's EAP configuration makes this infeasible for the wardriver but does introduce a possible denial of service (DOS) attack vector.
apt-get install freeradiusHint: if there are errors it might be because you have old configuration still present?
apt-get install apache2
x = /etc/freeradius cp -dpR $x{,.orig}
echo testuser$(openssl passwd -1 -salt `tr -dc 'a-zA-Z0-9' < /dev/urandom | head -c8`) >> $x/passwd
cat >> $x/modules/passwd << EOF passwd { filename = $x/passwd format = "*User-Name:Crypt-Password:" hashsize = 100 ignorenislike = no allowmultiplekeys = no } EOF
sed -i '/^# unix/apasswd' $x/sites-default/inner-tunnel
sed -i 's/\(private_key_password.*= \).*$/\1'`od -tx -An -N32 -w32 /dev/urandom | tr -d ' '`'/' $x/eap.conf
cp -pR /usr/share/doc/freeradius/examples/certs $x/
read -p "Enter a URL you control to publish your CRL: " r read -p "Enter your country: " c read -p "Enter your locality: " l read -p "Enter your organization: " o read -p "Enter your contact email: " e read -p "Enter a common name for this certificate" n
sed -i 's/\(default_days.*\)= .*$/\1= 3650/' $x/certs/*.cnf sed -i 's/\(default_md.*\)= .*$/\1= sha256/' $x/certs/*.cnf sed -i 's/\(.*_password.*\)= .*$/\1= '`grep -m1 -o '[0-9a-fA-F]\{64\}' $x/eap.conf`'/' $x/certs/*.cnf sed -i 's/\(crlDistributionPoints.*= \).*$/\1'$r'/' $x/certs/*.cnf for i in certificate_authority server client do sed -i '/^\['$i'\]/,/^\[/s#\(countryName.*= \).*$#\1'$c'#' $x/certs/*.cnf sed -i '/^\['$i'\]/,/^\[/s#\(localityName.*= \).*$#\1'$l'#' $x/certs/*.cnf sed -i '/^\['$i'\]/,/^\[/s#\(organizationName.*= \).*$#\1'$o'#' $x/certs/*.cnf sed -i '/^\['$i'\]/,/^\[/s#\(emailAddress.*= \).*$#\1'$e'#' $x/certs/*.cnf sed -i '/^\['$i'\]/,/^\[/s#\(commonName.*= \).*$#\1'$n'#' $x/certs/*.cnf done
cd $x/certs make
cp ca.der /var/www/html/ca.crt
systemctl restart freeradiusHint: if this fails, "freeradius -Fxx" is your friend!
sed -i '/^testuser:/d' /etc/freeradius/passwd systemctl restart freeradiusYou might also wish to reset your router to make sure any wardriver is kicked out immediately.