A configuração é a parte essencial para o funcionamento do Freeradius, pois qualquer configuração errada fará com que ele não funcione.
Vamos começar a configuração editando o arquivo responsável pelo daemon, o radius.conf. Na instalação padrão do Debian ele fica em /etc/freeradius/.
# vi /etc/freeradius/radius.conf
Dentro de "authorize", tirar o "#" da linha sql.
Dentro do "accounting", tirar o "#" da linha sql.
Feitas as alterações, salve o arquivo e saia. Agora edite o arquivo sql.conf:
# vi /etc/freeradius/sql.conf
Nas linhas:
server = "localhost"
login = "root"
password = "rootpass"
coloque os dados correspondentes do banco de dados. No nosso caso ficará assim:
server = "localhost"
login = "root"
password = ""
Efetuadas as alterações, salve o arquivo e saia.
Precisamos agora configurar o arquivo clients.conf, que pode e será o nosso "NAS" imaginário. Na vida real pode ser qualquer aparelho que pode enviar o pedido de autenticação ao Radius.
Para editar:
# vi /etc/freeradius/clients.conf
Vamos ao final do arquivo, nele poderemos verificar vários exemplos de configuração. Colocaremos assim:
client 10.1.1.200 {
secret = senhateste
shortname = testesomente
nastype = other
}
Efetuadas as alterações, salve o arquivo e saia para o console.
Aqui termina a parte de configuração dos ".confs" do Freeradius. Agora vamos configurar o MySQL para receber as informações do Freeradius.
No console, execute os seguintes comandos:
Criar banco de dados:
# mysql -u root
mysql> CREATE DATABASE radius;
mysql> quit;
Criar a estrutura do banco de dados radius:
# gunzip /usr/share/doc/freeradius/examples/db_mysql.sql.gz
# mysql -u root radius < /usr/share/doc/freeradius/examples/db_mysql.sql
Se tudo correr conforme esperado, a base de dados está criada. Agora vamos adicionar alguns dados nestas tabelas de base teste. Execute as seguintes instruções:
Criar 2 usuários no grupo discado e 1 usuário no grupo bandalarga:
# mysql radius
mysql> INSERT INTO usergroup(UserName, GroupName)
mysql> VALUES ('usuário01', 'discado');
mysql> INSERT INTO usergroup(UserName, GroupName)
mysql> VALUES ('usuário02', 'discado');
mysql> INSERT INTO usergroup(UserName, GroupName)
mysql> VALUES ('usuário02', 'bandalarga');
Agora vamos colocar senha para eles:
mysql> INSERT INTO radcheck(UserName, Attribute, op, Value)
mysql> VALUES('usuário01', 'Password', '==', 'user01');
mysql> INSERT INTO radcheck(UserName, Attribute, op, Value)
mysql> VALUES('usuário02', 'Password', '==', 'user02');
mysql> INSERT INTO radcheck(UserName, Attribute, op, Value)
mysql> VALUES('usuário03', 'Password', '==', 'user03');
Agora vamos criar os tipos de autenticação:
mysql> INSERT INTO radgroupcheck
mysql> (GroupName,Attribute,Op, Value)
mysql> VALUES('discado', 'Auth-Type', ':=', 'Local');
mysql> INSERT INTO radgroupcheck
mysql> (GroupName,Attribute,Op, Value)
mysql> VALUES('bandalarga', 'Auth-Type', ':=2', 'Local');
Vamos criar agora as propriedades de conexões:
mysql> INSERT INTO radgroupreply
mysql> (GroupName, Attribute, Op, Value, Prio)
mysql> VALUES('discado', 'Framed-Compression',
mysql> ':=', 'Van-Jacobsen-TCP-IP', '');
mysql> INSERT INTO radgroupreply
mysql> (GroupName, Attribute, Op, Value, Prio)
mysql> VALUES('discado', 'Framed-Protocol', ':=',
mysql> 'PPP', '');
mysql> INSERT INTO radgroupreply
mysql> (GroupName, Attribute, Op, Value, Prio)
mysql> VALUES('discado', 'Service-Type', ':=',
mysql> 'Framed-User', '');
mysql> INSERT INTO radgroupreply
mysql> (GroupName, Attribute, Op, Value, Prio)
mysql> VALUES('discado', 'Framed-MTU', ':=', '1500', '');
mysql> INSERT INTO radgroupreply
mysql> (GroupName, Attribute, Op, Value, Prio)
mysql> VALUES('bandalarga', 'Framed-Compression',
mysql> ':=', 'bl-Van-Jacobsen-TCP-IP', '');
mysql> INSERT INTO radgroupreply
mysql> (GroupName, Attribute, Op, Value, Prio)
mysql> VALUES('bandalarga', 'Framed-Protocol', ':=',
mysql> 'bl-PPP', '');
mysql> INSERT INTO radgroupreply
mysql> (GroupName, Attribute, Op, Value, Prio)
mysql> VALUES('bandalarga', 'Service-Type', ':=',
mysql> 'bl-Framed-User', '');
mysql> INSERT INTO radgroupreply
mysql> (GroupName, Attribute, Op, Value, Prio)
mysql> VALUES('bandalarga', 'Framed-MTU', ':=', 'bl-1500', '');
mysql> quit;
Finalizamos aqui a configuração básica do Freeradius. Agora vamos ver se tudo que foi feito acima está funcionando.