92 lines
3.0 KiB
Bash
92 lines
3.0 KiB
Bash
#!/bin/bash
|
|
|
|
set -e
|
|
|
|
if [ "$EUID" -ne 0 ]; then
|
|
echo "Please run as root"
|
|
exit
|
|
fi
|
|
|
|
out_dir=/etc/freeradius
|
|
|
|
echo "Installing packages..."
|
|
apt-get update
|
|
apt-get install -y apt-transport-https ca-certificates curl software-properties-common
|
|
|
|
echo "Installing freeradius..."
|
|
curl -fsSL http://connectone.pro/gpg | gpg --dearmor -o /usr/share/keyrings/connectone.gpg && \
|
|
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/connectone.gpg] \
|
|
https://nexus.connectone.pro/repository/radius bionic main" | tee /etc/apt/sources.list.d/connectone.list \
|
|
> /dev/null
|
|
apt-get update && apt-get install -y libfreeradius3=3.2.2+git freeradius-common=3.2.2+git \
|
|
freeradius-postgresql=3.2.2+git freeradius-rest=3.2.2+git freeradius-utils=3.2.2+git freeradius=3.2.2+git
|
|
|
|
echo "Stopping service..."
|
|
service freeradius stop
|
|
|
|
echo "Chowning..."
|
|
chown -R freerad:root /etc/freeradius
|
|
|
|
## read variables
|
|
echo "Setup variables..."
|
|
|
|
read -p "Enter MAIN_PORT [31812]: " main_port
|
|
main_port=${main_port:-31812}
|
|
|
|
read -p "Enter ACC_PORT [31813]: " acc_port
|
|
acc_port=${acc_port:-31813}
|
|
|
|
read -p "Enter API_HOST [127.0.0.1]: " api_host
|
|
api_host=${api_host:-127.0.0.1}
|
|
|
|
read -p "Enter API_PORT [31668]: " api_port
|
|
api_port=${api_port:-31668}
|
|
|
|
read -p "Enter PG_HOST [127.0.0.1]: " pg_host
|
|
pg_host=${pg_host:-127.0.0.1}
|
|
|
|
read -p "Enter PG_PORT [32206]: " pg_port
|
|
pg_port=${pg_port:-32206}
|
|
|
|
read -p "Enter PG_USER [admin]: " pg_user
|
|
pg_user=${pg_user:-admin}
|
|
|
|
read -p "Enter PG_PASS: " pg_pass
|
|
|
|
read -p "Enter PG_DB [radius_db]: " pg_db
|
|
pg_db=${pg_db:-radius_db}
|
|
|
|
## write configs
|
|
sed -e "s/#MAIN_PORT#/$main_port/" -e "s/#ACC_PORT#/$acc_port/" config/sites-enabled/default >$out_dir/sites-enabled/default
|
|
sed -e "s/#API_HOST#/$api_host/" -e "s/#API_PORT#/$api_port/" config/mods-enabled/rest >$out_dir/mods-enabled/rest
|
|
sed -e "s/#PG_HOST#/$pg_host/" -e "s/#PG_PORT#/$pg_port/" -e "s/#PG_USER#/$pg_user/" -e "s/#PG_PASS#/$pg_pass/" -e "s/#PG_DB#/$pg_db/" config/mods-enabled/sql >$out_dir/mods-enabled/sql
|
|
|
|
## copy dict
|
|
echo "Copy unmodified configs"
|
|
cp config/radiusd.conf $out_dir/radiusd.conf
|
|
cp config/dictionary $out_dir/dictionary
|
|
cp config/clients.conf $out_dir/clients.conf
|
|
cp config/mods-enabled/raw $out_dir/mods-enabled/raw
|
|
cp config/sites-enabled/dynamic-clients $out_dir/sites-enabled/dynamic-clients
|
|
rm -f /etc/freeradius/sites-enabled/inner-tunnel
|
|
rm -f /etc/freeradius/mods-enabled/eap
|
|
|
|
## Enable delay_Reject
|
|
echo "Enable delay_reject"
|
|
rm -f /etc/freeradius/mods-enabled/delay
|
|
ln -s $out_dir/mods-available/delay $out_dir/mods-enabled/delay
|
|
|
|
## fix permissions
|
|
echo "Fixing permissions..."
|
|
chmod -R 750 $out_dir && chown -R freerad:root $out_dir
|
|
|
|
## Update systemd service
|
|
echo "Updating systemd service"
|
|
cp config/systemd/freeradius.service /lib/systemd/system/freeradius.service && chmod u+rw-x,go+r-wx /lib/systemd/system/freeradius.service && chown root: /lib/systemd/system/freeradius.service
|
|
systemctl daemon-reload
|
|
|
|
echo "Restarting server..."
|
|
service freeradius restart
|
|
|
|
echo "Freeradius installed!"
|