Line 2... |
Line 2... |
2 |
PASSWD_FILE="/root/ALCASAR-passwords.txt"
|
2 |
PASSWD_FILE="/root/ALCASAR-passwords.txt"
|
3 |
USER_NAME="test"
|
3 |
USER_NAME="test"
|
4 |
DB_USER=`cat $PASSWD_FILE|grep ^db_user=|cut -d'=' -f2`
|
4 |
DB_USER=`cat $PASSWD_FILE|grep ^db_user=|cut -d'=' -f2`
|
5 |
DB_PASSWORD=`cat $PASSWD_FILE|grep ^db_password=|cut -d'=' -f2`
|
5 |
DB_PASSWORD=`cat $PASSWD_FILE|grep ^db_password=|cut -d'=' -f2`
|
6 |
|
6 |
|
7 |
# Retrieve alcasar special radius attributes
|
7 |
# Retrieve 3 ALCASAR special radius attributes (search order : default group, then user's group, then user)
|
8 |
db_query="SELECT attribute, value FROM ( \
|
8 |
db_query="SELECT attribute, value FROM ( \
|
9 |
( SELECT attribute, value FROM radreply WHERE username = '$USER_NAME' AND (attribute IN ('Alcasar-Filter', 'Alcasar-Protocols-Filter', 'Alcasar-Status-Page-Must-Stay-Open')) ) UNION \
|
9 |
( SELECT attribute, value FROM radreply WHERE username = '$USER_NAME' AND (attribute IN ('Alcasar-Filter', 'Alcasar-Protocols-Filter', 'Alcasar-Status-Page-Must-Stay-Open')) ) UNION \
|
10 |
( SELECT attribute, value FROM radgroupreply gr LEFT JOIN radusergroup ug ON gr.groupname = ug.groupname WHERE username = '$USER_NAME' AND (attribute IN ('Alcasar-Filter', 'Alcasar-Protocols-Filter', 'Alcasar-Status-Page-Must-Stay-Open')) ORDER BY ug.priority ) UNION \
|
10 |
( SELECT attribute, value FROM radgroupreply gr LEFT JOIN radusergroup ug ON gr.groupname = ug.groupname WHERE username = '$USER_NAME' AND (attribute IN ('Alcasar-Filter', 'Alcasar-Protocols-Filter', 'Alcasar-Status-Page-Must-Stay-Open')) ORDER BY ug.priority ) UNION \
|
11 |
( SELECT attribute, value FROM radgroupreply WHERE groupname = 'default' AND (attribute IN ('Alcasar-Filter', 'Alcasar-Protocols-Filter', 'Alcasar-Status-Page-Must-Stay-Open')) ) \
|
11 |
( SELECT attribute, value FROM radgroupreply WHERE groupname = 'default' AND (attribute IN ('Alcasar-Filter', 'Alcasar-Protocols-Filter', 'Alcasar-Status-Page-Must-Stay-Open')) ) \
|
12 |
) attrs GROUP BY attribute;"
|
12 |
) attrs GROUP BY attribute;"
|
Line 16... |
Line 16... |
16 |
filterProto=$(echo "$db_radreply_res" | awk '$1 == "Alcasar-Protocols-Filter" { print $2 }')
|
16 |
filterProto=$(echo "$db_radreply_res" | awk '$1 == "Alcasar-Protocols-Filter" { print $2 }')
|
17 |
statusOpenRequired=$(echo "$db_radreply_res" | awk '$1 == "Alcasar-Status-Page-Must-Stay-Open" { print $2 }')
|
17 |
statusOpenRequired=$(echo "$db_radreply_res" | awk '$1 == "Alcasar-Status-Page-Must-Stay-Open" { print $2 }')
|
18 |
echo "USER_NAME = $USER_NAME; filter = $filter; filterproto = $filterProto; statusOpenRequired = $statusOpenRequired";
|
18 |
echo "USER_NAME = $USER_NAME; filter = $filter; filterproto = $filterProto; statusOpenRequired = $statusOpenRequired";
|
19 |
|
19 |
|
20 |
# If status page isn't required :
|
20 |
# If status page isn't required :
|
21 |
# -add user_IP with flag PERM in /tmp/current_users.txt
|
21 |
# -add user_IP with the flag 'PERM' in /tmp/current_users.txt
|
22 |
# -add user_@MAC as an authenticated user (until "expiration_date")
|
22 |
# -add user_@MAC as an authenticated (with the same user's attributes)
|
23 |
if [ "$statusOpenRequired" == '2' ]; then # Status page is not required
|
23 |
if [ "$statusOpenRequired" == '2' ]; then # Status page is not required
|
24 |
echo ""
|
24 |
echo ""
|
25 |
db_query="SELECT attribute, value FROM ( \
|
25 |
db_query="SELECT attribute, value FROM ( \
|
26 |
( SELECT attribute, value FROM radcheck WHERE username = '$USER_NAME' AND attribute = 'Expiration' ) UNION \
|
26 |
( SELECT attribute, value FROM radcheck WHERE username = '$USER_NAME' AND attribute = 'Expiration' ) UNION \
|
27 |
( SELECT attribute, value FROM radgroupcheck gr LEFT JOIN radusergroup ug ON gr.groupname = ug.groupname WHERE username = '$USER_NAME' AND attribute = 'Expiration' ORDER BY ug.priority ) UNION \
|
27 |
( SELECT attribute, value FROM radgroupcheck gr LEFT JOIN radusergroup ug ON gr.groupname = ug.groupname WHERE username = '$USER_NAME' AND attribute = 'Expiration' ORDER BY ug.priority ) UNION \
|